https://github.com/MarkMurrayARM updated https://github.com/llvm/llvm-project/pull/202557
>From 145311e0ebdf2f423ff7058f273b9ce1ccaaaffa Mon Sep 17 00:00:00 2001 From: Mark Murray <[email protected]> Date: Fri, 5 Jun 2026 15:53:06 +0100 Subject: [PATCH 1/3] [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; >From efd2fae6a92d03480674e715a9180af062f067e3 Mon Sep 17 00:00:00 2001 From: Mark Murray <[email protected]> Date: Tue, 16 Jun 2026 10:58:51 +0100 Subject: [PATCH 2/3] [AArch64] Make armagicpu an alias of neoverse-v3ae --- clang/test/Driver/aarch64-mcpu.c | 2 +- llvm/lib/Target/AArch64/AArch64Processors.td | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/clang/test/Driver/aarch64-mcpu.c b/clang/test/Driver/aarch64-mcpu.c index 4cd5f353df03d..b9c4972067c9f 100644 --- a/clang/test/Driver/aarch64-mcpu.c +++ b/clang/test/Driver/aarch64-mcpu.c @@ -73,7 +73,7 @@ // 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" +// ARMAGICPU: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-v3ae" // 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/llvm/lib/Target/AArch64/AArch64Processors.td b/llvm/lib/Target/AArch64/AArch64Processors.td index f35bc9df2ef1d..6e239737145f7 100644 --- a/llvm/lib/Target/AArch64/AArch64Processors.td +++ b/llvm/lib/Target/AArch64/AArch64Processors.td @@ -1358,8 +1358,7 @@ def : ProcessorModel<"neoverse-v3", NeoverseV3Model, ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>; def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel, ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>; -def : ProcessorModel<"armagicpu", NeoverseV3AEModel, - ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>; +def : ProcessorAlias<"armagicpu", "neoverse-v3ae">; def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3, [TuneExynosM3]>; def : ProcessorModel<"exynos-m4", ExynosM4Model, ProcessorFeatures.ExynosM4, >From 580959263b6e97794fadc76ea1a619ac7bb8421d Mon Sep 17 00:00:00 2001 From: Mark Murray <[email protected]> Date: Thu, 18 Jun 2026 10:44:34 +0100 Subject: [PATCH 3/3] [AArch64] Update CPU arch list test count --- llvm/unittests/TargetParser/TargetParserTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp index e9eedac204127..61da68940d9a1 100644 --- a/llvm/unittests/TargetParser/TargetParserTest.cpp +++ b/llvm/unittests/TargetParser/TargetParserTest.cpp @@ -1273,7 +1273,7 @@ INSTANTIATE_TEST_SUITE_P( AArch64CPUAliasTestParams::PrintToStringParamName); // Note: number of CPUs includes aliases. -static constexpr unsigned NumAArch64CPUArchs = 99; +static constexpr unsigned NumAArch64CPUArchs = 100; TEST(TargetParserTest, testAArch64CPUArchList) { SmallVector<StringRef, NumAArch64CPUArchs> List; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
