+2004-12-20 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
+ check.
+
2004-12-20 Steven Bosscher <stevenb@suse.de>
Andrew Pinski <pinskia@physics.uc.edu>
[(set_attr "type" "ssecvt")
(set_attr "mode" "DF")])
+;; ??? We ought to be using ix86_binary_operator_ok on this pattern, so
+;; that we enforce the whole matching memory thing through combine et al.
+;; But that requires that things be set up properly when invoked via an
+;; intrinsic, which we don't do. Which leads to instantiate virtual regs
+;; lossage, as seen compiling gcc.dg/i386-sse-2.c for x86_64 at -O0.
(define_insn "sse2_movsd"
[(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,m")
(vec_merge:V2DF
(match_operand:V2DF 1 "nonimmediate_operand" "0,0,0")
(match_operand:V2DF 2 "nonimmediate_operand" "x,m,x")
(const_int 2)))]
- "TARGET_SSE2 && ix86_binary_operator_ok (UNKNOWN, V2DFmode, operands)"
+ "TARGET_SSE2"
"@movsd\t{%2, %0|%0, %2}
movlpd\t{%2, %0|%0, %2}
movlpd\t{%2, %0|%0, %2}"