diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -814,12 +814,26 @@ 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 --- a/llvm/lib/Target/X86/X86SchedHaswell.td +++ b/llvm/lib/Target/X86/X86SchedHaswell.td @@ -1299,12 +1299,26 @@ 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 --- a/llvm/lib/Target/X86/X86SchedIceLake.td +++ b/llvm/lib/Target/X86/X86SchedIceLake.td @@ -923,12 +923,26 @@ 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 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -678,13 +678,27 @@ } 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 @@ 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 --- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td @@ -836,12 +836,26 @@ 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 --- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td @@ -905,12 +905,26 @@ 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 --- 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 --- 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ # 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