; RUN: opt < %s -loop-index-split -disable-output
; PR 2030
	%struct.FULL = type { i32, i32, [1000 x float*] }

define i32 @matgen(%struct.FULL* %a, float** %x, float** %b, float** %bt, i32** %ipvt, i32 %test_case, i32 %scale) {
entry:
	br i1 false, label %bb, label %entry.bb30_crit_edge

entry.bb30_crit_edge:		; preds = %entry
	br label %bb30

bb:		; preds = %entry
	br label %bb14

bb6:		; preds = %bb14
	br label %bb14

bb14:		; preds = %bb6, %bb
	br i1 false, label %bb6, label %bb22

bb22:		; preds = %bb14
	br label %bb30

bb30:		; preds = %bb22, %entry.bb30_crit_edge
	switch i32 %test_case, label %bb648 [
		 i32 1, label %bb30.bb32_crit_edge
		 i32 2, label %bb30.bb32_crit_edge1
		 i32 3, label %bb30.bb32_crit_edge2
		 i32 4, label %bb30.bb108_crit_edge
		 i32 5, label %bb30.bb108_crit_edge3
		 i32 6, label %bb30.bb142_crit_edge
		 i32 7, label %bb30.bb142_crit_edge4
		 i32 8, label %bb30.bb142_crit_edge5
		 i32 9, label %bb234
		 i32 10, label %bb292
		 i32 11, label %bb353
		 i32 12, label %bb419
		 i32 13, label %bb485
		 i32 14, label %bb567
	]

bb30.bb142_crit_edge5:		; preds = %bb30
	br label %bb142

bb30.bb142_crit_edge4:		; preds = %bb30
	br label %bb142

bb30.bb142_crit_edge:		; preds = %bb30
	br label %bb142

bb30.bb108_crit_edge3:		; preds = %bb30
	br label %bb108

bb30.bb108_crit_edge:		; preds = %bb30
	br label %bb108

bb30.bb32_crit_edge2:		; preds = %bb30
	br label %bb32

bb30.bb32_crit_edge1:		; preds = %bb30
	br label %bb32

bb30.bb32_crit_edge:		; preds = %bb30
	br label %bb32

bb32:		; preds = %bb30.bb32_crit_edge, %bb30.bb32_crit_edge1, %bb30.bb32_crit_edge2
	br i1 false, label %bb53, label %bb52

bb52:		; preds = %bb32
	br label %bb739

bb53:		; preds = %bb32
	br label %bb101

bb58:		; preds = %bb101
	br label %bb92

bb64:		; preds = %bb92
	br i1 false, label %bb64.bb87_crit_edge, label %bb72

bb64.bb87_crit_edge:		; preds = %bb64
	br label %bb87

bb72:		; preds = %bb64
	br i1 false, label %bb72.bb87_crit_edge, label %bb79

bb72.bb87_crit_edge:		; preds = %bb72
	br label %bb87

bb79:		; preds = %bb72
	br label %bb87

bb87:		; preds = %bb79, %bb72.bb87_crit_edge, %bb64.bb87_crit_edge
	br label %bb92

bb92:		; preds = %bb87, %bb58
	br i1 false, label %bb64, label %bb98

bb98:		; preds = %bb92
	br label %bb101

bb101:		; preds = %bb98, %bb53
	br i1 false, label %bb58, label %bb107

bb107:		; preds = %bb101
	br label %bb651

bb108:		; preds = %bb30.bb108_crit_edge, %bb30.bb108_crit_edge3
	br i1 false, label %bb125, label %bb124

bb124:		; preds = %bb108
	br label %bb739

bb125:		; preds = %bb108
	br i1 false, label %bb138, label %bb139

bb138:		; preds = %bb125
	br label %bb140

bb139:		; preds = %bb125
	br label %bb140

bb140:		; preds = %bb139, %bb138
	br label %bb651

bb142:		; preds = %bb30.bb142_crit_edge, %bb30.bb142_crit_edge4, %bb30.bb142_crit_edge5
	br i1 false, label %bb161, label %bb160

bb160:		; preds = %bb142
	br label %bb739

bb161:		; preds = %bb142
	br i1 false, label %bb170, label %bb161.bb171_crit_edge

bb161.bb171_crit_edge:		; preds = %bb161
	br label %bb171

bb170:		; preds = %bb161
	br label %bb171

bb171:		; preds = %bb170, %bb161.bb171_crit_edge
	br i1 false, label %bb176, label %bb171.bb177_crit_edge

bb171.bb177_crit_edge:		; preds = %bb171
	br label %bb177

bb176:		; preds = %bb171
	br label %bb177

bb177:		; preds = %bb176, %bb171.bb177_crit_edge
	br label %bb227

bb178:		; preds = %bb227
	br label %bb218

bb184:		; preds = %bb218
	br i1 false, label %bb191, label %bb193

bb191:		; preds = %bb184
	br label %bb213

bb193:		; preds = %bb184
	br i1 false, label %bb200, label %bb203

bb200:		; preds = %bb193
	br label %bb213

bb203:		; preds = %bb193
	br i1 false, label %bb210, label %bb203.bb213_crit_edge

bb203.bb213_crit_edge:		; preds = %bb203
	br label %bb213

bb210:		; preds = %bb203
	br label %bb213

bb213:		; preds = %bb210, %bb203.bb213_crit_edge, %bb200, %bb191
	br label %bb218

bb218:		; preds = %bb213, %bb178
	br i1 false, label %bb184, label %bb224

bb224:		; preds = %bb218
	br label %bb227

bb227:		; preds = %bb224, %bb177
	br i1 false, label %bb178, label %bb233

bb233:		; preds = %bb227
	br label %bb651

bb234:		; preds = %bb30
	br i1 false, label %bb253, label %bb252

bb252:		; preds = %bb234
	br label %bb739

bb253:		; preds = %bb234
	br label %bb285

bb258:		; preds = %bb285
	br label %bb276

bb264:		; preds = %bb276
	br label %bb276

bb276:		; preds = %bb264, %bb258
	br i1 false, label %bb264, label %bb282

bb282:		; preds = %bb276
	br label %bb285

bb285:		; preds = %bb282, %bb253
	br i1 false, label %bb258, label %bb291

bb291:		; preds = %bb285
	br label %bb651

bb292:		; preds = %bb30
	br i1 false, label %bb311, label %bb310

bb310:		; preds = %bb292
	br label %bb739

bb311:		; preds = %bb292
	br label %bb346

bb316:		; preds = %bb346
	br label %bb337

bb322:		; preds = %bb337
	br label %bb337

bb337:		; preds = %bb322, %bb316
	br i1 false, label %bb322, label %bb343

bb343:		; preds = %bb337
	br label %bb346

bb346:		; preds = %bb343, %bb311
	br i1 false, label %bb316, label %bb352

bb352:		; preds = %bb346
	br label %bb651

bb353:		; preds = %bb30
	br i1 false, label %bb372, label %bb371

bb371:		; preds = %bb353
	br label %bb739

bb372:		; preds = %bb353
	br label %bb412

bb377:		; preds = %bb412
	br label %bb403

bb383:		; preds = %bb403
	br i1 false, label %bb395, label %bb389

bb389:		; preds = %bb383
	br label %bb396

bb395:		; preds = %bb383
	br label %bb396

bb396:		; preds = %bb395, %bb389
	br label %bb403

bb403:		; preds = %bb396, %bb377
	br i1 false, label %bb383, label %bb409

bb409:		; preds = %bb403
	br label %bb412

bb412:		; preds = %bb409, %bb372
	br i1 false, label %bb377, label %bb418

bb418:		; preds = %bb412
	br label %bb651

bb419:		; preds = %bb30
	br i1 false, label %bb438, label %bb437

bb437:		; preds = %bb419
	br label %bb739

bb438:		; preds = %bb419
	br label %bb478

bb443:		; preds = %bb478
	br label %bb469

bb449:		; preds = %bb469
	br i1 false, label %bb461, label %bb455

bb455:		; preds = %bb449
	br label %bb462

bb461:		; preds = %bb449
	br label %bb462

bb462:		; preds = %bb461, %bb455
	br label %bb469

bb469:		; preds = %bb462, %bb443
	br i1 false, label %bb449, label %bb475

bb475:		; preds = %bb469
	br label %bb478

bb478:		; preds = %bb475, %bb438
	br i1 false, label %bb443, label %bb484

bb484:		; preds = %bb478
	br label %bb651

bb485:		; preds = %bb30
	br i1 false, label %bb504, label %bb503

bb503:		; preds = %bb485
	br label %bb739

bb504:		; preds = %bb485
	br label %bb560

bb513:		; preds = %bb560
	br label %bb551

bb519:		; preds = %bb551
	br i1 false, label %bb528, label %bb532

bb528:		; preds = %bb519
	br label %bb536

bb532:		; preds = %bb519
	br label %bb536

bb536:		; preds = %bb532, %bb528
	br label %bb551

bb551:		; preds = %bb536, %bb513
	br i1 false, label %bb519, label %bb557

bb557:		; preds = %bb551
	br label %bb560

bb560:		; preds = %bb557, %bb504
	br i1 false, label %bb513, label %bb566

bb566:		; preds = %bb560
	br label %bb651

bb567:		; preds = %bb30
	br i1 false, label %bb586, label %bb585

bb585:		; preds = %bb567
	br label %bb739

bb586:		; preds = %bb567
	br label %bb641

bb595:		; preds = %bb641
	br label %bb632

bb601:		; preds = %bb632
	%tmp604 = icmp sgt i32 %i.7, 0		; <i1> [#uses=1]
	br i1 %tmp604, label %bb607, label %bb611

bb607:		; preds = %bb601
	br label %bb615

bb611:		; preds = %bb601
	br label %bb615

bb615:		; preds = %bb611, %bb607
	%tmp629 = add i32 %i.7, 1		; <i32> [#uses=1]
	%tmp631 = getelementptr float* %col.7, i32 1		; <float*> [#uses=1]
	br label %bb632

bb632:		; preds = %bb615, %bb595
	%col.7 = phi float* [ null, %bb595 ], [ %tmp631, %bb615 ]		; <float*> [#uses=1]
	%i.7 = phi i32 [ 0, %bb595 ], [ %tmp629, %bb615 ]		; <i32> [#uses=3]
	%tmp635 = icmp slt i32 %i.7, 0		; <i1> [#uses=1]
	br i1 %tmp635, label %bb601, label %bb638

bb638:		; preds = %bb632
	br label %bb641

bb641:		; preds = %bb638, %bb586
	br i1 false, label %bb595, label %bb647

bb647:		; preds = %bb641
	br label %bb651

bb648:		; preds = %bb30
	br label %bb739

bb651:		; preds = %bb647, %bb566, %bb484, %bb418, %bb352, %bb291, %bb233, %bb140, %bb107
	br i1 false, label %bb658, label %bb651.bb661_crit_edge

bb651.bb661_crit_edge:		; preds = %bb651
	br label %bb661

bb658:		; preds = %bb651
	br label %bb661

bb661:		; preds = %bb658, %bb651.bb661_crit_edge
	br i1 false, label %bb666, label %bb661.bb686_crit_edge

bb661.bb686_crit_edge:		; preds = %bb661
	br label %bb686

bb666:		; preds = %bb661
	br label %bb680

bb670:		; preds = %bb680
	br label %bb680

bb680:		; preds = %bb670, %bb666
	br i1 false, label %bb670, label %bb680.bb686_crit_edge

bb680.bb686_crit_edge:		; preds = %bb680
	br label %bb686

bb686:		; preds = %bb680.bb686_crit_edge, %bb661.bb686_crit_edge
	br i1 false, label %bb699, label %bb696

bb696:		; preds = %bb686
	br label %bb739

bb699:		; preds = %bb686
	br i1 false, label %bb712, label %bb709

bb709:		; preds = %bb699
	br label %bb739

bb712:		; preds = %bb699
	br i1 false, label %bb717, label %bb712.bb720_crit_edge

bb712.bb720_crit_edge:		; preds = %bb712
	br label %bb720

bb717:		; preds = %bb712
	br label %bb720

bb720:		; preds = %bb717, %bb712.bb720_crit_edge
	br i1 false, label %bb725, label %bb720.bb738_crit_edge

bb720.bb738_crit_edge:		; preds = %bb720
	br label %bb738

bb725:		; preds = %bb720
	br label %bb738

bb738:		; preds = %bb725, %bb720.bb738_crit_edge
	br label %bb739

bb739:		; preds = %bb738, %bb709, %bb696, %bb648, %bb585, %bb503, %bb437, %bb371, %bb310, %bb252, %bb160, %bb124, %bb52
	br label %return

return:		; preds = %bb739
	ret i32 0
}
