x64CPUDetect: Add flag for slow PDEP/PEXT on AMD Zen

For some unknown reason PDEP and PEXT are ridiculously slow on AMD Zen
architecture.
This commit is contained in:
Techjar 2020-01-26 22:08:55 -05:00
parent 52b52631c2
commit 185e49d2a9
2 changed files with 4 additions and 0 deletions

View File

@ -42,6 +42,9 @@ struct CPUInfo
bool bAVX2 = false; bool bAVX2 = false;
bool bBMI1 = false; bool bBMI1 = false;
bool bBMI2 = false; bool bBMI2 = false;
// PDEP and PEXT are ridiculously slow on AMD Zen, so we have this flag to avoid using them there
// Zen 2 is also affected by this issue
bool bFastBMI2 = false;
bool bFMA = false; bool bFMA = false;
bool bFMA4 = false; bool bFMA4 = false;
bool bAES = false; bool bAES = false;

View File

@ -175,6 +175,7 @@ void CPUInfo::Detect()
} }
bFlushToZero = bSSE; bFlushToZero = bSSE;
bFastBMI2 = bBMI2 && !bZen;
if (max_ex_fn >= 0x80000004) if (max_ex_fn >= 0x80000004)
{ {