[llvm] 56d6ccd - [X86] Update register RCL/RCR by 1 and immediate scheduling for Intel CPUs
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 8 09:34:45 PST 2022
Author: Craig Topper
Date: 2022-02-08T09:20:20-08:00
New Revision: 56d6ccd4cb4aac4c23ac50ae51f9cebb4ea1ad29
URL: https://github.com/llvm/llvm-project/commit/56d6ccd4cb4aac4c23ac50ae51f9cebb4ea1ad29
DIFF: https://github.com/llvm/llvm-project/commit/56d6ccd4cb4aac4c23ac50ae51f9cebb4ea1ad29.diff
LOG: [X86] Update register RCL/RCR by 1 and immediate scheduling for Intel CPUs
Most Intel CPU scheduler files lumped the immediate and 1 instructions
together, but uops.info shows they are quite different.
For the most part the by 1 instructions were pretty accurate to the uops.info
data except the latency was 3 instead of 2 as uops.info indicates.
The by immediate instructions need 7 or 8 uops and have higher latency.
It looks like the 8-bit by immediate instructions may need even more
uops, but I just lumped them with the 16/32/64.
Noticed while checking out PR53648. So mostly I cared about the by 1
instructions.
Reviewed By: RKSimon, pengfei
Differential Revision: https://reviews.llvm.org/D119217
Added:
Modified:
llvm/lib/Target/X86/X86SchedBroadwell.td
llvm/lib/Target/X86/X86SchedHaswell.td
llvm/lib/Target/X86/X86SchedIceLake.td
llvm/lib/Target/X86/X86SchedSandyBridge.td
llvm/lib/Target/X86/X86SchedSkylakeClient.td
llvm/lib/Target/X86/X86SchedSkylakeServer.td
llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td
index 8e317dc22bd65..e4b95cb0807f2 100644
--- a/llvm/lib/Target/X86/X86SchedBroadwell.td
+++ b/llvm/lib/Target/X86/X86SchedBroadwell.td
@@ -814,12 +814,26 @@ def BWWriteResGroup34 : SchedWriteRes<[BWPort6,BWPort0156]> {
def: InstRW<[BWWriteResGroup34], (instregex "CLD")>;
def BWWriteResGroup35 : SchedWriteRes<[BWPort06,BWPort0156]> {
- let Latency = 3;
+ let Latency = 2;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[BWWriteResGroup35], (instregex "RCL(8|16|32|64)r(1|i)",
- "RCR(8|16|32|64)r(1|i)")>;
+def: InstRW<[BWWriteResGroup35], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def BWWriteResGroup36 : SchedWriteRes<[BWPort1,BWPort06,BWPort0156]> {
+ let Latency = 5;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[BWWriteResGroup36], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def BWWriteResGroup36b : SchedWriteRes<[BWPort1,BWPort06,BWPort0156]> {
+ let Latency = 6;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[BWWriteResGroup36b], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def BWWriteResGroup37 : SchedWriteRes<[BWPort4,BWPort6,BWPort237,BWPort0156]> {
let Latency = 3;
diff --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td
index 1cd0b33796847..7b1a31d2a4df1 100644
--- a/llvm/lib/Target/X86/X86SchedHaswell.td
+++ b/llvm/lib/Target/X86/X86SchedHaswell.td
@@ -1299,12 +1299,26 @@ def HWWriteResGroup58 : SchedWriteRes<[HWPort6,HWPort0156]> {
def: InstRW<[HWWriteResGroup58], (instregex "CLD")>;
def HWWriteResGroup59 : SchedWriteRes<[HWPort06,HWPort0156]> {
- let Latency = 3;
+ let Latency = 2;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[HWWriteResGroup59], (instregex "RCL(8|16|32|64)r(1|i)",
- "RCR(8|16|32|64)r(1|i)")>;
+def: InstRW<[HWWriteResGroup59], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def HWWriteResGroup60 : SchedWriteRes<[HWPort1,HWPort06,HWPort0156]> {
+ let Latency = 5;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[HWWriteResGroup60], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def HWWriteResGroup60b : SchedWriteRes<[HWPort1,HWPort06,HWPort0156]> {
+ let Latency = 6;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[HWWriteResGroup60b], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def HWWriteResGroup61 : SchedWriteRes<[HWPort0,HWPort4,HWPort237]> {
let Latency = 4;
diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td
index 9fd986e341816..b66db7e7e73a6 100644
--- a/llvm/lib/Target/X86/X86SchedIceLake.td
+++ b/llvm/lib/Target/X86/X86SchedIceLake.td
@@ -923,12 +923,26 @@ def ICXWriteResGroup43 : SchedWriteRes<[ICXPort237,ICXPort0156]> {
def: InstRW<[ICXWriteResGroup43], (instrs MFENCE)>;
def ICXWriteResGroup44 : SchedWriteRes<[ICXPort06,ICXPort0156]> {
- let Latency = 3;
+ let Latency = 2;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[ICXWriteResGroup44], (instregex "RCL(8|16|32|64)r(1|i)",
- "RCR(8|16|32|64)r(1|i)")>;
+def: InstRW<[ICXWriteResGroup44], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def ICXWriteResGroup44b : SchedWriteRes<[ICXPort1,ICXPort06,ICXPort0156]> {
+ let Latency = 5;
+ let NumMicroOps = 7;
+ let ResourceCycles = [2,3,2];
+}
+def: InstRW<[ICXWriteResGroup44b], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def ICXWriteResGroup44c : SchedWriteRes<[ICXPort1,ICXPort06,ICXPort0156]> {
+ let Latency = 6;
+ let NumMicroOps = 7;
+ let ResourceCycles = [2,3,2];
+}
+def: InstRW<[ICXWriteResGroup44c], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def ICXWriteResGroup45 : SchedWriteRes<[ICXPort0,ICXPort4,ICXPort237]> {
let Latency = 3;
diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td
index 7e619a3a87221..8ccfbc5ad093d 100644
--- a/llvm/lib/Target/X86/X86SchedSandyBridge.td
+++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td
@@ -678,13 +678,27 @@ def SBWriteResGroup22 : SchedWriteRes<[SBPort0,SBPort5]> {
}
def: InstRW<[SBWriteResGroup22], (instregex "(V?)EXTRACTPSrr")>;
-def SBWriteResGroup23 : SchedWriteRes<[SBPort05]> {
+def SBWriteResGroup23 : SchedWriteRes<[SBPort05,SBPort015]> {
let Latency = 2;
let NumMicroOps = 3;
- let ResourceCycles = [3];
+ let ResourceCycles = [2,1];
+}
+def: InstRW<[SBWriteResGroup23], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def SBWriteResGroup24 : SchedWriteRes<[SBPort1,SBPort5,SBPort05,SBPort015]> {
+ let Latency = 3;
+ let NumMicroOps = 8;
+ let ResourceCycles = [1,1,4,2];
+}
+def: InstRW<[SBWriteResGroup24], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def SBWriteResGroup24b : SchedWriteRes<[SBPort1,SBPort5,SBPort05,SBPort015]> {
+ let Latency = 4;
+ let NumMicroOps = 8;
+ let ResourceCycles = [1,1,4,2];
}
-def: InstRW<[SBWriteResGroup23], (instregex "RCL(8|16|32|64)r1",
- "RCR(8|16|32|64)r1")>;
+def: InstRW<[SBWriteResGroup24b], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def SBWriteResGroup25_1 : SchedWriteRes<[SBPort23,SBPort015]> {
let Latency = 7;
@@ -727,8 +741,8 @@ def SBWriteResGroup76 : SchedWriteRes<[SBPort05]> {
let NumMicroOps = 8;
let ResourceCycles = [8];
}
-def: InstRW<[SBWriteResGroup76], (instregex "RCL(8|16|32|64)r(i|CL)",
- "RCR(8|16|32|64)r(i|CL)")>;
+def: InstRW<[SBWriteResGroup76], (instregex "RCL(8|16|32|64)rCL",
+ "RCR(8|16|32|64)rCL")>;
def SBWriteResGroup33 : SchedWriteRes<[SBPort4,SBPort23]> {
let Latency = 5;
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
index 0a88bac5aa660..67ed1d8fd9fbb 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td
@@ -836,12 +836,26 @@ def SKLWriteResGroup41 : SchedWriteRes<[SKLPort237,SKLPort0156]> {
def: InstRW<[SKLWriteResGroup41], (instrs MFENCE)>;
def SKLWriteResGroup42 : SchedWriteRes<[SKLPort06,SKLPort0156]> {
- let Latency = 3;
+ let Latency = 2;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[SKLWriteResGroup42], (instregex "RCL(8|16|32|64)r(1|i)",
- "RCR(8|16|32|64)r(1|i)")>;
+def: InstRW<[SKLWriteResGroup42], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def SKLWriteResGroup42b : SchedWriteRes<[SKLPort1,SKLPort06,SKLPort0156]> {
+ let Latency = 5;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[SKLWriteResGroup42b], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def SKLWriteResGroup42c : SchedWriteRes<[SKLPort1,SKLPort06,SKLPort0156]> {
+ let Latency = 6;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[SKLWriteResGroup42c], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def SKLWriteResGroup43 : SchedWriteRes<[SKLPort0,SKLPort4,SKLPort237]> {
let Latency = 3;
diff --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
index b28a18f0dcd71..0189acdd76c50 100644
--- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td
+++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td
@@ -905,12 +905,26 @@ def SKXWriteResGroup43 : SchedWriteRes<[SKXPort237,SKXPort0156]> {
def: InstRW<[SKXWriteResGroup43], (instrs MFENCE)>;
def SKXWriteResGroup44 : SchedWriteRes<[SKXPort06,SKXPort0156]> {
- let Latency = 3;
+ let Latency = 2;
let NumMicroOps = 3;
let ResourceCycles = [1,2];
}
-def: InstRW<[SKXWriteResGroup44], (instregex "RCL(8|16|32|64)r(1|i)",
- "RCR(8|16|32|64)r(1|i)")>;
+def: InstRW<[SKXWriteResGroup44], (instrs RCL8r1, RCL16r1, RCL32r1, RCL64r1,
+ RCR8r1, RCR16r1, RCR32r1, RCR64r1)>;
+
+def SKXWriteResGroup44b : SchedWriteRes<[SKXPort1,SKXPort06,SKXPort0156]> {
+ let Latency = 5;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[SKXWriteResGroup44b], (instrs RCR8ri, RCR16ri, RCR32ri, RCR64ri)>;
+
+def SKXWriteResGroup44c : SchedWriteRes<[SKXPort1,SKXPort06,SKXPort0156]> {
+ let Latency = 6;
+ let NumMicroOps = 8;
+ let ResourceCycles = [2,4,2];
+}
+def: InstRW<[SKXWriteResGroup44c], (instrs RCL8ri, RCL16ri, RCL32ri, RCL64ri)>;
def SKXWriteResGroup45 : SchedWriteRes<[SKXPort0,SKXPort4,SKXPort237]> {
let Latency = 3;
diff --git a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
index c9e7f6329b70e..eec07637c2475 100644
--- a/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.33 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.33 U outsl (%rsi), %dx
# CHECK-NEXT: 4 4 1.33 * * U pause
-# CHECK-NEXT: 3 2 1.50 rclb %dil
-# CHECK-NEXT: 3 2 1.50 rcrb %dil
+# CHECK-NEXT: 3 2 1.00 rclb %dil
+# CHECK-NEXT: 3 2 1.00 rcrb %dil
# CHECK-NEXT: 11 11 3.50 * rclb (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb (%rax)
-# CHECK-NEXT: 8 5 4.00 rclb $7, %dil
-# CHECK-NEXT: 8 5 4.00 rcrb $7, %dil
+# CHECK-NEXT: 8 4 2.67 rclb $7, %dil
+# CHECK-NEXT: 8 3 2.67 rcrb $7, %dil
# CHECK-NEXT: 11 11 3.50 * rclb $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclb %cl, %dil
# CHECK-NEXT: 8 5 4.00 rcrb %cl, %dil
# CHECK-NEXT: 11 11 3.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclw %di
-# CHECK-NEXT: 3 2 1.50 rcrw %di
+# CHECK-NEXT: 3 2 1.00 rclw %di
+# CHECK-NEXT: 3 2 1.00 rcrw %di
# CHECK-NEXT: 11 11 3.50 * rclw (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw (%rax)
-# CHECK-NEXT: 8 5 4.00 rclw $7, %di
-# CHECK-NEXT: 8 5 4.00 rcrw $7, %di
+# CHECK-NEXT: 8 4 2.67 rclw $7, %di
+# CHECK-NEXT: 8 3 2.67 rcrw $7, %di
# CHECK-NEXT: 11 11 3.50 * rclw $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclw %cl, %di
# CHECK-NEXT: 8 5 4.00 rcrw %cl, %di
# CHECK-NEXT: 11 11 3.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rcll %edi
-# CHECK-NEXT: 3 2 1.50 rcrl %edi
+# CHECK-NEXT: 3 2 1.00 rcll %edi
+# CHECK-NEXT: 3 2 1.00 rcrl %edi
# CHECK-NEXT: 11 11 3.50 * rcll (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl (%rax)
-# CHECK-NEXT: 8 5 4.00 rcll $7, %edi
-# CHECK-NEXT: 8 5 4.00 rcrl $7, %edi
+# CHECK-NEXT: 8 4 2.67 rcll $7, %edi
+# CHECK-NEXT: 8 3 2.67 rcrl $7, %edi
# CHECK-NEXT: 11 11 3.50 * rcll $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rcll %cl, %edi
# CHECK-NEXT: 8 5 4.00 rcrl %cl, %edi
# CHECK-NEXT: 11 11 3.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclq %rdi
-# CHECK-NEXT: 3 2 1.50 rcrq %rdi
+# CHECK-NEXT: 3 2 1.00 rclq %rdi
+# CHECK-NEXT: 3 2 1.00 rcrq %rdi
# CHECK-NEXT: 11 11 3.50 * rclq (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq (%rax)
-# CHECK-NEXT: 8 5 4.00 rclq $7, %rdi
-# CHECK-NEXT: 8 5 4.00 rcrq $7, %rdi
+# CHECK-NEXT: 8 4 2.67 rclq $7, %rdi
+# CHECK-NEXT: 8 3 2.67 rcrq $7, %rdi
# CHECK-NEXT: 11 11 3.50 * rclq $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclq %cl, %rdi
@@ -1953,7 +1953,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: 160.00 - 670.17 294.67 361.00 687.17 455.50 455.50
+# CHECK-NEXT: 160.00 - 658.17 310.67 361.00 683.17 455.50 455.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2433,48 +2433,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsw (%rsi), %dx
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsl (%rsi), %dx
# CHECK-NEXT: - - 1.00 1.00 - 2.00 - - pause
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclb %dil
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrb %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb $7, %dil
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrb $7, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb %cl, %dil
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb %cl, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclw %di
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrw %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw $7, %di
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrw $7, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw %cl, %di
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw %cl, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcll %edi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrl %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcll %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrl %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll $7, %edi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcll $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrl $7, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll %cl, %edi
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl %cl, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclq %rdi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrq %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq $7, %rdi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrq $7, %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
index 389e0956d6991..21449cb85f63b 100644
--- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.25 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.25 U outsl (%rsi), %dx
# CHECK-NEXT: 5 5 1.25 * * U pause
-# CHECK-NEXT: 3 3 0.75 rclb %dil
-# CHECK-NEXT: 3 3 0.75 rcrb %dil
+# CHECK-NEXT: 3 2 0.75 rclb %dil
+# CHECK-NEXT: 3 2 0.75 rcrb %dil
# CHECK-NEXT: 5 8 0.75 * rclb (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb (%rax)
-# CHECK-NEXT: 3 3 0.75 rclb $7, %dil
-# CHECK-NEXT: 3 3 0.75 rcrb $7, %dil
+# CHECK-NEXT: 8 6 2.00 rclb $7, %dil
+# CHECK-NEXT: 8 5 2.00 rcrb $7, %dil
# CHECK-NEXT: 5 8 0.75 * rclb $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb $7, (%rax)
# CHECK-NEXT: 9 11 2.25 rclb %cl, %dil
# CHECK-NEXT: 10 14 2.50 rcrb %cl, %dil
# CHECK-NEXT: 10 15 2.00 * rclb %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw %di
-# CHECK-NEXT: 3 3 0.75 rcrw %di
+# CHECK-NEXT: 3 2 0.75 rclw %di
+# CHECK-NEXT: 3 2 0.75 rcrw %di
# CHECK-NEXT: 5 8 0.75 * rclw (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw $7, %di
-# CHECK-NEXT: 3 3 0.75 rcrw $7, %di
+# CHECK-NEXT: 8 6 2.00 rclw $7, %di
+# CHECK-NEXT: 8 5 2.00 rcrw $7, %di
# CHECK-NEXT: 5 8 0.75 * rclw $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclw %cl, %di
# CHECK-NEXT: 7 11 2.00 rcrw %cl, %di
# CHECK-NEXT: 10 15 2.00 * rclw %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll %edi
-# CHECK-NEXT: 3 3 0.75 rcrl %edi
+# CHECK-NEXT: 3 2 0.75 rcll %edi
+# CHECK-NEXT: 3 2 0.75 rcrl %edi
# CHECK-NEXT: 5 8 0.75 * rcll (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll $7, %edi
-# CHECK-NEXT: 3 3 0.75 rcrl $7, %edi
+# CHECK-NEXT: 8 6 2.00 rcll $7, %edi
+# CHECK-NEXT: 8 5 2.00 rcrl $7, %edi
# CHECK-NEXT: 5 8 0.75 * rcll $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rcll %cl, %edi
# CHECK-NEXT: 7 11 2.00 rcrl %cl, %edi
# CHECK-NEXT: 10 15 2.00 * rcll %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq %rdi
+# CHECK-NEXT: 3 2 0.75 rclq %rdi
+# CHECK-NEXT: 3 2 0.75 rcrq %rdi
# CHECK-NEXT: 5 8 0.75 * rclq (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq $7, %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq $7, %rdi
+# CHECK-NEXT: 8 6 2.00 rclq $7, %rdi
+# CHECK-NEXT: 8 5 2.00 rcrq $7, %rdi
# CHECK-NEXT: 5 8 0.75 * rclq $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclq %cl, %rdi
@@ -1955,7 +1955,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 - 590.50 380.00 378.50 378.50 345.00 292.50 624.00 129.00
+# CHECK-NEXT: 50.00 - 602.50 396.00 378.50 378.50 345.00 292.50 636.00 129.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2439,8 +2439,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb $7, %dil
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrb $7, %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb $7, (%rax)
# CHECK-NEXT: - - 2.75 2.25 - - - 1.25 2.75 - rclb %cl, %dil
@@ -2451,8 +2451,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclw $7, %di
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrw $7, %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rclw %cl, %di
@@ -2463,8 +2463,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcll $7, %edi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcll $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrl $7, %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rcll %cl, %edi
@@ -2475,8 +2475,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclq $7, %rdi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrq $7, %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
index c9e7f6329b70e..eec07637c2475 100644
--- a/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.33 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.33 U outsl (%rsi), %dx
# CHECK-NEXT: 4 4 1.33 * * U pause
-# CHECK-NEXT: 3 2 1.50 rclb %dil
-# CHECK-NEXT: 3 2 1.50 rcrb %dil
+# CHECK-NEXT: 3 2 1.00 rclb %dil
+# CHECK-NEXT: 3 2 1.00 rcrb %dil
# CHECK-NEXT: 11 11 3.50 * rclb (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb (%rax)
-# CHECK-NEXT: 8 5 4.00 rclb $7, %dil
-# CHECK-NEXT: 8 5 4.00 rcrb $7, %dil
+# CHECK-NEXT: 8 4 2.67 rclb $7, %dil
+# CHECK-NEXT: 8 3 2.67 rcrb $7, %dil
# CHECK-NEXT: 11 11 3.50 * rclb $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclb %cl, %dil
# CHECK-NEXT: 8 5 4.00 rcrb %cl, %dil
# CHECK-NEXT: 11 11 3.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclw %di
-# CHECK-NEXT: 3 2 1.50 rcrw %di
+# CHECK-NEXT: 3 2 1.00 rclw %di
+# CHECK-NEXT: 3 2 1.00 rcrw %di
# CHECK-NEXT: 11 11 3.50 * rclw (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw (%rax)
-# CHECK-NEXT: 8 5 4.00 rclw $7, %di
-# CHECK-NEXT: 8 5 4.00 rcrw $7, %di
+# CHECK-NEXT: 8 4 2.67 rclw $7, %di
+# CHECK-NEXT: 8 3 2.67 rcrw $7, %di
# CHECK-NEXT: 11 11 3.50 * rclw $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclw %cl, %di
# CHECK-NEXT: 8 5 4.00 rcrw %cl, %di
# CHECK-NEXT: 11 11 3.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rcll %edi
-# CHECK-NEXT: 3 2 1.50 rcrl %edi
+# CHECK-NEXT: 3 2 1.00 rcll %edi
+# CHECK-NEXT: 3 2 1.00 rcrl %edi
# CHECK-NEXT: 11 11 3.50 * rcll (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl (%rax)
-# CHECK-NEXT: 8 5 4.00 rcll $7, %edi
-# CHECK-NEXT: 8 5 4.00 rcrl $7, %edi
+# CHECK-NEXT: 8 4 2.67 rcll $7, %edi
+# CHECK-NEXT: 8 3 2.67 rcrl $7, %edi
# CHECK-NEXT: 11 11 3.50 * rcll $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rcll %cl, %edi
# CHECK-NEXT: 8 5 4.00 rcrl %cl, %edi
# CHECK-NEXT: 11 11 3.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclq %rdi
-# CHECK-NEXT: 3 2 1.50 rcrq %rdi
+# CHECK-NEXT: 3 2 1.00 rclq %rdi
+# CHECK-NEXT: 3 2 1.00 rcrq %rdi
# CHECK-NEXT: 11 11 3.50 * rclq (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq (%rax)
-# CHECK-NEXT: 8 5 4.00 rclq $7, %rdi
-# CHECK-NEXT: 8 5 4.00 rcrq $7, %rdi
+# CHECK-NEXT: 8 4 2.67 rclq $7, %rdi
+# CHECK-NEXT: 8 3 2.67 rcrq $7, %rdi
# CHECK-NEXT: 11 11 3.50 * rclq $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclq %cl, %rdi
@@ -1953,7 +1953,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: 160.00 - 670.17 294.67 361.00 687.17 455.50 455.50
+# CHECK-NEXT: 160.00 - 658.17 310.67 361.00 683.17 455.50 455.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2433,48 +2433,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsw (%rsi), %dx
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsl (%rsi), %dx
# CHECK-NEXT: - - 1.00 1.00 - 2.00 - - pause
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclb %dil
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrb %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb $7, %dil
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrb $7, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb %cl, %dil
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb %cl, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclw %di
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrw %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw $7, %di
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrw $7, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw %cl, %di
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw %cl, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcll %edi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrl %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcll %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrl %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll $7, %edi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcll $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrl $7, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll %cl, %edi
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl %cl, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclq %rdi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrq %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq $7, %rdi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrq $7, %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
index c265464cede2c..b71906feb72ed 100644
--- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.25 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.25 U outsl (%rsi), %dx
# CHECK-NEXT: 5 5 1.25 * * U pause
-# CHECK-NEXT: 3 3 0.75 rclb %dil
-# CHECK-NEXT: 3 3 0.75 rcrb %dil
+# CHECK-NEXT: 3 2 0.75 rclb %dil
+# CHECK-NEXT: 3 2 0.75 rcrb %dil
# CHECK-NEXT: 5 9 0.75 * rclb (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrb (%rax)
-# CHECK-NEXT: 3 3 0.75 rclb $7, %dil
-# CHECK-NEXT: 3 3 0.75 rcrb $7, %dil
+# CHECK-NEXT: 8 6 2.00 rclb $7, %dil
+# CHECK-NEXT: 8 5 2.00 rcrb $7, %dil
# CHECK-NEXT: 5 9 0.75 * rclb $7, (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrb $7, (%rax)
# CHECK-NEXT: 9 11 2.25 rclb %cl, %dil
# CHECK-NEXT: 10 14 2.50 rcrb %cl, %dil
# CHECK-NEXT: 10 16 2.00 * rclb %cl, (%rax)
# CHECK-NEXT: 11 19 2.25 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw %di
-# CHECK-NEXT: 3 3 0.75 rcrw %di
+# CHECK-NEXT: 3 2 0.75 rclw %di
+# CHECK-NEXT: 3 2 0.75 rcrw %di
# CHECK-NEXT: 5 9 0.75 * rclw (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrw (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw $7, %di
-# CHECK-NEXT: 3 3 0.75 rcrw $7, %di
+# CHECK-NEXT: 8 6 2.00 rclw $7, %di
+# CHECK-NEXT: 8 5 2.00 rcrw $7, %di
# CHECK-NEXT: 5 9 0.75 * rclw $7, (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrw $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclw %cl, %di
# CHECK-NEXT: 7 11 2.00 rcrw %cl, %di
# CHECK-NEXT: 10 16 2.00 * rclw %cl, (%rax)
# CHECK-NEXT: 11 19 2.25 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll %edi
-# CHECK-NEXT: 3 3 0.75 rcrl %edi
+# CHECK-NEXT: 3 2 0.75 rcll %edi
+# CHECK-NEXT: 3 2 0.75 rcrl %edi
# CHECK-NEXT: 5 9 0.75 * rcll (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrl (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll $7, %edi
-# CHECK-NEXT: 3 3 0.75 rcrl $7, %edi
+# CHECK-NEXT: 8 6 2.00 rcll $7, %edi
+# CHECK-NEXT: 8 5 2.00 rcrl $7, %edi
# CHECK-NEXT: 5 9 0.75 * rcll $7, (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrl $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rcll %cl, %edi
# CHECK-NEXT: 7 11 2.00 rcrl %cl, %edi
# CHECK-NEXT: 10 16 2.00 * rcll %cl, (%rax)
# CHECK-NEXT: 11 19 2.25 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq %rdi
+# CHECK-NEXT: 3 2 0.75 rclq %rdi
+# CHECK-NEXT: 3 2 0.75 rcrq %rdi
# CHECK-NEXT: 5 9 0.75 * rclq (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrq (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq $7, %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq $7, %rdi
+# CHECK-NEXT: 8 6 2.00 rclq $7, %rdi
+# CHECK-NEXT: 8 5 2.00 rcrq $7, %rdi
# CHECK-NEXT: 5 9 0.75 * rclq $7, (%rax)
# CHECK-NEXT: 5 9 0.75 * rcrq $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclq %cl, %rdi
@@ -1955,7 +1955,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 - 643.50 403.00 371.50 371.50 331.00 317.50 706.00 123.00
+# CHECK-NEXT: 80.00 - 655.50 419.00 371.50 371.50 331.00 317.50 718.00 123.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2439,8 +2439,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb $7, %dil
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrb $7, %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb $7, (%rax)
# CHECK-NEXT: - - 2.75 2.25 - - - 1.25 2.75 - rclb %cl, %dil
@@ -2451,8 +2451,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclw $7, %di
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrw $7, %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rclw %cl, %di
@@ -2463,8 +2463,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcll $7, %edi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcll $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrl $7, %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rcll %cl, %edi
@@ -2475,8 +2475,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclq $7, %rdi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrq $7, %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq $7, (%rax)
# CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
index a9cb405f0bd05..87e6d113b181d 100644
--- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.25 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.25 U outsl (%rsi), %dx
# CHECK-NEXT: 4 140 1.00 * * U pause
-# CHECK-NEXT: 3 3 0.75 rclb %dil
-# CHECK-NEXT: 3 3 0.75 rcrb %dil
+# CHECK-NEXT: 3 2 0.75 rclb %dil
+# CHECK-NEXT: 3 2 0.75 rcrb %dil
# CHECK-NEXT: 5 8 0.75 * rclb (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb (%rax)
-# CHECK-NEXT: 3 3 0.75 rclb $7, %dil
-# CHECK-NEXT: 3 3 0.75 rcrb $7, %dil
+# CHECK-NEXT: 7 6 2.00 rclb $7, %dil
+# CHECK-NEXT: 7 5 2.00 rcrb $7, %dil
# CHECK-NEXT: 5 8 0.75 * rclb $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb $7, (%rax)
# CHECK-NEXT: 9 11 2.50 rclb %cl, %dil
# CHECK-NEXT: 10 14 2.50 rcrb %cl, %dil
# CHECK-NEXT: 10 15 2.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw %di
-# CHECK-NEXT: 3 3 0.75 rcrw %di
+# CHECK-NEXT: 3 2 0.75 rclw %di
+# CHECK-NEXT: 3 2 0.75 rcrw %di
# CHECK-NEXT: 5 8 0.75 * rclw (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw $7, %di
-# CHECK-NEXT: 3 3 0.75 rcrw $7, %di
+# CHECK-NEXT: 7 6 2.00 rclw $7, %di
+# CHECK-NEXT: 7 5 2.00 rcrw $7, %di
# CHECK-NEXT: 5 8 0.75 * rclw $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclw %cl, %di
# CHECK-NEXT: 7 11 2.00 rcrw %cl, %di
# CHECK-NEXT: 10 15 2.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll %edi
-# CHECK-NEXT: 3 3 0.75 rcrl %edi
+# CHECK-NEXT: 3 2 0.75 rcll %edi
+# CHECK-NEXT: 3 2 0.75 rcrl %edi
# CHECK-NEXT: 5 8 0.75 * rcll (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll $7, %edi
-# CHECK-NEXT: 3 3 0.75 rcrl $7, %edi
+# CHECK-NEXT: 7 6 2.00 rcll $7, %edi
+# CHECK-NEXT: 7 5 2.00 rcrl $7, %edi
# CHECK-NEXT: 5 8 0.75 * rcll $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rcll %cl, %edi
# CHECK-NEXT: 7 11 2.00 rcrl %cl, %edi
# CHECK-NEXT: 10 15 2.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq %rdi
+# CHECK-NEXT: 3 2 0.75 rclq %rdi
+# CHECK-NEXT: 3 2 0.75 rcrq %rdi
# CHECK-NEXT: 5 8 0.75 * rclq (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq $7, %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq $7, %rdi
+# CHECK-NEXT: 7 6 2.00 rclq $7, %rdi
+# CHECK-NEXT: 7 5 2.00 rcrq $7, %rdi
# CHECK-NEXT: 5 8 0.75 * rclq $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclq %cl, %rdi
@@ -1957,7 +1957,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 60.00 - 663.00 360.00 378.50 378.50 345.00 327.50 723.50 129.00 - -
+# CHECK-NEXT: 60.00 - 671.00 376.00 378.50 378.50 345.00 327.50 731.50 129.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
@@ -2441,8 +2441,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrb %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclb (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrb (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rclb $7, %dil
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrb $7, %dil
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rclb $7, %dil
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcrb $7, %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclb $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrb $7, (%rax)
# CHECK-NEXT: - - 3.00 2.00 - - - 1.00 3.00 - - - rclb %cl, %dil
@@ -2453,8 +2453,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrw %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclw (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrw (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rclw $7, %di
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrw $7, %di
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rclw $7, %di
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcrw $7, %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclw $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrw $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rclw %cl, %di
@@ -2465,8 +2465,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrl %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcll (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrl (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcll $7, %edi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrl $7, %edi
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcll $7, %edi
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcrl $7, %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcll $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrl $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcll %cl, %edi
@@ -2477,8 +2477,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrq %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclq (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrq (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rclq $7, %rdi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - - - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rclq $7, %rdi
+# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rcrq $7, %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rclq $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 - - rcrq $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - - - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
index 1df4761c55b20..90d0a53840361 100644
--- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.33 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.33 U outsl (%rsi), %dx
# CHECK-NEXT: 4 4 1.33 * * U pause
-# CHECK-NEXT: 3 2 1.50 rclb %dil
-# CHECK-NEXT: 3 2 1.50 rcrb %dil
+# CHECK-NEXT: 3 2 1.00 rclb %dil
+# CHECK-NEXT: 3 2 1.00 rcrb %dil
# CHECK-NEXT: 11 11 3.50 * rclb (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb (%rax)
-# CHECK-NEXT: 8 5 4.00 rclb $7, %dil
-# CHECK-NEXT: 8 5 4.00 rcrb $7, %dil
+# CHECK-NEXT: 8 4 2.67 rclb $7, %dil
+# CHECK-NEXT: 8 3 2.67 rcrb $7, %dil
# CHECK-NEXT: 11 11 3.50 * rclb $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclb %cl, %dil
# CHECK-NEXT: 8 5 4.00 rcrb %cl, %dil
# CHECK-NEXT: 11 11 3.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclw %di
-# CHECK-NEXT: 3 2 1.50 rcrw %di
+# CHECK-NEXT: 3 2 1.00 rclw %di
+# CHECK-NEXT: 3 2 1.00 rcrw %di
# CHECK-NEXT: 11 11 3.50 * rclw (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw (%rax)
-# CHECK-NEXT: 8 5 4.00 rclw $7, %di
-# CHECK-NEXT: 8 5 4.00 rcrw $7, %di
+# CHECK-NEXT: 8 4 2.67 rclw $7, %di
+# CHECK-NEXT: 8 3 2.67 rcrw $7, %di
# CHECK-NEXT: 11 11 3.50 * rclw $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclw %cl, %di
# CHECK-NEXT: 8 5 4.00 rcrw %cl, %di
# CHECK-NEXT: 11 11 3.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rcll %edi
-# CHECK-NEXT: 3 2 1.50 rcrl %edi
+# CHECK-NEXT: 3 2 1.00 rcll %edi
+# CHECK-NEXT: 3 2 1.00 rcrl %edi
# CHECK-NEXT: 11 11 3.50 * rcll (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl (%rax)
-# CHECK-NEXT: 8 5 4.00 rcll $7, %edi
-# CHECK-NEXT: 8 5 4.00 rcrl $7, %edi
+# CHECK-NEXT: 8 4 2.67 rcll $7, %edi
+# CHECK-NEXT: 8 3 2.67 rcrl $7, %edi
# CHECK-NEXT: 11 11 3.50 * rcll $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rcll %cl, %edi
# CHECK-NEXT: 8 5 4.00 rcrl %cl, %edi
# CHECK-NEXT: 11 11 3.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 2 1.50 rclq %rdi
-# CHECK-NEXT: 3 2 1.50 rcrq %rdi
+# CHECK-NEXT: 3 2 1.00 rclq %rdi
+# CHECK-NEXT: 3 2 1.00 rcrq %rdi
# CHECK-NEXT: 11 11 3.50 * rclq (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq (%rax)
-# CHECK-NEXT: 8 5 4.00 rclq $7, %rdi
-# CHECK-NEXT: 8 5 4.00 rcrq $7, %rdi
+# CHECK-NEXT: 8 4 2.67 rclq $7, %rdi
+# CHECK-NEXT: 8 3 2.67 rcrq $7, %rdi
# CHECK-NEXT: 11 11 3.50 * rclq $7, (%rax)
# CHECK-NEXT: 11 11 3.50 * rcrq $7, (%rax)
# CHECK-NEXT: 8 5 4.00 rclq %cl, %rdi
@@ -1953,7 +1953,7 @@ xorq (%rax), %rdi
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: 160.00 - 670.17 294.67 361.00 687.17 455.50 455.50
+# CHECK-NEXT: 160.00 - 658.17 310.67 361.00 683.17 455.50 455.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -2433,48 +2433,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsw (%rsi), %dx
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - outsl (%rsi), %dx
# CHECK-NEXT: - - 1.00 1.00 - 2.00 - - pause
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclb %dil
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclb %dil
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrb %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb $7, %dil
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclb $7, %dil
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrb $7, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclb %cl, %dil
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrb %cl, %dil
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclb %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrb %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclw %di
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclw %di
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrw %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw $7, %di
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclw $7, %di
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrw $7, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclw %cl, %di
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrw %cl, %di
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclw %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrw %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcll %edi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrl %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcll %edi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrl %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll $7, %edi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcll $7, %edi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrl $7, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcll %cl, %edi
# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrl %cl, %edi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcll %cl, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrl %cl, (%rax)
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rclq %rdi
-# CHECK-NEXT: - - 1.50 - - 1.50 - - rcrq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rclq %rdi
+# CHECK-NEXT: - - 1.33 0.33 - 1.33 - - rcrq %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq (%rax)
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq $7, %rdi
-# CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rclq $7, %rdi
+# CHECK-NEXT: - - 2.67 1.67 - 3.67 - - rcrq $7, %rdi
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq $7, (%rax)
# CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq $7, (%rax)
# CHECK-NEXT: - - 4.00 - - 4.00 - - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
index c0da94ba45a75..9dc08a736fc0c 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.25 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.25 U outsl (%rsi), %dx
# CHECK-NEXT: 4 4 1.00 * * U pause
-# CHECK-NEXT: 3 3 0.75 rclb %dil
-# CHECK-NEXT: 3 3 0.75 rcrb %dil
+# CHECK-NEXT: 3 2 0.75 rclb %dil
+# CHECK-NEXT: 3 2 0.75 rcrb %dil
# CHECK-NEXT: 5 8 0.75 * rclb (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb (%rax)
-# CHECK-NEXT: 3 3 0.75 rclb $7, %dil
-# CHECK-NEXT: 3 3 0.75 rcrb $7, %dil
+# CHECK-NEXT: 8 6 2.00 rclb $7, %dil
+# CHECK-NEXT: 8 5 2.00 rcrb $7, %dil
# CHECK-NEXT: 5 8 0.75 * rclb $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb $7, (%rax)
# CHECK-NEXT: 9 11 2.50 rclb %cl, %dil
# CHECK-NEXT: 10 14 2.50 rcrb %cl, %dil
# CHECK-NEXT: 10 15 2.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw %di
-# CHECK-NEXT: 3 3 0.75 rcrw %di
+# CHECK-NEXT: 3 2 0.75 rclw %di
+# CHECK-NEXT: 3 2 0.75 rcrw %di
# CHECK-NEXT: 5 8 0.75 * rclw (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw $7, %di
-# CHECK-NEXT: 3 3 0.75 rcrw $7, %di
+# CHECK-NEXT: 8 6 2.00 rclw $7, %di
+# CHECK-NEXT: 8 5 2.00 rcrw $7, %di
# CHECK-NEXT: 5 8 0.75 * rclw $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclw %cl, %di
# CHECK-NEXT: 7 11 2.00 rcrw %cl, %di
# CHECK-NEXT: 10 15 2.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll %edi
-# CHECK-NEXT: 3 3 0.75 rcrl %edi
+# CHECK-NEXT: 3 2 0.75 rcll %edi
+# CHECK-NEXT: 3 2 0.75 rcrl %edi
# CHECK-NEXT: 5 8 0.75 * rcll (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll $7, %edi
-# CHECK-NEXT: 3 3 0.75 rcrl $7, %edi
+# CHECK-NEXT: 8 6 2.00 rcll $7, %edi
+# CHECK-NEXT: 8 5 2.00 rcrl $7, %edi
# CHECK-NEXT: 5 8 0.75 * rcll $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rcll %cl, %edi
# CHECK-NEXT: 7 11 2.00 rcrl %cl, %edi
# CHECK-NEXT: 10 15 2.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq %rdi
+# CHECK-NEXT: 3 2 0.75 rclq %rdi
+# CHECK-NEXT: 3 2 0.75 rcrq %rdi
# CHECK-NEXT: 5 8 0.75 * rclq (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq $7, %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq $7, %rdi
+# CHECK-NEXT: 8 6 2.00 rclq $7, %rdi
+# CHECK-NEXT: 8 5 2.00 rcrq $7, %rdi
# CHECK-NEXT: 5 8 0.75 * rclq $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclq %cl, %rdi
@@ -1955,7 +1955,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 - 662.75 359.75 378.50 378.50 345.00 327.25 723.25 129.00
+# CHECK-NEXT: 60.00 - 674.75 375.75 378.50 378.50 345.00 327.25 735.25 129.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2439,8 +2439,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb $7, %dil
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrb $7, %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb $7, (%rax)
# CHECK-NEXT: - - 3.00 2.00 - - - 1.00 3.00 - rclb %cl, %dil
@@ -2451,8 +2451,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclw $7, %di
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrw $7, %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rclw %cl, %di
@@ -2463,8 +2463,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcll $7, %edi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcll $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrl $7, %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rcll %cl, %edi
@@ -2475,8 +2475,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclq $7, %rdi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrq $7, %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rclq %cl, %rdi
diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
index 907d7ccdebf99..ce2a7c6b9cf2c 100644
--- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
+++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s
@@ -1506,48 +1506,48 @@ xorq (%rax), %rdi
# CHECK-NEXT: 1 100 0.25 U outsw (%rsi), %dx
# CHECK-NEXT: 1 100 0.25 U outsl (%rsi), %dx
# CHECK-NEXT: 4 140 1.00 * * U pause
-# CHECK-NEXT: 3 3 0.75 rclb %dil
-# CHECK-NEXT: 3 3 0.75 rcrb %dil
+# CHECK-NEXT: 3 2 0.75 rclb %dil
+# CHECK-NEXT: 3 2 0.75 rcrb %dil
# CHECK-NEXT: 5 8 0.75 * rclb (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb (%rax)
-# CHECK-NEXT: 3 3 0.75 rclb $7, %dil
-# CHECK-NEXT: 3 3 0.75 rcrb $7, %dil
+# CHECK-NEXT: 8 6 2.00 rclb $7, %dil
+# CHECK-NEXT: 8 5 2.00 rcrb $7, %dil
# CHECK-NEXT: 5 8 0.75 * rclb $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrb $7, (%rax)
# CHECK-NEXT: 9 11 2.50 rclb %cl, %dil
# CHECK-NEXT: 10 14 2.50 rcrb %cl, %dil
# CHECK-NEXT: 10 15 2.50 * rclb %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrb %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw %di
-# CHECK-NEXT: 3 3 0.75 rcrw %di
+# CHECK-NEXT: 3 2 0.75 rclw %di
+# CHECK-NEXT: 3 2 0.75 rcrw %di
# CHECK-NEXT: 5 8 0.75 * rclw (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw (%rax)
-# CHECK-NEXT: 3 3 0.75 rclw $7, %di
-# CHECK-NEXT: 3 3 0.75 rcrw $7, %di
+# CHECK-NEXT: 8 6 2.00 rclw $7, %di
+# CHECK-NEXT: 8 5 2.00 rcrw $7, %di
# CHECK-NEXT: 5 8 0.75 * rclw $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrw $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclw %cl, %di
# CHECK-NEXT: 7 11 2.00 rcrw %cl, %di
# CHECK-NEXT: 10 15 2.50 * rclw %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrw %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll %edi
-# CHECK-NEXT: 3 3 0.75 rcrl %edi
+# CHECK-NEXT: 3 2 0.75 rcll %edi
+# CHECK-NEXT: 3 2 0.75 rcrl %edi
# CHECK-NEXT: 5 8 0.75 * rcll (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl (%rax)
-# CHECK-NEXT: 3 3 0.75 rcll $7, %edi
-# CHECK-NEXT: 3 3 0.75 rcrl $7, %edi
+# CHECK-NEXT: 8 6 2.00 rcll $7, %edi
+# CHECK-NEXT: 8 5 2.00 rcrl $7, %edi
# CHECK-NEXT: 5 8 0.75 * rcll $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrl $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rcll %cl, %edi
# CHECK-NEXT: 7 11 2.00 rcrl %cl, %edi
# CHECK-NEXT: 10 15 2.50 * rcll %cl, (%rax)
# CHECK-NEXT: 11 18 2.25 * rcrl %cl, (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq %rdi
+# CHECK-NEXT: 3 2 0.75 rclq %rdi
+# CHECK-NEXT: 3 2 0.75 rcrq %rdi
# CHECK-NEXT: 5 8 0.75 * rclq (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq (%rax)
-# CHECK-NEXT: 3 3 0.75 rclq $7, %rdi
-# CHECK-NEXT: 3 3 0.75 rcrq $7, %rdi
+# CHECK-NEXT: 8 6 2.00 rclq $7, %rdi
+# CHECK-NEXT: 8 5 2.00 rcrq $7, %rdi
# CHECK-NEXT: 5 8 0.75 * rclq $7, (%rax)
# CHECK-NEXT: 5 8 0.75 * rcrq $7, (%rax)
# CHECK-NEXT: 7 11 2.00 rclq %cl, %rdi
@@ -1955,7 +1955,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 - 663.00 360.00 378.50 378.50 345.00 327.50 723.50 129.00
+# CHECK-NEXT: 60.00 - 675.00 376.00 378.50 378.50 345.00 327.50 735.50 129.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@@ -2439,8 +2439,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclb $7, %dil
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclb $7, %dil
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrb $7, %dil
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclb $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrb $7, (%rax)
# CHECK-NEXT: - - 3.00 2.00 - - - 1.00 3.00 - rclb %cl, %dil
@@ -2451,8 +2451,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclw $7, %di
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclw $7, %di
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrw $7, %di
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclw $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrw $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rclw %cl, %di
@@ -2463,8 +2463,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcll $7, %edi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrl $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcll $7, %edi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrl $7, %edi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcll $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrl $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rcll %cl, %edi
@@ -2475,8 +2475,8 @@ xorq (%rax), %rdi
# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq (%rax)
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rclq $7, %rdi
-# CHECK-NEXT: - - 1.00 0.50 - - - 0.50 1.00 - rcrq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rclq $7, %rdi
+# CHECK-NEXT: - - 2.50 2.50 - - - 0.50 2.50 - rcrq $7, %rdi
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rclq $7, (%rax)
# CHECK-NEXT: - - 1.00 0.50 0.83 0.83 - 0.50 1.00 0.33 rcrq $7, (%rax)
# CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rclq %cl, %rdi
More information about the llvm-commits
mailing list