Commit 8616bd41 authored by Simon Pilgrim's avatar Simon Pilgrim
Browse files

[X86] Fix missing load latencies (PR36894)

We weren't account for load latencies in the SSE42/AES/CLMUL schedule classes
parent 6198e1c4
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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];
}

+1 −1
Original line number Diff line number Diff line
@@ -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
+4 −4
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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
Loading