Skip to content

Commit 4d335cb

Browse files
authored
[AArch64] Fix scheduling info for Armv8.4-a LDAPUR* instructions (#171637)
They were using the wrong scheduler resource. They're also missing from the optimisation guides, but WriteLD should be closer at least.
1 parent 6573f62 commit 4d335cb

File tree

7 files changed

+115
-115
lines changed

7 files changed

+115
-115
lines changed

llvm/lib/Target/AArch64/AArch64InstrFormats.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4386,7 +4386,7 @@ multiclass BaseLoadUnscaleV84<string asm, bits<2> sz, bits<2> opc,
43864386
DAGOperand regtype > {
43874387
def i : BaseLoadStoreUnscale<sz, 0, opc, (outs regtype:$Rt),
43884388
(ins GPR64sp:$Rn, simm9:$offset), asm, []>,
4389-
Sched<[WriteST]> {
4389+
Sched<[WriteLD]> {
43904390
let Inst{29} = 0;
43914391
let Inst{24} = 1;
43924392
}

llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
# CHECK-NEXT: [6]: HasSideEffects (U)
1111

1212
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
13-
# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
14-
# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
15-
# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
16-
# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
17-
# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
18-
# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
19-
# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
20-
# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
21-
# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
13+
# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
14+
# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
15+
# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
16+
# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
17+
# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
18+
# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
19+
# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
20+
# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
21+
# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
2222
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
2323
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
2424
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
4141

4242
# CHECK: Resource pressure per iteration:
4343
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
44-
# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
44+
# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
4545

4646
# CHECK: Resource pressure by instruction:
4747
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
48-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
49-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
50-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
51-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
52-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
53-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
54-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
55-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
56-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
48+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
49+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
50+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
51+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
52+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
53+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
54+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
55+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
56+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
5757
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
5858
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
5959
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]

llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
# CHECK-NEXT: [6]: HasSideEffects (U)
1111

1212
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
13-
# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
14-
# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
15-
# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
16-
# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
17-
# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
18-
# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
19-
# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
20-
# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
21-
# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
13+
# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
14+
# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
15+
# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
16+
# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
17+
# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
18+
# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
19+
# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
20+
# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
21+
# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
2222
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
2323
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
2424
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -41,19 +41,19 @@
4141

4242
# CHECK: Resource pressure per iteration:
4343
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
44-
# CHECK-NEXT: - - 6.50 6.50 - 6.50 6.50 - - - - - -
44+
# CHECK-NEXT: - - 2.00 2.00 3.00 5.00 5.00 - - - - - -
4545

4646
# CHECK: Resource pressure by instruction:
4747
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
48-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur w7, [x24]
49-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapur x20, [x13]
50-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurb w13, [x17]
51-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapurh w3, [x22]
52-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb w7, [x8]
53-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursb x29, [x7]
54-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh w17, [x19]
55-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursh x3, [x3]
56-
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - ldapursw x3, [x18]
48+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur w7, [x24]
49+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapur x20, [x13]
50+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurb w13, [x17]
51+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapurh w3, [x22]
52+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb w7, [x8]
53+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursb x29, [x7]
54+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh w17, [x19]
55+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursh x3, [x3]
56+
# CHECK-NEXT: - - - - 0.33 0.33 0.33 - - - - - - ldapursw x3, [x18]
5757
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur w3, [x27]
5858
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlur x23, [x25]
5959
# CHECK-NEXT: - - 0.50 0.50 - 0.50 0.50 - - - - - - stlurb w30, [x17]

llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
# CHECK-NEXT: [6]: HasSideEffects (U)
1111

1212
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
13-
# CHECK-NEXT: 2 1 0.50 * ldapur w7, [x24]
14-
# CHECK-NEXT: 2 1 0.50 * ldapur x20, [x13]
15-
# CHECK-NEXT: 2 1 0.50 * ldapurb w13, [x17]
16-
# CHECK-NEXT: 2 1 0.50 * ldapurh w3, [x22]
17-
# CHECK-NEXT: 2 1 0.50 U ldapursb w7, [x8]
18-
# CHECK-NEXT: 2 1 0.50 U ldapursb x29, [x7]
19-
# CHECK-NEXT: 2 1 0.50 U ldapursh w17, [x19]
20-
# CHECK-NEXT: 2 1 0.50 U ldapursh x3, [x3]
21-
# CHECK-NEXT: 2 1 0.50 U ldapursw x3, [x18]
13+
# CHECK-NEXT: 1 4 0.33 * ldapur w7, [x24]
14+
# CHECK-NEXT: 1 4 0.33 * ldapur x20, [x13]
15+
# CHECK-NEXT: 1 4 0.33 * ldapurb w13, [x17]
16+
# CHECK-NEXT: 1 4 0.33 * ldapurh w3, [x22]
17+
# CHECK-NEXT: 1 4 0.33 U ldapursb w7, [x8]
18+
# CHECK-NEXT: 1 4 0.33 U ldapursb x29, [x7]
19+
# CHECK-NEXT: 1 4 0.33 U ldapursh w17, [x19]
20+
# CHECK-NEXT: 1 4 0.33 U ldapursh x3, [x3]
21+
# CHECK-NEXT: 1 4 0.33 U ldapursw x3, [x18]
2222
# CHECK-NEXT: 2 1 0.50 * stlur w3, [x27]
2323
# CHECK-NEXT: 2 1 0.50 * stlur x23, [x25]
2424
# CHECK-NEXT: 2 1 0.50 * stlurb w30, [x17]
@@ -46,19 +46,19 @@
4646

4747
# CHECK: Resource pressure per iteration:
4848
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
49-
# CHECK-NEXT: - - 6.50 6.50 - - - - 6.50 6.50 - - - - - - - -
49+
# CHECK-NEXT: - - 2.00 2.00 - - - 3.00 5.00 5.00 - - - - - - - -
5050

5151
# CHECK: Resource pressure by instruction:
5252
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
53-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur w7, [x24]
54-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapur x20, [x13]
55-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurb w13, [x17]
56-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapurh w3, [x22]
57-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb w7, [x8]
58-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursb x29, [x7]
59-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh w17, [x19]
60-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursh x3, [x3]
61-
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - ldapursw x3, [x18]
53+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur w7, [x24]
54+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapur x20, [x13]
55+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurb w13, [x17]
56+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapurh w3, [x22]
57+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb w7, [x8]
58+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursb x29, [x7]
59+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh w17, [x19]
60+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursh x3, [x3]
61+
# CHECK-NEXT: - - - - - - - 0.33 0.33 0.33 - - - - - - - - ldapursw x3, [x18]
6262
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur w3, [x27]
6363
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlur x23, [x25]
6464
# CHECK-NEXT: - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - - stlurb w30, [x17]

0 commit comments

Comments
 (0)