diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2021-06-09 16:00:01 +0000 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2021-06-09 16:00:01 +0000 |
commit | 880198da50e1beac9b7cf8ff1bff570359c5f2a0 (patch) | |
tree | 9fa9c1b21616638233e1432ccb16f9e94d4fe43b /gcc/omp-expand.c | |
parent | 5d8321127704ed0cca6d6008eafce2e9b8adf96c (diff) | |
download | gcc-880198da50e1beac9b7cf8ff1bff570359c5f2a0.zip gcc-880198da50e1beac9b7cf8ff1bff570359c5f2a0.tar.gz gcc-880198da50e1beac9b7cf8ff1bff570359c5f2a0.tar.bz2 |
arm: Auto-vectorization for MVE and Neon: vhadd/vrhadd
This patch adds support for auto-vectorization of average value
computation using vhadd or vrhadd, for both MVE and Neon.
The patch adds the needed [u]avg<mode>3_[floor|ceil] patterns to
vec-common.md, I'm not sure how to factorize them without introducing
an unspec iterator?
It also adds tests for 'floor' and for 'ceil', each for MVE and Neon.
2021-06-09 Christophe Lyon <christophe.lyon@linaro.org>
gcc/
* config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
(@mve_vrhaddq_<supf><mode): Likewise.
* config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
* config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
(avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.
gcc/testsuite/
* gcc.target/arm/simd/mve-vhadd-1.c: New test.
* gcc.target/arm/simd/mve-vhadd-2.c: New test.
* gcc.target/arm/simd/neon-vhadd-1.c: New test.
* gcc.target/arm/simd/neon-vhadd-2.c: New test.
Diffstat (limited to 'gcc/omp-expand.c')
0 files changed, 0 insertions, 0 deletions