From: Simon Pilgrim Date: Tue, 22 Jan 2019 16:29:26 +0000 (+0000) Subject: [llvm-mca][X86] Add missing enter/leave, invlpg/invlpga, rdmsr/wrmsr, rdpmc and rdtsc... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1175177aa684d3469c278dd25006f4bbe466fb5b;p=llvm [llvm-mca][X86] Add missing enter/leave, invlpg/invlpga, rdmsr/wrmsr, rdpmc and rdtsc/rdtscp tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351835 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-mca/X86/Atom/resources-x86_64.s b/test/tools/llvm-mca/X86/Atom/resources-x86_64.s index e757844153c..04d2f191fe3 100644 --- a/test/tools/llvm-mca/X86/Atom/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Atom/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 50 25.00 * U divl (%rax) # CHECK-NEXT: 1 130 65.00 U divq %rcx # CHECK-NEXT: 1 130 65.00 * U divq (%rax) +# CHECK-NEXT: 1 32 16.00 U enter $7, $4095 # CHECK-NEXT: 1 62 31.00 U idivb %dil # CHECK-NEXT: 1 62 31.00 * U idivb (%rax) # CHECK-NEXT: 1 62 31.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 59 29.50 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 59 29.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 127 63.50 * * U int $7 +# CHECK-NEXT: 1 71 35.50 U invlpg (%rax) +# CHECK-NEXT: 1 71 35.50 U invlpga %rax, %ecx # CHECK-NEXT: 1 2 1.00 lahf +# CHECK-NEXT: 1 2 1.00 * leave # CHECK-NEXT: 1 2 1.00 U lodsb (%rsi), %al # CHECK-NEXT: 1 2 1.00 U lodsw (%rsi), %ax # CHECK-NEXT: 1 2 1.00 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 1.00 rcrq %cl, %rdi # CHECK-NEXT: 1 1 1.00 * rclq %cl, (%rax) # CHECK-NEXT: 1 1 1.00 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 78 39.00 U rdmsr +# CHECK-NEXT: 1 46 23.00 U rdpmc +# CHECK-NEXT: 1 30 15.00 U rdtsc +# CHECK-NEXT: 1 30 15.00 U rdtscp # CHECK-NEXT: 1 1 1.00 rolb %dil # CHECK-NEXT: 1 1 1.00 rorb %dil # CHECK-NEXT: 1 1 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi # CHECK-NEXT: 1 1 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.50 * U ud2 +# CHECK-NEXT: 1 202 101.00 U wrmsr # CHECK-NEXT: 1 2 1.00 xaddb %bl, %cl # CHECK-NEXT: 1 3 1.50 * * xaddb %bl, (%rcx) # CHECK-NEXT: 1 2 1.00 xaddw %bx, %cx @@ -1614,7 +1637,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 2393.50 2049.50 +# CHECK-NEXT: 2674.50 2330.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -1838,6 +1861,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 25.00 25.00 divl (%rax) # CHECK-NEXT: 65.00 65.00 divq %rcx # CHECK-NEXT: 65.00 65.00 divq (%rax) +# CHECK-NEXT: 16.00 16.00 enter $7, $4095 # CHECK-NEXT: 31.00 31.00 idivb %dil # CHECK-NEXT: 31.00 31.00 idivb (%rax) # CHECK-NEXT: 31.00 31.00 idivw %si @@ -1890,7 +1914,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 29.50 29.50 insw %dx, %es:(%rdi) # CHECK-NEXT: 29.50 29.50 insl %dx, %es:(%rdi) # CHECK-NEXT: 63.50 63.50 int $7 +# CHECK-NEXT: 35.50 35.50 invlpg (%rax) +# CHECK-NEXT: 35.50 35.50 invlpga %rax, %ecx # CHECK-NEXT: 1.00 1.00 lahf +# CHECK-NEXT: 1.00 1.00 leave # CHECK-NEXT: 1.00 1.00 lodsb (%rsi), %al # CHECK-NEXT: 1.00 1.00 lodsw (%rsi), %ax # CHECK-NEXT: 1.00 1.00 lodsl (%rsi), %eax @@ -2040,6 +2067,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1.00 - rcrq %cl, %rdi # CHECK-NEXT: 1.00 - rclq %cl, (%rax) # CHECK-NEXT: 1.00 - rcrq %cl, (%rax) +# CHECK-NEXT: 39.00 39.00 rdmsr +# CHECK-NEXT: 23.00 23.00 rdpmc +# CHECK-NEXT: 15.00 15.00 rdtsc +# CHECK-NEXT: 15.00 15.00 rdtscp # CHECK-NEXT: 1.00 - rolb %dil # CHECK-NEXT: 1.00 - rorb %dil # CHECK-NEXT: 1.00 - rolb (%rax) @@ -2314,6 +2345,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 testq %rsi, %rdi # CHECK-NEXT: 1.00 - testq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 ud2 +# CHECK-NEXT: 101.00 101.00 wrmsr # CHECK-NEXT: 1.00 1.00 xaddb %bl, %cl # CHECK-NEXT: 1.50 1.50 xaddb %bl, (%rcx) # CHECK-NEXT: 1.00 1.00 xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s b/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s index 84eec15a049..cf535960188 100644 --- a/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 18 14.00 * U divl (%rax) # CHECK-NEXT: 2 14 14.00 U divq %rcx # CHECK-NEXT: 2 18 14.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.50 U enter $7, $4095 # CHECK-NEXT: 1 12 12.00 U idivb %dil # CHECK-NEXT: 1 16 12.00 * U idivb (%rax) # CHECK-NEXT: 2 15 17.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.50 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 * * U int $7 +# CHECK-NEXT: 1 100 0.50 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx # CHECK-NEXT: 4 2 0.50 lahf +# CHECK-NEXT: 1 1 0.50 * leave # CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.50 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.50 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 16 7 0.50 rcrq %cl, %rdi # CHECK-NEXT: 2 5 1.00 * rclq %cl, (%rax) # CHECK-NEXT: 2 5 1.00 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.50 U rdmsr +# CHECK-NEXT: 1 100 0.50 U rdpmc +# CHECK-NEXT: 1 100 0.50 U rdtsc +# CHECK-NEXT: 1 100 0.50 U rdtscp # CHECK-NEXT: 1 1 0.50 rolb %dil # CHECK-NEXT: 1 1 0.50 rorb %dil # CHECK-NEXT: 2 5 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi # CHECK-NEXT: 1 5 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.50 * U ud2 +# CHECK-NEXT: 1 100 0.50 U wrmsr # CHECK-NEXT: 4 2 1.00 xaddb %bl, %cl # CHECK-NEXT: 4 6 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 4 2 1.00 xaddw %bx, %cx @@ -1635,7 +1658,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] -# CHECK-NEXT: 262.00 262.00 - - 246.00 547.50 622.50 - - - - - - - - - - - - 156.50 156.50 64.00 211.00 +# CHECK-NEXT: 262.00 262.00 - - 246.00 552.00 627.00 - - - - - - - - - - - - 156.50 156.50 64.00 211.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: @@ -1859,6 +1882,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - 14.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - divl (%rax) # CHECK-NEXT: - - - - 14.00 - 1.00 - - - - - - - - - - - - - - - - divq %rcx # CHECK-NEXT: 0.50 0.50 - - 14.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - divq (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - enter $7, $4095 # CHECK-NEXT: - - - - 12.00 - 1.00 - - - - - - - - - - - - - - - - idivb %dil # CHECK-NEXT: 0.50 0.50 - - 12.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - idivb (%rax) # CHECK-NEXT: - - - - 17.00 - 1.00 - - - - - - - - - - - - - - - - idivw %si @@ -1911,7 +1935,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insw %dx, %es:(%rdi) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - int $7 +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpg (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga %rax, %ecx # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lahf +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leave # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsb (%rsi), %al # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsw (%rsi), %ax # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsl (%rsi), %eax @@ -2061,6 +2088,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rcrq %cl, %rdi # CHECK-NEXT: 1.00 1.00 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - 1.00 rclq %cl, (%rax) # CHECK-NEXT: 1.00 1.00 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - 1.00 rcrq %cl, (%rax) +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdmsr +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdpmc +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdtsc +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdtscp # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rolb %dil # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rorb %dil # CHECK-NEXT: 1.00 1.00 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - 1.00 rolb (%rax) @@ -2335,6 +2366,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - testq %rsi, %rdi # CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - testq %rsi, (%rax) # CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - ud2 +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - wrmsr # CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddb %bl, %cl # CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddb %bl, (%rcx) # CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s b/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s index b22edb4a904..d55c4a342cb 100644 --- a/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 34 2.00 * U divl (%rax) # CHECK-NEXT: 32 80 8.00 U divq %rcx # CHECK-NEXT: 8 34 2.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.25 U enter $7, $4095 # CHECK-NEXT: 1 25 10.00 U idivb %dil # CHECK-NEXT: 8 35 2.00 * U idivb (%rax) # CHECK-NEXT: 1 25 10.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insw %dx, %es:(%rdi) # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 +# CHECK-NEXT: 1 100 0.25 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.25 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.25 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 7 11 2.00 rcrq %cl, %rdi # CHECK-NEXT: 10 15 2.00 * rclq %cl, (%rax) # CHECK-NEXT: 11 18 2.25 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.25 U rdmsr +# CHECK-NEXT: 1 100 0.25 U rdpmc +# CHECK-NEXT: 8 18 2.00 U rdtsc +# CHECK-NEXT: 22 42 5.50 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 7 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 +# CHECK-NEXT: 1 100 0.25 U wrmsr # CHECK-NEXT: 3 2 0.75 xaddb %bl, %cl # CHECK-NEXT: 5 7 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 0.75 xaddw %bx, %cx @@ -1622,7 +1645,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 - 494.25 334.75 262.17 262.17 206.00 244.25 526.75 82.67 +# CHECK-NEXT: 50.00 - 503.00 343.00 262.67 262.67 206.00 255.50 536.50 82.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1846,6 +1869,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divl (%rax) # CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divq %rcx # CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - divq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - enter $7, $4095 # CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil # CHECK-NEXT: - - 2.25 2.25 0.50 0.50 - 2.25 0.25 - idivb (%rax) # CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivw %si @@ -1898,7 +1922,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insw %dx, %es:(%rdi) # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsw (%rsi), %ax # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsl (%rsi), %eax @@ -2048,6 +2075,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rcrq %cl, %rdi # CHECK-NEXT: - - 2.50 2.00 0.83 0.83 - 1.00 2.50 0.33 rclq %cl, (%rax) # CHECK-NEXT: - - 2.25 3.25 0.83 0.83 - 1.25 2.25 0.33 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdmsr +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdpmc +# CHECK-NEXT: - - 1.75 1.25 - - - 2.25 2.75 - rdtsc +# CHECK-NEXT: - - 5.00 5.00 - - - 7.00 5.00 - rdtscp # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb %dil # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil # CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax) @@ -2322,6 +2353,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - wrmsr # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddb %bl, %cl # CHECK-NEXT: - - 0.50 0.50 0.83 0.83 1.00 0.50 0.50 0.33 xaddb %bl, (%rcx) # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s b/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s index e9a4291db29..f5585a5dbca 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 28 25.00 * U divl (%rax) # CHECK-NEXT: 2 41 41.00 U divq %rcx # CHECK-NEXT: 2 44 41.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.50 U enter $7, $4095 # CHECK-NEXT: 1 12 12.00 U idivb %dil # CHECK-NEXT: 1 15 12.00 * U idivb (%rax) # CHECK-NEXT: 2 17 17.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.50 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.50 * * U int $7 +# CHECK-NEXT: 1 100 0.50 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.50 * leave # CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.50 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.50 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 rcrq %cl, %rdi # CHECK-NEXT: 1 4 1.00 * rclq %cl, (%rax) # CHECK-NEXT: 1 4 1.00 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.50 U rdmsr +# CHECK-NEXT: 1 100 0.50 U rdpmc +# CHECK-NEXT: 1 100 0.50 U rdtsc +# CHECK-NEXT: 1 100 0.50 U rdtscp # CHECK-NEXT: 1 1 0.50 rolb %dil # CHECK-NEXT: 1 1 0.50 rorb %dil # CHECK-NEXT: 1 4 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi # CHECK-NEXT: 1 4 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.50 * U ud2 +# CHECK-NEXT: 1 100 0.50 U wrmsr # CHECK-NEXT: 1 1 0.50 xaddb %bl, %cl # CHECK-NEXT: 1 4 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 1 1 0.50 xaddw %bx, %cx @@ -1626,7 +1649,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: 581.50 631.50 380.00 - - - - 322.00 64.00 223.00 - - - - +# CHECK-NEXT: 586.00 636.00 380.00 - - - - 322.00 64.00 223.00 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -1850,6 +1873,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - 1.00 25.00 - - - - 1.00 - - - - - - divl (%rax) # CHECK-NEXT: - 1.00 41.00 - - - - - - - - - - - divq %rcx # CHECK-NEXT: - 1.00 41.00 - - - - 1.00 - - - - - - divq (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - enter $7, $4095 # CHECK-NEXT: - 1.00 12.00 - - - - - - - - - - - idivb %dil # CHECK-NEXT: - 1.00 12.00 - - - - 1.00 - - - - - - idivb (%rax) # CHECK-NEXT: - 1.00 17.00 - - - - - - - - - - - idivw %si @@ -1902,7 +1926,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - insw %dx, %es:(%rdi) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - int $7 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpg (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - invlpga %rax, %ecx # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lahf +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - leave # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lodsb (%rsi), %al # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lodsw (%rsi), %ax # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - lodsl (%rsi), %eax @@ -2052,6 +2079,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rcrq %cl, %rdi # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - rclq %cl, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - rcrq %cl, (%rax) +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rdmsr +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rdpmc +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rdtsc +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rdtscp # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rolb %dil # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - rorb %dil # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - rolb (%rax) @@ -2326,6 +2357,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - testq %rsi, %rdi # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - - testq %rsi, (%rax) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - ud2 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - wrmsr # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - xaddb %bl, %cl # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - 1.00 - - - - xaddb %bl, (%rcx) # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/Generic/resources-x86_64.s b/test/tools/llvm-mca/X86/Generic/resources-x86_64.s index 2ab041c3de6..1a3e1d6b75d 100644 --- a/test/tools/llvm-mca/X86/Generic/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Generic/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 30 10.00 * U divl (%rax) # CHECK-NEXT: 1 25 10.00 U divq %rcx # CHECK-NEXT: 2 30 10.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.33 U enter $7, $4095 # CHECK-NEXT: 1 25 10.00 U idivb %dil # CHECK-NEXT: 2 30 10.00 * U idivb (%rax) # CHECK-NEXT: 1 25 10.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 * * U int $7 +# CHECK-NEXT: 1 100 0.33 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.67 * leave # CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al # CHECK-NEXT: 3 7 0.67 U lodsw (%rsi), %ax # CHECK-NEXT: 2 6 0.50 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 5 4.00 rcrq %cl, %rdi # CHECK-NEXT: 11 11 3.50 * rclq %cl, (%rax) # CHECK-NEXT: 11 11 3.50 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.33 U rdmsr +# CHECK-NEXT: 1 100 0.33 U rdpmc +# CHECK-NEXT: 1 100 0.33 U rdtsc +# CHECK-NEXT: 1 100 0.33 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 8 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.33 * U ud2 +# CHECK-NEXT: 1 100 0.33 U wrmsr # CHECK-NEXT: 3 2 1.00 xaddb %bl, %cl # CHECK-NEXT: 5 8 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 1.00 xaddw %bx, %cx @@ -1620,7 +1643,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 - 571.83 221.33 222.00 571.83 316.00 316.00 +# CHECK-NEXT: 160.00 - 575.17 224.67 222.00 575.17 316.50 316.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1844,6 +1867,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divl (%rax) # CHECK-NEXT: 10.00 - 1.00 - - - - - divq %rcx # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divq (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - enter $7, $4095 # CHECK-NEXT: 10.00 - 1.00 - - - - - idivb %dil # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivb (%rax) # CHECK-NEXT: 10.00 - 1.00 - - - - - idivw %si @@ -1896,7 +1920,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insw %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf +# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsw (%rsi), %ax # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 lodsl (%rsi), %eax @@ -2046,6 +2073,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq %cl, %rdi # CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq %cl, (%rax) # CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdmsr +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdpmc +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdtsc +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdtscp # CHECK-NEXT: - - 1.00 - - 1.00 - - rolb %dil # CHECK-NEXT: - - 1.00 - - 1.00 - - rorb %dil # CHECK-NEXT: - - 1.00 - 1.00 1.00 1.00 1.00 rolb (%rax) @@ -2320,6 +2351,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq %rsi, %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ud2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wrmsr # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - xaddb %bl, %cl # CHECK-NEXT: - - 0.67 0.67 1.00 0.67 1.00 1.00 xaddb %bl, (%rcx) # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s b/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s index fd76bd1f53d..2f6f48ba84c 100644 --- a/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 29 10.00 * U divl (%rax) # CHECK-NEXT: 32 98 8.00 U divq %rcx # CHECK-NEXT: 2 29 10.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.25 U enter $7, $4095 # CHECK-NEXT: 9 23 1.00 U idivb %dil # CHECK-NEXT: 2 29 10.00 * U idivb (%rax) # CHECK-NEXT: 66 112 16.50 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 21 1.25 U insw %dx, %es:(%rdi) # CHECK-NEXT: 8 21 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 +# CHECK-NEXT: 1 100 0.25 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 3 1 0.50 U lodsb (%rsi), %al # CHECK-NEXT: 3 1 0.50 U lodsw (%rsi), %ax # CHECK-NEXT: 2 1 0.50 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 7 11 2.00 rcrq %cl, %rdi # CHECK-NEXT: 10 16 2.00 * rclq %cl, (%rax) # CHECK-NEXT: 11 19 2.25 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.25 U rdmsr +# CHECK-NEXT: 34 1 8.50 U rdpmc +# CHECK-NEXT: 8 18 2.00 U rdtsc +# CHECK-NEXT: 22 42 5.50 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 8 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 +# CHECK-NEXT: 1 100 0.25 U wrmsr # CHECK-NEXT: 3 2 0.75 xaddb %bl, %cl # CHECK-NEXT: 5 8 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 0.75 xaddw %bx, %cx @@ -1622,7 +1645,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 - 548.75 359.25 262.67 262.67 201.00 270.75 610.25 79.67 +# CHECK-NEXT: 80.00 - 557.25 367.25 263.17 263.17 201.00 281.75 619.75 79.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1846,6 +1869,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) # CHECK-NEXT: - - 10.25 10.25 - - - 5.75 5.75 - divq %rcx # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - enter $7, $4095 # CHECK-NEXT: - - 1.00 1.00 - - - 1.00 1.00 - idivb %dil # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - idivb (%rax) # CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si @@ -1898,7 +1922,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insw %dx, %es:(%rdi) # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - lodsb (%rsi), %al # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - lodsw (%rsi), %ax # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - lodsl (%rsi), %eax @@ -2048,6 +2075,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.75 2.75 - - - 0.75 1.75 - rcrq %cl, %rdi # CHECK-NEXT: - - 2.50 2.00 0.83 0.83 - 1.00 2.50 0.33 rclq %cl, (%rax) # CHECK-NEXT: - - 2.25 3.25 0.83 0.83 - 1.25 2.25 0.33 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdmsr +# CHECK-NEXT: - - - - - - - - - - rdpmc +# CHECK-NEXT: - - 1.75 1.25 - - - 2.25 2.75 - rdtsc +# CHECK-NEXT: - - 5.00 5.00 - - - 7.00 5.00 - rdtscp # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb %dil # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil # CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax) @@ -2322,6 +2353,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - wrmsr # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddb %bl, %cl # CHECK-NEXT: - - 0.50 0.50 0.83 0.83 1.00 0.50 0.50 0.33 xaddb %bl, (%rcx) # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/SLM/resources-x86_64.s b/test/tools/llvm-mca/X86/SLM/resources-x86_64.s index 6c6c4d06c70..9add7a7d63e 100644 --- a/test/tools/llvm-mca/X86/SLM/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SLM/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 29 25.00 * U divl (%rax) # CHECK-NEXT: 1 25 25.00 U divq %rcx # CHECK-NEXT: 1 29 25.00 * U divq (%rax) +# CHECK-NEXT: 1 100 1.00 U enter $7, $4095 # CHECK-NEXT: 1 25 25.00 U idivb %dil # CHECK-NEXT: 1 29 25.00 * U idivb (%rax) # CHECK-NEXT: 1 25 25.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 1.00 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 1.00 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 1.00 * * U int $7 +# CHECK-NEXT: 1 100 1.00 U invlpg (%rax) +# CHECK-NEXT: 1 100 1.00 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 1 1 0.50 * leave # CHECK-NEXT: 1 100 1.00 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 1.00 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 1.00 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 1.00 rcrq %cl, %rdi # CHECK-NEXT: 2 4 2.00 * rclq %cl, (%rax) # CHECK-NEXT: 2 4 2.00 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 1.00 U rdmsr +# CHECK-NEXT: 1 100 1.00 U rdpmc +# CHECK-NEXT: 1 100 1.00 U rdtsc +# CHECK-NEXT: 1 100 1.00 U rdtscp # CHECK-NEXT: 1 1 1.00 rolb %dil # CHECK-NEXT: 1 1 1.00 rorb %dil # CHECK-NEXT: 2 4 2.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi # CHECK-NEXT: 1 4 1.00 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 1.00 * U ud2 +# CHECK-NEXT: 1 100 1.00 U wrmsr # CHECK-NEXT: 1 1 0.50 xaddb %bl, %cl # CHECK-NEXT: 2 4 2.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 1 1 0.50 xaddw %bx, %cx @@ -1620,7 +1643,7 @@ xorq (%rax), %rdi # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: 400.00 - - 41.00 - 549.00 391.00 557.00 +# CHECK-NEXT: 400.00 - - 49.00 - 549.50 391.50 557.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -1844,6 +1867,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divl (%rax) # CHECK-NEXT: 25.00 - - - - 0.50 0.50 - divq %rcx # CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 divq (%rax) +# CHECK-NEXT: - - - 1.00 - - - - enter $7, $4095 # CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivb %dil # CHECK-NEXT: 25.00 - - - - 0.50 0.50 1.00 idivb (%rax) # CHECK-NEXT: 25.00 - - - - 0.50 0.50 - idivw %si @@ -1896,7 +1920,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - 1.00 - - - - insw %dx, %es:(%rdi) # CHECK-NEXT: - - - 1.00 - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - 1.00 - - - - int $7 +# CHECK-NEXT: - - - 1.00 - - - - invlpg (%rax) +# CHECK-NEXT: - - - 1.00 - - - - invlpga %rax, %ecx # CHECK-NEXT: - - - - - 0.50 0.50 - lahf +# CHECK-NEXT: - - - - - 0.50 0.50 - leave # CHECK-NEXT: - - - 1.00 - - - - lodsb (%rsi), %al # CHECK-NEXT: - - - 1.00 - - - - lodsw (%rsi), %ax # CHECK-NEXT: - - - 1.00 - - - - lodsl (%rsi), %eax @@ -2046,6 +2073,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 1.00 - - rcrq %cl, %rdi # CHECK-NEXT: - - - - - 1.00 - 2.00 rclq %cl, (%rax) # CHECK-NEXT: - - - - - 1.00 - 2.00 rcrq %cl, (%rax) +# CHECK-NEXT: - - - 1.00 - - - - rdmsr +# CHECK-NEXT: - - - 1.00 - - - - rdpmc +# CHECK-NEXT: - - - 1.00 - - - - rdtsc +# CHECK-NEXT: - - - 1.00 - - - - rdtscp # CHECK-NEXT: - - - - - 1.00 - - rolb %dil # CHECK-NEXT: - - - - - 1.00 - - rorb %dil # CHECK-NEXT: - - - - - 1.00 - 2.00 rolb (%rax) @@ -2320,6 +2351,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - 0.50 0.50 - testq %rsi, %rdi # CHECK-NEXT: - - - - - 0.50 0.50 1.00 testq %rsi, (%rax) # CHECK-NEXT: - - - 1.00 - - - - ud2 +# CHECK-NEXT: - - - 1.00 - - - - wrmsr # CHECK-NEXT: - - - - - 0.50 0.50 - xaddb %bl, %cl # CHECK-NEXT: - - - - - 0.50 0.50 2.00 xaddb %bl, (%rcx) # CHECK-NEXT: - - - - - 0.50 0.50 - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s b/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s index f255cbd5c85..861bfaca0f2 100644 --- a/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -852,8 +866,6 @@ xorq %rsi, %rdi xorq %rsi, (%rax) xorq (%rax), %rdi -# CCHECK-NEXT: 160.00 - 439.83 221.33 250.00 431.83 294.00 294.00 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -1083,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 30 10.00 * U divl (%rax) # CHECK-NEXT: 1 25 10.00 U divq %rcx # CHECK-NEXT: 2 30 10.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.33 U enter $7, $4095 # CHECK-NEXT: 1 25 10.00 U idivb %dil # CHECK-NEXT: 2 30 10.00 * U idivb (%rax) # CHECK-NEXT: 1 25 10.00 U idivw %si @@ -1135,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.33 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.33 * * U int $7 +# CHECK-NEXT: 1 100 0.33 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.33 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.67 * leave # CHECK-NEXT: 3 7 0.67 U lodsb (%rsi), %al # CHECK-NEXT: 3 7 0.67 U lodsw (%rsi), %ax # CHECK-NEXT: 2 6 0.50 U lodsl (%rsi), %eax @@ -1285,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 5 4.00 rcrq %cl, %rdi # CHECK-NEXT: 11 11 3.50 * rclq %cl, (%rax) # CHECK-NEXT: 11 11 3.50 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.33 U rdmsr +# CHECK-NEXT: 1 100 0.33 U rdpmc +# CHECK-NEXT: 1 100 0.33 U rdtsc +# CHECK-NEXT: 1 100 0.33 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 8 1.00 * * rolb (%rax) @@ -1559,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.33 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.33 * U ud2 +# CHECK-NEXT: 1 100 0.33 U wrmsr # CHECK-NEXT: 3 2 1.00 xaddb %bl, %cl # CHECK-NEXT: 5 8 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 1.00 xaddw %bx, %cx @@ -1622,7 +1643,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 - 571.83 221.33 222.00 571.83 316.00 316.00 +# CHECK-NEXT: 160.00 - 575.17 224.67 222.00 575.17 316.50 316.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1846,6 +1867,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divl (%rax) # CHECK-NEXT: 10.00 - 1.00 - - - - - divq %rcx # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 divq (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - enter $7, $4095 # CHECK-NEXT: 10.00 - 1.00 - - - - - idivb %dil # CHECK-NEXT: 10.00 - 1.00 - - - 0.50 0.50 idivb (%rax) # CHECK-NEXT: 10.00 - 1.00 - - - - - idivw %si @@ -1898,7 +1920,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insw %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - int $7 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpg (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - 0.50 - - lahf +# CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 leave # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsb (%rsi), %al # CHECK-NEXT: - - 0.67 0.67 - 0.67 0.50 0.50 lodsw (%rsi), %ax # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 lodsl (%rsi), %eax @@ -2048,6 +2073,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 4.00 - - 4.00 - - rcrq %cl, %rdi # CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rclq %cl, (%rax) # CHECK-NEXT: - - 3.50 - - 3.50 2.00 2.00 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdmsr +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdpmc +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdtsc +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - rdtscp # CHECK-NEXT: - - 1.00 - - 1.00 - - rolb %dil # CHECK-NEXT: - - 1.00 - - 1.00 - - rorb %dil # CHECK-NEXT: - - 1.00 - 1.00 1.00 1.00 1.00 rolb (%rax) @@ -2322,6 +2351,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - testq %rsi, %rdi # CHECK-NEXT: - - 0.33 0.33 - 0.33 0.50 0.50 testq %rsi, (%rax) # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ud2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wrmsr # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - xaddb %bl, %cl # CHECK-NEXT: - - 0.67 0.67 1.00 0.67 1.00 1.00 xaddb %bl, (%rcx) # CHECK-NEXT: - - 1.00 1.00 - 1.00 - - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s b/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s index c008e3d5f65..963b8c90e9c 100644 --- a/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 29 10.00 * U divl (%rax) # CHECK-NEXT: 32 76 8.00 U divq %rcx # CHECK-NEXT: 2 29 10.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.25 U enter $7, $4095 # CHECK-NEXT: 1 25 10.00 U idivb %dil # CHECK-NEXT: 8 28 4.00 * U idivb (%rax) # CHECK-NEXT: 66 102 16.50 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insw %dx, %es:(%rdi) # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 +# CHECK-NEXT: 1 100 0.25 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.25 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.25 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 7 11 2.00 rcrq %cl, %rdi # CHECK-NEXT: 10 15 2.50 * rclq %cl, (%rax) # CHECK-NEXT: 11 18 2.25 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.25 U rdmsr +# CHECK-NEXT: 1 100 0.25 U rdpmc +# CHECK-NEXT: 8 18 2.00 U rdtsc +# CHECK-NEXT: 22 42 5.50 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 7 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 +# CHECK-NEXT: 1 100 0.25 U wrmsr # CHECK-NEXT: 3 2 0.75 xaddb %bl, %cl # CHECK-NEXT: 5 7 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 0.75 xaddw %bx, %cx @@ -1622,7 +1645,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 - 564.50 314.50 262.17 262.17 206.00 279.00 620.00 82.67 +# CHECK-NEXT: 60.00 - 573.25 322.75 262.67 262.67 206.00 290.25 629.75 82.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1846,6 +1869,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) # CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divq %rcx # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - enter $7, $4095 # CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil # CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivb (%rax) # CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si @@ -1898,7 +1922,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insw %dx, %es:(%rdi) # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsw (%rsi), %ax # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsl (%rsi), %eax @@ -2048,6 +2075,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rcrq %cl, %rdi # CHECK-NEXT: - - 2.75 1.75 0.83 0.83 - 0.75 2.75 0.33 rclq %cl, (%rax) # CHECK-NEXT: - - 2.50 3.00 0.83 0.83 - 1.00 2.50 0.33 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdmsr +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdpmc +# CHECK-NEXT: - - 1.75 1.25 - - - 2.25 2.75 - rdtsc +# CHECK-NEXT: - - 5.00 5.00 - - - 7.00 5.00 - rdtscp # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb %dil # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil # CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax) @@ -2322,6 +2353,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - wrmsr # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddb %bl, %cl # CHECK-NEXT: - - 0.50 0.50 0.83 0.83 1.00 0.50 0.50 0.33 xaddb %bl, (%rcx) # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s b/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s index e35da95896e..e11f6a177c8 100644 --- a/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 2 29 10.00 * U divl (%rax) # CHECK-NEXT: 32 76 8.00 U divq %rcx # CHECK-NEXT: 2 29 10.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.25 U enter $7, $4095 # CHECK-NEXT: 1 25 10.00 U idivb %dil # CHECK-NEXT: 8 28 4.00 * U idivb (%rax) # CHECK-NEXT: 66 102 16.50 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 8 20 1.25 U insw %dx, %es:(%rdi) # CHECK-NEXT: 8 20 1.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 +# CHECK-NEXT: 1 100 0.25 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx # CHECK-NEXT: 1 1 0.50 lahf +# CHECK-NEXT: 3 7 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.25 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.25 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 7 11 2.00 rcrq %cl, %rdi # CHECK-NEXT: 10 15 2.50 * rclq %cl, (%rax) # CHECK-NEXT: 11 18 2.25 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.25 U rdmsr +# CHECK-NEXT: 1 100 0.25 U rdpmc +# CHECK-NEXT: 8 18 2.00 U rdtsc +# CHECK-NEXT: 22 42 5.50 U rdtscp # CHECK-NEXT: 2 2 1.00 rolb %dil # CHECK-NEXT: 2 2 1.00 rorb %dil # CHECK-NEXT: 5 7 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi # CHECK-NEXT: 2 6 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 +# CHECK-NEXT: 1 100 0.25 U wrmsr # CHECK-NEXT: 3 2 0.75 xaddb %bl, %cl # CHECK-NEXT: 5 7 1.00 * * xaddb %bl, (%rcx) # CHECK-NEXT: 3 2 0.75 xaddw %bx, %cx @@ -1622,7 +1645,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 - 564.75 314.75 262.17 262.17 206.00 279.25 620.25 82.67 +# CHECK-NEXT: 60.00 - 573.50 323.00 262.67 262.67 206.00 290.50 630.00 82.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1846,6 +1869,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divl (%rax) # CHECK-NEXT: - - 10.25 4.75 - - - 11.25 5.75 - divq %rcx # CHECK-NEXT: 10.00 - 1.00 - 0.50 0.50 - - - - divq (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - enter $7, $4095 # CHECK-NEXT: 10.00 - 1.00 - - - - - - - idivb %dil # CHECK-NEXT: - - 2.25 0.25 0.50 0.50 - 4.25 0.25 - idivb (%rax) # CHECK-NEXT: - - 19.50 10.50 - - - 12.50 23.50 - idivw %si @@ -1898,7 +1922,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insw %dx, %es:(%rdi) # CHECK-NEXT: - - 1.00 0.50 0.83 0.83 1.00 1.50 2.00 0.33 insl %dx, %es:(%rdi) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - int $7 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpg (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - invlpga %rax, %ecx # CHECK-NEXT: - - 0.50 - - - - - 0.50 - lahf +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 0.50 0.50 - leave # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsb (%rsi), %al # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsw (%rsi), %ax # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - lodsl (%rsi), %eax @@ -2048,6 +2075,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 2.00 2.50 - - - 0.50 2.00 - rcrq %cl, %rdi # CHECK-NEXT: - - 2.75 1.75 0.83 0.83 - 0.75 2.75 0.33 rclq %cl, (%rax) # CHECK-NEXT: - - 2.50 3.00 0.83 0.83 - 1.00 2.50 0.33 rcrq %cl, (%rax) +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdmsr +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - rdpmc +# CHECK-NEXT: - - 1.75 1.25 - - - 2.25 2.75 - rdtsc +# CHECK-NEXT: - - 5.00 5.00 - - - 7.00 5.00 - rdtscp # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rolb %dil # CHECK-NEXT: - - 1.00 - - - - - 1.00 - rorb %dil # CHECK-NEXT: - - 1.00 - 0.83 0.83 1.00 - 1.00 0.33 rolb (%rax) @@ -2322,6 +2353,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - testq %rsi, %rdi # CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 0.25 0.25 - testq %rsi, (%rax) # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - ud2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - wrmsr # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddb %bl, %cl # CHECK-NEXT: - - 0.50 0.50 0.83 0.83 1.00 0.50 0.50 0.33 xaddb %bl, (%rcx) # CHECK-NEXT: - - 0.75 0.75 - - - 0.75 0.75 - xaddw %bx, %cx diff --git a/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s b/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s index 5a6eed42f7e..7de329ec3bc 100644 --- a/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s +++ b/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s @@ -254,6 +254,8 @@ divl (%rax) divq %rcx divq (%rax) +enter $7, $4095 + idivb %dil idivb (%rax) idivw %si @@ -315,8 +317,13 @@ insl int $7 +invlpg (%rax) +invlpga %rax, %ecx + lahf +leave + lodsb lodsw lodsl @@ -486,6 +493,11 @@ rcrq %cl, %rdi rclq %cl, (%rax) rcrq %cl, (%rax) +rdmsr +rdpmc +rdtsc +rdtscp + rolb %dil rorb %dil rolb (%rax) @@ -789,6 +801,8 @@ testq %rsi, (%rax) ud2 +wrmsr + xaddb %bl, %cl xaddb %bl, (%rcx) @@ -1081,6 +1095,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 3 29 25.00 * U divl (%rax) # CHECK-NEXT: 2 41 41.00 U divq %rcx # CHECK-NEXT: 3 45 41.00 * U divq (%rax) +# CHECK-NEXT: 1 100 0.25 U enter $7, $4095 # CHECK-NEXT: 1 15 15.00 U idivb %dil # CHECK-NEXT: 2 19 15.00 * U idivb (%rax) # CHECK-NEXT: 2 17 17.00 U idivw %si @@ -1133,7 +1148,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 100 0.25 U insw %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 U insl %dx, %es:(%rdi) # CHECK-NEXT: 1 100 0.25 * * U int $7 +# CHECK-NEXT: 1 100 0.25 U invlpg (%rax) +# CHECK-NEXT: 1 100 0.25 U invlpga %rax, %ecx # CHECK-NEXT: 1 100 0.25 lahf +# CHECK-NEXT: 2 8 0.50 * leave # CHECK-NEXT: 1 100 0.25 U lodsb (%rsi), %al # CHECK-NEXT: 1 100 0.25 U lodsw (%rsi), %ax # CHECK-NEXT: 1 100 0.25 U lodsl (%rsi), %eax @@ -1283,6 +1301,10 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 rcrq %cl, %rdi # CHECK-NEXT: 1 100 0.25 * rclq %cl, (%rax) # CHECK-NEXT: 1 100 0.25 * rcrq %cl, (%rax) +# CHECK-NEXT: 1 100 0.25 U rdmsr +# CHECK-NEXT: 1 100 0.25 U rdpmc +# CHECK-NEXT: 1 100 0.25 U rdtsc +# CHECK-NEXT: 1 100 0.25 U rdtscp # CHECK-NEXT: 1 1 0.25 rolb %dil # CHECK-NEXT: 1 1 0.25 rorb %dil # CHECK-NEXT: 3 5 1.00 * * rolb (%rax) @@ -1557,6 +1579,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 1 1 0.25 testq %rsi, %rdi # CHECK-NEXT: 2 5 0.50 * testq %rsi, (%rax) # CHECK-NEXT: 1 100 0.25 * U ud2 +# CHECK-NEXT: 1 100 0.25 U wrmsr # CHECK-NEXT: 1 1 0.25 xaddb %bl, %cl # CHECK-NEXT: 1 100 0.25 * * xaddb %bl, (%rcx) # CHECK-NEXT: 1 1 0.25 xaddw %bx, %cx @@ -1624,7 +1647,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: 165.00 165.00 153.50 187.50 169.50 153.50 392.00 - - - - 34.00 +# CHECK-NEXT: 165.50 165.50 153.75 187.75 169.75 153.75 392.00 - - - - 34.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -1848,6 +1871,7 @@ xorq (%rax), %rdi # CHECK-NEXT: 0.50 0.50 - - 1.00 - 25.00 - - - - - divl (%rax) # CHECK-NEXT: - - - - 1.00 - 41.00 - - - - - divq %rcx # CHECK-NEXT: 0.50 0.50 - - 1.00 - 41.00 - - - - - divq (%rax) +# CHECK-NEXT: - - - - - - - - - - - - enter $7, $4095 # CHECK-NEXT: - - - - 1.00 - 15.00 - - - - - idivb %dil # CHECK-NEXT: 0.50 0.50 - - 1.00 - 15.00 - - - - - idivb (%rax) # CHECK-NEXT: - - - - 1.00 - 17.00 - - - - - idivw %si @@ -1900,7 +1924,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - - - - - - - - - - - insw %dx, %es:(%rdi) # CHECK-NEXT: - - - - - - - - - - - - insl %dx, %es:(%rdi) # CHECK-NEXT: - - - - - - - - - - - - int $7 +# CHECK-NEXT: - - - - - - - - - - - - invlpg (%rax) +# CHECK-NEXT: - - - - - - - - - - - - invlpga %rax, %ecx # CHECK-NEXT: - - - - - - - - - - - - lahf +# CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - leave # CHECK-NEXT: - - - - - - - - - - - - lodsb (%rsi), %al # CHECK-NEXT: - - - - - - - - - - - - lodsw (%rsi), %ax # CHECK-NEXT: - - - - - - - - - - - - lodsl (%rsi), %eax @@ -2050,6 +2077,10 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - rcrq %cl, %rdi # CHECK-NEXT: - - - - - - - - - - - - rclq %cl, (%rax) # CHECK-NEXT: - - - - - - - - - - - - rcrq %cl, (%rax) +# CHECK-NEXT: - - - - - - - - - - - - rdmsr +# CHECK-NEXT: - - - - - - - - - - - - rdpmc +# CHECK-NEXT: - - - - - - - - - - - - rdtsc +# CHECK-NEXT: - - - - - - - - - - - - rdtscp # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - rolb %dil # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - rorb %dil # CHECK-NEXT: 1.00 1.00 0.25 0.25 0.25 0.25 - - - - - - rolb (%rax) @@ -2324,6 +2355,7 @@ xorq (%rax), %rdi # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - testq %rsi, %rdi # CHECK-NEXT: 0.50 0.50 0.25 0.25 0.25 0.25 - - - - - - testq %rsi, (%rax) # CHECK-NEXT: - - - - - - - - - - - - ud2 +# CHECK-NEXT: - - - - - - - - - - - - wrmsr # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - xaddb %bl, %cl # CHECK-NEXT: - - - - - - - - - - - - xaddb %bl, (%rcx) # CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - xaddw %bx, %cx