; Mem2reg used to only add one incoming value to a PHI node, even if it had
; multiple incoming edges from a block.
;
-; RUN: as < %s | opt -mem2reg -disable-output
+; RUN: opt < %s -mem2reg -disable-output
-int %test(bool %c1, bool %c2) {
- %X = alloca int
- br bool %c1, label %Exit, label %B2
-B2:
- store int 2, int* %X
- br bool %c2, label %Exit, label %Exit
-Exit:
- %Y = load int *%X
- ret int %Y
+define i32 @test(i1 %c1, i1 %c2) {
+ %X = alloca i32 ; <i32*> [#uses=2]
+ br i1 %c1, label %Exit, label %B2
+B2: ; preds = %0
+ store i32 2, i32* %X
+ br i1 %c2, label %Exit, label %Exit
+Exit: ; preds = %B2, %B2, %0
+ %Y = load i32, i32* %X ; <i32> [#uses=1]
+ ret i32 %Y
}
+