fix PR4963: folding insertvalue would sometimes turn a packed struct into
[llvm/avr.git] / test / Transforms / LoopIndexSplit / 2008-02-14-Crash.ll
blobf1a03e2f18a96bdb09ee3ca56554b046ff7c7b5b
1 ; RUN: opt < %s -loop-index-split -disable-output
2 ; PR 2030
3         %struct.FULL = type { i32, i32, [1000 x float*] }
5 define i32 @matgen(%struct.FULL* %a, float** %x, float** %b, float** %bt, i32** %ipvt, i32 %test_case, i32 %scale) {
6 entry:
7         br i1 false, label %bb, label %entry.bb30_crit_edge
9 entry.bb30_crit_edge:           ; preds = %entry
10         br label %bb30
12 bb:             ; preds = %entry
13         br label %bb14
15 bb6:            ; preds = %bb14
16         br label %bb14
18 bb14:           ; preds = %bb6, %bb
19         br i1 false, label %bb6, label %bb22
21 bb22:           ; preds = %bb14
22         br label %bb30
24 bb30:           ; preds = %bb22, %entry.bb30_crit_edge
25         switch i32 %test_case, label %bb648 [
26                  i32 1, label %bb30.bb32_crit_edge
27                  i32 2, label %bb30.bb32_crit_edge1
28                  i32 3, label %bb30.bb32_crit_edge2
29                  i32 4, label %bb30.bb108_crit_edge
30                  i32 5, label %bb30.bb108_crit_edge3
31                  i32 6, label %bb30.bb142_crit_edge
32                  i32 7, label %bb30.bb142_crit_edge4
33                  i32 8, label %bb30.bb142_crit_edge5
34                  i32 9, label %bb234
35                  i32 10, label %bb292
36                  i32 11, label %bb353
37                  i32 12, label %bb419
38                  i32 13, label %bb485
39                  i32 14, label %bb567
40         ]
42 bb30.bb142_crit_edge5:          ; preds = %bb30
43         br label %bb142
45 bb30.bb142_crit_edge4:          ; preds = %bb30
46         br label %bb142
48 bb30.bb142_crit_edge:           ; preds = %bb30
49         br label %bb142
51 bb30.bb108_crit_edge3:          ; preds = %bb30
52         br label %bb108
54 bb30.bb108_crit_edge:           ; preds = %bb30
55         br label %bb108
57 bb30.bb32_crit_edge2:           ; preds = %bb30
58         br label %bb32
60 bb30.bb32_crit_edge1:           ; preds = %bb30
61         br label %bb32
63 bb30.bb32_crit_edge:            ; preds = %bb30
64         br label %bb32
66 bb32:           ; preds = %bb30.bb32_crit_edge, %bb30.bb32_crit_edge1, %bb30.bb32_crit_edge2
67         br i1 false, label %bb53, label %bb52
69 bb52:           ; preds = %bb32
70         br label %bb739
72 bb53:           ; preds = %bb32
73         br label %bb101
75 bb58:           ; preds = %bb101
76         br label %bb92
78 bb64:           ; preds = %bb92
79         br i1 false, label %bb64.bb87_crit_edge, label %bb72
81 bb64.bb87_crit_edge:            ; preds = %bb64
82         br label %bb87
84 bb72:           ; preds = %bb64
85         br i1 false, label %bb72.bb87_crit_edge, label %bb79
87 bb72.bb87_crit_edge:            ; preds = %bb72
88         br label %bb87
90 bb79:           ; preds = %bb72
91         br label %bb87
93 bb87:           ; preds = %bb79, %bb72.bb87_crit_edge, %bb64.bb87_crit_edge
94         br label %bb92
96 bb92:           ; preds = %bb87, %bb58
97         br i1 false, label %bb64, label %bb98
99 bb98:           ; preds = %bb92
100         br label %bb101
102 bb101:          ; preds = %bb98, %bb53
103         br i1 false, label %bb58, label %bb107
105 bb107:          ; preds = %bb101
106         br label %bb651
108 bb108:          ; preds = %bb30.bb108_crit_edge, %bb30.bb108_crit_edge3
109         br i1 false, label %bb125, label %bb124
111 bb124:          ; preds = %bb108
112         br label %bb739
114 bb125:          ; preds = %bb108
115         br i1 false, label %bb138, label %bb139
117 bb138:          ; preds = %bb125
118         br label %bb140
120 bb139:          ; preds = %bb125
121         br label %bb140
123 bb140:          ; preds = %bb139, %bb138
124         br label %bb651
126 bb142:          ; preds = %bb30.bb142_crit_edge, %bb30.bb142_crit_edge4, %bb30.bb142_crit_edge5
127         br i1 false, label %bb161, label %bb160
129 bb160:          ; preds = %bb142
130         br label %bb739
132 bb161:          ; preds = %bb142
133         br i1 false, label %bb170, label %bb161.bb171_crit_edge
135 bb161.bb171_crit_edge:          ; preds = %bb161
136         br label %bb171
138 bb170:          ; preds = %bb161
139         br label %bb171
141 bb171:          ; preds = %bb170, %bb161.bb171_crit_edge
142         br i1 false, label %bb176, label %bb171.bb177_crit_edge
144 bb171.bb177_crit_edge:          ; preds = %bb171
145         br label %bb177
147 bb176:          ; preds = %bb171
148         br label %bb177
150 bb177:          ; preds = %bb176, %bb171.bb177_crit_edge
151         br label %bb227
153 bb178:          ; preds = %bb227
154         br label %bb218
156 bb184:          ; preds = %bb218
157         br i1 false, label %bb191, label %bb193
159 bb191:          ; preds = %bb184
160         br label %bb213
162 bb193:          ; preds = %bb184
163         br i1 false, label %bb200, label %bb203
165 bb200:          ; preds = %bb193
166         br label %bb213
168 bb203:          ; preds = %bb193
169         br i1 false, label %bb210, label %bb203.bb213_crit_edge
171 bb203.bb213_crit_edge:          ; preds = %bb203
172         br label %bb213
174 bb210:          ; preds = %bb203
175         br label %bb213
177 bb213:          ; preds = %bb210, %bb203.bb213_crit_edge, %bb200, %bb191
178         br label %bb218
180 bb218:          ; preds = %bb213, %bb178
181         br i1 false, label %bb184, label %bb224
183 bb224:          ; preds = %bb218
184         br label %bb227
186 bb227:          ; preds = %bb224, %bb177
187         br i1 false, label %bb178, label %bb233
189 bb233:          ; preds = %bb227
190         br label %bb651
192 bb234:          ; preds = %bb30
193         br i1 false, label %bb253, label %bb252
195 bb252:          ; preds = %bb234
196         br label %bb739
198 bb253:          ; preds = %bb234
199         br label %bb285
201 bb258:          ; preds = %bb285
202         br label %bb276
204 bb264:          ; preds = %bb276
205         br label %bb276
207 bb276:          ; preds = %bb264, %bb258
208         br i1 false, label %bb264, label %bb282
210 bb282:          ; preds = %bb276
211         br label %bb285
213 bb285:          ; preds = %bb282, %bb253
214         br i1 false, label %bb258, label %bb291
216 bb291:          ; preds = %bb285
217         br label %bb651
219 bb292:          ; preds = %bb30
220         br i1 false, label %bb311, label %bb310
222 bb310:          ; preds = %bb292
223         br label %bb739
225 bb311:          ; preds = %bb292
226         br label %bb346
228 bb316:          ; preds = %bb346
229         br label %bb337
231 bb322:          ; preds = %bb337
232         br label %bb337
234 bb337:          ; preds = %bb322, %bb316
235         br i1 false, label %bb322, label %bb343
237 bb343:          ; preds = %bb337
238         br label %bb346
240 bb346:          ; preds = %bb343, %bb311
241         br i1 false, label %bb316, label %bb352
243 bb352:          ; preds = %bb346
244         br label %bb651
246 bb353:          ; preds = %bb30
247         br i1 false, label %bb372, label %bb371
249 bb371:          ; preds = %bb353
250         br label %bb739
252 bb372:          ; preds = %bb353
253         br label %bb412
255 bb377:          ; preds = %bb412
256         br label %bb403
258 bb383:          ; preds = %bb403
259         br i1 false, label %bb395, label %bb389
261 bb389:          ; preds = %bb383
262         br label %bb396
264 bb395:          ; preds = %bb383
265         br label %bb396
267 bb396:          ; preds = %bb395, %bb389
268         br label %bb403
270 bb403:          ; preds = %bb396, %bb377
271         br i1 false, label %bb383, label %bb409
273 bb409:          ; preds = %bb403
274         br label %bb412
276 bb412:          ; preds = %bb409, %bb372
277         br i1 false, label %bb377, label %bb418
279 bb418:          ; preds = %bb412
280         br label %bb651
282 bb419:          ; preds = %bb30
283         br i1 false, label %bb438, label %bb437
285 bb437:          ; preds = %bb419
286         br label %bb739
288 bb438:          ; preds = %bb419
289         br label %bb478
291 bb443:          ; preds = %bb478
292         br label %bb469
294 bb449:          ; preds = %bb469
295         br i1 false, label %bb461, label %bb455
297 bb455:          ; preds = %bb449
298         br label %bb462
300 bb461:          ; preds = %bb449
301         br label %bb462
303 bb462:          ; preds = %bb461, %bb455
304         br label %bb469
306 bb469:          ; preds = %bb462, %bb443
307         br i1 false, label %bb449, label %bb475
309 bb475:          ; preds = %bb469
310         br label %bb478
312 bb478:          ; preds = %bb475, %bb438
313         br i1 false, label %bb443, label %bb484
315 bb484:          ; preds = %bb478
316         br label %bb651
318 bb485:          ; preds = %bb30
319         br i1 false, label %bb504, label %bb503
321 bb503:          ; preds = %bb485
322         br label %bb739
324 bb504:          ; preds = %bb485
325         br label %bb560
327 bb513:          ; preds = %bb560
328         br label %bb551
330 bb519:          ; preds = %bb551
331         br i1 false, label %bb528, label %bb532
333 bb528:          ; preds = %bb519
334         br label %bb536
336 bb532:          ; preds = %bb519
337         br label %bb536
339 bb536:          ; preds = %bb532, %bb528
340         br label %bb551
342 bb551:          ; preds = %bb536, %bb513
343         br i1 false, label %bb519, label %bb557
345 bb557:          ; preds = %bb551
346         br label %bb560
348 bb560:          ; preds = %bb557, %bb504
349         br i1 false, label %bb513, label %bb566
351 bb566:          ; preds = %bb560
352         br label %bb651
354 bb567:          ; preds = %bb30
355         br i1 false, label %bb586, label %bb585
357 bb585:          ; preds = %bb567
358         br label %bb739
360 bb586:          ; preds = %bb567
361         br label %bb641
363 bb595:          ; preds = %bb641
364         br label %bb632
366 bb601:          ; preds = %bb632
367         %tmp604 = icmp sgt i32 %i.7, 0          ; <i1> [#uses=1]
368         br i1 %tmp604, label %bb607, label %bb611
370 bb607:          ; preds = %bb601
371         br label %bb615
373 bb611:          ; preds = %bb601
374         br label %bb615
376 bb615:          ; preds = %bb611, %bb607
377         %tmp629 = add i32 %i.7, 1               ; <i32> [#uses=1]
378         %tmp631 = getelementptr float* %col.7, i32 1            ; <float*> [#uses=1]
379         br label %bb632
381 bb632:          ; preds = %bb615, %bb595
382         %col.7 = phi float* [ null, %bb595 ], [ %tmp631, %bb615 ]               ; <float*> [#uses=1]
383         %i.7 = phi i32 [ 0, %bb595 ], [ %tmp629, %bb615 ]               ; <i32> [#uses=3]
384         %tmp635 = icmp slt i32 %i.7, 0          ; <i1> [#uses=1]
385         br i1 %tmp635, label %bb601, label %bb638
387 bb638:          ; preds = %bb632
388         br label %bb641
390 bb641:          ; preds = %bb638, %bb586
391         br i1 false, label %bb595, label %bb647
393 bb647:          ; preds = %bb641
394         br label %bb651
396 bb648:          ; preds = %bb30
397         br label %bb739
399 bb651:          ; preds = %bb647, %bb566, %bb484, %bb418, %bb352, %bb291, %bb233, %bb140, %bb107
400         br i1 false, label %bb658, label %bb651.bb661_crit_edge
402 bb651.bb661_crit_edge:          ; preds = %bb651
403         br label %bb661
405 bb658:          ; preds = %bb651
406         br label %bb661
408 bb661:          ; preds = %bb658, %bb651.bb661_crit_edge
409         br i1 false, label %bb666, label %bb661.bb686_crit_edge
411 bb661.bb686_crit_edge:          ; preds = %bb661
412         br label %bb686
414 bb666:          ; preds = %bb661
415         br label %bb680
417 bb670:          ; preds = %bb680
418         br label %bb680
420 bb680:          ; preds = %bb670, %bb666
421         br i1 false, label %bb670, label %bb680.bb686_crit_edge
423 bb680.bb686_crit_edge:          ; preds = %bb680
424         br label %bb686
426 bb686:          ; preds = %bb680.bb686_crit_edge, %bb661.bb686_crit_edge
427         br i1 false, label %bb699, label %bb696
429 bb696:          ; preds = %bb686
430         br label %bb739
432 bb699:          ; preds = %bb686
433         br i1 false, label %bb712, label %bb709
435 bb709:          ; preds = %bb699
436         br label %bb739
438 bb712:          ; preds = %bb699
439         br i1 false, label %bb717, label %bb712.bb720_crit_edge
441 bb712.bb720_crit_edge:          ; preds = %bb712
442         br label %bb720
444 bb717:          ; preds = %bb712
445         br label %bb720
447 bb720:          ; preds = %bb717, %bb712.bb720_crit_edge
448         br i1 false, label %bb725, label %bb720.bb738_crit_edge
450 bb720.bb738_crit_edge:          ; preds = %bb720
451         br label %bb738
453 bb725:          ; preds = %bb720
454         br label %bb738
456 bb738:          ; preds = %bb725, %bb720.bb738_crit_edge
457         br label %bb739
459 bb739:          ; preds = %bb738, %bb709, %bb696, %bb648, %bb585, %bb503, %bb437, %bb371, %bb310, %bb252, %bb160, %bb124, %bb52
460         br label %return
462 return:         ; preds = %bb739
463         ret i32 0