[llvm] 680afaa - [X86][SLM] Fix uops for PCLMULQDQ

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 17 10:53:28 PDT 2021


Author: Simon Pilgrim
Date: 2021-10-17T18:13:14+01:00
New Revision: 680afaaa5d922781f3ec379328853398890d403c

URL: https://github.com/llvm/llvm-project/commit/680afaaa5d922781f3ec379328853398890d403c
DIFF: https://github.com/llvm/llvm-project/commit/680afaaa5d922781f3ec379328853398890d403c.diff

LOG: [X86][SLM] Fix uops for PCLMULQDQ

Based off a recent llvm-exegesis capture and what Intel AoM / Agner reports as well.

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86ScheduleSLM.td
    llvm/test/tools/llvm-mca/X86/SLM/resources-pclmul.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index d2abe4099eec..ac9c63b748ad 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -453,7 +453,7 @@ defm : SLMWriteResPair<WriteAESIMC,    [SLM_FPC_RSV0], 8, [5]>;
 defm : SLMWriteResPair<WriteAESKeyGen, [SLM_FPC_RSV0], 8, [5]>;
 
 // Carry-less multiplication instructions.
-defm : SLMWriteResPair<WriteCLMul, [SLM_FPC_RSV0], 10, [10]>;
+defm : SLMWriteResPair<WriteCLMul, [SLM_FPC_RSV0], 10, [10], 8, 1>;
 
 def : WriteRes<WriteSystem,     [SLM_FPC_RSV0]> { let Latency = 100; }
 def : WriteRes<WriteMicrocoded, [SLM_FPC_RSV0]> { let Latency = 100; }

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-pclmul.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-pclmul.s
index 37327cfa1eb6..28917e8c2cab 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-pclmul.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-pclmul.s
@@ -13,8 +13,8 @@ pclmulqdq     $11, (%rax), %xmm2
 # CHECK-NEXT: [6]: HasSideEffects (U)
 
 # CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
-# CHECK-NEXT:  1      10    10.00                       pclmulqdq	$11, %xmm0, %xmm2
-# CHECK-NEXT:  1      13    10.00   *                   pclmulqdq	$11, (%rax), %xmm2
+# CHECK-NEXT:  8      10    10.00                       pclmulqdq	$11, %xmm0, %xmm2
+# CHECK-NEXT:  9      13    10.00   *                   pclmulqdq	$11, (%rax), %xmm2
 
 # CHECK:      Resources:
 # CHECK-NEXT: [0]   - SLMDivider


        


More information about the llvm-commits mailing list