diff options
author | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
---|---|---|
committer | Ben Cheng <bccheng@google.com> | 2014-03-25 22:37:19 -0700 |
commit | 1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch) | |
tree | c607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c | |
parent | 283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff) | |
download | toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2 toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip |
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c | 439 |
1 files changed, 439 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c b/gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c new file mode 100644 index 000000000..6281cdae7 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/aarch64/table-intrinsics.c @@ -0,0 +1,439 @@ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ + +#include "arm_neon.h" + +int8x8_t +tbl_tests8_ (int8x8_t tab, int8x8_t idx) +{ + return vtbl1_s8 (tab, idx); +} + +uint8x8_t +tbl_testu8_ (uint8x8_t tab, uint8x8_t idx) +{ + return vtbl1_u8 (tab, idx); +} + +poly8x8_t +tbl_testp8_ (poly8x8_t tab, uint8x8_t idx) +{ + return vtbl1_p8 (tab, idx); +} + +int8x8_t +tbl_tests8_2 (int8x8x2_t tab, int8x8_t idx) +{ + return vtbl2_s8 (tab, idx); +} + +uint8x8_t +tbl_testu8_2 (uint8x8x2_t tab, uint8x8_t idx) +{ + return vtbl2_u8 (tab, idx); +} + +poly8x8_t +tbl_testp8_2 (poly8x8x2_t tab, uint8x8_t idx) +{ + return vtbl2_p8 (tab, idx); +} + +int8x8_t +tbl_tests8_3 (int8x8x3_t tab, int8x8_t idx) +{ + return vtbl3_s8 (tab, idx); +} + +uint8x8_t +tbl_testu8_3 (uint8x8x3_t tab, uint8x8_t idx) +{ + return vtbl3_u8 (tab, idx); +} + +poly8x8_t +tbl_testp8_3 (poly8x8x3_t tab, uint8x8_t idx) +{ + return vtbl3_p8 (tab, idx); +} + +int8x8_t +tbl_tests8_4 (int8x8x4_t tab, int8x8_t idx) +{ + return vtbl4_s8 (tab, idx); +} + +uint8x8_t +tbl_testu8_4 (uint8x8x4_t tab, uint8x8_t idx) +{ + return vtbl4_u8 (tab, idx); +} + +poly8x8_t +tbl_testp8_4 (poly8x8x4_t tab, uint8x8_t idx) +{ + return vtbl4_p8 (tab, idx); +} + +int8x8_t +tb_tests8_ (int8x8_t r, int8x8_t tab, int8x8_t idx) +{ + return vtbx1_s8 (r, tab, idx); +} + +uint8x8_t +tb_testu8_ (uint8x8_t r, uint8x8_t tab, uint8x8_t idx) +{ + return vtbx1_u8 (r, tab, idx); +} + +poly8x8_t +tb_testp8_ (poly8x8_t r, poly8x8_t tab, uint8x8_t idx) +{ + return vtbx1_p8 (r, tab, idx); +} + +int8x8_t +tb_tests8_2 (int8x8_t r, int8x8x2_t tab, int8x8_t idx) +{ + return vtbx2_s8 (r, tab, idx); +} + +uint8x8_t +tb_testu8_2 (uint8x8_t r, uint8x8x2_t tab, uint8x8_t idx) +{ + return vtbx2_u8 (r, tab, idx); +} + +poly8x8_t +tb_testp8_2 (poly8x8_t r, poly8x8x2_t tab, uint8x8_t idx) +{ + return vtbx2_p8 (r, tab, idx); +} + +int8x8_t +tb_tests8_3 (int8x8_t r, int8x8x3_t tab, int8x8_t idx) +{ + return vtbx3_s8 (r, tab, idx); +} + +uint8x8_t +tb_testu8_3 (uint8x8_t r, uint8x8x3_t tab, uint8x8_t idx) +{ + return vtbx3_u8 (r, tab, idx); +} + +poly8x8_t +tb_testp8_3 (poly8x8_t r, poly8x8x3_t tab, uint8x8_t idx) +{ + return vtbx3_p8 (r, tab, idx); +} + +int8x8_t +tb_tests8_4 (int8x8_t r, int8x8x4_t tab, int8x8_t idx) +{ + return vtbx4_s8 (r, tab, idx); +} + +uint8x8_t +tb_testu8_4 (uint8x8_t r, uint8x8x4_t tab, uint8x8_t idx) +{ + return vtbx4_u8 (r, tab, idx); +} + +poly8x8_t +tb_testp8_4 (poly8x8_t r, poly8x8x4_t tab, uint8x8_t idx) +{ + return vtbx4_p8 (r, tab, idx); +} + +int8x8_t +qtbl_tests8_ (int8x16_t tab, uint8x8_t idx) +{ + return vqtbl1_s8 (tab, idx); +} + +uint8x8_t +qtbl_testu8_ (uint8x16_t tab, uint8x8_t idx) +{ + return vqtbl1_u8 (tab, idx); +} + +poly8x8_t +qtbl_testp8_ (poly8x16_t tab, uint8x8_t idx) +{ + return vqtbl1_p8 (tab, idx); +} + +int8x8_t +qtbl_tests8_2 (int8x16x2_t tab, uint8x8_t idx) +{ + return vqtbl2_s8 (tab, idx); +} + +uint8x8_t +qtbl_testu8_2 (uint8x16x2_t tab, uint8x8_t idx) +{ + return vqtbl2_u8 (tab, idx); +} + +poly8x8_t +qtbl_testp8_2 (poly8x16x2_t tab, uint8x8_t idx) +{ + return vqtbl2_p8 (tab, idx); +} + +int8x8_t +qtbl_tests8_3 (int8x16x3_t tab, uint8x8_t idx) +{ + return vqtbl3_s8 (tab, idx); +} + +uint8x8_t +qtbl_testu8_3 (uint8x16x3_t tab, uint8x8_t idx) +{ + return vqtbl3_u8 (tab, idx); +} + +poly8x8_t +qtbl_testp8_3 (poly8x16x3_t tab, uint8x8_t idx) +{ + return vqtbl3_p8 (tab, idx); +} + +int8x8_t +qtbl_tests8_4 (int8x16x4_t tab, uint8x8_t idx) +{ + return vqtbl4_s8 (tab, idx); +} + +uint8x8_t +qtbl_testu8_4 (uint8x16x4_t tab, uint8x8_t idx) +{ + return vqtbl4_u8 (tab, idx); +} + +poly8x8_t +qtbl_testp8_4 (poly8x16x4_t tab, uint8x8_t idx) +{ + return vqtbl4_p8 (tab, idx); +} + +int8x8_t +qtb_tests8_ (int8x8_t r, int8x16_t tab, uint8x8_t idx) +{ + return vqtbx1_s8 (r, tab, idx); +} + +uint8x8_t +qtb_testu8_ (uint8x8_t r, uint8x16_t tab, uint8x8_t idx) +{ + return vqtbx1_u8 (r, tab, idx); +} + +poly8x8_t +qtb_testp8_ (poly8x8_t r, poly8x16_t tab, uint8x8_t idx) +{ + return vqtbx1_p8 (r, tab, idx); +} + +int8x8_t +qtb_tests8_2 (int8x8_t r, int8x16x2_t tab, uint8x8_t idx) +{ + return vqtbx2_s8 (r, tab, idx); +} + +uint8x8_t +qtb_testu8_2 (uint8x8_t r, uint8x16x2_t tab, uint8x8_t idx) +{ + return vqtbx2_u8 (r, tab, idx); +} + +poly8x8_t +qtb_testp8_2 (poly8x8_t r, poly8x16x2_t tab, uint8x8_t idx) +{ + return vqtbx2_p8 (r, tab, idx); +} + +int8x8_t +qtb_tests8_3 (int8x8_t r, int8x16x3_t tab, uint8x8_t idx) +{ + return vqtbx3_s8 (r, tab, idx); +} + +uint8x8_t +qtb_testu8_3 (uint8x8_t r, uint8x16x3_t tab, uint8x8_t idx) +{ + return vqtbx3_u8 (r, tab, idx); +} + +poly8x8_t +qtb_testp8_3 (poly8x8_t r, poly8x16x3_t tab, uint8x8_t idx) +{ + return vqtbx3_p8 (r, tab, idx); +} + +int8x8_t +qtb_tests8_4 (int8x8_t r, int8x16x4_t tab, uint8x8_t idx) +{ + return vqtbx4_s8 (r, tab, idx); +} + +uint8x8_t +qtb_testu8_4 (uint8x8_t r, uint8x16x4_t tab, uint8x8_t idx) +{ + return vqtbx4_u8 (r, tab, idx); +} + +poly8x8_t +qtb_testp8_4 (poly8x8_t r, poly8x16x4_t tab, uint8x8_t idx) +{ + return vqtbx4_p8 (r, tab, idx); +} + +int8x16_t +qtblq_tests8_ (int8x16_t tab, uint8x16_t idx) +{ + return vqtbl1q_s8 (tab, idx); +} + +uint8x16_t +qtblq_testu8_ (uint8x16_t tab, uint8x16_t idx) +{ + return vqtbl1q_u8 (tab, idx); +} + +poly8x16_t +qtblq_testp8_ (poly8x16_t tab, uint8x16_t idx) +{ + return vqtbl1q_p8 (tab, idx); +} + +int8x16_t +qtblq_tests8_2 (int8x16x2_t tab, uint8x16_t idx) +{ + return vqtbl2q_s8 (tab, idx); +} + +uint8x16_t +qtblq_testu8_2 (uint8x16x2_t tab, uint8x16_t idx) +{ + return vqtbl2q_u8 (tab, idx); +} + +poly8x16_t +qtblq_testp8_2 (poly8x16x2_t tab, uint8x16_t idx) +{ + return vqtbl2q_p8 (tab, idx); +} + +int8x16_t +qtblq_tests8_3 (int8x16x3_t tab, uint8x16_t idx) +{ + return vqtbl3q_s8 (tab, idx); +} + +uint8x16_t +qtblq_testu8_3 (uint8x16x3_t tab, uint8x16_t idx) +{ + return vqtbl3q_u8 (tab, idx); +} + +poly8x16_t +qtblq_testp8_3 (poly8x16x3_t tab, uint8x16_t idx) +{ + return vqtbl3q_p8 (tab, idx); +} + +int8x16_t +qtblq_tests8_4 (int8x16x4_t tab, uint8x16_t idx) +{ + return vqtbl4q_s8 (tab, idx); +} + +uint8x16_t +qtblq_testu8_4 (uint8x16x4_t tab, uint8x16_t idx) +{ + return vqtbl4q_u8 (tab, idx); +} + +poly8x16_t +qtblq_testp8_4 (poly8x16x4_t tab, uint8x16_t idx) +{ + return vqtbl4q_p8 (tab, idx); +} + +int8x16_t +qtbxq_tests8_ (int8x16_t r, int8x16_t tab, uint8x16_t idx) +{ + return vqtbx1q_s8 (r, tab, idx); +} + +uint8x16_t +qtbxq_testu8_ (uint8x16_t r, uint8x16_t tab, uint8x16_t idx) +{ + return vqtbx1q_u8 (r, tab, idx); +} + +poly8x16_t +qtbxq_testp8_ (poly8x16_t r, poly8x16_t tab, uint8x16_t idx) +{ + return vqtbx1q_p8 (r, tab, idx); +} + +int8x16_t +qtbxq_tests8_2 (int8x16_t r, int8x16x2_t tab, uint8x16_t idx) +{ + return vqtbx2q_s8 (r, tab, idx); +} + +uint8x16_t +qtbxq_testu8_2 (uint8x16_t r, uint8x16x2_t tab, uint8x16_t idx) +{ + return vqtbx2q_u8 (r, tab, idx); +} + +poly8x16_t +qtbxq_testp8_2 (poly8x16_t r, poly8x16x2_t tab, uint8x16_t idx) +{ + return vqtbx2q_p8 (r, tab, idx); +} + +int8x16_t +qtbxq_tests8_3 (int8x16_t r, int8x16x3_t tab, uint8x16_t idx) +{ + return vqtbx3q_s8 (r, tab, idx); +} + +uint8x16_t +qtbxq_testu8_3 (uint8x16_t r, uint8x16x3_t tab, uint8x16_t idx) +{ + return vqtbx3q_u8 (r, tab, idx); +} + +poly8x16_t +qtbxq_testp8_3 (poly8x16_t r, poly8x16x3_t tab, uint8x16_t idx) +{ + return vqtbx3q_p8 (r, tab, idx); +} + +int8x16_t +qtbxq_tests8_4 (int8x16_t r, int8x16x4_t tab, uint8x16_t idx) +{ + return vqtbx4q_s8 (r, tab, idx); +} + +uint8x16_t +qtbxq_testu8_4 (uint8x16_t r, uint8x16x4_t tab, uint8x16_t idx) +{ + return vqtbx4q_u8 (r, tab, idx); +} + +poly8x16_t +qtbxq_testp8_4 (poly8x16_t r, poly8x16x4_t tab, uint8x16_t idx) +{ + return vqtbx4q_p8 (r, tab, idx); +} + +/* { dg-final { scan-assembler-times "tbl v" 42} } */ +/* { dg-final { scan-assembler-times "tbx v" 30} } */ |