diff options
Diffstat (limited to 'libgcc/config')
-rw-r--r-- | libgcc/config/i386/cpuinfo.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c index c80083e..eaf2f10 100644 --- a/libgcc/config/i386/cpuinfo.c +++ b/libgcc/config/i386/cpuinfo.c @@ -98,7 +98,9 @@ enum processor_features FEATURE_FMA4, FEATURE_XOP, FEATURE_FMA, - FEATURE_AVX512F + FEATURE_AVX512F, + FEATURE_BMI, + FEATURE_BMI2 }; struct __processor_model @@ -289,8 +291,12 @@ get_available_features (unsigned int ecx, unsigned int edx, { unsigned int eax, ebx, ecx, edx; __cpuid_count (7, 0, eax, ebx, ecx, edx); + if (ebx & bit_BMI) + features |= (1 << FEATURE_BMI); if (ebx & bit_AVX2) features |= (1 << FEATURE_AVX2); + if (ebx & bit_BMI2) + features |= (1 << FEATURE_BMI2); if (ebx & bit_AVX512F) features |= (1 << FEATURE_AVX512F); } |