From 99d6ba6acb2e31fa4828a93f1561c02ee36ac89a Mon Sep 17 00:00:00 2001 From: Hongyu Date: Wed, 9 Dec 2020 19:18:41 +0000 Subject: [PATCH] Fix feature check for HRESET/AVX_VNNI/UINTR gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_available_features): Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable. --- gcc/common/config/i386/cpuinfo.h | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h index 4f1ab636807..a3372fc4ecf 100644 --- a/gcc/common/config/i386/cpuinfo.h +++ b/gcc/common/config/i386/cpuinfo.h @@ -669,6 +669,8 @@ get_available_features (struct __processor_model *cpu_model, set_feature (FEATURE_WAITPKG); if (ecx & bit_SHSTK) set_feature (FEATURE_SHSTK); + if (ecx & bit_KL) + has_kl = 1; if (edx & bit_SERIALIZE) set_feature (FEATURE_SERIALIZE); if (edx & bit_TSXLDTRK) @@ -677,6 +679,8 @@ get_available_features (struct __processor_model *cpu_model, set_feature (FEATURE_PCONFIG); if (edx & bit_IBT) set_feature (FEATURE_IBT); + if (edx & bit_UINTR) + set_feature (FEATURE_UINTR); if (amx_usable) { if (edx & bit_AMX_TILE) @@ -686,8 +690,6 @@ get_available_features (struct __processor_model *cpu_model, if (edx & bit_AMX_BF16) set_feature (FEATURE_AMX_BF16); } - if (ecx & bit_KL) - has_kl = 1; if (avx512_usable) { if (ebx & bit_AVX512F) @@ -722,17 +724,20 @@ get_available_features (struct __processor_model *cpu_model, set_feature (FEATURE_AVX5124FMAPS); if (edx & bit_AVX512VP2INTERSECT) set_feature (FEATURE_AVX512VP2INTERSECT); - if (edx & bit_UINTR) - set_feature (FEATURE_UINTR); + } - __cpuid_count (7, 1, eax, ebx, ecx, edx); - if (eax & bit_AVX512BF16) - set_feature (FEATURE_AVX512BF16); - if (eax & bit_HRESET) - set_feature (FEATURE_HRESET); + __cpuid_count (7, 1, eax, ebx, ecx, edx); + if (eax & bit_HRESET) + set_feature (FEATURE_HRESET); + if (avx_usable) + { if (eax & bit_AVXVNNI) set_feature (FEATURE_AVXVNNI); - + } + if (avx512_usable) + { + if (eax & bit_AVX512BF16) + set_feature (FEATURE_AVX512BF16); } } -- 2.30.2