Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 1175177

Browse files
committed
[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
1 parent 02f4bb5 commit 1175177

File tree

11 files changed

+363
-13
lines changed

11 files changed

+363
-13
lines changed

test/tools/llvm-mca/X86/Atom/resources-x86_64.s

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ divl (%rax)
254254
divq %rcx
255255
divq (%rax)
256256

257+
enter $7, $4095
258+
257259
idivb %dil
258260
idivb (%rax)
259261
idivw %si
@@ -315,8 +317,13 @@ insl
315317

316318
int $7
317319

320+
invlpg (%rax)
321+
invlpga %rax, %ecx
322+
318323
lahf
319324

325+
leave
326+
320327
lodsb
321328
lodsw
322329
lodsl
@@ -486,6 +493,11 @@ rcrq %cl, %rdi
486493
rclq %cl, (%rax)
487494
rcrq %cl, (%rax)
488495

496+
rdmsr
497+
rdpmc
498+
rdtsc
499+
rdtscp
500+
489501
rolb %dil
490502
rorb %dil
491503
rolb (%rax)
@@ -789,6 +801,8 @@ testq %rsi, (%rax)
789801

790802
ud2
791803

804+
wrmsr
805+
792806
xaddb %bl, %cl
793807
xaddb %bl, (%rcx)
794808

@@ -1081,6 +1095,7 @@ xorq (%rax), %rdi
10811095
# CHECK-NEXT: 1 50 25.00 * U divl (%rax)
10821096
# CHECK-NEXT: 1 130 65.00 U divq %rcx
10831097
# CHECK-NEXT: 1 130 65.00 * U divq (%rax)
1098+
# CHECK-NEXT: 1 32 16.00 U enter $7, $4095
10841099
# CHECK-NEXT: 1 62 31.00 U idivb %dil
10851100
# CHECK-NEXT: 1 62 31.00 * U idivb (%rax)
10861101
# CHECK-NEXT: 1 62 31.00 U idivw %si
@@ -1133,7 +1148,10 @@ xorq (%rax), %rdi
11331148
# CHECK-NEXT: 1 59 29.50 U insw %dx, %es:(%rdi)
11341149
# CHECK-NEXT: 1 59 29.50 U insl %dx, %es:(%rdi)
11351150
# CHECK-NEXT: 1 127 63.50 * * U int $7
1151+
# CHECK-NEXT: 1 71 35.50 U invlpg (%rax)
1152+
# CHECK-NEXT: 1 71 35.50 U invlpga %rax, %ecx
11361153
# CHECK-NEXT: 1 2 1.00 lahf
1154+
# CHECK-NEXT: 1 2 1.00 * leave
11371155
# CHECK-NEXT: 1 2 1.00 U lodsb (%rsi), %al
11381156
# CHECK-NEXT: 1 2 1.00 U lodsw (%rsi), %ax
11391157
# CHECK-NEXT: 1 2 1.00 U lodsl (%rsi), %eax
@@ -1283,6 +1301,10 @@ xorq (%rax), %rdi
12831301
# CHECK-NEXT: 1 1 1.00 rcrq %cl, %rdi
12841302
# CHECK-NEXT: 1 1 1.00 * rclq %cl, (%rax)
12851303
# CHECK-NEXT: 1 1 1.00 * rcrq %cl, (%rax)
1304+
# CHECK-NEXT: 1 78 39.00 U rdmsr
1305+
# CHECK-NEXT: 1 46 23.00 U rdpmc
1306+
# CHECK-NEXT: 1 30 15.00 U rdtsc
1307+
# CHECK-NEXT: 1 30 15.00 U rdtscp
12861308
# CHECK-NEXT: 1 1 1.00 rolb %dil
12871309
# CHECK-NEXT: 1 1 1.00 rorb %dil
12881310
# CHECK-NEXT: 1 1 1.00 * * rolb (%rax)
@@ -1557,6 +1579,7 @@ xorq (%rax), %rdi
15571579
# CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi
15581580
# CHECK-NEXT: 1 1 1.00 * testq %rsi, (%rax)
15591581
# CHECK-NEXT: 1 100 0.50 * U ud2
1582+
# CHECK-NEXT: 1 202 101.00 U wrmsr
15601583
# CHECK-NEXT: 1 2 1.00 xaddb %bl, %cl
15611584
# CHECK-NEXT: 1 3 1.50 * * xaddb %bl, (%rcx)
15621585
# CHECK-NEXT: 1 2 1.00 xaddw %bx, %cx
@@ -1614,7 +1637,7 @@ xorq (%rax), %rdi
16141637

16151638
# CHECK: Resource pressure per iteration:
16161639
# CHECK-NEXT: [0] [1]
1617-
# CHECK-NEXT: 2393.50 2049.50
1640+
# CHECK-NEXT: 2674.50 2330.50
16181641

16191642
# CHECK: Resource pressure by instruction:
16201643
# CHECK-NEXT: [0] [1] Instructions:
@@ -1838,6 +1861,7 @@ xorq (%rax), %rdi
18381861
# CHECK-NEXT: 25.00 25.00 divl (%rax)
18391862
# CHECK-NEXT: 65.00 65.00 divq %rcx
18401863
# CHECK-NEXT: 65.00 65.00 divq (%rax)
1864+
# CHECK-NEXT: 16.00 16.00 enter $7, $4095
18411865
# CHECK-NEXT: 31.00 31.00 idivb %dil
18421866
# CHECK-NEXT: 31.00 31.00 idivb (%rax)
18431867
# CHECK-NEXT: 31.00 31.00 idivw %si
@@ -1890,7 +1914,10 @@ xorq (%rax), %rdi
18901914
# CHECK-NEXT: 29.50 29.50 insw %dx, %es:(%rdi)
18911915
# CHECK-NEXT: 29.50 29.50 insl %dx, %es:(%rdi)
18921916
# CHECK-NEXT: 63.50 63.50 int $7
1917+
# CHECK-NEXT: 35.50 35.50 invlpg (%rax)
1918+
# CHECK-NEXT: 35.50 35.50 invlpga %rax, %ecx
18931919
# CHECK-NEXT: 1.00 1.00 lahf
1920+
# CHECK-NEXT: 1.00 1.00 leave
18941921
# CHECK-NEXT: 1.00 1.00 lodsb (%rsi), %al
18951922
# CHECK-NEXT: 1.00 1.00 lodsw (%rsi), %ax
18961923
# CHECK-NEXT: 1.00 1.00 lodsl (%rsi), %eax
@@ -2040,6 +2067,10 @@ xorq (%rax), %rdi
20402067
# CHECK-NEXT: 1.00 - rcrq %cl, %rdi
20412068
# CHECK-NEXT: 1.00 - rclq %cl, (%rax)
20422069
# CHECK-NEXT: 1.00 - rcrq %cl, (%rax)
2070+
# CHECK-NEXT: 39.00 39.00 rdmsr
2071+
# CHECK-NEXT: 23.00 23.00 rdpmc
2072+
# CHECK-NEXT: 15.00 15.00 rdtsc
2073+
# CHECK-NEXT: 15.00 15.00 rdtscp
20432074
# CHECK-NEXT: 1.00 - rolb %dil
20442075
# CHECK-NEXT: 1.00 - rorb %dil
20452076
# CHECK-NEXT: 1.00 - rolb (%rax)
@@ -2314,6 +2345,7 @@ xorq (%rax), %rdi
23142345
# CHECK-NEXT: 0.50 0.50 testq %rsi, %rdi
23152346
# CHECK-NEXT: 1.00 - testq %rsi, (%rax)
23162347
# CHECK-NEXT: 0.50 0.50 ud2
2348+
# CHECK-NEXT: 101.00 101.00 wrmsr
23172349
# CHECK-NEXT: 1.00 1.00 xaddb %bl, %cl
23182350
# CHECK-NEXT: 1.50 1.50 xaddb %bl, (%rcx)
23192351
# CHECK-NEXT: 1.00 1.00 xaddw %bx, %cx

test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ divl (%rax)
254254
divq %rcx
255255
divq (%rax)
256256

257+
enter $7, $4095
258+
257259
idivb %dil
258260
idivb (%rax)
259261
idivw %si
@@ -315,8 +317,13 @@ insl
315317

316318
int $7
317319

320+
invlpg (%rax)
321+
invlpga %rax, %ecx
322+
318323
lahf
319324

325+
leave
326+
320327
lodsb
321328
lodsw
322329
lodsl
@@ -486,6 +493,11 @@ rcrq %cl, %rdi
486493
rclq %cl, (%rax)
487494
rcrq %cl, (%rax)
488495

496+
rdmsr
497+
rdpmc
498+
rdtsc
499+
rdtscp
500+
489501
rolb %dil
490502
rorb %dil
491503
rolb (%rax)
@@ -789,6 +801,8 @@ testq %rsi, (%rax)
789801

790802
ud2
791803

804+
wrmsr
805+
792806
xaddb %bl, %cl
793807
xaddb %bl, (%rcx)
794808

@@ -1081,6 +1095,7 @@ xorq (%rax), %rdi
10811095
# CHECK-NEXT: 2 18 14.00 * U divl (%rax)
10821096
# CHECK-NEXT: 2 14 14.00 U divq %rcx
10831097
# CHECK-NEXT: 2 18 14.00 * U divq (%rax)
1098+
# CHECK-NEXT: 1 100 0.50 U enter $7, $4095
10841099
# CHECK-NEXT: 1 12 12.00 U idivb %dil
10851100
# CHECK-NEXT: 1 16 12.00 * U idivb (%rax)
10861101
# CHECK-NEXT: 2 15 17.00 U idivw %si
@@ -1133,7 +1148,10 @@ xorq (%rax), %rdi
11331148
# CHECK-NEXT: 1 100 0.50 U insw %dx, %es:(%rdi)
11341149
# CHECK-NEXT: 1 100 0.50 U insl %dx, %es:(%rdi)
11351150
# CHECK-NEXT: 1 100 0.50 * * U int $7
1151+
# CHECK-NEXT: 1 100 0.50 U invlpg (%rax)
1152+
# CHECK-NEXT: 1 100 0.50 U invlpga %rax, %ecx
11361153
# CHECK-NEXT: 4 2 0.50 lahf
1154+
# CHECK-NEXT: 1 1 0.50 * leave
11371155
# CHECK-NEXT: 1 100 0.50 U lodsb (%rsi), %al
11381156
# CHECK-NEXT: 1 100 0.50 U lodsw (%rsi), %ax
11391157
# CHECK-NEXT: 1 100 0.50 U lodsl (%rsi), %eax
@@ -1283,6 +1301,10 @@ xorq (%rax), %rdi
12831301
# CHECK-NEXT: 16 7 0.50 rcrq %cl, %rdi
12841302
# CHECK-NEXT: 2 5 1.00 * rclq %cl, (%rax)
12851303
# CHECK-NEXT: 2 5 1.00 * rcrq %cl, (%rax)
1304+
# CHECK-NEXT: 1 100 0.50 U rdmsr
1305+
# CHECK-NEXT: 1 100 0.50 U rdpmc
1306+
# CHECK-NEXT: 1 100 0.50 U rdtsc
1307+
# CHECK-NEXT: 1 100 0.50 U rdtscp
12861308
# CHECK-NEXT: 1 1 0.50 rolb %dil
12871309
# CHECK-NEXT: 1 1 0.50 rorb %dil
12881310
# CHECK-NEXT: 2 5 1.00 * * rolb (%rax)
@@ -1557,6 +1579,7 @@ xorq (%rax), %rdi
15571579
# CHECK-NEXT: 1 1 0.50 testq %rsi, %rdi
15581580
# CHECK-NEXT: 1 5 0.50 * testq %rsi, (%rax)
15591581
# CHECK-NEXT: 1 100 0.50 * U ud2
1582+
# CHECK-NEXT: 1 100 0.50 U wrmsr
15601583
# CHECK-NEXT: 4 2 1.00 xaddb %bl, %cl
15611584
# CHECK-NEXT: 4 6 1.00 * * xaddb %bl, (%rcx)
15621585
# CHECK-NEXT: 4 2 1.00 xaddw %bx, %cx
@@ -1635,7 +1658,7 @@ xorq (%rax), %rdi
16351658

16361659
# CHECK: Resource pressure per iteration:
16371660
# 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]
1638-
# CHECK-NEXT: 262.00 262.00 - - 246.00 547.50 622.50 - - - - - - - - - - - - 156.50 156.50 64.00 211.00
1661+
# CHECK-NEXT: 262.00 262.00 - - 246.00 552.00 627.00 - - - - - - - - - - - - 156.50 156.50 64.00 211.00
16391662

16401663
# CHECK: Resource pressure by instruction:
16411664
# 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
18591882
# CHECK-NEXT: 0.50 0.50 - - 14.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - divl (%rax)
18601883
# CHECK-NEXT: - - - - 14.00 - 1.00 - - - - - - - - - - - - - - - - divq %rcx
18611884
# CHECK-NEXT: 0.50 0.50 - - 14.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - divq (%rax)
1885+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - enter $7, $4095
18621886
# CHECK-NEXT: - - - - 12.00 - 1.00 - - - - - - - - - - - - - - - - idivb %dil
18631887
# CHECK-NEXT: 0.50 0.50 - - 12.00 - 1.00 - - - - - - - - - - - - 0.50 0.50 - - idivb (%rax)
18641888
# CHECK-NEXT: - - - - 17.00 - 1.00 - - - - - - - - - - - - - - - - idivw %si
@@ -1911,7 +1935,10 @@ xorq (%rax), %rdi
19111935
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insw %dx, %es:(%rdi)
19121936
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - insl %dx, %es:(%rdi)
19131937
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - int $7
1938+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpg (%rax)
1939+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - invlpga %rax, %ecx
19141940
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lahf
1941+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - leave
19151942
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsb (%rsi), %al
19161943
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsw (%rsi), %ax
19171944
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - lodsl (%rsi), %eax
@@ -2061,6 +2088,10 @@ xorq (%rax), %rdi
20612088
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rcrq %cl, %rdi
20622089
# CHECK-NEXT: 1.00 1.00 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - 1.00 rclq %cl, (%rax)
20632090
# CHECK-NEXT: 1.00 1.00 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - 1.00 rcrq %cl, (%rax)
2091+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdmsr
2092+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdpmc
2093+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdtsc
2094+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rdtscp
20642095
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rolb %dil
20652096
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - rorb %dil
20662097
# 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
23352366
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - testq %rsi, %rdi
23362367
# CHECK-NEXT: 0.50 0.50 - - - 0.50 0.50 - - - - - - - - - - - - 0.50 0.50 - - testq %rsi, (%rax)
23372368
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - ud2
2369+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - wrmsr
23382370
# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddb %bl, %cl
23392371
# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddb %bl, (%rcx)
23402372
# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - xaddw %bx, %cx

0 commit comments

Comments
 (0)