OSDN Git Service

* config/rs6000/spe.md (movv4hi_internal): Add alternative for
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Nov 2006 00:27:03 +0000 (00:27 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Nov 2006 00:27:03 +0000 (00:27 +0000)
easy vector constant loads.

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

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

index 01ed1bf..127328d 100644 (file)
@@ -1,5 +1,10 @@
 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
 
+       * config/rs6000/spe.md (movv4hi_internal): Add alternative for
+       easy vector constant loads.
+
+2006-11-18  Joseph Myers  <joseph@codesourcery.com>
+
        * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
        __NO_LWSYNC__ if TARGET_NO_LWSYNC.
index f2410dd..02e13c6 100644 (file)
   "{ rs6000_emit_move (operands[0], operands[1], V4HImode); DONE; }")
 
 (define_insn "*movv4hi_internal"
-  [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r")
-       (match_operand:V4HI 1 "input_operand" "r,m,r"))]
+  [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r,r")
+       (match_operand:V4HI 1 "input_operand" "r,m,r,W"))]
   "TARGET_SPE
    && (gpc_reg_operand (operands[0], V4HImode)
        || gpc_reg_operand (operands[1], V4HImode))"
   "@
    evstdd%X0 %1,%y0
    evldd%X1 %0,%y1
-   evor %0,%1,%1"
+   evor %0,%1,%1
+   evxor %0,%0,%0"
   [(set_attr "type" "vecload")])
 
 (define_expand "movv2sf"