File tree Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Original file line number Diff line number Diff line change 55#include < algorithm>
66#include < array>
77
8+ #if defined(__linux__) && (defined(__ARM_NEON) || defined(_M_ARM))
9+ #include < sys/auxv.h>
10+ #include < asm/hwcap.h>
11+ #endif
12+
813#if defined(_MSC_VER)
914// Contains the definition of __cpuidex
1015#include < intrin.h>
@@ -46,12 +51,14 @@ namespace xsimd
4651 neon64 = 1 ;
4752 best = neon64::version ();
4853#elif defined(__ARM_NEON) || defined(_M_ARM)
49- // TODO: fix undefined error of AT_HWCAP on arm7
50- // neon = bool(getauxval(AT_HWCAP) & HWCAP_NEON);
51- // best = neon::version() * neon;
52- neon = 1 ;
54+ #if defined(__linux__)
55+ neon = bool (getauxval (AT_HWCAP) & HWCAP_NEON);
56+ #else
57+ // that's very conservative :-/
58+ neon = 0 ;
59+ #endif
5360 neon64 = 0 ;
54- best = neon::version ();
61+ best = neon::version () * neon ;
5562
5663#elif defined(__x86_64__) || defined(__i386__) || defined(_M_AMD64) || defined(_M_IX86)
5764 auto get_cpuid = [](int reg[4 ], int func_id)
You can’t perform that action at this time.
0 commit comments