diff --git a/include/xsimd/config/xsimd_config.hpp b/include/xsimd/config/xsimd_config.hpp index 58ce53462..e81dd8053 100644 --- a/include/xsimd/config/xsimd_config.hpp +++ b/include/xsimd/config/xsimd_config.hpp @@ -343,32 +343,26 @@ #endif -#ifdef __ARM_NEON - /** * @ingroup xsimd_config_macro * - * Set to 1 if NEON is available at compile-time, to 0 otherwise. + * Set to 1 if NEON64 is available at compile-time, to 0 otherwise. */ -#if __ARM_ARCH >= 7 -#define XSIMD_WITH_NEON 1 +#if defined(__aarch64__) || defined(_M_ARM64) +#define XSIMD_WITH_NEON64 1 #else -#define XSIMD_WITH_NEON 0 +#define XSIMD_WITH_NEON64 0 #endif /** * @ingroup xsimd_config_macro * - * Set to 1 if NEON64 is available at compile-time, to 0 otherwise. + * Set to 1 if NEON is available at compile-time, to 0 otherwise. */ -#ifdef __aarch64__ -#define XSIMD_WITH_NEON64 1 -#else -#define XSIMD_WITH_NEON64 0 -#endif +#if (defined(__ARM_NEON) && __ARM_ARCH >= 7) || XSIMD_WITH_NEON64 +#define XSIMD_WITH_NEON 1 #else #define XSIMD_WITH_NEON 0 -#define XSIMD_WITH_NEON64 0 #endif /**