mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
Fixes PR 2030. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47141 91177308-0d34-0410-b5e6-96231b3b80d8
465 lines
9.4 KiB
LLVM
465 lines
9.4 KiB
LLVM
; 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
|
|
}
|