From c8d81016caacdc2b954bbedabb1804bc2e8223f3 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Wed, 4 Jun 2025 10:41:24 +0200 Subject: [PATCH] Fix compile error on apple silicon --- include/cpu_features.h | 3 +++ src/cpu_features.c | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/include/cpu_features.h b/include/cpu_features.h index e7630fc80..f583ed9bc 100644 --- a/include/cpu_features.h +++ b/include/cpu_features.h @@ -7,7 +7,10 @@ #define HC_CPU_FEATURES_H #include + +#if defined(__x86_64__) || defined(_M_X64) #include +#endif // SIMD detection diff --git a/src/cpu_features.c b/src/cpu_features.c index 2f104a044..cf00a8438 100644 --- a/src/cpu_features.c +++ b/src/cpu_features.c @@ -7,6 +7,16 @@ #include "types.h" #include "cpu_features.h" +#if defined(__aarch64__) || defined(__arm64__) + +int cpu_supports_sse2 () { return 1; } +int cpu_supports_ssse3 () { return 0; } +int cpu_supports_xop () { return 0; } +int cpu_supports_avx2 () { return 0; } +int cpu_supports_avx512f () { return 0; } +int cpu_supports_avx512vl () { return 0; } + +#else static inline void cpuid (u32 leaf, u32 subleaf, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) { __cpuid_count (leaf, subleaf, *eax, *ebx, *ecx, *edx); @@ -28,7 +38,7 @@ int cpu_supports_sse2 () { u32 eax, ebx, ecx, edx; - cpuid(1, 0, &eax, &ebx, &ecx, &edx); + cpuid (1, 0, &eax, &ebx, &ecx, &edx); return (edx & bit_SSE2) != 0; } @@ -120,6 +130,7 @@ int cpu_supports_avx512vl () return (ebx & (1u << 31)) != 0; } +#endif int cpu_chipset_test () {