@@ -143,7 +143,7 @@ bb2: ; preds = %bb1.bb2_crit_edge,
143143
144144; Check phi update for loop with an early-exit.
145145;
146- define i32 @test3 () nounwind uwtable ssp align 2 {
146+ define i32 @test3 (i1 %arg ) nounwind uwtable ssp align 2 {
147147;
148148; CHECK-LABEL: @test3(
149149; CHECK-NEXT: entry:
@@ -156,9 +156,9 @@ define i32 @test3() nounwind uwtable ssp align 2 {
156156; CHECK-NEXT: br i1 [[COND2]], label [[EXIT:%.*]], label [[DO_COND:%.*]]
157157; CHECK: exit:
158158; CHECK-NEXT: [[TMP7_I:%.*]] = load i32, ptr undef, align 8
159- ; CHECK-NEXT: br i1 undef , label [[DO_COND]], label [[LAND_LHS_TRUE:%.*]]
159+ ; CHECK-NEXT: br i1 [[ARG:%.*]] , label [[DO_COND]], label [[LAND_LHS_TRUE:%.*]]
160160; CHECK: land.lhs.true:
161- ; CHECK-NEXT: br i1 true , label [[RETURN_LOOPEXIT:%.*]], label [[DO_COND]]
161+ ; CHECK-NEXT: br i1 [[ARG]] , label [[RETURN_LOOPEXIT:%.*]], label [[DO_COND]]
162162; CHECK: do.cond:
163163; CHECK-NEXT: [[COND3:%.*]] = call zeroext i1 @check()
164164; CHECK-NEXT: br i1 [[COND3]], label [[DO_END:%.*]], label [[DO_BODY_1:%.*]]
@@ -167,9 +167,9 @@ define i32 @test3() nounwind uwtable ssp align 2 {
167167; CHECK-NEXT: br i1 [[COND2_1]], label [[EXIT_1:%.*]], label [[DO_COND_1:%.*]]
168168; CHECK: exit.1:
169169; CHECK-NEXT: [[TMP7_I_1:%.*]] = load i32, ptr undef, align 8
170- ; CHECK-NEXT: br i1 undef , label [[DO_COND_1]], label [[LAND_LHS_TRUE_1:%.*]]
170+ ; CHECK-NEXT: br i1 [[ARG]] , label [[DO_COND_1]], label [[LAND_LHS_TRUE_1:%.*]]
171171; CHECK: land.lhs.true.1:
172- ; CHECK-NEXT: br i1 true , label [[RETURN_LOOPEXIT]], label [[DO_COND_1]]
172+ ; CHECK-NEXT: br i1 [[ARG]] , label [[RETURN_LOOPEXIT]], label [[DO_COND_1]]
173173; CHECK: do.cond.1:
174174; CHECK-NEXT: [[COND3_1:%.*]] = call zeroext i1 @check()
175175; CHECK-NEXT: br i1 [[COND3_1]], label [[DO_END]], label [[DO_BODY_2:%.*]]
@@ -178,9 +178,9 @@ define i32 @test3() nounwind uwtable ssp align 2 {
178178; CHECK-NEXT: br i1 [[COND2_2]], label [[EXIT_2:%.*]], label [[DO_COND_2:%.*]]
179179; CHECK: exit.2:
180180; CHECK-NEXT: [[TMP7_I_2:%.*]] = load i32, ptr undef, align 8
181- ; CHECK-NEXT: br i1 undef , label [[DO_COND_2]], label [[LAND_LHS_TRUE_2:%.*]]
181+ ; CHECK-NEXT: br i1 [[ARG]] , label [[DO_COND_2]], label [[LAND_LHS_TRUE_2:%.*]]
182182; CHECK: land.lhs.true.2:
183- ; CHECK-NEXT: br i1 true , label [[RETURN_LOOPEXIT]], label [[DO_COND_2]]
183+ ; CHECK-NEXT: br i1 [[ARG]] , label [[RETURN_LOOPEXIT]], label [[DO_COND_2]]
184184; CHECK: do.cond.2:
185185; CHECK-NEXT: [[COND3_2:%.*]] = call zeroext i1 @check()
186186; CHECK-NEXT: br i1 [[COND3_2]], label [[DO_END]], label [[DO_BODY_3:%.*]]
@@ -189,9 +189,9 @@ define i32 @test3() nounwind uwtable ssp align 2 {
189189; CHECK-NEXT: br i1 [[COND2_3]], label [[EXIT_3:%.*]], label [[DO_COND_3:%.*]]
190190; CHECK: exit.3:
191191; CHECK-NEXT: [[TMP7_I_3:%.*]] = load i32, ptr undef, align 8
192- ; CHECK-NEXT: br i1 undef , label [[DO_COND_3]], label [[LAND_LHS_TRUE_3:%.*]]
192+ ; CHECK-NEXT: br i1 [[ARG]] , label [[DO_COND_3]], label [[LAND_LHS_TRUE_3:%.*]]
193193; CHECK: land.lhs.true.3:
194- ; CHECK-NEXT: br i1 true , label [[RETURN_LOOPEXIT]], label [[DO_COND_3]]
194+ ; CHECK-NEXT: br i1 [[ARG]] , label [[RETURN_LOOPEXIT]], label [[DO_COND_3]]
195195; CHECK: do.cond.3:
196196; CHECK-NEXT: [[COND3_3:%.*]] = call zeroext i1 @check()
197197; CHECK-NEXT: br i1 [[COND3_3]], label [[DO_END]], label [[DO_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
@@ -217,10 +217,10 @@ do.body: ; preds = %do.cond, %if.end
217217
218218exit: ; preds = %do.body
219219 %tmp7.i = load i32 , ptr undef , align 8
220- br i1 undef , label %do.cond , label %land.lhs.true
220+ br i1 %arg , label %do.cond , label %land.lhs.true
221221
222222land.lhs.true: ; preds = %exit
223- br i1 undef , label %return , label %do.cond
223+ br i1 %arg , label %return , label %do.cond
224224
225225do.cond: ; preds = %land.lhs.true, %exit, %do.body
226226 %cond3 = call zeroext i1 @check ()
0 commit comments