Simplify some getNode calls.
[oota-llvm.git] / test / Transforms / LICM / sink_multiple_exits.ll
index d7f1514a4e9f4960473fb31a954c9791a2d97a2b..2882fa4b0af7ef215def322e316b80b4afd1f97e 100644 (file)
@@ -1,22 +1,24 @@
 ; This testcase ensures that we can sink instructions from loops with
 ; multiple exits.
 ;
-; RUN: llvm-as < %s | opt -licm | llvm-dis | %prcontext mul 1 | grep 'Out[12]:'
+; RUN: llvm-as < %s | opt -licm | llvm-dis | \
+; RUN:    %prcontext mul 1 | grep {Out\[12\]:}
 
-int %test(int %N, bool %C) {
+define i32 @test(i32 %N, i1 %C) {
 Entry:
        br label %Loop
-Loop:
-        %N_addr.0.pn = phi int [ %dec, %ContLoop ], [ %N, %Entry ]
-        %tmp.6 = mul int %N, %N_addr.0.pn
-        %tmp.7 = sub int %tmp.6, %N
-        %dec = add int %N_addr.0.pn, -1
-        br bool %C, label %ContLoop, label %Out1
-ContLoop:
-        %tmp.1 = setne int %N_addr.0.pn, 1
-        br bool %tmp.1, label %Loop, label %Out2
-Out1:
-       ret int %tmp.7
-Out2:
-        ret int %tmp.7
+Loop:          ; preds = %ContLoop, %Entry
+       %N_addr.0.pn = phi i32 [ %dec, %ContLoop ], [ %N, %Entry ]              ; <i32> [#uses=3]
+       %tmp.6 = mul i32 %N, %N_addr.0.pn               ; <i32> [#uses=1]
+       %tmp.7 = sub i32 %tmp.6, %N             ; <i32> [#uses=2]
+       %dec = add i32 %N_addr.0.pn, -1         ; <i32> [#uses=1]
+       br i1 %C, label %ContLoop, label %Out1
+ContLoop:              ; preds = %Loop
+       %tmp.1 = icmp ne i32 %N_addr.0.pn, 1            ; <i1> [#uses=1]
+       br i1 %tmp.1, label %Loop, label %Out2
+Out1:          ; preds = %Loop
+       ret i32 %tmp.7
+Out2:          ; preds = %ContLoop
+       ret i32 %tmp.7
 }
+