Skip to content

Commit 413f56e

Browse files
committed
Replace undef with different argument to avoid unreachable BB
1 parent bf16730 commit 413f56e

File tree

10 files changed

+58
-65
lines changed

10 files changed

+58
-65
lines changed

llvm/test/Transforms/NewGVN/2010-03-31-RedundantPHIs.ll

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,17 @@
44
; CHECK-NOT: load
55
; CHECK-NOT: phi
66

7-
define ptr @cat(ptr %s1, i1 %arg, ...) nounwind {
7+
define ptr @cat(ptr %s1, i1 %arg, i1 %arg2, i1 %arg3, ...) nounwind {
88
; CHECK-LABEL: define ptr @cat(
9-
; CHECK-SAME: ptr [[S1:%.*]], i1 [[ARG:%.*]], ...) #[[ATTR0:[0-9]+]] {
9+
; CHECK-SAME: ptr [[S1:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]], i1 [[ARG3:%.*]], ...) #[[ATTR0:[0-9]+]] {
1010
; CHECK-NEXT: entry:
11-
; CHECK-NEXT: br i1 false, label [[BB:%.*]], label [[BB3:%.*]]
11+
; CHECK-NEXT: br i1 [[ARG2]], label [[BB:%.*]], label [[BB3:%.*]]
1212
; CHECK: bb:
13-
; CHECK-NEXT: store i8 poison, ptr null, align 1
1413
; CHECK-NEXT: unreachable
1514
; CHECK: bb3:
1615
; CHECK-NEXT: store ptr undef, ptr undef, align 4
17-
; CHECK-NEXT: br i1 false, label [[BB5:%.*]], label [[BB6:%.*]]
16+
; CHECK-NEXT: br i1 [[ARG3]], label [[BB5:%.*]], label [[BB6:%.*]]
1817
; CHECK: bb5:
19-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2018
; CHECK-NEXT: unreachable
2119
; CHECK: bb6:
2220
; CHECK-NEXT: br label [[BB12:%.*]]
@@ -35,14 +33,14 @@ define ptr @cat(ptr %s1, i1 %arg, ...) nounwind {
3533
; CHECK-NEXT: ret ptr undef
3634
;
3735
entry:
38-
br i1 false, label %bb, label %bb3
36+
br i1 %arg2, label %bb, label %bb3
3937

4038
bb: ; preds = %entry
4139
unreachable
4240

4341
bb3: ; preds = %entry
4442
store ptr undef, ptr undef, align 4
45-
br i1 false, label %bb5, label %bb6
43+
br i1 %arg3, label %bb5, label %bb6
4644

4745
bb5: ; preds = %bb3
4846
unreachable

llvm/test/Transforms/NewGVN/eliminate-ssacopy.ll

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@
99
@a = external dso_local local_unnamed_addr global i8, align 1
1010
@f = external dso_local local_unnamed_addr global i16, align 2
1111

12-
define void @g() {
12+
define void @g(i1 %arg) {
1313
; CHECK-LABEL: @g(
1414
; CHECK-NEXT: entry:
15-
; CHECK-NEXT: br i1 true, label [[FOR_COND1THREAD_PRE_SPLIT:%.*]], label [[FOR_COND_PREHEADER:%.*]]
15+
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_COND1THREAD_PRE_SPLIT:%.*]], label [[FOR_COND_PREHEADER:%.*]]
1616
; CHECK: for.cond.preheader:
17-
; CHECK-NEXT: store i8 poison, ptr null, align 1
1817
; CHECK-NEXT: unreachable
1918
; CHECK: for.cond1thread-pre-split:
2019
; CHECK-NEXT: br label [[FOR_END4_SPLIT:%.*]]
@@ -39,7 +38,7 @@ define void @g() {
3938
; CHECK-NEXT: ret void
4039
;
4140
entry:
42-
br i1 true, label %for.cond1thread-pre-split, label %for.cond.preheader
41+
br i1 %arg, label %for.cond1thread-pre-split, label %for.cond.preheader
4342

4443
for.cond.preheader: ; preds = %entry
4544
unreachable
@@ -51,7 +50,7 @@ for.end4.split: ; preds = %for.cond1thread-pre
5150
br i1 true, label %for.cond6.preheader, label %if.end11
5251

5352
for.cond6.preheader: ; preds = %for.end4.split
54-
br i1 true, label %for.cond6.preheader3, label %if.end11.loopexit
53+
br i1 %arg, label %for.cond6.preheader3, label %if.end11.loopexit
5554

5655
for.cond6.preheader3: ; preds = %for.cond6.preheader
5756
br label %if.end11.loopexit

llvm/test/Transforms/NewGVN/pr25440.ll

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ target triple = "thumbv7--linux-gnueabi"
1010
@length = external global [0 x i32], align 4
1111

1212
; Function Attrs: nounwind
13-
define fastcc void @foo(ptr nocapture readonly %x, i1 %arg) {
13+
define fastcc void @foo(ptr nocapture readonly %x, i1 %arg, i1 %arg2) {
1414
; CHECK-LABEL: define fastcc void @foo(
15-
; CHECK-SAME: ptr nocapture readonly [[X:%.*]], i1 [[ARG:%.*]]) {
15+
; CHECK-SAME: ptr nocapture readonly [[X:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]]) {
1616
; CHECK-NEXT: entry:
1717
; CHECK-NEXT: br label [[BB0:%.*]]
1818
; CHECK: bb0:
@@ -33,9 +33,8 @@ define fastcc void @foo(ptr nocapture readonly %x, i1 %arg) {
3333
; CHECK-NEXT: [[BF_LOAD:%.*]] = load i16, ptr [[MODE]], align 2
3434
; CHECK-NEXT: br label [[COND_END]]
3535
; CHECK: cond.end:
36-
; CHECK-NEXT: br i1 false, label [[IF_THEN_44:%.*]], label [[CLEANUP]]
36+
; CHECK-NEXT: br i1 [[ARG2]], label [[IF_THEN_44:%.*]], label [[CLEANUP]]
3737
; CHECK: if.then.44:
38-
; CHECK-NEXT: store i8 poison, ptr null, align 1
3938
; CHECK-NEXT: unreachable
4039
; CHECK: if.end.50:
4140
; CHECK-NEXT: [[ARRAYIDX52:%.*]] = getelementptr inbounds [0 x i32], ptr @length, i32 0, i32 [[CONV]]
@@ -76,7 +75,7 @@ cond.false: ; preds = %if.then.26
7675
br label %cond.end
7776

7877
cond.end: ; preds = %cond.false, %if.then.26
79-
br i1 false, label %if.then.44, label %cleanup
78+
br i1 %arg2, label %if.then.44, label %cleanup
8079

8180
if.then.44: ; preds = %cond.end
8281
unreachable

llvm/test/Transforms/NewGVN/pr31594.ll

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ while.end:
5656

5757
;; This is an example of a case where the memory states are equivalent solely due to unreachability,
5858
;; but the stores are not equal.
59-
define void @foo(ptr %arg, i1 %arg2) {
59+
define void @foo(ptr %arg, i1 %arg2, i1 %arg3) {
6060
; CHECK-LABEL: @foo(
6161
; CHECK-NEXT: bb:
6262
; CHECK-NEXT: br label [[BB1:%.*]]
@@ -71,9 +71,8 @@ define void @foo(ptr %arg, i1 %arg2) {
7171
; CHECK: bb4:
7272
; CHECK-NEXT: br label [[BB6:%.*]]
7373
; CHECK: bb6:
74-
; CHECK-NEXT: br i1 true, label [[BB9:%.*]], label [[BB7:%.*]]
74+
; CHECK-NEXT: br i1 [[ARG3:%.*]], label [[BB9:%.*]], label [[BB7:%.*]]
7575
; CHECK: bb7:
76-
; CHECK-NEXT: store i8 poison, ptr null, align 1
7776
; CHECK-NEXT: switch i8 0, label [[BB6]] [
7877
; CHECK-NEXT: i8 6, label [[BB8:%.*]]
7978
; CHECK-NEXT: ]
@@ -103,7 +102,7 @@ bb4: ; preds = %bb8, %bb3
103102
br label %bb6
104103

105104
bb6: ; preds = %bb7, %bb4
106-
br i1 %arg2, label %bb9, label %bb7
105+
br i1 %arg3, label %bb9, label %bb7
107106

108107
bb7: ; preds = %bb6
109108
switch i8 0, label %bb6 [

llvm/test/Transforms/NewGVN/pr31613.ll

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
55
;; Both of these tests are tests of phi nodes that end up all equivalent to each other
66
;; Without proper leader ordering, we will end up cycling the leader between all of them and never converge.
77

8-
define void @foo(i1 %arg) {
8+
define void @foo(i1 %arg, i1 %arg2) {
99
; CHECK-LABEL: @foo(
1010
; CHECK-NEXT: bb:
1111
; CHECK-NEXT: br label [[BB1:%.*]]
@@ -21,11 +21,10 @@ define void @foo(i1 %arg) {
2121
; CHECK: bb9:
2222
; CHECK-NEXT: br i1 [[ARG]], label [[BB2]], label [[BB11:%.*]]
2323
; CHECK: bb11:
24-
; CHECK-NEXT: br i1 false, label [[BB16:%.*]], label [[BB14:%.*]]
24+
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[BB16:%.*]], label [[BB14:%.*]]
2525
; CHECK: bb14:
2626
; CHECK-NEXT: br label [[BB4]]
2727
; CHECK: bb16:
28-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2928
; CHECK-NEXT: br label [[BB7]]
3029
; CHECK: bb18:
3130
; CHECK-NEXT: br label [[BB1]]
@@ -53,7 +52,7 @@ bb9: ; preds = %bb7
5352
br i1 %arg, label %bb2, label %bb11
5453

5554
bb11: ; preds = %bb9
56-
br i1 %arg, label %bb16, label %bb14
55+
br i1 %arg2, label %bb16, label %bb14
5756

5857
bb14: ; preds = %bb11
5958
%tmp15 = phi i32 [ %tmp8, %bb11 ]

llvm/test/Transforms/NewGVN/pr32403.ll

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,23 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
44
target triple = "x86_64-apple-macosx10.12.0"
55

66
; Function Attrs: nounwind ssp uwtable
7-
define void @reorder_ref_pic_list(i1 %arg) local_unnamed_addr {
7+
define void @reorder_ref_pic_list(i1 %arg, i1 %arg2, i1 %arg3) local_unnamed_addr {
88
; CHECK-LABEL: @reorder_ref_pic_list(
99
; CHECK-NEXT: entry:
1010
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_END:%.*]], label [[FOR_BODY_PREHEADER:%.*]]
1111
; CHECK: for.body.preheader:
1212
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
1313
; CHECK: for.body:
1414
; CHECK-NEXT: [[REFIDXLX_0:%.*]] = phi i32 [ [[INC_I51:%.*]], [[IF_ELSE58:%.*]] ], [ 0, [[FOR_BODY_PREHEADER]] ]
15-
; CHECK-NEXT: br i1 false, label [[IF_THEN13:%.*]], label [[IF_ELSE58]]
15+
; CHECK-NEXT: br i1 [[ARG3:%.*]], label [[IF_THEN13:%.*]], label [[IF_ELSE58]]
1616
; CHECK: if.then13:
17-
; CHECK-NEXT: store i8 poison, ptr null, align 1
17+
; CHECK-NEXT: [[INC_I:%.*]] = add nsw i32 [[REFIDXLX_0]], 1
1818
; CHECK-NEXT: br label [[FOR_BODY8_I:%.*]]
1919
; CHECK: for.body8.i:
20-
; CHECK-NEXT: store i8 poison, ptr null, align 1
21-
; CHECK-NEXT: br i1 false, label [[FOR_INC24_I:%.*]], label [[IF_THEN17_I:%.*]]
20+
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[FOR_INC24_I:%.*]], label [[IF_THEN17_I:%.*]]
2221
; CHECK: if.then17.i:
23-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2422
; CHECK-NEXT: br label [[FOR_INC24_I]]
2523
; CHECK: for.inc24.i:
26-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2724
; CHECK-NEXT: br label [[FOR_BODY8_I]]
2825
; CHECK: if.else58:
2926
; CHECK-NEXT: [[INC_I51]] = add nsw i32 [[REFIDXLX_0]], 1
@@ -39,15 +36,15 @@ for.body.preheader: ; preds = %entry
3936

4037
for.body: ; preds = %if.else58, %for.body.preheader
4138
%refIdxLX.0 = phi i32 [ %inc.i51, %if.else58 ], [ 0, %for.body.preheader ]
42-
br i1 %arg, label %if.then13, label %if.else58
39+
br i1 %arg2, label %if.then13, label %if.else58
4340

4441
if.then13: ; preds = %for.body
4542
%inc.i = add nsw i32 %refIdxLX.0, 1
4643
br label %for.body8.i
4744

4845
for.body8.i: ; preds = %for.inc24.i, %if.then13
4946
%nIdx.052.i = phi i32 [ %inc.i, %if.then13 ], [ %nIdx.1.i, %for.inc24.i ]
50-
br i1 %arg, label %for.inc24.i, label %if.then17.i
47+
br i1 %arg3, label %for.inc24.i, label %if.then17.i
5148

5249
if.then17.i: ; preds = %for.body8.i
5350
br label %for.inc24.i

llvm/test/Transforms/NewGVN/pr32838.ll

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ temp:
9595
}
9696
@b = external global i32, align 4
9797
@a = external global i32, align 4
98-
define void @fn3(i1 %arg) {
98+
define void @fn3(i1 %arg, i1 %arg2) {
9999
; CHECK-LABEL: @fn3(
100100
; CHECK-NEXT: entry:
101101
; CHECK-NEXT: br label [[L1:%.*]]
@@ -112,11 +112,12 @@ define void @fn3(i1 %arg) {
112112
; CHECK: for.cond1.preheader:
113113
; CHECK-NEXT: br label [[FOR_BODY3:%.*]]
114114
; CHECK: for.cond1:
115-
; CHECK-NEXT: store i8 poison, ptr null, align 1
116115
; CHECK-NEXT: br label [[L2:%.*]]
117116
; CHECK: for.body3:
118-
; CHECK-NEXT: br i1 false, label [[FOR_COND1:%.*]], label [[L1_LOOPEXIT]]
117+
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[FOR_COND1:%.*]], label [[L1_LOOPEXIT]]
119118
; CHECK: l2:
119+
; CHECK-NEXT: [[G_4:%.*]] = phi ptr [ @b, [[FOR_END14]] ], [ @a, [[FOR_COND1]] ]
120+
; CHECK-NEXT: [[F_2:%.*]] = phi ptr [ [[F_0]], [[FOR_END14]] ], [ @a, [[FOR_COND1]] ]
120121
; CHECK-NEXT: br label [[FOR_INC:%.*]]
121122
; CHECK: for.inc:
122123
; CHECK-NEXT: br i1 false, label [[FOR_COND_LOOPEXIT:%.*]], label [[FOR_INC]]
@@ -143,7 +144,7 @@ for.cond1.preheader:
143144
for.cond1:
144145
br label %l2
145146
for.body3:
146-
br i1 %arg, label %for.cond1, label %l1.loopexit
147+
br i1 %arg2, label %for.cond1, label %l1.loopexit
147148
l2:
148149
%g.4 = phi ptr [ %g.1, %for.end14 ], [ @a, %for.cond1 ]
149150
%f.2 = phi ptr [ %f.1, %for.end14 ], [ @a, %for.cond1 ]

llvm/test/Transforms/NewGVN/pr32845.ll

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
@b = external global i32, align 4
55
@a = external global i32, align 4
6-
define void @tinkywinky(i1 %arg) {
6+
define void @tinkywinky(i1 %arg, i1 %arg2) {
77
; CHECK-LABEL: @tinkywinky(
88
; CHECK-NEXT: entry:
99
; CHECK-NEXT: br label [[L1:%.*]]
@@ -20,11 +20,12 @@ define void @tinkywinky(i1 %arg) {
2020
; CHECK: for.cond1.preheader:
2121
; CHECK-NEXT: br label [[FOR_BODY3:%.*]]
2222
; CHECK: for.cond1:
23-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2423
; CHECK-NEXT: br label [[L2:%.*]]
2524
; CHECK: for.body3:
26-
; CHECK-NEXT: br i1 false, label [[FOR_COND1:%.*]], label [[L1_LOOPEXIT]]
25+
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[FOR_COND1:%.*]], label [[L1_LOOPEXIT]]
2726
; CHECK: l2:
27+
; CHECK-NEXT: [[G_4:%.*]] = phi ptr [ @b, [[FOR_END14]] ], [ @a, [[FOR_COND1]] ]
28+
; CHECK-NEXT: [[F_2:%.*]] = phi ptr [ [[F_0]], [[FOR_END14]] ], [ @a, [[FOR_COND1]] ]
2829
; CHECK-NEXT: br label [[FOR_INC:%.*]]
2930
; CHECK: for.inc:
3031
; CHECK-NEXT: br i1 false, label [[FOR_COND_LOOPEXIT:%.*]], label [[FOR_INC]]
@@ -51,7 +52,7 @@ for.cond1.preheader:
5152
for.cond1:
5253
br label %l2
5354
for.body3:
54-
br i1 %arg, label %for.cond1, label %l1.loopexit
55+
br i1 %arg2, label %for.cond1, label %l1.loopexit
5556
l2:
5657
%g.4 = phi ptr [ %g.1, %for.end14 ], [ @a, %for.cond1 ]
5758
%f.2 = phi ptr [ %f.1, %for.end14 ], [ @a, %for.cond1 ]

llvm/test/Transforms/NewGVN/pr42422-phi-of-ops.ll

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
22
; RUN: opt -passes=newgvn -S %s | FileCheck %s
33

4-
define void @d(i1 %arg) {
4+
define void @d(i1 %arg, i1 %arg2) {
55
; CHECK-LABEL: @d(
66
; CHECK-NEXT: entry:
77
; CHECK-NEXT: br label [[FOR_COND:%.*]]
88
; CHECK: for.cond:
99
; CHECK-NEXT: br label [[FOR_COND1:%.*]]
1010
; CHECK: for.cond1:
11-
; CHECK-NEXT: br i1 true, label [[FOR_BODY:%.*]], label [[FOR_END19:%.*]]
11+
; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ [[INC18:%.*]], [[FOR_INC17:%.*]] ], [ 0, [[FOR_COND]] ]
12+
; CHECK-NEXT: [[ARG:%.*]] = icmp sle i32 [[TMP0]], 1
13+
; CHECK-NEXT: br i1 [[ARG]], label [[FOR_BODY3:%.*]], label [[FOR_BODY_FOR_COND4_CRIT_EDGE:%.*]]
1214
; CHECK: for.body:
13-
; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_BODY3:%.*]], label [[FOR_BODY_FOR_COND4_CRIT_EDGE:%.*]]
15+
; CHECK-NEXT: br i1 [[ARG1:%.*]], label [[FOR_BODY4:%.*]], label [[FOR_BODY_FOR_COND4_CRIT_EDGE1:%.*]]
1416
; CHECK: for.body.for.cond4_crit_edge:
1517
; CHECK-NEXT: br label [[FOR_COND4:%.*]]
1618
; CHECK: for.body3:
1719
; CHECK-NEXT: br label [[CLEANUP14:%.*]]
1820
; CHECK: for.cond4:
19-
; CHECK-NEXT: br i1 false, label [[IF_THEN:%.*]], label [[IF_END:%.*]]
21+
; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
2022
; CHECK: if.then:
21-
; CHECK-NEXT: store i8 poison, ptr null, align 1
2223
; CHECK-NEXT: br label [[CLEANUP:%.*]]
2324
; CHECK: if.end:
2425
; CHECK-NEXT: br label [[FOR_COND6:%.*]]
@@ -37,23 +38,26 @@ define void @d(i1 %arg) {
3738
; CHECK-NEXT: store i8 poison, ptr null, align 1
3839
; CHECK-NEXT: br label [[CLEANUP]]
3940
; CHECK: cleanup:
40-
; CHECK-NEXT: switch i32 1, label [[CLEANUP14]] [
41+
; CHECK-NEXT: [[CLEANUP_DEST:%.*]] = phi i32 [ poison, [[IF_END12]] ], [ 1, [[IF_THEN11]] ], [ 9, [[IF_THEN]] ]
42+
; CHECK-NEXT: switch i32 [[CLEANUP_DEST]], label [[CLEANUP14]] [
4143
; CHECK-NEXT: i32 0, label [[FOR_COND4]]
4244
; CHECK-NEXT: i32 9, label [[FOR_END13:%.*]]
4345
; CHECK-NEXT: ]
4446
; CHECK: for.end13:
45-
; CHECK-NEXT: store i8 poison, ptr null, align 1
4647
; CHECK-NEXT: br label [[CLEANUP14]]
4748
; CHECK: cleanup14:
48-
; CHECK-NEXT: br i1 false, label [[FOR_INC17:%.*]], label [[CLEANUP20:%.*]]
49+
; CHECK-NEXT: [[CLEANUP_DEST15:%.*]] = phi i32 [ 0, [[FOR_END13]] ], [ [[CLEANUP_DEST]], [[CLEANUP]] ], [ 1, [[FOR_BODY4]] ]
50+
; CHECK-NEXT: [[COND1:%.*]] = icmp eq i32 [[CLEANUP_DEST15]], 0
51+
; CHECK-NEXT: br i1 [[COND1]], label [[FOR_INC17]], label [[CLEANUP20:%.*]]
4952
; CHECK: for.inc17:
50-
; CHECK-NEXT: store i8 poison, ptr null, align 1
53+
; CHECK-NEXT: [[INC18]] = add nsw i32 [[TMP0]], 1
5154
; CHECK-NEXT: br label [[FOR_COND1]]
5255
; CHECK: for.end19:
53-
; CHECK-NEXT: store i8 poison, ptr null, align 1
5456
; CHECK-NEXT: br label [[CLEANUP20]]
5557
; CHECK: cleanup20:
56-
; CHECK-NEXT: br i1 false, label [[FOR_COND]], label [[CLEANUP23:%.*]]
58+
; CHECK-NEXT: [[PHIOFOPS:%.*]] = phi i1 [ true, [[FOR_BODY_FOR_COND4_CRIT_EDGE]] ], [ [[COND1]], [[CLEANUP14]] ]
59+
; CHECK-NEXT: [[CLEANUP_DEST21:%.*]] = phi i32 [ [[CLEANUP_DEST15]], [[CLEANUP14]] ], [ 0, [[FOR_BODY_FOR_COND4_CRIT_EDGE]] ]
60+
; CHECK-NEXT: br i1 [[PHIOFOPS]], label [[FOR_COND]], label [[CLEANUP23:%.*]]
5761
; CHECK: cleanup23:
5862
; CHECK-NEXT: ret void
5963
;
@@ -78,7 +82,7 @@ for.body3: ; preds = %for.body
7882
br label %cleanup14
7983

8084
for.cond4: ; preds = %cleanup, %for.body.for.cond4_crit_edge
81-
br i1 %arg, label %if.then, label %if.end
85+
br i1 %arg2, label %if.then, label %if.end
8286

8387
if.then: ; preds = %for.cond4
8488
br label %cleanup

0 commit comments

Comments
 (0)