summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-09-08 15:45:00 +0000
committerDan Gohman <gohman@apple.com>2009-09-08 15:45:00 +0000
commit3ddbc242fb75acea7df2d8525810b5449a31d6d7 (patch)
tree9486151ecfef9c120c62a786c58c886386ac1fe3 /llvm/test
parent59e2b8e8949d78585dcc5dc3e985d247fb6be52a (diff)
downloadbcm5719-llvm-3ddbc242fb75acea7df2d8525810b5449a31d6d7.tar.gz
bcm5719-llvm-3ddbc242fb75acea7df2d8525810b5449a31d6d7.zip
Re-apply r80926, with fixes: keep the domtree informed of new blocks
that get created during loop unswitching, and fix SplitBlockPredecessors' LCSSA updating code to create new PHIs instead of trying to just move existing ones. Also, optimize Loop::verifyLoop, since it gets called a lot. Use searches on a sorted list of blocks instead of calling the "contains" function, as is done in other places in the Loop class, since "contains" does a linear search. Also, don't call verifyLoop from LoopSimplify or LCSSA, as the PassManager is already calling verifyLoop as part of LoopInfo's verifyAnalysis. llvm-svn: 81221
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/LoopUnswitch/2009-09-05-DomAssert.ll52
-rw-r--r--llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll645
2 files changed, 645 insertions, 52 deletions
diff --git a/llvm/test/Transforms/LoopUnswitch/2009-09-05-DomAssert.ll b/llvm/test/Transforms/LoopUnswitch/2009-09-05-DomAssert.ll
deleted file mode 100644
index 02580851ec6..00000000000
--- a/llvm/test/Transforms/LoopUnswitch/2009-09-05-DomAssert.ll
+++ /dev/null
@@ -1,52 +0,0 @@
-; RUN: llvm-as < %s | opt -loop-unswitch -disable-output
-; rdar://7197574
-
-target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:32"
-target triple = "thumbv7-apple-darwin9"
- %struct.frame = type { i16*, i16*, i16* }
-
-declare arm_apcscc i32 @ercCollect8PredBlocks(i32* nocapture, i32, i32, i32* nocapture, i32, i32, i32, i8 zeroext) nounwind
-
-define arm_apcscc void @concealBlocks(i32 %lastColumn, i32 %lastRow, i32 %comp, %struct.frame* nocapture %recfr, i32 %picSizeX, i32* nocapture %condition) nounwind {
-entry:
- br i1 undef, label %bb.nph12, label %return
-
-bb28: ; preds = %bb.nph12
- unreachable
-
-bb42: ; preds = %bb.nph12
- br label %bb43
-
-bb43: ; preds = %bb61, %bb42
- %0 = call arm_apcscc i32 @ercCollect8PredBlocks(i32* undef, i32 undef, i32 0, i32* %condition, i32 %lastRow, i32 %lastColumn, i32 undef, i8 zeroext 1) nounwind ; <i32> [#uses=0]
- switch i32 %comp, label %bb58 [
- i32 0, label %bb52
- i32 1, label %bb54
- i32 2, label %bb56
- ]
-
-bb52: ; preds = %bb43
- br label %bb58
-
-bb54: ; preds = %bb43
- br label %bb58
-
-bb56: ; preds = %bb43
- unreachable
-
-bb58: ; preds = %bb54, %bb52, %bb43
- br i1 %1, label %bb59, label %bb61
-
-bb59: ; preds = %bb58
- br label %bb61
-
-bb61: ; preds = %bb59, %bb58
- br label %bb43
-
-bb.nph12: ; preds = %entry
- %1 = icmp eq i32 %comp, 0 ; <i1> [#uses=1]
- br i1 undef, label %bb28, label %bb42
-
-return: ; preds = %entry
- ret void
-}
diff --git a/llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll b/llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll
new file mode 100644
index 00000000000..6145bf50b0b
--- /dev/null
+++ b/llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll
@@ -0,0 +1,645 @@
+; RUN: opt -loop-unswitch %s -disable-output
+
+; Loop unswitch should be able to unswitch these loops and
+; preserve LCSSA and LoopSimplify forms.
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
+target triple = "armv6-apple-darwin9"
+
+%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
+%struct._RuneCharClass = type { [14 x i8], i32 }
+%struct._RuneEntry = type { i32, i32, i32, i32* }
+%struct._RuneLocale = type { [8 x i8], [32 x i8], i32 (i8*, i32, i8**)*, i32 (i32, i8*, i32, i8**)*, i32, [256 x i32], [256 x i32], [256 x i32], %struct._RuneRange, %struct._RuneRange, %struct._RuneRange, i8*, i32, i32, %struct._RuneCharClass* }
+%struct._RuneRange = type { i32, %struct._RuneEntry* }
+%struct.__sFILEX = type opaque
+%struct.__sbuf = type { i8*, i32 }
+%struct.colstr = type { i8*, i8* }
+%struct.optstr = type { i8*, i32* }
+
+@expflg = external global i32 ; <i32*> [#uses=0]
+@ctrflg = external global i32 ; <i32*> [#uses=0]
+@boxflg = external global i32 ; <i32*> [#uses=0]
+@dboxflg = external global i32 ; <i32*> [#uses=0]
+@tab = external global i32 ; <i32*> [#uses=0]
+@F1 = external global i32 ; <i32*> [#uses=0]
+@F2 = external global i32 ; <i32*> [#uses=0]
+@allflg = external global i32 ; <i32*> [#uses=0]
+@leftover = external global i32 ; <i32*> [#uses=0]
+@textflg = external global i32 ; <i32*> [#uses=0]
+@left1flg = external global i32 ; <i32*> [#uses=0]
+@rightl = external global i32 ; <i32*> [#uses=0]
+@iline = external global i32 ; <i32*> [#uses=0]
+@ifile = external global i8* ; <i8**> [#uses=0]
+@.str = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@texname = external global i32 ; <i32*> [#uses=0]
+@texct = external global i32 ; <i32*> [#uses=0]
+@texstr = external global [63 x i8], align 4 ; <[63 x i8]*> [#uses=0]
+@nlin = external global i32 ; <i32*> [#uses=0]
+@ncol = external global i32 ; <i32*> [#uses=0]
+@nclin = external global i32 ; <i32*> [#uses=0]
+@nslin = external global i32 ; <i32*> [#uses=0]
+@style = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
+@ctop = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
+@font = external global [100 x [20 x [2 x i8]]] ; <[100 x [20 x [2 x i8]]]*> [#uses=0]
+@csize = external global [100 x [20 x [4 x i8]]] ; <[100 x [20 x [4 x i8]]]*> [#uses=0]
+@vsize = external global [100 x [20 x [4 x i8]]] ; <[100 x [20 x [4 x i8]]]*> [#uses=0]
+@cll = external global [20 x [10 x i8]] ; <[20 x [10 x i8]]*> [#uses=0]
+@stynum = external global [201 x i32] ; <[201 x i32]*> [#uses=0]
+@lefline = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
+@fullbot = external global [200 x i32] ; <[200 x i32]*> [#uses=0]
+@instead = external global [200 x i8*] ; <[200 x i8*]*> [#uses=0]
+@evenflg = external global i32 ; <i32*> [#uses=0]
+@evenup = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@linsize = external global i32 ; <i32*> [#uses=0]
+@pr1403 = external global i32 ; <i32*> [#uses=0]
+@delim1 = external global i32 ; <i32*> [#uses=1]
+@delim2 = external global i32 ; <i32*> [#uses=1]
+@table = external global [200 x %struct.colstr*] ; <[200 x %struct.colstr*]*> [#uses=0]
+@cspace = external global i8* ; <i8**> [#uses=0]
+@cstore = external global i8* ; <i8**> [#uses=0]
+@exstore = external global i8* ; <i8**> [#uses=0]
+@exlim = external global i8* ; <i8**> [#uses=0]
+@sep = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@used = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@lused = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@rused = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@linestop = external global [200 x i32] ; <[200 x i32]*> [#uses=0]
+@last = external global i8* ; <i8**> [#uses=0]
+@linstart = external global i32 ; <i32*> [#uses=0]
+@tabin = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
+@tabout = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
+@sargc = external global i32 ; <i32*> [#uses=0]
+@sargv = external global i8** ; <i8***> [#uses=0]
+@.str1 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str12 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str2 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str3 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str4 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str5 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str6 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@__stdinp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
+@__stdoutp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
+@.str7 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str8 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@options = external global [21 x %struct.optstr] ; <[21 x %struct.optstr]*> [#uses=0]
+@.str9 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str110 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str211 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str312 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str413 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str514 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str615 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str716 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str817 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str918 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str10 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str11 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str1219 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str13 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str14 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str15 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str16 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str17 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str18 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str19 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str20 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str21 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
+@.str22 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str23 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str24 = external constant [34 x i8], align 1 ; <[34 x i8]*> [#uses=0]
+@.str125 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str226 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
+@.str327 = external constant [38 x i8], align 1 ; <[38 x i8]*> [#uses=0]
+@oncol = external global i32 ; <i32*> [#uses=0]
+@.str428 = external constant [40 x i8], align 1 ; <[40 x i8]*> [#uses=0]
+@.str529 = external constant [31 x i8], align 1 ; <[31 x i8]*> [#uses=0]
+@.str630 = external constant [51 x i8], align 1 ; <[51 x i8]*> [#uses=0]
+@.str731 = external constant [51 x i8], align 1 ; <[51 x i8]*> [#uses=0]
+@.str832 = external constant [40 x i8], align 1 ; <[40 x i8]*> [#uses=0]
+@.str933 = external constant [26 x i8], align 1 ; <[26 x i8]*> [#uses=0]
+@.str1034 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
+@.str1135 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
+@.str1236 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
+@.str1337 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
+@.str1438 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
+@.str1539 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str1640 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str1741 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@_DefaultRuneLocale = external global %struct._RuneLocale ; <%struct._RuneLocale*> [#uses=0]
+@.str43 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str144 = external constant [43 x i8], align 1 ; <[43 x i8]*> [#uses=0]
+@.str245 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str346 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str447 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str548 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str649 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
+@.str51 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str152 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str253 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str354 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str455 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str556 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str657 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
+@.str758 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str859 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str960 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
+@.str1061 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
+@.str1162 = external constant [35 x i8], align 1 ; <[35 x i8]*> [#uses=0]
+@.str1263 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str1364 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
+@.str1465 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
+@.str1566 = external constant [41 x i8], align 1 ; <[41 x i8]*> [#uses=0]
+@.str1667 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str1768 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str1869 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str1970 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
+@.str2071 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
+@.str2172 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
+@.str2273 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str2374 = external constant [36 x i8], align 1 ; <[36 x i8]*> [#uses=0]
+@.str2475 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str25 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str26 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
+@.str27 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
+@.str28 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str29 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
+@.str30 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
+@.str31 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str32 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
+@.str33 = external constant [79 x i8], align 1 ; <[79 x i8]*> [#uses=0]
+@.str77 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str178 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str279 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str380 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str481 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str582 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str683 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
+@.str784 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str885 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str986 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str1087 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
+@.str1188 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
+@.str1289 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str1390 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str1491 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
+@.str1592 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str1693 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str1794 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
+@.str1895 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
+@.str1996 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str2097 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str2198 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str2299 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str23100 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str24101 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str25102 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str26103 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str27104 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str28105 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str29106 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str30107 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str31108 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str111 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str1112 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str2113 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str3114 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str4115 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str5116 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str6117 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str7118 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
+@.str8119 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str9120 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str10121 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str11122 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str12123 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str13124 = external constant [27 x i8], align 1 ; <[27 x i8]*> [#uses=0]
+@.str14125 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str15126 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str16127 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str17128 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str18129 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
+@.str19130 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str20131 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str21132 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str22133 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@watchout = external global i32 ; <i32*> [#uses=0]
+@once = external global i32 ; <i32*> [#uses=0]
+@.str23134 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
+@.str24135 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str25136 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
+@.str26137 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str27138 = external constant [63 x i8], align 1 ; <[63 x i8]*> [#uses=0]
+@.str28139 = external constant [61 x i8], align 1 ; <[61 x i8]*> [#uses=0]
+@.str29140 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str30141 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
+@.str31142 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str32143 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str33144 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str34 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str35 = external constant [23 x i8], align 1 ; <[23 x i8]*> [#uses=0]
+@.str36 = external constant [23 x i8], align 1 ; <[23 x i8]*> [#uses=0]
+@.str37 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@__stderrp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
+@.str38 = external constant [44 x i8], align 1 ; <[44 x i8]*> [#uses=0]
+@.str39 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@topat = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
+@.str40 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
+@.str41 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str42 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str43145 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str149 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@useln = external global i32 ; <i32*> [#uses=0]
+@.str1150 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
+@.str2151 = external constant [26 x i8], align 1 ; <[26 x i8]*> [#uses=0]
+@.str3152 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@spcount = external global i32 ; <i32*> [#uses=0]
+@tpcount = external global i32 ; <i32*> [#uses=0]
+@thisvec = external global i8* ; <i8**> [#uses=0]
+@tpvecs = external global [50 x i8*] ; <[50 x i8*]*> [#uses=0]
+@.str156 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
+@spvecs = external global [20 x i8*] ; <[20 x i8*]*> [#uses=0]
+@.str1157 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
+@.str2158 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
+@.str164 = external constant [71 x i8], align 1 ; <[71 x i8]*> [#uses=0]
+@.str1165 = external constant [71 x i8], align 1 ; <[71 x i8]*> [#uses=0]
+@.str2166 = external constant [47 x i8], align 1 ; <[47 x i8]*> [#uses=0]
+@.str169 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
+@backp = external global i8* ; <i8**> [#uses=0]
+@backup = external global [500 x i8] ; <[500 x i8]*> [#uses=0]
+@.str1170 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str2171 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str176 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str1177 = external constant [35 x i8], align 1 ; <[35 x i8]*> [#uses=0]
+@.str2178 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str3179 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
+@.str4180 = external constant [36 x i8], align 1 ; <[36 x i8]*> [#uses=0]
+@.str5181 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str6182 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str7183 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str8184 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str9185 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str10186 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str11187 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str12188 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str13189 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str14190 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str15191 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
+@.str16192 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str17193 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str18194 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str19195 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
+@.str203 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str1204 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str2205 = external constant [31 x i8], align 1 ; <[31 x i8]*> [#uses=0]
+@.str3206 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str4207 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str5208 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
+@.str6209 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str7210 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str8211 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
+@.str9212 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str10213 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str11214 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str12215 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str13216 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str14217 = external constant [37 x i8], align 1 ; <[37 x i8]*> [#uses=0]
+@.str15218 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str16219 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
+@.str17220 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
+@.str18221 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str19222 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str20223 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str21224 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str22225 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
+@.str23226 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
+@.str24227 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str25228 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str26229 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str27230 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str28231 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str242 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str1243 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
+@.str252 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str1253 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
+@.str2254 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str3255 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str4256 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str5257 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str6258 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str7259 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str8260 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str9261 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str10262 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str11263 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str12264 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str13265 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str14266 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
+@.str15267 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
+@.str16268 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
+@.str17269 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+@.str18270 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str19271 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
+@.str20272 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
+@.str21273 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str282 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str1283 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str2284 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str3285 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str4286 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str5287 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
+@.str6288 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str7289 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
+@.str8290 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
+@.str9291 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
+@.str10292 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
+@.str11293 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str12294 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
+@.str13295 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
+@.str14296 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
+@.str15297 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
+@.str16298 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
+@.str17299 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
+
+declare arm_apcscc void @main(i32, i8**) noreturn nounwind
+
+declare arm_apcscc i32 @swapin() nounwind
+
+declare arm_apcscc %struct.FILE* @"\01_fopen"(i8*, i8*)
+
+declare arm_apcscc void @setinp(i32, i8**) nounwind
+
+declare arm_apcscc i32 @tbl(i32, i8**) nounwind
+
+declare arm_apcscc i32 @fprintf(%struct.FILE* nocapture, i8* nocapture, ...) nounwind
+
+declare arm_apcscc i32 @fclose(%struct.FILE* nocapture) nounwind
+
+declare arm_apcscc void @exit(i32) noreturn nounwind
+
+declare arm_apcscc void @tableput() nounwind
+
+declare arm_apcscc void @init_options() nounwind
+
+declare arm_apcscc void @backrest(i8*) nounwind
+
+declare arm_apcscc void @getcomm() nounwind
+
+declare arm_apcscc i32 @printf(i8* nocapture, ...) nounwind
+
+declare arm_apcscc i8* @strchr(i8*, i32) nounwind readonly
+
+declare arm_apcscc i32 @strlen(i8* nocapture) nounwind readonly
+
+declare arm_apcscc void @getspec() nounwind
+
+declare arm_apcscc void @readspec() nounwind
+
+declare arm_apcscc i32 @"\01_fwrite"(i8*, i32, i32, i8*)
+
+declare arm_apcscc i32 @atoi(i8* nocapture) nounwind readonly
+
+declare arm_apcscc i32 @fputc(i32, i8* nocapture) nounwind
+
+declare arm_apcscc void @gettbl() nounwind
+
+declare arm_apcscc i32 @vspen(i8*) nounwind readonly
+
+declare arm_apcscc i32 @vspand(i32, i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @oneh(i32) nounwind readonly
+
+declare arm_apcscc i32 @nodata(i32) nounwind readonly
+
+declare arm_apcscc i32 @permute() nounwind
+
+declare arm_apcscc void @maktab() nounwind
+
+declare arm_apcscc i32 @filler(i8*) nounwind readonly
+
+declare arm_apcscc void @wide(i8*, i8*, i8*) nounwind
+
+declare arm_apcscc i32 @"\01_fputs"(i8*, i8*)
+
+declare arm_apcscc void @runout() nounwind
+
+declare arm_apcscc void @need() nounwind
+
+declare arm_apcscc void @deftail() nounwind
+
+declare arm_apcscc i32 @ifline(i8*) nounwind readonly
+
+declare arm_apcscc void @runtabs(i32, i32) nounwind
+
+declare arm_apcscc void @putline(i32, i32) nounwind
+
+declare arm_apcscc void @putsize(i8*) nounwind
+
+declare arm_apcscc void @putfont(i8*) nounwind
+
+declare arm_apcscc i32 @__maskrune(i32, i32)
+
+declare arm_apcscc void @funnies(i32, i32) nounwind
+
+declare arm_apcscc void @puttext(i8*, i8*, i8*) nounwind
+
+declare arm_apcscc i32 @puts(i8* nocapture) nounwind
+
+declare arm_apcscc void @yetmore() nounwind
+
+declare arm_apcscc i32 @domore(i8*) nounwind
+
+declare arm_apcscc void @checkuse() nounwind
+
+declare arm_apcscc void @release() nounwind
+
+declare arm_apcscc i32* @alocv(i32) nounwind
+
+declare arm_apcscc i8* @calloc(...)
+
+declare arm_apcscc i8* @chspace() nounwind
+
+declare arm_apcscc i32 @real(i8*) nounwind readonly
+
+declare arm_apcscc void @choochar() nounwind
+
+declare arm_apcscc i32 @point(i32) nounwind readnone
+
+declare arm_apcscc void @error(i8*) nounwind
+
+declare arm_apcscc i8* @gets1(i8*) nounwind
+
+declare arm_apcscc i8* @fgets(i8*, i32, %struct.FILE* nocapture) nounwind
+
+declare arm_apcscc i32 @get1char() nounwind
+
+declare arm_apcscc i32 @getc(%struct.FILE* nocapture) nounwind
+
+declare arm_apcscc void @un1getc(i32) nounwind
+
+declare arm_apcscc void @savefill() nounwind
+
+declare arm_apcscc void @cleanfc() nounwind
+
+declare arm_apcscc void @saveline() nounwind
+
+declare arm_apcscc void @ifdivert() nounwind
+
+declare arm_apcscc void @restline() nounwind
+
+declare arm_apcscc void @endoff() nounwind
+
+declare arm_apcscc void @rstofill() nounwind
+
+declare arm_apcscc i32 @gettext(i8* nocapture, i32, i32, i8*, i8*) nounwind
+
+declare arm_apcscc void @untext() nounwind
+
+declare arm_apcscc i32 @interv(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @up1(i32) nounwind readonly
+
+declare arm_apcscc i32 @interh(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @maknew(i8*) nounwind
+
+define arm_apcscc i32 @ineqn(i8* %s, i8* %p) nounwind readonly {
+entry:
+ %0 = load i32* @delim1, align 4 ; <i32> [#uses=1]
+ %1 = load i32* @delim2, align 4 ; <i32> [#uses=1]
+ br label %bb8.outer
+
+bb: ; preds = %bb8
+ %2 = icmp eq i8* %p_addr.0, %s ; <i1> [#uses=1]
+ br i1 %2, label %bb10, label %bb2
+
+bb2: ; preds = %bb
+ %3 = getelementptr inbounds i8* %p_addr.0, i32 1 ; <i8*> [#uses=3]
+ switch i32 %ineq.0.ph, label %bb8.backedge [
+ i32 0, label %bb3
+ i32 1, label %bb6
+ ]
+
+bb8.backedge: ; preds = %bb6, %bb5, %bb2
+ br label %bb8
+
+bb3: ; preds = %bb2
+ %4 = icmp eq i32 %8, %0 ; <i1> [#uses=1]
+ br i1 %4, label %bb8.outer.loopexit, label %bb5
+
+bb5: ; preds = %bb3
+ br i1 %6, label %bb6, label %bb8.backedge
+
+bb6: ; preds = %bb5, %bb2
+ %5 = icmp eq i32 %8, %1 ; <i1> [#uses=1]
+ br i1 %5, label %bb7, label %bb8.backedge
+
+bb7: ; preds = %bb6
+ %.lcssa1 = phi i8* [ %3, %bb6 ] ; <i8*> [#uses=1]
+ br label %bb8.outer.backedge
+
+bb8.outer.backedge: ; preds = %bb8.outer.loopexit, %bb7
+ %.lcssa2 = phi i8* [ %.lcssa1, %bb7 ], [ %.lcssa, %bb8.outer.loopexit ] ; <i8*> [#uses=1]
+ %ineq.0.ph.be = phi i32 [ 0, %bb7 ], [ 1, %bb8.outer.loopexit ] ; <i32> [#uses=1]
+ br label %bb8.outer
+
+bb8.outer.loopexit: ; preds = %bb3
+ %.lcssa = phi i8* [ %3, %bb3 ] ; <i8*> [#uses=1]
+ br label %bb8.outer.backedge
+
+bb8.outer: ; preds = %bb8.outer.backedge, %entry
+ %ineq.0.ph = phi i32 [ 0, %entry ], [ %ineq.0.ph.be, %bb8.outer.backedge ] ; <i32> [#uses=3]
+ %p_addr.0.ph = phi i8* [ %p, %entry ], [ %.lcssa2, %bb8.outer.backedge ] ; <i8*> [#uses=1]
+ %6 = icmp eq i32 %ineq.0.ph, 1 ; <i1> [#uses=1]
+ br label %bb8
+
+bb8: ; preds = %bb8.outer, %bb8.backedge
+ %p_addr.0 = phi i8* [ %p_addr.0.ph, %bb8.outer ], [ %3, %bb8.backedge ] ; <i8*> [#uses=3]
+ %7 = load i8* %p_addr.0, align 1 ; <i8> [#uses=2]
+ %8 = sext i8 %7 to i32 ; <i32> [#uses=2]
+ %9 = icmp eq i8 %7, 0 ; <i1> [#uses=1]
+ br i1 %9, label %bb10, label %bb
+
+bb10: ; preds = %bb8, %bb
+ %.0 = phi i32 [ %ineq.0.ph, %bb ], [ 0, %bb8 ] ; <i32> [#uses=1]
+ ret i32 %.0
+}
+
+declare arm_apcscc i32 @match(i8* nocapture, i8* nocapture) nounwind readonly
+
+declare arm_apcscc i32 @prefix(i8* nocapture, i8* nocapture) nounwind readonly
+
+declare arm_apcscc i32 @letter(i32) nounwind readnone
+
+declare arm_apcscc i32 @numb(i8* nocapture) nounwind readonly
+
+declare arm_apcscc i32 @digit(i32) nounwind readnone
+
+declare arm_apcscc i32 @max(i32, i32) nounwind readnone
+
+declare arm_apcscc void @tcopy(i8* nocapture, i8* nocapture) nounwind
+
+declare arm_apcscc i32 @ctype(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @min(i32, i32) nounwind readnone
+
+declare arm_apcscc i32 @fspan(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @lspan(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @ctspan(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @thish(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @allh(i32) nounwind readonly
+
+declare arm_apcscc void @tohcol(i32) nounwind
+
+declare arm_apcscc void @makeline(i32, i32, i32) nounwind
+
+declare arm_apcscc i32 @next(i32) nounwind readonly
+
+declare arm_apcscc i32 @prev(i32) nounwind readonly
+
+declare arm_apcscc i32 @lefdata(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @left(i32, i32, i32* nocapture) nounwind
+
+declare arm_apcscc i32 @strcmp(i8* nocapture, i8* nocapture) nounwind readonly
+
+declare arm_apcscc void @getstop() nounwind
+
+declare arm_apcscc void @drawline(i32, i32, i32, i32, i32, i32) nounwind
+
+declare arm_apcscc void @fullwide(i32, i32) nounwind
+
+declare arm_apcscc void @drawvert(i32, i32, i32, i32) nounwind
+
+declare arm_apcscc i32 @barent(i8*) nounwind readonly
+
+declare arm_apcscc i32 @midbcol(i32, i32) nounwind readonly
+
+declare arm_apcscc i32 @midbar(i32, i32) nounwind readonly
+
+
+; This is a simplified form of ineqn from above. It triggers some
+; different cases in the loop-unswitch code.
+
+define void @simplified_ineqn() nounwind readonly {
+entry:
+ br label %bb8.outer
+
+bb8.outer: ; preds = %bb6, %bb2, %entry
+ %x = phi i32 [ 0, %entry ], [ 0, %bb6 ], [ 1, %bb2 ] ; <i32> [#uses=1]
+ br i1 undef, label %return, label %bb2
+
+bb2: ; preds = %bb
+ switch i32 %x, label %bb6 [
+ i32 0, label %bb8.outer
+ ]
+
+bb6: ; preds = %bb2
+ br i1 undef, label %bb8.outer, label %bb2
+
+return: ; preds = %bb8, %bb
+ ret void
+}
OpenPOWER on IntegriCloud