gcc/
authoryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Jul 2014 06:02:20 +0000 (06:02 +0000)
committeryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 Jul 2014 06:02:20 +0000 (06:02 +0000)
commit0ff9f03750e530e4e9aef2f2c9e9693697a8919c
tree623f0f2aa9e2d73ad903df72c770060a5c087b21
parentfe6078e4ce27b080fe13f23eda3c5d8c21f0fad9
gcc/
2014-07-17  Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r211174.
2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>

* config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
New pattern.
* config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
(aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
* config/aarch64/iterators.md (REVERSE): New iterator.
(UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
(rev_op): New int_attribute.
* config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
Replace temporary __asm__ with __builtin_shuffle.

gcc/testsuite
2014-07-17  Yvan Roux  <yvan.roux@linaro.org>

Backport from trunk r210153.
2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>

* gcc.target/aarch64/simd/vrev16p8_1.c: New file.
* gcc.target/aarch64/simd/vrev16p8.x: New file.
* gcc.target/aarch64/simd/vrev16qp8_1.c: New file.
* gcc.target/aarch64/simd/vrev16qp8.x: New file.
* gcc.target/aarch64/simd/vrev16qs8_1.c: New file.
* gcc.target/aarch64/simd/vrev16qs8.x: New file.
* gcc.target/aarch64/simd/vrev16qu8_1.c: New file.
* gcc.target/aarch64/simd/vrev16qu8.x: New file.
* gcc.target/aarch64/simd/vrev16s8_1.c: New file.
* gcc.target/aarch64/simd/vrev16s8.x: New file.
* gcc.target/aarch64/simd/vrev16u8_1.c: New file.
* gcc.target/aarch64/simd/vrev16u8.x: New file.
* gcc.target/aarch64/simd/vrev32p16_1.c: New file.
* gcc.target/aarch64/simd/vrev32p16.x: New file.
* gcc.target/aarch64/simd/vrev32p8_1.c: New file.
* gcc.target/aarch64/simd/vrev32p8.x: New file.
* gcc.target/aarch64/simd/vrev32qp16_1.c: New file.
* gcc.target/aarch64/simd/vrev32qp16.x: New file.
* gcc.target/aarch64/simd/vrev32qp8_1.c: New file.
* gcc.target/aarch64/simd/vrev32qp8.x: New file.
* gcc.target/aarch64/simd/vrev32qs16_1.c: New file.
* gcc.target/aarch64/simd/vrev32qs16.x: New file.
* gcc.target/aarch64/simd/vrev32qs8_1.c: New file.
* gcc.target/aarch64/simd/vrev32qs8.x: New file.
* gcc.target/aarch64/simd/vrev32qu16_1.c: New file.
* gcc.target/aarch64/simd/vrev32qu16.x: New file.
* gcc.target/aarch64/simd/vrev32qu8_1.c: New file.
* gcc.target/aarch64/simd/vrev32qu8.x: New file.
* gcc.target/aarch64/simd/vrev32s16_1.c: New file.
* gcc.target/aarch64/simd/vrev32s16.x: New file.
* gcc.target/aarch64/simd/vrev32s8_1.c: New file.
* gcc.target/aarch64/simd/vrev32s8.x: New file.
* gcc.target/aarch64/simd/vrev32u16_1.c: New file.
* gcc.target/aarch64/simd/vrev32u16.x: New file.
* gcc.target/aarch64/simd/vrev32u8_1.c: New file.
* gcc.target/aarch64/simd/vrev32u8.x: New file.
* gcc.target/aarch64/simd/vrev64f32_1.c: New file.
* gcc.target/aarch64/simd/vrev64f32.x: New file.
* gcc.target/aarch64/simd/vrev64p16_1.c: New file.
* gcc.target/aarch64/simd/vrev64p16.x: New file.
* gcc.target/aarch64/simd/vrev64p8_1.c: New file.
* gcc.target/aarch64/simd/vrev64p8.x: New file.
* gcc.target/aarch64/simd/vrev64qf32_1.c: New file.
* gcc.target/aarch64/simd/vrev64qf32.x: New file.
* gcc.target/aarch64/simd/vrev64qp16_1.c: New file.
* gcc.target/aarch64/simd/vrev64qp16.x: New file.
* gcc.target/aarch64/simd/vrev64qp8_1.c: New file.
* gcc.target/aarch64/simd/vrev64qp8.x: New file.
* gcc.target/aarch64/simd/vrev64qs16_1.c: New file.
* gcc.target/aarch64/simd/vrev64qs16.x: New file.
* gcc.target/aarch64/simd/vrev64qs32_1.c: New file.
* gcc.target/aarch64/simd/vrev64qs32.x: New file.
* gcc.target/aarch64/simd/vrev64qs8_1.c: New file.
* gcc.target/aarch64/simd/vrev64qs8.x: New file.
* gcc.target/aarch64/simd/vrev64qu16_1.c: New file.
* gcc.target/aarch64/simd/vrev64qu16.x: New file.
* gcc.target/aarch64/simd/vrev64qu32_1.c: New file.
* gcc.target/aarch64/simd/vrev64qu32.x: New file.
* gcc.target/aarch64/simd/vrev64qu8_1.c: New file.
* gcc.target/aarch64/simd/vrev64qu8.x: New file.
* gcc.target/aarch64/simd/vrev64s16_1.c: New file.
* gcc.target/aarch64/simd/vrev64s16.x: New file.
* gcc.target/aarch64/simd/vrev64s32_1.c: New file.
* gcc.target/aarch64/simd/vrev64s32.x: New file.
* gcc.target/aarch64/simd/vrev64s8_1.c: New file.
* gcc.target/aarch64/simd/vrev64s8.x: New file.
* gcc.target/aarch64/simd/vrev64u16_1.c: New file.
* gcc.target/aarch64/simd/vrev64u16.x: New file.
* gcc.target/aarch64/simd/vrev64u32_1.c: New file.
* gcc.target/aarch64/simd/vrev64u32.x: New file.
* gcc.target/aarch64/simd/vrev64u8_1.c: New file.
* gcc.target/aarch64/simd/vrev64u8.x: New file.

git-svn-id: svn://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@212715 138bc75d-0d04-0410-961f-82ee72b054a4
78 files changed:
gcc/ChangeLog.linaro
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md
gcc/testsuite/ChangeLog.linaro
gcc/testsuite/gcc.target/aarch64/simd/vrev16p8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16p8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qp8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qp8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qs8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qs8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qu8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16qu8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16s8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16s8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16u8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev16u8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32p16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32p16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32p8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32p8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qp16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qp16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qp8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qp8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qs16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qs16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qs8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qs8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qu16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qu16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qu8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32qu8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32s16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32s8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32s8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32u16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32u16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32u8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev32u8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64f32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64f32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64p16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64p16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64p8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64p8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qf32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qf32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qp16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qp16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qp8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qp8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qs8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64qu8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64s8_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u16.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u16_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u32.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u32_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u8.x [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/simd/vrev64u8_1.c [new file with mode: 0644]