------- Comment #2 from rguenth at gcc dot gnu dot org 2010-08-05 15:53 ------- Sth like
Index: config/i386/i386.md =================================================================== --- config/i386/i386.md (revision 162913) +++ config/i386/i386.md (working copy) @@ -1957,6 +1957,30 @@ (define_insn "*movti_internal_sse" (const_string "V4SF")] (const_string "TI")))]) +(define_insn "*movdi_internal_rex642" + [(set (match_operand:DI 0 "nonimmediate_operand" + "=r,m") + (subreg:DI + (match_operand:V4SF 1 "register_operand" + "x,x") 0))] + "TARGET_SSE2" + "@ + movq\t{%1, %0|%0, %1} + movq\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov")]) + +(define_insn "*movdi_internal_rex642" + [(set (match_operand:DI 0 "nonimmediate_operand" + "=r,m") + (subreg:DI + (match_operand:V4SF 1 "register_operand" + "x,x") 8))] + "TARGET_SSE2" + "@ + movhps\t{%1, %0|%0, %1} + movhps\t{%1, %0|%0, %1}" + [(set_attr "type" "ssemov")]) + (define_insn "*movdi_internal_rex64" [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r ,r,m ,!m,*y,*y,?r ,m ,?*Ym,?*y,*x,*x,?r ,m,?*Yi,*x,?*x,?*Ym") -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45198