Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit 94d44f1

Browse files
committed
[X86][BdVer2] Fix loads/stores throughput for Piledriver (PR39465)
There are two AGU units, and per 1cy, there can be either two loads, or a load and a store; but not two stores, or two loads and a store. Additionally, loads shouldn't affect the store scheduler and vice versa. (but *should* affect the PdEX scheduler.) Required rL346545. Fixes https://bugs.llvm.org/show_bug.cgi?id=39465 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346587 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 6557f4a commit 94d44f1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+4108
-3868
lines changed

lib/Target/X86/X86ScheduleBdVer2.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,14 @@ def PdFPU : ProcResGroup<[PdFPU0, PdFPU1, PdFPU2, PdFPU3]> {
130130
// Load-Store Units
131131
//
132132

133-
// FIXME: does this even make sense?
134-
135-
def PdLoad : ProcResGroup<[PdAGLU01]> {
133+
let Super = PdAGLU01 in
134+
def PdLoad : ProcResource<2> {
136135
// For Piledriver, the load queue is 40 entries deep.
137136
let BufferSize = 40;
138137
}
139138

140-
def PdStore : ProcResGroup<[PdAGLU01]> {
139+
let Super = PdAGLU01 in
140+
def PdStore : ProcResource<1> {
141141
// For Piledriver, the store queue is 24 entries deep.
142142
let BufferSize = 24;
143143
}

test/CodeGen/X86/mmx-schedule.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ define i32 @test_movd(x86_mmx %a0, i32 %a1, i32 *%a2) {
787787
; BDVER2-NEXT: paddd %mm2, %mm0 # sched: [2:0.50]
788788
; BDVER2-NEXT: movd %mm2, %ecx # sched: [10:1.00]
789789
; BDVER2-NEXT: movd %mm0, %eax # sched: [10:1.00]
790-
; BDVER2-NEXT: movl %ecx, (%rsi) # sched: [1:0.50]
790+
; BDVER2-NEXT: movl %ecx, (%rsi) # sched: [1:1.00]
791791
; BDVER2-NEXT: retq # sched: [5:1.00]
792792
;
793793
; BTVER2-LABEL: test_movd:

test/CodeGen/X86/schedule-x86-64-shld.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ define void @lshift_mem_cl(i64 %a, i64 %c) nounwind readnone {
325325
; BDVER12-NEXT: # kill: def $cl killed $cl killed $rcx
326326
; BDVER12-NEXT: shrq %cl, %rdi # sched: [1:0.50]
327327
; BDVER12-NEXT: orq %rax, %rdi # sched: [1:0.50]
328-
; BDVER12-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:0.50]
328+
; BDVER12-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00]
329329
; BDVER12-NEXT: retq # sched: [5:1.00]
330330
;
331331
; BTVER2-LABEL: lshift_mem_cl:
@@ -361,7 +361,7 @@ define void @lshift_mem(i64 %a) nounwind readnone {
361361
; BDVER12-NEXT: shrq $54, %rdi # sched: [1:0.50]
362362
; BDVER12-NEXT: shlq $10, %rax # sched: [1:0.50]
363363
; BDVER12-NEXT: orq %rax, %rdi # sched: [1:0.50]
364-
; BDVER12-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:0.50]
364+
; BDVER12-NEXT: movq %rdi, {{.*}}(%rip) # sched: [1:1.00]
365365
; BDVER12-NEXT: retq # sched: [5:1.00]
366366
;
367367
; BTVER2-LABEL: lshift_mem:
@@ -419,7 +419,7 @@ define void @lshift_mem_b(i64 %b) nounwind readnone {
419419
; BDVER12-NEXT: shlq $10, %rdi # sched: [1:0.50]
420420
; BDVER12-NEXT: shrq $54, %rax # sched: [1:0.50]
421421
; BDVER12-NEXT: orq %rdi, %rax # sched: [1:0.50]
422-
; BDVER12-NEXT: movq %rax, {{.*}}(%rip) # sched: [1:0.50]
422+
; BDVER12-NEXT: movq %rax, {{.*}}(%rip) # sched: [1:1.00]
423423
; BDVER12-NEXT: retq # sched: [5:1.00]
424424
;
425425
; BTVER2-LABEL: lshift_mem_b:
@@ -451,7 +451,7 @@ define void @lshift_mem_b_optsize(i64 %b) nounwind readnone optsize {
451451
; BDVER12: # %bb.0: # %entry
452452
; BDVER12-NEXT: movq {{.*}}(%rip), %rax # sched: [5:0.50]
453453
; BDVER12-NEXT: shrdq $54, %rdi, %rax # sched: [4:3.00]
454-
; BDVER12-NEXT: movq %rax, {{.*}}(%rip) # sched: [1:0.50]
454+
; BDVER12-NEXT: movq %rax, {{.*}}(%rip) # sched: [1:1.00]
455455
; BDVER12-NEXT: retq # sched: [5:1.00]
456456
;
457457
; BTVER2-LABEL: lshift_mem_b_optsize:

test/CodeGen/X86/schedule-x86_32.ll

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ define void @test_bound(i16 %a0, i16 *%a1, i32 %a2, i32 *%a3) optsize {
644644
;
645645
; BDVER2-LABEL: test_bound:
646646
; BDVER2: # %bb.0:
647-
; BDVER2-NEXT: pushl %esi # sched: [1:0.50]
647+
; BDVER2-NEXT: pushl %esi # sched: [1:1.00]
648648
; BDVER2-NEXT: .cfi_def_cfa_offset 8
649649
; BDVER2-NEXT: .cfi_offset %esi, -8
650650
; BDVER2-NEXT: movzwl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
@@ -1924,11 +1924,11 @@ define i16 @test_pop_push_16(i16 %a0, i16 *%a1) optsize {
19241924
; BDVER2-NEXT: #APP
19251925
; BDVER2-NEXT: popw %ax # sched: [5:0.50]
19261926
; BDVER2-NEXT: popw (%ecx) # sched: [6:1.00]
1927-
; BDVER2-NEXT: pushw %ax # sched: [1:0.50]
1927+
; BDVER2-NEXT: pushw %ax # sched: [1:1.00]
19281928
; BDVER2-NEXT: pushw (%ecx) # sched: [6:1.00]
19291929
; BDVER2-NEXT: pushw $4095 # imm = 0xFFF
1930-
; BDVER2-NEXT: # sched: [1:0.50]
1931-
; BDVER2-NEXT: pushw $7 # sched: [1:0.50]
1930+
; BDVER2-NEXT: # sched: [1:1.00]
1931+
; BDVER2-NEXT: pushw $7 # sched: [1:1.00]
19321932
; BDVER2-NEXT: #NO_APP
19331933
; BDVER2-NEXT: retl # sched: [5:1.00]
19341934
;
@@ -2091,11 +2091,11 @@ define i32 @test_pop_push_32(i32 %a0, i32 *%a1) optsize {
20912091
; BDVER2-NEXT: #APP
20922092
; BDVER2-NEXT: popl %eax # sched: [5:0.50]
20932093
; BDVER2-NEXT: popl (%ecx) # sched: [6:1.00]
2094-
; BDVER2-NEXT: pushl %eax # sched: [1:0.50]
2094+
; BDVER2-NEXT: pushl %eax # sched: [1:1.00]
20952095
; BDVER2-NEXT: pushl (%ecx) # sched: [6:1.00]
20962096
; BDVER2-NEXT: pushl $4095 # imm = 0xFFF
2097-
; BDVER2-NEXT: # sched: [1:0.50]
2098-
; BDVER2-NEXT: pushl $7 # sched: [1:0.50]
2097+
; BDVER2-NEXT: # sched: [1:1.00]
2098+
; BDVER2-NEXT: pushl $7 # sched: [1:1.00]
20992099
; BDVER2-NEXT: #NO_APP
21002100
; BDVER2-NEXT: retl # sched: [5:1.00]
21012101
;
@@ -2218,8 +2218,8 @@ define void @test_popa_popf_pusha_pushf() optsize {
22182218
; BDVER2-NEXT: #APP
22192219
; BDVER2-NEXT: popal # sched: [5:0.50]
22202220
; BDVER2-NEXT: popfl # sched: [5:0.50]
2221-
; BDVER2-NEXT: pushal # sched: [1:0.50]
2222-
; BDVER2-NEXT: pushfl # sched: [1:0.50]
2221+
; BDVER2-NEXT: pushal # sched: [1:1.00]
2222+
; BDVER2-NEXT: pushfl # sched: [1:1.00]
22232223
; BDVER2-NEXT: #NO_APP
22242224
; BDVER2-NEXT: retl # sched: [5:1.00]
22252225
;

test/CodeGen/X86/schedule-x86_64.ll

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8475,8 +8475,8 @@ define void @test_movnti(i32 %a0, i32 *%a1, i64 %a2, i64 *%a3) optsize {
84758475
; BDVER2-LABEL: test_movnti:
84768476
; BDVER2: # %bb.0:
84778477
; BDVER2-NEXT: #APP
8478-
; BDVER2-NEXT: movntil %edi, (%rsi) # sched: [1:0.50]
8479-
; BDVER2-NEXT: movntiq %rdx, (%rcx) # sched: [1:0.50]
8478+
; BDVER2-NEXT: movntil %edi, (%rsi) # sched: [1:1.00]
8479+
; BDVER2-NEXT: movntiq %rdx, (%rcx) # sched: [1:1.00]
84808480
; BDVER2-NEXT: #NO_APP
84818481
; BDVER2-NEXT: retq # sched: [5:1.00]
84828482
;
@@ -10658,11 +10658,11 @@ define i16 @test_pop_push_16(i16 %a0, i16 *%a1) optsize {
1065810658
; BDVER2-NEXT: #APP
1065910659
; BDVER2-NEXT: popw %ax # sched: [5:0.50]
1066010660
; BDVER2-NEXT: popw (%rsi) # sched: [6:1.00]
10661-
; BDVER2-NEXT: pushw %di # sched: [1:0.50]
10661+
; BDVER2-NEXT: pushw %di # sched: [1:1.00]
1066210662
; BDVER2-NEXT: pushw (%rsi) # sched: [6:1.00]
1066310663
; BDVER2-NEXT: pushw $4095 # imm = 0xFFF
10664-
; BDVER2-NEXT: # sched: [1:0.50]
10665-
; BDVER2-NEXT: pushw $7 # sched: [1:0.50]
10664+
; BDVER2-NEXT: # sched: [1:1.00]
10665+
; BDVER2-NEXT: pushw $7 # sched: [1:1.00]
1066610666
; BDVER2-NEXT: #NO_APP
1066710667
; BDVER2-NEXT: retq # sched: [5:1.00]
1066810668
;
@@ -10804,11 +10804,11 @@ define i64 @test_pop_push_64(i64 %a0, i64 *%a1) optsize {
1080410804
; BDVER2-NEXT: #APP
1080510805
; BDVER2-NEXT: popq %rax # sched: [5:0.50]
1080610806
; BDVER2-NEXT: popq (%rsi) # sched: [6:1.00]
10807-
; BDVER2-NEXT: pushq %rdi # sched: [1:0.50]
10807+
; BDVER2-NEXT: pushq %rdi # sched: [1:1.00]
1080810808
; BDVER2-NEXT: pushq (%rsi) # sched: [6:1.00]
1080910809
; BDVER2-NEXT: pushq $4095 # imm = 0xFFF
10810-
; BDVER2-NEXT: # sched: [1:0.50]
10811-
; BDVER2-NEXT: pushq $7 # sched: [1:0.50]
10810+
; BDVER2-NEXT: # sched: [1:1.00]
10811+
; BDVER2-NEXT: pushq $7 # sched: [1:1.00]
1081210812
; BDVER2-NEXT: #NO_APP
1081310813
; BDVER2-NEXT: retq # sched: [5:1.00]
1081410814
;
@@ -10910,7 +10910,7 @@ define void @test_popf_pushf() optsize {
1091010910
; BDVER2: # %bb.0:
1091110911
; BDVER2-NEXT: #APP
1091210912
; BDVER2-NEXT: popfq # sched: [5:0.50]
10913-
; BDVER2-NEXT: pushfq # sched: [1:0.50]
10913+
; BDVER2-NEXT: pushfq # sched: [1:1.00]
1091410914
; BDVER2-NEXT: #NO_APP
1091510915
; BDVER2-NEXT: retq # sched: [5:1.00]
1091610916
;
@@ -15157,18 +15157,18 @@ define void @test_setcc(i8 %a0, i8 *%a1) optsize {
1515715157
; BDVER2-NEXT: setge %dil # sched: [1:0.50]
1515815158
; BDVER2-NEXT: setle %dil # sched: [1:0.50]
1515915159
; BDVER2-NEXT: setg %dil # sched: [1:0.50]
15160-
; BDVER2-NEXT: seto (%rsi) # sched: [1:0.50]
15161-
; BDVER2-NEXT: setno (%rsi) # sched: [1:0.50]
15162-
; BDVER2-NEXT: setb (%rsi) # sched: [1:0.50]
15163-
; BDVER2-NEXT: setae (%rsi) # sched: [1:0.50]
15164-
; BDVER2-NEXT: sete (%rsi) # sched: [1:0.50]
15165-
; BDVER2-NEXT: setne (%rsi) # sched: [1:0.50]
15166-
; BDVER2-NEXT: setbe (%rsi) # sched: [1:0.50]
15167-
; BDVER2-NEXT: seta (%rsi) # sched: [1:0.50]
15168-
; BDVER2-NEXT: sets (%rsi) # sched: [1:0.50]
15169-
; BDVER2-NEXT: setns (%rsi) # sched: [1:0.50]
15170-
; BDVER2-NEXT: setp (%rsi) # sched: [1:0.50]
15171-
; BDVER2-NEXT: setnp (%rsi) # sched: [1:0.50]
15160+
; BDVER2-NEXT: seto (%rsi) # sched: [1:1.00]
15161+
; BDVER2-NEXT: setno (%rsi) # sched: [1:1.00]
15162+
; BDVER2-NEXT: setb (%rsi) # sched: [1:1.00]
15163+
; BDVER2-NEXT: setae (%rsi) # sched: [1:1.00]
15164+
; BDVER2-NEXT: sete (%rsi) # sched: [1:1.00]
15165+
; BDVER2-NEXT: setne (%rsi) # sched: [1:1.00]
15166+
; BDVER2-NEXT: setbe (%rsi) # sched: [1:1.00]
15167+
; BDVER2-NEXT: seta (%rsi) # sched: [1:1.00]
15168+
; BDVER2-NEXT: sets (%rsi) # sched: [1:1.00]
15169+
; BDVER2-NEXT: setns (%rsi) # sched: [1:1.00]
15170+
; BDVER2-NEXT: setp (%rsi) # sched: [1:1.00]
15171+
; BDVER2-NEXT: setnp (%rsi) # sched: [1:1.00]
1517215172
; BDVER2-NEXT: setl (%rsi) # sched: [1:1.00]
1517315173
; BDVER2-NEXT: setge (%rsi) # sched: [1:1.00]
1517415174
; BDVER2-NEXT: setle (%rsi) # sched: [1:1.00]

test/CodeGen/X86/sse-schedule.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2230,13 +2230,13 @@ define void @test_ldmxcsr(i32 %a0) {
22302230
;
22312231
; BDVER2-SSE-LABEL: test_ldmxcsr:
22322232
; BDVER2-SSE: # %bb.0:
2233-
; BDVER2-SSE-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:0.50]
2233+
; BDVER2-SSE-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
22342234
; BDVER2-SSE-NEXT: ldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:0.50]
22352235
; BDVER2-SSE-NEXT: retq # sched: [5:1.00]
22362236
;
22372237
; BDVER2-LABEL: test_ldmxcsr:
22382238
; BDVER2: # %bb.0:
2239-
; BDVER2-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:0.50]
2239+
; BDVER2-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
22402240
; BDVER2-NEXT: vldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:0.50]
22412241
; BDVER2-NEXT: retq # sched: [5:1.00]
22422242
;
@@ -5290,12 +5290,12 @@ define void @test_sfence() {
52905290
;
52915291
; BDVER2-SSE-LABEL: test_sfence:
52925292
; BDVER2-SSE: # %bb.0:
5293-
; BDVER2-SSE-NEXT: sfence # sched: [1:0.50]
5293+
; BDVER2-SSE-NEXT: sfence # sched: [1:1.00]
52945294
; BDVER2-SSE-NEXT: retq # sched: [5:1.00]
52955295
;
52965296
; BDVER2-LABEL: test_sfence:
52975297
; BDVER2: # %bb.0:
5298-
; BDVER2-NEXT: sfence # sched: [1:0.50]
5298+
; BDVER2-NEXT: sfence # sched: [1:1.00]
52995299
; BDVER2-NEXT: retq # sched: [5:1.00]
53005300
;
53015301
; BTVER2-SSE-LABEL: test_sfence:
@@ -5847,13 +5847,13 @@ define i32 @test_stmxcsr() {
58475847
;
58485848
; BDVER2-SSE-LABEL: test_stmxcsr:
58495849
; BDVER2-SSE: # %bb.0:
5850-
; BDVER2-SSE-NEXT: stmxcsr -{{[0-9]+}}(%rsp) # sched: [1:0.50]
5850+
; BDVER2-SSE-NEXT: stmxcsr -{{[0-9]+}}(%rsp) # sched: [1:1.00]
58515851
; BDVER2-SSE-NEXT: movl -{{[0-9]+}}(%rsp), %eax # sched: [5:0.50]
58525852
; BDVER2-SSE-NEXT: retq # sched: [5:1.00]
58535853
;
58545854
; BDVER2-LABEL: test_stmxcsr:
58555855
; BDVER2: # %bb.0:
5856-
; BDVER2-NEXT: vstmxcsr -{{[0-9]+}}(%rsp) # sched: [1:0.50]
5856+
; BDVER2-NEXT: vstmxcsr -{{[0-9]+}}(%rsp) # sched: [1:1.00]
58575857
; BDVER2-NEXT: movl -{{[0-9]+}}(%rsp), %eax # sched: [5:0.50]
58585858
; BDVER2-NEXT: retq # sched: [5:1.00]
58595859
;

test/CodeGen/X86/sse2-schedule.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3821,12 +3821,12 @@ define void @test_lfence() {
38213821
;
38223822
; BDVER2-SSE-LABEL: test_lfence:
38233823
; BDVER2-SSE: # %bb.0:
3824-
; BDVER2-SSE-NEXT: lfence # sched: [1:0.50]
3824+
; BDVER2-SSE-NEXT: lfence # sched: [1:1.00]
38253825
; BDVER2-SSE-NEXT: retq # sched: [5:1.00]
38263826
;
38273827
; BDVER2-LABEL: test_lfence:
38283828
; BDVER2: # %bb.0:
3829-
; BDVER2-NEXT: lfence # sched: [1:0.50]
3829+
; BDVER2-NEXT: lfence # sched: [1:1.00]
38303830
; BDVER2-NEXT: retq # sched: [5:1.00]
38313831
;
38323832
; BTVER2-SSE-LABEL: test_lfence:
@@ -3927,12 +3927,12 @@ define void @test_mfence() {
39273927
;
39283928
; BDVER2-SSE-LABEL: test_mfence:
39293929
; BDVER2-SSE: # %bb.0:
3930-
; BDVER2-SSE-NEXT: mfence # sched: [1:0.50]
3930+
; BDVER2-SSE-NEXT: mfence # sched: [1:1.00]
39313931
; BDVER2-SSE-NEXT: retq # sched: [5:1.00]
39323932
;
39333933
; BDVER2-LABEL: test_mfence:
39343934
; BDVER2: # %bb.0:
3935-
; BDVER2-NEXT: mfence # sched: [1:0.50]
3935+
; BDVER2-NEXT: mfence # sched: [1:1.00]
39363936
; BDVER2-NEXT: retq # sched: [5:1.00]
39373937
;
39383938
; BTVER2-SSE-LABEL: test_mfence:

test/CodeGen/X86/x87-schedule.ll

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2792,14 +2792,14 @@ define void @test_fist_fistp_fisttp(i16* %a0, i32* %a1, i64 *%a2) optsize {
27922792
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
27932793
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
27942794
; BDVER2-NEXT: #APP
2795-
; BDVER2-NEXT: fists (%edx) # sched: [1:0.50]
2796-
; BDVER2-NEXT: fistl (%ecx) # sched: [1:0.50]
2797-
; BDVER2-NEXT: fistps (%edx) # sched: [1:0.50]
2798-
; BDVER2-NEXT: fistpl (%ecx) # sched: [1:0.50]
2799-
; BDVER2-NEXT: fistpll (%eax) # sched: [1:0.50]
2800-
; BDVER2-NEXT: fisttps (%edx) # sched: [1:0.50]
2801-
; BDVER2-NEXT: fisttpl (%ecx) # sched: [1:0.50]
2802-
; BDVER2-NEXT: fisttpll (%eax) # sched: [1:0.50]
2795+
; BDVER2-NEXT: fists (%edx) # sched: [1:1.00]
2796+
; BDVER2-NEXT: fistl (%ecx) # sched: [1:1.00]
2797+
; BDVER2-NEXT: fistps (%edx) # sched: [1:1.00]
2798+
; BDVER2-NEXT: fistpl (%ecx) # sched: [1:1.00]
2799+
; BDVER2-NEXT: fistpll (%eax) # sched: [1:1.00]
2800+
; BDVER2-NEXT: fisttps (%edx) # sched: [1:1.00]
2801+
; BDVER2-NEXT: fisttpl (%ecx) # sched: [1:1.00]
2802+
; BDVER2-NEXT: fisttpll (%eax) # sched: [1:1.00]
28032803
; BDVER2-NEXT: #NO_APP
28042804
; BDVER2-NEXT: retl # sched: [5:1.00]
28052805
;
@@ -4672,12 +4672,12 @@ define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
46724672
; BDVER2-NEXT: movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
46734673
; BDVER2-NEXT: #APP
46744674
; BDVER2-NEXT: fst %st(0) # sched: [1:0.50]
4675-
; BDVER2-NEXT: fsts (%edx) # sched: [1:0.50]
4676-
; BDVER2-NEXT: fstl (%ecx) # sched: [1:0.50]
4675+
; BDVER2-NEXT: fsts (%edx) # sched: [1:1.00]
4676+
; BDVER2-NEXT: fstl (%ecx) # sched: [1:1.00]
46774677
; BDVER2-NEXT: fstp %st(0) # sched: [1:0.50]
4678-
; BDVER2-NEXT: fstpl (%edx) # sched: [1:0.50]
4679-
; BDVER2-NEXT: fstpl (%ecx) # sched: [1:0.50]
4680-
; BDVER2-NEXT: fstpt (%eax) # sched: [1:0.50]
4678+
; BDVER2-NEXT: fstpl (%edx) # sched: [1:1.00]
4679+
; BDVER2-NEXT: fstpl (%ecx) # sched: [1:1.00]
4680+
; BDVER2-NEXT: fstpt (%eax) # sched: [1:1.00]
46814681
; BDVER2-NEXT: #NO_APP
46824682
; BDVER2-NEXT: retl # sched: [5:1.00]
46834683
;

test/tools/llvm-mca/X86/BdVer2/add-sequence.s

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,20 @@ add %eax, %edx
4848
# CHECK-NEXT: [13] - PdFPU2
4949
# CHECK-NEXT: [14] - PdFPU3
5050
# CHECK-NEXT: [15] - PdFPXBR
51-
# CHECK-NEXT: [16] - PdMul
51+
# CHECK-NEXT: [16.0] - PdLoad
52+
# CHECK-NEXT: [16.1] - PdLoad
53+
# CHECK-NEXT: [17] - PdMul
54+
# CHECK-NEXT: [18] - PdStore
5255

5356
# CHECK: Resource pressure per iteration:
54-
# 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]
55-
# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - -
57+
# 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]
58+
# CHECK-NEXT: - - - - - 1.50 1.50 - - - - - - - - - - - - - - - -
5659

5760
# CHECK: Resource pressure by instruction:
58-
# 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] Instructions:
59-
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %eax, %ecx
60-
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %esi, %eax
61-
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - addl %eax, %edx
61+
# 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:
62+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %eax, %ecx
63+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %esi, %eax
64+
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - addl %eax, %edx
6265

6366
# CHECK: Timeline view:
6467
# CHECK-NEXT: 01234567

test/tools/llvm-mca/X86/BdVer2/dependency-breaking-cmp.s

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,19 @@ cmovae %ebx, %eax
5151
# CHECK-NEXT: [13] - PdFPU2
5252
# CHECK-NEXT: [14] - PdFPU3
5353
# CHECK-NEXT: [15] - PdFPXBR
54-
# CHECK-NEXT: [16] - PdMul
54+
# CHECK-NEXT: [16.0] - PdLoad
55+
# CHECK-NEXT: [16.1] - PdLoad
56+
# CHECK-NEXT: [17] - PdMul
57+
# CHECK-NEXT: [18] - PdStore
5558

5659
# CHECK: Resource pressure per iteration:
57-
# 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]
58-
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - -
60+
# 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]
61+
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - -
5962

6063
# CHECK: Resource pressure by instruction:
61-
# 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] Instructions:
62-
# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - cmpl %eax, %eax
63-
# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - cmovael %ebx, %eax
64+
# 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:
65+
# CHECK-NEXT: - - - - - 1.00 - - - - - - - - - - - - - - - - - cmpl %eax, %eax
66+
# CHECK-NEXT: - - - - - - 1.00 - - - - - - - - - - - - - - - - cmovael %ebx, %eax
6467

6568
# CHECK: Timeline view:
6669
# CHECK-NEXT: Index 0123456

0 commit comments

Comments
 (0)