re PR target/77874 (two problems with gcc.target/i386/avx-1.c)
authorUros Bizjak <ubizjak@gmail.com>
Wed, 5 Oct 2016 22:02:05 +0000 (00:02 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 5 Oct 2016 22:02:05 +0000 (00:02 +0200)
PR target/77874
* config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
Remove wrong assert.
(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
Use <round_constraint> as operand 1 constraint.

From-SVN: r240814

gcc/ChangeLog
gcc/config/i386/sse.md

index 9be5e48c5673b478d638af72f55164fe23ab9f15..36cbd0ff8bb1d697edb6fef0c9a1582b566798b0 100644 (file)
@@ -1,3 +1,11 @@
+2016-10-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/77874
+       * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
+       Remove wrong assert.
+       (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
+       Use <round_constraint> as operand 1 constraint.
+
 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
 
        PR sanitizer/66343
index 235969ab40eb21e9c6400c046d043781aeae41b4..026054d66fba3f33117da47a76eeee7d14315757 100644 (file)
 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"
   [(set (match_operand:VF2_AVX512VL 0 "register_operand" "=v")
        (any_float:VF2_AVX512VL
-         (match_operand:<sseintvecmode> 1 "nonimmediate_operand" "vm")))]
+         (match_operand:<sseintvecmode> 1 "nonimmediate_operand" "<round_constraint>")))]
   "TARGET_AVX512DQ"
   "vcvt<floatsuffix>qq2pd\t{<round_mask_op2>%1, %0<mask_operand2>|%0<mask_operand2>, %1<round_mask_op2>}"
   [(set_attr "type" "ssecvt")
       gcc_assert (TARGET_AVX);
     case MODE_V4SF:
       gcc_assert (TARGET_SSE);
-
       tmp = "andnps";
       break;
 
       gcc_assert (TARGET_AVX);
     case MODE_V4SF:
       gcc_assert (TARGET_SSE);
-      gcc_assert (!<mask_applied>);
       tmp = "<logic>ps";
       break;