1 ; RUN: opt < %s -loop-index-split -disable-output
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) {
7 br i1 false, label %bb, label %entry.bb30_crit_edge
9 entry.bb30_crit_edge: ; preds = %entry
18 bb14: ; preds = %bb6, %bb
19 br i1 false, label %bb6, label %bb22
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
42 bb30.bb142_crit_edge5: ; preds = %bb30
45 bb30.bb142_crit_edge4: ; preds = %bb30
48 bb30.bb142_crit_edge: ; preds = %bb30
51 bb30.bb108_crit_edge3: ; preds = %bb30
54 bb30.bb108_crit_edge: ; preds = %bb30
57 bb30.bb32_crit_edge2: ; preds = %bb30
60 bb30.bb32_crit_edge1: ; preds = %bb30
63 bb30.bb32_crit_edge: ; preds = %bb30
66 bb32: ; preds = %bb30.bb32_crit_edge, %bb30.bb32_crit_edge1, %bb30.bb32_crit_edge2
67 br i1 false, label %bb53, label %bb52
75 bb58: ; preds = %bb101
79 br i1 false, label %bb64.bb87_crit_edge, label %bb72
81 bb64.bb87_crit_edge: ; preds = %bb64
85 br i1 false, label %bb72.bb87_crit_edge, label %bb79
87 bb72.bb87_crit_edge: ; preds = %bb72
93 bb87: ; preds = %bb79, %bb72.bb87_crit_edge, %bb64.bb87_crit_edge
96 bb92: ; preds = %bb87, %bb58
97 br i1 false, label %bb64, label %bb98
102 bb101: ; preds = %bb98, %bb53
103 br i1 false, label %bb58, label %bb107
105 bb107: ; preds = %bb101
108 bb108: ; preds = %bb30.bb108_crit_edge, %bb30.bb108_crit_edge3
109 br i1 false, label %bb125, label %bb124
111 bb124: ; preds = %bb108
114 bb125: ; preds = %bb108
115 br i1 false, label %bb138, label %bb139
117 bb138: ; preds = %bb125
120 bb139: ; preds = %bb125
123 bb140: ; preds = %bb139, %bb138
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
132 bb161: ; preds = %bb142
133 br i1 false, label %bb170, label %bb161.bb171_crit_edge
135 bb161.bb171_crit_edge: ; preds = %bb161
138 bb170: ; preds = %bb161
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
147 bb176: ; preds = %bb171
150 bb177: ; preds = %bb176, %bb171.bb177_crit_edge
153 bb178: ; preds = %bb227
156 bb184: ; preds = %bb218
157 br i1 false, label %bb191, label %bb193
159 bb191: ; preds = %bb184
162 bb193: ; preds = %bb184
163 br i1 false, label %bb200, label %bb203
165 bb200: ; preds = %bb193
168 bb203: ; preds = %bb193
169 br i1 false, label %bb210, label %bb203.bb213_crit_edge
171 bb203.bb213_crit_edge: ; preds = %bb203
174 bb210: ; preds = %bb203
177 bb213: ; preds = %bb210, %bb203.bb213_crit_edge, %bb200, %bb191
180 bb218: ; preds = %bb213, %bb178
181 br i1 false, label %bb184, label %bb224
183 bb224: ; preds = %bb218
186 bb227: ; preds = %bb224, %bb177
187 br i1 false, label %bb178, label %bb233
189 bb233: ; preds = %bb227
192 bb234: ; preds = %bb30
193 br i1 false, label %bb253, label %bb252
195 bb252: ; preds = %bb234
198 bb253: ; preds = %bb234
201 bb258: ; preds = %bb285
204 bb264: ; preds = %bb276
207 bb276: ; preds = %bb264, %bb258
208 br i1 false, label %bb264, label %bb282
210 bb282: ; preds = %bb276
213 bb285: ; preds = %bb282, %bb253
214 br i1 false, label %bb258, label %bb291
216 bb291: ; preds = %bb285
219 bb292: ; preds = %bb30
220 br i1 false, label %bb311, label %bb310
222 bb310: ; preds = %bb292
225 bb311: ; preds = %bb292
228 bb316: ; preds = %bb346
231 bb322: ; preds = %bb337
234 bb337: ; preds = %bb322, %bb316
235 br i1 false, label %bb322, label %bb343
237 bb343: ; preds = %bb337
240 bb346: ; preds = %bb343, %bb311
241 br i1 false, label %bb316, label %bb352
243 bb352: ; preds = %bb346
246 bb353: ; preds = %bb30
247 br i1 false, label %bb372, label %bb371
249 bb371: ; preds = %bb353
252 bb372: ; preds = %bb353
255 bb377: ; preds = %bb412
258 bb383: ; preds = %bb403
259 br i1 false, label %bb395, label %bb389
261 bb389: ; preds = %bb383
264 bb395: ; preds = %bb383
267 bb396: ; preds = %bb395, %bb389
270 bb403: ; preds = %bb396, %bb377
271 br i1 false, label %bb383, label %bb409
273 bb409: ; preds = %bb403
276 bb412: ; preds = %bb409, %bb372
277 br i1 false, label %bb377, label %bb418
279 bb418: ; preds = %bb412
282 bb419: ; preds = %bb30
283 br i1 false, label %bb438, label %bb437
285 bb437: ; preds = %bb419
288 bb438: ; preds = %bb419
291 bb443: ; preds = %bb478
294 bb449: ; preds = %bb469
295 br i1 false, label %bb461, label %bb455
297 bb455: ; preds = %bb449
300 bb461: ; preds = %bb449
303 bb462: ; preds = %bb461, %bb455
306 bb469: ; preds = %bb462, %bb443
307 br i1 false, label %bb449, label %bb475
309 bb475: ; preds = %bb469
312 bb478: ; preds = %bb475, %bb438
313 br i1 false, label %bb443, label %bb484
315 bb484: ; preds = %bb478
318 bb485: ; preds = %bb30
319 br i1 false, label %bb504, label %bb503
321 bb503: ; preds = %bb485
324 bb504: ; preds = %bb485
327 bb513: ; preds = %bb560
330 bb519: ; preds = %bb551
331 br i1 false, label %bb528, label %bb532
333 bb528: ; preds = %bb519
336 bb532: ; preds = %bb519
339 bb536: ; preds = %bb532, %bb528
342 bb551: ; preds = %bb536, %bb513
343 br i1 false, label %bb519, label %bb557
345 bb557: ; preds = %bb551
348 bb560: ; preds = %bb557, %bb504
349 br i1 false, label %bb513, label %bb566
351 bb566: ; preds = %bb560
354 bb567: ; preds = %bb30
355 br i1 false, label %bb586, label %bb585
357 bb585: ; preds = %bb567
360 bb586: ; preds = %bb567
363 bb595: ; preds = %bb641
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
373 bb611: ; preds = %bb601
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]
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
390 bb641: ; preds = %bb638, %bb586
391 br i1 false, label %bb595, label %bb647
393 bb647: ; preds = %bb641
396 bb648: ; preds = %bb30
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
405 bb658: ; preds = %bb651
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
414 bb666: ; preds = %bb661
417 bb670: ; preds = %bb680
420 bb680: ; preds = %bb670, %bb666
421 br i1 false, label %bb670, label %bb680.bb686_crit_edge
423 bb680.bb686_crit_edge: ; preds = %bb680
426 bb686: ; preds = %bb680.bb686_crit_edge, %bb661.bb686_crit_edge
427 br i1 false, label %bb699, label %bb696
429 bb696: ; preds = %bb686
432 bb699: ; preds = %bb686
433 br i1 false, label %bb712, label %bb709
435 bb709: ; preds = %bb699
438 bb712: ; preds = %bb699
439 br i1 false, label %bb717, label %bb712.bb720_crit_edge
441 bb712.bb720_crit_edge: ; preds = %bb712
444 bb717: ; preds = %bb712
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
453 bb725: ; preds = %bb720
456 bb738: ; preds = %bb725, %bb720.bb738_crit_edge
459 bb739: ; preds = %bb738, %bb709, %bb696, %bb648, %bb585, %bb503, %bb437, %bb371, %bb310, %bb252, %bb160, %bb124, %bb52
462 return: ; preds = %bb739