[llvm] r355636 - [X86] Correct scheduler information for rotate by constant for Haswell, Broadwell, and Skylake.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 7 13:22:57 PST 2019
Author: ctopper
Date: Thu Mar 7 13:22:56 2019
New Revision: 355636
URL: http://llvm.org/viewvc/llvm-project?rev=355636&view=rev
Log:
[X86] Correct scheduler information for rotate by constant for Haswell, Broadwell, and Skylake.
Rotate with explicit immediate is a single uop from Haswell on. An immediate of 1 has a dependency on the previous writer of flags, but the other immediate values do not.
The implicit rotate by 1 instruction is 2 uops. But the flags are merged after the rotate uop so the data result does not see the flag dependency. But I don't think we have any way of modeling that.
RORX is 1 uop without the load. 2 uops with the load. We currently model these with WriteShift/WriteShiftLd.
Differential Revision: https://reviews.llvm.org/D59077
Modified:
llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
llvm/trunk/lib/Target/X86/X86SchedHaswell.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
Modified: llvm/trunk/lib/Target/X86/X86SchedBroadwell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedBroadwell.td?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedBroadwell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedBroadwell.td Thu Mar 7 13:22:56 2019
@@ -187,7 +187,7 @@ defm : BWWriteResPair<WritePOPCNT,
// Integer shifts and rotates.
defm : BWWriteResPair<WriteShift, [BWPort06], 1>;
defm : BWWriteResPair<WriteShiftCL, [BWPort06,BWPort0156], 3, [2,1], 3>;
-defm : BWWriteResPair<WriteRotate, [BWPort06], 2, [2], 2>;
+defm : BWWriteResPair<WriteRotate, [BWPort06], 1, [1], 1>;
defm : BWWriteResPair<WriteRotateCL, [BWPort06,BWPort0156], 3, [2,1], 3>;
// SHLD/SHRD.
@@ -1105,6 +1105,14 @@ def BWWriteResGroup87 : SchedWriteRes<[B
def: InstRW<[BWWriteResGroup87], (instregex "ROL(8|16|32|64)m(1|i)",
"ROR(8|16|32|64)m(1|i)")>;
+def BWWriteResGroup87_1 : SchedWriteRes<[BWPort06]> {
+ let Latency = 2;
+ let NumMicroOps = 2;
+ let ResourceCycles = [2];
+}
+def: InstRW<[BWWriteResGroup87_1], (instrs ROL8r1, ROL16r1, ROL32r1, ROL64r1,
+ ROR8r1, ROR16r1, ROR32r1, ROR64r1)>;
+
def BWWriteResGroup88 : SchedWriteRes<[BWPort4,BWPort23,BWPort237,BWPort0156]> {
let Latency = 7;
let NumMicroOps = 5;
Modified: llvm/trunk/lib/Target/X86/X86SchedHaswell.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedHaswell.td?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedHaswell.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedHaswell.td Thu Mar 7 13:22:56 2019
@@ -152,7 +152,7 @@ defm : X86WriteRes<WriteXCHG, [HWPort015
// Integer shifts and rotates.
defm : HWWriteResPair<WriteShift, [HWPort06], 1>;
defm : HWWriteResPair<WriteShiftCL, [HWPort06, HWPort0156], 3, [2,1], 3>;
-defm : HWWriteResPair<WriteRotate, [HWPort06], 2, [2], 2>;
+defm : HWWriteResPair<WriteRotate, [HWPort06], 1, [1], 1>;
defm : HWWriteResPair<WriteRotateCL, [HWPort06, HWPort0156], 3, [2,1], 3>;
// SHLD/SHRD.
@@ -1183,6 +1183,14 @@ def HWWriteResGroup46 : SchedWriteRes<[H
def: InstRW<[HWWriteResGroup46], (instregex "ROL(8|16|32|64)m(1|i)",
"ROR(8|16|32|64)m(1|i)")>;
+def HWWriteResGroup46_1 : SchedWriteRes<[HWPort06]> {
+ let Latency = 2;
+ let NumMicroOps = 2;
+ let ResourceCycles = [2];
+}
+def: InstRW<[HWWriteResGroup46_1], (instrs ROL8r1, ROL16r1, ROL32r1, ROL64r1,
+ ROR8r1, ROR16r1, ROR32r1, ROR64r1)>;
+
def HWWriteResGroup47 : SchedWriteRes<[HWPort4,HWPort23,HWPort237,HWPort0156]> {
let Latency = 8;
let NumMicroOps = 5;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeClient.td Thu Mar 7 13:22:56 2019
@@ -184,7 +184,7 @@ defm : SKLWriteResPair<WritePOPCNT,
// Integer shifts and rotates.
defm : SKLWriteResPair<WriteShift, [SKLPort06], 1>;
defm : SKLWriteResPair<WriteShiftCL, [SKLPort06], 3, [3], 3>;
-defm : SKLWriteResPair<WriteRotate, [SKLPort06], 2, [2], 2>;
+defm : SKLWriteResPair<WriteRotate, [SKLPort06], 1, [1], 1>;
defm : SKLWriteResPair<WriteRotateCL, [SKLPort06], 3, [3], 3>;
// SHLD/SHRD.
@@ -1185,6 +1185,14 @@ def SKLWriteResGroup100 : SchedWriteRes<
def: InstRW<[SKLWriteResGroup100], (instregex "ROL(8|16|32|64)m(1|i)",
"ROR(8|16|32|64)m(1|i)")>;
+def SKLWriteResGroup100_1 : SchedWriteRes<[SKLPort06]> {
+ let Latency = 2;
+ let NumMicroOps = 2;
+ let ResourceCycles = [2];
+}
+def: InstRW<[SKLWriteResGroup100_1], (instrs ROL8r1, ROL16r1, ROL32r1, ROL64r1,
+ ROR8r1, ROR16r1, ROR32r1, ROR64r1)>;
+
def SKLWriteResGroup101 : SchedWriteRes<[SKLPort4,SKLPort23,SKLPort237,SKLPort0156]> {
let Latency = 7;
let NumMicroOps = 5;
Modified: llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td (original)
+++ llvm/trunk/lib/Target/X86/X86SchedSkylakeServer.td Thu Mar 7 13:22:56 2019
@@ -177,7 +177,7 @@ defm : X86WriteRes<WriteBitTestSetRegLd,
// Integer shifts and rotates.
defm : SKXWriteResPair<WriteShift, [SKXPort06], 1>;
defm : SKXWriteResPair<WriteShiftCL, [SKXPort06], 3, [3], 3>;
-defm : SKXWriteResPair<WriteRotate, [SKXPort06], 2, [2], 2>;
+defm : SKXWriteResPair<WriteRotate, [SKXPort06], 1, [1], 1>;
defm : SKXWriteResPair<WriteRotateCL, [SKXPort06], 3, [3], 3>;
// SHLD/SHRD.
@@ -1448,6 +1448,14 @@ def SKXWriteResGroup107 : SchedWriteRes<
def: InstRW<[SKXWriteResGroup107], (instregex "ROL(8|16|32|64)m(1|i)",
"ROR(8|16|32|64)m(1|i)")>;
+def SKXWriteResGroup107_1 : SchedWriteRes<[SKXPort06]> {
+ let Latency = 2;
+ let NumMicroOps = 2;
+ let ResourceCycles = [2];
+}
+def: InstRW<[SKXWriteResGroup107_1], (instrs ROL8r1, ROL16r1, ROL32r1, ROL64r1,
+ ROR8r1, ROR16r1, ROR32r1, ROR64r1)>;
+
def SKXWriteResGroup108 : SchedWriteRes<[SKXPort4,SKXPort23,SKXPort237,SKXPort0156]> {
let Latency = 7;
let NumMicroOps = 5;
Modified: llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s Thu Mar 7 13:22:56 2019
@@ -1345,8 +1345,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorb %dil
# CHECK-NEXT: 5 7 1.00 * * rolb (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb (%rax)
-# CHECK-NEXT: 2 2 1.00 rolb $7, %dil
-# CHECK-NEXT: 2 2 1.00 rorb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rolb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rorb $7, %dil
# CHECK-NEXT: 5 7 1.00 * * rolb $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolb %cl, %dil
@@ -1357,8 +1357,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorw %di
# CHECK-NEXT: 5 7 1.00 * * rolw (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw (%rax)
-# CHECK-NEXT: 2 2 1.00 rolw $7, %di
-# CHECK-NEXT: 2 2 1.00 rorw $7, %di
+# CHECK-NEXT: 1 1 0.50 rolw $7, %di
+# CHECK-NEXT: 1 1 0.50 rorw $7, %di
# CHECK-NEXT: 5 7 1.00 * * rolw $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolw %cl, %di
@@ -1369,8 +1369,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorl %edi
# CHECK-NEXT: 5 7 1.00 * * roll (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl (%rax)
-# CHECK-NEXT: 2 2 1.00 roll $7, %edi
-# CHECK-NEXT: 2 2 1.00 rorl $7, %edi
+# CHECK-NEXT: 1 1 0.50 roll $7, %edi
+# CHECK-NEXT: 1 1 0.50 rorl $7, %edi
# CHECK-NEXT: 5 7 1.00 * * roll $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl $7, (%rax)
# CHECK-NEXT: 3 3 1.00 roll %cl, %edi
@@ -1381,8 +1381,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorq %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq (%rax)
-# CHECK-NEXT: 2 2 1.00 rolq $7, %rdi
-# CHECK-NEXT: 2 2 1.00 rorq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rolq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rorq $7, %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolq %cl, %rdi
@@ -1693,7 +1693,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: 50.00 - 522.50 346.50 269.33 269.33 214.00 259.00 556.00 85.33
+# CHECK-NEXT: 50.00 - 518.50 346.50 269.33 269.33 214.00 259.00 552.00 85.33
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2143,8 +2143,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb $7, %dil
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorb $7, %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolb %cl, %dil
@@ -2155,8 +2155,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolw $7, %di
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorw $7, %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolw %cl, %di
@@ -2167,8 +2167,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - roll $7, %edi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - roll $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorl $7, %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - roll %cl, %edi
@@ -2179,8 +2179,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolq $7, %rdi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorq $7, %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolq %cl, %rdi
Modified: llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s Thu Mar 7 13:22:56 2019
@@ -1345,8 +1345,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorb %dil
# CHECK-NEXT: 5 8 1.00 * * rolb (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorb (%rax)
-# CHECK-NEXT: 2 2 1.00 rolb $7, %dil
-# CHECK-NEXT: 2 2 1.00 rorb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rolb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rorb $7, %dil
# CHECK-NEXT: 5 8 1.00 * * rolb $7, (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorb $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolb %cl, %dil
@@ -1357,8 +1357,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorw %di
# CHECK-NEXT: 5 8 1.00 * * rolw (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorw (%rax)
-# CHECK-NEXT: 2 2 1.00 rolw $7, %di
-# CHECK-NEXT: 2 2 1.00 rorw $7, %di
+# CHECK-NEXT: 1 1 0.50 rolw $7, %di
+# CHECK-NEXT: 1 1 0.50 rorw $7, %di
# CHECK-NEXT: 5 8 1.00 * * rolw $7, (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorw $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolw %cl, %di
@@ -1369,8 +1369,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorl %edi
# CHECK-NEXT: 5 8 1.00 * * roll (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorl (%rax)
-# CHECK-NEXT: 2 2 1.00 roll $7, %edi
-# CHECK-NEXT: 2 2 1.00 rorl $7, %edi
+# CHECK-NEXT: 1 1 0.50 roll $7, %edi
+# CHECK-NEXT: 1 1 0.50 rorl $7, %edi
# CHECK-NEXT: 5 8 1.00 * * roll $7, (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorl $7, (%rax)
# CHECK-NEXT: 3 3 1.00 roll %cl, %edi
@@ -1381,8 +1381,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorq %rdi
# CHECK-NEXT: 5 8 1.00 * * rolq (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorq (%rax)
-# CHECK-NEXT: 2 2 1.00 rolq $7, %rdi
-# CHECK-NEXT: 2 2 1.00 rorq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rolq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rorq $7, %rdi
# CHECK-NEXT: 5 8 1.00 * * rolq $7, (%rax)
# CHECK-NEXT: 5 8 1.00 * * rorq $7, (%rax)
# CHECK-NEXT: 3 3 1.00 rolq %cl, %rdi
@@ -1693,7 +1693,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: 80.00 - 577.75 371.75 269.83 269.83 209.00 286.25 640.25 82.33
+# CHECK-NEXT: 80.00 - 573.75 371.75 269.83 269.83 209.00 286.25 636.25 82.33
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2143,8 +2143,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb $7, %dil
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorb $7, %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolb %cl, %dil
@@ -2155,8 +2155,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolw $7, %di
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorw $7, %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolw %cl, %di
@@ -2167,8 +2167,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - roll $7, %edi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - roll $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorl $7, %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - roll %cl, %edi
@@ -2179,8 +2179,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolq $7, %rdi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorq $7, %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq $7, (%rax)
# CHECK-NEXT: - - 1.25 0.25 - - - 0.25 1.25 - rolq %cl, %rdi
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s Thu Mar 7 13:22:56 2019
@@ -1345,8 +1345,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorb %dil
# CHECK-NEXT: 5 7 1.00 * * rolb (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb (%rax)
-# CHECK-NEXT: 2 2 1.00 rolb $7, %dil
-# CHECK-NEXT: 2 2 1.00 rorb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rolb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rorb $7, %dil
# CHECK-NEXT: 5 7 1.00 * * rolb $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolb %cl, %dil
@@ -1357,8 +1357,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorw %di
# CHECK-NEXT: 5 7 1.00 * * rolw (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw (%rax)
-# CHECK-NEXT: 2 2 1.00 rolw $7, %di
-# CHECK-NEXT: 2 2 1.00 rorw $7, %di
+# CHECK-NEXT: 1 1 0.50 rolw $7, %di
+# CHECK-NEXT: 1 1 0.50 rorw $7, %di
# CHECK-NEXT: 5 7 1.00 * * rolw $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolw %cl, %di
@@ -1369,8 +1369,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorl %edi
# CHECK-NEXT: 5 7 1.00 * * roll (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl (%rax)
-# CHECK-NEXT: 2 2 1.00 roll $7, %edi
-# CHECK-NEXT: 2 2 1.00 rorl $7, %edi
+# CHECK-NEXT: 1 1 0.50 roll $7, %edi
+# CHECK-NEXT: 1 1 0.50 rorl $7, %edi
# CHECK-NEXT: 5 7 1.00 * * roll $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl $7, (%rax)
# CHECK-NEXT: 3 3 1.50 roll %cl, %edi
@@ -1381,8 +1381,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorq %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq (%rax)
-# CHECK-NEXT: 2 2 1.00 rolq $7, %rdi
-# CHECK-NEXT: 2 2 1.00 rorq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rolq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rorq $7, %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolq %cl, %rdi
@@ -1693,7 +1693,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: 60.00 - 592.75 326.25 269.33 269.33 214.00 293.75 649.25 85.33
+# CHECK-NEXT: 60.00 - 588.75 326.25 269.33 269.33 214.00 293.75 645.25 85.33
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2143,8 +2143,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb $7, %dil
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorb $7, %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolb %cl, %dil
@@ -2155,8 +2155,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolw $7, %di
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorw $7, %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolw %cl, %di
@@ -2167,8 +2167,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - roll $7, %edi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - roll $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorl $7, %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - roll %cl, %edi
@@ -2179,8 +2179,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolq $7, %rdi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorq $7, %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolq %cl, %rdi
Modified: llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s?rev=355636&r1=355635&r2=355636&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s (original)
+++ llvm/trunk/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s Thu Mar 7 13:22:56 2019
@@ -1345,8 +1345,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorb %dil
# CHECK-NEXT: 5 7 1.00 * * rolb (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb (%rax)
-# CHECK-NEXT: 2 2 1.00 rolb $7, %dil
-# CHECK-NEXT: 2 2 1.00 rorb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rolb $7, %dil
+# CHECK-NEXT: 1 1 0.50 rorb $7, %dil
# CHECK-NEXT: 5 7 1.00 * * rolb $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorb $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolb %cl, %dil
@@ -1357,8 +1357,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorw %di
# CHECK-NEXT: 5 7 1.00 * * rolw (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw (%rax)
-# CHECK-NEXT: 2 2 1.00 rolw $7, %di
-# CHECK-NEXT: 2 2 1.00 rorw $7, %di
+# CHECK-NEXT: 1 1 0.50 rolw $7, %di
+# CHECK-NEXT: 1 1 0.50 rorw $7, %di
# CHECK-NEXT: 5 7 1.00 * * rolw $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorw $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolw %cl, %di
@@ -1369,8 +1369,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorl %edi
# CHECK-NEXT: 5 7 1.00 * * roll (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl (%rax)
-# CHECK-NEXT: 2 2 1.00 roll $7, %edi
-# CHECK-NEXT: 2 2 1.00 rorl $7, %edi
+# CHECK-NEXT: 1 1 0.50 roll $7, %edi
+# CHECK-NEXT: 1 1 0.50 rorl $7, %edi
# CHECK-NEXT: 5 7 1.00 * * roll $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorl $7, (%rax)
# CHECK-NEXT: 3 3 1.50 roll %cl, %edi
@@ -1381,8 +1381,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: 2 2 1.00 rorq %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq (%rax)
-# CHECK-NEXT: 2 2 1.00 rolq $7, %rdi
-# CHECK-NEXT: 2 2 1.00 rorq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rolq $7, %rdi
+# CHECK-NEXT: 1 1 0.50 rorq $7, %rdi
# CHECK-NEXT: 5 7 1.00 * * rolq $7, (%rax)
# CHECK-NEXT: 5 7 1.00 * * rorq $7, (%rax)
# CHECK-NEXT: 3 3 1.50 rolq %cl, %rdi
@@ -1693,7 +1693,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: 60.00 - 593.00 326.50 269.33 269.33 214.00 294.00 649.50 85.33
+# CHECK-NEXT: 60.00 - 589.00 326.50 269.33 269.33 214.00 294.00 645.50 85.33
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2143,8 +2143,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb $7, %dil
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolb $7, %dil
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorb $7, %dil
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorb $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolb %cl, %dil
@@ -2155,8 +2155,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolw $7, %di
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolw $7, %di
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorw $7, %di
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolw $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorw $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolw %cl, %di
@@ -2167,8 +2167,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - roll $7, %edi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorl $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - roll $7, %edi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorl $7, %edi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 roll $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorl $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - roll %cl, %edi
@@ -2179,8 +2179,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq (%rax)
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolq $7, %rdi
-# CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rolq $7, %rdi
+# CHECK-NEXT: - - 0.50 - - - - - 0.50 - rorq $7, %rdi
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolq $7, (%rax)
# CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rorq $7, (%rax)
# CHECK-NEXT: - - 1.50 - - - - - 1.50 - rolq %cl, %rdi
More information about the llvm-commits
mailing list