llvm/test/CodeGen/AArch64/tailcall_misched_graph.ll: s/REQUIRE/REQUIRES/
[oota-llvm.git] / test / CodeGen / Thumb2 / 2010-03-08-addi12-ccout.ll
1 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin
2
3 @.str41196 = external constant [2 x i8], align 4  ; <[2 x i8]*> [#uses=1]
4
5 declare void @syStopraw(i32) nounwind
6
7 declare i32 @SyFopen(i8*, i8*) nounwind
8
9 declare i8* @SyFgets(i8*, i32) nounwind
10
11 define void @SyHelp(i8* nocapture %topic, i32 %fin) nounwind {
12 entry:
13   %line = alloca [256 x i8], align 4              ; <[256 x i8]*> [#uses=1]
14   %secname = alloca [1024 x i8], align 4          ; <[1024 x i8]*> [#uses=0]
15   %last = alloca [256 x i8], align 4              ; <[256 x i8]*> [#uses=1]
16   %last2 = alloca [256 x i8], align 4             ; <[256 x i8]*> [#uses=1]
17   br i1 undef, label %bb, label %bb2
18
19 bb:                                               ; preds = %entry
20   br i1 undef, label %bb2, label %bb3
21
22 bb2:                                              ; preds = %bb, %entry
23   br label %bb3
24
25 bb3:                                              ; preds = %bb2, %bb
26   %storemerge = phi i32 [ 0, %bb2 ], [ 1, %bb ]   ; <i32> [#uses=1]
27   br i1 undef, label %bb19, label %bb20
28
29 bb19:                                             ; preds = %bb3
30   br label %bb20
31
32 bb20:                                             ; preds = %bb19, %bb3
33   br i1 undef, label %bb25, label %bb26
34
35 bb25:                                             ; preds = %bb20
36   br label %bb26
37
38 bb26:                                             ; preds = %bb25, %bb20
39   %offset.2 = phi i32 [ -2, %bb25 ], [ 0, %bb20 ] ; <i32> [#uses=1]
40   br i1 undef, label %bb.nph508, label %bb49
41
42 bb.nph508:                                        ; preds = %bb26
43   unreachable
44
45 bb49:                                             ; preds = %bb26
46   br i1 undef, label %bb51, label %bb50
47
48 bb50:                                             ; preds = %bb49
49   br i1 undef, label %bb51, label %bb104
50
51 bb51:                                             ; preds = %bb50, %bb49
52   unreachable
53
54 bb104:                                            ; preds = %bb50
55   br i1 undef, label %bb106, label %bb105
56
57 bb105:                                            ; preds = %bb104
58   br i1 undef, label %bb106, label %bb161
59
60 bb106:                                            ; preds = %bb105, %bb104
61   unreachable
62
63 bb161:                                            ; preds = %bb105
64   br i1 false, label %bb163, label %bb162
65
66 bb162:                                            ; preds = %bb161
67   br i1 undef, label %bb163, label %bb224
68
69 bb163:                                            ; preds = %bb162, %bb161
70   unreachable
71
72 bb224:                                            ; preds = %bb162
73   %0 = call  i32 @SyFopen(i8* undef, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str41196, i32 0, i32 0)) nounwind ; <i32> [#uses=2]
74   br i1 false, label %bb297, label %bb300
75
76 bb297:                                            ; preds = %bb224
77   unreachable
78
79 bb300:                                            ; preds = %bb224
80   %1 = icmp eq i32 %offset.2, -1                  ; <i1> [#uses=1]
81   br label %bb440
82
83 bb307:                                            ; preds = %isdigit1498.exit67
84   br label %bb308
85
86 bb308:                                            ; preds = %bb440, %bb307
87   br i1 undef, label %bb309, label %isdigit1498.exit67
88
89 isdigit1498.exit67:                               ; preds = %bb308
90   br i1 undef, label %bb309, label %bb307
91
92 bb309:                                            ; preds = %isdigit1498.exit67, %bb308
93   br i1 undef, label %bb310, label %bb313
94
95 bb310:                                            ; preds = %bb309
96   br label %bb313
97
98 bb313:                                            ; preds = %bb310, %bb309
99   br i1 false, label %bb318, label %bb317
100
101 bb317:                                            ; preds = %bb313
102   %2 = icmp sgt i8 undef, -1                      ; <i1> [#uses=1]
103   br i1 %2, label %bb.i.i73, label %bb1.i.i74
104
105 bb.i.i73:                                         ; preds = %bb317
106   br i1 false, label %bb318, label %bb329.outer
107
108 bb1.i.i74:                                        ; preds = %bb317
109   unreachable
110
111 bb318:                                            ; preds = %bb.i.i73, %bb313
112   ret void
113
114 bb329.outer:                                      ; preds = %bb.i.i73
115   br i1 undef, label %bb333, label %bb329.us.us
116
117 bb329.us.us:                                      ; preds = %bb329.us.us, %bb329.outer
118   br i1 undef, label %bb333, label %bb329.us.us
119
120 bb333:                                            ; preds = %bb329.us.us, %bb329.outer
121   %match.0.lcssa = phi i32 [ undef, %bb329.us.us ], [ 2, %bb329.outer ] ; <i32> [#uses=2]
122   br i1 undef, label %bb335, label %bb388
123
124 bb335:                                            ; preds = %bb333
125   %3 = and i1 undef, %1                           ; <i1> [#uses=1]
126   br i1 %3, label %bb339, label %bb348
127
128 bb339:                                            ; preds = %bb335
129   br i1 false, label %bb340, label %bb345
130
131 bb340:                                            ; preds = %bb339
132   br i1 undef, label %return, label %bb341
133
134 bb341:                                            ; preds = %bb340
135   ret void
136
137 bb345:                                            ; preds = %bb345, %bb339
138   %4 = phi i8 [ %5, %bb345 ], [ undef, %bb339 ]   ; <i8> [#uses=0]
139   %indvar670 = phi i32 [ %tmp673, %bb345 ], [ 0, %bb339 ] ; <i32> [#uses=1]
140   %tmp673 = add i32 %indvar670, 1                 ; <i32> [#uses=2]
141   %scevgep674 = getelementptr [256 x i8], [256 x i8]* %last, i32 0, i32 %tmp673 ; <i8*> [#uses=1]
142   %5 = load i8, i8* %scevgep674, align 1              ; <i8> [#uses=1]
143   br i1 undef, label %bb347, label %bb345
144
145 bb347:                                            ; preds = %bb345
146   br label %bb348
147
148 bb348:                                            ; preds = %bb347, %bb335
149   br i1 false, label %bb352, label %bb356
150
151 bb352:                                            ; preds = %bb348
152   unreachable
153
154 bb356:                                            ; preds = %bb348
155   br i1 undef, label %bb360, label %bb369
156
157 bb360:                                            ; preds = %bb356
158   br i1 false, label %bb361, label %bb366
159
160 bb361:                                            ; preds = %bb360
161   br i1 undef, label %return, label %bb362
162
163 bb362:                                            ; preds = %bb361
164   ret void
165
166 bb366:                                            ; preds = %bb366, %bb360
167   %indvar662 = phi i32 [ %tmp665, %bb366 ], [ 0, %bb360 ] ; <i32> [#uses=1]
168   %tmp665 = add i32 %indvar662, 1                 ; <i32> [#uses=2]
169   %scevgep666 = getelementptr [256 x i8], [256 x i8]* %last2, i32 0, i32 %tmp665 ; <i8*> [#uses=1]
170   %6 = load i8, i8* %scevgep666, align 1              ; <i8> [#uses=0]
171   br i1 false, label %bb368, label %bb366
172
173 bb368:                                            ; preds = %bb366
174   br label %bb369
175
176 bb369:                                            ; preds = %bb368, %bb356
177   br i1 undef, label %bb373, label %bb388
178
179 bb373:                                            ; preds = %bb383, %bb369
180   %7 = call  i8* @SyFgets(i8* undef, i32 %0) nounwind ; <i8*> [#uses=1]
181   %8 = icmp eq i8* %7, null                       ; <i1> [#uses=1]
182   br i1 %8, label %bb375, label %bb383
183
184 bb375:                                            ; preds = %bb373
185   %9 = icmp eq i32 %storemerge, 0                 ; <i1> [#uses=1]
186   br i1 %9, label %return, label %bb376
187
188 bb376:                                            ; preds = %bb375
189   ret void
190
191 bb383:                                            ; preds = %bb373
192   %10 = load i8, i8* undef, align 1                   ; <i8> [#uses=1]
193   %cond1 = icmp eq i8 %10, 46                     ; <i1> [#uses=1]
194   br i1 %cond1, label %bb373, label %bb388
195
196 bb388:                                            ; preds = %bb383, %bb369, %bb333
197   %match.1140 = phi i32 [ %match.0.lcssa, %bb369 ], [ 0, %bb333 ], [ %match.0.lcssa, %bb383 ] ; <i32> [#uses=1]
198   br label %bb391
199
200 bb390:                                            ; preds = %isdigit1498.exit83, %bb392
201   %indvar.next725 = add i32 %indvar724, 1         ; <i32> [#uses=1]
202   br label %bb391
203
204 bb391:                                            ; preds = %bb390, %bb388
205   %indvar724 = phi i32 [ %indvar.next725, %bb390 ], [ 0, %bb388 ] ; <i32> [#uses=2]
206   %11 = load i8, i8* undef, align 1                   ; <i8> [#uses=0]
207   br i1 false, label %bb395, label %bb392
208
209 bb392:                                            ; preds = %bb391
210   br i1 undef, label %bb390, label %isdigit1498.exit83
211
212 isdigit1498.exit83:                               ; preds = %bb392
213   br i1 undef, label %bb390, label %bb395
214
215 bb394:                                            ; preds = %isdigit1498.exit87
216   br label %bb395
217
218 bb395:                                            ; preds = %bb394, %isdigit1498.exit83, %bb391
219   %storemerge14.sum = add i32 %indvar724, undef   ; <i32> [#uses=1]
220   %p.26 = getelementptr [256 x i8], [256 x i8]* %line, i32 0, i32 %storemerge14.sum ; <i8*> [#uses=1]
221   br i1 undef, label %bb400, label %isdigit1498.exit87
222
223 isdigit1498.exit87:                               ; preds = %bb395
224   br i1 false, label %bb400, label %bb394
225
226 bb400:                                            ; preds = %isdigit1498.exit87, %bb395
227   br i1 undef, label %bb402, label %bb403
228
229 bb402:                                            ; preds = %bb400
230   %12 = getelementptr inbounds i8, i8* %p.26, i32 undef ; <i8*> [#uses=1]
231   br label %bb403
232
233 bb403:                                            ; preds = %bb402, %bb400
234   %p.29 = phi i8* [ %12, %bb402 ], [ undef, %bb400 ] ; <i8*> [#uses=0]
235   br i1 undef, label %bb405, label %bb404
236
237 bb404:                                            ; preds = %bb403
238   br i1 undef, label %bb405, label %bb407
239
240 bb405:                                            ; preds = %bb404, %bb403
241   br i1 undef, label %return, label %bb406
242
243 bb406:                                            ; preds = %bb405
244   call  void @syStopraw(i32 %fin) nounwind
245   ret void
246
247 bb407:                                            ; preds = %bb404
248   %cond = icmp eq i32 %match.1140, 2              ; <i1> [#uses=1]
249   br i1 %cond, label %bb408, label %bb428
250
251 bb408:                                            ; preds = %bb407
252   unreachable
253
254 bb428:                                            ; preds = %bb407
255   br label %bb440
256
257 bb440:                                            ; preds = %bb428, %bb300
258   %13 = call  i8* @SyFgets(i8* undef, i32 %0) nounwind ; <i8*> [#uses=0]
259   br i1 false, label %bb442, label %bb308
260
261 bb442:                                            ; preds = %bb440
262   unreachable
263
264 return:                                           ; preds = %bb405, %bb375, %bb361, %bb340
265   ret void
266 }