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