Skip to content

Commit c9b9571

Browse files
committed
[AArch64] Add aliases for processors apple-a18/s6..10. (llvm#127152)
apple-a18 is an alias of apple-m4. apple-s6/s7/s8 are aliases of apple-a13. apple-s9/s10 are aliases of apple-a16. As with some other aliases today, this reflects identical ISA feature support, but not necessarily identical microarchitectures and performance characteristics. (cherry picked from commit f0e39c4)
1 parent 09a147c commit c9b9571

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

clang/test/Misc/target-invalid-cpu-note.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
// RUN: not %clang_cc1 -triple arm64--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix AARCH64
77
// AARCH64: error: unknown target CPU 'not-a-cpu'
8-
// AARCH64-NEXT: note: valid target CPU values are: a64fx, ampere1, ampere1a, ampere1b, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-a15, apple-a16, apple-a17, apple-a7, apple-a8, apple-a9, apple-m1, apple-m2, apple-m3, apple-m4, apple-s4, apple-s5, carmel, cobalt-100, cortex-a34, cortex-a35, cortex-a510, cortex-a520, cortex-a520ae, cortex-a53, cortex-a55, cortex-a57, cortex-a65, cortex-a65ae, cortex-a710, cortex-a715, cortex-a72, cortex-a720, cortex-a720ae, cortex-a725, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-r82, cortex-r82ae, cortex-x1, cortex-x1c, cortex-x2, cortex-x3, cortex-x4, cortex-x925, cyclone, exynos-m3, exynos-m4, exynos-m5, falkor, generic, grace, kryo, neoverse-512tvb, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-n3, neoverse-v1, neoverse-v2, neoverse-v3, neoverse-v3ae, oryon-1, saphira, thunderx, thunderx2t99, thunderx3t110, thunderxt81, thunderxt83, thunderxt88, tsv110{{$}}
8+
// AARCH64-NEXT: note: valid target CPU values are: a64fx, ampere1, ampere1a, ampere1b, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-a15, apple-a16, apple-a17, apple-a18, apple-a7, apple-a8, apple-a9, apple-m1, apple-m2, apple-m3, apple-m4, apple-s10, apple-s4, apple-s5, apple-s6, apple-s7, apple-s8, apple-s9, carmel, cobalt-100, cortex-a34, cortex-a35, cortex-a510, cortex-a520, cortex-a520ae, cortex-a53, cortex-a55, cortex-a57, cortex-a65, cortex-a65ae, cortex-a710, cortex-a715, cortex-a72, cortex-a720, cortex-a720ae, cortex-a725, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-r82, cortex-r82ae, cortex-x1, cortex-x1c, cortex-x2, cortex-x3, cortex-x4, cortex-x925, cyclone, exynos-m3, exynos-m4, exynos-m5, falkor, generic, grace, kryo, neoverse-512tvb, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-n3, neoverse-v1, neoverse-v2, neoverse-v3, neoverse-v3ae, oryon-1, saphira, thunderx, thunderx2t99, thunderx3t110, thunderxt81, thunderxt83, thunderxt88, tsv110{{$}}
99

1010
// RUN: not %clang_cc1 -triple arm64--- -tune-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix TUNE_AARCH64
1111
// TUNE_AARCH64: error: unknown target CPU 'not-a-cpu'
12-
// TUNE_AARCH64-NEXT: note: valid target CPU values are: a64fx, ampere1, ampere1a, ampere1b, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-a15, apple-a16, apple-a17, apple-a7, apple-a8, apple-a9, apple-m1, apple-m2, apple-m3, apple-m4, apple-s4, apple-s5, carmel, cobalt-100, cortex-a34, cortex-a35, cortex-a510, cortex-a520, cortex-a520ae, cortex-a53, cortex-a55, cortex-a57, cortex-a65, cortex-a65ae, cortex-a710, cortex-a715, cortex-a72, cortex-a720, cortex-a720ae, cortex-a725, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-r82, cortex-r82ae, cortex-x1, cortex-x1c, cortex-x2, cortex-x3, cortex-x4, cortex-x925, cyclone, exynos-m3, exynos-m4, exynos-m5, falkor, generic, grace, kryo, neoverse-512tvb, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-n3, neoverse-v1, neoverse-v2, neoverse-v3, neoverse-v3ae, oryon-1, saphira, thunderx, thunderx2t99, thunderx3t110, thunderxt81, thunderxt83, thunderxt88, tsv110{{$}}
12+
// TUNE_AARCH64-NEXT: note: valid target CPU values are: a64fx, ampere1, ampere1a, ampere1b, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-a15, apple-a16, apple-a17, apple-a18, apple-a7, apple-a8, apple-a9, apple-m1, apple-m2, apple-m3, apple-m4, apple-s10, apple-s4, apple-s5, apple-s6, apple-s7, apple-s8, apple-s9, carmel, cobalt-100, cortex-a34, cortex-a35, cortex-a510, cortex-a520, cortex-a520ae, cortex-a53, cortex-a55, cortex-a57, cortex-a65, cortex-a65ae, cortex-a710, cortex-a715, cortex-a72, cortex-a720, cortex-a720ae, cortex-a725, cortex-a73, cortex-a75, cortex-a76, cortex-a76ae, cortex-a77, cortex-a78, cortex-a78ae, cortex-a78c, cortex-r82, cortex-r82ae, cortex-x1, cortex-x1c, cortex-x2, cortex-x3, cortex-x4, cortex-x925, cyclone, exynos-m3, exynos-m4, exynos-m5, falkor, generic, grace, kryo, neoverse-512tvb, neoverse-e1, neoverse-n1, neoverse-n2, neoverse-n3, neoverse-v1, neoverse-v2, neoverse-v3, neoverse-v3ae, oryon-1, saphira, thunderx, thunderx2t99, thunderx3t110, thunderxt81, thunderxt83, thunderxt88, tsv110{{$}}
1313

1414
// RUN: not %clang_cc1 -triple i386--- -target-cpu not-a-cpu -fsyntax-only %s 2>&1 | FileCheck %s --check-prefix X86
1515
// X86: error: unknown target CPU 'not-a-cpu'

llvm/lib/Target/AArch64/AArch64Processors.td

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,6 +1197,9 @@ def : ProcessorAlias<"apple-s5", "apple-a12">;
11971197

11981198
def : ProcessorModel<"apple-a13", CycloneModel, ProcessorFeatures.AppleA13,
11991199
[TuneAppleA13]>;
1200+
def : ProcessorAlias<"apple-s6", "apple-a13">;
1201+
def : ProcessorAlias<"apple-s7", "apple-a13">;
1202+
def : ProcessorAlias<"apple-s8", "apple-a13">;
12001203

12011204
def : ProcessorModel<"apple-a14", CycloneModel, ProcessorFeatures.AppleA14,
12021205
[TuneAppleA14]>;
@@ -1209,12 +1212,15 @@ def : ProcessorAlias<"apple-m2", "apple-a15">;
12091212
def : ProcessorModel<"apple-a16", CycloneModel, ProcessorFeatures.AppleA16,
12101213
[TuneAppleA16]>;
12111214
def : ProcessorAlias<"apple-m3", "apple-a16">;
1215+
def : ProcessorAlias<"apple-s9", "apple-a16">;
1216+
def : ProcessorAlias<"apple-s10", "apple-a16">;
12121217

12131218
def : ProcessorModel<"apple-a17", CycloneModel, ProcessorFeatures.AppleA17,
12141219
[TuneAppleA17]>;
12151220

12161221
def : ProcessorModel<"apple-m4", CycloneModel, ProcessorFeatures.AppleM4,
12171222
[TuneAppleM4]>;
1223+
def : ProcessorAlias<"apple-a18", "apple-m4">;
12181224

12191225
// Alias for the latest Apple processor model supported by LLVM.
12201226
def : ProcessorAlias<"apple-latest", "apple-m4">;

llvm/unittests/TargetParser/TargetParserTest.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,13 +1914,17 @@ INSTANTIATE_TEST_SUITE_P(
19141914
"apple-a8", "apple-a9"}),
19151915
AArch64CPUAliasTestParams({"apple-a12", "apple-s4",
19161916
"apple-s5"}),
1917+
AArch64CPUAliasTestParams({"apple-a13", "apple-s6",
1918+
"apple-s7", "apple-s8"}),
19171919
AArch64CPUAliasTestParams({"apple-a14", "apple-m1"}),
19181920
AArch64CPUAliasTestParams({"apple-a15", "apple-m2"}),
1919-
AArch64CPUAliasTestParams({"apple-a16", "apple-m3"})),
1921+
AArch64CPUAliasTestParams({"apple-a16", "apple-m3",
1922+
"apple-s9", "apple-s10"}),
1923+
AArch64CPUAliasTestParams({"apple-m4", "apple-a18"})),
19201924
AArch64CPUAliasTestParams::PrintToStringParamName);
19211925

19221926
// Note: number of CPUs includes aliases.
1923-
static constexpr unsigned NumAArch64CPUArchs = 81;
1927+
static constexpr unsigned NumAArch64CPUArchs = 87;
19241928

19251929
TEST(TargetParserTest, testAArch64CPUArchList) {
19261930
SmallVector<StringRef, NumAArch64CPUArchs> List;

0 commit comments

Comments
 (0)