diff options
Diffstat (limited to 'gcc/config/i386/driver-i386.c')
-rw-r--r-- | gcc/config/i386/driver-i386.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c index c8b71c8edf9..9076bee24a0 100644 --- a/gcc/config/i386/driver-i386.c +++ b/gcc/config/i386/driver-i386.c @@ -390,6 +390,8 @@ const char *host_detect_local_cpu (int argc, const char **argv) unsigned int has_rdrnd = 0, has_f16c = 0, has_fsgsbase = 0; unsigned int has_rdseed = 0, has_prfchw = 0, has_adx = 0; unsigned int has_osxsave = 0, has_fxsr = 0, has_xsave = 0, has_xsaveopt = 0; + unsigned int has_avx512er = 0, has_avx512pf = 0, has_avx512cd = 0; + unsigned int has_avx512f = 0, has_sha = 0; bool arch; @@ -461,6 +463,11 @@ const char *host_detect_local_cpu (int argc, const char **argv) has_fsgsbase = ebx & bit_FSGSBASE; has_rdseed = ebx & bit_RDSEED; has_adx = ebx & bit_ADX; + has_avx512f = ebx & bit_AVX512F; + has_avx512er = ebx & bit_AVX512ER; + has_avx512pf = ebx & bit_AVX512PF; + has_avx512cd = ebx & bit_AVX512CD; + has_sha = ebx & bit_SHA; } if (max_level >= 13) @@ -802,6 +809,7 @@ const char *host_detect_local_cpu (int argc, const char **argv) const char *sahf = has_lahf_lm ? " -msahf" : " -mno-sahf"; const char *movbe = has_movbe ? " -mmovbe" : " -mno-movbe"; const char *aes = has_aes ? " -maes" : " -mno-aes"; + const char *sha = has_sha ? " -msha" : " -mno-sha"; const char *pclmul = has_pclmul ? " -mpclmul" : " -mno-pclmul"; const char *popcnt = has_popcnt ? " -mpopcnt" : " -mno-popcnt"; const char *abm = has_abm ? " -mabm" : " -mno-abm"; @@ -828,13 +836,18 @@ const char *host_detect_local_cpu (int argc, const char **argv) const char *fxsr = has_fxsr ? " -mfxsr" : " -mno-fxsr"; const char *xsave = has_xsave ? " -mxsave" : " -mno-xsave"; const char *xsaveopt = has_xsaveopt ? " -mxsaveopt" : " -mno-xsaveopt"; + const char *avx512f = has_avx512f ? " -mavx512f" : " -mno-avx512f"; + const char *avx512er = has_avx512er ? " -mavx512er" : " -mno-avx512er"; + const char *avx512cd = has_avx512cd ? " -mavx512cd" : " -mno-avx512cd"; + const char *avx512pf = has_avx512pf ? " -mavx512pf" : " -mno-avx512pf"; options = concat (options, mmx, mmx3dnow, sse, sse2, sse3, ssse3, - sse4a, cx16, sahf, movbe, aes, pclmul, + sse4a, cx16, sahf, movbe, aes, sha, pclmul, popcnt, abm, lwp, fma, fma4, xop, bmi, bmi2, tbm, avx, avx2, sse4_2, sse4_1, lzcnt, rtm, hle, rdrnd, f16c, fsgsbase, rdseed, prfchw, adx, - fxsr, xsave, xsaveopt, NULL); + fxsr, xsave, xsaveopt, avx512f, avx512er, + avx512cd, avx512pf, NULL); } done: |