-; RUN: llvm-upgrade < %s | llvm-as | opt -condprop | llvm-dis | not grep phi
+; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
-declare bool %foo()
+declare i1 @foo()
-int %test(uint %C) {
- %Val = call bool %foo()
- switch uint %C, label %T1 [
- uint 4, label %T2
- uint 17, label %T3
+define i32 @test(i32 %C) {
+ %Val = call i1 @foo( ) ; <i1> [#uses=2]
+ switch i32 %C, label %T1 [
+ i32 4, label %T2
+ i32 17, label %T3
]
-T1:
- call void %a()
- br label %Cont
-T2:
- call void %b()
- br label %Cont
-T3:
- call void %c()
- br label %Cont
-
-Cont:
- ;; PHI becomes dead after threading T2
- %C2 = phi bool [%Val, %T1], [true, %T2], [%Val, %T3]
- br bool %C2, label %L2, label %F2
-L2:
- call void %d()
- ret int 17
-F2:
- call void %e()
- ret int 1
+
+T1: ; preds = %0
+ call void @a( )
+ br label %Cont
+
+T2: ; preds = %0
+ call void @b( )
+ br label %Cont
+
+T3: ; preds = %0
+ call void @c( )
+ br label %Cont
+
+Cont: ; preds = %T3, %T2, %T1
+ ;; PHI becomes dead after threading T2
+ %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ] ; <i1> [#uses=1]
+ br i1 %C2, label %L2, label %F2
+
+L2: ; preds = %Cont
+ call void @d( )
+ ret i32 17
+
+F2: ; preds = %Cont
+ call void @e( )
+ ret i32 1
}
-declare void %a()
-declare void %b()
-declare void %c()
-declare void %d()
-declare void %e()
+
+declare void @a()
+
+declare void @b()
+
+declare void @c()
+
+declare void @d()
+
+declare void @e()