[llvm] 5ed5df4 - [X86][SLM] Fix uops for PCMPISTR/PCMPISTR instructions

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


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

URL: https://github.com/llvm/llvm-project/commit/5ed5df480257d24f480f01d784ed7cfd6dd25858
DIFF: https://github.com/llvm/llvm-project/commit/5ed5df480257d24f480f01d784ed7cfd6dd25858.diff

LOG: [X86][SLM] Fix uops for PCMPISTR/PCMPISTR instructions

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-sse42.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index ac9c63b748ad..174dffc37e53 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -430,16 +430,16 @@ defm : X86WriteResPairUnsupported<WritePHAddZ>;
 
 // String instructions.
 // Packed Compare Implicit Length Strings, Return Mask
-defm : SLMWriteResPair<WritePCmpIStrM,  [SLM_FPC_RSV0], 13, [13]>;
+defm : SLMWriteResPair<WritePCmpIStrM,  [SLM_FPC_RSV0], 13, [13], 5, 1>;
 
 // Packed Compare Explicit Length Strings, Return Mask
-defm : SLMWriteResPair<WritePCmpEStrM,  [SLM_FPC_RSV0], 17, [17]>;
+defm : SLMWriteResPair<WritePCmpEStrM,  [SLM_FPC_RSV0], 17, [17], 8, 1>;
 
 // Packed Compare Implicit Length Strings, Return Index
-defm : SLMWriteResPair<WritePCmpIStrI,  [SLM_FPC_RSV0], 17, [17]>;
+defm : SLMWriteResPair<WritePCmpIStrI,  [SLM_FPC_RSV0], 17, [17], 6, 1>;
 
 // Packed Compare Explicit Length Strings, Return Index
-defm : SLMWriteResPair<WritePCmpEStrI,  [SLM_FPC_RSV0], 21, [21]>;
+defm : SLMWriteResPair<WritePCmpEStrI,  [SLM_FPC_RSV0], 21, [21], 9, 1>;
 
 // MOVMSK Instructions.
 def : WriteRes<WriteFMOVMSK,    [SLM_FPC_RSV1]> { let Latency = 4; }

diff  --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse42.s
index 39a6e9520972..5f487f6faea7 100644
--- a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse42.s
+++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse42.s
@@ -50,14 +50,14 @@ pcmpgtq     (%rax), %xmm2
 # CHECK-NEXT:  1      6     1.00    *                   crc32b	(%rax), %rcx
 # CHECK-NEXT:  1      3     1.00                        crc32q	%rax, %rcx
 # CHECK-NEXT:  1      6     1.00    *                   crc32q	(%rax), %rcx
-# CHECK-NEXT:  1      21    21.00                       pcmpestri	$1, %xmm0, %xmm2
-# CHECK-NEXT:  1      24    21.00   *                   pcmpestri	$1, (%rax), %xmm2
-# CHECK-NEXT:  1      17    17.00                       pcmpestrm	$1, %xmm0, %xmm2
-# CHECK-NEXT:  1      20    17.00   *                   pcmpestrm	$1, (%rax), %xmm2
-# CHECK-NEXT:  1      17    17.00                       pcmpistri	$1, %xmm0, %xmm2
-# CHECK-NEXT:  1      20    17.00   *                   pcmpistri	$1, (%rax), %xmm2
-# CHECK-NEXT:  1      13    13.00                       pcmpistrm	$1, %xmm0, %xmm2
-# CHECK-NEXT:  1      16    13.00   *                   pcmpistrm	$1, (%rax), %xmm2
+# CHECK-NEXT:  9      21    21.00                       pcmpestri	$1, %xmm0, %xmm2
+# CHECK-NEXT:  10     24    21.00   *                   pcmpestri	$1, (%rax), %xmm2
+# CHECK-NEXT:  8      17    17.00                       pcmpestrm	$1, %xmm0, %xmm2
+# CHECK-NEXT:  9      20    17.00   *                   pcmpestrm	$1, (%rax), %xmm2
+# CHECK-NEXT:  6      17    17.00                       pcmpistri	$1, %xmm0, %xmm2
+# CHECK-NEXT:  7      20    17.00   *                   pcmpistri	$1, (%rax), %xmm2
+# CHECK-NEXT:  5      13    13.00                       pcmpistrm	$1, %xmm0, %xmm2
+# CHECK-NEXT:  6      16    13.00   *                   pcmpistrm	$1, (%rax), %xmm2
 # CHECK-NEXT:  1      1     0.50                        pcmpgtq	%xmm0, %xmm2
 # CHECK-NEXT:  1      4     1.00    *                   pcmpgtq	(%rax), %xmm2
 


        


More information about the llvm-commits mailing list