[llvm] c39c2cc - [X86] Fix SLM uops counts for AES instructions
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 19 03:04:07 PST 2022
Author: Simon Pilgrim
Date: 2022-12-19T11:03:41Z
New Revision: c39c2cc9541a38b61f968a9e5c9fe9ce486fb629
URL: https://github.com/llvm/llvm-project/commit/c39c2cc9541a38b61f968a9e5c9fe9ce486fb629
DIFF: https://github.com/llvm/llvm-project/commit/c39c2cc9541a38b61f968a9e5c9fe9ce486fb629.diff
LOG: [X86] Fix SLM uops counts for AES instructions
Based off llvm-exegesis captures, confirmed with uops.info
Added:
Modified:
llvm/lib/Target/X86/X86ScheduleSLM.td
llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index e186168bf603b..c0b0cc8e64d1a 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -448,9 +448,9 @@ def : WriteRes<WriteMMXMOVMSK, [SLM_FPC_RSV1]> { let Latency = 4; }
defm : X86WriteResUnsupported<WriteVecMOVMSKY>;
// AES Instructions.
-defm : SLMWriteResPair<WriteAESDecEnc, [SLM_FPC_RSV0], 8, [5]>;
-defm : SLMWriteResPair<WriteAESIMC, [SLM_FPC_RSV0], 8, [5]>;
-defm : SLMWriteResPair<WriteAESKeyGen, [SLM_FPC_RSV0], 8, [5]>;
+defm : SLMWriteResPair<WriteAESDecEnc, [SLM_FPC_RSV0], 8, [5], 4, 1>;
+defm : SLMWriteResPair<WriteAESIMC, [SLM_FPC_RSV0], 8, [4], 3, 1>;
+defm : SLMWriteResPair<WriteAESKeyGen, [SLM_FPC_RSV0], 8, [4], 3, 1>;
// Carry-less multiplication instructions.
defm : SLMWriteResPair<WriteCLMul, [SLM_FPC_RSV0], 10, [10], 8, 1>;
diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s
index 144b94259047b..0d4ae4fcbe65d 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-aes.s
@@ -28,18 +28,18 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
-# CHECK-NEXT: 1 8 5.00 aesdec %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aesdec (%rax), %xmm2
-# CHECK-NEXT: 1 8 5.00 aesdeclast %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aesdeclast (%rax), %xmm2
-# CHECK-NEXT: 1 8 5.00 aesenc %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aesenc (%rax), %xmm2
-# CHECK-NEXT: 1 8 5.00 aesenclast %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aesenclast (%rax), %xmm2
-# CHECK-NEXT: 1 8 5.00 aesimc %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aesimc (%rax), %xmm2
-# CHECK-NEXT: 1 8 5.00 aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 5.00 * aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 4 8 5.00 aesdec %xmm0, %xmm2
+# CHECK-NEXT: 5 11 5.00 * aesdec (%rax), %xmm2
+# CHECK-NEXT: 4 8 5.00 aesdeclast %xmm0, %xmm2
+# CHECK-NEXT: 5 11 5.00 * aesdeclast (%rax), %xmm2
+# CHECK-NEXT: 4 8 5.00 aesenc %xmm0, %xmm2
+# CHECK-NEXT: 5 11 5.00 * aesenc (%rax), %xmm2
+# CHECK-NEXT: 4 8 5.00 aesenclast %xmm0, %xmm2
+# CHECK-NEXT: 5 11 5.00 * aesenclast (%rax), %xmm2
+# CHECK-NEXT: 3 8 4.00 aesimc %xmm0, %xmm2
+# CHECK-NEXT: 4 11 4.00 * aesimc (%rax), %xmm2
+# CHECK-NEXT: 3 8 4.00 aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: 4 11 4.00 * aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SLMDivider
@@ -53,7 +53,7 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
-# CHECK-NEXT: - - - 60.00 - - - 6.00
+# CHECK-NEXT: - - - 56.00 - - - 6.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@@ -65,7 +65,7 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: - - - 5.00 - - - 1.00 aesenc (%rax), %xmm2
# CHECK-NEXT: - - - 5.00 - - - - aesenclast %xmm0, %xmm2
# CHECK-NEXT: - - - 5.00 - - - 1.00 aesenclast (%rax), %xmm2
-# CHECK-NEXT: - - - 5.00 - - - - aesimc %xmm0, %xmm2
-# CHECK-NEXT: - - - 5.00 - - - 1.00 aesimc (%rax), %xmm2
-# CHECK-NEXT: - - - 5.00 - - - - aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: - - - 5.00 - - - 1.00 aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: - - - 4.00 - - - - aesimc %xmm0, %xmm2
+# CHECK-NEXT: - - - 4.00 - - - 1.00 aesimc (%rax), %xmm2
+# CHECK-NEXT: - - - 4.00 - - - - aeskeygenassist $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - 4.00 - - - 1.00 aeskeygenassist $22, (%rax), %xmm2
More information about the llvm-commits
mailing list