https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89827
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- We need something like this patch: --cut here-- diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b5f20f1597ed..3ea545732dfd 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -2040,6 +2040,7 @@ dimode_scalar_chain::convert_reg (unsigned regno) emit_insn_before (seq, insn); + XEXP (src, 0) = replace_with_subreg (XEXP (src, 0), reg, reg); XEXP (src, 1) = gen_rtx_SUBREG (DImode, tmp2, 0); } else if (!MEM_P (dst) || !REG_P (src)) --cut here--