diff options
Diffstat (limited to 'src/common/x64')
| -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; | 
