Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / 2006-06-12-InfLoop.ll
blob0ec88ed071fc2f537a6afa93b37619b02ab83b3f
1 ; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output
2 ; END.
4 define void @main(i32 %c) {
5 entry:
6         %tmp.9 = icmp eq i32 %c, 2              ; <i1> [#uses=1]
7         br i1 %tmp.9, label %endif.0, label %then.0
8 then.0:         ; preds = %entry
9         ret void
10 endif.0:                ; preds = %entry
11         br i1 false, label %then.1, label %endif.1
12 then.1:         ; preds = %endif.0
13         ret void
14 endif.1:                ; preds = %endif.0
15         br i1 false, label %then.2, label %endif.2
16 then.2:         ; preds = %endif.1
17         ret void
18 endif.2:                ; preds = %endif.1
19         br i1 false, label %then.3, label %loopentry.0
20 then.3:         ; preds = %endif.2
21         ret void
22 loopentry.0:            ; preds = %endif.2
23         br i1 false, label %no_exit.0.preheader, label %loopexit.0
24 no_exit.0.preheader:            ; preds = %loopentry.0
25         br label %no_exit.0
26 no_exit.0:              ; preds = %endif.4, %no_exit.0.preheader
27         br i1 false, label %then.4, label %endif.4
28 then.4:         ; preds = %no_exit.0
29         ret void
30 endif.4:                ; preds = %no_exit.0
31         br i1 false, label %no_exit.0, label %loopexit.0.loopexit
32 loopexit.0.loopexit:            ; preds = %endif.4
33         br label %loopexit.0
34 loopexit.0:             ; preds = %loopexit.0.loopexit, %loopentry.0
35         br i1 false, label %then.5, label %loopentry.1
36 then.5:         ; preds = %loopexit.0
37         ret void
38 loopentry.1:            ; preds = %loopexit.0
39         %tmp.143 = icmp sgt i32 0, 0            ; <i1> [#uses=4]
40         br i1 %tmp.143, label %no_exit.1.preheader, label %loopexit.1
41 no_exit.1.preheader:            ; preds = %loopentry.1
42         br label %no_exit.1
43 no_exit.1:              ; preds = %endif.6, %no_exit.1.preheader
44         br i1 false, label %then.6, label %shortcirc_next.3
45 shortcirc_next.3:               ; preds = %no_exit.1
46         br i1 false, label %then.6, label %shortcirc_next.4
47 shortcirc_next.4:               ; preds = %shortcirc_next.3
48         br i1 false, label %then.6, label %endif.6
49 then.6:         ; preds = %shortcirc_next.4, %shortcirc_next.3, %no_exit.1
50         ret void
51 endif.6:                ; preds = %shortcirc_next.4
52         br i1 false, label %no_exit.1, label %loopexit.1.loopexit
53 loopexit.1.loopexit:            ; preds = %endif.6
54         br label %loopexit.1
55 loopexit.1:             ; preds = %loopexit.1.loopexit, %loopentry.1
56         br i1 false, label %then.i, label %loopentry.0.i
57 then.i:         ; preds = %loopexit.1
58         ret void
59 loopentry.0.i:          ; preds = %loopexit.1
60         br i1 %tmp.143, label %no_exit.0.i.preheader, label %readvector.exit
61 no_exit.0.i.preheader:          ; preds = %loopentry.0.i
62         br label %no_exit.0.i
63 no_exit.0.i:            ; preds = %loopexit.1.i, %no_exit.0.i.preheader
64         br i1 false, label %no_exit.1.i.preheader, label %loopexit.1.i
65 no_exit.1.i.preheader:          ; preds = %no_exit.0.i
66         br label %no_exit.1.i
67 no_exit.1.i:            ; preds = %loopexit.2.i, %no_exit.1.i.preheader
68         br i1 false, label %no_exit.2.i.preheader, label %loopexit.2.i
69 no_exit.2.i.preheader:          ; preds = %no_exit.1.i
70         br label %no_exit.2.i
71 no_exit.2.i:            ; preds = %no_exit.2.i, %no_exit.2.i.preheader
72         br i1 false, label %no_exit.2.i, label %loopexit.2.i.loopexit
73 loopexit.2.i.loopexit:          ; preds = %no_exit.2.i
74         br label %loopexit.2.i
75 loopexit.2.i:           ; preds = %loopexit.2.i.loopexit, %no_exit.1.i
76         br i1 false, label %no_exit.1.i, label %loopexit.1.i.loopexit
77 loopexit.1.i.loopexit:          ; preds = %loopexit.2.i
78         br label %loopexit.1.i
79 loopexit.1.i:           ; preds = %loopexit.1.i.loopexit, %no_exit.0.i
80         br i1 false, label %no_exit.0.i, label %readvector.exit.loopexit
81 readvector.exit.loopexit:               ; preds = %loopexit.1.i
82         br label %readvector.exit
83 readvector.exit:                ; preds = %readvector.exit.loopexit, %loopentry.0.i
84         br i1 %tmp.143, label %loopentry.1.preheader.i, label %loopexit.0.i
85 loopentry.1.preheader.i:                ; preds = %readvector.exit
86         br label %loopentry.1.outer.i
87 loopentry.1.outer.i:            ; preds = %loopexit.1.i110, %loopentry.1.preheader.i
88         br label %loopentry.1.i85
89 loopentry.1.i85.loopexit:               ; preds = %hamming.exit16.i
90         br label %loopentry.1.i85
91 loopentry.1.i85:                ; preds = %loopentry.1.i85.loopexit, %loopentry.1.outer.i
92         br i1 false, label %no_exit.1.preheader.i, label %loopexit.1.i110.loopexit1
93 no_exit.1.preheader.i:          ; preds = %loopentry.1.i85
94         br label %no_exit.1.i87
95 no_exit.1.i87:          ; preds = %then.1.i107, %no_exit.1.preheader.i
96         br i1 false, label %no_exit.i.i101.preheader, label %hamming.exit.i104
97 no_exit.i.i101.preheader:               ; preds = %no_exit.1.i87
98         br label %no_exit.i.i101
99 no_exit.i.i101:         ; preds = %no_exit.i.i101, %no_exit.i.i101.preheader
100         br i1 false, label %no_exit.i.i101, label %hamming.exit.i104.loopexit
101 hamming.exit.i104.loopexit:             ; preds = %no_exit.i.i101
102         br label %hamming.exit.i104
103 hamming.exit.i104:              ; preds = %hamming.exit.i104.loopexit, %no_exit.1.i87
104         br i1 false, label %no_exit.i15.i.preheader, label %hamming.exit16.i
105 no_exit.i15.i.preheader:                ; preds = %hamming.exit.i104
106         br label %no_exit.i15.i
107 no_exit.i15.i:          ; preds = %no_exit.i15.i, %no_exit.i15.i.preheader
108         br i1 false, label %no_exit.i15.i, label %hamming.exit16.i.loopexit
109 hamming.exit16.i.loopexit:              ; preds = %no_exit.i15.i
110         br label %hamming.exit16.i
111 hamming.exit16.i:               ; preds = %hamming.exit16.i.loopexit, %hamming.exit.i104
112         br i1 false, label %loopentry.1.i85.loopexit, label %then.1.i107
113 then.1.i107:            ; preds = %hamming.exit16.i
114         br i1 false, label %no_exit.1.i87, label %loopexit.1.i110.loopexit
115 loopexit.1.i110.loopexit:               ; preds = %then.1.i107
116         br label %loopexit.1.i110
117 loopexit.1.i110.loopexit1:              ; preds = %loopentry.1.i85
118         br label %loopexit.1.i110
119 loopexit.1.i110:                ; preds = %loopexit.1.i110.loopexit1, %loopexit.1.i110.loopexit
120         br i1 false, label %loopentry.1.outer.i, label %loopexit.0.i.loopexit
121 loopexit.0.i.loopexit:          ; preds = %loopexit.1.i110
122         br label %loopexit.0.i
123 loopexit.0.i:           ; preds = %loopexit.0.i.loopexit, %readvector.exit
124         br i1 false, label %UnifiedReturnBlock.i113, label %then.2.i112
125 then.2.i112:            ; preds = %loopexit.0.i
126         br label %checkham.exit
127 UnifiedReturnBlock.i113:                ; preds = %loopexit.0.i
128         br label %checkham.exit
129 checkham.exit:          ; preds = %UnifiedReturnBlock.i113, %then.2.i112
130         br i1 false, label %loopentry.1.i14.preheader, label %loopentry.3.i.preheader
131 loopentry.1.i14.preheader:              ; preds = %checkham.exit
132         br label %loopentry.1.i14
133 loopentry.1.i14:                ; preds = %loopexit.1.i18, %loopentry.1.i14.preheader
134         br i1 false, label %no_exit.1.i16.preheader, label %loopexit.1.i18
135 no_exit.1.i16.preheader:                ; preds = %loopentry.1.i14
136         br label %no_exit.1.i16
137 no_exit.1.i16:          ; preds = %no_exit.1.i16, %no_exit.1.i16.preheader
138         br i1 false, label %no_exit.1.i16, label %loopexit.1.i18.loopexit
139 loopexit.1.i18.loopexit:                ; preds = %no_exit.1.i16
140         br label %loopexit.1.i18
141 loopexit.1.i18:         ; preds = %loopexit.1.i18.loopexit, %loopentry.1.i14
142         br i1 false, label %loopentry.1.i14, label %loopentry.3.i.loopexit
143 loopentry.3.i.loopexit:         ; preds = %loopexit.1.i18
144         br label %loopentry.3.i.preheader
145 loopentry.3.i.preheader:                ; preds = %loopentry.3.i.loopexit, %checkham.exit
146         br label %loopentry.3.i
147 loopentry.3.i:          ; preds = %endif.1.i, %loopentry.3.i.preheader
148         br i1 false, label %loopentry.4.i.preheader, label %endif.1.i
149 loopentry.4.i.preheader:                ; preds = %loopentry.3.i
150         br label %loopentry.4.i
151 loopentry.4.i:          ; preds = %loopexit.4.i, %loopentry.4.i.preheader
152         br i1 false, label %no_exit.4.i.preheader, label %loopexit.4.i
153 no_exit.4.i.preheader:          ; preds = %loopentry.4.i
154         br label %no_exit.4.i
155 no_exit.4.i:            ; preds = %no_exit.4.i.backedge, %no_exit.4.i.preheader
156         br i1 false, label %endif.0.i, label %else.i
157 else.i:         ; preds = %no_exit.4.i
158         br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
159 no_exit.4.i.backedge:           ; preds = %endif.0.i, %else.i
160         br label %no_exit.4.i
161 endif.0.i:              ; preds = %no_exit.4.i
162         br i1 false, label %no_exit.4.i.backedge, label %loopexit.4.i.loopexit
163 loopexit.4.i.loopexit:          ; preds = %endif.0.i, %else.i
164         br label %loopexit.4.i
165 loopexit.4.i:           ; preds = %loopexit.4.i.loopexit, %loopentry.4.i
166         br i1 false, label %loopentry.4.i, label %endif.1.i.loopexit
167 endif.1.i.loopexit:             ; preds = %loopexit.4.i
168         br label %endif.1.i
169 endif.1.i:              ; preds = %endif.1.i.loopexit, %loopentry.3.i
170         %exitcond = icmp eq i32 0, 10           ; <i1> [#uses=1]
171         br i1 %exitcond, label %generateT.exit, label %loopentry.3.i
172 generateT.exit:         ; preds = %endif.1.i
173         br i1 false, label %then.0.i, label %loopentry.1.i30.preheader
174 then.0.i:               ; preds = %generateT.exit
175         ret void
176 loopentry.1.i30.loopexit:               ; preds = %loopexit.3.i
177         br label %loopentry.1.i30.backedge
178 loopentry.1.i30.preheader:              ; preds = %generateT.exit
179         br label %loopentry.1.i30
180 loopentry.1.i30:                ; preds = %loopentry.1.i30.backedge, %loopentry.1.i30.preheader
181         br i1 %tmp.143, label %no_exit.0.i31.preheader, label %loopentry.1.i30.backedge
182 loopentry.1.i30.backedge:               ; preds = %loopentry.1.i30, %loopentry.1.i30.loopexit
183         br label %loopentry.1.i30
184 no_exit.0.i31.preheader:                ; preds = %loopentry.1.i30
185         br label %no_exit.0.i31
186 no_exit.0.i31:          ; preds = %loopexit.3.i, %no_exit.0.i31.preheader
187         br i1 false, label %then.1.i, label %else.0.i
188 then.1.i:               ; preds = %no_exit.0.i31
189         br i1 undef, label %then.0.i29, label %loopentry.0.i31
190 then.0.i29:             ; preds = %then.1.i
191         unreachable
192 loopentry.0.i31:                ; preds = %then.1.i
193         br i1 false, label %no_exit.0.i38.preheader, label %loopentry.1.i.preheader
194 no_exit.0.i38.preheader:                ; preds = %loopentry.0.i31
195         br label %no_exit.0.i38
196 no_exit.0.i38:          ; preds = %no_exit.0.i38, %no_exit.0.i38.preheader
197         br i1 undef, label %no_exit.0.i38, label %loopentry.1.i.preheader.loopexit
198 loopentry.1.i.preheader.loopexit:               ; preds = %no_exit.0.i38
199         br label %loopentry.1.i.preheader
200 loopentry.1.i.preheader:                ; preds = %loopentry.1.i.preheader.loopexit, %loopentry.0.i31
201         br label %loopentry.1.i
202 loopentry.1.i:          ; preds = %endif.2.i, %loopentry.1.i.preheader
203         br i1 undef, label %loopentry.2.i39.preheader, label %loopexit.1.i79.loopexit2
204 loopentry.2.i39.preheader:              ; preds = %loopentry.1.i
205         br label %loopentry.2.i39
206 loopentry.2.i39:                ; preds = %loopexit.5.i77, %loopentry.2.i39.preheader
207         br i1 false, label %loopentry.3.i40.preheader, label %hamming.exit.i71
208 loopentry.3.i40.preheader:              ; preds = %loopentry.2.i39
209         br label %loopentry.3.i40
210 loopentry.3.i40:                ; preds = %loopexit.3.i51, %loopentry.3.i40.preheader
211         br i1 false, label %no_exit.3.preheader.i42, label %loopexit.3.i51
212 no_exit.3.preheader.i42:                ; preds = %loopentry.3.i40
213         br label %no_exit.3.i49
214 no_exit.3.i49:          ; preds = %no_exit.3.i49, %no_exit.3.preheader.i42
215         br i1 undef, label %no_exit.3.i49, label %loopexit.3.i51.loopexit
216 loopexit.3.i51.loopexit:                ; preds = %no_exit.3.i49
217         br label %loopexit.3.i51
218 loopexit.3.i51:         ; preds = %loopexit.3.i51.loopexit, %loopentry.3.i40
219         br i1 undef, label %loopentry.3.i40, label %loopentry.4.i52
220 loopentry.4.i52:                ; preds = %loopexit.3.i51
221         br i1 false, label %no_exit.4.i54.preheader, label %hamming.exit.i71
222 no_exit.4.i54.preheader:                ; preds = %loopentry.4.i52
223         br label %no_exit.4.i54
224 no_exit.4.i54:          ; preds = %no_exit.4.backedge.i, %no_exit.4.i54.preheader
225         br i1 undef, label %then.1.i55, label %endif.1.i56
226 then.1.i55:             ; preds = %no_exit.4.i54
227         br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
228 no_exit.4.backedge.i:           ; preds = %endif.1.i56, %then.1.i55
229         br label %no_exit.4.i54
230 endif.1.i56:            ; preds = %no_exit.4.i54
231         br i1 undef, label %no_exit.4.backedge.i, label %loopexit.4.i57
232 loopexit.4.i57:         ; preds = %endif.1.i56, %then.1.i55
233         br i1 false, label %no_exit.i.i69.preheader, label %hamming.exit.i71
234 no_exit.i.i69.preheader:                ; preds = %loopexit.4.i57
235         br label %no_exit.i.i69
236 no_exit.i.i69:          ; preds = %no_exit.i.i69, %no_exit.i.i69.preheader
237         br i1 undef, label %no_exit.i.i69, label %hamming.exit.i71.loopexit
238 hamming.exit.i71.loopexit:              ; preds = %no_exit.i.i69
239         br label %hamming.exit.i71
240 hamming.exit.i71:               ; preds = %hamming.exit.i71.loopexit, %loopexit.4.i57, %loopentry.4.i52, %loopentry.2.i39
241         br i1 undef, label %endif.2.i, label %loopentry.5.i72
242 loopentry.5.i72:                ; preds = %hamming.exit.i71
243         br i1 false, label %shortcirc_next.i74.preheader, label %loopexit.5.i77
244 shortcirc_next.i74.preheader:           ; preds = %loopentry.5.i72
245         br label %shortcirc_next.i74
246 shortcirc_next.i74:             ; preds = %no_exit.5.i76, %shortcirc_next.i74.preheader
247         br i1 undef, label %no_exit.5.i76, label %loopexit.5.i77.loopexit
248 no_exit.5.i76:          ; preds = %shortcirc_next.i74
249         br i1 undef, label %shortcirc_next.i74, label %loopexit.5.i77.loopexit
250 loopexit.5.i77.loopexit:                ; preds = %no_exit.5.i76, %shortcirc_next.i74
251         br label %loopexit.5.i77
252 loopexit.5.i77:         ; preds = %loopexit.5.i77.loopexit, %loopentry.5.i72
253         br i1 undef, label %loopentry.2.i39, label %loopexit.1.i79.loopexit
254 endif.2.i:              ; preds = %hamming.exit.i71
255         br label %loopentry.1.i
256 loopexit.1.i79.loopexit:                ; preds = %loopexit.5.i77
257         br label %loopexit.1.i79
258 loopexit.1.i79.loopexit2:               ; preds = %loopentry.1.i
259         br label %loopexit.1.i79
260 loopexit.1.i79:         ; preds = %loopexit.1.i79.loopexit2, %loopexit.1.i79.loopexit
261         br i1 undef, label %then.3.i, label %loopentry.6.i80
262 then.3.i:               ; preds = %loopexit.1.i79
263         br i1 false, label %no_exit.6.i82.preheader, label %run.exit
264 loopentry.6.i80:                ; preds = %loopexit.1.i79
265         br i1 false, label %no_exit.6.i82.preheader, label %run.exit
266 no_exit.6.i82.preheader:                ; preds = %loopentry.6.i80, %then.3.i
267         br label %no_exit.6.i82
268 no_exit.6.i82:          ; preds = %no_exit.6.i82, %no_exit.6.i82.preheader
269         br i1 undef, label %no_exit.6.i82, label %run.exit.loopexit
270 run.exit.loopexit:              ; preds = %no_exit.6.i82
271         br label %run.exit
272 run.exit:               ; preds = %run.exit.loopexit, %loopentry.6.i80, %then.3.i
273         br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
274 else.0.i:               ; preds = %no_exit.0.i31
275         br i1 false, label %then.0.i4, label %loopentry.0.i6
276 then.0.i4:              ; preds = %else.0.i
277         unreachable
278 loopentry.0.i6:         ; preds = %else.0.i
279         br i1 false, label %no_exit.0.i8.preheader, label %loopentry.2.i.preheader
280 no_exit.0.i8.preheader:         ; preds = %loopentry.0.i6
281         br label %no_exit.0.i8
282 no_exit.0.i8:           ; preds = %no_exit.0.i8, %no_exit.0.i8.preheader
283         br i1 false, label %no_exit.0.i8, label %loopentry.2.i.preheader.loopexit
284 loopentry.2.i.preheader.loopexit:               ; preds = %no_exit.0.i8
285         br label %loopentry.2.i.preheader
286 loopentry.2.i.preheader:                ; preds = %loopentry.2.i.preheader.loopexit, %loopentry.0.i6
287         br label %loopentry.2.i
288 loopentry.2.i:          ; preds = %endif.3.i19, %loopentry.2.i.preheader
289         br i1 false, label %loopentry.3.i10.preheader, label %loopentry.4.i15
290 loopentry.3.i10.preheader:              ; preds = %loopentry.2.i
291         br label %loopentry.3.i10
292 loopentry.3.i10:                ; preds = %loopexit.3.i14, %loopentry.3.i10.preheader
293         br i1 false, label %no_exit.3.preheader.i, label %loopexit.3.i14
294 no_exit.3.preheader.i:          ; preds = %loopentry.3.i10
295         br label %no_exit.3.i12
296 no_exit.3.i12:          ; preds = %no_exit.3.i12, %no_exit.3.preheader.i
297         br i1 false, label %no_exit.3.i12, label %loopexit.3.i14.loopexit
298 loopexit.3.i14.loopexit:                ; preds = %no_exit.3.i12
299         br label %loopexit.3.i14
300 loopexit.3.i14:         ; preds = %loopexit.3.i14.loopexit, %loopentry.3.i10
301         br i1 false, label %loopentry.3.i10, label %loopentry.4.i15.loopexit
302 loopentry.4.i15.loopexit:               ; preds = %loopexit.3.i14
303         br label %loopentry.4.i15
304 loopentry.4.i15:                ; preds = %loopentry.4.i15.loopexit, %loopentry.2.i
305         br i1 false, label %loopentry.5.outer.i.preheader, label %loopentry.7.i
306 loopentry.5.outer.i.preheader:          ; preds = %loopentry.4.i15
307         br label %loopentry.5.outer.i
308 loopentry.5.outer.i:            ; preds = %loopexit.5.i, %loopentry.5.outer.i.preheader
309         br label %loopentry.5.i
310 loopentry.5.i:          ; preds = %endif.1.i18, %loopentry.5.outer.i
311         br i1 false, label %no_exit.5.i.preheader, label %loopexit.5.i.loopexit3
312 no_exit.5.i.preheader:          ; preds = %loopentry.5.i
313         br label %no_exit.5.i
314 no_exit.5.i:            ; preds = %then.2.i, %no_exit.5.i.preheader
315         br i1 false, label %loopentry.6.i, label %endif.1.i18
316 loopentry.6.i:          ; preds = %no_exit.5.i
317         br i1 false, label %no_exit.6.preheader.i, label %loopexit.6.i
318 no_exit.6.preheader.i:          ; preds = %loopentry.6.i
319         br label %no_exit.6.i
320 no_exit.6.i:            ; preds = %no_exit.6.i, %no_exit.6.preheader.i
321         br i1 false, label %no_exit.6.i, label %loopexit.6.i.loopexit
322 loopexit.6.i.loopexit:          ; preds = %no_exit.6.i
323         br label %loopexit.6.i
324 loopexit.6.i:           ; preds = %loopexit.6.i.loopexit, %loopentry.6.i
325         br i1 false, label %then.2.i, label %endif.1.i18
326 then.2.i:               ; preds = %loopexit.6.i
327         br i1 false, label %no_exit.5.i, label %loopexit.5.i.loopexit
328 endif.1.i18:            ; preds = %loopexit.6.i, %no_exit.5.i
329         br label %loopentry.5.i
330 loopexit.5.i.loopexit:          ; preds = %then.2.i
331         br label %loopexit.5.i
332 loopexit.5.i.loopexit3:         ; preds = %loopentry.5.i
333         br label %loopexit.5.i
334 loopexit.5.i:           ; preds = %loopexit.5.i.loopexit3, %loopexit.5.i.loopexit
335         br i1 false, label %loopentry.5.outer.i, label %loopentry.7.i.loopexit
336 loopentry.7.i.loopexit:         ; preds = %loopexit.5.i
337         br label %loopentry.7.i
338 loopentry.7.i:          ; preds = %loopentry.7.i.loopexit, %loopentry.4.i15
339         br i1 false, label %no_exit.7.i.preheader, label %hamming.exit.i
340 no_exit.7.i.preheader:          ; preds = %loopentry.7.i
341         br label %no_exit.7.i
342 no_exit.7.i:            ; preds = %no_exit.7.i, %no_exit.7.i.preheader
343         br i1 false, label %no_exit.7.i, label %loopexit.7.i
344 loopexit.7.i:           ; preds = %no_exit.7.i
345         br i1 false, label %no_exit.i.i.preheader, label %hamming.exit.i
346 no_exit.i.i.preheader:          ; preds = %loopexit.7.i
347         br label %no_exit.i.i
348 no_exit.i.i:            ; preds = %no_exit.i.i, %no_exit.i.i.preheader
349         br i1 false, label %no_exit.i.i, label %hamming.exit.i.loopexit
350 hamming.exit.i.loopexit:                ; preds = %no_exit.i.i
351         br label %hamming.exit.i
352 hamming.exit.i:         ; preds = %hamming.exit.i.loopexit, %loopexit.7.i, %loopentry.7.i
353         br i1 false, label %endif.3.i19, label %loopentry.8.i
354 loopentry.8.i:          ; preds = %hamming.exit.i
355         br i1 false, label %shortcirc_next.i.preheader, label %loopexit.8.i
356 shortcirc_next.i.preheader:             ; preds = %loopentry.8.i
357         br label %shortcirc_next.i
358 shortcirc_next.i:               ; preds = %no_exit.8.i, %shortcirc_next.i.preheader
359         br i1 false, label %no_exit.8.i, label %loopexit.8.i.loopexit
360 no_exit.8.i:            ; preds = %shortcirc_next.i
361         br i1 false, label %shortcirc_next.i, label %loopexit.8.i.loopexit
362 loopexit.8.i.loopexit:          ; preds = %no_exit.8.i, %shortcirc_next.i
363         br label %loopexit.8.i
364 loopexit.8.i:           ; preds = %loopexit.8.i.loopexit, %loopentry.8.i
365         br i1 false, label %no_exit.9.i.preheader, label %endif.3.i19
366 no_exit.9.i.preheader:          ; preds = %loopexit.8.i
367         br label %no_exit.9.i
368 no_exit.9.i:            ; preds = %no_exit.9.i, %no_exit.9.i.preheader
369         br i1 false, label %no_exit.9.i, label %endif.3.i19.loopexit
370 endif.3.i19.loopexit:           ; preds = %no_exit.9.i
371         br label %endif.3.i19
372 endif.3.i19:            ; preds = %endif.3.i19.loopexit, %loopexit.8.i, %hamming.exit.i
373         br i1 false, label %loopentry.2.i, label %loopexit.1.i20
374 loopexit.1.i20:         ; preds = %endif.3.i19
375         br i1 false, label %then.4.i, label %UnifiedReturnBlock.i
376 then.4.i:               ; preds = %loopexit.1.i20
377         br label %runcont.exit
378 UnifiedReturnBlock.i:           ; preds = %loopexit.1.i20
379         br label %runcont.exit
380 runcont.exit:           ; preds = %UnifiedReturnBlock.i, %then.4.i
381         br i1 false, label %no_exit.1.i36.preheader, label %loopentry.3.i37
382 no_exit.1.i36.preheader:                ; preds = %runcont.exit, %run.exit
383         br label %no_exit.1.i36
384 no_exit.1.i36:          ; preds = %no_exit.1.i36, %no_exit.1.i36.preheader
385         br i1 false, label %no_exit.1.i36, label %loopentry.3.i37.loopexit
386 loopentry.3.i37.loopexit:               ; preds = %no_exit.1.i36
387         br label %loopentry.3.i37
388 loopentry.3.i37:                ; preds = %loopentry.3.i37.loopexit, %runcont.exit, %run.exit
389         br i1 false, label %loopentry.4.i38.preheader, label %loopexit.3.i
390 loopentry.4.i38.preheader:              ; preds = %loopentry.3.i37
391         br label %loopentry.4.i38
392 loopentry.4.i38:                ; preds = %loopexit.4.i42, %loopentry.4.i38.preheader
393         br i1 false, label %no_exit.3.i.preheader, label %loopexit.4.i42
394 no_exit.3.i.preheader:          ; preds = %loopentry.4.i38
395         br label %no_exit.3.i
396 no_exit.3.i:            ; preds = %no_exit.3.i.backedge, %no_exit.3.i.preheader
397         br i1 false, label %endif.3.i, label %else.1.i
398 else.1.i:               ; preds = %no_exit.3.i
399         br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
400 no_exit.3.i.backedge:           ; preds = %endif.3.i, %else.1.i
401         br label %no_exit.3.i
402 endif.3.i:              ; preds = %no_exit.3.i
403         br i1 false, label %no_exit.3.i.backedge, label %loopexit.4.i42.loopexit
404 loopexit.4.i42.loopexit:                ; preds = %endif.3.i, %else.1.i
405         br label %loopexit.4.i42
406 loopexit.4.i42:         ; preds = %loopexit.4.i42.loopexit, %loopentry.4.i38
407         br i1 false, label %loopentry.4.i38, label %loopexit.3.i.loopexit
408 loopexit.3.i.loopexit:          ; preds = %loopexit.4.i42
409         br label %loopexit.3.i
410 loopexit.3.i:           ; preds = %loopexit.3.i.loopexit, %loopentry.3.i37
411         %tmp.13.i155 = icmp slt i32 0, 0                ; <i1> [#uses=1]
412         br i1 %tmp.13.i155, label %no_exit.0.i31, label %loopentry.1.i30.loopexit