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

Reply via email to