[AArch64] Refactor reduc_<su>plus patterns.
commit36054fabf5b7b47ffa8c7c6f93c436dd8e8c807c
authorJames Greenhalgh <james.greenhalgh@arm.com>
Wed, 1 May 2013 15:37:52 +0000 (1 15:37 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Wed, 1 May 2013 15:37:52 +0000 (1 15:37 +0000)
tree683e38183557a74cc9a0e030ad6dd01a5136bc41
parent6dce23a8ae9579e12e73201802ef553c13c4f023
[AArch64] Refactor reduc_<su>plus patterns.

gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
* config/aarch64/aarch64-simd-builtins.def
(reduc_splus_): Add new modes.
(reduc_uplus_): New.
* config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
(reduc_uplus_v4sf): Likewise.
(reduc_splus_v4sf): Likewise.
(aarch64_addv<mode>): Likewise.
(reduc_uplus_<mode>): Likewise.
(reduc_splus_<mode>): Likewise.
(aarch64_addvv2di): Likewise.
(reduc_uplus_v2di): Likewise.
(reduc_splus_v2di): Likewise.
(aarch64_addvv2si): Likewise.
(reduc_uplus_v2si): Likewise.
(reduc_splus_v2si): Likewise.
(reduc_<sur>plus_<mode>): New.
(reduc_<sur>plus_v2di): Likewise.
(reduc_<sur>plus_v2si): Likewise.
(reduc_<sur>plus_v4sf): Likewise.
(aarch64_addpv4sf): Likewise.
* config/aarch64/arm_neon.h
(vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
* config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
add UNSPEC_SADDV, UNSPEC_UADDV.
(SUADDV): New.
(sur): Add UNSPEC_SADDV, UNSPEC_UADDV.

gcc/testsuite/
* gcc.target/aarch64/vect-vaddv.c: New.

From-SVN: r198500
gcc/ChangeLog
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/vect-vaddv.c [new file with mode: 0644]