DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable
[oota-llvm.git] / test / Transforms / InstCombine / fold-phi.ll
index 7954caf9754c5c763f5240ce3cf7a47c1b5235f6..c6bb1b36335bc46f88b0c2eb85f4f6d11c595042 100644 (file)
@@ -18,29 +18,22 @@ end:
 }
 
 ; CHECK-LABEL: @pr21377(
-define void @pr21377(i32, i32) {
+define void @pr21377(i32) {
 entry:
-  br label %while.cond.i
-
-while.cond.i:                                     ; preds = %while.end.i, %entry
-  %g.0.i = phi i64 [ 0, %entry ], [ %phitmp5.i, %while.end.i ]
-  br i1 undef, label %fn2.exit, label %while.body.i
-
-while.body.i:                                     ; preds = %while.cond.i
-  %conv.i = zext i32 %0 to i64
-  %phitmp3.i = or i64 %g.0.i, %conv.i
-  br label %while.cond3.i
-
-while.cond3.i:                                    ; preds = %while.cond3.i, %while.body.i
-  %g.1.i = phi i64 [ %phitmp3.i, %while.body.i ], [ 0, %while.cond3.i ]
-  br i1 undef, label %while.end.i, label %while.cond3.i
-
-while.end.i:                                      ; preds = %while.cond3.i
-  %conv.i.i = zext i32 %1 to i64
-  %or7.i = or i64 %g.1.i, %conv.i.i
-  %phitmp5.i = and i64 %or7.i, 4294967295
-  br label %while.cond.i
-
-fn2.exit:                                         ; preds = %while.cond.i
-  ret void
+  br label %while.body
+
+while.body:                                       ; preds = %if.end, %entry
+  %phi1 = phi i64 [ undef, %entry ], [ %or2, %if.end ]
+  %zext = zext i32 %0 to i64
+  br i1 undef, label %if.end, label %if.else
+
+if.else:                                          ; preds = %while.body
+  %or1 = or i64 %phi1, %zext
+  %and = and i64 %or1, 4294967295
+  br label %if.end
+
+if.end:                                           ; preds = %if.else, %while.body
+  %phi2 = phi i64 [ %and, %if.else ], [ undef, %while.body ]
+  %or2 = or i64 %phi2, %zext
+  br label %while.body
 }