Hi, The patch below enables GCC for ARM to implement relevant constant vector permutations using the Neon vext instruction, by extending the support currently in place for vrev, vzip, vunzip and vtrn.
For the cases where vext and vrev would lead to the same result, I have chosen to keep using vrev to avoid updating the testsuite when both are equivalent (1 cycle) or when vrev is faster (1 cycle when operating on Qn vs 2 cycles for vext). Tested with qemu-arm on arm-none-linux-gnueabi. Christophe. 2012-08-23 Christophe Lyon <christophe.l...@linaro.org> gcc/ * config/arm/arm.c (arm_evpc_neon_vext): New function. (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext. gcc/testsuite/ * gcc.target/arm/neon-vext.c: New tests.
gcc-vec-permute-vext.patch
Description: Binary data