]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Add zero maskload else operand.
authorRobin Dapp <rdapp@ventanamicro.com>
Tue, 5 Nov 2024 13:47:07 +0000 (14:47 +0100)
committerRobin Dapp <rdapp@ventanamicro.com>
Mon, 18 Nov 2024 10:48:42 +0000 (11:48 +0100)
gcc/ChangeLog:

* config/i386/sse.md (maskload<mode><sseintvecmodelower>):
Call maskload<mode>..._1.
(maskload<mode><sseintvecmodelower>_1): Rename.

gcc/config/i386/sse.md

index efe32e5149fc0ff35afb6a1b39287668f3ec5782..72acd5bde5e4372d8d05934aec151461cf688988 100644 (file)
    (set_attr "btver2_decode" "vector") 
    (set_attr "mode" "<sseinsnmode>")])
 
-(define_expand "maskload<mode><sseintvecmodelower>"
+(define_expand "maskload<mode><sseintvecmodelower>_1"
   [(set (match_operand:V48_128_256 0 "register_operand")
        (unspec:V48_128_256
          [(match_operand:<sseintvecmode> 2 "register_operand")
          UNSPEC_MASKMOV))]
   "TARGET_AVX")
 
+(define_expand "maskload<mode><sseintvecmodelower>"
+  [(set (match_operand:V48_128_256 0 "register_operand")
+       (unspec:V48_128_256
+         [(match_operand:<sseintvecmode> 2 "register_operand")
+          (match_operand:V48_128_256 1 "memory_operand")
+          (match_operand:V48_128_256 3 "const0_operand")]
+         UNSPEC_MASKMOV))]
+  "TARGET_AVX"
+{
+  emit_insn (gen_maskload<mode><sseintvecmodelower>_1 (operands[0],
+                                                      operands[1],
+                                                      operands[2]));
+  DONE;
+})
+
 (define_expand "maskload<mode><avx512fmaskmodelower>"
   [(set (match_operand:V48_AVX512VL 0 "register_operand")
        (vec_merge:V48_AVX512VL
          (unspec:V48_AVX512VL
            [(match_operand:V48_AVX512VL 1 "memory_operand")]
            UNSPEC_MASKLOAD)
-         (match_dup 0)
+          (match_operand:V48_AVX512VL 3 "const0_operand")
          (match_operand:<avx512fmaskmode> 2 "register_operand")))]
   "TARGET_AVX512F")
 
          (unspec:VI12HFBF_AVX512VL
            [(match_operand:VI12HFBF_AVX512VL 1 "memory_operand")]
            UNSPEC_MASKLOAD)
-         (match_dup 0)
+          (match_operand:VI12HFBF_AVX512VL 3 "const0_operand")
          (match_operand:<avx512fmaskmode> 2 "register_operand")))]
   "TARGET_AVX512BW")