blob: 5b5a3042eb62446d17cd8e898a0bfaeab5349563 [file] [log] [blame]
Tanya Lattner4c4d0b82008-03-01 09:15:35 +00001; RUN: llvm-as < %s | opt -condprop | llvm-dis | not grep phi
Dan Gohmanf17a25c2007-07-18 16:29:46 +00002
Tanya Lattner4c4d0b82008-03-01 09:15:35 +00003define i32 @test(i32 %C, i1 %Val) {
4 switch i32 %C, label %T1 [
5 i32 4, label %T2
6 i32 17, label %T3
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007 ]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00008
Tanya Lattner4c4d0b82008-03-01 09:15:35 +00009T1: ; preds = %0
10 call void @a( )
11 br label %Cont
12
13T2: ; preds = %0
14 call void @b( )
15 br label %Cont
16
17T3: ; preds = %0
18 call void @c( )
19 br label %Cont
20
21Cont: ; preds = %T3, %T2, %T1
22 ;; PHI becomes dead after threading T2
23 %C2 = phi i1 [ %Val, %T1 ], [ true, %T2 ], [ %Val, %T3 ] ; <i1> [#uses=1]
24 br i1 %C2, label %L2, label %F2
25
26L2: ; preds = %Cont
27 call void @d( )
28 ret i32 17
29
30F2: ; preds = %Cont
31 call void @e( )
32 ret i32 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +000033}
Tanya Lattner4c4d0b82008-03-01 09:15:35 +000034
35declare void @a()
36
37declare void @b()
38
39declare void @c()
40
41declare void @d()
42
43declare void @e()