diff options
author | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2017-06-21 11:18:55 -0300 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2017-06-21 11:18:55 -0300 |
commit | 0f0074a4f1a3ebddb4d5acbbf71ba7c9a2182a47 (patch) | |
tree | cde4c6a20adfb1d99909ed03c98c9a8934f6d09a /sysdeps/x86/cpu-features.c | |
parent | 2667457e45fda874afae5ebe3fe37bc74dbc7202 (diff) | |
parent | 86ac4a78a9218d1e1dcfbacc6f7d09957c1fe3a4 (diff) | |
download | glibc-0f0074a4f1a3ebddb4d5acbbf71ba7c9a2182a47.tar.gz glibc-0f0074a4f1a3ebddb4d5acbbf71ba7c9a2182a47.tar.xz glibc-0f0074a4f1a3ebddb4d5acbbf71ba7c9a2182a47.zip |
Merge branch 'release/2.24/master' into ibm/2.24/master
Diffstat (limited to 'sysdeps/x86/cpu-features.c')
-rw-r--r-- | sysdeps/x86/cpu-features.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c index 11b9af2231..d1ee922290 100644 --- a/sysdeps/x86/cpu-features.c +++ b/sysdeps/x86/cpu-features.c @@ -133,8 +133,6 @@ init_cpu_features (struct cpu_features *cpu_features) case 0x57: /* Knights Landing. Enable Silvermont optimizations. */ - cpu_features->feature[index_arch_Prefer_No_VZEROUPPER] - |= bit_arch_Prefer_No_VZEROUPPER; case 0x5c: case 0x5f: @@ -206,6 +204,16 @@ init_cpu_features (struct cpu_features *cpu_features) cpu_features->feature[index_arch_AVX_Fast_Unaligned_Load] |= bit_arch_AVX_Fast_Unaligned_Load; + /* Since AVX512ER is unique to Xeon Phi, set Prefer_No_VZEROUPPER + if AVX512ER is available. Don't use AVX512 to avoid lower CPU + frequency if AVX512ER isn't available. */ + if (CPU_FEATURES_CPU_P (cpu_features, AVX512ER)) + cpu_features->feature[index_arch_Prefer_No_VZEROUPPER] + |= bit_arch_Prefer_No_VZEROUPPER; + else + cpu_features->feature[index_arch_Prefer_No_AVX512] + |= bit_arch_Prefer_No_AVX512; + /* To avoid SSE transition penalty, use _dl_runtime_resolve_slow. If XGETBV suports ECX == 1, use _dl_runtime_resolve_opt. */ cpu_features->feature[index_arch_Use_dl_runtime_resolve_slow] |