Skip to content

Commit d15bae3

Browse files
committed
[SimplifyCFG] Updated early exit in CanRedirectPredsOfEmptyBBToSucc
If BB and Succ have no phis then then Pred should not be directed to Succ directly.
1 parent f532167 commit d15bae3

File tree

9 files changed

+126
-121
lines changed

9 files changed

+126
-121
lines changed

llvm/lib/Transforms/Utils/Local.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,7 +1021,7 @@ CanRedirectPredsOfEmptyBBToSucc(BasicBlock *BB, BasicBlock *Succ,
10211021
BasicBlock *&CommonPred) {
10221022

10231023
// There must be phis in BB, otherwise BB will be merged into Succ directly
1024-
if (BB->phis().empty() || Succ->phis().empty())
1024+
if (BB->phis().empty() && Succ->phis().empty())
10251025
return false;
10261026

10271027
// BB must have predecessors not shared that can be redirected to Succ

llvm/test/CodeGen/AArch64/and-sink.ll

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111
define dso_local i32 @and_sink1(i32 %a, i1 %c) {
1212
; CHECK-LABEL: and_sink1:
1313
; CHECK: // %bb.0:
14-
; CHECK-NEXT: tbz w1, #0, .LBB0_3
14+
; CHECK-NEXT: tbz w1, #0, .LBB0_2
1515
; CHECK-NEXT: // %bb.1: // %bb0
16+
; CHECK-NEXT: tst w0, #0x4
1617
; CHECK-NEXT: adrp x8, A
18+
; CHECK-NEXT: cset w0, eq
1719
; CHECK-NEXT: str wzr, [x8, :lo12:A]
18-
; CHECK-NEXT: tbnz w0, #2, .LBB0_3
19-
; CHECK-NEXT: // %bb.2:
20-
; CHECK-NEXT: mov w0, #1 // =0x1
2120
; CHECK-NEXT: ret
22-
; CHECK-NEXT: .LBB0_3: // %bb2
21+
; CHECK-NEXT: .LBB0_2:
2322
; CHECK-NEXT: mov w0, wzr
2423
; CHECK-NEXT: ret
2524

llvm/test/CodeGen/AArch64/combine-comparisons-by-cse.ll

Lines changed: 49 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ define i32 @combine_gt_ge_10() #0 {
1313
; CHECK: // %bb.0: // %entry
1414
; CHECK-NEXT: adrp x8, :got:a
1515
; CHECK-NEXT: ldr x8, [x8, :got_lo12:a]
16-
; CHECK-NEXT: ldr w8, [x8]
17-
; CHECK-NEXT: cmp w8, #10
16+
; CHECK-NEXT: ldr w9, [x8]
1817
; CHECK-NEXT: adrp x8, :got:b
1918
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
19+
; CHECK-NEXT: cmp w9, #10
2020
; CHECK-NEXT: b.le .LBB0_3
2121
; CHECK-NEXT: // %bb.1: // %land.lhs.true
2222
; CHECK-NEXT: adrp x9, :got:c
@@ -29,18 +29,17 @@ define i32 @combine_gt_ge_10() #0 {
2929
; CHECK-NEXT: mov w0, #1 // =0x1
3030
; CHECK-NEXT: ret
3131
; CHECK-NEXT: .LBB0_3: // %lor.lhs.false
32-
; CHECK-NEXT: b.lt .LBB0_6
32+
; CHECK-NEXT: cmp w9, #10
33+
; CHECK-NEXT: b.lt .LBB0_5
3334
; CHECK-NEXT: .LBB0_4: // %land.lhs.true3
3435
; CHECK-NEXT: adrp x9, :got:d
3536
; CHECK-NEXT: ldr x9, [x9, :got_lo12:d]
3637
; CHECK-NEXT: ldr w8, [x8]
3738
; CHECK-NEXT: ldr w9, [x9]
3839
; CHECK-NEXT: cmp w8, w9
39-
; CHECK-NEXT: b.ne .LBB0_6
40-
; CHECK-NEXT: // %bb.5:
41-
; CHECK-NEXT: mov w0, #1 // =0x1
40+
; CHECK-NEXT: cset w0, eq
4241
; CHECK-NEXT: ret
43-
; CHECK-NEXT: .LBB0_6: // %if.end
42+
; CHECK-NEXT: .LBB0_5:
4443
; CHECK-NEXT: mov w0, wzr
4544
; CHECK-NEXT: ret
4645
entry:
@@ -145,10 +144,10 @@ define i32 @combine_lt_ge_5() #0 {
145144
; CHECK: // %bb.0: // %entry
146145
; CHECK-NEXT: adrp x8, :got:a
147146
; CHECK-NEXT: ldr x8, [x8, :got_lo12:a]
148-
; CHECK-NEXT: ldr w8, [x8]
149-
; CHECK-NEXT: cmp w8, #5
147+
; CHECK-NEXT: ldr w9, [x8]
150148
; CHECK-NEXT: adrp x8, :got:b
151149
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
150+
; CHECK-NEXT: cmp w9, #5
152151
; CHECK-NEXT: b.ge .LBB2_3
153152
; CHECK-NEXT: // %bb.1: // %land.lhs.true
154153
; CHECK-NEXT: adrp x9, :got:c
@@ -161,18 +160,17 @@ define i32 @combine_lt_ge_5() #0 {
161160
; CHECK-NEXT: mov w0, #1 // =0x1
162161
; CHECK-NEXT: ret
163162
; CHECK-NEXT: .LBB2_3: // %lor.lhs.false
164-
; CHECK-NEXT: b.gt .LBB2_6
163+
; CHECK-NEXT: cmp w9, #5
164+
; CHECK-NEXT: b.gt .LBB2_5
165165
; CHECK-NEXT: .LBB2_4: // %land.lhs.true3
166166
; CHECK-NEXT: adrp x9, :got:d
167167
; CHECK-NEXT: ldr x9, [x9, :got_lo12:d]
168168
; CHECK-NEXT: ldr w8, [x8]
169169
; CHECK-NEXT: ldr w9, [x9]
170170
; CHECK-NEXT: cmp w8, w9
171-
; CHECK-NEXT: b.ne .LBB2_6
172-
; CHECK-NEXT: // %bb.5:
173-
; CHECK-NEXT: mov w0, #1 // =0x1
171+
; CHECK-NEXT: cset w0, eq
174172
; CHECK-NEXT: ret
175-
; CHECK-NEXT: .LBB2_6: // %if.end
173+
; CHECK-NEXT: .LBB2_5:
176174
; CHECK-NEXT: mov w0, wzr
177175
; CHECK-NEXT: ret
178176
entry:
@@ -499,24 +497,17 @@ define i32 @do_nothing_if_resultant_opcodes_would_differ() #0 {
499497
; CHECK-NEXT: // %bb.3: // %while.cond.while.end_crit_edge
500498
; CHECK-NEXT: ldr w8, [x19]
501499
; CHECK-NEXT: .LBB7_4: // %while.end
502-
; CHECK-NEXT: cmp w8, #1
503-
; CHECK-NEXT: b.gt .LBB7_7
504-
; CHECK-NEXT: // %bb.5: // %land.lhs.true
505-
; CHECK-NEXT: adrp x8, :got:b
506-
; CHECK-NEXT: adrp x9, :got:d
507-
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
508-
; CHECK-NEXT: ldr x9, [x9, :got_lo12:d]
509-
; CHECK-NEXT: ldr w8, [x8]
510-
; CHECK-NEXT: ldr w9, [x9]
511-
; CHECK-NEXT: cmp w8, w9
512-
; CHECK-NEXT: b.ne .LBB7_7
513-
; CHECK-NEXT: // %bb.6:
514-
; CHECK-NEXT: mov w0, #123 // =0x7b
515-
; CHECK-NEXT: b .LBB7_8
516-
; CHECK-NEXT: .LBB7_7: // %if.end
517-
; CHECK-NEXT: mov w0, wzr
518-
; CHECK-NEXT: .LBB7_8: // %return
500+
; CHECK-NEXT: adrp x9, :got:b
501+
; CHECK-NEXT: adrp x10, :got:d
502+
; CHECK-NEXT: ldr x9, [x9, :got_lo12:b]
503+
; CHECK-NEXT: ldr x10, [x10, :got_lo12:d]
519504
; CHECK-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload
505+
; CHECK-NEXT: ldr w9, [x9]
506+
; CHECK-NEXT: ldr w10, [x10]
507+
; CHECK-NEXT: cmp w9, w10
508+
; CHECK-NEXT: ccmp w8, #2, #0, eq
509+
; CHECK-NEXT: mov w8, #123 // =0x7b
510+
; CHECK-NEXT: csel w0, w8, wzr, lt
520511
; CHECK-NEXT: ldr x30, [sp], #32 // 8-byte Folded Reload
521512
; CHECK-NEXT: .cfi_def_cfa_offset 0
522513
; CHECK-NEXT: .cfi_restore w19
@@ -564,52 +555,41 @@ return: ; preds = %if.end, %land.lhs.t
564555
define i32 @do_nothing_if_compares_can_not_be_adjusted_to_each_other() #0 {
565556
; CHECK-LABEL: do_nothing_if_compares_can_not_be_adjusted_to_each_other:
566557
; CHECK: // %bb.0: // %entry
567-
; CHECK-NEXT: stp x30, x19, [sp, #-16]! // 16-byte Folded Spill
568-
; CHECK-NEXT: .cfi_def_cfa_offset 16
569-
; CHECK-NEXT: .cfi_offset w19, -8
570-
; CHECK-NEXT: .cfi_offset w30, -16
571-
; CHECK-NEXT: .cfi_remember_state
572558
; CHECK-NEXT: adrp x8, :got:a
573559
; CHECK-NEXT: ldr x8, [x8, :got_lo12:a]
574560
; CHECK-NEXT: ldr w8, [x8]
575561
; CHECK-NEXT: cmp w8, #0
576-
; CHECK-NEXT: b.gt .LBB8_3
562+
; CHECK-NEXT: b.gt .LBB8_4
577563
; CHECK-NEXT: // %bb.1: // %while.body.preheader
564+
; CHECK-NEXT: stp x30, x19, [sp, #-16]! // 16-byte Folded Spill
565+
; CHECK-NEXT: .cfi_def_cfa_offset 16
566+
; CHECK-NEXT: .cfi_offset w19, -8
567+
; CHECK-NEXT: .cfi_offset w30, -16
578568
; CHECK-NEXT: sub w19, w8, #1
579569
; CHECK-NEXT: .LBB8_2: // %while.body
580570
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
581571
; CHECK-NEXT: bl do_something
582572
; CHECK-NEXT: adds w19, w19, #1
583573
; CHECK-NEXT: b.mi .LBB8_2
584-
; CHECK-NEXT: .LBB8_3: // %while.end
585-
; CHECK-NEXT: adrp x8, :got:c
586-
; CHECK-NEXT: ldr x8, [x8, :got_lo12:c]
587-
; CHECK-NEXT: ldr w8, [x8]
588-
; CHECK-NEXT: cmn w8, #2
589-
; CHECK-NEXT: b.lt .LBB8_6
590-
; CHECK-NEXT: // %bb.4: // %land.lhs.true
574+
; CHECK-NEXT: // %bb.3:
575+
; CHECK-NEXT: ldp x30, x19, [sp], #16 // 16-byte Folded Reload
576+
; CHECK-NEXT: .cfi_def_cfa_offset 0
577+
; CHECK-NEXT: .cfi_restore w19
578+
; CHECK-NEXT: .cfi_restore w30
579+
; CHECK-NEXT: .LBB8_4: // %while.end
591580
; CHECK-NEXT: adrp x8, :got:b
592581
; CHECK-NEXT: adrp x9, :got:d
582+
; CHECK-NEXT: adrp x10, :got:c
593583
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
594584
; CHECK-NEXT: ldr x9, [x9, :got_lo12:d]
585+
; CHECK-NEXT: ldr x10, [x10, :got_lo12:c]
595586
; CHECK-NEXT: ldr w8, [x8]
596587
; CHECK-NEXT: ldr w9, [x9]
588+
; CHECK-NEXT: ldr w10, [x10]
597589
; CHECK-NEXT: cmp w8, w9
598-
; CHECK-NEXT: b.ne .LBB8_6
599-
; CHECK-NEXT: // %bb.5:
600-
; CHECK-NEXT: mov w0, #123 // =0x7b
601-
; CHECK-NEXT: ldp x30, x19, [sp], #16 // 16-byte Folded Reload
602-
; CHECK-NEXT: .cfi_def_cfa_offset 0
603-
; CHECK-NEXT: .cfi_restore w19
604-
; CHECK-NEXT: .cfi_restore w30
605-
; CHECK-NEXT: ret
606-
; CHECK-NEXT: .LBB8_6: // %if.end
607-
; CHECK-NEXT: .cfi_restore_state
608-
; CHECK-NEXT: mov w0, wzr
609-
; CHECK-NEXT: ldp x30, x19, [sp], #16 // 16-byte Folded Reload
610-
; CHECK-NEXT: .cfi_def_cfa_offset 0
611-
; CHECK-NEXT: .cfi_restore w19
612-
; CHECK-NEXT: .cfi_restore w30
590+
; CHECK-NEXT: mov w8, #123 // =0x7b
591+
; CHECK-NEXT: ccmn w10, #3, #4, eq
592+
; CHECK-NEXT: csel w0, w8, wzr, gt
613593
; CHECK-NEXT: ret
614594
entry:
615595
%0 = load i32, ptr @a, align 4
@@ -782,37 +762,34 @@ define i32 @combine_gt_ge_sel(i64 %v, ptr %p) #0 {
782762
; CHECK-NEXT: cmp w8, #0
783763
; CHECK-NEXT: csel x9, x0, xzr, gt
784764
; CHECK-NEXT: str x9, [x1]
785-
; CHECK-NEXT: b.le .LBB11_2
765+
; CHECK-NEXT: b.le .LBB11_3
786766
; CHECK-NEXT: // %bb.1: // %lor.lhs.false
787767
; CHECK-NEXT: cmp w8, #2
788-
; CHECK-NEXT: b.ge .LBB11_4
789-
; CHECK-NEXT: b .LBB11_6
790-
; CHECK-NEXT: .LBB11_2: // %land.lhs.true
768+
; CHECK-NEXT: b.ge .LBB11_5
769+
; CHECK-NEXT: // %bb.2:
770+
; CHECK-NEXT: mov w0, wzr
771+
; CHECK-NEXT: ret
772+
; CHECK-NEXT: .LBB11_3: // %land.lhs.true
791773
; CHECK-NEXT: adrp x8, :got:b
792774
; CHECK-NEXT: adrp x9, :got:c
793775
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
794776
; CHECK-NEXT: ldr x9, [x9, :got_lo12:c]
795777
; CHECK-NEXT: ldr w8, [x8]
796778
; CHECK-NEXT: ldr w9, [x9]
797779
; CHECK-NEXT: cmp w8, w9
798-
; CHECK-NEXT: b.ne .LBB11_4
799-
; CHECK-NEXT: // %bb.3:
780+
; CHECK-NEXT: b.ne .LBB11_5
781+
; CHECK-NEXT: // %bb.4:
800782
; CHECK-NEXT: mov w0, #1 // =0x1
801783
; CHECK-NEXT: ret
802-
; CHECK-NEXT: .LBB11_4: // %land.lhs.true3
784+
; CHECK-NEXT: .LBB11_5: // %land.lhs.true3
803785
; CHECK-NEXT: adrp x8, :got:b
804786
; CHECK-NEXT: adrp x9, :got:d
805787
; CHECK-NEXT: ldr x8, [x8, :got_lo12:b]
806788
; CHECK-NEXT: ldr x9, [x9, :got_lo12:d]
807789
; CHECK-NEXT: ldr w8, [x8]
808790
; CHECK-NEXT: ldr w9, [x9]
809791
; CHECK-NEXT: cmp w8, w9
810-
; CHECK-NEXT: b.ne .LBB11_6
811-
; CHECK-NEXT: // %bb.5:
812-
; CHECK-NEXT: mov w0, #1 // =0x1
813-
; CHECK-NEXT: ret
814-
; CHECK-NEXT: .LBB11_6: // %if.end
815-
; CHECK-NEXT: mov w0, wzr
792+
; CHECK-NEXT: cset w0, eq
816793
; CHECK-NEXT: ret
817794
entry:
818795
%0 = load i32, ptr @a, align 4

llvm/test/CodeGen/AArch64/wineh-catchret-label-generation.ll

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,47 +11,52 @@ define fastcc ptr @test_function(i1 %0, ptr %_Fmtfl.i.i, i1 %1) personality ptr
1111
; CHECK-NEXT: .seh_proc test_function
1212
; CHECK-NEXT: .seh_handler __CxxFrameHandler3, @unwind, @except
1313
; CHECK-NEXT: // %bb.0: // %entry
14-
; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill
15-
; CHECK-NEXT: .seh_save_fplr_x 32
16-
; CHECK-NEXT: mov x29, sp
17-
; CHECK-NEXT: .seh_set_fp
14+
; CHECK-NEXT: sub sp, sp, #48
15+
; CHECK-NEXT: .seh_stackalloc 48
16+
; CHECK-NEXT: stp x29, x30, [sp, #16] // 16-byte Folded Spill
17+
; CHECK-NEXT: .seh_save_fplr 16
18+
; CHECK-NEXT: add x29, sp, #16
19+
; CHECK-NEXT: .seh_add_fp 16
1820
; CHECK-NEXT: .seh_endprologue
1921
; CHECK-NEXT: mov x3, #-2 // =0xfffffffffffffffe
2022
; CHECK-NEXT: stur x3, [x29, #16]
21-
; CHECK-NEXT: tbz w0, #0, .LBB0_3
23+
; CHECK-NEXT: tbz w0, #0, .LBB0_2
2224
; CHECK-NEXT: // %bb.1: // %invoke.cont.i124
23-
; CHECK-NEXT: mov x0, x1
24-
; CHECK-NEXT: b .LBB0_4
25-
; CHECK-NEXT: .LBB0_2: // Block address taken
26-
; CHECK-NEXT: // %some-block
27-
; CHECK-NEXT: $ehgcr_0_2:
28-
; CHECK-NEXT: .LBB0_3: // %left-block526
29-
; CHECK-NEXT: mov x0, xzr
30-
; CHECK-NEXT: .LBB0_4: // %common.ret1
25+
; CHECK-NEXT: stur x1, [x29, #-8] // 8-byte Folded Spill
26+
; CHECK-NEXT: b .LBB0_3
27+
; CHECK-NEXT: .LBB0_2: // %left-block526
28+
; CHECK-NEXT: stur xzr, [x29, #-8] // 8-byte Folded Spill
29+
; CHECK-NEXT: .LBB0_3: // Block address taken
30+
; CHECK-NEXT: // %common.ret1
31+
; CHECK-NEXT: $ehgcr_0_3:
32+
; CHECK-NEXT: ldur x0, [x29, #-8] // 8-byte Folded Reload
3133
; CHECK-NEXT: .seh_startepilogue
32-
; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload
33-
; CHECK-NEXT: .seh_save_fplr_x 32
34+
; CHECK-NEXT: ldp x29, x30, [sp, #16] // 16-byte Folded Reload
35+
; CHECK-NEXT: .seh_save_fplr 16
36+
; CHECK-NEXT: add sp, sp, #48
37+
; CHECK-NEXT: .seh_stackalloc 48
3438
; CHECK-NEXT: .seh_endepilogue
3539
; CHECK-NEXT: ret
3640
; CHECK-NEXT: .seh_endfunclet
3741
; CHECK-NEXT: .seh_handlerdata
3842
; CHECK-NEXT: .word $cppxdata$test_function@IMGREL
3943
; CHECK-NEXT: .text
4044
; CHECK-NEXT: .seh_endproc
41-
; CHECK-NEXT: .def "?catch$5@?0?test_function@4HA";
45+
; CHECK-NEXT: .def "?catch$4@?0?test_function@4HA";
4246
; CHECK-NEXT: .scl 3;
4347
; CHECK-NEXT: .type 32;
4448
; CHECK-NEXT: .endef
4549
; CHECK-NEXT: .p2align 2
46-
; CHECK-NEXT: "?catch$5@?0?test_function@4HA":
47-
; CHECK-NEXT: .seh_proc "?catch$5@?0?test_function@4HA"
50+
; CHECK-NEXT: "?catch$4@?0?test_function@4HA":
51+
; CHECK-NEXT: .seh_proc "?catch$4@?0?test_function@4HA"
4852
; CHECK-NEXT: .seh_handler __CxxFrameHandler3, @unwind, @except
49-
; CHECK-NEXT: .LBB0_5: // %catch.i
53+
; CHECK-NEXT: .LBB0_4: // %catch.i
5054
; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
5155
; CHECK-NEXT: .seh_save_fplr_x 16
5256
; CHECK-NEXT: .seh_endprologue
53-
; CHECK-NEXT: adrp x0, .LBB0_2
54-
; CHECK-NEXT: add x0, x0, .LBB0_2
57+
; CHECK-NEXT: stur xzr, [x29, #-8] // 8-byte Folded Spill
58+
; CHECK-NEXT: adrp x0, .LBB0_3
59+
; CHECK-NEXT: add x0, x0, .LBB0_3
5560
; CHECK-NEXT: .seh_startepilogue
5661
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
5762
; CHECK-NEXT: .seh_save_fplr_x 16

llvm/test/CodeGen/Hexagon/vect/zext-v4i1.ll

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ define i32 @fred(ptr %a0) #0 {
1010
; CHECK-LABEL: fred:
1111
; CHECK: // %bb.0: // %b0
1212
; CHECK-NEXT: {
13-
; CHECK-NEXT: if (p0) jump:nt .LBB0_2
13+
; CHECK-NEXT: r1:0 = combine(r0,#0)
14+
; CHECK-NEXT: if (p0) jumpr r31
1415
; CHECK-NEXT: }
15-
; CHECK-NEXT: // %bb.1: // %b2
16+
; CHECK-NEXT: .LBB0_1: // %b2
1617
; CHECK-NEXT: {
1718
; CHECK-NEXT: r3:2 = combine(#0,#0)
18-
; CHECK-NEXT: r1:0 = memd(r0+#0)
19+
; CHECK-NEXT: r1:0 = memd(r1+#0)
1920
; CHECK-NEXT: }
2021
; CHECK-NEXT: {
2122
; CHECK-NEXT: p0 = vcmph.eq(r1:0,r3:2)
@@ -27,16 +28,7 @@ define i32 @fred(ptr %a0) #0 {
2728
; CHECK-NEXT: r0 = and(r0,#1)
2829
; CHECK-NEXT: }
2930
; CHECK-NEXT: {
30-
; CHECK-NEXT: p0 = cmp.eq(r0,#11)
31-
; CHECK-NEXT: r0 = #1
32-
; CHECK-NEXT: }
33-
; CHECK-NEXT: {
34-
; CHECK-NEXT: if (p0) r0 = #0
35-
; CHECK-NEXT: jumpr r31
36-
; CHECK-NEXT: }
37-
; CHECK-NEXT: .LBB0_2: // %b14
38-
; CHECK-NEXT: {
39-
; CHECK-NEXT: r0 = #0
31+
; CHECK-NEXT: r0 = !cmp.eq(r0,#11)
4032
; CHECK-NEXT: jumpr r31
4133
; CHECK-NEXT: }
4234
b0:

llvm/test/Transforms/JumpThreading/pr79175.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ define i32 @test(i64 %idx, i32 %val) {
1717
; CHECK: cond.end:
1818
; CHECK-NEXT: [[CMP_I:%.*]] = icmp sgt i32 [[VAL]], 0
1919
; CHECK-NEXT: [[COND_FR:%.*]] = freeze i1 [[CMP_I]]
20-
; CHECK-NEXT: br i1 [[COND_FR]], label [[COND_END_THREAD]], label [[TMP0:%.*]]
21-
; CHECK: cond.end.thread:
22-
; CHECK-NEXT: br label [[TMP0]]
20+
; CHECK-NEXT: br i1 [[COND_FR]], label [[TMP0:%.*]], label [[COND_END_THREAD]]
2321
; CHECK: 0:
24-
; CHECK-NEXT: [[TMP1:%.*]] = phi i32 [ 0, [[COND_END_THREAD]] ], [ [[VAL]], [[COND_END]] ]
22+
; CHECK-NEXT: br label [[COND_END_THREAD]]
23+
; CHECK: cond.end.thread:
24+
; CHECK-NEXT: [[TMP1:%.*]] = phi i32 [ [[VAL]], [[COND_END]] ], [ 0, [[TMP0]] ], [ 0, [[FOR_BODY]] ]
2525
; CHECK-NEXT: [[F_IDX:%.*]] = getelementptr inbounds i32, ptr @f, i64 [[IDX]]
2626
; CHECK-NEXT: store i32 [[TMP1]], ptr [[F_IDX]], align 4
2727
; CHECK-NEXT: [[F_RELOAD:%.*]] = load i32, ptr @f, align 4

llvm/test/Transforms/JumpThreading/preserving-debugloc-fold-select.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
; which replaces the select instruction in .exit block.
55

66
define i32 @unfold3(i32 %u, i32 %v, i32 %w, i32 %x, i32 %y, i32 %z, i32 %j) !dbg !5 {
7-
; CHECK: .exit.thread4:
7+
; CHECK: .exit.thread:
88
; CHECK-NEXT: [[TMP0:%.*]] = phi i32 {{.*}}, !dbg [[DBG29:![0-9]+]]
99
; CHECK-NEXT: ret i32 [[TMP0]], !dbg [[DBG30:![0-9]+]]
1010
;

0 commit comments

Comments
 (0)