in common/checksum/crc.cpp [127:155]
static void crc_init() {
#if defined(__x86_64__)
__builtin_cpu_init();
crc32c_auto = __builtin_cpu_supports("sse4.2") ? crc32c_hw : crc32c_sw;
auto avx512 = __builtin_cpu_supports("avx512f") &&
__builtin_cpu_supports("avx512dq") &&
__builtin_cpu_supports("avx512vl") &&
__builtin_cpu_supports("vpclmulqdq");
crc64ecma_auto = avx512 ? crc64ecma_hw_avx512 :
(__builtin_cpu_supports("sse") &&
__builtin_cpu_supports("pclmul")) ?
crc64ecma_hw_sse128 : crc64ecma_sw;
#elif defined(__aarch64__)
#ifdef __APPLE__ // apple silicon has hw for both crc
crc32c_auto = crc32c_hw;
crc64ecma_auto = crc64ecma_hw_sse128;
#elif defined(__linux__) // linux on arm: runtime detection
long hwcaps= getauxval(AT_HWCAP);
crc32c_auto = (hwcaps & HWCAP_CRC32) ? crc32c_hw : crc32c_sw;
crc64ecma_auto = (hwcaps & HWCAP_PMULL) ? crc64ecma_hw_sse128 : crc64ecma_sw;
#else
crc32c_auto = crc32c_sw;
crc64ecma_auto = crc64ecma_sw;
#endif
#else // not __aarch64__, not __x86_64__
crc32c_auto = crc32c_sw;
crc64ecma_auto = crc64ecma_sw;
#endif
}