Skip to content

Commit f6f0e1a

Browse files
ptomsichllvmbot
authored andcommitted
[AArch64] Initial Ampere1B scheduling model (llvm#81341)
The Ampere1B core is enabled with a new scheduling/pipeline model, as it provides significant updates over the Ampere1 core; it reduces latencies on many instructions, has some micro-ops reassigned between the XY and X units, and provides modelling for the instructions added since Ampere1 and Ampere1A. As this is the first model implementing the CSSC instructions, we update the UnsupportedFeatures on all other models (that have CompleteModel set). Testcases are added under llvm-mca: these showed the FullFP16 feature missing, so we are adding it in as part of this commit. This *adds tests and additional fixes* compared to the reverted llvm#81338. (cherry picked from commit dd1897c)
1 parent cb7a60c commit f6f0e1a

24 files changed

+8587
-19
lines changed

llvm/lib/Target/AArch64/AArch64.td

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,7 @@ include "AArch64SchedA64FX.td"
837837
include "AArch64SchedThunderX3T110.td"
838838
include "AArch64SchedTSV110.td"
839839
include "AArch64SchedAmpere1.td"
840+
include "AArch64SchedAmpere1B.td"
840841
include "AArch64SchedNeoverseN1.td"
841842
include "AArch64SchedNeoverseN2.td"
842843
include "AArch64SchedNeoverseV1.td"
@@ -1551,7 +1552,7 @@ def ProcessorFeatures {
15511552
FeatureMTE, FeatureSSBS, FeatureRandGen,
15521553
FeatureSB, FeatureSM4, FeatureSHA2,
15531554
FeatureSHA3, FeatureAES, FeatureCSSC,
1554-
FeatureWFxT];
1555+
FeatureWFxT, FeatureFullFP16];
15551556

15561557
// ETE and TRBE are future architecture extensions. We temporarily enable them
15571558
// by default for users targeting generic AArch64. The extensions do not
@@ -1719,7 +1720,7 @@ def : ProcessorModel<"ampere1", Ampere1Model, ProcessorFeatures.Ampere1,
17191720
def : ProcessorModel<"ampere1a", Ampere1Model, ProcessorFeatures.Ampere1A,
17201721
[TuneAmpere1A]>;
17211722

1722-
def : ProcessorModel<"ampere1b", Ampere1Model, ProcessorFeatures.Ampere1B,
1723+
def : ProcessorModel<"ampere1b", Ampere1BModel, ProcessorFeatures.Ampere1B,
17231724
[TuneAmpere1B]>;
17241725

17251726
//===----------------------------------------------------------------------===//

llvm/lib/Target/AArch64/AArch64SchedA53.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def CortexA53Model : SchedMachineModel {
2929
list<Predicate> UnsupportedFeatures = !listconcat(SVEUnsupported.F,
3030
PAUnsupported.F,
3131
SMEUnsupported.F,
32-
[HasMTE]);
32+
[HasMTE, HasCSSC]);
3333
}
3434

3535

llvm/lib/Target/AArch64/AArch64SchedA57.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def CortexA57Model : SchedMachineModel {
3434
list<Predicate> UnsupportedFeatures = !listconcat(SVEUnsupported.F,
3535
PAUnsupported.F,
3636
SMEUnsupported.F,
37-
[HasMTE]);
37+
[HasMTE, HasCSSC]);
3838
}
3939

4040
//===----------------------------------------------------------------------===//

llvm/lib/Target/AArch64/AArch64SchedA64FX.td

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def A64FXModel : SchedMachineModel {
2222

2323
list<Predicate> UnsupportedFeatures = !listconcat(SMEUnsupported.F, SVEUnsupported.F,
2424
[HasMTE, HasMatMulInt8, HasBF16,
25-
HasPAuth, HasPAuthLR, HasCPA]);
25+
HasPAuth, HasPAuthLR, HasCPA,
26+
HasCSSC]);
2627
let FullInstRWOverlapCheck = 0;
2728
}
2829

0 commit comments

Comments
 (0)