https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85903
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- Please try this patch: --cut here-- diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 8a80fa35067..9750708a80f 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -1248,11 +1248,8 @@ operands[2])); } else if (memory_operand (operands[1], DImode)) - { - rtx tmp = gen_reg_rtx (V2DImode); - emit_insn (gen_vec_concatv2di (tmp, operands[1], const0_rtx)); - emit_move_insn (operands[0], gen_lowpart (V4SImode, tmp)); - } + emit_insn (gen_vec_concatv2di (gen_lowpart (V2DImode, operands[0]), + operands[1], const0_rtx)); else gcc_unreachable (); DONE; --cut here--