Detect Apple M5 Pro / Max (Sotra) super and performance cores (#424)

Add microarchitecture detection for Apple M5 Pro and M5 Max (Sotra SoC / CPUFAMILY_ARM_SOTRA).

- Add cpuinfo_uarch_sotra_super and cpuinfo_uarch_sotra_performance enums.
- Detect 15-core (5 Super + 10 Performance) and 18-core (6 Super + 12 Performance) configurations on macOS/XNU.
- Update tools/cpu-info.c to use consistent spacing for Apple uarch display names.

Resolves https://github.com/pytorch/cpuinfo/issues/423
diff --git a/include/cpuinfo.h b/include/cpuinfo.h
index e52db90..3e358df 100644
--- a/include/cpuinfo.h
+++ b/include/cpuinfo.h
@@ -645,6 +645,11 @@
 	/** Apple M4 processor (little cores). */
 	cpuinfo_uarch_donan_sawtooth = 0x00700309,
 
+	/** Apple M5 Pro / Max processor (super cores). */
+	cpuinfo_uarch_sotra_super = 0x0070030A,
+	/** Apple M5 Pro / Max processor (performance cores). */
+	cpuinfo_uarch_sotra_performance = 0x0070030B,
+
 	/** Cavium ThunderX. */
 	cpuinfo_uarch_thunderx = 0x00800100,
 	/** Cavium ThunderX2 (originally Broadcom Vulkan). */
diff --git a/src/arm/mach/init.c b/src/arm/mach/init.c
index ca89023..6c632dd 100644
--- a/src/arm/mach/init.c
+++ b/src/arm/mach/init.c
@@ -72,6 +72,10 @@
 #ifndef CPUFAMILY_ARM_HIDRA
 #define CPUFAMILY_ARM_HIDRA 0x1d5a87e8
 #endif
+// M5 Pro / M5 Max
+#ifndef CPUFAMILY_ARM_SOTRA
+#define CPUFAMILY_ARM_SOTRA 0xf76c5b1a
+#endif
 // A19
 #ifndef CPUFAMILY_ARM_TILOS
 #define CPUFAMILY_ARM_TILOS 0x01d7a72b
@@ -184,6 +188,12 @@
 		case CPUFAMILY_ARM_HIDRA: /* M5 */
 			/* 10-core: 4x Tilos Everest v4 + 6x Tilos Sawtooth v4 */
 			return core_index + 6 < core_count ? cpuinfo_uarch_tilos_everest : cpuinfo_uarch_tilos_sawtooth;
+		case CPUFAMILY_ARM_SOTRA: /* M5 Pro / M5 Max */
+			/* Pro 15-core: 5x Sotra Super + 10x Sotra Performance */
+			/* Max 18-core: 6x Sotra Super + 12x Sotra Performance */
+			return (core_count > 15 ? core_index + 12 : core_index + 10) < core_count
+				? cpuinfo_uarch_sotra_super
+				: cpuinfo_uarch_sotra_performance;
 
 		default:
 			/* Use hw.cpusubtype for detection */
diff --git a/tools/cpu-info.c b/tools/cpu-info.c
index 81d1368..82fd079 100644
--- a/tools/cpu-info.c
+++ b/tools/cpu-info.c
@@ -318,25 +318,29 @@
 		case cpuinfo_uarch_sawtooth:
 			return "Sawtooth";
 		case cpuinfo_uarch_coll_everest:
-			return "Coll_Everest";
+			return "Coll Everest";
 		case cpuinfo_uarch_coll_sawtooth:
-			return "Coll_Sawtooth";
+			return "Coll Sawtooth";
 		case cpuinfo_uarch_tupai_everest:
-			return "Tupai_Everest";
+			return "Tupai Everest";
 		case cpuinfo_uarch_tupai_sawtooth:
-			return "Tupai_Sawtooth";
+			return "Tupai Sawtooth";
 		case cpuinfo_uarch_tahiti_everest:
-			return "Tahiti_Everest";
+			return "Tahiti Everest";
 		case cpuinfo_uarch_tahiti_sawtooth:
-			return "Tahiti_Sawtooth";
+			return "Tahiti Sawtooth";
 		case cpuinfo_uarch_tilos_everest:
-			return "Tilos_Everest";
+			return "Tilos Everest";
 		case cpuinfo_uarch_tilos_sawtooth:
-			return "Tilos_Sawtooth";
+			return "Tilos Sawtooth";
 		case cpuinfo_uarch_donan_everest:
 			return "Donan Everest";
 		case cpuinfo_uarch_donan_sawtooth:
 			return "Donan Sawtooth";
+		case cpuinfo_uarch_sotra_super:
+			return "Sotra Super";
+		case cpuinfo_uarch_sotra_performance:
+			return "Sotra Performance";
 		case cpuinfo_uarch_thunderx:
 			return "ThunderX";
 		case cpuinfo_uarch_thunderx2: