Skip to content

Commit c39c2cc

Browse files
committed
[X86] Fix SLM uops counts for AES instructions
Based off llvm-exegesis captures, confirmed with uops.info
1 parent e7bd805 commit c39c2cc

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

llvm/lib/Target/X86/X86ScheduleSLM.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,9 @@ def : WriteRes<WriteMMXMOVMSK, [SLM_FPC_RSV1]> { let Latency = 4; }
448448
defm : X86WriteResUnsupported<WriteVecMOVMSKY>;
449449

450450
// AES Instructions.
451-
defm : SLMWriteResPair<WriteAESDecEnc, [SLM_FPC_RSV0], 8, [5]>;
452-
defm : SLMWriteResPair<WriteAESIMC, [SLM_FPC_RSV0], 8, [5]>;
453-
defm : SLMWriteResPair<WriteAESKeyGen, [SLM_FPC_RSV0], 8, [5]>;
451+
defm : SLMWriteResPair<WriteAESDecEnc, [SLM_FPC_RSV0], 8, [5], 4, 1>;
452+
defm : SLMWriteResPair<WriteAESIMC, [SLM_FPC_RSV0], 8, [4], 3, 1>;
453+
defm : SLMWriteResPair<WriteAESKeyGen, [SLM_FPC_RSV0], 8, [4], 3, 1>;
454454

455455
// Carry-less multiplication instructions.
456456
defm : SLMWriteResPair<WriteCLMul, [SLM_FPC_RSV0], 10, [10], 8, 1>;

llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@ aeskeygenassist $22, (%rax), %xmm2
2828
# CHECK-NEXT: [6]: HasSideEffects (U)
2929

3030
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
31-
# CHECK-NEXT: 1 8 5.00 aesdec %xmm0, %xmm2
32-
# CHECK-NEXT: 1 11 5.00 * aesdec (%rax), %xmm2
33-
# CHECK-NEXT: 1 8 5.00 aesdeclast %xmm0, %xmm2
34-
# CHECK-NEXT: 1 11 5.00 * aesdeclast (%rax), %xmm2
35-
# CHECK-NEXT: 1 8 5.00 aesenc %xmm0, %xmm2
36-
# CHECK-NEXT: 1 11 5.00 * aesenc (%rax), %xmm2
37-
# CHECK-NEXT: 1 8 5.00 aesenclast %xmm0, %xmm2
38-
# CHECK-NEXT: 1 11 5.00 * aesenclast (%rax), %xmm2
39-
# CHECK-NEXT: 1 8 5.00 aesimc %xmm0, %xmm2
40-
# CHECK-NEXT: 1 11 5.00 * aesimc (%rax), %xmm2
41-
# CHECK-NEXT: 1 8 5.00 aeskeygenassist $22, %xmm0, %xmm2
42-
# CHECK-NEXT: 1 11 5.00 * aeskeygenassist $22, (%rax), %xmm2
31+
# CHECK-NEXT: 4 8 5.00 aesdec %xmm0, %xmm2
32+
# CHECK-NEXT: 5 11 5.00 * aesdec (%rax), %xmm2
33+
# CHECK-NEXT: 4 8 5.00 aesdeclast %xmm0, %xmm2
34+
# CHECK-NEXT: 5 11 5.00 * aesdeclast (%rax), %xmm2
35+
# CHECK-NEXT: 4 8 5.00 aesenc %xmm0, %xmm2
36+
# CHECK-NEXT: 5 11 5.00 * aesenc (%rax), %xmm2
37+
# CHECK-NEXT: 4 8 5.00 aesenclast %xmm0, %xmm2
38+
# CHECK-NEXT: 5 11 5.00 * aesenclast (%rax), %xmm2
39+
# CHECK-NEXT: 3 8 4.00 aesimc %xmm0, %xmm2
40+
# CHECK-NEXT: 4 11 4.00 * aesimc (%rax), %xmm2
41+
# CHECK-NEXT: 3 8 4.00 aeskeygenassist $22, %xmm0, %xmm2
42+
# CHECK-NEXT: 4 11 4.00 * aeskeygenassist $22, (%rax), %xmm2
4343

4444
# CHECK: Resources:
4545
# CHECK-NEXT: [0] - SLMDivider
@@ -53,7 +53,7 @@ aeskeygenassist $22, (%rax), %xmm2
5353

5454
# CHECK: Resource pressure per iteration:
5555
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
56-
# CHECK-NEXT: - - - 60.00 - - - 6.00
56+
# CHECK-NEXT: - - - 56.00 - - - 6.00
5757

5858
# CHECK: Resource pressure by instruction:
5959
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@@ -65,7 +65,7 @@ aeskeygenassist $22, (%rax), %xmm2
6565
# CHECK-NEXT: - - - 5.00 - - - 1.00 aesenc (%rax), %xmm2
6666
# CHECK-NEXT: - - - 5.00 - - - - aesenclast %xmm0, %xmm2
6767
# CHECK-NEXT: - - - 5.00 - - - 1.00 aesenclast (%rax), %xmm2
68-
# CHECK-NEXT: - - - 5.00 - - - - aesimc %xmm0, %xmm2
69-
# CHECK-NEXT: - - - 5.00 - - - 1.00 aesimc (%rax), %xmm2
70-
# CHECK-NEXT: - - - 5.00 - - - - aeskeygenassist $22, %xmm0, %xmm2
71-
# CHECK-NEXT: - - - 5.00 - - - 1.00 aeskeygenassist $22, (%rax), %xmm2
68+
# CHECK-NEXT: - - - 4.00 - - - - aesimc %xmm0, %xmm2
69+
# CHECK-NEXT: - - - 4.00 - - - 1.00 aesimc (%rax), %xmm2
70+
# CHECK-NEXT: - - - 4.00 - - - - aeskeygenassist $22, %xmm0, %xmm2
71+
# CHECK-NEXT: - - - 4.00 - - - 1.00 aeskeygenassist $22, (%rax), %xmm2

0 commit comments

Comments
 (0)