TEstcase that makes simplifycfg infloop.
[oota-llvm.git] / test / Transforms / SimplifyCFG / 2006-06-12-InfLoop.ll
1 ; RUN: llvm-as < %s | opt -simplifycfg -disable-output
2
3 void %main(int %c) {
4 entry:
5         %tmp.9 = seteq int %c, 2                ; <bool> [#uses=1]
6         br bool %tmp.9, label %endif.0, label %then.0
7
8 then.0:         ; preds = %entry
9         ret void
10
11 endif.0:                ; preds = %entry
12         br bool false, label %then.1, label %endif.1
13
14 then.1:         ; preds = %endif.0
15         ret void
16
17 endif.1:                ; preds = %endif.0
18         br bool false, label %then.2, label %endif.2
19
20 then.2:         ; preds = %endif.1
21         ret void
22
23 endif.2:                ; preds = %endif.1
24         br bool false, label %then.3, label %loopentry.0
25
26 then.3:         ; preds = %endif.2
27         ret void
28
29 loopentry.0:            ; preds = %endif.2
30         br bool false, label %no_exit.0.preheader, label %loopexit.0
31
32 no_exit.0.preheader:            ; preds = %loopentry.0
33         br label %no_exit.0
34
35 no_exit.0:              ; preds = %endif.4, %no_exit.0.preheader
36         br bool false, label %then.4, label %endif.4
37
38 then.4:         ; preds = %no_exit.0
39         ret void
40
41 endif.4:                ; preds = %no_exit.0
42         br bool false, label %no_exit.0, label %loopexit.0.loopexit
43
44 loopexit.0.loopexit:            ; preds = %endif.4
45         br label %loopexit.0
46
47 loopexit.0:             ; preds = %loopexit.0.loopexit, %loopentry.0
48         br bool false, label %then.5, label %loopentry.1
49
50 then.5:         ; preds = %loopexit.0
51         ret void
52
53 loopentry.1:            ; preds = %loopexit.0
54         %tmp.143 = setgt int 0, 0               ; <bool> [#uses=4]
55         br bool %tmp.143, label %no_exit.1.preheader, label %loopexit.1
56
57 no_exit.1.preheader:            ; preds = %loopentry.1
58         br label %no_exit.1
59
60 no_exit.1:              ; preds = %endif.6, %no_exit.1.preheader
61         br bool false, label %then.6, label %shortcirc_next.3
62
63 shortcirc_next.3:               ; preds = %no_exit.1
64         br bool false, label %then.6, label %shortcirc_next.4
65
66 shortcirc_next.4:               ; preds = %shortcirc_next.3
67         br bool false, label %then.6, label %endif.6
68
69 then.6:         ; preds = %shortcirc_next.4, %shortcirc_next.3, %no_exit.1
70         ret void
71
72 endif.6:                ; preds = %shortcirc_next.4
73         br bool false, label %no_exit.1, label %loopexit.1.loopexit
74
75 loopexit.1.loopexit:            ; preds = %endif.6
76         br label %loopexit.1
77
78 loopexit.1:             ; preds = %loopexit.1.loopexit, %loopentry.1
79         br bool false, label %then.i, label %loopentry.0.i
80
81 then.i:         ; preds = %loopexit.1
82         ret void
83
84 loopentry.0.i:          ; preds = %loopexit.1
85         br bool %tmp.143, label %no_exit.0.i.preheader, label %readvector.exit
86
87 no_exit.0.i.preheader:          ; preds = %loopentry.0.i
88         br label %no_exit.0.i
89
90 no_exit.0.i:            ; preds = %loopexit.1.i, %no_exit.0.i.preheader
91         br bool false, label %no_exit.1.i.preheader, label %loopexit.1.i
92
93 no_exit.1.i.preheader:          ; preds = %no_exit.0.i
94         br label %no_exit.1.i
95
96 no_exit.1.i:            ; preds = %loopexit.2.i, %no_exit.1.i.preheader
97         br bool false, label %no_exit.2.i.preheader, label %loopexit.2.i
98
99 no_exit.2.i.preheader:          ; preds = %no_exit.1.i
100         br label %no_exit.2.i
101
102 no_exit.2.i:            ; preds = %no_exit.2.i, %no_exit.2.i.preheader
103         br bool false, label %no_exit.2.i, label %loopexit.2.i.loopexit
104
105 loopexit.2.i.loopexit:          ; preds = %no_exit.2.i
106         br label %loopexit.2.i
107
108 loopexit.2.i:           ; preds = %loopexit.2.i.loopexit, %no_exit.1.i
109         br bool false, label %no_exit.1.i, label %loopexit.1.i.loopexit
110
111 loopexit.1.i.loopexit:          ; preds = %loopexit.2.i
112         br label %loopexit.1.i
113
114 loopexit.1.i:           ; preds = %loopexit.1.i.loopexit, %no_exit.0.i
115         br bool false, label %no_exit.0.i, label %readvector.exit.loopexit
116
117 readvector.exit.loopexit:               ; preds = %loopexit.1.i
118         br label %readvector.exit
119
120 readvector.exit:                ; preds = %readvector.exit.loopexit, %loopentry.0.i
121         br bool %tmp.143, label %loopentry.1.preheader.i, label %loopexit.0.i
122
123 loopentry.1.preheader.i:                ; preds = %readvector.exit
124         br label %loopentry.1.outer.i
125
126 loopentry.1.outer.i:            ; preds = %loopexit.1.i110, %loopentry.1.preheader.i
127         br label %loopentry.1.i85
128
129 loopentry.1.i85.loopexit:               ; preds = %hamming.exit16.i
130         br label %loopentry.1.i85
131
132 loopentry.1.i85:                ; preds = %loopentry.1.i85.loopexit, %loopentry.1.outer.i
133         br bool false, label %no_exit.1.preheader.i, label %loopexit.1.i110.loopexit1
134
135 no_exit.1.preheader.i:          ; preds = %loopentry.1.i85
136         br label %no_exit.1.i87
137
138 no_exit.1.i87:          ; preds = %then.1.i107, %no_exit.1.preheader.i
139         br bool false, label %no_exit.i.i101.preheader, label %hamming.exit.i104
140
141 no_exit.i.i101.preheader:               ; preds = %no_exit.1.i87
142         br label %no_exit.i.i101
143
144 no_exit.i.i101:         ; preds = %no_exit.i.i101, %no_exit.i.i101.preheader
145         br bool false, label %no_exit.i.i101, label %hamming.exit.i104.loopexit
146
147 hamming.exit.i104.loopexit:             ; preds = %no_exit.i.i101
148         br label %hamming.exit.i104
149
150 hamming.exit.i104:              ; preds = %hamming.exit.i104.loopexit, %no_exit.1.i87
151         br bool false, label %no_exit.i15.i.preheader, label %hamming.exit16.i
152
153 no_exit.i15.i.preheader:                ; preds = %hamming.exit.i104
154         br label %no_exit.i15.i
155
156 no_exit.i15.i:          ; preds = %no_exit.i15.i, %no_exit.i15.i.preheader
157         br bool false, label %no_exit.i15.i, label %hamming.exit16.i.loopexit
158
159 hamming.exit16.i.loopexit:              ; preds = %no_exit.i15.i
160         br label %hamming.exit16.i
161
162 hamming.exit16.i:               ; preds = %hamming.exit16.i.loopexit, %hamming.exit.i104
163         br bool false, label %loopentry.1.i85.loopexit, label %then.1.i107
164
165 then.1.i107:            ; preds = %hamming.exit16.i
166         br bool false, label %no_exit.1.i87, label %loopexit.1.i110.loopexit
167
168 loopexit.1.i110.loopexit:               ; preds = %then.1.i107
169         br label %loopexit.1.i110
170
171 loopexit.1.i110.loopexit1:              ; preds = %loopentry.1.i85
172         br label %loopexit.1.i110
173
174 loopexit.1.i110:                ; preds = %loopexit.1.i110.loopexit1, %loopexit.1.i110.loopexit
175         br bool false, label %loopentry.1.outer.i, label %loopexit.0.i.loopexit
176
177 loopexit.0.i.loopexit:          ; preds = %loopexit.1.i110
178         br label %loopexit.0.i
179
180 loopexit.0.i:           ; preds = %loopexit.0.i.loopexit, %readvector.exit
181         br bool false, label %UnifiedReturnBlock.i113, label %then.2.i112
182
183 then.2.i112:            ; preds = %loopexit.0.i
184         br label %checkham.exit
185
186 UnifiedReturnBlock.i113:                ; preds = %loopexit.0.i
187         br label %checkham.exit
188
189 checkham.exit:          ; preds = %UnifiedReturnBlock.i113, %then.2.i112
190         br bool false, label %loopentry.1.i14.preheader, label %loopentry.3.i.preheader
191
192 loopentry.1.i14.preheader:              ; preds = %checkham.exit
193         br label %loopentry.1.i14
194
195 loopentry.1.i14:                ; preds = %loopexit.1.i18, %loopentry.1.i14.preheader
196         br bool false, label %no_exit.1.i16.preheader, label %loopexit.1.i18
197
198 no_exit.1.i16.preheader:                ; preds = %loopentry.1.i14
199         br label %no_exit.1.i16
200
201 no_exit.1.i16:          ; preds = %no_exit.1.i16, %no_exit.1.i16.preheader
202         br bool false, label %no_exit.1.i16, label %loopexit.1.i18.loopexit
203
204 loopexit.1.i18.loopexit:                ; preds = %no_exit.1.i16
205         br label %loopexit.1.i18
206
207 loopexit.1.i18:         ; preds = %loopexit.1.i18.loopexit, %loopentry.1.i14
208         br bool false, label %loopentry.1.i14, label %loopentry.3.i.loopexit
209
210 loopentry.3.i.loopexit:         ; preds = %loopexit.1.i18
211         br label %loopentry.3.i.preheader
212
213 loopentry.3.i.preheader:                ; preds = %loopentry.3.i.loopexit, %checkham.exit
214         br label %loopentry.3.i
215
216 loopentry.3.i:          ; preds = %endif.1.i, %loopentry.3.i.preheader
217         br bool false, label %loopentry.4.i.preheader, label %endif.1.i
218
219 loopentry.4.i.preheader:                ; preds = %loopentry.3.i
220         br label %loopentry.4.i
221
222 loopentry.4.i:          ; preds = %loopexit.4.i, %loopentry.4.i.preheader
223         br bool false, label %no_exit.4.i.preheader, label %loopexit.4.i
224
225 no_exit.4.i.preheader:          ; preds = %loopentry.4.i
226         br label %no_exit.4.i
227
228 no_exit.4.i:            ; preds = %no_exit.4.i.backedge, %no_exit.4.i.preheader
229         br bool false, label %endif.0.i, label %else.i
230
231 else.i:         ; preds = %no_exit.4.i
232         br bool false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
233
234 no_exit.4.i.backedge:           ; preds = %endif.0.i, %else.i
235         br label %no_exit.4.i
236
237 endif.0.i:              ; preds = %no_exit.4.i
238         br bool false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
239
240 loopexit.4.i.loopexit:          ; preds = %endif.0.i, %else.i
241         br label %loopexit.4.i
242
243 loopexit.4.i:           ; preds = %loopexit.4.i.loopexit, %loopentry.4.i
244         br bool false, label %loopentry.4.i, label %endif.1.i.loopexit
245
246 endif.1.i.loopexit:             ; preds = %loopexit.4.i
247         br label %endif.1.i
248
249 endif.1.i:              ; preds = %endif.1.i.loopexit, %loopentry.3.i
250         %exitcond = seteq uint 0, 10            ; <bool> [#uses=1]
251         br bool %exitcond, label %generateT.exit, label %loopentry.3.i
252
253 generateT.exit:         ; preds = %endif.1.i
254         br bool false, label %then.0.i, label %loopentry.1.i30.preheader
255
256 then.0.i:               ; preds = %generateT.exit
257         ret void
258
259 loopentry.1.i30.loopexit:               ; preds = %loopexit.3.i
260         br label %loopentry.1.i30.backedge
261
262 loopentry.1.i30.preheader:              ; preds = %generateT.exit
263         br label %loopentry.1.i30
264
265 loopentry.1.i30:                ; preds = %loopentry.1.i30.backedge, %loopentry.1.i30.preheader
266         br bool %tmp.143, label %no_exit.0.i31.preheader, label %loopentry.1.i30.backedge
267
268 loopentry.1.i30.backedge:               ; preds = %loopentry.1.i30, %loopentry.1.i30.loopexit
269         br label %loopentry.1.i30
270
271 no_exit.0.i31.preheader:                ; preds = %loopentry.1.i30
272         br label %no_exit.0.i31
273
274 no_exit.0.i31:          ; preds = %loopexit.3.i, %no_exit.0.i31.preheader
275         br bool false, label %then.1.i, label %else.0.i
276
277 then.1.i:               ; preds = %no_exit.0.i31
278         br bool undef, label %then.0.i29, label %loopentry.0.i31
279
280 then.0.i29:             ; preds = %then.1.i
281         unreachable
282
283 loopentry.0.i31:                ; preds = %then.1.i
284         br bool false, label %no_exit.0.i38.preheader, label %loopentry.1.i.preheader
285
286 no_exit.0.i38.preheader:                ; preds = %loopentry.0.i31
287         br label %no_exit.0.i38
288
289 no_exit.0.i38:          ; preds = %no_exit.0.i38, %no_exit.0.i38.preheader
290         br bool undef, label %no_exit.0.i38, label %loopentry.1.i.preheader.loopexit
291
292 loopentry.1.i.preheader.loopexit:               ; preds = %no_exit.0.i38
293         br label %loopentry.1.i.preheader
294
295 loopentry.1.i.preheader:                ; preds = %loopentry.1.i.preheader.loopexit, %loopentry.0.i31
296         br label %loopentry.1.i
297
298 loopentry.1.i:          ; preds = %endif.2.i, %loopentry.1.i.preheader
299         br bool undef, label %loopentry.2.i39.preheader, label %loopexit.1.i79.loopexit2
300
301 loopentry.2.i39.preheader:              ; preds = %loopentry.1.i
302         br label %loopentry.2.i39
303
304 loopentry.2.i39:                ; preds = %loopexit.5.i77, %loopentry.2.i39.preheader
305         br bool false, label %loopentry.3.i40.preheader, label %hamming.exit.i71
306
307 loopentry.3.i40.preheader:              ; preds = %loopentry.2.i39
308         br label %loopentry.3.i40
309
310 loopentry.3.i40:                ; preds = %loopexit.3.i51, %loopentry.3.i40.preheader
311         br bool false, label %no_exit.3.preheader.i42, label %loopexit.3.i51
312
313 no_exit.3.preheader.i42:                ; preds = %loopentry.3.i40
314         br label %no_exit.3.i49
315
316 no_exit.3.i49:          ; preds = %no_exit.3.i49, %no_exit.3.preheader.i42
317         br bool undef, label %no_exit.3.i49, label %loopexit.3.i51.loopexit
318
319 loopexit.3.i51.loopexit:                ; preds = %no_exit.3.i49
320         br label %loopexit.3.i51
321
322 loopexit.3.i51:         ; preds = %loopexit.3.i51.loopexit, %loopentry.3.i40
323         br bool undef, label %loopentry.3.i40, label %loopentry.4.i52
324
325 loopentry.4.i52:                ; preds = %loopexit.3.i51
326         br bool false, label %no_exit.4.i54.preheader, label %hamming.exit.i71
327
328 no_exit.4.i54.preheader:                ; preds = %loopentry.4.i52
329         br label %no_exit.4.i54
330
331 no_exit.4.i54:          ; preds = %no_exit.4.backedge.i, %no_exit.4.i54.preheader
332         br bool undef, label %then.1.i55, label %endif.1.i56
333
334 then.1.i55:             ; preds = %no_exit.4.i54
335         br bool undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
336
337 no_exit.4.backedge.i:           ; preds = %endif.1.i56, %then.1.i55
338         br label %no_exit.4.i54
339
340 endif.1.i56:            ; preds = %no_exit.4.i54
341         br bool undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
342
343 loopexit.4.i57:         ; preds = %endif.1.i56, %then.1.i55
344         br bool false, label %no_exit.i.i69.preheader, label %hamming.exit.i71
345
346 no_exit.i.i69.preheader:                ; preds = %loopexit.4.i57
347         br label %no_exit.i.i69
348
349 no_exit.i.i69:          ; preds = %no_exit.i.i69, %no_exit.i.i69.preheader
350         br bool undef, label %no_exit.i.i69, label %hamming.exit.i71.loopexit
351
352 hamming.exit.i71.loopexit:              ; preds = %no_exit.i.i69
353         br label %hamming.exit.i71
354
355 hamming.exit.i71:               ; preds = %hamming.exit.i71.loopexit, %loopexit.4.i57, %loopentry.4.i52, %loopentry.2.i39
356         br bool undef, label %endif.2.i, label %loopentry.5.i72
357
358 loopentry.5.i72:                ; preds = %hamming.exit.i71
359         br bool false, label %shortcirc_next.i74.preheader, label %loopexit.5.i77
360
361 shortcirc_next.i74.preheader:           ; preds = %loopentry.5.i72
362         br label %shortcirc_next.i74
363
364 shortcirc_next.i74:             ; preds = %no_exit.5.i76, %shortcirc_next.i74.preheader
365         br bool undef, label %no_exit.5.i76, label %loopexit.5.i77.loopexit
366
367 no_exit.5.i76:          ; preds = %shortcirc_next.i74
368         br bool undef, label %shortcirc_next.i74, label %loopexit.5.i77.loopexit
369
370 loopexit.5.i77.loopexit:                ; preds = %no_exit.5.i76, %shortcirc_next.i74
371         br label %loopexit.5.i77
372
373 loopexit.5.i77:         ; preds = %loopexit.5.i77.loopexit, %loopentry.5.i72
374         br bool undef, label %loopentry.2.i39, label %loopexit.1.i79.loopexit
375
376 endif.2.i:              ; preds = %hamming.exit.i71
377         br label %loopentry.1.i
378
379 loopexit.1.i79.loopexit:                ; preds = %loopexit.5.i77
380         br label %loopexit.1.i79
381
382 loopexit.1.i79.loopexit2:               ; preds = %loopentry.1.i
383         br label %loopexit.1.i79
384
385 loopexit.1.i79:         ; preds = %loopexit.1.i79.loopexit2, %loopexit.1.i79.loopexit
386         br bool undef, label %then.3.i, label %loopentry.6.i80
387
388 then.3.i:               ; preds = %loopexit.1.i79
389         br bool false, label %no_exit.6.i82.preheader, label %run.exit
390
391 loopentry.6.i80:                ; preds = %loopexit.1.i79
392         br bool false, label %no_exit.6.i82.preheader, label %run.exit
393
394 no_exit.6.i82.preheader:                ; preds = %loopentry.6.i80, %then.3.i
395         br label %no_exit.6.i82
396
397 no_exit.6.i82:          ; preds = %no_exit.6.i82, %no_exit.6.i82.preheader
398         br bool undef, label %no_exit.6.i82, label %run.exit.loopexit
399
400 run.exit.loopexit:              ; preds = %no_exit.6.i82
401         br label %run.exit
402
403 run.exit:               ; preds = %run.exit.loopexit, %loopentry.6.i80, %then.3.i
404         br bool false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
405
406 else.0.i:               ; preds = %no_exit.0.i31
407         br bool false, label %then.0.i4, label %loopentry.0.i6
408
409 then.0.i4:              ; preds = %else.0.i
410         unreachable
411
412 loopentry.0.i6:         ; preds = %else.0.i
413         br bool false, label %no_exit.0.i8.preheader, label %loopentry.2.i.preheader
414
415 no_exit.0.i8.preheader:         ; preds = %loopentry.0.i6
416         br label %no_exit.0.i8
417
418 no_exit.0.i8:           ; preds = %no_exit.0.i8, %no_exit.0.i8.preheader
419         br bool false, label %no_exit.0.i8, label %loopentry.2.i.preheader.loopexit
420
421 loopentry.2.i.preheader.loopexit:               ; preds = %no_exit.0.i8
422         br label %loopentry.2.i.preheader
423
424 loopentry.2.i.preheader:                ; preds = %loopentry.2.i.preheader.loopexit, %loopentry.0.i6
425         br label %loopentry.2.i
426
427 loopentry.2.i:          ; preds = %endif.3.i19, %loopentry.2.i.preheader
428         br bool false, label %loopentry.3.i10.preheader, label %loopentry.4.i15
429
430 loopentry.3.i10.preheader:              ; preds = %loopentry.2.i
431         br label %loopentry.3.i10
432
433 loopentry.3.i10:                ; preds = %loopexit.3.i14, %loopentry.3.i10.preheader
434         br bool false, label %no_exit.3.preheader.i, label %loopexit.3.i14
435
436 no_exit.3.preheader.i:          ; preds = %loopentry.3.i10
437         br label %no_exit.3.i12
438
439 no_exit.3.i12:          ; preds = %no_exit.3.i12, %no_exit.3.preheader.i
440         br bool false, label %no_exit.3.i12, label %loopexit.3.i14.loopexit
441
442 loopexit.3.i14.loopexit:                ; preds = %no_exit.3.i12
443         br label %loopexit.3.i14
444
445 loopexit.3.i14:         ; preds = %loopexit.3.i14.loopexit, %loopentry.3.i10
446         br bool false, label %loopentry.3.i10, label %loopentry.4.i15.loopexit
447
448 loopentry.4.i15.loopexit:               ; preds = %loopexit.3.i14
449         br label %loopentry.4.i15
450
451 loopentry.4.i15:                ; preds = %loopentry.4.i15.loopexit, %loopentry.2.i
452         br bool false, label %loopentry.5.outer.i.preheader, label %loopentry.7.i
453
454 loopentry.5.outer.i.preheader:          ; preds = %loopentry.4.i15
455         br label %loopentry.5.outer.i
456
457 loopentry.5.outer.i:            ; preds = %loopexit.5.i, %loopentry.5.outer.i.preheader
458         br label %loopentry.5.i
459
460 loopentry.5.i:          ; preds = %endif.1.i18, %loopentry.5.outer.i
461         br bool false, label %no_exit.5.i.preheader, label %loopexit.5.i.loopexit3
462
463 no_exit.5.i.preheader:          ; preds = %loopentry.5.i
464         br label %no_exit.5.i
465
466 no_exit.5.i:            ; preds = %then.2.i, %no_exit.5.i.preheader
467         br bool false, label %loopentry.6.i, label %endif.1.i18
468
469 loopentry.6.i:          ; preds = %no_exit.5.i
470         br bool false, label %no_exit.6.preheader.i, label %loopexit.6.i
471
472 no_exit.6.preheader.i:          ; preds = %loopentry.6.i
473         br label %no_exit.6.i
474
475 no_exit.6.i:            ; preds = %no_exit.6.i, %no_exit.6.preheader.i
476         br bool false, label %no_exit.6.i, label %loopexit.6.i.loopexit
477
478 loopexit.6.i.loopexit:          ; preds = %no_exit.6.i
479         br label %loopexit.6.i
480
481 loopexit.6.i:           ; preds = %loopexit.6.i.loopexit, %loopentry.6.i
482         br bool false, label %then.2.i, label %endif.1.i18
483
484 then.2.i:               ; preds = %loopexit.6.i
485         br bool false, label %no_exit.5.i, label %loopexit.5.i.loopexit
486
487 endif.1.i18:            ; preds = %loopexit.6.i, %no_exit.5.i
488         br label %loopentry.5.i
489
490 loopexit.5.i.loopexit:          ; preds = %then.2.i
491         br label %loopexit.5.i
492
493 loopexit.5.i.loopexit3:         ; preds = %loopentry.5.i
494         br label %loopexit.5.i
495
496 loopexit.5.i:           ; preds = %loopexit.5.i.loopexit3, %loopexit.5.i.loopexit
497         br bool false, label %loopentry.5.outer.i, label %loopentry.7.i.loopexit
498
499 loopentry.7.i.loopexit:         ; preds = %loopexit.5.i
500         br label %loopentry.7.i
501
502 loopentry.7.i:          ; preds = %loopentry.7.i.loopexit, %loopentry.4.i15
503         br bool false, label %no_exit.7.i.preheader, label %hamming.exit.i
504
505 no_exit.7.i.preheader:          ; preds = %loopentry.7.i
506         br label %no_exit.7.i
507
508 no_exit.7.i:            ; preds = %no_exit.7.i, %no_exit.7.i.preheader
509         br bool false, label %no_exit.7.i, label %loopexit.7.i
510
511 loopexit.7.i:           ; preds = %no_exit.7.i
512         br bool false, label %no_exit.i.i.preheader, label %hamming.exit.i
513
514 no_exit.i.i.preheader:          ; preds = %loopexit.7.i
515         br label %no_exit.i.i
516
517 no_exit.i.i:            ; preds = %no_exit.i.i, %no_exit.i.i.preheader
518         br bool false, label %no_exit.i.i, label %hamming.exit.i.loopexit
519
520 hamming.exit.i.loopexit:                ; preds = %no_exit.i.i
521         br label %hamming.exit.i
522
523 hamming.exit.i:         ; preds = %hamming.exit.i.loopexit, %loopexit.7.i, %loopentry.7.i
524         br bool false, label %endif.3.i19, label %loopentry.8.i
525
526 loopentry.8.i:          ; preds = %hamming.exit.i
527         br bool false, label %shortcirc_next.i.preheader, label %loopexit.8.i
528
529 shortcirc_next.i.preheader:             ; preds = %loopentry.8.i
530         br label %shortcirc_next.i
531
532 shortcirc_next.i:               ; preds = %no_exit.8.i, %shortcirc_next.i.preheader
533         br bool false, label %no_exit.8.i, label %loopexit.8.i.loopexit
534
535 no_exit.8.i:            ; preds = %shortcirc_next.i
536         br bool false, label %shortcirc_next.i, label %loopexit.8.i.loopexit
537
538 loopexit.8.i.loopexit:          ; preds = %no_exit.8.i, %shortcirc_next.i
539         br label %loopexit.8.i
540
541 loopexit.8.i:           ; preds = %loopexit.8.i.loopexit, %loopentry.8.i
542         br bool false, label %no_exit.9.i.preheader, label %endif.3.i19
543
544 no_exit.9.i.preheader:          ; preds = %loopexit.8.i
545         br label %no_exit.9.i
546
547 no_exit.9.i:            ; preds = %no_exit.9.i, %no_exit.9.i.preheader
548         br bool false, label %no_exit.9.i, label %endif.3.i19.loopexit
549
550 endif.3.i19.loopexit:           ; preds = %no_exit.9.i
551         br label %endif.3.i19
552
553 endif.3.i19:            ; preds = %endif.3.i19.loopexit, %loopexit.8.i, %hamming.exit.i
554         br bool false, label %loopentry.2.i, label %loopexit.1.i20
555
556 loopexit.1.i20:         ; preds = %endif.3.i19
557         br bool false, label %then.4.i, label %UnifiedReturnBlock.i
558
559 then.4.i:               ; preds = %loopexit.1.i20
560         br label %runcont.exit
561
562 UnifiedReturnBlock.i:           ; preds = %loopexit.1.i20
563         br label %runcont.exit
564
565 runcont.exit:           ; preds = %UnifiedReturnBlock.i, %then.4.i
566         br bool false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
567
568 no_exit.1.i36.preheader:                ; preds = %runcont.exit, %run.exit
569         br label %no_exit.1.i36
570
571 no_exit.1.i36:          ; preds = %no_exit.1.i36, %no_exit.1.i36.preheader
572         br bool false, label %no_exit.1.i36, label %loopentry.3.i37.loopexit
573
574 loopentry.3.i37.loopexit:               ; preds = %no_exit.1.i36
575         br label %loopentry.3.i37
576
577 loopentry.3.i37:                ; preds = %loopentry.3.i37.loopexit, %runcont.exit, %run.exit
578         br bool false, label %loopentry.4.i38.preheader, label %loopexit.3.i
579
580 loopentry.4.i38.preheader:              ; preds = %loopentry.3.i37
581         br label %loopentry.4.i38
582
583 loopentry.4.i38:                ; preds = %loopexit.4.i42, %loopentry.4.i38.preheader
584         br bool false, label %no_exit.3.i.preheader, label %loopexit.4.i42
585
586 no_exit.3.i.preheader:          ; preds = %loopentry.4.i38
587         br label %no_exit.3.i
588
589 no_exit.3.i:            ; preds = %no_exit.3.i.backedge, %no_exit.3.i.preheader
590         br bool false, label %endif.3.i, label %else.1.i
591
592 else.1.i:               ; preds = %no_exit.3.i
593         br bool false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
594
595 no_exit.3.i.backedge:           ; preds = %endif.3.i, %else.1.i
596         br label %no_exit.3.i
597
598 endif.3.i:              ; preds = %no_exit.3.i
599         br bool false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
600
601 loopexit.4.i42.loopexit:                ; preds = %endif.3.i, %else.1.i
602         br label %loopexit.4.i42
603
604 loopexit.4.i42:         ; preds = %loopexit.4.i42.loopexit, %loopentry.4.i38
605         br bool false, label %loopentry.4.i38, label %loopexit.3.i.loopexit
606
607 loopexit.3.i.loopexit:          ; preds = %loopexit.4.i42
608         br label %loopexit.3.i
609
610 loopexit.3.i:           ; preds = %loopexit.3.i.loopexit, %loopentry.3.i37
611         %tmp.13.i155 = setlt int 0, 0           ; <bool> [#uses=1]
612         br bool %tmp.13.i155, label %no_exit.0.i31, label %loopentry.1.i30.loopexit
613 }