Add Android CPU feature detection for NEON
Also see https://developer.android.com/ndk/guides/cpu-features.htmlpull/461/head
parent
d95a38a9fc
commit
a8b3327265
11
neon.cpp
11
neon.cpp
|
|
@ -73,9 +73,18 @@ bool CPU_TryNEON_ARM()
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
# else
|
# else
|
||||||
# if defined(__linux__) && (defined(__aarch32__) || defined(__aarch64__))
|
# if defined(__android__) && defined(CRYPTOPP_BOOL_ARM64)
|
||||||
|
if (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_ASIMD)
|
||||||
|
return true;
|
||||||
|
# elif defined(__android__) && defined(CRYPTOPP_BOOL_ARM32)
|
||||||
|
if (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON)
|
||||||
|
return true;
|
||||||
|
# elif defined(__linux__) && defined(__aarch64__)
|
||||||
if (getauxval(AT_HWCAP) & HWCAP_ASIMD)
|
if (getauxval(AT_HWCAP) & HWCAP_ASIMD)
|
||||||
return true;
|
return true;
|
||||||
|
# elif defined(__linux__) && defined(__aarch32__)
|
||||||
|
if (getauxval(AT_HWCAP2) & HWCAP2_ASIMD)
|
||||||
|
return true;
|
||||||
# elif defined(__linux__) && defined(__arm__)
|
# elif defined(__linux__) && defined(__arm__)
|
||||||
if (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)
|
if (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue