Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / CondProp / 2006-08-14-SingleEntryPhiCrash.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output
2 ; PR877
3
4 target endian = big
5 target pointersize = 32
6 target triple = "powerpc-apple-darwin9.0.0d1"
7         "struct.kc::impl_Ccode_option" = type { "struct.kc::impl_abstract_phylum" }
8         "struct.kc::impl_ID" = type { "struct.kc::impl_abstract_phylum", "struct.kc::impl_Ccode_option"*, "struct.kc::impl_casestring__Str"*, int, "struct.kc::impl_casestring__Str"* }
9         "struct.kc::impl_abstract_phylum" = type { int (...)** }
10         "struct.kc::impl_casestring__Str" = type { "struct.kc::impl_abstract_phylum", sbyte* }
11         "struct.kc::impl_elem_patternrepresentation" = type { "struct.kc::impl_abstract_phylum", int, "struct.kc::impl_casestring__Str"*, "struct.kc::impl_ID"* }
12         "struct.kc::impl_outmostpatterns" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_elem_patternrepresentation"*, "struct.kc::impl_outmostpatterns"* }
13         "struct.kc::impl_patternrepresentations" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_outmostpatterns"*, "struct.kc::impl_patternrepresentations"* }
14
15 implementation   ; Functions:
16
17 void %_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
18 entry:
19         br label %bb1269.outer.outer.outer.outer
20
21 cond_true:              ; preds = %cond_true1298
22         br label %bb1269.outer69
23
24 cond_false:             ; preds = %cond_true1298
25         br bool false, label %cond_next, label %bb51
26
27 cond_next:              ; preds = %cond_false
28         br bool false, label %bb52, label %bb51
29
30 bb51:           ; preds = %cond_next, %cond_false
31         br label %bb52
32
33 bb52:           ; preds = %bb51, %cond_next
34         br bool false, label %cond_false82, label %cond_true55
35
36 cond_true55:            ; preds = %bb52
37         br bool false, label %UnifiedReturnBlock, label %cond_true57
38
39 cond_true57:            ; preds = %cond_true55
40         br label %UnifiedReturnBlock
41
42 cond_false82:           ; preds = %bb52
43         br bool false, label %cond_next97, label %bb113
44
45 cond_next97:            ; preds = %cond_false82
46         br bool false, label %bb114, label %bb113
47
48 bb113:          ; preds = %cond_next97, %cond_false82
49         br label %bb114
50
51 bb114:          ; preds = %bb113, %cond_next97
52         br bool false, label %cond_false151, label %cond_true117
53
54 cond_true117:           ; preds = %bb114
55         br bool false, label %UnifiedReturnBlock, label %cond_true120
56
57 cond_true120:           ; preds = %cond_true117
58         br label %UnifiedReturnBlock
59
60 cond_false151:          ; preds = %bb114
61         br bool false, label %cond_next166, label %bb182
62
63 cond_next166:           ; preds = %cond_false151
64         br bool false, label %bb183, label %bb182
65
66 bb182:          ; preds = %cond_next166, %cond_false151
67         br label %bb183
68
69 bb183:          ; preds = %bb182, %cond_next166
70         br bool false, label %cond_false256, label %cond_true186
71
72 cond_true186:           ; preds = %bb183
73         br bool false, label %cond_true207, label %cond_false214
74
75 cond_true207:           ; preds = %cond_true186
76         br label %bb1269.outer38.backedge
77
78 bb1269.outer38.backedge:                ; preds = %cond_true545, %cond_true432, %cond_true320, %cond_true207
79         br label %bb1269.outer38
80
81 cond_false214:          ; preds = %cond_true186
82         br bool false, label %cond_true228, label %cond_false235
83
84 cond_true228:           ; preds = %cond_false214
85         br label %bb1269.outer21.backedge
86
87 bb1269.outer21.backedge:                ; preds = %cond_true566, %cond_true453, %cond_true341, %cond_true228
88         br label %bb1269.outer21
89
90 cond_false235:          ; preds = %cond_false214
91         br bool false, label %UnifiedReturnBlock, label %cond_false250
92
93 cond_false250:          ; preds = %cond_false235
94         br label %UnifiedUnreachableBlock
95
96 cond_false256:          ; preds = %bb183
97         br bool false, label %cond_next271, label %bb287
98
99 cond_next271:           ; preds = %cond_false256
100         br bool false, label %bb288, label %bb287
101
102 bb287:          ; preds = %cond_next271, %cond_false256
103         br label %bb288
104
105 bb288:          ; preds = %bb287, %cond_next271
106         br bool false, label %cond_false369, label %cond_true291
107
108 cond_true291:           ; preds = %bb288
109         br bool false, label %cond_true320, label %cond_false327
110
111 cond_true320:           ; preds = %cond_true291
112         br label %bb1269.outer38.backedge
113
114 cond_false327:          ; preds = %cond_true291
115         br bool false, label %cond_true341, label %cond_false348
116
117 cond_true341:           ; preds = %cond_false327
118         br label %bb1269.outer21.backedge
119
120 cond_false348:          ; preds = %cond_false327
121         br bool false, label %UnifiedReturnBlock, label %cond_false363
122
123 cond_false363:          ; preds = %cond_false348
124         br label %UnifiedUnreachableBlock
125
126 cond_false369:          ; preds = %bb288
127         br bool false, label %cond_next384, label %bb400
128
129 cond_next384:           ; preds = %cond_false369
130         br bool false, label %bb401, label %bb400
131
132 bb400:          ; preds = %cond_next384, %cond_false369
133         br label %bb401
134
135 bb401:          ; preds = %bb400, %cond_next384
136         br bool false, label %cond_false481, label %cond_true404
137
138 cond_true404:           ; preds = %bb401
139         br bool false, label %cond_true432, label %cond_false439
140
141 cond_true432:           ; preds = %cond_true404
142         br label %bb1269.outer38.backedge
143
144 cond_false439:          ; preds = %cond_true404
145         br bool false, label %cond_true453, label %cond_false460
146
147 cond_true453:           ; preds = %cond_false439
148         br label %bb1269.outer21.backedge
149
150 cond_false460:          ; preds = %cond_false439
151         br bool false, label %UnifiedReturnBlock, label %cond_false475
152
153 cond_false475:          ; preds = %cond_false460
154         br label %UnifiedUnreachableBlock
155
156 cond_false481:          ; preds = %bb401
157         br bool false, label %cond_next496, label %bb512
158
159 cond_next496:           ; preds = %cond_false481
160         br bool false, label %bb513, label %bb512
161
162 bb512:          ; preds = %cond_next496, %cond_false481
163         br label %bb513
164
165 bb513:          ; preds = %bb512, %cond_next496
166         br bool false, label %cond_false594, label %cond_true516
167
168 cond_true516:           ; preds = %bb513
169         br bool false, label %cond_true545, label %cond_false552
170
171 cond_true545:           ; preds = %cond_true516
172         br label %bb1269.outer38.backedge
173
174 cond_false552:          ; preds = %cond_true516
175         br bool false, label %cond_true566, label %cond_false573
176
177 cond_true566:           ; preds = %cond_false552
178         br label %bb1269.outer21.backedge
179
180 cond_false573:          ; preds = %cond_false552
181         br bool false, label %UnifiedReturnBlock, label %cond_false588
182
183 cond_false588:          ; preds = %cond_false573
184         br label %UnifiedUnreachableBlock
185
186 cond_false594:          ; preds = %bb513
187         br bool false, label %cond_next609, label %bb625
188
189 cond_next609:           ; preds = %cond_false594
190         br bool false, label %bb626, label %bb625
191
192 bb625:          ; preds = %cond_next609, %cond_false594
193         br label %bb626
194
195 bb626:          ; preds = %bb625, %cond_next609
196         br bool false, label %cond_false707, label %cond_true629
197
198 cond_true629:           ; preds = %bb626
199         br bool false, label %cond_true658, label %cond_false665
200
201 cond_true658:           ; preds = %cond_true629
202         br label %bb1269.outer2.backedge
203
204 bb1269.outer2.backedge:         ; preds = %cond_true679, %cond_true658
205         br label %bb1269.outer2
206
207 cond_false665:          ; preds = %cond_true629
208         br bool false, label %cond_true679, label %cond_false686
209
210 cond_true679:           ; preds = %cond_false665
211         br label %bb1269.outer2.backedge
212
213 cond_false686:          ; preds = %cond_false665
214         br bool false, label %UnifiedReturnBlock, label %cond_false701
215
216 cond_false701:          ; preds = %cond_false686
217         br label %UnifiedUnreachableBlock
218
219 cond_false707:          ; preds = %bb626
220         br bool false, label %cond_next722, label %bb738
221
222 cond_next722:           ; preds = %cond_false707
223         br bool false, label %bb739, label %bb738
224
225 bb738:          ; preds = %cond_next722, %cond_false707
226         br label %bb739
227
228 bb739:          ; preds = %bb738, %cond_next722
229         br bool false, label %cond_false820, label %cond_true742
230
231 cond_true742:           ; preds = %bb739
232         br bool false, label %cond_true771, label %cond_false778
233
234 cond_true771:           ; preds = %cond_true742
235         br label %bb1269.outer.backedge
236
237 bb1269.outer.backedge:          ; preds = %cond_true792, %cond_true771
238         br label %bb1269.outer
239
240 cond_false778:          ; preds = %cond_true742
241         br bool false, label %cond_true792, label %cond_false799
242
243 cond_true792:           ; preds = %cond_false778
244         br label %bb1269.outer.backedge
245
246 cond_false799:          ; preds = %cond_false778
247         br bool false, label %UnifiedReturnBlock, label %cond_false814
248
249 cond_false814:          ; preds = %cond_false799
250         br label %UnifiedUnreachableBlock
251
252 cond_false820:          ; preds = %bb739
253         br bool false, label %cond_next835, label %bb851
254
255 cond_next835:           ; preds = %cond_false820
256         br bool false, label %bb852, label %bb851
257
258 bb851:          ; preds = %cond_next835, %cond_false820
259         br label %bb852
260
261 bb852:          ; preds = %bb851, %cond_next835
262         br bool false, label %cond_false933, label %cond_true855
263
264 cond_true855:           ; preds = %bb852
265         br bool false, label %cond_true884, label %cond_false891
266
267 cond_true884:           ; preds = %cond_true855
268         br label %bb1269.outer.outer.backedge
269
270 bb1269.outer.outer.backedge:            ; preds = %cond_true905, %cond_true884
271         br label %bb1269.outer.outer
272
273 cond_false891:          ; preds = %cond_true855
274         br bool false, label %cond_true905, label %cond_false912
275
276 cond_true905:           ; preds = %cond_false891
277         br label %bb1269.outer.outer.backedge
278
279 cond_false912:          ; preds = %cond_false891
280         br bool false, label %UnifiedReturnBlock, label %cond_false927
281
282 cond_false927:          ; preds = %cond_false912
283         br label %UnifiedUnreachableBlock
284
285 cond_false933:          ; preds = %bb852
286         br bool false, label %cond_next948, label %bb964
287
288 cond_next948:           ; preds = %cond_false933
289         br bool false, label %bb965, label %bb964
290
291 bb964:          ; preds = %cond_next948, %cond_false933
292         br label %bb965
293
294 bb965:          ; preds = %bb964, %cond_next948
295         br bool false, label %cond_false1046, label %cond_true968
296
297 cond_true968:           ; preds = %bb965
298         br bool false, label %cond_true997, label %cond_false1004
299
300 cond_true997:           ; preds = %cond_true968
301         br label %bb1269.outer.outer.outer.backedge
302
303 bb1269.outer.outer.outer.backedge:              ; preds = %cond_true1018, %cond_true997
304         br label %bb1269.outer.outer.outer
305
306 cond_false1004:         ; preds = %cond_true968
307         br bool false, label %cond_true1018, label %cond_false1025
308
309 cond_true1018:          ; preds = %cond_false1004
310         br label %bb1269.outer.outer.outer.backedge
311
312 cond_false1025:         ; preds = %cond_false1004
313         br bool false, label %UnifiedReturnBlock, label %cond_false1040
314
315 cond_false1040:         ; preds = %cond_false1025
316         br label %UnifiedUnreachableBlock
317
318 cond_false1046:         ; preds = %bb965
319         br bool false, label %cond_next1061, label %bb1077
320
321 cond_next1061:          ; preds = %cond_false1046
322         br bool false, label %bb1078, label %bb1077
323
324 bb1077:         ; preds = %cond_next1061, %cond_false1046
325         br label %bb1078
326
327 bb1078:         ; preds = %bb1077, %cond_next1061
328         %tmp1080 = phi bool [ true, %bb1077 ], [ false, %cond_next1061 ]                ; <bool> [#uses=1]
329         br bool %tmp1080, label %cond_false1159, label %cond_true1081
330
331 cond_true1081:          ; preds = %bb1078
332         br bool false, label %cond_true1110, label %cond_false1117
333
334 cond_true1110:          ; preds = %cond_true1081
335         br label %bb1269.outer.outer.outer.outer.backedge
336
337 bb1269.outer.outer.outer.outer.backedge:                ; preds = %cond_true1131, %cond_true1110
338         br label %bb1269.outer.outer.outer.outer
339
340 cond_false1117:         ; preds = %cond_true1081
341         br bool false, label %cond_true1131, label %cond_false1138
342
343 cond_true1131:          ; preds = %cond_false1117
344         br label %bb1269.outer.outer.outer.outer.backedge
345
346 cond_false1138:         ; preds = %cond_false1117
347         br bool false, label %UnifiedReturnBlock, label %cond_false1153
348
349 cond_false1153:         ; preds = %cond_false1138
350         br label %UnifiedUnreachableBlock
351
352 cond_false1159:         ; preds = %bb1078
353         %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi "struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ]           ; <"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
354         br bool false, label %UnifiedReturnBlock, label %cond_false1174
355
356 cond_false1174:         ; preds = %cond_false1159
357         br bool false, label %UnifiedReturnBlock, label %cond_false1189
358
359 cond_false1189:         ; preds = %cond_false1174
360         br bool false, label %UnifiedReturnBlock, label %cond_false1204
361
362 cond_false1204:         ; preds = %cond_false1189
363         br bool false, label %UnifiedReturnBlock, label %cond_false1219
364
365 cond_false1219:         ; preds = %cond_false1204
366         br bool false, label %UnifiedReturnBlock, label %cond_true1222
367
368 cond_true1222:          ; preds = %cond_false1219
369         br label %UnifiedReturnBlock
370
371 bb1269.outer.outer.outer.outer:         ; preds = %bb1269.outer.outer.outer.outer.backedge, %entry
372         br label %bb1269.outer.outer.outer
373
374 bb1269.outer.outer.outer:               ; preds = %bb1269.outer.outer.outer.outer, %bb1269.outer.outer.outer.backedge
375         br label %bb1269.outer.outer
376
377 bb1269.outer.outer:             ; preds = %bb1269.outer.outer.outer, %bb1269.outer.outer.backedge
378         br label %bb1269.outer
379
380 bb1269.outer:           ; preds = %bb1269.outer.outer, %bb1269.outer.backedge
381         br label %bb1269.outer2
382
383 bb1269.outer2:          ; preds = %bb1269.outer, %bb1269.outer2.backedge
384         br label %bb1269.outer21
385
386 bb1269.outer21:         ; preds = %bb1269.outer2, %bb1269.outer21.backedge
387         br label %bb1269.outer38
388
389 bb1269.outer38:         ; preds = %bb1269.outer21, %bb1269.outer38.backedge
390         br label %bb1269.outer54
391
392 bb1269.outer54:         ; preds = %bb1269.outer38
393         br label %bb1269.outer69
394
395 bb1269.outer69:         ; preds = %bb1269.outer54, %cond_true
396         br label %bb1269
397
398 bb1269:         ; preds = %bb1269.outer69
399         br bool false, label %cond_next1281, label %bb1294
400
401 cond_next1281:          ; preds = %bb1269
402         br bool false, label %cond_true1298, label %bb1294
403
404 bb1294:         ; preds = %cond_next1281, %bb1269
405         br bool false, label %cond_true1331, label %cond_next1313
406
407 cond_true1298:          ; preds = %cond_next1281
408         br bool false, label %cond_false, label %cond_true
409
410 cond_next1313:          ; preds = %bb1294
411         br bool false, label %cond_true1331, label %cond_next1355
412
413 cond_true1331:          ; preds = %cond_next1313, %bb1294
414         br bool false, label %cond_false1346, label %cond_true1342
415
416 cond_true1342:          ; preds = %cond_true1331
417         br label %cond_next1350
418
419 cond_false1346:         ; preds = %cond_true1331
420         br label %cond_next1350
421
422 cond_next1350:          ; preds = %cond_false1346, %cond_true1342
423         br label %bb.i
424
425 bb.i:           ; preds = %bb.i, %cond_next1350
426         br bool false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i
427
428 _ZN2kc18impl_abstract_list8freelistEv.exit:             ; preds = %bb.i
429         br label %cond_next1355
430
431 cond_next1355:          ; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313
432         br bool false, label %cond_next1363, label %bb1388
433
434 cond_next1363:          ; preds = %cond_next1355
435         br bool false, label %UnifiedReturnBlock, label %cond_true1366
436
437 cond_true1366:          ; preds = %cond_next1363
438         br label %UnifiedReturnBlock
439
440 bb1388:         ; preds = %cond_next1355
441         br bool false, label %UnifiedReturnBlock, label %bb1414.preheader
442
443 bb1414.preheader:               ; preds = %bb1388
444         br label %bb1414
445
446 bb1414:         ; preds = %cond_true1426, %bb1414.preheader
447         br bool false, label %cond_true1426, label %bb1429
448
449 cond_true1426:          ; preds = %bb1414
450         br label %bb1414
451
452 bb1429:         ; preds = %bb1414
453         br bool false, label %cond_true1431, label %UnifiedReturnBlock
454
455 cond_true1431:          ; preds = %bb1429
456         br bool false, label %UnifiedReturnBlock, label %cond_true1434
457
458 cond_true1434:          ; preds = %cond_true1431
459         br label %UnifiedReturnBlock
460
461 UnifiedUnreachableBlock:                ; preds = %cond_false1153, %cond_false1040, %cond_false927, %cond_false814, %cond_false701, %cond_false588, %cond_false475, %cond_false363, %cond_false250
462         unreachable
463
464 UnifiedReturnBlock:             ; preds = %cond_true1434, %cond_true1431, %bb1429, %bb1388, %cond_true1366, %cond_next1363, %cond_true1222, %cond_false1219, %cond_false1204, %cond_false1189, %cond_false1174, %cond_false1159, %cond_false1138, %cond_false1025, %cond_false912, %cond_false799, %cond_false686, %cond_false573, %cond_false460, %cond_false348, %cond_false235, %cond_true120, %cond_true117, %cond_true57, %cond_true55
465         ret void
466 }