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

Reply via email to