diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/rs6000/spe.md | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 01ed1bf..127328d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md index f2410dd..02e13c6 100644 --- a/gcc/config/rs6000/spe.md +++ b/gcc/config/rs6000/spe.md @@ -2392,15 +2392,16 @@ "{ 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" |
