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.

Attachment: gcc-vec-permute-vext.patch
Description: Binary data

Reply via email to