https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85903
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Uroš Bizjak from comment #3) > 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-- It works. Thanks.