aarch64: Extend aarch64-autovec-preference==2 to 128-bit SVE
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 18 Dec 2020 16:33:43 +0000 (16:33 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Fri, 18 Dec 2020 16:33:43 +0000 (16:33 +0000)
commit7ff5706fcd732b671afb2d308e8dab7e23050823
treec5aa1c9925a4f035141da8066ddb32b813ad6285
parentbcac28716bbb74392a95d769f593a6b48b3330b1
aarch64: Extend aarch64-autovec-preference==2 to 128-bit SVE

When compiling with -msve-vector-bits=128, aarch64_preferred_simd_mode
would pass the same vector width to aarch64_simd_container_mode for
both SVE and Advanced SIMD, and so Advanced SIMD would always “win”.
This patch instead makes it choose directly between SVE and Advanced
SIMD modes, so that aarch64-autovec-preference==2 and
aarch64-autovec-preference==4 work for this configuration.

(aarch64-autovec-preference shouldn't affect aarch64_simd_container_mode
because that would have an ABI impact for things like GNU vectors.)

gcc/
* config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use
aarch64_full_sve_mode and aarch64_vq_mode directly, instead of
going via aarch64_simd_container_mode.
gcc/config/aarch64/aarch64.c