]> gcc.gnu.org Git - gcc.git/commitdiff
re PR target/19424 (Error: suffix or operands invalid for `movlps')
authorUros Bizjak <uros@kss-loka.si>
Tue, 18 Jan 2005 06:17:55 +0000 (07:17 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 18 Jan 2005 06:17:55 +0000 (07:17 +0100)
PR target/19424
* config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
Add movaps alternative for xmm reg->reg move.

From-SVN: r93814

gcc/ChangeLog
gcc/config/i386/mmx.md

index b85f270c2200dead83f08f91fbfa96ca10a1b7b3..8e635506c871c88fd0fd269c2de1d4214798783d 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-18  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/19424
+       * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
+       Add movaps alternative for xmm reg->reg move.
+
 2005-01-17  Jeff Law  <law@redhat.com>
 
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
index 2f710a4e0e18741f978190d1c0b7c0fc2e9f2238..ccee83d57dd6a4d0381e167e61ca43bc8a1ba4fe 100644 (file)
 
 (define_insn "*movv2sf_internal_rex64"
   [(set (match_operand:V2SF 0 "nonimmediate_operand"
-                               "=rm,r,*y ,*y ,m ,*y,Y ,x,x ,m,r,x")
+                               "=rm,r,*y ,*y ,m ,*y,Y ,x,x,x,m,r,x")
         (match_operand:V2SF 1 "vector_move_operand"
-                               "Cr ,m ,C ,*ym,*y,Y ,*y,C,xm,x,x,r"))]
+                               "Cr ,m ,C ,*ym,*y,Y ,*y,C,x,m,x,x,r"))]
   "TARGET_64BIT && TARGET_MMX
    && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
   "@
     movdq2q\t{%1, %0|%0, %1}
     movq2dq\t{%1, %0|%0, %1}
     xorps\t%0, %0
+    movaps\t{%1, %0|%0, %1}
     movlps\t{%1, %0|%0, %1}
     movlps\t{%1, %0|%0, %1}
     movd\t{%1, %0|%0, %1}
     movd\t{%1, %0|%0, %1}"
-  [(set_attr "type" "imov,imov,mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov,ssemov,ssemov")
-   (set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V2SF,V2SF,DI,DI")])
+  [(set_attr "type" "imov,imov,mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov,ssemov,ssemov,ssemov")
+   (set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
 
 (define_insn "*movv2sf_internal"
   [(set (match_operand:V2SF 0 "nonimmediate_operand"
-                                       "=*y,*y ,m,*y,*Y,*x,*x ,m ,?r ,?m")
+                                       "=*y,*y ,m,*y,*Y,*x,*x,*x,m ,?r ,?m")
         (match_operand:V2SF 1 "vector_move_operand"
-                                       "C ,*ym,*y,*Y,*y,C ,*xm,*x,irm,r"))]
+                                       "C ,*ym,*y,*Y,*y,C ,*x,m ,*x,irm,r"))]
   "TARGET_MMX
    && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
   "@
     movdq2q\t{%1, %0|%0, %1}
     movq2dq\t{%1, %0|%0, %1}
     xorps\t%0, %0
+    movaps\t{%1, %0|%0, %1}
     movlps\t{%1, %0|%0, %1}
     movlps\t{%1, %0|%0, %1}
     #
     #"
-  [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov,*,*")
-   (set_attr "mode" "DI,DI,DI,DI,DI,V4SF,V2SF,V2SF,DI,DI")])
+  [(set_attr "type" "mmxmov,mmxmov,mmxmov,ssecvt,ssecvt,ssemov,ssemov,ssemov,ssemov,*,*")
+   (set_attr "mode" "DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
 
 ;; %%% This multiword shite has got to go.
 (define_split
This page took 0.074535 seconds and 5 git commands to generate.