This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, ARM] Constant vector permute for the Neon vext insn


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.lyon@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]