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 (i1 %arg ) {
12+ define void @g (i1 %arg , i1 %arg2 , i1 %arg3 ) {
1313; CHECK-LABEL: @g(
1414; CHECK-NEXT: entry:
1515; CHECK-NEXT: br i1 [[ARG:%.*]], label [[FOR_COND1THREAD_PRE_SPLIT:%.*]], label [[FOR_COND_PREHEADER:%.*]]
@@ -18,21 +18,24 @@ define void @g(i1 %arg) {
1818; CHECK: for.cond1thread-pre-split:
1919; CHECK-NEXT: br label [[FOR_END4_SPLIT:%.*]]
2020; CHECK: for.end4.split:
21- ; CHECK-NEXT: br i1 true , label [[FOR_COND6_PREHEADER:%.*]], label [[IF_END11:%.*]]
21+ ; CHECK-NEXT: br i1 [[ARG2:%.*]] , label [[FOR_COND6_PREHEADER:%.*]], label [[IF_END11:%.*]]
2222; CHECK: for.cond6.preheader:
23- ; CHECK-NEXT: br i1 true , label [[FOR_COND6_PREHEADER3:%.*]], label [[IF_END11_LOOPEXIT:%.*]]
23+ ; CHECK-NEXT: br i1 [[ARG3:%.*]] , label [[FOR_COND6_PREHEADER3:%.*]], label [[IF_END11_LOOPEXIT:%.*]]
2424; CHECK: for.cond6.preheader3:
2525; CHECK-NEXT: br label [[IF_END11_LOOPEXIT]]
2626; CHECK: if.end11.loopexit:
27- ; CHECK-NEXT: store i32 1, ptr @b, align 4
27+ ; CHECK-NEXT: [[STOREMERGE_LCSSA:%.*]] = phi i32 [ 0, [[FOR_COND6_PREHEADER]] ], [ 1, [[FOR_COND6_PREHEADER3]] ]
28+ ; CHECK-NEXT: store i32 [[STOREMERGE_LCSSA]], ptr @b, align 4
2829; CHECK-NEXT: br label [[IF_END11]]
2930; CHECK: if.end11:
31+ ; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr @b, align 4
3032; CHECK-NEXT: [[TMP1:%.*]] = load i8, ptr @a, align 1
3133; CHECK-NEXT: [[CONV:%.*]] = sext i8 [[TMP1]] to i32
32- ; CHECK-NEXT: [[CMP12:%.*]] = icmp eq i32 1 , [[CONV]]
34+ ; CHECK-NEXT: [[CMP12:%.*]] = icmp eq i32 [[TMP0]] , [[CONV]]
3335; CHECK-NEXT: br i1 [[CMP12]], label [[IF_THEN14:%.*]], label [[IF_END16:%.*]]
3436; CHECK: if.then14:
35- ; CHECK-NEXT: store i16 1, ptr @f, align 2
37+ ; CHECK-NEXT: [[CONV15:%.*]] = trunc i32 [[TMP0]] to i16
38+ ; CHECK-NEXT: store i16 [[CONV15]], ptr @f, align 2
3639; CHECK-NEXT: unreachable
3740; CHECK: if.end16:
3841; CHECK-NEXT: ret void
@@ -47,10 +50,10 @@ for.cond1thread-pre-split: ; preds = %entry
4750 br label %for.end4.split
4851
4952for.end4.split: ; preds = %for.cond1thread-pre-split
50- br i1 true , label %for.cond6.preheader , label %if.end11
53+ br i1 %arg2 , label %for.cond6.preheader , label %if.end11
5154
5255for.cond6.preheader: ; preds = %for.end4.split
53- br i1 %arg , label %for.cond6.preheader3 , label %if.end11.loopexit
56+ br i1 %arg3 , label %for.cond6.preheader3 , label %if.end11.loopexit
5457
5558for.cond6.preheader3: ; preds = %for.cond6.preheader
5659 br label %if.end11.loopexit
0 commit comments