Fix spelling and grammar in a comment.
[oota-llvm.git] / test / Transforms / CondProp / phisimplify2.ll
1 ; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
2
3 declare i1 @foo()
4
5 define i32 @test(i32 %C) {
6         %Val = call i1 @foo( )          ; <i1> [#uses=2]
7         switch i32 %C, label %T1 [
8                  i32 4, label %T2
9                  i32 17, label %T3
10         ]
11
12 T1:             ; preds = %0
13         call void @a( )
14         br label %Cont
15
16 T2:             ; preds = %0
17         call void @b( )
18         br label %Cont
19
20 T3:             ; preds = %0
21         call void @c( )
22         br label %Cont
23
24 Cont:           ; preds = %T3, %T2, %T1
25         ;; PHI becomes dead after threading T2
26         %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ]                ; <i1> [#uses=1]
27         br i1 %C2, label %L2, label %F2
28
29 L2:             ; preds = %Cont
30         call void @d( )
31         ret i32 17
32
33 F2:             ; preds = %Cont
34         call void @e( )
35         ret i32 1
36 }
37
38 declare void @a()
39
40 declare void @b()
41
42 declare void @c()
43
44 declare void @d()
45
46 declare void @e()