blob: 6145bf50b0bb518c707eab683cbc8888b697a83a [file] [log] [blame]
Dan Gohman9cec4122009-09-08 15:45:00 +00001; RUN: opt -loop-unswitch %s -disable-output
2
3; Loop unswitch should be able to unswitch these loops and
4; preserve LCSSA and LoopSimplify forms.
5
6target 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"
7target triple = "armv6-apple-darwin9"
8
9%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 }
10%struct._RuneCharClass = type { [14 x i8], i32 }
11%struct._RuneEntry = type { i32, i32, i32, i32* }
12%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* }
13%struct._RuneRange = type { i32, %struct._RuneEntry* }
14%struct.__sFILEX = type opaque
15%struct.__sbuf = type { i8*, i32 }
16%struct.colstr = type { i8*, i8* }
17%struct.optstr = type { i8*, i32* }
18
19@expflg = external global i32 ; <i32*> [#uses=0]
20@ctrflg = external global i32 ; <i32*> [#uses=0]
21@boxflg = external global i32 ; <i32*> [#uses=0]
22@dboxflg = external global i32 ; <i32*> [#uses=0]
23@tab = external global i32 ; <i32*> [#uses=0]
24@F1 = external global i32 ; <i32*> [#uses=0]
25@F2 = external global i32 ; <i32*> [#uses=0]
26@allflg = external global i32 ; <i32*> [#uses=0]
27@leftover = external global i32 ; <i32*> [#uses=0]
28@textflg = external global i32 ; <i32*> [#uses=0]
29@left1flg = external global i32 ; <i32*> [#uses=0]
30@rightl = external global i32 ; <i32*> [#uses=0]
31@iline = external global i32 ; <i32*> [#uses=0]
32@ifile = external global i8* ; <i8**> [#uses=0]
33@.str = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
34@texname = external global i32 ; <i32*> [#uses=0]
35@texct = external global i32 ; <i32*> [#uses=0]
36@texstr = external global [63 x i8], align 4 ; <[63 x i8]*> [#uses=0]
37@nlin = external global i32 ; <i32*> [#uses=0]
38@ncol = external global i32 ; <i32*> [#uses=0]
39@nclin = external global i32 ; <i32*> [#uses=0]
40@nslin = external global i32 ; <i32*> [#uses=0]
41@style = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
42@ctop = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
43@font = external global [100 x [20 x [2 x i8]]] ; <[100 x [20 x [2 x i8]]]*> [#uses=0]
44@csize = external global [100 x [20 x [4 x i8]]] ; <[100 x [20 x [4 x i8]]]*> [#uses=0]
45@vsize = external global [100 x [20 x [4 x i8]]] ; <[100 x [20 x [4 x i8]]]*> [#uses=0]
46@cll = external global [20 x [10 x i8]] ; <[20 x [10 x i8]]*> [#uses=0]
47@stynum = external global [201 x i32] ; <[201 x i32]*> [#uses=0]
48@lefline = external global [100 x [20 x i32]] ; <[100 x [20 x i32]]*> [#uses=0]
49@fullbot = external global [200 x i32] ; <[200 x i32]*> [#uses=0]
50@instead = external global [200 x i8*] ; <[200 x i8*]*> [#uses=0]
51@evenflg = external global i32 ; <i32*> [#uses=0]
52@evenup = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
53@linsize = external global i32 ; <i32*> [#uses=0]
54@pr1403 = external global i32 ; <i32*> [#uses=0]
55@delim1 = external global i32 ; <i32*> [#uses=1]
56@delim2 = external global i32 ; <i32*> [#uses=1]
57@table = external global [200 x %struct.colstr*] ; <[200 x %struct.colstr*]*> [#uses=0]
58@cspace = external global i8* ; <i8**> [#uses=0]
59@cstore = external global i8* ; <i8**> [#uses=0]
60@exstore = external global i8* ; <i8**> [#uses=0]
61@exlim = external global i8* ; <i8**> [#uses=0]
62@sep = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
63@used = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
64@lused = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
65@rused = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
66@linestop = external global [200 x i32] ; <[200 x i32]*> [#uses=0]
67@last = external global i8* ; <i8**> [#uses=0]
68@linstart = external global i32 ; <i32*> [#uses=0]
69@tabin = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
70@tabout = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
71@sargc = external global i32 ; <i32*> [#uses=0]
72@sargv = external global i8** ; <i8***> [#uses=0]
73@.str1 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
74@.str12 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
75@.str2 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
76@.str3 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
77@.str4 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
78@.str5 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
79@.str6 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
80@__stdinp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
81@__stdoutp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
82@.str7 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
83@.str8 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
84@options = external global [21 x %struct.optstr] ; <[21 x %struct.optstr]*> [#uses=0]
85@.str9 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
86@.str110 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
87@.str211 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
88@.str312 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
89@.str413 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
90@.str514 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
91@.str615 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
92@.str716 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
93@.str817 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
94@.str918 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
95@.str10 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
96@.str11 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
97@.str1219 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
98@.str13 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
99@.str14 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
100@.str15 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
101@.str16 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
102@.str17 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
103@.str18 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
104@.str19 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
105@.str20 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
106@.str21 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
107@.str22 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
108@.str23 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
109@.str24 = external constant [34 x i8], align 1 ; <[34 x i8]*> [#uses=0]
110@.str125 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
111@.str226 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
112@.str327 = external constant [38 x i8], align 1 ; <[38 x i8]*> [#uses=0]
113@oncol = external global i32 ; <i32*> [#uses=0]
114@.str428 = external constant [40 x i8], align 1 ; <[40 x i8]*> [#uses=0]
115@.str529 = external constant [31 x i8], align 1 ; <[31 x i8]*> [#uses=0]
116@.str630 = external constant [51 x i8], align 1 ; <[51 x i8]*> [#uses=0]
117@.str731 = external constant [51 x i8], align 1 ; <[51 x i8]*> [#uses=0]
118@.str832 = external constant [40 x i8], align 1 ; <[40 x i8]*> [#uses=0]
119@.str933 = external constant [26 x i8], align 1 ; <[26 x i8]*> [#uses=0]
120@.str1034 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
121@.str1135 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
122@.str1236 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
123@.str1337 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
124@.str1438 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
125@.str1539 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
126@.str1640 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
127@.str1741 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
128@_DefaultRuneLocale = external global %struct._RuneLocale ; <%struct._RuneLocale*> [#uses=0]
129@.str43 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
130@.str144 = external constant [43 x i8], align 1 ; <[43 x i8]*> [#uses=0]
131@.str245 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
132@.str346 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
133@.str447 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
134@.str548 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
135@.str649 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
136@.str51 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
137@.str152 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
138@.str253 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
139@.str354 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
140@.str455 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
141@.str556 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
142@.str657 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
143@.str758 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
144@.str859 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
145@.str960 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
146@.str1061 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
147@.str1162 = external constant [35 x i8], align 1 ; <[35 x i8]*> [#uses=0]
148@.str1263 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
149@.str1364 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
150@.str1465 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
151@.str1566 = external constant [41 x i8], align 1 ; <[41 x i8]*> [#uses=0]
152@.str1667 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
153@.str1768 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
154@.str1869 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
155@.str1970 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
156@.str2071 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
157@.str2172 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
158@.str2273 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
159@.str2374 = external constant [36 x i8], align 1 ; <[36 x i8]*> [#uses=0]
160@.str2475 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
161@.str25 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
162@.str26 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
163@.str27 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
164@.str28 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
165@.str29 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
166@.str30 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
167@.str31 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
168@.str32 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
169@.str33 = external constant [79 x i8], align 1 ; <[79 x i8]*> [#uses=0]
170@.str77 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
171@.str178 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
172@.str279 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
173@.str380 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
174@.str481 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
175@.str582 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
176@.str683 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
177@.str784 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
178@.str885 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
179@.str986 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
180@.str1087 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
181@.str1188 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
182@.str1289 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
183@.str1390 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
184@.str1491 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
185@.str1592 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
186@.str1693 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
187@.str1794 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
188@.str1895 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
189@.str1996 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
190@.str2097 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
191@.str2198 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
192@.str2299 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
193@.str23100 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
194@.str24101 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
195@.str25102 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
196@.str26103 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
197@.str27104 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
198@.str28105 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
199@.str29106 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
200@.str30107 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
201@.str31108 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
202@.str111 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
203@.str1112 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
204@.str2113 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
205@.str3114 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
206@.str4115 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
207@.str5116 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
208@.str6117 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
209@.str7118 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
210@.str8119 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
211@.str9120 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
212@.str10121 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
213@.str11122 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
214@.str12123 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
215@.str13124 = external constant [27 x i8], align 1 ; <[27 x i8]*> [#uses=0]
216@.str14125 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
217@.str15126 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
218@.str16127 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
219@.str17128 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
220@.str18129 = external constant [30 x i8], align 1 ; <[30 x i8]*> [#uses=0]
221@.str19130 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
222@.str20131 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
223@.str21132 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
224@.str22133 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
225@watchout = external global i32 ; <i32*> [#uses=0]
226@once = external global i32 ; <i32*> [#uses=0]
227@.str23134 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
228@.str24135 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
229@.str25136 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
230@.str26137 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
231@.str27138 = external constant [63 x i8], align 1 ; <[63 x i8]*> [#uses=0]
232@.str28139 = external constant [61 x i8], align 1 ; <[61 x i8]*> [#uses=0]
233@.str29140 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
234@.str30141 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
235@.str31142 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
236@.str32143 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
237@.str33144 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
238@.str34 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
239@.str35 = external constant [23 x i8], align 1 ; <[23 x i8]*> [#uses=0]
240@.str36 = external constant [23 x i8], align 1 ; <[23 x i8]*> [#uses=0]
241@.str37 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
242@__stderrp = external global %struct.FILE* ; <%struct.FILE**> [#uses=0]
243@.str38 = external constant [44 x i8], align 1 ; <[44 x i8]*> [#uses=0]
244@.str39 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
245@topat = external global [20 x i32] ; <[20 x i32]*> [#uses=0]
246@.str40 = external constant [22 x i8], align 1 ; <[22 x i8]*> [#uses=0]
247@.str41 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
248@.str42 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
249@.str43145 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
250@.str149 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
251@useln = external global i32 ; <i32*> [#uses=0]
252@.str1150 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
253@.str2151 = external constant [26 x i8], align 1 ; <[26 x i8]*> [#uses=0]
254@.str3152 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
255@spcount = external global i32 ; <i32*> [#uses=0]
256@tpcount = external global i32 ; <i32*> [#uses=0]
257@thisvec = external global i8* ; <i8**> [#uses=0]
258@tpvecs = external global [50 x i8*] ; <[50 x i8*]*> [#uses=0]
259@.str156 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
260@spvecs = external global [20 x i8*] ; <[20 x i8*]*> [#uses=0]
261@.str1157 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
262@.str2158 = external constant [24 x i8], align 1 ; <[24 x i8]*> [#uses=0]
263@.str164 = external constant [71 x i8], align 1 ; <[71 x i8]*> [#uses=0]
264@.str1165 = external constant [71 x i8], align 1 ; <[71 x i8]*> [#uses=0]
265@.str2166 = external constant [47 x i8], align 1 ; <[47 x i8]*> [#uses=0]
266@.str169 = external constant [18 x i8], align 1 ; <[18 x i8]*> [#uses=0]
267@backp = external global i8* ; <i8**> [#uses=0]
268@backup = external global [500 x i8] ; <[500 x i8]*> [#uses=0]
269@.str1170 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
270@.str2171 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
271@.str176 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
272@.str1177 = external constant [35 x i8], align 1 ; <[35 x i8]*> [#uses=0]
273@.str2178 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
274@.str3179 = external constant [33 x i8], align 1 ; <[33 x i8]*> [#uses=0]
275@.str4180 = external constant [36 x i8], align 1 ; <[36 x i8]*> [#uses=0]
276@.str5181 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
277@.str6182 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
278@.str7183 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
279@.str8184 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
280@.str9185 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
281@.str10186 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
282@.str11187 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
283@.str12188 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
284@.str13189 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
285@.str14190 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
286@.str15191 = external constant [17 x i8], align 1 ; <[17 x i8]*> [#uses=0]
287@.str16192 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
288@.str17193 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
289@.str18194 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
290@.str19195 = external constant [19 x i8], align 1 ; <[19 x i8]*> [#uses=0]
291@.str203 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
292@.str1204 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
293@.str2205 = external constant [31 x i8], align 1 ; <[31 x i8]*> [#uses=0]
294@.str3206 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
295@.str4207 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
296@.str5208 = external constant [10 x i8], align 1 ; <[10 x i8]*> [#uses=0]
297@.str6209 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
298@.str7210 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
299@.str8211 = external constant [21 x i8], align 1 ; <[21 x i8]*> [#uses=0]
300@.str9212 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
301@.str10213 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
302@.str11214 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
303@.str12215 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
304@.str13216 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
305@.str14217 = external constant [37 x i8], align 1 ; <[37 x i8]*> [#uses=0]
306@.str15218 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
307@.str16219 = external constant [20 x i8], align 1 ; <[20 x i8]*> [#uses=0]
308@.str17220 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
309@.str18221 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
310@.str19222 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
311@.str20223 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
312@.str21224 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
313@.str22225 = external constant [11 x i8], align 1 ; <[11 x i8]*> [#uses=0]
314@.str23226 = external constant [13 x i8], align 1 ; <[13 x i8]*> [#uses=0]
315@.str24227 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
316@.str25228 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
317@.str26229 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
318@.str27230 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
319@.str28231 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
320@.str242 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
321@.str1243 = external constant [25 x i8], align 1 ; <[25 x i8]*> [#uses=0]
322@.str252 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
323@.str1253 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
324@.str2254 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
325@.str3255 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
326@.str4256 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
327@.str5257 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
328@.str6258 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
329@.str7259 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
330@.str8260 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
331@.str9261 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
332@.str10262 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
333@.str11263 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
334@.str12264 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
335@.str13265 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
336@.str14266 = external constant [5 x i8], align 1 ; <[5 x i8]*> [#uses=0]
337@.str15267 = external constant [16 x i8], align 1 ; <[16 x i8]*> [#uses=0]
338@.str16268 = external constant [29 x i8], align 1 ; <[29 x i8]*> [#uses=0]
339@.str17269 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
340@.str18270 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
341@.str19271 = external constant [9 x i8], align 1 ; <[9 x i8]*> [#uses=0]
342@.str20272 = external constant [32 x i8], align 1 ; <[32 x i8]*> [#uses=0]
343@.str21273 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
344@.str282 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
345@.str1283 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
346@.str2284 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
347@.str3285 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
348@.str4286 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
349@.str5287 = external constant [8 x i8], align 1 ; <[8 x i8]*> [#uses=0]
350@.str6288 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
351@.str7289 = external constant [12 x i8], align 1 ; <[12 x i8]*> [#uses=0]
352@.str8290 = external constant [3 x i8], align 1 ; <[3 x i8]*> [#uses=0]
353@.str9291 = external constant [7 x i8], align 1 ; <[7 x i8]*> [#uses=0]
354@.str10292 = external constant [15 x i8], align 1 ; <[15 x i8]*> [#uses=0]
355@.str11293 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
356@.str12294 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=0]
357@.str13295 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=0]
358@.str14296 = external constant [6 x i8], align 1 ; <[6 x i8]*> [#uses=0]
359@.str15297 = external constant [28 x i8], align 1 ; <[28 x i8]*> [#uses=0]
360@.str16298 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=0]
361@.str17299 = external constant [14 x i8], align 1 ; <[14 x i8]*> [#uses=0]
362
363declare arm_apcscc void @main(i32, i8**) noreturn nounwind
364
365declare arm_apcscc i32 @swapin() nounwind
366
367declare arm_apcscc %struct.FILE* @"\01_fopen"(i8*, i8*)
368
369declare arm_apcscc void @setinp(i32, i8**) nounwind
370
371declare arm_apcscc i32 @tbl(i32, i8**) nounwind
372
373declare arm_apcscc i32 @fprintf(%struct.FILE* nocapture, i8* nocapture, ...) nounwind
374
375declare arm_apcscc i32 @fclose(%struct.FILE* nocapture) nounwind
376
377declare arm_apcscc void @exit(i32) noreturn nounwind
378
379declare arm_apcscc void @tableput() nounwind
380
381declare arm_apcscc void @init_options() nounwind
382
383declare arm_apcscc void @backrest(i8*) nounwind
384
385declare arm_apcscc void @getcomm() nounwind
386
387declare arm_apcscc i32 @printf(i8* nocapture, ...) nounwind
388
389declare arm_apcscc i8* @strchr(i8*, i32) nounwind readonly
390
391declare arm_apcscc i32 @strlen(i8* nocapture) nounwind readonly
392
393declare arm_apcscc void @getspec() nounwind
394
395declare arm_apcscc void @readspec() nounwind
396
397declare arm_apcscc i32 @"\01_fwrite"(i8*, i32, i32, i8*)
398
399declare arm_apcscc i32 @atoi(i8* nocapture) nounwind readonly
400
401declare arm_apcscc i32 @fputc(i32, i8* nocapture) nounwind
402
403declare arm_apcscc void @gettbl() nounwind
404
405declare arm_apcscc i32 @vspen(i8*) nounwind readonly
406
407declare arm_apcscc i32 @vspand(i32, i32, i32) nounwind readonly
408
409declare arm_apcscc i32 @oneh(i32) nounwind readonly
410
411declare arm_apcscc i32 @nodata(i32) nounwind readonly
412
413declare arm_apcscc i32 @permute() nounwind
414
415declare arm_apcscc void @maktab() nounwind
416
417declare arm_apcscc i32 @filler(i8*) nounwind readonly
418
419declare arm_apcscc void @wide(i8*, i8*, i8*) nounwind
420
421declare arm_apcscc i32 @"\01_fputs"(i8*, i8*)
422
423declare arm_apcscc void @runout() nounwind
424
425declare arm_apcscc void @need() nounwind
426
427declare arm_apcscc void @deftail() nounwind
428
429declare arm_apcscc i32 @ifline(i8*) nounwind readonly
430
431declare arm_apcscc void @runtabs(i32, i32) nounwind
432
433declare arm_apcscc void @putline(i32, i32) nounwind
434
435declare arm_apcscc void @putsize(i8*) nounwind
436
437declare arm_apcscc void @putfont(i8*) nounwind
438
439declare arm_apcscc i32 @__maskrune(i32, i32)
440
441declare arm_apcscc void @funnies(i32, i32) nounwind
442
443declare arm_apcscc void @puttext(i8*, i8*, i8*) nounwind
444
445declare arm_apcscc i32 @puts(i8* nocapture) nounwind
446
447declare arm_apcscc void @yetmore() nounwind
448
449declare arm_apcscc i32 @domore(i8*) nounwind
450
451declare arm_apcscc void @checkuse() nounwind
452
453declare arm_apcscc void @release() nounwind
454
455declare arm_apcscc i32* @alocv(i32) nounwind
456
457declare arm_apcscc i8* @calloc(...)
458
459declare arm_apcscc i8* @chspace() nounwind
460
461declare arm_apcscc i32 @real(i8*) nounwind readonly
462
463declare arm_apcscc void @choochar() nounwind
464
465declare arm_apcscc i32 @point(i32) nounwind readnone
466
467declare arm_apcscc void @error(i8*) nounwind
468
469declare arm_apcscc i8* @gets1(i8*) nounwind
470
471declare arm_apcscc i8* @fgets(i8*, i32, %struct.FILE* nocapture) nounwind
472
473declare arm_apcscc i32 @get1char() nounwind
474
475declare arm_apcscc i32 @getc(%struct.FILE* nocapture) nounwind
476
477declare arm_apcscc void @un1getc(i32) nounwind
478
479declare arm_apcscc void @savefill() nounwind
480
481declare arm_apcscc void @cleanfc() nounwind
482
483declare arm_apcscc void @saveline() nounwind
484
485declare arm_apcscc void @ifdivert() nounwind
486
487declare arm_apcscc void @restline() nounwind
488
489declare arm_apcscc void @endoff() nounwind
490
491declare arm_apcscc void @rstofill() nounwind
492
493declare arm_apcscc i32 @gettext(i8* nocapture, i32, i32, i8*, i8*) nounwind
494
495declare arm_apcscc void @untext() nounwind
496
497declare arm_apcscc i32 @interv(i32, i32) nounwind readonly
498
499declare arm_apcscc i32 @up1(i32) nounwind readonly
500
501declare arm_apcscc i32 @interh(i32, i32) nounwind readonly
502
503declare arm_apcscc i32 @maknew(i8*) nounwind
504
505define arm_apcscc i32 @ineqn(i8* %s, i8* %p) nounwind readonly {
506entry:
507 %0 = load i32* @delim1, align 4 ; <i32> [#uses=1]
508 %1 = load i32* @delim2, align 4 ; <i32> [#uses=1]
509 br label %bb8.outer
510
511bb: ; preds = %bb8
512 %2 = icmp eq i8* %p_addr.0, %s ; <i1> [#uses=1]
513 br i1 %2, label %bb10, label %bb2
514
515bb2: ; preds = %bb
516 %3 = getelementptr inbounds i8* %p_addr.0, i32 1 ; <i8*> [#uses=3]
517 switch i32 %ineq.0.ph, label %bb8.backedge [
518 i32 0, label %bb3
519 i32 1, label %bb6
520 ]
521
522bb8.backedge: ; preds = %bb6, %bb5, %bb2
523 br label %bb8
524
525bb3: ; preds = %bb2
526 %4 = icmp eq i32 %8, %0 ; <i1> [#uses=1]
527 br i1 %4, label %bb8.outer.loopexit, label %bb5
528
529bb5: ; preds = %bb3
530 br i1 %6, label %bb6, label %bb8.backedge
531
532bb6: ; preds = %bb5, %bb2
533 %5 = icmp eq i32 %8, %1 ; <i1> [#uses=1]
534 br i1 %5, label %bb7, label %bb8.backedge
535
536bb7: ; preds = %bb6
537 %.lcssa1 = phi i8* [ %3, %bb6 ] ; <i8*> [#uses=1]
538 br label %bb8.outer.backedge
539
540bb8.outer.backedge: ; preds = %bb8.outer.loopexit, %bb7
541 %.lcssa2 = phi i8* [ %.lcssa1, %bb7 ], [ %.lcssa, %bb8.outer.loopexit ] ; <i8*> [#uses=1]
542 %ineq.0.ph.be = phi i32 [ 0, %bb7 ], [ 1, %bb8.outer.loopexit ] ; <i32> [#uses=1]
543 br label %bb8.outer
544
545bb8.outer.loopexit: ; preds = %bb3
546 %.lcssa = phi i8* [ %3, %bb3 ] ; <i8*> [#uses=1]
547 br label %bb8.outer.backedge
548
549bb8.outer: ; preds = %bb8.outer.backedge, %entry
550 %ineq.0.ph = phi i32 [ 0, %entry ], [ %ineq.0.ph.be, %bb8.outer.backedge ] ; <i32> [#uses=3]
551 %p_addr.0.ph = phi i8* [ %p, %entry ], [ %.lcssa2, %bb8.outer.backedge ] ; <i8*> [#uses=1]
552 %6 = icmp eq i32 %ineq.0.ph, 1 ; <i1> [#uses=1]
553 br label %bb8
554
555bb8: ; preds = %bb8.outer, %bb8.backedge
556 %p_addr.0 = phi i8* [ %p_addr.0.ph, %bb8.outer ], [ %3, %bb8.backedge ] ; <i8*> [#uses=3]
557 %7 = load i8* %p_addr.0, align 1 ; <i8> [#uses=2]
558 %8 = sext i8 %7 to i32 ; <i32> [#uses=2]
559 %9 = icmp eq i8 %7, 0 ; <i1> [#uses=1]
560 br i1 %9, label %bb10, label %bb
561
562bb10: ; preds = %bb8, %bb
563 %.0 = phi i32 [ %ineq.0.ph, %bb ], [ 0, %bb8 ] ; <i32> [#uses=1]
564 ret i32 %.0
565}
566
567declare arm_apcscc i32 @match(i8* nocapture, i8* nocapture) nounwind readonly
568
569declare arm_apcscc i32 @prefix(i8* nocapture, i8* nocapture) nounwind readonly
570
571declare arm_apcscc i32 @letter(i32) nounwind readnone
572
573declare arm_apcscc i32 @numb(i8* nocapture) nounwind readonly
574
575declare arm_apcscc i32 @digit(i32) nounwind readnone
576
577declare arm_apcscc i32 @max(i32, i32) nounwind readnone
578
579declare arm_apcscc void @tcopy(i8* nocapture, i8* nocapture) nounwind
580
581declare arm_apcscc i32 @ctype(i32, i32) nounwind readonly
582
583declare arm_apcscc i32 @min(i32, i32) nounwind readnone
584
585declare arm_apcscc i32 @fspan(i32, i32) nounwind readonly
586
587declare arm_apcscc i32 @lspan(i32, i32) nounwind readonly
588
589declare arm_apcscc i32 @ctspan(i32, i32) nounwind readonly
590
591declare arm_apcscc i32 @thish(i32, i32) nounwind readonly
592
593declare arm_apcscc i32 @allh(i32) nounwind readonly
594
595declare arm_apcscc void @tohcol(i32) nounwind
596
597declare arm_apcscc void @makeline(i32, i32, i32) nounwind
598
599declare arm_apcscc i32 @next(i32) nounwind readonly
600
601declare arm_apcscc i32 @prev(i32) nounwind readonly
602
603declare arm_apcscc i32 @lefdata(i32, i32) nounwind readonly
604
605declare arm_apcscc i32 @left(i32, i32, i32* nocapture) nounwind
606
607declare arm_apcscc i32 @strcmp(i8* nocapture, i8* nocapture) nounwind readonly
608
609declare arm_apcscc void @getstop() nounwind
610
611declare arm_apcscc void @drawline(i32, i32, i32, i32, i32, i32) nounwind
612
613declare arm_apcscc void @fullwide(i32, i32) nounwind
614
615declare arm_apcscc void @drawvert(i32, i32, i32, i32) nounwind
616
617declare arm_apcscc i32 @barent(i8*) nounwind readonly
618
619declare arm_apcscc i32 @midbcol(i32, i32) nounwind readonly
620
621declare arm_apcscc i32 @midbar(i32, i32) nounwind readonly
622
623
624; This is a simplified form of ineqn from above. It triggers some
625; different cases in the loop-unswitch code.
626
627define void @simplified_ineqn() nounwind readonly {
628entry:
629 br label %bb8.outer
630
631bb8.outer: ; preds = %bb6, %bb2, %entry
632 %x = phi i32 [ 0, %entry ], [ 0, %bb6 ], [ 1, %bb2 ] ; <i32> [#uses=1]
633 br i1 undef, label %return, label %bb2
634
635bb2: ; preds = %bb
636 switch i32 %x, label %bb6 [
637 i32 0, label %bb8.outer
638 ]
639
640bb6: ; preds = %bb2
641 br i1 undef, label %bb8.outer, label %bb2
642
643return: ; preds = %bb8, %bb
644 ret void
645}