From 6aecde59d306a7533be963c2f5bd98bc56075d63 Mon Sep 17 00:00:00 2001 From: Jamie Vital Date: Thu, 5 Sep 2024 10:23:19 -0400 Subject: [PATCH] Fix: Windows does not define __ARM_NEON (#363) * Windows does not define __ARM_NEON However, Windows requires NEON to work, so assume it is there if build with MSVC * Clarify NEON availability in MSVC targeting arm64 * Fix Formatting --- include/cpu_features_macros.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/cpu_features_macros.h b/include/cpu_features_macros.h index b95cead..1150224 100644 --- a/include/cpu_features_macros.h +++ b/include/cpu_features_macros.h @@ -234,13 +234,14 @@ #endif // defined(CPU_FEATURES_ARCH_X86) -#if defined(CPU_FEATURES_ARCH_ANY_ARM) -#if defined(__ARM_NEON) +// Note: MSVC targeting ARM does not define `__ARM_NEON` but Windows on ARM +// requires it. In that case we force NEON detection. +#if defined(__ARM_NEON) || \ + (defined(CPU_FEATURES_COMPILER_MSC) && defined(CPU_FEATURES_ARCH_ANY_ARM)) #define CPU_FEATURES_COMPILED_ANY_ARM_NEON 1 #else #define CPU_FEATURES_COMPILED_ANY_ARM_NEON 0 -#endif // defined(__ARM_NEON) -#endif // defined(CPU_FEATURES_ARCH_ANY_ARM) +#endif #if defined(CPU_FEATURES_ARCH_MIPS) #if defined(__mips_msa)