https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71549
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- Patch in testing: --cut here-- diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index c5e5e12..3a6e63a 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -3802,14 +3802,8 @@ timode_scalar_chain::convert_insn (rtx_insn *insn) switch (GET_CODE (dst)) { case REG: - { - rtx tmp = find_reg_equal_equiv_note (insn); - if (tmp) - PUT_MODE (XEXP (tmp, 0), V1TImode); - } - /* FALLTHRU */ case MEM: - PUT_MODE (dst, V1TImode); + dst = gen_rtx_SUBREG (V1TImode, copy_rtx_if_shared (dst), 0); break; default: @@ -3820,7 +3814,7 @@ timode_scalar_chain::convert_insn (rtx_insn *insn) { case REG: case MEM: - PUT_MODE (src, V1TImode); + src = gen_rtx_SUBREG (V1TImode, copy_rtx_if_shared (src), 0); break; case CONST_INT: --cut here--