diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index 9ceb8dbaa7c7e..a67d707f83d0f 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -1035,14 +1035,14 @@ def: InstRW<[SBWriteResGroup97_2], (instregex "ROL(8|16|32|64)mCL", def SBWriteResGroup98 : SchedWriteRes<[SBPort4,SBPort23,SBPort015]> { let Latency = 9; - let NumMicroOps = 6; + let NumMicroOps = 4; let ResourceCycles = [1,2,3]; } def: SchedAlias; def SBWriteResGroup99 : SchedWriteRes<[SBPort4,SBPort23,SBPort05,SBPort015]> { let Latency = 9; - let NumMicroOps = 6; + let NumMicroOps = 4; let ResourceCycles = [1,2,2,1]; } def: InstRW<[SBWriteResGroup99, ReadAfterLd], (instrs ADC8mr, ADC16mr, ADC32mr, ADC64mr, 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 37ccff2429f16..117025ab3d038 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 @@ -1036,60 +1036,60 @@ xorq (%rax), %rdi # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 2 2 0.67 adcb $0, %al # CHECK-NEXT: 2 2 0.67 adcb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcb $7, %al # CHECK-NEXT: 2 2 0.67 adcb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * adcb (%rax), %dil # CHECK-NEXT: 2 2 0.67 adcw $0, %ax # CHECK-NEXT: 2 2 0.67 adcw $0, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $511, %ax # CHECK-NEXT: 2 2 0.67 adcw $511, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $511, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $7, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcw %si, %di -# CHECK-NEXT: 6 9 1.00 * * adcw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * adcw (%rax), %di # CHECK-NEXT: 2 2 0.67 adcl $0, %eax # CHECK-NEXT: 2 2 0.67 adcl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $665536, %eax # CHECK-NEXT: 2 2 0.67 adcl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcl (%rax), %edi # CHECK-NEXT: 2 2 0.67 adcq $0, %rax # CHECK-NEXT: 2 2 0.67 adcq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $665536, %rax # CHECK-NEXT: 2 2 0.67 adcq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 addb $7, %al # CHECK-NEXT: 1 1 0.33 addb $7, %dil @@ -1688,60 +1688,60 @@ xorq (%rax), %rdi # CHECK-NEXT: 6 9 1.50 * * shrq %cl, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $0, %al # CHECK-NEXT: 2 2 0.67 sbbb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $7, %al # CHECK-NEXT: 2 2 0.67 sbbb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbb (%rax), %dil # CHECK-NEXT: 2 2 0.67 sbbw $0, %ax # CHECK-NEXT: 2 2 0.67 sbbw $0, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $511, %ax # CHECK-NEXT: 2 2 0.67 sbbw $511, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $511, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $7, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw %si, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbw (%rax), %di # CHECK-NEXT: 2 2 0.67 sbbl $0, %eax # CHECK-NEXT: 2 2 0.67 sbbl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $665536, %eax # CHECK-NEXT: 2 2 0.67 sbbl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbl (%rax), %edi # CHECK-NEXT: 2 2 0.67 sbbq $0, %rax # CHECK-NEXT: 2 2 0.67 sbbq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rax # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbq (%rax), %rdi # CHECK-NEXT: 2 2 0.67 U scasb %es:(%rdi), %al # CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax 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 37ccff2429f16..117025ab3d038 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 @@ -1036,60 +1036,60 @@ xorq (%rax), %rdi # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 2 2 0.67 adcb $0, %al # CHECK-NEXT: 2 2 0.67 adcb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcb $7, %al # CHECK-NEXT: 2 2 0.67 adcb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * adcb (%rax), %dil # CHECK-NEXT: 2 2 0.67 adcw $0, %ax # CHECK-NEXT: 2 2 0.67 adcw $0, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $511, %ax # CHECK-NEXT: 2 2 0.67 adcw $511, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $511, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $7, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcw %si, %di -# CHECK-NEXT: 6 9 1.00 * * adcw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * adcw (%rax), %di # CHECK-NEXT: 2 2 0.67 adcl $0, %eax # CHECK-NEXT: 2 2 0.67 adcl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $665536, %eax # CHECK-NEXT: 2 2 0.67 adcl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcl (%rax), %edi # CHECK-NEXT: 2 2 0.67 adcq $0, %rax # CHECK-NEXT: 2 2 0.67 adcq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $665536, %rax # CHECK-NEXT: 2 2 0.67 adcq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 addb $7, %al # CHECK-NEXT: 1 1 0.33 addb $7, %dil @@ -1688,60 +1688,60 @@ xorq (%rax), %rdi # CHECK-NEXT: 6 9 1.50 * * shrq %cl, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $0, %al # CHECK-NEXT: 2 2 0.67 sbbb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $7, %al # CHECK-NEXT: 2 2 0.67 sbbb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbb (%rax), %dil # CHECK-NEXT: 2 2 0.67 sbbw $0, %ax # CHECK-NEXT: 2 2 0.67 sbbw $0, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $511, %ax # CHECK-NEXT: 2 2 0.67 sbbw $511, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $511, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $7, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw %si, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbw (%rax), %di # CHECK-NEXT: 2 2 0.67 sbbl $0, %eax # CHECK-NEXT: 2 2 0.67 sbbl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $665536, %eax # CHECK-NEXT: 2 2 0.67 sbbl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbl (%rax), %edi # CHECK-NEXT: 2 2 0.67 sbbq $0, %rax # CHECK-NEXT: 2 2 0.67 sbbq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rax # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbq (%rax), %rdi # CHECK-NEXT: 2 2 0.67 U scasb %es:(%rdi), %al # CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax 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 c046cbdc1bf32..c1fad00fbdf09 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 @@ -1036,60 +1036,60 @@ xorq (%rax), %rdi # CHECK: [1] [2] [3] [4] [5] [6] Instructions: # CHECK-NEXT: 2 2 0.67 adcb $0, %al # CHECK-NEXT: 2 2 0.67 adcb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcb $7, %al # CHECK-NEXT: 2 2 0.67 adcb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * adcb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * adcb (%rax), %dil # CHECK-NEXT: 2 2 0.67 adcw $0, %ax # CHECK-NEXT: 2 2 0.67 adcw $0, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $511, %ax # CHECK-NEXT: 2 2 0.67 adcw $511, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $511, (%rax) # CHECK-NEXT: 2 2 0.67 adcw $7, %di -# CHECK-NEXT: 6 9 1.00 * * adcw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcw %si, %di -# CHECK-NEXT: 6 9 1.00 * * adcw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * adcw (%rax), %di # CHECK-NEXT: 2 2 0.67 adcl $0, %eax # CHECK-NEXT: 2 2 0.67 adcl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $665536, %eax # CHECK-NEXT: 2 2 0.67 adcl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * adcl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcl (%rax), %edi # CHECK-NEXT: 2 2 0.67 adcq $0, %rax # CHECK-NEXT: 2 2 0.67 adcq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $0, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $665536, %rax # CHECK-NEXT: 2 2 0.67 adcq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 adcq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq $7, (%rax) # CHECK-NEXT: 2 2 0.67 adcq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * adcq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * adcq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock adcq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * adcq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 addb $7, %al # CHECK-NEXT: 1 1 0.33 addb $7, %dil @@ -1688,60 +1688,60 @@ xorq (%rax), %rdi # CHECK-NEXT: 6 9 1.50 * * shrq %cl, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $0, %al # CHECK-NEXT: 2 2 0.67 sbbb $0, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb $7, %al # CHECK-NEXT: 2 2 0.67 sbbb $7, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbb %sil, %dil -# CHECK-NEXT: 6 9 1.00 * * sbbb %sil, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbb %sil, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbb %sil, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbb (%rax), %dil # CHECK-NEXT: 2 2 0.67 sbbw $0, %ax # CHECK-NEXT: 2 2 0.67 sbbw $0, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $511, %ax # CHECK-NEXT: 2 2 0.67 sbbw $511, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $511, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $511, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $511, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw $7, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbw %si, %di -# CHECK-NEXT: 6 9 1.00 * * sbbw %si, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbw %si, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbw %si, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbw (%rax), %di # CHECK-NEXT: 2 2 0.67 sbbl $0, %eax # CHECK-NEXT: 2 2 0.67 sbbl $0, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $665536, %eax # CHECK-NEXT: 2 2 0.67 sbbl $665536, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl $7, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbl %esi, %edi -# CHECK-NEXT: 6 9 1.00 * * sbbl %esi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbl %esi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbl %esi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbl (%rax), %edi # CHECK-NEXT: 2 2 0.67 sbbq $0, %rax # CHECK-NEXT: 2 2 0.67 sbbq $0, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $0, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $0, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $0, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rax # CHECK-NEXT: 2 2 0.67 sbbq $665536, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $665536, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $665536, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $665536, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq $7, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq $7, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq $7, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq $7, (%rax) # CHECK-NEXT: 2 2 0.67 sbbq %rsi, %rdi -# CHECK-NEXT: 6 9 1.00 * * sbbq %rsi, (%rax) -# CHECK-NEXT: 6 9 1.00 * * lock sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * sbbq %rsi, (%rax) +# CHECK-NEXT: 4 9 1.00 * * lock sbbq %rsi, (%rax) # CHECK-NEXT: 3 7 0.67 * sbbq (%rax), %rdi # CHECK-NEXT: 2 2 0.67 U scasb %es:(%rdi), %al # CHECK-NEXT: 2 2 0.67 U scasw %es:(%rdi), %ax