Skip to content

Commit bed2c50

Browse files
committed
[X86][SandyBridge] Additional updates to the SNB instructions scheduling information
This is a continuation patch for commit r307529 which completely replaces the scheduling information for the SandyBridge architecture target by modifying the file X86SchedSandyBridge.td located under the X86 Target (see also https://reviews.llvm.org/D35019). In this patch we added the scheduling information of additional SNB instructions that were missing from the patch commit r307529, fixed the scheduling of several resource groups that include only port0 instead of port05 (i.e., port0 OR port5) and fixed several incorrect instructions' scheduling in the r307529 commit. The patch also includes the X87 instructions which were missing in previous patch commit r307529 as reported in bugzilla bug 34080. Reviewers: zvi, RKSimon, chandlerc, igorb, m_zuckerman, craig.topper, aymanmus, dim Differential Revision: https://reviews.llvm.org/D36388 llvm-svn: 310792
1 parent 631991f commit bed2c50

12 files changed

+1218
-1088
lines changed

llvm/lib/Target/X86/X86SchedSandyBridge.td

Lines changed: 988 additions & 824 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/X86/avx-schedule.ll

Lines changed: 121 additions & 121 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/X86/bmi-schedule.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ define i16 @test_andn_i16(i16 zeroext %a0, i16 zeroext %a1, i16 *%a2) {
1111
; GENERIC: # BB#0:
1212
; GENERIC-NEXT: andnl %esi, %edi, %eax # sched: [1:0.33]
1313
; GENERIC-NEXT: notl %edi # sched: [1:0.33]
14-
; GENERIC-NEXT: andw (%rdx), %di # sched: [5:0.50]
14+
; GENERIC-NEXT: andw (%rdx), %di # sched: [6:0.50]
1515
; GENERIC-NEXT: addl %edi, %eax # sched: [1:0.33]
1616
; GENERIC-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
1717
; GENERIC-NEXT: retq # sched: [1:1.00]

llvm/test/CodeGen/X86/popcnt-schedule.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
define i16 @test_ctpop_i16(i16 zeroext %a0, i16 *%a1) {
1414
; GENERIC-LABEL: test_ctpop_i16:
1515
; GENERIC: # BB#0:
16-
; GENERIC-NEXT: popcntw (%rsi), %cx # sched: [7:1.00]
16+
; GENERIC-NEXT: popcntw (%rsi), %cx # sched: [9:1.00]
1717
; GENERIC-NEXT: popcntw %di, %ax # sched: [3:1.00]
1818
; GENERIC-NEXT: orl %ecx, %eax # sched: [1:0.33]
1919
; GENERIC-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
@@ -29,7 +29,7 @@ define i16 @test_ctpop_i16(i16 zeroext %a0, i16 *%a1) {
2929
;
3030
; SANDY-LABEL: test_ctpop_i16:
3131
; SANDY: # BB#0:
32-
; SANDY-NEXT: popcntw (%rsi), %cx # sched: [7:1.00]
32+
; SANDY-NEXT: popcntw (%rsi), %cx # sched: [9:1.00]
3333
; SANDY-NEXT: popcntw %di, %ax # sched: [3:1.00]
3434
; SANDY-NEXT: orl %ecx, %eax # sched: [1:0.33]
3535
; SANDY-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
@@ -69,7 +69,7 @@ declare i16 @llvm.ctpop.i16(i16)
6969
define i32 @test_ctpop_i32(i32 %a0, i32 *%a1) {
7070
; GENERIC-LABEL: test_ctpop_i32:
7171
; GENERIC: # BB#0:
72-
; GENERIC-NEXT: popcntl (%rsi), %ecx # sched: [7:1.00]
72+
; GENERIC-NEXT: popcntl (%rsi), %ecx # sched: [9:1.00]
7373
; GENERIC-NEXT: popcntl %edi, %eax # sched: [3:1.00]
7474
; GENERIC-NEXT: orl %ecx, %eax # sched: [1:0.33]
7575
; GENERIC-NEXT: retq # sched: [1:1.00]
@@ -83,7 +83,7 @@ define i32 @test_ctpop_i32(i32 %a0, i32 *%a1) {
8383
;
8484
; SANDY-LABEL: test_ctpop_i32:
8585
; SANDY: # BB#0:
86-
; SANDY-NEXT: popcntl (%rsi), %ecx # sched: [7:1.00]
86+
; SANDY-NEXT: popcntl (%rsi), %ecx # sched: [9:1.00]
8787
; SANDY-NEXT: popcntl %edi, %eax # sched: [3:1.00]
8888
; SANDY-NEXT: orl %ecx, %eax # sched: [1:0.33]
8989
; SANDY-NEXT: retq # sched: [1:1.00]

llvm/test/CodeGen/X86/pr34080.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,23 @@ define void @_Z1fe(x86_fp80 %z) local_unnamed_addr #0 {
6060
; SSE2-BROKEN-NEXT: Lcfi2:
6161
; SSE2-BROKEN-NEXT: .cfi_def_cfa_register %rbp
6262
; SSE2-BROKEN-NEXT: fnstcw -4(%rbp)
63+
; SSE2-BROKEN-NEXT: fldt 16(%rbp)
6364
; SSE2-BROKEN-NEXT: movzwl -4(%rbp), %eax
6465
; SSE2-BROKEN-NEXT: movw $3199, -4(%rbp) ## imm = 0xC7F
6566
; SSE2-BROKEN-NEXT: fldcw -4(%rbp)
66-
; SSE2-BROKEN-NEXT: fldt 16(%rbp)
6767
; SSE2-BROKEN-NEXT: movw %ax, -4(%rbp)
6868
; SSE2-BROKEN-NEXT: fistl -8(%rbp)
6969
; SSE2-BROKEN-NEXT: fldcw -4(%rbp)
7070
; SSE2-BROKEN-NEXT: cvtsi2sdl -8(%rbp), %xmm0
7171
; SSE2-BROKEN-NEXT: movsd %xmm0, -64(%rbp)
7272
; SSE2-BROKEN-NEXT: movsd %xmm0, -32(%rbp)
7373
; SSE2-BROKEN-NEXT: fsubl -32(%rbp)
74-
; SSE2-BROKEN-NEXT: fnstcw -2(%rbp)
7574
; SSE2-BROKEN-NEXT: flds {{.*}}(%rip)
75+
; SSE2-BROKEN-NEXT: fnstcw -2(%rbp)
76+
; SSE2-BROKEN-NEXT: fmul %st(0), %st(1)
7677
; SSE2-BROKEN-NEXT: movzwl -2(%rbp), %eax
7778
; SSE2-BROKEN-NEXT: movw $3199, -2(%rbp) ## imm = 0xC7F
7879
; SSE2-BROKEN-NEXT: fldcw -2(%rbp)
79-
; SSE2-BROKEN-NEXT: fmul %st(0), %st(1)
8080
; SSE2-BROKEN-NEXT: movw %ax, -2(%rbp)
8181
; SSE2-BROKEN-NEXT: fxch %st(1)
8282
; SSE2-BROKEN-NEXT: fistl -12(%rbp)

llvm/test/CodeGen/X86/recip-fastmath.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ define <4 x float> @v4f32_one_step(<4 x float> %x) #1 {
350350
;
351351
; SANDY-LABEL: v4f32_one_step:
352352
; SANDY: # BB#0:
353-
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [7:3.00]
353+
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [5:1.00]
354354
; SANDY-NEXT: vmulps %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
355355
; SANDY-NEXT: vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [6:0.50]
356356
; SANDY-NEXT: vsubps %xmm0, %xmm2, %xmm0 # sched: [3:1.00]
@@ -453,7 +453,7 @@ define <4 x float> @v4f32_two_step(<4 x float> %x) #2 {
453453
;
454454
; SANDY-LABEL: v4f32_two_step:
455455
; SANDY: # BB#0:
456-
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [7:3.00]
456+
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [5:1.00]
457457
; SANDY-NEXT: vmulps %xmm1, %xmm0, %xmm2 # sched: [5:1.00]
458458
; SANDY-NEXT: vmovaps {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [6:0.50]
459459
; SANDY-NEXT: vsubps %xmm2, %xmm3, %xmm2 # sched: [3:1.00]
@@ -547,7 +547,7 @@ define <8 x float> @v8f32_no_estimate(<8 x float> %x) #0 {
547547
; SANDY-LABEL: v8f32_no_estimate:
548548
; SANDY: # BB#0:
549549
; SANDY-NEXT: vmovaps {{.*#+}} ymm1 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
550-
; SANDY-NEXT: vdivps %ymm0, %ymm1, %ymm0 # sched: [29:3.00]
550+
; SANDY-NEXT: vdivps %ymm0, %ymm1, %ymm0 # sched: [29:2.00]
551551
; SANDY-NEXT: retq # sched: [1:1.00]
552552
;
553553
; HASWELL-LABEL: v8f32_no_estimate:
@@ -619,7 +619,7 @@ define <8 x float> @v8f32_one_step(<8 x float> %x) #1 {
619619
;
620620
; SANDY-LABEL: v8f32_one_step:
621621
; SANDY: # BB#0:
622-
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [5:1.00]
622+
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [7:2.00]
623623
; SANDY-NEXT: vmulps %ymm1, %ymm0, %ymm0 # sched: [5:1.00]
624624
; SANDY-NEXT: vmovaps {{.*#+}} ymm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
625625
; SANDY-NEXT: vsubps %ymm0, %ymm2, %ymm0 # sched: [3:1.00]
@@ -735,7 +735,7 @@ define <8 x float> @v8f32_two_step(<8 x float> %x) #2 {
735735
;
736736
; SANDY-LABEL: v8f32_two_step:
737737
; SANDY: # BB#0:
738-
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [5:1.00]
738+
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [7:2.00]
739739
; SANDY-NEXT: vmulps %ymm1, %ymm0, %ymm2 # sched: [5:1.00]
740740
; SANDY-NEXT: vmovaps {{.*#+}} ymm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
741741
; SANDY-NEXT: vsubps %ymm2, %ymm3, %ymm2 # sched: [3:1.00]

llvm/test/CodeGen/X86/recip-fastmath2.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ define <4 x float> @v4f32_one_step2(<4 x float> %x) #1 {
403403
;
404404
; SANDY-LABEL: v4f32_one_step2:
405405
; SANDY: # BB#0:
406-
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [7:3.00]
406+
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [5:1.00]
407407
; SANDY-NEXT: vmulps %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
408408
; SANDY-NEXT: vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [6:0.50]
409409
; SANDY-NEXT: vsubps %xmm0, %xmm2, %xmm0 # sched: [3:1.00]
@@ -501,7 +501,7 @@ define <4 x float> @v4f32_one_step_2_divs(<4 x float> %x) #1 {
501501
;
502502
; SANDY-LABEL: v4f32_one_step_2_divs:
503503
; SANDY: # BB#0:
504-
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [7:3.00]
504+
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [5:1.00]
505505
; SANDY-NEXT: vmulps %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
506506
; SANDY-NEXT: vmovaps {{.*#+}} xmm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [6:0.50]
507507
; SANDY-NEXT: vsubps %xmm0, %xmm2, %xmm0 # sched: [3:1.00]
@@ -619,7 +619,7 @@ define <4 x float> @v4f32_two_step2(<4 x float> %x) #2 {
619619
;
620620
; SANDY-LABEL: v4f32_two_step2:
621621
; SANDY: # BB#0:
622-
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [7:3.00]
622+
; SANDY-NEXT: vrcpps %xmm0, %xmm1 # sched: [5:1.00]
623623
; SANDY-NEXT: vmulps %xmm1, %xmm0, %xmm2 # sched: [5:1.00]
624624
; SANDY-NEXT: vmovaps {{.*#+}} xmm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [6:0.50]
625625
; SANDY-NEXT: vsubps %xmm2, %xmm3, %xmm2 # sched: [3:1.00]
@@ -739,7 +739,7 @@ define <8 x float> @v8f32_one_step2(<8 x float> %x) #1 {
739739
;
740740
; SANDY-LABEL: v8f32_one_step2:
741741
; SANDY: # BB#0:
742-
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [5:1.00]
742+
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [7:2.00]
743743
; SANDY-NEXT: vmulps %ymm1, %ymm0, %ymm0 # sched: [5:1.00]
744744
; SANDY-NEXT: vmovaps {{.*#+}} ymm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
745745
; SANDY-NEXT: vsubps %ymm0, %ymm2, %ymm0 # sched: [3:1.00]
@@ -846,7 +846,7 @@ define <8 x float> @v8f32_one_step_2_divs(<8 x float> %x) #1 {
846846
;
847847
; SANDY-LABEL: v8f32_one_step_2_divs:
848848
; SANDY: # BB#0:
849-
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [5:1.00]
849+
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [7:2.00]
850850
; SANDY-NEXT: vmulps %ymm1, %ymm0, %ymm0 # sched: [5:1.00]
851851
; SANDY-NEXT: vmovaps {{.*#+}} ymm2 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
852852
; SANDY-NEXT: vsubps %ymm0, %ymm2, %ymm0 # sched: [3:1.00]
@@ -978,7 +978,7 @@ define <8 x float> @v8f32_two_step2(<8 x float> %x) #2 {
978978
;
979979
; SANDY-LABEL: v8f32_two_step2:
980980
; SANDY: # BB#0:
981-
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [5:1.00]
981+
; SANDY-NEXT: vrcpps %ymm0, %ymm1 # sched: [7:2.00]
982982
; SANDY-NEXT: vmulps %ymm1, %ymm0, %ymm2 # sched: [5:1.00]
983983
; SANDY-NEXT: vmovaps {{.*#+}} ymm3 = [1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00,1.000000e+00] sched: [7:0.50]
984984
; SANDY-NEXT: vsubps %ymm2, %ymm3, %ymm2 # sched: [3:1.00]
@@ -1069,7 +1069,7 @@ define <8 x float> @v8f32_no_step(<8 x float> %x) #3 {
10691069
;
10701070
; SANDY-LABEL: v8f32_no_step:
10711071
; SANDY: # BB#0:
1072-
; SANDY-NEXT: vrcpps %ymm0, %ymm0 # sched: [5:1.00]
1072+
; SANDY-NEXT: vrcpps %ymm0, %ymm0 # sched: [7:2.00]
10731073
; SANDY-NEXT: retq # sched: [1:1.00]
10741074
;
10751075
; HASWELL-LABEL: v8f32_no_step:
@@ -1124,7 +1124,7 @@ define <8 x float> @v8f32_no_step2(<8 x float> %x) #3 {
11241124
;
11251125
; SANDY-LABEL: v8f32_no_step2:
11261126
; SANDY: # BB#0:
1127-
; SANDY-NEXT: vrcpps %ymm0, %ymm0 # sched: [5:1.00]
1127+
; SANDY-NEXT: vrcpps %ymm0, %ymm0 # sched: [7:2.00]
11281128
; SANDY-NEXT: vmulps {{.*}}(%rip), %ymm0, %ymm0 # sched: [12:1.00]
11291129
; SANDY-NEXT: retq # sched: [1:1.00]
11301130
;

llvm/test/CodeGen/X86/sse-schedule.ll

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -334,12 +334,12 @@ define i32 @test_comiss(<4 x float> %a0, <4 x float> %a1, <4 x float> *%a2) {
334334
; GENERIC-LABEL: test_comiss:
335335
; GENERIC: # BB#0:
336336
; GENERIC-NEXT: comiss %xmm1, %xmm0 # sched: [3:1.00]
337-
; GENERIC-NEXT: setnp %al # sched: [1:1.00]
338-
; GENERIC-NEXT: sete %cl # sched: [1:1.00]
337+
; GENERIC-NEXT: setnp %al # sched: [1:0.50]
338+
; GENERIC-NEXT: sete %cl # sched: [1:0.50]
339339
; GENERIC-NEXT: andb %al, %cl # sched: [1:0.33]
340340
; GENERIC-NEXT: comiss (%rdi), %xmm0 # sched: [7:1.00]
341-
; GENERIC-NEXT: setnp %al # sched: [1:1.00]
342-
; GENERIC-NEXT: sete %dl # sched: [1:1.00]
341+
; GENERIC-NEXT: setnp %al # sched: [1:0.50]
342+
; GENERIC-NEXT: sete %dl # sched: [1:0.50]
343343
; GENERIC-NEXT: andb %al, %dl # sched: [1:0.33]
344344
; GENERIC-NEXT: orb %cl, %dl # sched: [1:0.33]
345345
; GENERIC-NEXT: movzbl %dl, %eax # sched: [1:0.33]
@@ -376,12 +376,12 @@ define i32 @test_comiss(<4 x float> %a0, <4 x float> %a1, <4 x float> *%a2) {
376376
; SANDY-LABEL: test_comiss:
377377
; SANDY: # BB#0:
378378
; SANDY-NEXT: vcomiss %xmm1, %xmm0 # sched: [3:1.00]
379-
; SANDY-NEXT: setnp %al # sched: [1:1.00]
380-
; SANDY-NEXT: sete %cl # sched: [1:1.00]
379+
; SANDY-NEXT: setnp %al # sched: [1:0.50]
380+
; SANDY-NEXT: sete %cl # sched: [1:0.50]
381381
; SANDY-NEXT: andb %al, %cl # sched: [1:0.33]
382382
; SANDY-NEXT: vcomiss (%rdi), %xmm0 # sched: [7:1.00]
383-
; SANDY-NEXT: setnp %al # sched: [1:1.00]
384-
; SANDY-NEXT: sete %dl # sched: [1:1.00]
383+
; SANDY-NEXT: setnp %al # sched: [1:0.50]
384+
; SANDY-NEXT: sete %dl # sched: [1:0.50]
385385
; SANDY-NEXT: andb %al, %dl # sched: [1:0.33]
386386
; SANDY-NEXT: orb %cl, %dl # sched: [1:0.33]
387387
; SANDY-NEXT: movzbl %dl, %eax # sched: [1:0.33]
@@ -877,7 +877,7 @@ define float @test_divss(float %a0, float %a1, float *%a2) {
877877
define void @test_ldmxcsr(i32 %a0) {
878878
; GENERIC-LABEL: test_ldmxcsr:
879879
; GENERIC: # BB#0:
880-
; GENERIC-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
880+
; GENERIC-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [5:1.00]
881881
; GENERIC-NEXT: ldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:1.00]
882882
; GENERIC-NEXT: retq # sched: [1:1.00]
883883
;
@@ -895,7 +895,7 @@ define void @test_ldmxcsr(i32 %a0) {
895895
;
896896
; SANDY-LABEL: test_ldmxcsr:
897897
; SANDY: # BB#0:
898-
; SANDY-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [1:1.00]
898+
; SANDY-NEXT: movl %edi, -{{[0-9]+}}(%rsp) # sched: [5:1.00]
899899
; SANDY-NEXT: vldmxcsr -{{[0-9]+}}(%rsp) # sched: [5:1.00]
900900
; SANDY-NEXT: retq # sched: [1:1.00]
901901
;
@@ -1559,7 +1559,7 @@ define <4 x float> @test_movss_reg(<4 x float> %a0, <4 x float> %a1) {
15591559
;
15601560
; SANDY-LABEL: test_movss_reg:
15611561
; SANDY: # BB#0:
1562-
; SANDY-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3] sched: [1:1.00]
1562+
; SANDY-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3] sched: [1:0.50]
15631563
; SANDY-NEXT: retq # sched: [1:1.00]
15641564
;
15651565
; HASWELL-LABEL: test_movss_reg:
@@ -1859,7 +1859,7 @@ define <4 x float> @test_rcpps(<4 x float> %a0, <4 x float> *%a1) {
18591859
;
18601860
; SANDY-LABEL: test_rcpps:
18611861
; SANDY: # BB#0:
1862-
; SANDY-NEXT: vrcpps %xmm0, %xmm0 # sched: [7:3.00]
1862+
; SANDY-NEXT: vrcpps %xmm0, %xmm0 # sched: [5:1.00]
18631863
; SANDY-NEXT: vrcpps (%rdi), %xmm1 # sched: [11:1.00]
18641864
; SANDY-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
18651865
; SANDY-NEXT: retq # sched: [1:1.00]
@@ -1921,9 +1921,9 @@ define <4 x float> @test_rcpss(float %a0, float *%a1) {
19211921
;
19221922
; SANDY-LABEL: test_rcpss:
19231923
; SANDY: # BB#0:
1924-
; SANDY-NEXT: vrcpss %xmm0, %xmm0, %xmm0 # sched: [9:1.00]
1924+
; SANDY-NEXT: vrcpss %xmm0, %xmm0, %xmm0 # sched: [5:1.00]
19251925
; SANDY-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero sched: [6:0.50]
1926-
; SANDY-NEXT: vrcpss %xmm1, %xmm1, %xmm1 # sched: [9:1.00]
1926+
; SANDY-NEXT: vrcpss %xmm1, %xmm1, %xmm1 # sched: [5:1.00]
19271927
; SANDY-NEXT: vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
19281928
; SANDY-NEXT: retq # sched: [1:1.00]
19291929
;
@@ -2459,12 +2459,12 @@ define i32 @test_ucomiss(<4 x float> %a0, <4 x float> %a1, <4 x float> *%a2) {
24592459
; GENERIC-LABEL: test_ucomiss:
24602460
; GENERIC: # BB#0:
24612461
; GENERIC-NEXT: ucomiss %xmm1, %xmm0 # sched: [3:1.00]
2462-
; GENERIC-NEXT: setnp %al # sched: [1:1.00]
2463-
; GENERIC-NEXT: sete %cl # sched: [1:1.00]
2462+
; GENERIC-NEXT: setnp %al # sched: [1:0.50]
2463+
; GENERIC-NEXT: sete %cl # sched: [1:0.50]
24642464
; GENERIC-NEXT: andb %al, %cl # sched: [1:0.33]
24652465
; GENERIC-NEXT: ucomiss (%rdi), %xmm0 # sched: [7:1.00]
2466-
; GENERIC-NEXT: setnp %al # sched: [1:1.00]
2467-
; GENERIC-NEXT: sete %dl # sched: [1:1.00]
2466+
; GENERIC-NEXT: setnp %al # sched: [1:0.50]
2467+
; GENERIC-NEXT: sete %dl # sched: [1:0.50]
24682468
; GENERIC-NEXT: andb %al, %dl # sched: [1:0.33]
24692469
; GENERIC-NEXT: orb %cl, %dl # sched: [1:0.33]
24702470
; GENERIC-NEXT: movzbl %dl, %eax # sched: [1:0.33]
@@ -2501,12 +2501,12 @@ define i32 @test_ucomiss(<4 x float> %a0, <4 x float> %a1, <4 x float> *%a2) {
25012501
; SANDY-LABEL: test_ucomiss:
25022502
; SANDY: # BB#0:
25032503
; SANDY-NEXT: vucomiss %xmm1, %xmm0 # sched: [3:1.00]
2504-
; SANDY-NEXT: setnp %al # sched: [1:1.00]
2505-
; SANDY-NEXT: sete %cl # sched: [1:1.00]
2504+
; SANDY-NEXT: setnp %al # sched: [1:0.50]
2505+
; SANDY-NEXT: sete %cl # sched: [1:0.50]
25062506
; SANDY-NEXT: andb %al, %cl # sched: [1:0.33]
25072507
; SANDY-NEXT: vucomiss (%rdi), %xmm0 # sched: [7:1.00]
2508-
; SANDY-NEXT: setnp %al # sched: [1:1.00]
2509-
; SANDY-NEXT: sete %dl # sched: [1:1.00]
2508+
; SANDY-NEXT: setnp %al # sched: [1:0.50]
2509+
; SANDY-NEXT: sete %dl # sched: [1:0.50]
25102510
; SANDY-NEXT: andb %al, %dl # sched: [1:0.33]
25112511
; SANDY-NEXT: orb %cl, %dl # sched: [1:0.33]
25122512
; SANDY-NEXT: movzbl %dl, %eax # sched: [1:0.33]

0 commit comments

Comments
 (0)