Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / LICM / 2006-09-12-DeadUserOfSunkInstr.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -licm -disable-output
2 ; PR908
3
4         %struct.alloc_chain = type { sbyte*, %struct.alloc_chain* }
5         %struct.oggpack_buffer = type { int, int, ubyte*, ubyte*, int }
6         %struct.vorbis_block = type { float**, %struct.oggpack_buffer, int, int, int, int, int, int, long, long, %struct.vorbis_dsp_state*, sbyte*, int, int, int, %struct.alloc_chain*, int, int, int, int, sbyte* }
7         %struct.vorbis_dsp_state = type { int, %struct.vorbis_info*, float**, float**, int, int, int, int, int, int, int, int, int, long, long, long, long, long, long, sbyte* }
8         %struct.vorbis_info = type { int, int, int, int, int, int, int, sbyte* }
9
10 implementation   ; Functions:
11
12 fastcc void %_01forward() {
13 entry:
14         br bool false, label %bb222.preheader, label %bb241
15
16 cond_true67:            ; preds = %cond_true87
17         br label %cond_next80
18
19 cond_next80:            ; preds = %cond_true87, %cond_true67
20         br label %bb83
21
22 bb83.preheader:         ; preds = %cond_true226
23         br bool false, label %bb83.us.preheader, label %bb83.preheader1
24
25 bb83.us.preheader:              ; preds = %bb83.preheader
26         br label %bb83.us
27
28 bb83.us:                ; preds = %cond_next80.us, %bb83.us.preheader
29         br bool false, label %cond_true87.us, label %cond_next92.loopexit2
30
31 cond_next80.us:         ; preds = %bb59.loopexit.us, %cond_true67.us
32         br label %bb83.us
33
34 cond_true67.us:         ; preds = %bb59.loopexit.us
35         br label %cond_next80.us
36
37 cond_next.us:           ; preds = %cond_true56.us, %cond_true38.us
38         br bool false, label %cond_true56.us, label %bb59.loopexit.us
39
40 cond_true38.us:         ; preds = %cond_true56.us
41         br label %cond_next.us
42
43 cond_true56.us:         ; preds = %cond_true87.us, %cond_next.us
44         br bool false, label %cond_true38.us, label %cond_next.us
45
46 cond_true87.us:         ; preds = %bb83.us
47         br label %cond_true56.us
48
49 bb59.loopexit.us:               ; preds = %cond_next.us
50         br bool false, label %cond_true67.us, label %cond_next80.us
51
52 bb83.preheader1:                ; preds = %bb83.preheader
53         br label %bb83
54
55 bb83:           ; preds = %bb83.preheader1, %cond_next80
56         br bool false, label %cond_next92.loopexit, label %cond_true87
57
58 cond_true87:            ; preds = %bb83
59         br bool false, label %cond_true67, label %cond_next80
60
61 cond_next92.loopexit:           ; preds = %bb83
62         br label %cond_next92
63
64 cond_next92.loopexit2:          ; preds = %bb83.us
65         br label %cond_next92
66
67 cond_next92:            ; preds = %cond_true226, %cond_next92.loopexit2, %cond_next92.loopexit
68         br bool false, label %cond_true218.loopexit, label %bb222
69
70 cond_true139:           ; preds = %cond_true202
71         br bool false, label %cond_next195, label %cond_true155
72
73 cond_true155:           ; preds = %cond_true139
74         br bool false, label %cond_true249.i.preheader, label %_encodepart.exit
75
76 cond_true.i:            ; preds = %cond_true115.i
77         br bool false, label %bb60.i.preheader, label %cond_next97.i
78
79 bb60.i.preheader:               ; preds = %cond_true.i
80         br label %bb60.i
81
82 bb60.i:         ; preds = %cond_true63.i, %bb60.i.preheader
83         br bool false, label %cond_true63.i, label %cond_next97.i.loopexit
84
85 cond_true63.i:          ; preds = %bb60.i
86         br bool false, label %bb60.i, label %cond_next97.i.loopexit
87
88 bb86.i.preheader:               ; preds = %cond_true115.i
89         br label %bb86.i
90
91 bb86.i:         ; preds = %cond_true93.i, %bb86.i.preheader
92         br bool false, label %cond_true93.i, label %cond_next97.i.loopexit3
93
94 cond_true93.i:          ; preds = %bb86.i
95         br bool false, label %cond_next97.i.loopexit3, label %bb86.i
96
97 cond_next97.i.loopexit:         ; preds = %cond_true63.i, %bb60.i
98         br label %cond_next97.i
99
100 cond_next97.i.loopexit3:                ; preds = %cond_true93.i, %bb86.i
101         br label %cond_next97.i
102
103 cond_next97.i:          ; preds = %cond_next97.i.loopexit3, %cond_next97.i.loopexit, %cond_true.i
104         br bool false, label %bb118.i.loopexit, label %cond_true115.i
105
106 cond_true115.i.preheader:               ; preds = %cond_true249.i
107         br label %cond_true115.i
108
109 cond_true115.i:         ; preds = %cond_true115.i.preheader, %cond_next97.i
110         br bool false, label %cond_true.i, label %bb86.i.preheader
111
112 bb118.i.loopexit:               ; preds = %cond_next97.i
113         br label %bb118.i
114
115 bb118.i:                ; preds = %cond_true249.i, %bb118.i.loopexit
116         br bool false, label %cond_next204.i, label %cond_true128.i
117
118 cond_true128.i:         ; preds = %bb118.i
119         br bool false, label %cond_true199.i.preheader, label %cond_next204.i
120
121 cond_true199.i.preheader:               ; preds = %cond_true128.i
122         br label %cond_true199.i
123
124 cond_true199.i.us:              ; No predecessors!
125         br bool false, label %cond_true167.i.us, label %cond_next187.i.us
126
127 cond_next187.i.us:              ; preds = %bb170.i.loopexit.us, %bb170.i.us.cond_next187.i.us_crit_edge, %cond_true199.i.us
128         unreachable
129
130 bb170.i.us.cond_next187.i.us_crit_edge:         ; preds = %bb170.i.loopexit.us
131         br label %cond_next187.i.us
132
133 cond_true167.i.us:              ; preds = %cond_true167.i.us, %cond_true199.i.us
134         br bool false, label %cond_true167.i.us, label %bb170.i.loopexit.us
135
136 bb170.i.loopexit.us:            ; preds = %cond_true167.i.us
137         br bool false, label %cond_next187.i.us, label %bb170.i.us.cond_next187.i.us_crit_edge
138
139 cond_true199.i:         ; preds = %cond_true199.i, %cond_true199.i.preheader
140         br bool false, label %cond_next204.i.loopexit, label %cond_true199.i
141
142 cond_next204.i.loopexit:                ; preds = %cond_true199.i
143         br label %cond_next204.i
144
145 cond_next204.i:         ; preds = %cond_next204.i.loopexit, %cond_true128.i, %bb118.i
146         br label %bb233.i
147
148 cond_true230.i:         ; No predecessors!
149         %exitcond155 = seteq uint 0, %tmp16.i           ; <bool> [#uses=0]
150         unreachable
151
152 bb233.i:                ; preds = %cond_next204.i
153         br bool false, label %_encodepart.exit.loopexit, label %cond_true249.i
154
155 cond_true249.i.preheader:               ; preds = %cond_true155
156         br label %cond_true249.i
157
158 cond_true249.i:         ; preds = %cond_true249.i.preheader, %bb233.i
159         %tmp16.i = cast int 0 to uint           ; <uint> [#uses=1]
160         br bool false, label %cond_true115.i.preheader, label %bb118.i
161
162 _encodepart.exit.loopexit:              ; preds = %bb233.i
163         br label %_encodepart.exit
164
165 _encodepart.exit:               ; preds = %_encodepart.exit.loopexit, %cond_true155
166         br label %cond_next195
167
168 cond_next195:           ; preds = %cond_true202, %_encodepart.exit, %cond_true139
169         br bool false, label %bb205.loopexit, label %cond_true202
170
171 cond_true202.preheader:         ; preds = %cond_true218
172         br label %cond_true202
173
174 cond_true202:           ; preds = %cond_true202.preheader, %cond_next195
175         br bool false, label %cond_next195, label %cond_true139
176
177 bb205.loopexit:         ; preds = %cond_next195
178         br label %bb205
179
180 bb205:          ; preds = %cond_true218, %bb205.loopexit
181         br bool false, label %cond_true218, label %bb222.outer105.loopexit
182
183 cond_true218.loopexit:          ; preds = %cond_next92
184         br label %cond_true218
185
186 cond_true218:           ; preds = %cond_true218.loopexit, %bb205
187         br bool false, label %cond_true202.preheader, label %bb205
188
189 bb222.preheader:                ; preds = %entry
190         br label %bb222.outer
191
192 bb222.outer:            ; preds = %bb229, %bb222.preheader
193         br label %bb222.outer105
194
195 bb222.outer105.loopexit:                ; preds = %bb205
196         br label %bb222.outer105
197
198 bb222.outer105:         ; preds = %bb222.outer105.loopexit, %bb222.outer
199         br label %bb222
200
201 bb222:          ; preds = %bb222.outer105, %cond_next92
202         br bool false, label %cond_true226, label %bb229
203
204 cond_true226:           ; preds = %bb222
205         br bool false, label %bb83.preheader, label %cond_next92
206
207 bb229:          ; preds = %bb222
208         br bool false, label %bb222.outer, label %bb241.loopexit
209
210 bb241.loopexit:         ; preds = %bb229
211         br label %bb241
212
213 bb241:          ; preds = %bb241.loopexit, %entry
214         ret void
215 }