New testcase for bug
[oota-llvm.git] / test / Transforms / ADCE / 2002-07-17-AssertionFailure.ll
1 ; Testcase unanalyzed, not checked in yet.
2 ; RUN: as < %s | opt -adce      
3
4         %FILE = type { [16 x long] }
5         %arc_t = type { %node_t*, %node_t*, %arc_t*, %arc_t*, long, long, long, long }
6         %network_t = type { [200 x sbyte], [200 x sbyte], long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, long, %node_t*, %node_t*, %arc_t*, %arc_t*, %arc_t*, %arc_t*, long, long, long }
7         %node_t = type { long, sbyte*, %node_t*, %node_t*, %node_t*, %node_t*, long, long, %arc_t*, %arc_t*, %arc_t*, long, long, long, long }
8         %struct.__FILE = type { [16 x long] }
9         %struct.arc = type { %node_t*, %node_t*, %arc_t*, %arc_t*, long, long, long, long }
10         %struct.network = type { [200 x sbyte], [200 x sbyte], long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, double, long, %node_t*, %node_t*, %arc_t*, %arc_t*, %arc_t*, %arc_t*, long, long, long }
11         %struct.node = type { long, sbyte*, %node_t*, %node_t*, %node_t*, %node_t*, long, long, %arc_t*, %arc_t*, %arc_t*, long, long, long, long }
12 %.LC0 = internal global [2 x sbyte] c"r\00"             ; <[2 x sbyte]*> [#uses=1]
13 %.LC1 = internal global [8 x sbyte] c"%ld %ld\00"               ; <[8 x sbyte]*> [#uses=1]
14 %.LC2 = internal global [30 x sbyte] c"read_min(): not enough memory\00"                ; <[30 x sbyte]*> [#uses=1]
15 %.LC3 = internal global [12 x sbyte] c"%ld %ld %ld\00"          ; <[12 x sbyte]*> [#uses=1]
16
17 implementation   ; Functions:
18
19 long %read_min(%network_t* %net) {
20 bb0:                                    ;[#uses=0]
21         %instring = alloca sbyte, uint 201              ; <sbyte*> [#uses=6]
22         %t = alloca long                ; <long*> [#uses=11]
23         %h = alloca long                ; <long*> [#uses=8]
24         %c = alloca long                ; <long*> [#uses=3]
25         br label %bb1
26
27 bb1:                                    ;[#uses=1]
28         %cast518 = getelementptr %network_t* %net, uint 0, ubyte 0, uint 0              ; <sbyte*> [#uses=15]
29         %cast1028 = getelementptr [2 x sbyte]* %.LC0, uint 0, uint 0            ; <sbyte*> [#uses=1]
30         %reg520 = call %FILE* %fopen( sbyte* %cast518, sbyte* %cast1028 )               ; <%FILE*> [#uses=5]
31         %cond522 = setne %FILE* %reg520, null           ; <bool> [#uses=1]
32         br bool %cond522, label %bb3, label %bb2
33
34 bb2:                                    ;[#uses=1]
35         ret long -1
36
37 bb3:                                    ;[#uses=1]
38         %reg526 = call sbyte* %fgets( sbyte* %instring, int 200, %FILE* %reg520 )               ; <sbyte*> [#uses=0]
39         %cast1029 = getelementptr [8 x sbyte]* %.LC1, uint 0, uint 0            ; <sbyte*> [#uses=2]
40         %reg530 = call int (sbyte*, sbyte*, ...)* %sscanf( sbyte* %instring, sbyte* %cast1029, long* %t, long* %h )             ; <int> [#uses=1]
41         %cond534 = seteq int %reg530, 2         ; <bool> [#uses=1]
42         br bool %cond534, label %bb5, label %bb4
43
44 bb4:                                    ;[#uses=1]
45         ret long -1
46
47 bb5:                                    ;[#uses=1]
48         %reg129 = load long* %t, uint 0         ; <long> [#uses=1]
49         %reg5381 = getelementptr sbyte* %cast518, uint 408              ; <sbyte*> [#uses=1]
50         %cast540 = cast sbyte* %reg5381 to long*                ; <long*> [#uses=12]
51         store long %reg129, long* %cast540
52         %reg130 = load long* %h, uint 0         ; <long> [#uses=1]
53         %reg5421 = getelementptr sbyte* %cast518, uint 432              ; <sbyte*> [#uses=2]
54         %cast544 = cast sbyte* %reg5421 to long*                ; <long*> [#uses=3]
55         store long %reg130, long* %cast544
56         %reg131 = load long* %t, uint 0         ; <long> [#uses=1]
57         %reg132 = load long* %t         ; <long> [#uses=1]
58         %reg133 = add long %reg131, %reg132             ; <long> [#uses=1]
59         %reg134 = add long %reg133, 1           ; <long> [#uses=1]
60         %reg5481 = getelementptr sbyte* %cast518, uint 400              ; <sbyte*> [#uses=3]
61         %cast550 = cast sbyte* %reg5481 to long*                ; <long*> [#uses=3]
62         store long %reg134, long* %cast550
63         %reg135 = load long* %t, uint 0         ; <long> [#uses=1]
64         %reg136 = load long* %t         ; <long> [#uses=2]
65         %reg137 = add long %reg135, %reg136             ; <long> [#uses=1]
66         %reg139 = add long %reg137, %reg136             ; <long> [#uses=1]
67         %reg140 = load long* %h         ; <long> [#uses=1]
68         %reg141 = add long %reg139, %reg140             ; <long> [#uses=1]
69         %reg5551 = getelementptr sbyte* %cast518, uint 424              ; <sbyte*> [#uses=3]
70         %cast557 = cast sbyte* %reg5551 to long*                ; <long*> [#uses=1]
71         store long %reg141, long* %cast557
72         %reg5581 = getelementptr sbyte* %cast518, uint 416              ; <sbyte*> [#uses=1]
73         %cast560 = cast sbyte* %reg5581 to ulong*               ; <ulong*> [#uses=2]
74         store ulong 3014656, ulong* %cast560
75         %cast563 = cast sbyte* %reg5481 to ulong*               ; <ulong*> [#uses=2]
76         %reg143 = load ulong* %cast563          ; <ulong> [#uses=1]
77         %reg144 = add ulong %reg143, 1          ; <ulong> [#uses=1]
78         %reg566 = call sbyte* %calloc( ulong %reg144, ulong 120 )               ; <sbyte*> [#uses=1]
79         %reg5681 = getelementptr sbyte* %cast518, uint 536              ; <sbyte*> [#uses=2]
80         %cast570 = cast sbyte* %reg5681 to sbyte**              ; <sbyte**> [#uses=2]
81         store sbyte* %reg566, sbyte** %cast570
82         %reg148 = load ulong* %cast563          ; <ulong> [#uses=1]
83         %reg575 = call sbyte* %calloc( ulong %reg148, ulong 64 )                ; <sbyte*> [#uses=1]
84         %reg5771 = getelementptr sbyte* %cast518, uint 568              ; <sbyte*> [#uses=1]
85         %cast579 = cast sbyte* %reg5771 to sbyte**              ; <sbyte**> [#uses=3]
86         store sbyte* %reg575, sbyte** %cast579
87         %reg152 = load ulong* %cast560          ; <ulong> [#uses=1]
88         %reg584 = call sbyte* %calloc( ulong %reg152, ulong 64 )                ; <sbyte*> [#uses=1]
89         %reg5861 = getelementptr sbyte* %cast518, uint 552              ; <sbyte*> [#uses=3]
90         %cast588 = cast sbyte* %reg5861 to sbyte**              ; <sbyte**> [#uses=4]
91         store sbyte* %reg584, sbyte** %cast588
92         %reg156 = load sbyte** %cast570         ; <sbyte*> [#uses=2]
93         %cond592 = seteq sbyte* %reg156, null           ; <bool> [#uses=1]
94         br bool %cond592, label %bb8, label %bb6
95
96 bb6:                                    ;[#uses=1]
97         %reg157 = load sbyte** %cast588         ; <sbyte*> [#uses=1]
98         %cond597 = seteq sbyte* %reg157, null           ; <bool> [#uses=1]
99         br bool %cond597, label %bb8, label %bb7
100
101 bb7:                                    ;[#uses=1]
102         %reg158 = load sbyte** %cast579         ; <sbyte*> [#uses=1]
103         %cond602 = setne sbyte* %reg158, null           ; <bool> [#uses=1]
104         br bool %cond602, label %bb9, label %bb8
105
106 bb8:                                    ;[#uses=3]
107         %cast1030 = getelementptr [30 x sbyte]* %.LC2, uint 0, uint 0           ; <sbyte*> [#uses=1]
108         %reg605 = call int %puts( sbyte* %cast1030 )            ; <int> [#uses=0]
109         %cast607 = cast sbyte* %cast518 to %network_t*          ; <%network_t*> [#uses=1]
110         %reg607 = call long %getfree( %network_t* %cast607 )            ; <long> [#uses=0]
111         ret long -1
112
113 bb9:                                    ;[#uses=4]
114         %cast611 = cast sbyte* %reg5481 to sbyte**              ; <sbyte**> [#uses=2]
115         %reg162 = load sbyte** %cast611         ; <sbyte*> [#uses=1]
116         %reg165 = sub sbyte* null, %reg162              ; <sbyte*> [#uses=0]
117         %reg1701 = getelementptr sbyte* %reg156, uint 120               ; <sbyte*> [#uses=1]
118         %reg6181 = getelementptr sbyte* %cast518, uint 544              ; <sbyte*> [#uses=1]
119         %cast620 = cast sbyte* %reg6181 to sbyte**              ; <sbyte**> [#uses=1]
120         store sbyte* %reg1701, sbyte** %cast620
121         %cast623 = cast sbyte* %reg5551 to sbyte**              ; <sbyte**> [#uses=1]
122         %reg171 = load sbyte** %cast623         ; <sbyte*> [#uses=0]
123         %reg175 = load sbyte** %cast588         ; <sbyte*> [#uses=1]
124         %reg6281 = getelementptr sbyte* %cast518, uint 560              ; <sbyte*> [#uses=2]
125         %cast630 = cast sbyte* %reg6281 to sbyte**              ; <sbyte**> [#uses=3]
126         store sbyte* %reg175, sbyte** %cast630
127         %reg177 = load sbyte** %cast611         ; <sbyte*> [#uses=0]
128         %reg181 = load sbyte** %cast579         ; <sbyte*> [#uses=1]
129         %reg6381 = getelementptr sbyte* %cast518, uint 576              ; <sbyte*> [#uses=1]
130         %cast640 = cast sbyte* %reg6381 to sbyte**              ; <sbyte**> [#uses=1]
131         store sbyte* %reg181, sbyte** %cast640
132         %cast643 = cast sbyte* %reg5681 to long*                ; <long*> [#uses=1]
133         %reg117 = load long* %cast643           ; <long> [#uses=10]
134         %cast646 = cast sbyte* %reg5861 to ulong*               ; <ulong*> [#uses=1]
135         %reg116 = load ulong* %cast646          ; <ulong> [#uses=2]
136         %reg378 = load long* %cast540           ; <long> [#uses=1]
137         %cond650 = setlt long %reg378, 1                ; <bool> [#uses=1]
138         %reg7201 = getelementptr sbyte* %cast518, uint 512              ; <sbyte*> [#uses=2]
139         %cast722 = cast sbyte* %reg7201 to ulong*               ; <ulong*> [#uses=3]
140         %cast817 = cast sbyte* %reg7201 to long*                ; <long*> [#uses=1]
141         br bool %cond650, label %bb16, label %bb10
142
143 bb10:                                   ;[#uses=2]
144         %cann-indvar3 = phi uint [ 0, %bb9 ], [ %add1-indvar3, %bb15 ]          ; <uint> [#uses=3]
145         %add1-indvar3 = add uint %cann-indvar3, 1               ; <uint> [#uses=1]
146         %cann-indvar3-casted = cast uint %cann-indvar3 to ulong         ; <ulong> [#uses=1]
147         %reg392-scale = mul ulong %cann-indvar3-casted, 192             ; <ulong> [#uses=1]
148         %reg392 = add ulong %reg392-scale, %reg116              ; <ulong> [#uses=23]
149         %cann-indvar3-casted1 = cast uint %cann-indvar3 to long         ; <long> [#uses=2]
150         %reg393 = add long %cann-indvar3-casted1, 1             ; <long> [#uses=9]
151         %reg654 = call sbyte* %fgets( sbyte* %instring, int 200, %FILE* %reg520 )               ; <sbyte*> [#uses=0]
152         %reg658 = call int (sbyte*, sbyte*, ...)* %sscanf( sbyte* %instring, sbyte* %cast1029, long* %t, long* %h )             ; <int> [#uses=1]
153         %cond662 = setne int %reg658, 2         ; <bool> [#uses=1]
154         br bool %cond662, label %bb12, label %bb11
155
156 bb11:                                   ;[#uses=1]
157         %reg189 = load long* %t, uint 0         ; <long> [#uses=1]
158         %reg190 = load long* %h, uint 0         ; <long> [#uses=1]
159         %cond666 = setle long %reg189, %reg190          ; <bool> [#uses=1]
160         br bool %cond666, label %bb13, label %bb12
161
162 bb12:                                   ;[#uses=2]
163         ret long -1
164
165 bb13:                                   ;[#uses=2]
166         %reg194 = shl long %reg393, ubyte 4             ; <long> [#uses=1]
167         %reg195 = sub long %reg194, %reg393             ; <long> [#uses=1]
168         %reg196 = shl long %reg195, ubyte 3             ; <long> [#uses=1]
169         %reg198 = add long %reg117, %reg196             ; <long> [#uses=5]
170         %reg199 = sub long 0, %reg393           ; <long> [#uses=1]
171         %cast674 = cast long %reg198 to long*           ; <long*> [#uses=1]
172         store long %reg199, long* %cast674
173         %reg677 = add long %reg198, 96          ; <long> [#uses=1]
174         %cast679 = cast long %reg677 to ulong*          ; <ulong*> [#uses=1]
175         store ulong 18446744073709551615, ulong* %cast679
176         %reg207 = load long* %cast540           ; <long> [#uses=1]
177         %reg208 = add long %reg393, %reg207             ; <long> [#uses=2]
178         %reg210 = shl long %reg208, ubyte 4             ; <long> [#uses=1]
179         %reg211 = sub long %reg210, %reg208             ; <long> [#uses=1]
180         %reg212 = shl long %reg211, ubyte 3             ; <long> [#uses=1]
181         %reg214 = add long %reg117, %reg212             ; <long> [#uses=1]
182         %cast685 = cast long %reg214 to long*           ; <long*> [#uses=1]
183         store long %reg393, long* %cast685
184         %reg215 = load long* %cast540           ; <long> [#uses=1]
185         %reg216 = add long %reg393, %reg215             ; <long> [#uses=2]
186         %reg218 = shl long %reg216, ubyte 4             ; <long> [#uses=1]
187         %reg219 = sub long %reg218, %reg216             ; <long> [#uses=1]
188         %reg220 = shl long %reg219, ubyte 3             ; <long> [#uses=1]
189         %reg222 = add long %reg117, %reg220             ; <long> [#uses=1]
190         %reg691 = add long %reg222, 96          ; <long> [#uses=1]
191         %cast693 = cast long %reg691 to ulong*          ; <ulong*> [#uses=1]
192         store ulong 1, ulong* %cast693
193         %reg230 = load long* %t, uint 0         ; <long> [#uses=1]
194         %reg697 = add long %reg198, 112         ; <long> [#uses=1]
195         %cast699 = cast long %reg697 to long*           ; <long*> [#uses=1]
196         store long %reg230, long* %cast699
197         %reg231 = load long* %cast540           ; <long> [#uses=1]
198         %reg232 = add long %reg393, %reg231             ; <long> [#uses=2]
199         %reg234 = shl long %reg232, ubyte 4             ; <long> [#uses=1]
200         %reg235 = sub long %reg234, %reg232             ; <long> [#uses=1]
201         %reg236 = shl long %reg235, ubyte 3             ; <long> [#uses=1]
202         %reg238 = add long %reg117, %reg236             ; <long> [#uses=1]
203         %reg239 = load long* %h, uint 0         ; <long> [#uses=1]
204         %reg706 = add long %reg238, 112         ; <long> [#uses=1]
205         %cast708 = cast long %reg706 to long*           ; <long*> [#uses=1]
206         store long %reg239, long* %cast708
207         %reg240 = load long* %cast550           ; <long> [#uses=2]
208         %reg242 = shl long %reg240, ubyte 4             ; <long> [#uses=1]
209         %reg243 = sub long %reg242, %reg240             ; <long> [#uses=1]
210         %reg244 = shl long %reg243, ubyte 3             ; <long> [#uses=1]
211         %reg246 = add long %reg117, %reg244             ; <long> [#uses=1]
212         %cast714 = cast ulong %reg392 to long*          ; <long*> [#uses=1]
213         store long %reg246, long* %cast714
214         %reg717 = add ulong %reg392, 8          ; <ulong> [#uses=3]
215         %cast719 = cast ulong %reg717 to long*          ; <long*> [#uses=1]
216         store long %reg198, long* %cast719
217         %reg253 = load ulong* %cast722          ; <ulong> [#uses=1]
218         %reg254 = add ulong %reg253, 15         ; <ulong> [#uses=2]
219         %reg724 = add ulong %reg392, 32         ; <ulong> [#uses=1]
220         %cast726 = cast ulong %reg724 to ulong*         ; <ulong*> [#uses=1]
221         store ulong %reg254, ulong* %cast726
222         %reg727 = add ulong %reg392, 40         ; <ulong> [#uses=1]
223         %cast729 = cast ulong %reg727 to ulong*         ; <ulong*> [#uses=1]
224         store ulong %reg254, ulong* %cast729
225         %cast730 = cast ulong %reg392 to sbyte***               ; <sbyte***> [#uses=1]
226         %reg256 = load sbyte*** %cast730                ; <sbyte**> [#uses=1]
227         %reg7311 = getelementptr sbyte** %reg256, uint 9                ; <sbyte**> [#uses=1]
228         %reg257 = load sbyte** %reg7311         ; <sbyte*> [#uses=1]
229         %reg734 = add ulong %reg392, 16         ; <ulong> [#uses=1]
230         %cast736 = cast ulong %reg734 to sbyte**                ; <sbyte**> [#uses=1]
231         store sbyte* %reg257, sbyte** %cast736
232         %cast737 = cast ulong %reg392 to ulong**                ; <ulong**> [#uses=1]
233         %reg258 = load ulong** %cast737         ; <ulong*> [#uses=1]
234         %reg7381 = getelementptr ulong* %reg258, uint 9         ; <ulong*> [#uses=1]
235         store ulong %reg392, ulong* %reg7381
236         %cast743 = cast ulong %reg717 to sbyte***               ; <sbyte***> [#uses=1]
237         %reg259 = load sbyte*** %cast743                ; <sbyte**> [#uses=1]
238         %reg7441 = getelementptr sbyte** %reg259, uint 10               ; <sbyte**> [#uses=1]
239         %reg260 = load sbyte** %reg7441         ; <sbyte*> [#uses=1]
240         %reg747 = add ulong %reg392, 24         ; <ulong> [#uses=1]
241         %cast749 = cast ulong %reg747 to sbyte**                ; <sbyte**> [#uses=1]
242         store sbyte* %reg260, sbyte** %cast749
243         %cast752 = cast ulong %reg717 to ulong**                ; <ulong**> [#uses=1]
244         %reg261 = load ulong** %cast752         ; <ulong*> [#uses=1]
245         %reg7531 = getelementptr ulong* %reg261, uint 10                ; <ulong*> [#uses=1]
246         store ulong %reg392, ulong* %reg7531
247         %reg394 = add ulong %reg392, 64         ; <ulong> [#uses=5]
248         %reg262 = load long* %cast540           ; <long> [#uses=1]
249         %reg263 = add long %reg393, %reg262             ; <long> [#uses=2]
250         %reg265 = shl long %reg263, ubyte 4             ; <long> [#uses=1]
251         %reg266 = sub long %reg265, %reg263             ; <long> [#uses=1]
252         %reg267 = shl long %reg266, ubyte 3             ; <long> [#uses=1]
253         %reg269 = add long %reg117, %reg267             ; <long> [#uses=1]
254         %cast762 = cast ulong %reg394 to long*          ; <long*> [#uses=1]
255         store long %reg269, long* %cast762
256         %reg270 = load long* %cast550           ; <long> [#uses=2]
257         %reg272 = shl long %reg270, ubyte 4             ; <long> [#uses=1]
258         %reg273 = sub long %reg272, %reg270             ; <long> [#uses=1]
259         %reg274 = shl long %reg273, ubyte 3             ; <long> [#uses=1]
260         %reg276 = add long %reg117, %reg274             ; <long> [#uses=1]
261         %reg768 = add ulong %reg392, 72         ; <ulong> [#uses=3]
262         %cast770 = cast ulong %reg768 to long*          ; <long*> [#uses=1]
263         store long %reg276, long* %cast770
264         %reg771 = add ulong %reg392, 96         ; <ulong> [#uses=1]
265         %cast773 = cast ulong %reg771 to ulong*         ; <ulong*> [#uses=1]
266         store ulong 15, ulong* %cast773
267         %reg774 = add ulong %reg392, 104                ; <ulong> [#uses=1]
268         %cast776 = cast ulong %reg774 to ulong*         ; <ulong*> [#uses=1]
269         store ulong 15, ulong* %cast776
270         %cast777 = cast ulong %reg394 to sbyte***               ; <sbyte***> [#uses=1]
271         %reg279 = load sbyte*** %cast777                ; <sbyte**> [#uses=1]
272         %reg7781 = getelementptr sbyte** %reg279, uint 9                ; <sbyte**> [#uses=1]
273         %reg280 = load sbyte** %reg7781         ; <sbyte*> [#uses=1]
274         %reg781 = add ulong %reg392, 80         ; <ulong> [#uses=1]
275         %cast783 = cast ulong %reg781 to sbyte**                ; <sbyte**> [#uses=1]
276         store sbyte* %reg280, sbyte** %cast783
277         %cast784 = cast ulong %reg394 to ulong**                ; <ulong**> [#uses=1]
278         %reg281 = load ulong** %cast784         ; <ulong*> [#uses=1]
279         %reg7851 = getelementptr ulong* %reg281, uint 9         ; <ulong*> [#uses=1]
280         store ulong %reg394, ulong* %reg7851
281         %cast790 = cast ulong %reg768 to sbyte***               ; <sbyte***> [#uses=1]
282         %reg282 = load sbyte*** %cast790                ; <sbyte**> [#uses=1]
283         %reg7911 = getelementptr sbyte** %reg282, uint 10               ; <sbyte**> [#uses=1]
284         %reg283 = load sbyte** %reg7911         ; <sbyte*> [#uses=1]
285         %reg794 = add ulong %reg392, 88         ; <ulong> [#uses=1]
286         %cast796 = cast ulong %reg794 to sbyte**                ; <sbyte**> [#uses=1]
287         store sbyte* %reg283, sbyte** %cast796
288         %cast799 = cast ulong %reg768 to ulong**                ; <ulong**> [#uses=1]
289         %reg284 = load ulong** %cast799         ; <ulong*> [#uses=1]
290         %reg8001 = getelementptr ulong* %reg284, uint 10                ; <ulong*> [#uses=1]
291         store ulong %reg394, ulong* %reg8001
292         %reg395 = add ulong %reg392, 128                ; <ulong> [#uses=5]
293         %cast806 = cast ulong %reg395 to long*          ; <long*> [#uses=1]
294         store long %reg198, long* %cast806
295         %reg291 = load long* %cast540           ; <long> [#uses=1]
296         %reg292 = add long %reg393, %reg291             ; <long> [#uses=2]
297         %reg294 = shl long %reg292, ubyte 4             ; <long> [#uses=1]
298         %reg295 = sub long %reg294, %reg292             ; <long> [#uses=1]
299         %reg296 = shl long %reg295, ubyte 3             ; <long> [#uses=1]
300         %reg298 = add long %reg117, %reg296             ; <long> [#uses=1]
301         %reg812 = add ulong %reg392, 136                ; <ulong> [#uses=3]
302         %cast814 = cast ulong %reg812 to long*          ; <long*> [#uses=1]
303         store long %reg298, long* %cast814
304         %reg299 = load long* %cast817           ; <long> [#uses=2]
305         %cond818 = setge long %reg299, 10000000         ; <bool> [#uses=1]
306         br bool %cond818, label %bb15, label %bb14
307
308 bb14:                                   ;[#uses=2]
309         br label %bb15
310
311 bb15:                                   ;[#uses=5]
312         %reg397 = phi long [ 10000000, %bb14 ], [ %reg299, %bb13 ]              ; <long> [#uses=2]
313         %reg302 = add long %reg397, %reg397             ; <long> [#uses=2]
314         %reg821 = add ulong %reg392, 160                ; <ulong> [#uses=1]
315         %cast823 = cast ulong %reg821 to long*          ; <long*> [#uses=1]
316         store long %reg302, long* %cast823
317         %reg824 = add ulong %reg392, 168                ; <ulong> [#uses=1]
318         %cast826 = cast ulong %reg824 to long*          ; <long*> [#uses=1]
319         store long %reg302, long* %cast826
320         %cast827 = cast ulong %reg395 to sbyte***               ; <sbyte***> [#uses=1]
321         %reg304 = load sbyte*** %cast827                ; <sbyte**> [#uses=1]
322         %reg8281 = getelementptr sbyte** %reg304, uint 9                ; <sbyte**> [#uses=1]
323         %reg305 = load sbyte** %reg8281         ; <sbyte*> [#uses=1]
324         %reg831 = add ulong %reg392, 144                ; <ulong> [#uses=1]
325         %cast833 = cast ulong %reg831 to sbyte**                ; <sbyte**> [#uses=1]
326         store sbyte* %reg305, sbyte** %cast833
327         %cast834 = cast ulong %reg395 to ulong**                ; <ulong**> [#uses=1]
328         %reg306 = load ulong** %cast834         ; <ulong*> [#uses=1]
329         %reg8351 = getelementptr ulong* %reg306, uint 9         ; <ulong*> [#uses=1]
330         store ulong %reg395, ulong* %reg8351
331         %cast840 = cast ulong %reg812 to sbyte***               ; <sbyte***> [#uses=1]
332         %reg307 = load sbyte*** %cast840                ; <sbyte**> [#uses=1]
333         %reg8411 = getelementptr sbyte** %reg307, uint 10               ; <sbyte**> [#uses=1]
334         %reg308 = load sbyte** %reg8411         ; <sbyte*> [#uses=1]
335         %reg844 = add ulong %reg392, 152                ; <ulong> [#uses=1]
336         %cast846 = cast ulong %reg844 to sbyte**                ; <sbyte**> [#uses=1]
337         store sbyte* %reg308, sbyte** %cast846
338         %cast849 = cast ulong %reg812 to ulong**                ; <ulong**> [#uses=1]
339         %reg309 = load ulong** %cast849         ; <ulong*> [#uses=1]
340         %reg8501 = getelementptr ulong* %reg309, uint 10                ; <ulong*> [#uses=1]
341         store ulong %reg395, ulong* %reg8501
342         %reg398 = add ulong %reg392, 192                ; <ulong> [#uses=1]
343         %reg399 = add long %cann-indvar3-casted1, 2             ; <long> [#uses=2]
344         %reg183 = load long* %cast540           ; <long> [#uses=1]
345         %cond858 = setle long %reg399, %reg183          ; <bool> [#uses=1]
346         br bool %cond858, label %bb10, label %bb16
347
348 bb16:                                   ;[#uses=2]
349         %reg400 = phi ulong [ %reg398, %bb15 ], [ %reg116, %bb9 ]               ; <ulong> [#uses=2]
350         %reg401 = phi long [ %reg399, %bb15 ], [ 1, %bb9 ]              ; <long> [#uses=1]
351         %reg310 = load long* %cast540           ; <long> [#uses=1]
352         %reg311 = add long %reg310, 1           ; <long> [#uses=1]
353         %cond865 = seteq long %reg401, %reg311          ; <bool> [#uses=1]
354         br bool %cond865, label %bb18, label %bb17
355
356 bb17:                                   ;[#uses=1]
357         ret long -1
358
359 bb18:                                   ;[#uses=3]
360         %reg379 = load long* %cast544           ; <long> [#uses=1]
361         %cond870 = setle long %reg379, 0                ; <bool> [#uses=1]
362         %cast1032 = getelementptr [12 x sbyte]* %.LC3, uint 0, uint 0           ; <sbyte*> [#uses=1]
363         br bool %cond870, label %bb22, label %bb19
364
365 bb19:                                   ;[#uses=2]
366         %cann-indvar2 = phi uint [ 0, %bb18 ], [ %add1-indvar2, %bb21 ]         ; <uint> [#uses=3]
367         %add1-indvar2 = add uint %cann-indvar2, 1               ; <uint> [#uses=1]
368         %cann-indvar2-casted = cast uint %cann-indvar2 to ulong         ; <ulong> [#uses=1]
369         %reg403-scale = mul ulong %cann-indvar2-casted, 64              ; <ulong> [#uses=1]
370         %reg403 = add ulong %reg403-scale, %reg400              ; <ulong> [#uses=11]
371         %cann-indvar2-casted1 = cast uint %cann-indvar2 to long         ; <long> [#uses=1]
372         %reg874 = call sbyte* %fgets( sbyte* %instring, int 200, %FILE* %reg520 )               ; <sbyte*> [#uses=0]
373         %reg878 = call int (sbyte*, sbyte*, ...)* %sscanf( sbyte* %instring, sbyte* %cast1032, long* %t, long* %h, long* %c )           ; <int> [#uses=1]
374         %cond883 = seteq int %reg878, 3         ; <bool> [#uses=1]
375         br bool %cond883, label %bb21, label %bb20
376
377 bb20:                                   ;[#uses=1]
378         ret long -1
379
380 bb21:                                   ;[#uses=3]
381         %reg322 = load long* %t         ; <long> [#uses=1]
382         %reg323 = load long* %cast540           ; <long> [#uses=1]
383         %reg324 = add long %reg322, %reg323             ; <long> [#uses=2]
384         %reg326 = shl long %reg324, ubyte 4             ; <long> [#uses=1]
385         %reg327 = sub long %reg326, %reg324             ; <long> [#uses=1]
386         %reg328 = shl long %reg327, ubyte 3             ; <long> [#uses=1]
387         %reg330 = add long %reg117, %reg328             ; <long> [#uses=1]
388         %cast892 = cast ulong %reg403 to long*          ; <long*> [#uses=1]
389         store long %reg330, long* %cast892
390         %reg331 = load long* %h         ; <long> [#uses=2]
391         %reg333 = shl long %reg331, ubyte 4             ; <long> [#uses=1]
392         %reg334 = sub long %reg333, %reg331             ; <long> [#uses=1]
393         %reg335 = shl long %reg334, ubyte 3             ; <long> [#uses=1]
394         %reg337 = add long %reg117, %reg335             ; <long> [#uses=1]
395         %reg896 = add ulong %reg403, 8          ; <ulong> [#uses=3]
396         %cast898 = cast ulong %reg896 to long*          ; <long*> [#uses=1]
397         store long %reg337, long* %cast898
398         %reg338 = load long* %c, uint 0         ; <long> [#uses=1]
399         %reg900 = add ulong %reg403, 40         ; <ulong> [#uses=1]
400         %cast902 = cast ulong %reg900 to long*          ; <long*> [#uses=1]
401         store long %reg338, long* %cast902
402         %reg339 = load long* %c, uint 0         ; <long> [#uses=1]
403         %reg904 = add ulong %reg403, 32         ; <ulong> [#uses=1]
404         %cast906 = cast ulong %reg904 to long*          ; <long*> [#uses=1]
405         store long %reg339, long* %cast906
406         %cast907 = cast ulong %reg403 to sbyte***               ; <sbyte***> [#uses=1]
407         %reg340 = load sbyte*** %cast907                ; <sbyte**> [#uses=1]
408         %reg9081 = getelementptr sbyte** %reg340, uint 9                ; <sbyte**> [#uses=1]
409         %reg341 = load sbyte** %reg9081         ; <sbyte*> [#uses=1]
410         %reg911 = add ulong %reg403, 16         ; <ulong> [#uses=1]
411         %cast913 = cast ulong %reg911 to sbyte**                ; <sbyte**> [#uses=1]
412         store sbyte* %reg341, sbyte** %cast913
413         %cast914 = cast ulong %reg403 to ulong**                ; <ulong**> [#uses=1]
414         %reg342 = load ulong** %cast914         ; <ulong*> [#uses=1]
415         %reg9151 = getelementptr ulong* %reg342, uint 9         ; <ulong*> [#uses=1]
416         store ulong %reg403, ulong* %reg9151
417         %cast920 = cast ulong %reg896 to sbyte***               ; <sbyte***> [#uses=1]
418         %reg343 = load sbyte*** %cast920                ; <sbyte**> [#uses=1]
419         %reg9211 = getelementptr sbyte** %reg343, uint 10               ; <sbyte**> [#uses=1]
420         %reg344 = load sbyte** %reg9211         ; <sbyte*> [#uses=1]
421         %reg924 = add ulong %reg403, 24         ; <ulong> [#uses=1]
422         %cast926 = cast ulong %reg924 to sbyte**                ; <sbyte**> [#uses=1]
423         store sbyte* %reg344, sbyte** %cast926
424         %cast929 = cast ulong %reg896 to ulong**                ; <ulong**> [#uses=1]
425         %reg345 = load ulong** %cast929         ; <ulong*> [#uses=1]
426         %reg9301 = getelementptr ulong* %reg345, uint 10                ; <ulong*> [#uses=1]
427         store ulong %reg403, ulong* %reg9301
428         %reg405 = add long %cann-indvar2-casted1, 1             ; <long> [#uses=1]
429         %reg406 = add ulong %reg403, 64         ; <ulong> [#uses=1]
430         %reg314 = load long* %cast544           ; <long> [#uses=1]
431         %cond938 = setlt long %reg405, %reg314          ; <bool> [#uses=1]
432         br bool %cond938, label %bb19, label %bb22
433
434 bb22:                                   ;[#uses=2]
435         %reg407 = phi ulong [ %reg406, %bb21 ], [ %reg400, %bb18 ]              ; <ulong> [#uses=2]
436         %cast943 = cast sbyte* %reg6281 to ulong*               ; <ulong*> [#uses=2]
437         %reg346 = load ulong* %cast943          ; <ulong> [#uses=1]
438         %cond944 = seteq ulong %reg346, %reg407         ; <bool> [#uses=1]
439         br bool %cond944, label %bb26, label %bb23
440
441 bb23:                                   ;[#uses=2]
442         store ulong %reg407, ulong* %cast943
443         %reg408 = load sbyte** %cast588         ; <sbyte*> [#uses=2]
444         %cast953 = cast sbyte* %reg5551 to ulong*               ; <ulong*> [#uses=4]
445         store ulong 0, ulong* %cast953
446         %reg380 = load sbyte** %cast630         ; <sbyte*> [#uses=1]
447         %cond957 = setge sbyte* %reg408, %reg380                ; <bool> [#uses=1]
448         br bool %cond957, label %bb25, label %bb24
449
450 bb24:                                   ;[#uses=3]
451         %cann-indvar1 = phi uint [ 0, %bb23 ], [ %add1-indvar1, %bb24 ]         ; <uint> [#uses=2]
452         %add1-indvar1 = add uint %cann-indvar1, 1               ; <uint> [#uses=1]
453         %cann-indvar1-scale = mul uint %cann-indvar1, 64                ; <uint> [#uses=1]
454         %reg4091 = getelementptr sbyte* %reg408, uint %cann-indvar1-scale               ; <sbyte*> [#uses=1]
455         %reg349 = load ulong* %cast953          ; <ulong> [#uses=1]
456         %reg350 = add ulong %reg349, 1          ; <ulong> [#uses=1]
457         store ulong %reg350, ulong* %cast953
458         %reg4101 = getelementptr sbyte* %reg4091, uint 64               ; <sbyte*> [#uses=1]
459         %reg348 = load sbyte** %cast630         ; <sbyte*> [#uses=1]
460         %cond969 = setlt sbyte* %reg4101, %reg348               ; <bool> [#uses=1]
461         br bool %cond969, label %bb24, label %bb25
462
463 bb25:                                   ;[#uses=2]
464         %reg351 = load ulong* %cast953          ; <ulong> [#uses=1]
465         %cast975 = cast sbyte* %reg5421 to ulong*               ; <ulong*> [#uses=1]
466         store ulong %reg351, ulong* %cast975
467         br label %bb26
468
469 bb26:                                   ;[#uses=3]
470         %reg977 = call int %fclose( %FILE* %reg520 )            ; <int> [#uses=0]
471         %reg9781 = getelementptr sbyte* %cast518, uint 200              ; <sbyte*> [#uses=1]
472         store sbyte 0, sbyte* %reg9781
473         %reg381 = load long* %cast540           ; <long> [#uses=1]
474         %cond984 = setlt long %reg381, 1                ; <bool> [#uses=1]
475         %cast991 = cast sbyte* %reg5861 to long*                ; <long*> [#uses=2]
476         br bool %cond984, label %bb32, label %bb27
477
478 bb27:                                   ;[#uses=3]
479         %cann-indvar = phi uint [ 0, %bb26 ], [ %add1-indvar, %bb31 ]           ; <uint> [#uses=2]
480         %add1-indvar = add uint %cann-indvar, 1         ; <uint> [#uses=1]
481         %cann-indvar-casted = cast uint %cann-indvar to long            ; <long> [#uses=2]
482         %reg412 = add long %cann-indvar-casted, 1               ; <long> [#uses=2]
483         %reg355 = shl long %reg412, ubyte 1             ; <long> [#uses=1]
484         %reg356 = add long %reg355, %reg412             ; <long> [#uses=1]
485         %reg357 = shl long %reg356, ubyte 6             ; <long> [#uses=2]
486         %reg359 = load long* %cast991           ; <long> [#uses=1]
487         %reg360 = add long %reg359, %reg357             ; <long> [#uses=1]
488         %reg362 = load ulong* %cast722          ; <ulong> [#uses=2]
489         %cast997 = cast ulong %reg362 to long           ; <long> [#uses=1]
490         %cond996 = setge long %cast997, 10000000                ; <bool> [#uses=1]
491         br bool %cond996, label %bb29, label %bb28
492
493 bb28:                                   ;[#uses=2]
494         br label %bb29
495
496 bb29:                                   ;[#uses=3]
497         %reg414 = phi ulong [ 10000000, %bb28 ], [ %reg362, %bb27 ]             ; <ulong> [#uses=1]
498         %reg364 = mul ulong %reg414, 18446744073709551614               ; <ulong> [#uses=1]
499         %reg1000 = add long %reg360, -32                ; <long> [#uses=1]
500         %cast1002 = cast long %reg1000 to ulong*                ; <ulong*> [#uses=1]
501         store ulong %reg364, ulong* %cast1002
502         %reg370 = load long* %cast991           ; <long> [#uses=1]
503         %reg371 = add long %reg370, %reg357             ; <long> [#uses=1]
504         %reg373 = load ulong* %cast722          ; <ulong> [#uses=2]
505         %cast1013 = cast ulong %reg373 to long          ; <long> [#uses=1]
506         %cond1012 = setge long %cast1013, 10000000              ; <bool> [#uses=1]
507         br bool %cond1012, label %bb31, label %bb30
508
509 bb30:                                   ;[#uses=2]
510         br label %bb31
511
512 bb31:                                   ;[#uses=3]
513         %reg416 = phi ulong [ 10000000, %bb30 ], [ %reg373, %bb29 ]             ; <ulong> [#uses=1]
514         %reg375 = mul ulong %reg416, 18446744073709551614               ; <ulong> [#uses=1]
515         %reg1016 = add long %reg371, -24                ; <long> [#uses=1]
516         %cast1018 = cast long %reg1016 to ulong*                ; <ulong*> [#uses=1]
517         store ulong %reg375, ulong* %cast1018
518         %reg417 = add long %cann-indvar-casted, 2               ; <long> [#uses=1]
519         %reg353 = load long* %cast540           ; <long> [#uses=1]
520         %cond1023 = setle long %reg417, %reg353         ; <bool> [#uses=1]
521         br bool %cond1023, label %bb27, label %bb32
522
523 bb32:                                   ;[#uses=2]
524         ret long 0
525
526 bb33:                                   ;[#uses=0]
527         ret long 42
528 }
529
530 declare int %fclose(%FILE*)
531
532 declare %FILE* %fopen(sbyte*, sbyte*)
533
534 declare int %sscanf(sbyte*, sbyte*, ...)
535
536 declare sbyte* %fgets(sbyte*, int, %FILE*)
537
538 declare int %puts(sbyte*)
539
540 declare sbyte* %calloc(ulong, ulong)
541
542 declare long %getfree(%network_t*)