summaryrefslogtreecommitdiff
path: root/test/Transforms/LoopIndexSplit
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-02-14 23:18:47 +0000
committerDevang Patel <dpatel@apple.com>2008-02-14 23:18:47 +0000
commit9b03daa2a3a668e4313e0d869bb10aad5b08262a (patch)
treeddca8e253b188c8457ffd85b0e34846b00884a5e /test/Transforms/LoopIndexSplit
parent5a0e7b41c1b6cb2d9b4d877996c09f0ad7235572 (diff)
downloadllvm-9b03daa2a3a668e4313e0d869bb10aad5b08262a.tar.gz
llvm-9b03daa2a3a668e4313e0d869bb10aad5b08262a.tar.bz2
llvm-9b03daa2a3a668e4313e0d869bb10aad5b08262a.tar.xz
If loop header is also loop exiting block then OrigPN is incoming value for B loop header.
Fixes PR 2030. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47141 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopIndexSplit')
-rw-r--r--test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll464
1 files changed, 464 insertions, 0 deletions
diff --git a/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll b/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll
new file mode 100644
index 0000000000..2ee51e1494
--- /dev/null
+++ b/test/Transforms/LoopIndexSplit/2008-02-14-Crash.ll
@@ -0,0 +1,464 @@
+; 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
+}