diff options
author | Alan Lawrence <alan.lawrence@arm.com> | 2014-06-03 11:28:55 +0000 |
---|---|---|
committer | Alan Lawrence <alalaw01@gcc.gnu.org> | 2014-06-03 11:28:55 +0000 |
commit | 923fcec3d8427c6169979294ea5f2a5e11cfd4cf (patch) | |
tree | cea9f6dffba394b50862fffc14e64513e44bfcf8 /gcc/function.c | |
parent | 2b3bd04055774268843ff094d5995e31ac52afa0 (diff) | |
download | gcc-923fcec3d8427c6169979294ea5f2a5e11cfd4cf.zip gcc-923fcec3d8427c6169979294ea5f2a5e11cfd4cf.tar.gz gcc-923fcec3d8427c6169979294ea5f2a5e11cfd4cf.tar.bz2 |
Recognize shuffle patterns for REV instructions on AArch64, rewrite intrinsics.
* 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.
From-SVN: r211174
Diffstat (limited to 'gcc/function.c')
0 files changed, 0 insertions, 0 deletions