[clang] [llvm] [AArch64] Add armagicpu CPU (PR #202557)
Mark Murray via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 9 02:15:02 PDT 2026
https://github.com/MarkMurrayARM created https://github.com/llvm/llvm-project/pull/202557
None
>From 145311e0ebdf2f423ff7058f273b9ce1ccaaaffa Mon Sep 17 00:00:00 2001
From: Mark Murray <Mark.Murray at arm.com>
Date: Fri, 5 Jun 2026 15:53:06 +0100
Subject: [PATCH] [AArch64] Add armagicpu CPU
---
clang/test/Driver/aarch64-mcpu.c | 2 ++
.../Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c | 1 +
clang/test/Misc/target-invalid-cpu-note/aarch64.c | 2 +-
llvm/lib/Target/AArch64/AArch64Processors.td | 2 ++
llvm/unittests/TargetParser/TargetParserTest.cpp | 3 ++-
5 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/clang/test/Driver/aarch64-mcpu.c b/clang/test/Driver/aarch64-mcpu.c
index be5415b735d12..4cd5f353df03d 100644
--- a/clang/test/Driver/aarch64-mcpu.c
+++ b/clang/test/Driver/aarch64-mcpu.c
@@ -72,6 +72,8 @@
// NEOVERSE-V3: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-v3"
// RUN: %clang --target=aarch64 -mcpu=neoverse-v3ae -### -c %s 2>&1 | FileCheck -check-prefix=NEOVERSE-V3AE %s
// NEOVERSE-V3AE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-v3ae"
+// RUN: %clang --target=aarch64 -mcpu=armagicpu -### -c %s 2>&1 | FileCheck -check-prefix=ARMAGICPU %s
+// ARMAGICPU: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "armagicpu"
// RUN: %clang --target=aarch64 -mcpu=neoverse-n1 -### -c %s 2>&1 | FileCheck -check-prefix=NEOVERSE-N1 %s
// NEOVERSE-N1: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-n1"
// RUN: %clang --target=aarch64 -mcpu=neoverse-n2 -### -c %s 2>&1 | FileCheck -check-prefix=NEOVERSE-N2 %s
diff --git a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
index f478323257ec2..67d8377e95227 100644
--- a/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
+++ b/clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
@@ -1,5 +1,6 @@
// REQUIRES: aarch64-registered-target
// RUN: %clang --target=aarch64 --print-enabled-extensions -mcpu=neoverse-v3ae | FileCheck --strict-whitespace --implicit-check-not=FEAT_ %s
+// RUN: %clang --target=aarch64 --print-enabled-extensions -mcpu=armagicpu | FileCheck --strict-whitespace --implicit-check-not=FEAT_ %s
// CHECK: Extensions enabled for the given AArch64 target
// CHECK-EMPTY:
diff --git a/clang/test/Misc/target-invalid-cpu-note/aarch64.c b/clang/test/Misc/target-invalid-cpu-note/aarch64.c
index 3a6cb9d4445eb..faa7bba641cd0 100644
--- a/clang/test/Misc/target-invalid-cpu-note/aarch64.c
+++ b/clang/test/Misc/target-invalid-cpu-note/aarch64.c
@@ -37,6 +37,7 @@
// CHECK-SAME: {{^}}, apple-s7
// CHECK-SAME: {{^}}, apple-s8
// CHECK-SAME: {{^}}, apple-s9
+// CHECK-SAME: {{^}}, armagicpu
// CHECK-SAME: {{^}}, c1-nano
// CHECK-SAME: {{^}}, c1-premium
// CHECK-SAME: {{^}}, c1-pro
@@ -106,4 +107,3 @@
// CHECK-SAME: {{^}}, thunderxt88
// CHECK-SAME: {{^}}, tsv110
// CHECK-SAME: {{$}}
-
diff --git a/llvm/lib/Target/AArch64/AArch64Processors.td b/llvm/lib/Target/AArch64/AArch64Processors.td
index 7a7f40da17de6..f35bc9df2ef1d 100644
--- a/llvm/lib/Target/AArch64/AArch64Processors.td
+++ b/llvm/lib/Target/AArch64/AArch64Processors.td
@@ -1358,6 +1358,8 @@ def : ProcessorModel<"neoverse-v3", NeoverseV3Model,
ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>;
def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel,
ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
+def : ProcessorModel<"armagicpu", NeoverseV3AEModel,
+ ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3,
[TuneExynosM3]>;
def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4,
diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp
index 6377b197d911e..c961b22bcccfa 100644
--- a/llvm/unittests/TargetParser/TargetParserTest.cpp
+++ b/llvm/unittests/TargetParser/TargetParserTest.cpp
@@ -1112,6 +1112,7 @@ INSTANTIATE_TEST_SUITE_P(
AArch64CPUTestParams("neoverse-v2", "armv9-a"),
AArch64CPUTestParams("neoverse-v3", "armv9.2-a"),
AArch64CPUTestParams("neoverse-v3ae", "armv9.2-a"),
+ AArch64CPUTestParams("armagicpu", "armv9.2-a"),
AArch64CPUTestParams("cortex-r82", "armv8-r"),
AArch64CPUTestParams("cortex-r82ae", "armv8-r"),
AArch64CPUTestParams("cortex-x1", "armv8.2-a"),
@@ -1271,7 +1272,7 @@ INSTANTIATE_TEST_SUITE_P(
AArch64CPUAliasTestParams::PrintToStringParamName);
// Note: number of CPUs includes aliases.
-static constexpr unsigned NumAArch64CPUArchs = 98;
+static constexpr unsigned NumAArch64CPUArchs = 99;
TEST(TargetParserTest, testAArch64CPUArchList) {
SmallVector<StringRef, NumAArch64CPUArchs> List;
More information about the cfe-commits
mailing list