[RS4GC] Fix rematerialization of bitcast of bitcast.
[oota-llvm.git] / test / Transforms / Inline / 2006-07-12-InlinePruneCGUpdate.ll
1 ; RUN: opt < %s -inline -prune-eh -disable-output
2 ; PR827
3 @_ZTV8CRjii = internal global [1 x i32 (...)*] [ i32 (...)* @_ZN8CRjii12NlFeeEPN5Jr7sE ]                ; <[1 x i32 (...)*]*> [#uses=0]
4
5 define internal i32 @_ZN8CRjii12NlFeeEPN5Jr7sE(...) {
6 entry:
7         br i1 false, label %cond_true, label %cond_false179
8
9 cond_true:              ; preds = %entry
10         br label %bb9
11
12 bb:             ; preds = %cond_true14
13         br label %bb9
14
15 bb9:            ; preds = %bb, %cond_true
16         br i1 false, label %cond_true14, label %cond_false
17
18 cond_true14:            ; preds = %bb9
19         br label %bb
20
21 cond_false:             ; preds = %bb9
22         br label %bb15
23
24 cond_next:              ; No predecessors!
25         br label %bb15
26
27 bb15:           ; preds = %cond_next, %cond_false
28         br label %bb24
29
30 bb17:           ; preds = %cond_true29
31         br label %bb24
32
33 bb24:           ; preds = %bb17, %bb15
34         br i1 false, label %cond_true29, label %cond_false30
35
36 cond_true29:            ; preds = %bb24
37         br label %bb17
38
39 cond_false30:           ; preds = %bb24
40         br label %bb32
41
42 cond_next31:            ; No predecessors!
43         br label %bb32
44
45 bb32:           ; preds = %cond_next31, %cond_false30
46         br label %bb41
47
48 bb34:           ; preds = %cond_true46
49         br label %bb41
50
51 bb41:           ; preds = %bb34, %bb32
52         br i1 false, label %cond_true46, label %cond_false47
53
54 cond_true46:            ; preds = %bb41
55         br label %bb34
56
57 cond_false47:           ; preds = %bb41
58         br label %bb49
59
60 cond_next48:            ; No predecessors!
61         br label %bb49
62
63 bb49:           ; preds = %cond_next48, %cond_false47
64         br label %bb58
65
66 bb51:           ; preds = %cond_true63
67         br label %bb58
68
69 bb58:           ; preds = %bb51, %bb49
70         br i1 false, label %cond_true63, label %cond_false64
71
72 cond_true63:            ; preds = %bb58
73         br label %bb51
74
75 cond_false64:           ; preds = %bb58
76         br label %bb66
77
78 cond_next65:            ; No predecessors!
79         br label %bb66
80
81 bb66:           ; preds = %cond_next65, %cond_false64
82         br label %bb76
83
84 bb68:           ; preds = %cond_true81
85         br label %bb76
86
87 bb76:           ; preds = %bb68, %bb66
88         br i1 false, label %cond_true81, label %cond_false82
89
90 cond_true81:            ; preds = %bb76
91         br label %bb68
92
93 cond_false82:           ; preds = %bb76
94         br label %bb84
95
96 cond_next83:            ; No predecessors!
97         br label %bb84
98
99 bb84:           ; preds = %cond_next83, %cond_false82
100         br label %bb94
101
102 bb86:           ; preds = %cond_true99
103         br label %bb94
104
105 bb94:           ; preds = %bb86, %bb84
106         br i1 false, label %cond_true99, label %cond_false100
107
108 cond_true99:            ; preds = %bb94
109         br label %bb86
110
111 cond_false100:          ; preds = %bb94
112         br label %bb102
113
114 cond_next101:           ; No predecessors!
115         br label %bb102
116
117 bb102:          ; preds = %cond_next101, %cond_false100
118         br label %bb112
119
120 bb104:          ; preds = %cond_true117
121         br label %bb112
122
123 bb112:          ; preds = %bb104, %bb102
124         br i1 false, label %cond_true117, label %cond_false118
125
126 cond_true117:           ; preds = %bb112
127         br label %bb104
128
129 cond_false118:          ; preds = %bb112
130         br label %bb120
131
132 cond_next119:           ; No predecessors!
133         br label %bb120
134
135 bb120:          ; preds = %cond_next119, %cond_false118
136         br label %bb130
137
138 bb122:          ; preds = %cond_true135
139         br label %bb130
140
141 bb130:          ; preds = %bb122, %bb120
142         br i1 false, label %cond_true135, label %cond_false136
143
144 cond_true135:           ; preds = %bb130
145         br label %bb122
146
147 cond_false136:          ; preds = %bb130
148         br label %bb138
149
150 cond_next137:           ; No predecessors!
151         br label %bb138
152
153 bb138:          ; preds = %cond_next137, %cond_false136
154         br label %bb148
155
156 bb140:          ; preds = %cond_true153
157         call fastcc void @_Zjrf1( )
158         br label %bb148
159
160 bb148:          ; preds = %bb140, %bb138
161         br i1 false, label %cond_true153, label %cond_false154
162
163 cond_true153:           ; preds = %bb148
164         br label %bb140
165
166 cond_false154:          ; preds = %bb148
167         br label %bb156
168
169 cond_next155:           ; No predecessors!
170         br label %bb156
171
172 bb156:          ; preds = %cond_next155, %cond_false154
173         br label %bb166
174
175 bb158:          ; preds = %cond_true171
176         br label %bb166
177
178 bb166:          ; preds = %bb158, %bb156
179         br i1 false, label %cond_true171, label %cond_false172
180
181 cond_true171:           ; preds = %bb166
182         br label %bb158
183
184 cond_false172:          ; preds = %bb166
185         br label %bb174
186
187 cond_next173:           ; No predecessors!
188         br label %bb174
189
190 bb174:          ; preds = %cond_next173, %cond_false172
191         br label %cleanup
192
193 cleanup:                ; preds = %bb174
194         br label %finally
195
196 finally:                ; preds = %cleanup
197         br label %cond_next180
198
199 cond_false179:          ; preds = %entry
200         br label %cond_next180
201
202 cond_next180:           ; preds = %cond_false179, %finally
203         br label %return
204
205 return:         ; preds = %cond_next180
206         ret i32 0
207 }
208
209 define internal fastcc void @_Zjrf2() {
210 entry:
211         br label %bb3
212
213 bb:             ; preds = %cond_true
214         br label %bb3
215
216 bb3:            ; preds = %bb, %entry
217         %tmp5 = load i8*, i8** null             ; <i8*> [#uses=1]
218         %tmp = icmp ne i8* null, %tmp5          ; <i1> [#uses=1]
219         br i1 %tmp, label %cond_true, label %cond_false
220
221 cond_true:              ; preds = %bb3
222         br label %bb
223
224 cond_false:             ; preds = %bb3
225         br label %bb6
226
227 cond_next:              ; No predecessors!
228         br label %bb6
229
230 bb6:            ; preds = %cond_next, %cond_false
231         br label %return
232
233 return:         ; preds = %bb6
234         ret void
235 }
236
237 define internal fastcc void @_Zjrf3() {
238 entry:
239         call fastcc void @_Zjrf2( )
240         br label %return
241
242 return:         ; preds = %entry
243         ret void
244 }
245
246 define internal fastcc void @_Zjrf4() {
247 entry:
248         br label %bb6
249
250 bb:             ; preds = %cond_true
251         br label %bb6
252
253 bb6:            ; preds = %bb, %entry
254         br i1 false, label %cond_true, label %cond_false
255
256 cond_true:              ; preds = %bb6
257         br label %bb
258
259 cond_false:             ; preds = %bb6
260         br label %bb8
261
262 cond_next:              ; No predecessors!
263         br label %bb8
264
265 bb8:            ; preds = %cond_next, %cond_false
266         br i1 false, label %cond_true9, label %cond_false12
267
268 cond_true9:             ; preds = %bb8
269         call fastcc void @_Zjrf3( )
270         br label %cond_next13
271
272 cond_false12:           ; preds = %bb8
273         br label %cond_next13
274
275 cond_next13:            ; preds = %cond_false12, %cond_true9
276         br label %return
277
278 return:         ; preds = %cond_next13
279         ret void
280 }
281
282 define internal fastcc void @_Zjrf5() {
283 entry:
284         call fastcc void @_Zjrf4( )
285         br label %return
286
287 return:         ; preds = %entry
288         ret void
289 }
290
291 define internal fastcc void @_Zjrf6() {
292 entry:
293         call fastcc void @_Zjrf5( )
294         br label %return
295
296 return:         ; preds = %entry
297         ret void
298 }
299
300 define internal fastcc void @_Zjrf7() {
301 entry:
302         br label %cleanup
303
304 cleanup:                ; preds = %entry
305         br label %finally
306
307 finally:                ; preds = %cleanup
308         call fastcc void @_Zjrf6( )
309         br label %cleanup9
310
311 cleanup9:               ; preds = %finally
312         br label %finally8
313
314 finally8:               ; preds = %cleanup9
315         br label %cleanup11
316
317 cleanup11:              ; preds = %finally8
318         br label %finally10
319
320 finally10:              ; preds = %cleanup11
321         br label %finally23
322
323 finally23:              ; preds = %finally10
324         br label %return
325
326 return:         ; preds = %finally23
327         ret void
328 }
329
330 define internal fastcc void @_Zjrf11() {
331 entry:
332         br label %bb7
333
334 bb:             ; preds = %cond_true
335         br label %bb7
336
337 bb7:            ; preds = %bb, %entry
338         br i1 false, label %cond_true, label %cond_false
339
340 cond_true:              ; preds = %bb7
341         br label %bb
342
343 cond_false:             ; preds = %bb7
344         br label %bb9
345
346 cond_next:              ; No predecessors!
347         br label %bb9
348
349 bb9:            ; preds = %cond_next, %cond_false
350         br label %return
351                 ; No predecessors!
352         br i1 false, label %cond_true12, label %cond_false15
353
354 cond_true12:            ; preds = %0
355         call fastcc void @_Zjrf3( )
356         br label %cond_next16
357
358 cond_false15:           ; preds = %0
359         br label %cond_next16
360
361 cond_next16:            ; preds = %cond_false15, %cond_true12
362         br label %return
363
364 return:         ; preds = %cond_next16, %bb9
365         ret void
366 }
367
368 define internal fastcc void @_Zjrf9() {
369 entry:
370         call fastcc void @_Zjrf11( )
371         br label %return
372
373 return:         ; preds = %entry
374         ret void
375 }
376
377 define internal fastcc void @_Zjrf10() {
378 entry:
379         call fastcc void @_Zjrf9( )
380         br label %return
381
382 return:         ; preds = %entry
383         ret void
384 }
385
386 define internal fastcc void @_Zjrf8() {
387 entry:
388         br i1 false, label %cond_true, label %cond_false201
389
390 cond_true:              ; preds = %entry
391         br i1 false, label %cond_true36, label %cond_false
392
393 cond_true36:            ; preds = %cond_true
394         br label %cleanup
395
396 cleanup:                ; preds = %cond_true36
397         br label %finally
398
399 finally:                ; preds = %cleanup
400         br label %cond_next189
401
402 cond_false:             ; preds = %cond_true
403         br i1 false, label %cond_true99, label %cond_false137
404
405 cond_true99:            ; preds = %cond_false
406         br label %cleanup136
407
408 cleanup136:             ; preds = %cond_true99
409         br label %finally135
410
411 finally135:             ; preds = %cleanup136
412         br label %cond_next
413
414 cond_false137:          ; preds = %cond_false
415         call fastcc void @_Zjrf10( )
416         br label %cleanup188
417
418 cleanup188:             ; preds = %cond_false137
419         br label %finally187
420
421 finally187:             ; preds = %cleanup188
422         br label %cond_next
423
424 cond_next:              ; preds = %finally187, %finally135
425         br label %cond_next189
426
427 cond_next189:           ; preds = %cond_next, %finally
428         br label %cond_next202
429
430 cond_false201:          ; preds = %entry
431         br label %cond_next202
432
433 cond_next202:           ; preds = %cond_false201, %cond_next189
434         br label %return
435
436 return:         ; preds = %cond_next202
437         ret void
438 }
439
440 define internal fastcc void @_Zjrf1() {
441 entry:
442         br label %bb492
443
444 bb:             ; preds = %cond_true499
445         br label %cleanup
446
447 cleanup:                ; preds = %bb
448         br label %finally
449
450 finally:                ; preds = %cleanup
451         br label %cleanup11
452
453 cleanup11:              ; preds = %finally
454         br label %finally10
455
456 finally10:              ; preds = %cleanup11
457         br i1 false, label %cond_true, label %cond_false286
458
459 cond_true:              ; preds = %finally10
460         br label %cleanup26
461
462 cleanup26:              ; preds = %cond_true
463         br label %finally25
464
465 finally25:              ; preds = %cleanup26
466         br label %bb30
467
468 bb27:           ; preds = %cond_true37
469         br label %bb30
470
471 bb30:           ; preds = %bb27, %finally25
472         br i1 false, label %cond_true37, label %cond_false
473
474 cond_true37:            ; preds = %bb30
475         br label %bb27
476
477 cond_false:             ; preds = %bb30
478         br label %bb38
479
480 cond_next:              ; No predecessors!
481         br label %bb38
482
483 bb38:           ; preds = %cond_next, %cond_false
484         br label %bb148
485
486 bb40:           ; preds = %cond_true156
487         br label %bb139
488
489 bb41:           ; preds = %cond_true142
490         call fastcc void @_Zjrf7( )
491         br label %bb105
492
493 bb44:           ; preds = %cond_true112
494         br label %bb74
495
496 bb66:           ; preds = %cond_true80
497         br label %bb74
498
499 bb74:           ; preds = %bb66, %bb44
500         br i1 false, label %cond_true80, label %cond_false81
501
502 cond_true80:            ; preds = %bb74
503         br label %bb66
504
505 cond_false81:           ; preds = %bb74
506         br label %bb83
507
508 cond_next82:            ; No predecessors!
509         br label %bb83
510
511 bb83:           ; preds = %cond_next82, %cond_false81
512         br label %cleanup97
513
514 cleanup97:              ; preds = %bb83
515         br label %finally96
516
517 finally96:              ; preds = %cleanup97
518         br label %cleanup99
519
520 cleanup99:              ; preds = %finally96
521         br label %finally98
522
523 finally98:              ; preds = %cleanup99
524         br label %bb105
525
526 bb105:          ; preds = %finally98, %bb41
527         br i1 false, label %cond_true112, label %cond_false113
528
529 cond_true112:           ; preds = %bb105
530         br label %bb44
531
532 cond_false113:          ; preds = %bb105
533         br label %bb115
534
535 cond_next114:           ; No predecessors!
536         br label %bb115
537
538 bb115:          ; preds = %cond_next114, %cond_false113
539         br i1 false, label %cond_true119, label %cond_false123
540
541 cond_true119:           ; preds = %bb115
542         call fastcc void @_Zjrf8( )
543         br label %cond_next124
544
545 cond_false123:          ; preds = %bb115
546         br label %cond_next124
547
548 cond_next124:           ; preds = %cond_false123, %cond_true119
549         br i1 false, label %cond_true131, label %cond_false132
550
551 cond_true131:           ; preds = %cond_next124
552         br label %cleanup135
553
554 cond_false132:          ; preds = %cond_next124
555         br label %cond_next133
556
557 cond_next133:           ; preds = %cond_false132
558         br label %cleanup136
559
560 cleanup135:             ; preds = %cond_true131
561         br label %done
562
563 cleanup136:             ; preds = %cond_next133
564         br label %finally134
565
566 finally134:             ; preds = %cleanup136
567         br label %bb139
568
569 bb139:          ; preds = %finally134, %bb40
570         br i1 false, label %cond_true142, label %cond_false143
571
572 cond_true142:           ; preds = %bb139
573         br label %bb41
574
575 cond_false143:          ; preds = %bb139
576         br label %bb145
577
578 cond_next144:           ; No predecessors!
579         br label %bb145
580
581 bb145:          ; preds = %cond_next144, %cond_false143
582         br label %bb148
583
584 bb148:          ; preds = %bb145, %bb38
585         br i1 false, label %cond_true156, label %cond_false157
586
587 cond_true156:           ; preds = %bb148
588         br label %bb40
589
590 cond_false157:          ; preds = %bb148
591         br label %bb159
592
593 cond_next158:           ; No predecessors!
594         br label %bb159
595
596 bb159:          ; preds = %cond_next158, %cond_false157
597         br label %done
598
599 done:           ; preds = %bb159, %cleanup135
600         br label %bb214
601
602 bb185:          ; preds = %cond_true218
603         br i1 false, label %cond_true193, label %cond_false206
604
605 cond_true193:           ; preds = %bb185
606         br label %cond_next211
607
608 cond_false206:          ; preds = %bb185
609         br label %cond_next211
610
611 cond_next211:           ; preds = %cond_false206, %cond_true193
612         br label %bb214
613
614 bb214:          ; preds = %cond_next211, %done
615         br i1 false, label %cond_true218, label %cond_false219
616
617 cond_true218:           ; preds = %bb214
618         br label %bb185
619
620 cond_false219:          ; preds = %bb214
621         br label %bb221
622
623 cond_next220:           ; No predecessors!
624         br label %bb221
625
626 bb221:          ; preds = %cond_next220, %cond_false219
627         br i1 false, label %cond_true236, label %cond_false245
628
629 cond_true236:           ; preds = %bb221
630         br label %cond_next249
631
632 cond_false245:          ; preds = %bb221
633         br label %cond_next249
634
635 cond_next249:           ; preds = %cond_false245, %cond_true236
636         br i1 false, label %cond_true272, label %cond_false277
637
638 cond_true272:           ; preds = %cond_next249
639         br label %cond_next278
640
641 cond_false277:          ; preds = %cond_next249
642         br label %cond_next278
643
644 cond_next278:           ; preds = %cond_false277, %cond_true272
645         br label %cleanup285
646
647 cleanup285:             ; preds = %cond_next278
648         br label %finally284
649
650 finally284:             ; preds = %cleanup285
651         br label %cond_next287
652
653 cond_false286:          ; preds = %finally10
654         br label %cond_next287
655
656 cond_next287:           ; preds = %cond_false286, %finally284
657         br i1 false, label %cond_true317, label %cond_false319
658
659 cond_true317:           ; preds = %cond_next287
660         br label %cond_next321
661
662 cond_false319:          ; preds = %cond_next287
663         br label %cond_next321
664
665 cond_next321:           ; preds = %cond_false319, %cond_true317
666         br label %bb348
667
668 bb335:          ; preds = %cond_true355
669         br label %bb348
670
671 bb348:          ; preds = %bb335, %cond_next321
672         br i1 false, label %cond_true355, label %cond_false356
673
674 cond_true355:           ; preds = %bb348
675         br label %bb335
676
677 cond_false356:          ; preds = %bb348
678         br label %bb358
679
680 cond_next357:           ; No predecessors!
681         br label %bb358
682
683 bb358:          ; preds = %cond_next357, %cond_false356
684         br i1 false, label %cond_true363, label %cond_false364
685
686 cond_true363:           ; preds = %bb358
687         br label %bb388
688
689 cond_false364:          ; preds = %bb358
690         br label %cond_next365
691
692 cond_next365:           ; preds = %cond_false364
693         br i1 false, label %cond_true370, label %cond_false371
694
695 cond_true370:           ; preds = %cond_next365
696         br label %bb388
697
698 cond_false371:          ; preds = %cond_next365
699         br label %cond_next372
700
701 cond_next372:           ; preds = %cond_false371
702         br i1 false, label %cond_true385, label %cond_false386
703
704 cond_true385:           ; preds = %cond_next372
705         br label %bb388
706
707 cond_false386:          ; preds = %cond_next372
708         br label %cond_next387
709
710 cond_next387:           ; preds = %cond_false386
711         br label %bb389
712
713 bb388:          ; preds = %cond_true385, %cond_true370, %cond_true363
714         br label %bb389
715
716 bb389:          ; preds = %bb388, %cond_next387
717         br i1 false, label %cond_true392, label %cond_false443
718
719 cond_true392:           ; preds = %bb389
720         br label %bb419
721
722 bb402:          ; preds = %cond_true425
723         br i1 false, label %cond_true406, label %cond_false412
724
725 cond_true406:           ; preds = %bb402
726         br label %cond_next416
727
728 cond_false412:          ; preds = %bb402
729         br label %cond_next416
730
731 cond_next416:           ; preds = %cond_false412, %cond_true406
732         br label %bb419
733
734 bb419:          ; preds = %cond_next416, %cond_true392
735         br i1 false, label %cond_true425, label %cond_false426
736
737 cond_true425:           ; preds = %bb419
738         br label %bb402
739
740 cond_false426:          ; preds = %bb419
741         br label %bb428
742
743 cond_next427:           ; No predecessors!
744         br label %bb428
745
746 bb428:          ; preds = %cond_next427, %cond_false426
747         br label %cond_next478
748
749 cond_false443:          ; preds = %bb389
750         br label %bb460
751
752 bb450:          ; preds = %cond_true466
753         br label %bb460
754
755 bb460:          ; preds = %bb450, %cond_false443
756         br i1 false, label %cond_true466, label %cond_false467
757
758 cond_true466:           ; preds = %bb460
759         br label %bb450
760
761 cond_false467:          ; preds = %bb460
762         br label %bb469
763
764 cond_next468:           ; No predecessors!
765         br label %bb469
766
767 bb469:          ; preds = %cond_next468, %cond_false467
768         br label %cond_next478
769
770 cond_next478:           ; preds = %bb469, %bb428
771         br label %cleanup485
772
773 cleanup485:             ; preds = %cond_next478
774         br label %finally484
775
776 finally484:             ; preds = %cleanup485
777         br label %cleanup487
778
779 cleanup487:             ; preds = %finally484
780         br label %finally486
781
782 finally486:             ; preds = %cleanup487
783         br label %cleanup489
784
785 cleanup489:             ; preds = %finally486
786         br label %finally488
787
788 finally488:             ; preds = %cleanup489
789         br label %bb492
790
791 bb492:          ; preds = %finally488, %entry
792         br i1 false, label %cond_true499, label %cond_false500
793
794 cond_true499:           ; preds = %bb492
795         br label %bb
796
797 cond_false500:          ; preds = %bb492
798         br label %bb502
799
800 cond_next501:           ; No predecessors!
801         br label %bb502
802
803 bb502:          ; preds = %cond_next501, %cond_false500
804         br label %return
805
806 return:         ; preds = %bb502
807         ret void
808 }
809
810 define internal fastcc void @_ZSt26__unguarded_insertion_sortIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEEvT_S7_() {
811 entry:
812         br label %bb12
813
814 bb:             ; preds = %cond_true
815         br label %cleanup
816
817 cleanup:                ; preds = %bb
818         br label %finally
819
820 finally:                ; preds = %cleanup
821         br label %bb12
822
823 bb12:           ; preds = %finally, %entry
824         br i1 false, label %cond_true, label %cond_false
825
826 cond_true:              ; preds = %bb12
827         br label %bb
828
829 cond_false:             ; preds = %bb12
830         br label %bb14
831
832 cond_next:              ; No predecessors!
833         br label %bb14
834
835 bb14:           ; preds = %cond_next, %cond_false
836         br label %return
837
838 return:         ; preds = %bb14
839         ret void
840 }