diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2020-05-16 07:24:57 -0400 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2020-06-20 00:31:37 -0400 |
commit | d6474b4aca7f054d00df350c716709475ef0f49b (patch) | |
tree | 350f48b2963f2d82b0575865145a386ee61e6988 | |
parent | 7d1dca4c981d04bcb18cd5ecc6a4fe3f71d85560 (diff) |
common/cpu_detect: Add AVX512 detection
-rw-r--r-- | src/common/x64/cpu_detect.cpp | 5 | ||||
-rw-r--r-- | src/common/x64/cpu_detect.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/common/x64/cpu_detect.cpp b/src/common/x64/cpu_detect.cpp index c9349a6b4..f35dcb498 100644 --- a/src/common/x64/cpu_detect.cpp +++ b/src/common/x64/cpu_detect.cpp @@ -110,6 +110,11 @@ static CPUCaps Detect() { caps.bmi1 = true; if ((cpu_id[1] >> 8) & 1) caps.bmi2 = true; + // Checks for AVX512F, AVX512CD, AVX512VL, AVX512DQ, AVX512BW (Intel Skylake-X/SP) + if ((cpu_id[1] >> 16) & 1 && (cpu_id[1] >> 28) & 1 && (cpu_id[1] >> 31) & 1 && + (cpu_id[1] >> 17) & 1 && (cpu_id[1] >> 30) & 1) { + caps.avx512 = caps.avx2; + } } } diff --git a/src/common/x64/cpu_detect.h b/src/common/x64/cpu_detect.h index 20f2ba234..7606c3f7b 100644 --- a/src/common/x64/cpu_detect.h +++ b/src/common/x64/cpu_detect.h @@ -19,6 +19,7 @@ struct CPUCaps { bool lzcnt; bool avx; bool avx2; + bool avx512; bool bmi1; bool bmi2; bool fma; |