diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2020-11-12 20:16:05 +0000 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2020-12-10 12:13:58 +0000 |
commit | 11a0beff64f71d03fa6614a985b6a870da6cc821 (patch) | |
tree | f99c82ff5331da8be93e309f1ba293b8f741afae /gcc/hooks.h | |
parent | 4cf70c20cb10acd6fb1016611d05540728176b60 (diff) | |
download | gcc-11a0beff64f71d03fa6614a985b6a870da6cc821.zip gcc-11a0beff64f71d03fa6614a985b6a870da6cc821.tar.gz gcc-11a0beff64f71d03fa6614a985b6a870da6cc821.tar.bz2 |
arm: Auto-vectorization for MVE: vand
This patch enables MVE vandq instructions for auto-vectorization. MVE
vandq insns in mve.md are modified to use 'and' instead of unspec
expression to support and<mode>3. The and<mode>3 expander is added to
vec-common.md
2020-12-03 Christophe Lyon <christophe.lyon@linaro.org>
gcc/
* config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U.
(VANQ): Remove.
(VDQ): Add TARGET_HAVE_MVE condition where relevant.
* config/arm/mve.md (mve_vandq_u<mode>): New entry for vand
instruction using expression 'and'.
(mve_vandq_s<mode>): New expander.
(mve_vaddq_n_f<mode>): Use 'and' code instead of unspec.
* config/arm/neon.md (and<mode>3): Rename into and<mode>3_neon.
* config/arm/predicates.md (imm_for_neon_inv_logic_operand):
Enable for MVE.
* config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove.
* config/arm/vec-common.md (and<mode>3): New expander.
gcc/testsuite/
* gcc.target/arm/simd/mve-vand.c: New test.
Diffstat (limited to 'gcc/hooks.h')
0 files changed, 0 insertions, 0 deletions