[clang] [llvm] [ARM][Clang] Make `+nosimd` functional for AArch32 Targets (PR #130623)
Jack Styles via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 12 04:38:53 PDT 2025
================
@@ -334,8 +334,8 @@ ARM_CPU_NAME("cortex-r7", ARMV7R, FK_VFPV3_D16_FP16, false,
(ARM::AEK_MP | ARM::AEK_HWDIVARM))
ARM_CPU_NAME("cortex-r8", ARMV7R, FK_VFPV3_D16_FP16, false,
(ARM::AEK_MP | ARM::AEK_HWDIVARM))
-ARM_CPU_NAME("cortex-r52", ARMV8R, FK_NEON_FP_ARMV8, false, ARM::AEK_NONE)
-ARM_CPU_NAME("cortex-r52plus", ARMV8R, FK_NEON_FP_ARMV8, false, ARM::AEK_NONE)
+ARM_CPU_NAME("cortex-r52", ARMV8R, FK_NEON_FP_ARMV8, false, ARM::AEK_SIMD)
+ARM_CPU_NAME("cortex-r52plus", ARMV8R, FK_NEON_FP_ARMV8, false, ARM::AEK_SIMD)
----------------
Stylie777 wrote:
So, yes this is needed. Because `simd` is now linked to `neon`, if it is not explicitly defined for each Architecture/CPU that supports NEON, `-target-feature -neon` is passed by the compiler, disabling the feature. This is because when it parses the `.def` file, that CPU/Architecture is told SIMD is not supported as it is not included. I think it was a fluke it worked before, and it picked it up from the FPU in the backend, but the responsibility for determining if Neon is supported now lies with the front end with this change, so we need to explicitly define it. I will provide an update in due course that defines it for the Architecture's and CPU's that support NEON and tests to support it. I will also update the description of the PR to state this.
https://github.com/llvm/llvm-project/pull/130623
More information about the cfe-commits
mailing list