arm: Auto-vectorization for MVE: vbic
authorChristophe Lyon <christophe.lyon@linaro.org>
Wed, 25 Nov 2020 11:08:48 +0000 (11:08 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Mon, 14 Dec 2020 10:47:29 +0000 (10:47 +0000)
commit5391cf07be7117c2df605acbfad31a4f9c6b7a65
treeb4fbdcb16763006118f5bd81565e6013a0c59484
parent434fb3b6cc7d4a8d9d07c7e0052a89093953c8c0
arm: Auto-vectorization for MVE: vbic

This patch enables MVE vbic instructions for auto-vectorization.  MVE
vbicq insns in mve.md are modified to use 'and not' instead of unspec
expression.

2020-12-11  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U.
(VBICQ): Remove.
* config/arm/mve.md (mve_vbicq_u<mode>): New entry for vbic
instruction using expression and not.
(mve_vbicq_s<mode>): New expander.
(mve_vbicq_f<mode>): Replace use of unspec by 'and not'.
* config/arm/unspecs.md (VBICQ_S, VBICQ_U, VBICQ_F): Remove.

gcc/testsuite/
* gcc.target/arm/simd/mve-vbic.c: Add tests for vbic.
gcc/config/arm/iterators.md
gcc/config/arm/mve.md
gcc/config/arm/unspecs.md
gcc/testsuite/gcc.target/arm/simd/mve-vbic.c [new file with mode: 0644]