[llvm] 8616bd4 - [X86] Fix missing load latencies (PR36894)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 5 03:53:34 PST 2020
Author: Simon Pilgrim
Date: 2020-02-05T11:53:16Z
New Revision: 8616bd417f7aa1cbd1ace96662b86837c3b73bbf
URL: https://github.com/llvm/llvm-project/commit/8616bd417f7aa1cbd1ace96662b86837c3b73bbf
DIFF: https://github.com/llvm/llvm-project/commit/8616bd417f7aa1cbd1ace96662b86837c3b73bbf.diff
LOG: [X86] Fix missing load latencies (PR36894)
We weren't account for load latencies in the SSE42/AES/CLMUL schedule classes
Added:
Modified:
llvm/lib/Target/X86/X86SchedSandyBridge.td
llvm/test/tools/llvm-mca/X86/Generic/resources-aes.s
llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
llvm/test/tools/llvm-mca/X86/Generic/resources-pclmul.s
llvm/test/tools/llvm-mca/X86/Generic/resources-sse42.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-aes.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-clmul.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-pclmul.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse42.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index fb1a35b48db1..cadb06a9fe8b 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -482,7 +482,7 @@ def : WriteRes<WritePCmpEStrM, [SBPort015]> {
let ResourceCycles = [8];
}
def : WriteRes<WritePCmpEStrMLd, [SBPort015, SBPort23]> {
- let Latency = 11;
+ let Latency = 17;
let ResourceCycles = [7, 1];
}
@@ -504,7 +504,7 @@ def : WriteRes<WritePCmpEStrI, [SBPort015]> {
let ResourceCycles = [8];
}
def : WriteRes<WritePCmpEStrILd, [SBPort015, SBPort23]> {
- let Latency = 4;
+ let Latency = 10;
let ResourceCycles = [7, 1];
}
@@ -542,7 +542,7 @@ def : WriteRes<WriteAESKeyGen, [SBPort015]> {
let ResourceCycles = [11];
}
def : WriteRes<WriteAESKeyGenLd, [SBPort015, SBPort23]> {
- let Latency = 8;
+ let Latency = 14;
let ResourceCycles = [10, 1];
}
@@ -552,7 +552,7 @@ def : WriteRes<WriteCLMul, [SBPort015]> {
let ResourceCycles = [18];
}
def : WriteRes<WriteCLMulLd, [SBPort015, SBPort23]> {
- let Latency = 14;
+ let Latency = 20;
let ResourceCycles = [17, 1];
}
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-aes.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-aes.s
index 5720f208ecbc..1debfd65efc1 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-aes.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-aes.s
@@ -39,7 +39,7 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: 2 12 2.00 aesimc %xmm0, %xmm2
# CHECK-NEXT: 3 18 2.00 * aesimc (%rax), %xmm2
# CHECK-NEXT: 1 8 3.67 aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 14 3.33 * aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
index 7d01c23baa51..9d66e40a868e 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx1.s
@@ -1061,7 +1061,7 @@ vzeroupper
# CHECK-NEXT: 2 12 2.00 vaesimc %xmm0, %xmm2
# CHECK-NEXT: 3 18 2.00 * vaesimc (%rax), %xmm2
# CHECK-NEXT: 1 8 3.67 vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 14 3.33 * vaeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 vandnpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vandnpd %ymm0, %ymm1, %ymm2
@@ -1404,7 +1404,7 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 14 6.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.67 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 20 5.67 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm0, %xmm1, %xmm2
@@ -1414,9 +1414,9 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 2.67 vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 2.33 * vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 1 10 2.33 * vpcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: 1 11 2.67 vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 2.33 * vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 17 2.33 * vpcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpgtb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtd %xmm0, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-pclmul.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-pclmul.s
index 12f879b5fb0f..486221635c9a 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-pclmul.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-pclmul.s
@@ -14,7 +14,7 @@ pclmulqdq $11, (%rax), %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
-# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
+# CHECK-NEXT: 1 20 5.67 * pclmulqdq $11, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse42.s
index 935c5e3d7f3e..9e78500ea95a 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse42.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse42.s
@@ -51,9 +51,9 @@ pcmpgtq (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 crc32q %rax, %rcx
# CHECK-NEXT: 2 8 1.00 * crc32q (%rax), %rcx
# CHECK-NEXT: 1 4 2.67 pcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 2.33 * pcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 1 10 2.33 * pcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: 1 11 2.67 pcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 2.33 * pcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 17 2.33 * pcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: 3 11 3.00 pcmpistri $1, %xmm0, %xmm2
# CHECK-NEXT: 4 17 3.00 * pcmpistri $1, (%rax), %xmm2
# CHECK-NEXT: 3 11 3.00 pcmpistrm $1, %xmm0, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-aes.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-aes.s
index 4083492a46d6..fccb9414a74a 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-aes.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-aes.s
@@ -39,7 +39,7 @@ aeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: 2 12 2.00 aesimc %xmm0, %xmm2
# CHECK-NEXT: 3 18 2.00 * aesimc (%rax), %xmm2
# CHECK-NEXT: 1 8 3.67 aeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * aeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 14 3.33 * aeskeygenassist $22, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
index c9f50af487ac..d4132e2ab2f1 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-avx1.s
@@ -1061,7 +1061,7 @@ vzeroupper
# CHECK-NEXT: 2 12 2.00 vaesimc %xmm0, %xmm2
# CHECK-NEXT: 3 18 2.00 * vaesimc (%rax), %xmm2
# CHECK-NEXT: 1 8 3.67 vaeskeygenassist $22, %xmm0, %xmm2
-# CHECK-NEXT: 1 8 3.33 * vaeskeygenassist $22, (%rax), %xmm2
+# CHECK-NEXT: 1 14 3.33 * vaeskeygenassist $22, (%rax), %xmm2
# CHECK-NEXT: 1 1 1.00 vandnpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 1.00 vandnpd %ymm0, %ymm1, %ymm2
@@ -1404,7 +1404,7 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpblendw $11, %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpblendw $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 14 6.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: 1 14 5.67 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: 1 20 5.67 * vpclmulqdq $11, (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpeqd %xmm0, %xmm1, %xmm2
@@ -1414,9 +1414,9 @@ vzeroupper
# CHECK-NEXT: 1 1 0.50 vpcmpeqw %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpeqw (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 4 2.67 vpcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 2.33 * vpcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 1 10 2.33 * vpcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: 1 11 2.67 vpcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 2.33 * vpcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 17 2.33 * vpcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtb %xmm0, %xmm1, %xmm2
# CHECK-NEXT: 2 7 0.50 * vpcmpgtb (%rax), %xmm1, %xmm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtd %xmm0, %xmm1, %xmm2
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-clmul.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-clmul.s
index 9cdd8290a4fa..8a853e6b04a6 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-clmul.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-clmul.s
@@ -14,7 +14,7 @@ pclmulqdq $11, (%rax), %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
-# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
+# CHECK-NEXT: 1 20 5.67 * pclmulqdq $11, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-pclmul.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-pclmul.s
index 9cdd8290a4fa..8a853e6b04a6 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-pclmul.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-pclmul.s
@@ -14,7 +14,7 @@ pclmulqdq $11, (%rax), %xmm2
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 14 6.00 pclmulqdq $11, %xmm0, %xmm2
-# CHECK-NEXT: 1 14 5.67 * pclmulqdq $11, (%rax), %xmm2
+# CHECK-NEXT: 1 20 5.67 * pclmulqdq $11, (%rax), %xmm2
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse42.s
index 62aa03755ef8..04e5bab189bb 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse42.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse42.s
@@ -51,9 +51,9 @@ pcmpgtq (%rax), %xmm2
# CHECK-NEXT: 1 3 1.00 crc32q %rax, %rcx
# CHECK-NEXT: 2 8 1.00 * crc32q (%rax), %rcx
# CHECK-NEXT: 1 4 2.67 pcmpestri $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 4 2.33 * pcmpestri $1, (%rax), %xmm2
+# CHECK-NEXT: 1 10 2.33 * pcmpestri $1, (%rax), %xmm2
# CHECK-NEXT: 1 11 2.67 pcmpestrm $1, %xmm0, %xmm2
-# CHECK-NEXT: 1 11 2.33 * pcmpestrm $1, (%rax), %xmm2
+# CHECK-NEXT: 1 17 2.33 * pcmpestrm $1, (%rax), %xmm2
# CHECK-NEXT: 3 11 3.00 pcmpistri $1, %xmm0, %xmm2
# CHECK-NEXT: 4 17 3.00 * pcmpistri $1, (%rax), %xmm2
# CHECK-NEXT: 3 11 3.00 pcmpistrm $1, %xmm0, %xmm2
More information about the llvm-commits
mailing list