diff --git a/llvm/lib/TargetParser/Host.cpp b/llvm/lib/TargetParser/Host.cpp index 32941c013c66e..f1197c2965538 100644 --- a/llvm/lib/TargetParser/Host.cpp +++ b/llvm/lib/TargetParser/Host.cpp @@ -310,6 +310,13 @@ StringRef sys::detail::getHostCPUNameForARM(StringRef ProcCpuinfoContent) { } } + if (Implementer == "0x6d") { // Microsoft Corporation. + // The Microsoft Azure Cobalt 100 CPU is handled as a Neoverse N2. + return StringSwitch(Part) + .Case("0xd49", "neoverse-n2") + .Default("generic"); + } + if (Implementer == "0xc0") { // Ampere Computing return StringSwitch(Part) .Case("0xac3", "ampere1") diff --git a/llvm/unittests/TargetParser/Host.cpp b/llvm/unittests/TargetParser/Host.cpp index 452d0326c1e28..5f151616d7ca6 100644 --- a/llvm/unittests/TargetParser/Host.cpp +++ b/llvm/unittests/TargetParser/Host.cpp @@ -113,7 +113,9 @@ TEST(getLinuxHostCPUName, AArch64) { EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x51\n" "CPU part : 0xc01"), "saphira"); - + EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0x6d\n" + "CPU part : 0xd49"), + "neoverse-n2"); EXPECT_EQ(sys::detail::getHostCPUNameForARM("CPU implementer : 0xc0\n" "CPU part : 0xac3"), "ampere1");