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);