re PR target/82855 (AVX512: replace OP+movemask with OP_mask+ktest)
authorJakub Jelinek <jakub@redhat.com>
Wed, 8 Nov 2017 20:15:42 +0000 (21:15 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 8 Nov 2017 20:15:42 +0000 (21:15 +0100)
PR target/82855
* config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
nonimmediate_operand predicate for operand 1 instead of
register_operand.

From-SVN: r254552

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

index 805625f8f3d2794582d343f94dfd0f9b2c24f65c..15bba026063d1bff1b9a9780d04d40c82c8d97aa 100644 (file)
@@ -1,3 +1,11 @@
+2017-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/82855
+       * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
+       <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
+       nonimmediate_operand predicate for operand 1 instead of
+       register_operand.
+
 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
index 200aad65e24fc5a2b94a69ff84a2008d22d7e330..919b6c674e0f7a3956ec96e2cc6e2b69b082988a 100644 (file)
 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand")
        (unspec:<avx512fmaskmode>
-         [(match_operand:VI12_AVX512VL 1 "register_operand")
+         [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand")
           (match_operand:VI12_AVX512VL 2 "nonimmediate_operand")]
          UNSPEC_MASKED_EQ))]
   "TARGET_AVX512BW"
 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand")
        (unspec:<avx512fmaskmode>
-         [(match_operand:VI48_AVX512VL 1 "register_operand")
+         [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
           (match_operand:VI48_AVX512VL 2 "nonimmediate_operand")]
          UNSPEC_MASKED_EQ))]
   "TARGET_AVX512F"
 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
        (unspec:<avx512fmaskmode>
-         [(match_operand:VI12_AVX512VL 1 "register_operand" "%v")
+         [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "%v")
           (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")]
          UNSPEC_MASKED_EQ))]
   "TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand" "=Yk")
        (unspec:<avx512fmaskmode>
-         [(match_operand:VI48_AVX512VL 1 "register_operand" "%v")
+         [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "%v")
           (match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm")]
          UNSPEC_MASKED_EQ))]
   "TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))"