blob: 2ee51e14948cde3cb6868346c583e3c2911b49a7 [file] [log] [blame]
; RUN: llvm-as < %s | opt -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
}