11; RUN: opt -S -passes=loop-rotate -verify-memoryssa < %s | FileCheck %s
22
33; CHECK-LABEL: @multiedge(
4- define void @multiedge () {
4+ define void @multiedge (i1 %arg , i32 %arg2 ) {
55entry:
66 br label %retry
77
88retry: ; preds = %sw.epilog, %entry
9- br i1 undef , label %cleanup , label %if.end
9+ br i1 %arg , label %cleanup , label %if.end
1010
1111if.end: ; preds = %retry
12- switch i32 undef , label %sw.epilog [
12+ switch i32 %arg2 , label %sw.epilog [
1313 i32 -3 , label %cleanup
1414 i32 -5 , label %cleanup
1515 i32 -16 , label %cleanup
@@ -24,14 +24,14 @@ cleanup: ; preds = %if.end, %if.end, %i
2424}
2525
2626; CHECK-LABEL: @read_line(
27- define internal fastcc i32 @read_line (ptr nocapture %f ) unnamed_addr {
27+ define internal fastcc i32 @read_line (ptr nocapture %f , i1 %arg ) unnamed_addr {
2828entry:
2929 br label %for.cond
3030
3131for.cond: ; preds = %if.end, %entry
3232 %call = call ptr @prepbuffer (ptr nonnull undef )
3333 %call1 = call ptr @fgets (ptr %call , i32 8192 , ptr %f )
34- br i1 undef , label %if.then , label %if.end
34+ br i1 %arg , label %if.then , label %if.end
3535
3636if.then: ; preds = %for.cond
3737 ret i32 undef
@@ -47,12 +47,12 @@ declare dso_local i64 @strlen(ptr nocapture) local_unnamed_addr
4747
4848
4949; CHECK-LABEL: @loop3
50- define dso_local fastcc void @loop3 () unnamed_addr {
50+ define dso_local fastcc void @loop3 (i1 %arg ) unnamed_addr {
5151entry:
5252 br label %for.cond
5353
5454for.cond: ; preds = %for.body, %entry
55- br i1 undef , label %for.body , label %for.end81
55+ br i1 %arg , label %for.body , label %for.end81
5656
5757for.body: ; preds = %for.cond
5858 %.idx122.val = load i32 , ptr undef , align 8
@@ -64,12 +64,12 @@ for.end81: ; preds = %for.cond
6464}
6565
6666; CHECK-LABEL: @loop4
67- define dso_local fastcc void @loop4 () unnamed_addr {
67+ define dso_local fastcc void @loop4 (i1 %arg ) unnamed_addr {
6868entry:
6969 br label %while.cond
7070
7171while.cond: ; preds = %while.body, %entry
72- br i1 undef , label %while.end , label %while.body
72+ br i1 %arg , label %while.end , label %while.body
7373
7474while.body: ; preds = %while.cond
7575 call fastcc void @cont ()
@@ -87,7 +87,7 @@ declare dso_local fastcc void @cont() unnamed_addr
8787@glob_array = internal unnamed_addr constant [3 x i32 ] [i32 1 , i32 0 , i32 2 ], align 4
8888; Test against failure in MemorySSAUpdater, when rotate clones instructions as Value.
8989; CHECK-LABEL: @loop5
90- define dso_local fastcc void @loop5 () unnamed_addr {
90+ define dso_local fastcc void @loop5 (i1 %arg ) unnamed_addr {
9191entry:
9292 br label %for.body
9393
@@ -98,7 +98,7 @@ for.body: ; preds = %if.end, %entry
9898 %indvar = phi i64 [ %indvar.next , %if.end ], [ 0 , %entry ]
9999 %array = getelementptr inbounds [3 x i32 ], ptr @glob_array , i64 0 , i64 %indvar
100100 %0 = load i32 , ptr %array , align 4
101- br i1 undef , label %do.cond , label %if.end
101+ br i1 %arg , label %do.cond , label %if.end
102102
103103if.end: ; preds = %for.body
104104 store i32 undef , ptr undef , align 4
0 commit comments