Add a test for PR4413, which was apparently fixed at some point in the past.
authorOwen Anderson <resistor@mac.com>
Fri, 3 Sep 2010 18:33:08 +0000 (18:33 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 3 Sep 2010 18:33:08 +0000 (18:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112987 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/phi.ll

index fc321e968224c5caf5f0926217894658efd6473a..c6c3f2ff6a687187569003c0feb8a4ce1b96f032 100644 (file)
@@ -402,3 +402,24 @@ if.else:                                          ; preds = %entry
   store i32 %tmp5, i32* %res
   br label %if.end
 }
+
+; PR4413
+declare i32 @ext()
+; CHECK: @test17
+define i32 @test17(i1 %a) {
+entry:
+    br i1 %a, label %bb1, label %bb2
+
+bb1:        ; preds = %entry
+    %0 = tail call i32 @ext()        ; <i32> [#uses=1]
+    br label %bb2
+
+bb2:        ; preds = %bb1, %entry
+    %cond = phi i1 [ true, %bb1 ], [ false, %entry ]        ; <i1> [#uses=1]
+; CHECK-NOT: %val = phi i32 [ %0, %bb1 ], [ 0, %entry ]
+    %val = phi i32 [ %0, %bb1 ], [ 0, %entry ]        ; <i32> [#uses=1]
+    %res = select i1 %cond, i32 %val, i32 0        ; <i32> [#uses=1]
+; CHECK: ret i32 %cond
+    ret i32 %res
+}
+