https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117116
Hongtao Liu <liuhongt at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2024-10-14
Ever confirmed|0 |1
Assignee|unassigned at gcc dot gnu.org |liuhongt at gcc dot
gnu.org
Status|UNCONFIRMED |ASSIGNED
--- Comment #5 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
I'm testing the patch
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 2b774ff7c4e..f8473d365ef 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -17898,11 +17898,8 @@ ix86_expand_vector_set (bool mmx_ok, rtx target, rtx
val, int elt)
break;
case E_V2DImode:
- use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT;
- if (use_vec_merge)
- break;
-
tmp = gen_reg_rtx (GET_MODE_INNER (mode));
+ val = force_reg (GET_MODE_INNER (mode), val);
ix86_expand_vector_extract (false, tmp, target, 1 - elt);
if (elt == 0)
tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);