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

Reply via email to