aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2021-06-09 16:00:01 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2021-06-09 16:00:01 +0000
commit880198da50e1beac9b7cf8ff1bff570359c5f2a0 (patch)
tree9fa9c1b21616638233e1432ccb16f9e94d4fe43b /gcc/ada
parent5d8321127704ed0cca6d6008eafce2e9b8adf96c (diff)
downloadgcc-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/ada')
0 files changed, 0 insertions, 0 deletions