aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMykola Hohsadze <Mykola_Hohsadze@epam.com>2023-04-25 11:11:23 +0300
committerGitHub <noreply@github.com>2023-04-25 10:11:23 +0200
commit0e9da93fac86f10d73676fa1de70be2507ba9cb2 (patch)
tree94ead703b0be7b926aee2c21ecb7c817974b182d
parent75ec988188f62281efe7bf1d133338751369bb4c (diff)
downloadcpu_features-0e9da93fac86f10d73676fa1de70be2507ba9cb2.tar.gz
Add Mendocino ZEN2 detection (#305)
-rw-r--r--src/impl_x86__base_implementation.inl1
-rw-r--r--test/cpuinfo_x86_test.cc14
2 files changed, 15 insertions, 0 deletions
diff --git a/src/impl_x86__base_implementation.inl b/src/impl_x86__base_implementation.inl
index 85293fe..6a34bff 100644
--- a/src/impl_x86__base_implementation.inl
+++ b/src/impl_x86__base_implementation.inl
@@ -813,6 +813,7 @@ X86Microarchitecture GetX86Microarchitecture(const X86Info* info) {
case CPUID(0x17, 0x71):
case CPUID(0x17, 0x90):
case CPUID(0x17, 0x98):
+ case CPUID(0x17, 0xA0):
// https://en.wikichip.org/wiki/amd/microarchitectures/zen_2
return AMD_ZEN2;
case CPUID(0x19, 0x00):
diff --git a/test/cpuinfo_x86_test.cc b/test/cpuinfo_x86_test.cc
index 4ff7f22..de271cc 100644
--- a/test/cpuinfo_x86_test.cc
+++ b/test/cpuinfo_x86_test.cc
@@ -926,6 +926,20 @@ TEST_F(CpuidX86Test, AMD_K18_ZEN_DHYANA_OCTAL_CORE_C86_3250) {
EXPECT_EQ(GetX86Microarchitecture(&info), X86Microarchitecture::AMD_ZEN);
}
+// http://users.atw.hu/instlatx64/AuthenticAMD/AuthenticAMD08A0F00_K17_Mendocino_01_CPUID.txt
+TEST_F(CpuidX86Test, AMD_ZEN2_MENDOCINO) {
+ cpu().SetLeaves({
+ {{0x00000000, 0}, Leaf{0x00000010, 0x68747541, 0x444D4163, 0x69746E65}},
+ {{0x00000001, 0}, Leaf{0x008A0F00, 0x00080800, 0x7EF8320B, 0x178BFBFF}},
+ });
+ const auto info = GetX86Info();
+
+ EXPECT_EQ(info.model, 0xA0);
+ EXPECT_EQ(info.family, 0x17);
+ EXPECT_STREQ(info.vendor, CPU_FEATURES_VENDOR_AUTHENTIC_AMD);
+ EXPECT_EQ(GetX86Microarchitecture(&info), X86Microarchitecture::AMD_ZEN2);
+}
+
// http://users.atw.hu/instlatx64/GenuineIntel/GenuineIntel00906A4_AlderLakeP_00_CPUID.txt
TEST_F(CpuidX86Test, INTEL_ALDER_LAKE_AVX_VNNI) {
cpu().SetOsBackupsExtendedRegisters(true);