From 68c3aa7510b2f45f44379ecd77e97c88780a84ed Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 2 Aug 2023 11:04:37 +0200 Subject: [PATCH] x86: fold two of vec_dupv2df's alternatives By using Yvm in the source, both can be expressed in one. gcc/ * config/i386/sse.md (vec_dupv2df): Fold the middle two of the alternatives. --- gcc/config/i386/sse.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 43afcfdc750..ab455c3e297 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" - [(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|%0, %1} - vmovddup\t{%1, %0|%0, %1} vbroadcastsd\t{%1, }%g0{|, %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 "")