From 698e9dab5b3c49c8c88e41697c39c6ee9beee12b Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Mon, 2 Feb 2026 10:48:15 +0100 Subject: [PATCH] Fix runtime detection of SVE It should obviously happen even if we don't compile for SVE. That's the goal of runtime detection :-/ Thanks a lot to @AntoinePrv for spotting this. --- include/xsimd/config/xsimd_cpuid.hpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/include/xsimd/config/xsimd_cpuid.hpp b/include/xsimd/config/xsimd_cpuid.hpp index 9805bf087..1be4f018a 100644 --- a/include/xsimd/config/xsimd_cpuid.hpp +++ b/include/xsimd/config/xsimd_cpuid.hpp @@ -105,19 +105,15 @@ namespace xsimd neon64 = 1; #if defined(__linux__) && (!defined(__ANDROID_API__) || __ANDROID_API__ >= 18) i8mm_neon64 = bool(getauxval(AT_HWCAP2) & HWCAP2_I8MM); + sve = bool(getauxval(AT_HWCAP) & HWCAP_SVE); #endif + #elif defined(__ARM_NEON) || defined(_M_ARM) #if defined(__linux__) && (!defined(__ANDROID_API__) || __ANDROID_API__ >= 18) neon = bool(getauxval(AT_HWCAP) & HWCAP_NEON); #endif -#elif defined(__ARM_FEATURE_SVE) && defined(__ARM_FEATURE_SVE_BITS) && __ARM_FEATURE_SVE_BITS > 0 - -#if defined(__linux__) && (!defined(__ANDROID_API__) || __ANDROID_API__ >= 18) - sve = bool(getauxval(AT_HWCAP) & HWCAP_SVE); -#endif - #elif defined(__riscv_vector) && defined(__riscv_v_fixed_vlen) && __riscv_v_fixed_vlen > 0 #if defined(__linux__) && (!defined(__ANDROID_API__) || __ANDROID_API__ >= 18)