another random update
[llvm/avr.git] / test / Transforms / CondProp / 2006-08-14-SingleEntryPhiCrash.ll
blob6ed07d81808a488fb005768e764022c9b6c6c6b0
1 ; RUN: opt %s -condprop -disable-output
2 ; PR877
3 target datalayout = "E-p:32:32"
4 target triple = "powerpc-apple-darwin9.0.0d1"
5         %"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }
6         %"struct.kc::impl_ID" = type { %"struct.kc::impl_abstract_phylum", %"struct.kc::impl_Ccode_option"*, %"struct.kc::impl_casestring__Str"*, i32, %"struct.kc::impl_casestring__Str"* }
7         %"struct.kc::impl_abstract_phylum" = type { i32 (...)** }
8         %"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", i8* }
9         %"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, %"struct.kc::impl_casestring__Str"*, %"struct.kc::impl_ID"* }
10         %"struct.kc::impl_outmostpatterns" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_elem_patternrepresentation"*, %"struct.kc::impl_outmostpatterns"* }
11         %"struct.kc::impl_patternrepresentations" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_outmostpatterns"*, %"struct.kc::impl_patternrepresentations"* }
13 define void @_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
14 entry:
15         br label %bb1269.outer.outer.outer.outer
17 cond_true:              ; preds = %cond_true1298
18         br label %bb1269.outer69
20 cond_false:             ; preds = %cond_true1298
21         br i1 false, label %cond_next, label %bb51
23 cond_next:              ; preds = %cond_false
24         br i1 false, label %bb52, label %bb51
26 bb51:           ; preds = %cond_next, %cond_false
27         br label %bb52
29 bb52:           ; preds = %bb51, %cond_next
30         br i1 false, label %cond_false82, label %cond_true55
32 cond_true55:            ; preds = %bb52
33         br i1 false, label %UnifiedReturnBlock, label %cond_true57
35 cond_true57:            ; preds = %cond_true55
36         br label %UnifiedReturnBlock
38 cond_false82:           ; preds = %bb52
39         br i1 false, label %cond_next97, label %bb113
41 cond_next97:            ; preds = %cond_false82
42         br i1 false, label %bb114, label %bb113
44 bb113:          ; preds = %cond_next97, %cond_false82
45         br label %bb114
47 bb114:          ; preds = %bb113, %cond_next97
48         br i1 false, label %cond_false151, label %cond_true117
50 cond_true117:           ; preds = %bb114
51         br i1 false, label %UnifiedReturnBlock, label %cond_true120
53 cond_true120:           ; preds = %cond_true117
54         br label %UnifiedReturnBlock
56 cond_false151:          ; preds = %bb114
57         br i1 false, label %cond_next166, label %bb182
59 cond_next166:           ; preds = %cond_false151
60         br i1 false, label %bb183, label %bb182
62 bb182:          ; preds = %cond_next166, %cond_false151
63         br label %bb183
65 bb183:          ; preds = %bb182, %cond_next166
66         br i1 false, label %cond_false256, label %cond_true186
68 cond_true186:           ; preds = %bb183
69         br i1 false, label %cond_true207, label %cond_false214
71 cond_true207:           ; preds = %cond_true186
72         br label %bb1269.outer38.backedge
74 bb1269.outer38.backedge:                ; preds = %cond_true545, %cond_true432, %cond_true320, %cond_true207
75         br label %bb1269.outer38
77 cond_false214:          ; preds = %cond_true186
78         br i1 false, label %cond_true228, label %cond_false235
80 cond_true228:           ; preds = %cond_false214
81         br label %bb1269.outer21.backedge
83 bb1269.outer21.backedge:                ; preds = %cond_true566, %cond_true453, %cond_true341, %cond_true228
84         br label %bb1269.outer21
86 cond_false235:          ; preds = %cond_false214
87         br i1 false, label %UnifiedReturnBlock, label %cond_false250
89 cond_false250:          ; preds = %cond_false235
90         br label %UnifiedUnreachableBlock
92 cond_false256:          ; preds = %bb183
93         br i1 false, label %cond_next271, label %bb287
95 cond_next271:           ; preds = %cond_false256
96         br i1 false, label %bb288, label %bb287
98 bb287:          ; preds = %cond_next271, %cond_false256
99         br label %bb288
101 bb288:          ; preds = %bb287, %cond_next271
102         br i1 false, label %cond_false369, label %cond_true291
104 cond_true291:           ; preds = %bb288
105         br i1 false, label %cond_true320, label %cond_false327
107 cond_true320:           ; preds = %cond_true291
108         br label %bb1269.outer38.backedge
110 cond_false327:          ; preds = %cond_true291
111         br i1 false, label %cond_true341, label %cond_false348
113 cond_true341:           ; preds = %cond_false327
114         br label %bb1269.outer21.backedge
116 cond_false348:          ; preds = %cond_false327
117         br i1 false, label %UnifiedReturnBlock, label %cond_false363
119 cond_false363:          ; preds = %cond_false348
120         br label %UnifiedUnreachableBlock
122 cond_false369:          ; preds = %bb288
123         br i1 false, label %cond_next384, label %bb400
125 cond_next384:           ; preds = %cond_false369
126         br i1 false, label %bb401, label %bb400
128 bb400:          ; preds = %cond_next384, %cond_false369
129         br label %bb401
131 bb401:          ; preds = %bb400, %cond_next384
132         br i1 false, label %cond_false481, label %cond_true404
134 cond_true404:           ; preds = %bb401
135         br i1 false, label %cond_true432, label %cond_false439
137 cond_true432:           ; preds = %cond_true404
138         br label %bb1269.outer38.backedge
140 cond_false439:          ; preds = %cond_true404
141         br i1 false, label %cond_true453, label %cond_false460
143 cond_true453:           ; preds = %cond_false439
144         br label %bb1269.outer21.backedge
146 cond_false460:          ; preds = %cond_false439
147         br i1 false, label %UnifiedReturnBlock, label %cond_false475
149 cond_false475:          ; preds = %cond_false460
150         br label %UnifiedUnreachableBlock
152 cond_false481:          ; preds = %bb401
153         br i1 false, label %cond_next496, label %bb512
155 cond_next496:           ; preds = %cond_false481
156         br i1 false, label %bb513, label %bb512
158 bb512:          ; preds = %cond_next496, %cond_false481
159         br label %bb513
161 bb513:          ; preds = %bb512, %cond_next496
162         br i1 false, label %cond_false594, label %cond_true516
164 cond_true516:           ; preds = %bb513
165         br i1 false, label %cond_true545, label %cond_false552
167 cond_true545:           ; preds = %cond_true516
168         br label %bb1269.outer38.backedge
170 cond_false552:          ; preds = %cond_true516
171         br i1 false, label %cond_true566, label %cond_false573
173 cond_true566:           ; preds = %cond_false552
174         br label %bb1269.outer21.backedge
176 cond_false573:          ; preds = %cond_false552
177         br i1 false, label %UnifiedReturnBlock, label %cond_false588
179 cond_false588:          ; preds = %cond_false573
180         br label %UnifiedUnreachableBlock
182 cond_false594:          ; preds = %bb513
183         br i1 false, label %cond_next609, label %bb625
185 cond_next609:           ; preds = %cond_false594
186         br i1 false, label %bb626, label %bb625
188 bb625:          ; preds = %cond_next609, %cond_false594
189         br label %bb626
191 bb626:          ; preds = %bb625, %cond_next609
192         br i1 false, label %cond_false707, label %cond_true629
194 cond_true629:           ; preds = %bb626
195         br i1 false, label %cond_true658, label %cond_false665
197 cond_true658:           ; preds = %cond_true629
198         br label %bb1269.outer2.backedge
200 bb1269.outer2.backedge:         ; preds = %cond_true679, %cond_true658
201         br label %bb1269.outer2
203 cond_false665:          ; preds = %cond_true629
204         br i1 false, label %cond_true679, label %cond_false686
206 cond_true679:           ; preds = %cond_false665
207         br label %bb1269.outer2.backedge
209 cond_false686:          ; preds = %cond_false665
210         br i1 false, label %UnifiedReturnBlock, label %cond_false701
212 cond_false701:          ; preds = %cond_false686
213         br label %UnifiedUnreachableBlock
215 cond_false707:          ; preds = %bb626
216         br i1 false, label %cond_next722, label %bb738
218 cond_next722:           ; preds = %cond_false707
219         br i1 false, label %bb739, label %bb738
221 bb738:          ; preds = %cond_next722, %cond_false707
222         br label %bb739
224 bb739:          ; preds = %bb738, %cond_next722
225         br i1 false, label %cond_false820, label %cond_true742
227 cond_true742:           ; preds = %bb739
228         br i1 false, label %cond_true771, label %cond_false778
230 cond_true771:           ; preds = %cond_true742
231         br label %bb1269.outer.backedge
233 bb1269.outer.backedge:          ; preds = %cond_true792, %cond_true771
234         br label %bb1269.outer
236 cond_false778:          ; preds = %cond_true742
237         br i1 false, label %cond_true792, label %cond_false799
239 cond_true792:           ; preds = %cond_false778
240         br label %bb1269.outer.backedge
242 cond_false799:          ; preds = %cond_false778
243         br i1 false, label %UnifiedReturnBlock, label %cond_false814
245 cond_false814:          ; preds = %cond_false799
246         br label %UnifiedUnreachableBlock
248 cond_false820:          ; preds = %bb739
249         br i1 false, label %cond_next835, label %bb851
251 cond_next835:           ; preds = %cond_false820
252         br i1 false, label %bb852, label %bb851
254 bb851:          ; preds = %cond_next835, %cond_false820
255         br label %bb852
257 bb852:          ; preds = %bb851, %cond_next835
258         br i1 false, label %cond_false933, label %cond_true855
260 cond_true855:           ; preds = %bb852
261         br i1 false, label %cond_true884, label %cond_false891
263 cond_true884:           ; preds = %cond_true855
264         br label %bb1269.outer.outer.backedge
266 bb1269.outer.outer.backedge:            ; preds = %cond_true905, %cond_true884
267         br label %bb1269.outer.outer
269 cond_false891:          ; preds = %cond_true855
270         br i1 false, label %cond_true905, label %cond_false912
272 cond_true905:           ; preds = %cond_false891
273         br label %bb1269.outer.outer.backedge
275 cond_false912:          ; preds = %cond_false891
276         br i1 false, label %UnifiedReturnBlock, label %cond_false927
278 cond_false927:          ; preds = %cond_false912
279         br label %UnifiedUnreachableBlock
281 cond_false933:          ; preds = %bb852
282         br i1 false, label %cond_next948, label %bb964
284 cond_next948:           ; preds = %cond_false933
285         br i1 false, label %bb965, label %bb964
287 bb964:          ; preds = %cond_next948, %cond_false933
288         br label %bb965
290 bb965:          ; preds = %bb964, %cond_next948
291         br i1 false, label %cond_false1046, label %cond_true968
293 cond_true968:           ; preds = %bb965
294         br i1 false, label %cond_true997, label %cond_false1004
296 cond_true997:           ; preds = %cond_true968
297         br label %bb1269.outer.outer.outer.backedge
299 bb1269.outer.outer.outer.backedge:              ; preds = %cond_true1018, %cond_true997
300         br label %bb1269.outer.outer.outer
302 cond_false1004:         ; preds = %cond_true968
303         br i1 false, label %cond_true1018, label %cond_false1025
305 cond_true1018:          ; preds = %cond_false1004
306         br label %bb1269.outer.outer.outer.backedge
308 cond_false1025:         ; preds = %cond_false1004
309         br i1 false, label %UnifiedReturnBlock, label %cond_false1040
311 cond_false1040:         ; preds = %cond_false1025
312         br label %UnifiedUnreachableBlock
314 cond_false1046:         ; preds = %bb965
315         br i1 false, label %cond_next1061, label %bb1077
317 cond_next1061:          ; preds = %cond_false1046
318         br i1 false, label %bb1078, label %bb1077
320 bb1077:         ; preds = %cond_next1061, %cond_false1046
321         br label %bb1078
323 bb1078:         ; preds = %bb1077, %cond_next1061
324         %tmp1080 = phi i1 [ true, %bb1077 ], [ false, %cond_next1061 ]          ; <i1> [#uses=1]
325         br i1 %tmp1080, label %cond_false1159, label %cond_true1081
327 cond_true1081:          ; preds = %bb1078
328         br i1 false, label %cond_true1110, label %cond_false1117
330 cond_true1110:          ; preds = %cond_true1081
331         br label %bb1269.outer.outer.outer.outer.backedge
333 bb1269.outer.outer.outer.outer.backedge:                ; preds = %cond_true1131, %cond_true1110
334         br label %bb1269.outer.outer.outer.outer
336 cond_false1117:         ; preds = %cond_true1081
337         br i1 false, label %cond_true1131, label %cond_false1138
339 cond_true1131:          ; preds = %cond_false1117
340         br label %bb1269.outer.outer.outer.outer.backedge
342 cond_false1138:         ; preds = %cond_false1117
343         br i1 false, label %UnifiedReturnBlock, label %cond_false1153
345 cond_false1153:         ; preds = %cond_false1138
346         br label %UnifiedUnreachableBlock
348 cond_false1159:         ; preds = %bb1078
349         %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi %"struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ]          ; <%"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
350         br i1 false, label %UnifiedReturnBlock, label %cond_false1174
352 cond_false1174:         ; preds = %cond_false1159
353         br i1 false, label %UnifiedReturnBlock, label %cond_false1189
355 cond_false1189:         ; preds = %cond_false1174
356         br i1 false, label %UnifiedReturnBlock, label %cond_false1204
358 cond_false1204:         ; preds = %cond_false1189
359         br i1 false, label %UnifiedReturnBlock, label %cond_false1219
361 cond_false1219:         ; preds = %cond_false1204
362         br i1 false, label %UnifiedReturnBlock, label %cond_true1222
364 cond_true1222:          ; preds = %cond_false1219
365         br label %UnifiedReturnBlock
367 bb1269.outer.outer.outer.outer:         ; preds = %bb1269.outer.outer.outer.outer.backedge, %entry
368         br label %bb1269.outer.outer.outer
370 bb1269.outer.outer.outer:               ; preds = %bb1269.outer.outer.outer.outer, %bb1269.outer.outer.outer.backedge
371         br label %bb1269.outer.outer
373 bb1269.outer.outer:             ; preds = %bb1269.outer.outer.outer, %bb1269.outer.outer.backedge
374         br label %bb1269.outer
376 bb1269.outer:           ; preds = %bb1269.outer.outer, %bb1269.outer.backedge
377         br label %bb1269.outer2
379 bb1269.outer2:          ; preds = %bb1269.outer, %bb1269.outer2.backedge
380         br label %bb1269.outer21
382 bb1269.outer21:         ; preds = %bb1269.outer2, %bb1269.outer21.backedge
383         br label %bb1269.outer38
385 bb1269.outer38:         ; preds = %bb1269.outer21, %bb1269.outer38.backedge
386         br label %bb1269.outer54
388 bb1269.outer54:         ; preds = %bb1269.outer38
389         br label %bb1269.outer69
391 bb1269.outer69:         ; preds = %bb1269.outer54, %cond_true
392         br label %bb1269
394 bb1269:         ; preds = %bb1269.outer69
395         br i1 false, label %cond_next1281, label %bb1294
397 cond_next1281:          ; preds = %bb1269
398         br i1 false, label %cond_true1298, label %bb1294
400 bb1294:         ; preds = %cond_next1281, %bb1269
401         br i1 false, label %cond_true1331, label %cond_next1313
403 cond_true1298:          ; preds = %cond_next1281
404         br i1 false, label %cond_false, label %cond_true
406 cond_next1313:          ; preds = %bb1294
407         br i1 false, label %cond_true1331, label %cond_next1355
409 cond_true1331:          ; preds = %cond_next1313, %bb1294
410         br i1 false, label %cond_false1346, label %cond_true1342
412 cond_true1342:          ; preds = %cond_true1331
413         br label %cond_next1350
415 cond_false1346:         ; preds = %cond_true1331
416         br label %cond_next1350
418 cond_next1350:          ; preds = %cond_false1346, %cond_true1342
419         br label %bb.i
421 bb.i:           ; preds = %bb.i, %cond_next1350
422         br i1 false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i
424 _ZN2kc18impl_abstract_list8freelistEv.exit:             ; preds = %bb.i
425         br label %cond_next1355
427 cond_next1355:          ; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313
428         br i1 false, label %cond_next1363, label %bb1388
430 cond_next1363:          ; preds = %cond_next1355
431         br i1 false, label %UnifiedReturnBlock, label %cond_true1366
433 cond_true1366:          ; preds = %cond_next1363
434         br label %UnifiedReturnBlock
436 bb1388:         ; preds = %cond_next1355
437         br i1 false, label %UnifiedReturnBlock, label %bb1414.preheader
439 bb1414.preheader:               ; preds = %bb1388
440         br label %bb1414
442 bb1414:         ; preds = %cond_true1426, %bb1414.preheader
443         br i1 false, label %cond_true1426, label %bb1429
445 cond_true1426:          ; preds = %bb1414
446         br label %bb1414
448 bb1429:         ; preds = %bb1414
449         br i1 false, label %cond_true1431, label %UnifiedReturnBlock
451 cond_true1431:          ; preds = %bb1429
452         br i1 false, label %UnifiedReturnBlock, label %cond_true1434
454 cond_true1434:          ; preds = %cond_true1431
455         br label %UnifiedReturnBlock
457 UnifiedUnreachableBlock:                ; preds = %cond_false1153, %cond_false1040, %cond_false927, %cond_false814, %cond_false701, %cond_false588, %cond_false475, %cond_false363, %cond_false250
458         unreachable
460 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
461         ret void