aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-01-24 00:00:34 -0800
committerAndrew Pinski <quic_apinski@quicinc.com>2024-01-24 10:21:31 -0800
commite6fbc3cc786a74a098352868348e187877bfbc8b (patch)
tree589ed60cd8d9adacd6aa168048deb899db679db9 /gcc
parenta9a8426e534760b8d3a250e9bd3cff4db131a2be (diff)
downloadgcc-e6fbc3cc786a74a098352868348e187877bfbc8b.zip
gcc-e6fbc3cc786a74a098352868348e187877bfbc8b.tar.gz
gcc-e6fbc3cc786a74a098352868348e187877bfbc8b.tar.bz2
Fix vect_long_mult for aarch64 [PR109705]
On aarch64, vectorization of `long` multiply can be done if SVE is enabled or if long is 32bit (ILP32). It can also be done for constants too but there is no effective target test for that just yet. Build and tested on aarch64-linux-gnu with no regressions (also tested with SVE enabled). gcc/testsuite/ChangeLog: PR testsuite/109705 * lib/target-supports.exp (check_effective_target_vect_long_mult): Fix aarch64*-*-* checks. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/lib/target-supports.exp4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 73360cd..8252011 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -9090,7 +9090,9 @@ proc check_effective_target_vect_long_mult { } {
&& [check_effective_target_has_arch_pwr10])
|| [is-effective-target arm_neon]
|| ([istarget sparc*-*-*] && [check_effective_target_ilp32])
- || [istarget aarch64*-*-*]
+ || ([istarget aarch64*-*-*]
+ && ([check_effective_target_ilp32]
+ || check_effective_target_aarch64_sve]))
|| ([istarget mips*-*-*]
&& [et-is-effective-target mips_msa])
|| ([istarget riscv*-*-*]