[AArch64] Tighten predicates on SIMD shift intrinsics
authorJames Greenhalgh <james.greenhalgh@arm.com>
Thu, 25 Sep 2014 16:54:38 +0000 (16:54 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Thu, 25 Sep 2014 16:54:38 +0000 (16:54 +0000)
commitcb23a30cc4838f0c67b8a2746848a4e859c16217
tree37bfd04f94281a7dcd6232bc6a5f6c9442a6381a
parentd0d9aad78a3d64f1b0c5c7b7abcea05bc6bc82fd
[AArch64] Tighten predicates on SIMD shift intrinsics

gcc/

* config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
new predicates.
(aarch64_<sur>shll2_n<mode>): Likewise.
(aarch64_<sur>shr_n<mode>): Likewise.
(aarch64_<sur>sra_n<mode>: Likewise.
(aarch64_<sur>s<lr>i_n<mode>): Likewise.
(aarch64_<sur>qshl<u>_n<mode>): Likewise.
* config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
* config/aarch64/iterators.md (ve_mode): New.
(offsetlr): Remap to infix text for use in new predicates.
* config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
(aarch64_simd_shift_imm_hi): Likewise.
(aarch64_simd_shift_imm_si): Likewise.
(aarch64_simd_shift_imm_di): Likewise.
(aarch64_simd_shift_imm_offset_qi): Likewise.
(aarch64_simd_shift_imm_offset_hi): Likewise.
(aarch64_simd_shift_imm_offset_si): Likewise.
(aarch64_simd_shift_imm_offset_di): Likewise.
(aarch64_simd_shift_imm_bitsize_qi): Likewise.
(aarch64_simd_shift_imm_bitsize_hi): Likewise.
(aarch64_simd_shift_imm_bitsize_si): Likewise.
(aarch64_simd_shift_imm_bitsize_di): Likewise.

gcc/testsuite/

* gcc.target/aarch64/simd/vqshlb_1.c: New.

From-SVN: r215612
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/iterators.md
gcc/config/aarch64/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/simd/vqshlb_1.c [new file with mode: 0644]