Detect AMD Family 26 extended models for cpuinfo_uarch_zen6 (#371)

* Fix cpuinfo_x86_normalize_brand_string unannotated fall-through warning

* Detect AMD Family 26 extended models for cpuinfo_uarch_zen6

GitOrigin-RevId: f9a03241f8c3d4ed0c9728f5d70bff873d43d4e0
Change-Id: I00a5dbcb9d3a0539358bf8c37680796aa5542b98
diff --git a/include/cpuinfo.h b/include/cpuinfo.h
index e24553c..82c20f1 100644
--- a/include/cpuinfo.h
+++ b/include/cpuinfo.h
@@ -431,6 +431,8 @@
 	cpuinfo_uarch_zen4 = 0x0020010C,
 	/** AMD Zen 5 microarchitecture. */
 	cpuinfo_uarch_zen5 = 0x0020010D,
+	/** AMD Zen 6 microarchitecture. */
+	cpuinfo_uarch_zen6 = 0x0020010E,
 
 	/** NSC Geode and AMD Geode GX and LX. */
 	cpuinfo_uarch_geode = 0x00200200,
diff --git a/src/x86/uarch.c b/src/x86/uarch.c
index a0c900f..6e38aa8 100644
--- a/src/x86/uarch.c
+++ b/src/x86/uarch.c
@@ -402,7 +402,21 @@
 					}
 					break;
 				case 0x1a:
-					return cpuinfo_uarch_zen5;
+					switch (model_info->extended_model) {
+						case 0x0: // model 00h..2Fh
+						case 0x1:
+						case 0x2:
+						case 0x4: // model 40h..4Fh
+							return cpuinfo_uarch_zen5;
+
+						case 0x5: // model 50h..5Fh
+						case 0x8: // model 80h..AFh
+						case 0x9:
+						case 0xA:
+						case 0xC: // model C0h..CFh
+							return cpuinfo_uarch_zen6;
+					}
+					break;
 			}
 			break;
 		case cpuinfo_vendor_hygon:
diff --git a/tools/cpu-info.c b/tools/cpu-info.c
index 45dae5a..304791e 100644
--- a/tools/cpu-info.c
+++ b/tools/cpu-info.c
@@ -144,6 +144,8 @@
 			return "Zen 4";
 		case cpuinfo_uarch_zen5:
 			return "Zen 5";
+		case cpuinfo_uarch_zen6:
+			return "Zen 6";
 		case cpuinfo_uarch_geode:
 			return "Geode";
 		case cpuinfo_uarch_bobcat: