aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorRobin Dapp <rdapp@ventanamicro.com>2024-11-05 14:47:07 +0100
committerRobin Dapp <rdapp@ventanamicro.com>2024-11-18 11:48:42 +0100
commitebf30772415cfd3fa544fc7262b28b948591538f (patch)
tree65be82c97f5087d6c2fd188efc550ca7c610d097 /gcc/config/i386
parent4a39addb4921ca1f7aa013835cd1351226e5e6b6 (diff)
downloadgcc-ebf30772415cfd3fa544fc7262b28b948591538f.zip
gcc-ebf30772415cfd3fa544fc7262b28b948591538f.tar.gz
gcc-ebf30772415cfd3fa544fc7262b28b948591538f.tar.bz2
i386: Add zero maskload else operand.
gcc/ChangeLog: * config/i386/sse.md (maskload<mode><sseintvecmodelower>): Call maskload<mode>..._1. (maskload<mode><sseintvecmodelower>_1): Rename.
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/sse.md21
1 files changed, 18 insertions, 3 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index efe32e5..72acd5b 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -28650,7 +28650,7 @@
(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")
@@ -28658,13 +28658,28 @@
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")
@@ -28674,7 +28689,7 @@
(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")