Merge pull request #1019 from devnexen/avxchk_fix

AVX check priorities change, checking avx flag before xcr0 instead.
master
yvt 2022-05-13 00:29:35 +09:00 committed by GitHub
commit fc674eaf85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -54,7 +54,7 @@ namespace spades {
featureEdx = ar[3];
// xsave/osxsave
if ((featureEcx & 26) && (featureEcx & 27)) {
if ((featureEcx & (1U << 28)) && (featureEcx & 26) && (featureEcx & 27)) {
auto x = xcr0();
featureXcr0Avx = ((x & 6) == 6);
featureXcr0Avx512 = ((x & 224) == 224);
@ -89,7 +89,7 @@ namespace spades {
case CpuFeature::SSE3: return featureEcx & (1U << 0);
case CpuFeature::SSSE3: return featureEcx & (1U << 9);
case CpuFeature::FMA: return featureEcx & (1U << 12);
case CpuFeature::AVX: return (featureXcr0Avx && (featureEcx & (1U << 28)));
case CpuFeature::AVX: return featureXcr0Avx;
case CpuFeature::AVX2: return (featureXcr0Avx && subfeature & (1U << 5));
case CpuFeature::AVX512CD: return (featureXcr0Avx512 && subfeature & (1U << 28));
case CpuFeature::AVX512ER: return (featureXcr0Avx512 && subfeature & (1U << 27));