diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2014-02-21 21:01:01 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2014-02-21 21:01:01 +0000 |
commit | b90ab1ba8c2a21d41ed984729e42891ebf96b505 (patch) | |
tree | f6813298951209cd289bcbd40990c378a77070b8 /gcc/config | |
parent | 4b3a6bcbcce9a3e9b58791ba72bac8f9eb67cf37 (diff) | |
download | gcc-b90ab1ba8c2a21d41ed984729e42891ebf96b505.zip gcc-b90ab1ba8c2a21d41ed984729e42891ebf96b505.tar.gz gcc-b90ab1ba8c2a21d41ed984729e42891ebf96b505.tar.bz2 |
altivec.md (altivec_vsumsws): Replace second vspltw with vsldoi.
gcc:
2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (altivec_vsumsws): Replace second
vspltw with vsldoi.
(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
gen_altivec_vsumsws.
gcc/testsuite:
2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.dg/vmx/vsums.c: Check entire result vector.
* gcc.dg/vmx/vsums-be-order.c: Likewise.
From-SVN: r208021
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/altivec.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index 115354a..5b55419 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@ -1651,7 +1651,7 @@ if (VECTOR_ELT_ORDER_BIG) return "vsumsws %0,%1,%2"; else - return "vspltw %3,%2,0\n\tvsumsws %3,%1,%3\n\tvspltw %0,%3,3"; + return "vspltw %3,%2,0\n\tvsumsws %3,%1,%3\n\tvsldoi %0,%3,%3,12"; } [(set_attr "type" "veccomplex") (set (attr "length") @@ -2539,7 +2539,7 @@ emit_insn (gen_altivec_vspltisw (vzero, const0_rtx)); emit_insn (gen_altivec_vsum4ubs (vtmp1, operands[1], vzero)); - emit_insn (gen_altivec_vsumsws (dest, vtmp1, vzero)); + emit_insn (gen_altivec_vsumsws_direct (dest, vtmp1, vzero)); DONE; }) |