OSDN Git Service

* config/rs6000/spe.md ("*movv2si_internal"): Check for register
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Feb 2004 12:37:21 +0000 (12:37 +0000)
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Feb 2004 12:37:21 +0000 (12:37 +0000)
        operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77651 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/spe.md

index 383c3a5..5eb0736 100644 (file)
@@ -1,3 +1,8 @@
+2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
+                                                                                
+        * config/rs6000/spe.md ("*movv2si_internal"): Check for register
+        operand.
+
 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
 
        * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
index becdaa4..d3ecbe0 100644 (file)
 (define_insn "*movv2si_internal"
   [(set (match_operand:V2SI 0 "nonimmediate_operand" "=m,r,r,r")
        (match_operand:V2SI 1 "input_operand" "r,m,r,W"))]
-  "TARGET_SPE"
+  "TARGET_SPE
+   && (gpc_reg_operand (operands[0], V2SImode)
+       || gpc_reg_operand (operands[1], V2SImode))"
   "*
 {
   switch (which_alternative)
 (define_insn "*movv1di_internal"
   [(set (match_operand:V1DI 0 "nonimmediate_operand" "=m,r,r,r")
        (match_operand:V1DI 1 "input_operand" "r,m,r,W"))]
-  "TARGET_SPE"
+  "TARGET_SPE
+   && (gpc_reg_operand (operands[0], V1DImode)
+       || gpc_reg_operand (operands[1], V1DImode))"
   "@
    evstdd%X0 %1,%y0
    evldd%X1 %0,%y1
 (define_insn "*movv4hi_internal"
   [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r")
        (match_operand:V4HI 1 "input_operand" "r,m,r"))]
-  "TARGET_SPE"
+  "TARGET_SPE
+   && (gpc_reg_operand (operands[0], V4HImode)
+       || gpc_reg_operand (operands[1], V4HImode))"
   "@
    evstdd%X0 %1,%y0
    evldd%X1 %0,%y1
 (define_insn "*movv2sf_internal"
   [(set (match_operand:V2SF 0 "nonimmediate_operand" "=m,r,r,r")
        (match_operand:V2SF 1 "input_operand" "r,m,r,W"))]
-  "TARGET_SPE"
+  "TARGET_SPE
+   && (gpc_reg_operand (operands[0], V2SFmode)
+       || gpc_reg_operand (operands[1], V2SFmode))"
   "@
    evstdd%X0 %1,%y0
    evldd%X1 %0,%y1
   [(set_attr "type" "vecload,vecstore,*,*")
    (set_attr "length" "*,*,*,*")])
 
+;; End of vector move instructions.
+
 (define_insn "spe_evmwhssfaa"
   [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
         (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")