From: Richard Henderson Date: Mon, 20 Dec 2004 11:48:42 +0000 (-0800) Subject: i386.md (sse2_movsd): Remove ix86_binary_operator_ok check. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=094a624bbd20f1817acfdbbf3432af7136e1f762;p=gcc.git i386.md (sse2_movsd): Remove ix86_binary_operator_ok check. * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok check. From-SVN: r92416 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8876afdfab..8e3f21c65d9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-20 Richard Henderson + + * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok + check. + 2004-12-20 Steven Bosscher Andrew Pinski diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index b575d42d8b9..37fe29bb011 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -23873,13 +23873,18 @@ [(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}"