https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89848

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2019-03-28
           Assignee|unassigned at gcc dot gnu.org      |ubizjak at gmail dot com
   Target Milestone|---                         |8.4
     Ever confirmed|0                           |1

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Ah, there is another one:

--cut here--
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index b5f20f1597ed..0aa833bb4842 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1901,7 +1901,10 @@ dimode_scalar_chain::make_vector_copies (unsigned regno)
                 || GET_CODE (src) == LSHIFTRT)
                && !CONST_INT_P (XEXP (src, 1))
                && reg_or_subregno (XEXP (src, 1)) == regno)
-             XEXP (src, 1) = vreg;
+             {
+               XEXP (src, 0) = replace_with_subreg (XEXP (src, 0), reg, reg);
+               XEXP (src, 1) = vreg;
+             }
          }
        else
          replace_with_subreg_in_insn (insn, reg, vreg);
--cut here--

Reply via email to