@@ -10,38 +10,38 @@ 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 , i1 %arg2 ) {
13+ define fastcc void @foo (ptr nocapture readonly %x , i1 %arg , i1 %arg2 , i1 %arg3 , i1 %arg4 ) {
1414; CHECK-LABEL: define fastcc void @foo(
15- ; CHECK-SAME: ptr nocapture readonly [[X:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]]) {
15+ ; CHECK-SAME: ptr nocapture readonly [[X:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]], i1 [[ARG3:%.*]], i1 [[ARG4:%.*]] ) {
1616; CHECK-NEXT: entry:
1717; CHECK-NEXT: br label [[BB0:%.*]]
1818; CHECK: bb0:
19- ; CHECK-NEXT: [[TMP0:%.*]] = load i16, ptr [[X]], align 4
19+ ; CHECK-NEXT: [[X_TR:%.*]] = phi ptr [ [[X]], [[ENTRY:%.*]] ], [ null, [[LAND_LHS_TRUE:%.*]] ]
20+ ; CHECK-NEXT: [[TMP0:%.*]] = load i16, ptr [[X_TR]], align 4
2021; CHECK-NEXT: [[CONV:%.*]] = zext i16 [[TMP0]] to i32
2122; CHECK-NEXT: switch i32 [[CONV]], label [[IF_END_50:%.*]] [
2223; CHECK-NEXT: i32 43, label [[CLEANUP:%.*]]
2324; CHECK-NEXT: i32 52, label [[IF_THEN_5:%.*]]
2425; CHECK-NEXT: ]
2526; CHECK: if.then.5:
26- ; CHECK-NEXT: br i1 [[ARG]], label [[LAND_LHS_TRUE:%.* ]], label [[IF_THEN_26:%.*]]
27+ ; CHECK-NEXT: br i1 [[ARG]], label [[LAND_LHS_TRUE]], label [[IF_THEN_26:%.*]]
2728; CHECK: land.lhs.true:
28- ; CHECK-NEXT: br i1 true , label [[CLEANUP]], label [[BB0]]
29+ ; CHECK-NEXT: br i1 [[ARG2]] , label [[CLEANUP]], label [[BB0]]
2930; CHECK: if.then.26:
30- ; CHECK-NEXT: br i1 false , label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
31+ ; CHECK-NEXT: br i1 [[ARG3]] , label [[COND_END:%.*]], label [[COND_FALSE:%.*]]
3132; CHECK: cond.false:
32- ; CHECK-NEXT: [[MODE:%.*]] = getelementptr inbounds [[STRUCT_A:%.*]], ptr [[X ]], i32 0, i32 1
33+ ; CHECK-NEXT: [[MODE:%.*]] = getelementptr inbounds [[STRUCT_A:%.*]], ptr [[X_TR ]], i32 0, i32 1
3334; CHECK-NEXT: [[BF_LOAD:%.*]] = load i16, ptr [[MODE]], align 2
3435; CHECK-NEXT: br label [[COND_END]]
3536; CHECK: cond.end:
36- ; CHECK-NEXT: br i1 [[ARG2 ]], label [[IF_THEN_44:%.*]], label [[CLEANUP]]
37+ ; CHECK-NEXT: br i1 [[ARG3 ]], label [[IF_THEN_44:%.*]], label [[CLEANUP]]
3738; CHECK: if.then.44:
3839; CHECK-NEXT: unreachable
3940; CHECK: if.end.50:
4041; CHECK-NEXT: [[ARRAYIDX52:%.*]] = getelementptr inbounds [0 x i32], ptr @length, i32 0, i32 [[CONV]]
4142; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARRAYIDX52]], align 4
42- ; CHECK-NEXT: br i1 false , label [[FOR_BODY_57:%.*]], label [[CLEANUP]]
43+ ; CHECK-NEXT: br i1 [[ARG4]] , label [[FOR_BODY_57:%.*]], label [[CLEANUP]]
4344; CHECK: for.body.57:
44- ; CHECK-NEXT: store i8 poison, ptr null, align 1
4545; CHECK-NEXT: unreachable
4646; CHECK: cleanup:
4747; CHECK-NEXT: ret void
@@ -62,11 +62,11 @@ if.then.5: ; preds = %bb0
6262 br i1 %arg , label %land.lhs.true , label %if.then.26
6363
6464land.lhs.true: ; preds = %if.then.5
65- br i1 true , label %cleanup , label %bb0
65+ br i1 %arg2 , label %cleanup , label %bb0
6666
6767if.then.26 : ; preds = %if.then.5
6868 %x.tr.lcssa163 = phi ptr [ %x.tr , %if.then.5 ]
69- br i1 %arg , label %cond.end , label %cond.false
69+ br i1 %arg3 , label %cond.end , label %cond.false
7070
7171cond.false: ; preds = %if.then.26
7272 %mode = getelementptr inbounds %struct.a , ptr %x.tr.lcssa163 , i32 0 , i32 1
@@ -75,7 +75,7 @@ cond.false: ; preds = %if.then.26
7575 br label %cond.end
7676
7777cond.end: ; preds = %cond.false, %if.then.26
78- br i1 %arg2 , label %if.then.44 , label %cleanup
78+ br i1 %arg3 , label %if.then.44 , label %cleanup
7979
8080if.then.44 : ; preds = %cond.end
8181 unreachable
@@ -84,7 +84,7 @@ if.end.50: ; preds = %bb0
8484 %conv.lcssa = phi i32 [ %conv , %bb0 ]
8585 %arrayidx52 = getelementptr inbounds [0 x i32 ], ptr @length , i32 0 , i32 %conv.lcssa
8686 %1 = load i32 , ptr %arrayidx52 , align 4
87- br i1 false , label %for.body.57 , label %cleanup
87+ br i1 %arg4 , label %for.body.57 , label %cleanup
8888
8989for.body.57 : ; preds = %if.end.50
9090 %i.2157 = add nsw i32 %1 , -1
0 commit comments