aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-08-02 11:04:37 +0200
committerJan Beulich <jbeulich@suse.com>2023-08-02 11:04:37 +0200
commit68c3aa7510b2f45f44379ecd77e97c88780a84ed (patch)
tree45e84dd46a2fdb59df4ed145b85d163e8021fef8
parent0d6a0220205c2d99e878e32ac3a204bdd0dfa980 (diff)
downloadgcc-68c3aa7510b2f45f44379ecd77e97c88780a84ed.zip
gcc-68c3aa7510b2f45f44379ecd77e97c88780a84ed.tar.gz
gcc-68c3aa7510b2f45f44379ecd77e97c88780a84ed.tar.bz2
x86: fold two of vec_dupv2df<mask_name>'s alternatives
By using Yvm in the source, both can be expressed in one. gcc/ * config/i386/sse.md (vec_dupv2df<mask_name>): Fold the middle two of the alternatives.
-rw-r--r--gcc/config/i386/sse.md15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 43afcfd..ab455c3 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -13784,21 +13784,20 @@
(set_attr "mode" "DF,DF,V1DF,V1DF,V1DF,V2DF,V1DF,V1DF,V1DF")])
(define_insn "vec_dupv2df<mask_name>"
- [(set (match_operand:V2DF 0 "register_operand" "=x,x,v,v")
+ [(set (match_operand:V2DF 0 "register_operand" "=x,v,v")
(vec_duplicate:V2DF
- (match_operand:DF 1 "nonimmediate_operand" "0,xm,vm,vm")))]
+ (match_operand:DF 1 "nonimmediate_operand" "0,Yvm,vm")))]
"TARGET_SSE2"
"@
unpcklpd\t%0, %0
%vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}
- vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}
vbroadcastsd\t{%1, }%g0<mask_operand2>{|, %1}"
- [(set_attr "isa" "noavx,sse3,avx512vl,*")
- (set_attr "type" "sselog1,ssemov,ssemov,ssemov")
- (set_attr "prefix" "orig,maybe_vex,evex,evex")
- (set_attr "mode" "V2DF,DF,DF,V8DF")
+ [(set_attr "isa" "noavx,sse3,*")
+ (set_attr "type" "sselog1,ssemov,ssemov")
+ (set_attr "prefix" "orig,maybe_evex,evex")
+ (set_attr "mode" "V2DF,DF,V8DF")
(set (attr "enabled")
- (cond [(eq_attr "alternative" "3")
+ (cond [(eq_attr "alternative" "2")
(symbol_ref "TARGET_AVX512F && !TARGET_AVX512VL
&& !TARGET_PREFER_AVX256")
(match_test "<mask_avx512vl_condition>")