mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-26 17:03:07 +01:00
TestHarnessRunner: Support AVX2 flag detection
This commit is contained in:
1 parent
98789a8039
commit
228ee7fa47
3 files changed
+8
-1
No files matched your search
@@ -74,6 +74,7 @@ class HostFeatures(Flag) :
|
||||
FEATURE_BMI2 = (1 << 7)
|
||||
FEATURE_CLWB = (1 << 8)
|
||||
FEATURE_LINUX = (1 << 9)
|
||||
FEATURE_AVX2 = (1 << 10)
|
||||
|
||||
RegStringLookup = {
|
||||
"NONE": Regs.REG_NONE,
|
||||
@@ -147,6 +148,7 @@ HostFeaturesLookup = {
|
||||
"BMI2" : HostFeatures.FEATURE_BMI2,
|
||||
"CLWB" : HostFeatures.FEATURE_CLWB,
|
||||
"LINUX" : HostFeatures.FEATURE_LINUX,
|
||||
"AVX2" : HostFeatures.FEATURE_AVX2,
|
||||
}
|
||||
|
||||
def parse_hexstring(s):
|
||||
|
||||
@@ -372,12 +372,13 @@ namespace FEX::HarnessHelper {
|
||||
FEATURE_BMI2 = (1 << 7),
|
||||
FEATURE_CLWB = (1 << 8),
|
||||
FEATURE_LINUX = (1 << 9),
|
||||
|
||||
FEATURE_AVX2 = (1 << 10),
|
||||
};
|
||||
|
||||
bool Requires3DNow() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_3DNOW; }
|
||||
bool RequiresSSE4A() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_SSE4A; }
|
||||
bool RequiresAVX() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_AVX; }
|
||||
bool RequiresAVX2() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_AVX2; }
|
||||
bool RequiresRAND() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_RAND; }
|
||||
bool RequiresSHA() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_SHA; }
|
||||
bool RequiresCLZERO() const { return BaseConfig.OptionHostFeatures & HostFeatures::FEATURE_CLZERO; }
|
||||
@@ -527,6 +528,7 @@ namespace FEX::HarnessHelper {
|
||||
bool Requires3DNow() const { return Config.Requires3DNow(); }
|
||||
bool RequiresSSE4A() const { return Config.RequiresSSE4A(); }
|
||||
bool RequiresAVX() const { return Config.RequiresAVX(); }
|
||||
bool RequiresAVX2() const { return Config.RequiresAVX2(); }
|
||||
bool RequiresRAND() const { return Config.RequiresRAND(); }
|
||||
bool RequiresSHA() const { return Config.RequiresSHA(); }
|
||||
bool RequiresCLZERO() const { return Config.RequiresCLZERO(); }
|
||||
|
||||
@@ -234,6 +234,7 @@ int main(int argc, char **argv, char **const envp) {
|
||||
#endif
|
||||
|
||||
bool SupportsAVX = false;
|
||||
bool SupportsAVX2 = false;
|
||||
FEXCore::Core::CPUState State;
|
||||
|
||||
FEXCore::Context::InitializeStaticTables(Loader.Is64BitMode() ? FEXCore::Context::MODE_64BIT : FEXCore::Context::MODE_32BIT);
|
||||
@@ -255,11 +256,13 @@ int main(int argc, char **argv, char **const envp) {
|
||||
// Skip any tests that the host doesn't support features for
|
||||
auto HostFeatures = CTX->GetHostFeatures();
|
||||
SupportsAVX = HostFeatures.SupportsAVX;
|
||||
SupportsAVX2 = HostFeatures.SupportsAVX2;
|
||||
|
||||
bool TestUnsupported =
|
||||
(!HostFeatures.Supports3DNow && Loader.Requires3DNow()) ||
|
||||
(!HostFeatures.SupportsSSE4A && Loader.RequiresSSE4A()) ||
|
||||
(!SupportsAVX && Loader.RequiresAVX()) ||
|
||||
(!SupportsAVX2 && Loader.RequiresAVX2()) ||
|
||||
(!HostFeatures.SupportsRAND && Loader.RequiresRAND()) ||
|
||||
(!HostFeatures.SupportsSHA && Loader.RequiresSHA()) ||
|
||||
(!HostFeatures.SupportsCLZERO && Loader.RequiresCLZERO()) ||
|
||||
|
||||
Reference in new issue
Block a user