[AArch64] Fix vqtb[lx][234] on big-endian
commitb631bffdd58c3eca55123eb63c4c62926f305698
authorclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Nov 2015 20:34:12 +0000 (6 20:34 +0000)
committerclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Nov 2015 20:34:12 +0000 (6 20:34 +0000)
treea71f3d8001a740d1cda82e68f8e9052785ed724f
parent1b6b5915b6f0c62e99e225716e1f948137e9717b
[AArch64] Fix vqtb[lx][234] on big-endian

2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/aarch64/aarch64-simd-builtins.def: Update builtins
tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
* config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
(aarch64_tbl3<mode>) ... this, which supports v16qi too.
(aarch64_tbx4v8qi): Rename to...
aarch64_tbx4<mode>): ... this.
(aarch64_qtbl3<mode>): New pattern.
(aarch64_qtbx3<mode>): New pattern.
(aarch64_qtbl4<mode>): New pattern.
(aarch64_qtbx4<mode>): New pattern.
* config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
(vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
(vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
(vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
(vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
(vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
(vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
(vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
functions.

gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vqtbX.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229886 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/testsuite/ChangeLog