1 ; RUN: llvm-as < %s | llc
4 ; ModuleID = 'tango.net.ftp.FtpClient.bc'
5 target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
6 target triple = "powerpc-apple-darwin9.6.0"
7 %"byte[]" = type { i32, i8* }
8 @.str167 = external constant [11 x i8] ; <[11 x i8]*> [#uses=1]
9 @.str170 = external constant [11 x i8] ; <[11 x i8]*> [#uses=2]
10 @.str171 = external constant [5 x i8] ; <[5 x i8]*> [#uses=1]
11 @llvm.used = appending global [1 x i8*] [i8* bitcast (void (%"byte[]")* @foo to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
13 define fastcc void @foo(%"byte[]" %line_arg) {
15 %line_arg830 = extractvalue %"byte[]" %line_arg, 0 ; <i32> [#uses=12]
16 %line_arg831 = extractvalue %"byte[]" %line_arg, 1 ; <i8*> [#uses=17]
17 %t5 = load i8* %line_arg831 ; <i8> [#uses=1]
20 forcondi: ; preds = %forbodyi, %entry
21 %l.0i = phi i32 [ 10, %entry ], [ %t4i, %forbodyi ] ; <i32> [#uses=2]
22 %p.0i = phi i8* [ getelementptr ([11 x i8]* @.str167, i32 0, i32 -1), %entry ], [ %t7i, %forbodyi ] ; <i8*> [#uses=1]
23 %t4i = add i32 %l.0i, -1 ; <i32> [#uses=1]
24 %t5i = icmp eq i32 %l.0i, 0 ; <i1> [#uses=1]
25 br i1 %t5i, label %forcond.i, label %forbodyi
27 forbodyi: ; preds = %forcondi
28 %t7i = getelementptr i8* %p.0i, i32 1 ; <i8*> [#uses=2]
29 %t8i = load i8* %t7i ; <i8> [#uses=1]
30 %t12i = icmp eq i8 %t8i, %t5 ; <i1> [#uses=1]
31 br i1 %t12i, label %forcond.i, label %forcondi
33 forcond.i: ; preds = %forbody.i, %forbodyi, %forcondi
34 %storemerge.i = phi i32 [ %t106.i, %forbody.i ], [ 1, %forcondi ], [ 1, %forbodyi ] ; <i32> [#uses=1]
35 %t77.i286 = phi i1 [ %phit3, %forbody.i ], [ false, %forcondi ], [ false, %forbodyi ] ; <i1> [#uses=1]
36 br i1 %t77.i286, label %forcond.i295, label %forbody.i
38 forbody.i: ; preds = %forcond.i
39 %t106.i = add i32 %storemerge.i, 1 ; <i32> [#uses=2]
40 %phit3 = icmp ugt i32 %t106.i, 3 ; <i1> [#uses=1]
43 forcond.i295: ; preds = %forbody.i301, %forcond.i
44 %storemerge.i292 = phi i32 [ %t106.i325, %forbody.i301 ], [ 4, %forcond.i ] ; <i32> [#uses=1]
45 %t77.i293 = phi i1 [ %phit2, %forbody.i301 ], [ false, %forcond.i ] ; <i1> [#uses=1]
46 br i1 %t77.i293, label %forcond.i332, label %forbody.i301
48 forbody.i301: ; preds = %forcond.i295
49 %t106.i325 = add i32 %storemerge.i292, 1 ; <i32> [#uses=2]
50 %phit2 = icmp ugt i32 %t106.i325, 6 ; <i1> [#uses=1]
51 br label %forcond.i295
53 forcond.i332: ; preds = %forbody.i338, %forcond.i295
54 %storemerge.i329 = phi i32 [ %t106.i362, %forbody.i338 ], [ 7, %forcond.i295 ] ; <i32> [#uses=3]
55 %t77.i330 = phi i1 [ %phit1, %forbody.i338 ], [ false, %forcond.i295 ] ; <i1> [#uses=1]
56 br i1 %t77.i330, label %wcond.i370, label %forbody.i338
58 forbody.i338: ; preds = %forcond.i332
59 %t106.i362 = add i32 %storemerge.i329, 1 ; <i32> [#uses=2]
60 %phit1 = icmp ugt i32 %t106.i362, 9 ; <i1> [#uses=1]
61 br label %forcond.i332
63 wcond.i370: ; preds = %wbody.i372, %forcond.i332
64 %.frame.0.11 = phi i32 [ %t18.i371.c, %wbody.i372 ], [ %storemerge.i329, %forcond.i332 ] ; <i32> [#uses=2]
65 %t3.i368 = phi i32 [ %t18.i371.c, %wbody.i372 ], [ %storemerge.i329, %forcond.i332 ] ; <i32> [#uses=5]
66 %t4.i369 = icmp ult i32 %t3.i368, %line_arg830 ; <i1> [#uses=1]
67 br i1 %t4.i369, label %andand.i378, label %wcond22.i383
69 wbody.i372: ; preds = %andand.i378
70 %t18.i371.c = add i32 %t3.i368, 1 ; <i32> [#uses=2]
73 andand.i378: ; preds = %wcond.i370
74 %t11.i375 = getelementptr i8* %line_arg831, i32 %t3.i368 ; <i8*> [#uses=1]
75 %t12.i376 = load i8* %t11.i375 ; <i8> [#uses=1]
76 %t14.i377 = icmp eq i8 %t12.i376, 32 ; <i1> [#uses=1]
77 br i1 %t14.i377, label %wbody.i372, label %wcond22.i383
79 wcond22.i383: ; preds = %wbody23.i385, %andand.i378, %wcond.i370
80 %.frame.0.10 = phi i32 [ %t50.i384, %wbody23.i385 ], [ %.frame.0.11, %wcond.i370 ], [ %.frame.0.11, %andand.i378 ] ; <i32> [#uses=2]
81 %t49.i381 = phi i32 [ %t50.i384, %wbody23.i385 ], [ %t3.i368, %wcond.i370 ], [ %t3.i368, %andand.i378 ] ; <i32> [#uses=5]
82 %t32.i382 = icmp ult i32 %t49.i381, %line_arg830 ; <i1> [#uses=1]
83 br i1 %t32.i382, label %andand33.i391, label %wcond54.i396
85 wbody23.i385: ; preds = %andand33.i391
86 %t50.i384 = add i32 %t49.i381, 1 ; <i32> [#uses=2]
87 br label %wcond22.i383
89 andand33.i391: ; preds = %wcond22.i383
90 %t42.i388 = getelementptr i8* %line_arg831, i32 %t49.i381 ; <i8*> [#uses=1]
91 %t43.i389 = load i8* %t42.i388 ; <i8> [#uses=1]
92 %t45.i390 = icmp eq i8 %t43.i389, 32 ; <i1> [#uses=1]
93 br i1 %t45.i390, label %wcond54.i396, label %wbody23.i385
95 wcond54.i396: ; preds = %wbody55.i401, %andand33.i391, %wcond22.i383
96 %.frame.0.9 = phi i32 [ %t82.i400, %wbody55.i401 ], [ %.frame.0.10, %wcond22.i383 ], [ %.frame.0.10, %andand33.i391 ] ; <i32> [#uses=2]
97 %t81.i394 = phi i32 [ %t82.i400, %wbody55.i401 ], [ %t49.i381, %wcond22.i383 ], [ %t49.i381, %andand33.i391 ] ; <i32> [#uses=3]
98 %t64.i395 = icmp ult i32 %t81.i394, %line_arg830 ; <i1> [#uses=1]
99 br i1 %t64.i395, label %andand65.i407, label %wcond.i716
101 wbody55.i401: ; preds = %andand65.i407
102 %t82.i400 = add i32 %t81.i394, 1 ; <i32> [#uses=2]
103 br label %wcond54.i396
105 andand65.i407: ; preds = %wcond54.i396
106 %t74.i404 = getelementptr i8* %line_arg831, i32 %t81.i394 ; <i8*> [#uses=1]
107 %t75.i405 = load i8* %t74.i404 ; <i8> [#uses=1]
108 %t77.i406 = icmp eq i8 %t75.i405, 32 ; <i1> [#uses=1]
109 br i1 %t77.i406, label %wbody55.i401, label %wcond.i716
111 wcond.i716: ; preds = %wbody.i717, %andand65.i407, %wcond54.i396
112 %.frame.0.0 = phi i32 [ %t18.i.c829, %wbody.i717 ], [ %.frame.0.9, %wcond54.i396 ], [ %.frame.0.9, %andand65.i407 ] ; <i32> [#uses=7]
113 %t4.i715 = icmp ult i32 %.frame.0.0, %line_arg830 ; <i1> [#uses=1]
114 br i1 %t4.i715, label %andand.i721, label %wcond22.i724
116 wbody.i717: ; preds = %andand.i721
117 %t18.i.c829 = add i32 %.frame.0.0, 1 ; <i32> [#uses=1]
120 andand.i721: ; preds = %wcond.i716
121 %t11.i718 = getelementptr i8* %line_arg831, i32 %.frame.0.0 ; <i8*> [#uses=1]
122 %t12.i719 = load i8* %t11.i718 ; <i8> [#uses=1]
123 %t14.i720 = icmp eq i8 %t12.i719, 32 ; <i1> [#uses=1]
124 br i1 %t14.i720, label %wbody.i717, label %wcond22.i724
126 wcond22.i724: ; preds = %wbody23.i726, %andand.i721, %wcond.i716
127 %.frame.0.1 = phi i32 [ %t50.i725, %wbody23.i726 ], [ %.frame.0.0, %wcond.i716 ], [ %.frame.0.0, %andand.i721 ] ; <i32> [#uses=2]
128 %t49.i722 = phi i32 [ %t50.i725, %wbody23.i726 ], [ %.frame.0.0, %wcond.i716 ], [ %.frame.0.0, %andand.i721 ] ; <i32> [#uses=5]
129 %t32.i723 = icmp ult i32 %t49.i722, %line_arg830 ; <i1> [#uses=1]
130 br i1 %t32.i723, label %andand33.i731, label %wcond54.i734
132 wbody23.i726: ; preds = %andand33.i731
133 %t50.i725 = add i32 %t49.i722, 1 ; <i32> [#uses=2]
134 br label %wcond22.i724
136 andand33.i731: ; preds = %wcond22.i724
137 %t42.i728 = getelementptr i8* %line_arg831, i32 %t49.i722 ; <i8*> [#uses=1]
138 %t43.i729 = load i8* %t42.i728 ; <i8> [#uses=1]
139 %t45.i730 = icmp eq i8 %t43.i729, 32 ; <i1> [#uses=1]
140 br i1 %t45.i730, label %wcond54.i734, label %wbody23.i726
142 wcond54.i734: ; preds = %wbody55.i736, %andand33.i731, %wcond22.i724
143 %.frame.0.2 = phi i32 [ %t82.i735, %wbody55.i736 ], [ %.frame.0.1, %wcond22.i724 ], [ %.frame.0.1, %andand33.i731 ] ; <i32> [#uses=2]
144 %t81.i732 = phi i32 [ %t82.i735, %wbody55.i736 ], [ %t49.i722, %wcond22.i724 ], [ %t49.i722, %andand33.i731 ] ; <i32> [#uses=3]
145 %t64.i733 = icmp ult i32 %t81.i732, %line_arg830 ; <i1> [#uses=1]
146 br i1 %t64.i733, label %andand65.i740, label %wcond.i750
148 wbody55.i736: ; preds = %andand65.i740
149 %t82.i735 = add i32 %t81.i732, 1 ; <i32> [#uses=2]
150 br label %wcond54.i734
152 andand65.i740: ; preds = %wcond54.i734
153 %t74.i737 = getelementptr i8* %line_arg831, i32 %t81.i732 ; <i8*> [#uses=1]
154 %t75.i738 = load i8* %t74.i737 ; <i8> [#uses=1]
155 %t77.i739 = icmp eq i8 %t75.i738, 32 ; <i1> [#uses=1]
156 br i1 %t77.i739, label %wbody55.i736, label %wcond.i750
158 wcond.i750: ; preds = %wbody.i752, %andand65.i740, %wcond54.i734
159 %.frame.0.3 = phi i32 [ %t18.i751.c, %wbody.i752 ], [ %.frame.0.2, %wcond54.i734 ], [ %.frame.0.2, %andand65.i740 ] ; <i32> [#uses=11]
160 %t4.i749 = icmp ult i32 %.frame.0.3, %line_arg830 ; <i1> [#uses=1]
161 br i1 %t4.i749, label %andand.i758, label %wcond22.i761
163 wbody.i752: ; preds = %andand.i758
164 %t18.i751.c = add i32 %.frame.0.3, 1 ; <i32> [#uses=1]
167 andand.i758: ; preds = %wcond.i750
168 %t11.i755 = getelementptr i8* %line_arg831, i32 %.frame.0.3 ; <i8*> [#uses=1]
169 %t12.i756 = load i8* %t11.i755 ; <i8> [#uses=1]
170 %t14.i757 = icmp eq i8 %t12.i756, 32 ; <i1> [#uses=1]
171 br i1 %t14.i757, label %wbody.i752, label %wcond22.i761
173 wcond22.i761: ; preds = %wbody23.i763, %andand.i758, %wcond.i750
174 %.frame.0.4 = phi i32 [ %t50.i762, %wbody23.i763 ], [ %.frame.0.3, %wcond.i750 ], [ %.frame.0.3, %andand.i758 ] ; <i32> [#uses=2]
175 %t49.i759 = phi i32 [ %t50.i762, %wbody23.i763 ], [ %.frame.0.3, %wcond.i750 ], [ %.frame.0.3, %andand.i758 ] ; <i32> [#uses=7]
176 %t32.i760 = icmp ult i32 %t49.i759, %line_arg830 ; <i1> [#uses=1]
177 br i1 %t32.i760, label %andand33.i769, label %wcond54.i773
179 wbody23.i763: ; preds = %andand33.i769
180 %t50.i762 = add i32 %t49.i759, 1 ; <i32> [#uses=2]
181 br label %wcond22.i761
183 andand33.i769: ; preds = %wcond22.i761
184 %t42.i766 = getelementptr i8* %line_arg831, i32 %t49.i759 ; <i8*> [#uses=1]
185 %t43.i767 = load i8* %t42.i766 ; <i8> [#uses=1]
186 %t45.i768 = icmp eq i8 %t43.i767, 32 ; <i1> [#uses=1]
187 br i1 %t45.i768, label %wcond54.i773, label %wbody23.i763
189 wcond54.i773: ; preds = %wbody55.i775, %andand33.i769, %wcond22.i761
190 %.frame.0.5 = phi i32 [ %t82.i774, %wbody55.i775 ], [ %.frame.0.4, %wcond22.i761 ], [ %.frame.0.4, %andand33.i769 ] ; <i32> [#uses=1]
191 %t81.i770 = phi i32 [ %t82.i774, %wbody55.i775 ], [ %t49.i759, %wcond22.i761 ], [ %t49.i759, %andand33.i769 ] ; <i32> [#uses=3]
192 %t64.i771 = icmp ult i32 %t81.i770, %line_arg830 ; <i1> [#uses=1]
193 br i1 %t64.i771, label %andand65.i780, label %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit786
195 wbody55.i775: ; preds = %andand65.i780
196 %t82.i774 = add i32 %t81.i770, 1 ; <i32> [#uses=2]
197 br label %wcond54.i773
199 andand65.i780: ; preds = %wcond54.i773
200 %t74.i777 = getelementptr i8* %line_arg831, i32 %t81.i770 ; <i8*> [#uses=1]
201 %t75.i778 = load i8* %t74.i777 ; <i8> [#uses=1]
202 %t77.i779 = icmp eq i8 %t75.i778, 32 ; <i1> [#uses=1]
203 br i1 %t77.i779, label %wbody55.i775, label %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit786
205 Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit786: ; preds = %andand65.i780, %wcond54.i773
206 %t89.i782 = getelementptr i8* %line_arg831, i32 %.frame.0.3 ; <i8*> [#uses=4]
207 %t90.i783 = sub i32 %t49.i759, %.frame.0.3 ; <i32> [#uses=2]
210 wcond.i792: ; preds = %wbody.i794, %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit786
211 %.frame.0.6 = phi i32 [ %.frame.0.5, %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit786 ], [ %t18.i793.c, %wbody.i794 ] ; <i32> [#uses=9]
212 %t4.i791 = icmp ult i32 %.frame.0.6, %line_arg830 ; <i1> [#uses=1]
213 br i1 %t4.i791, label %andand.i800, label %wcond22.i803
215 wbody.i794: ; preds = %andand.i800
216 %t18.i793.c = add i32 %.frame.0.6, 1 ; <i32> [#uses=1]
219 andand.i800: ; preds = %wcond.i792
220 %t11.i797 = getelementptr i8* %line_arg831, i32 %.frame.0.6 ; <i8*> [#uses=1]
221 %t12.i798 = load i8* %t11.i797 ; <i8> [#uses=1]
222 %t14.i799 = icmp eq i8 %t12.i798, 32 ; <i1> [#uses=1]
223 br i1 %t14.i799, label %wbody.i794, label %wcond22.i803
225 wcond22.i803: ; preds = %wbody23.i805, %andand.i800, %wcond.i792
226 %t49.i801 = phi i32 [ %t50.i804, %wbody23.i805 ], [ %.frame.0.6, %wcond.i792 ], [ %.frame.0.6, %andand.i800 ] ; <i32> [#uses=7]
227 %t32.i802 = icmp ult i32 %t49.i801, %line_arg830 ; <i1> [#uses=1]
228 br i1 %t32.i802, label %andand33.i811, label %wcond54.i815
230 wbody23.i805: ; preds = %andand33.i811
231 %t50.i804 = add i32 %t49.i801, 1 ; <i32> [#uses=1]
232 br label %wcond22.i803
234 andand33.i811: ; preds = %wcond22.i803
235 %t42.i808 = getelementptr i8* %line_arg831, i32 %t49.i801 ; <i8*> [#uses=1]
236 %t43.i809 = load i8* %t42.i808 ; <i8> [#uses=1]
237 %t45.i810 = icmp eq i8 %t43.i809, 32 ; <i1> [#uses=1]
238 br i1 %t45.i810, label %wcond54.i815, label %wbody23.i805
240 wcond54.i815: ; preds = %wbody55.i817, %andand33.i811, %wcond22.i803
241 %t81.i812 = phi i32 [ %t82.i816, %wbody55.i817 ], [ %t49.i801, %wcond22.i803 ], [ %t49.i801, %andand33.i811 ] ; <i32> [#uses=3]
242 %t64.i813 = icmp ult i32 %t81.i812, %line_arg830 ; <i1> [#uses=1]
243 br i1 %t64.i813, label %andand65.i822, label %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828
245 wbody55.i817: ; preds = %andand65.i822
246 %t82.i816 = add i32 %t81.i812, 1 ; <i32> [#uses=1]
247 br label %wcond54.i815
249 andand65.i822: ; preds = %wcond54.i815
250 %t74.i819 = getelementptr i8* %line_arg831, i32 %t81.i812 ; <i8*> [#uses=1]
251 %t75.i820 = load i8* %t74.i819 ; <i8> [#uses=1]
252 %t77.i821 = icmp eq i8 %t75.i820, 32 ; <i1> [#uses=1]
253 br i1 %t77.i821, label %wbody55.i817, label %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828
255 Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828: ; preds = %andand65.i822, %wcond54.i815
256 %t89.i824 = getelementptr i8* %line_arg831, i32 %.frame.0.6 ; <i8*> [#uses=4]
257 %t90.i825 = sub i32 %t49.i801, %.frame.0.6 ; <i32> [#uses=2]
258 %t63 = load i8* %t89.i824 ; <i8> [#uses=2]
259 br label %forcondi622
261 forcondi622: ; preds = %forbodyi626, %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828
262 %l.0i618 = phi i32 [ 10, %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828 ], [ %t4i620, %forbodyi626 ] ; <i32> [#uses=2]
263 %p.0i619 = phi i8* [ getelementptr ([11 x i8]* @.str170, i32 0, i32 -1), %Dt3net3ftp9FClient13FConnection13pListLineMFAaZS5t3net3ftp9FClient11FFileInfo10p_wordMFZAa.exit828 ], [ %t7i623, %forbodyi626 ] ; <i8*> [#uses=1]
264 %t4i620 = add i32 %l.0i618, -1 ; <i32> [#uses=1]
265 %t5i621 = icmp eq i32 %l.0i618, 0 ; <i1> [#uses=1]
266 br i1 %t5i621, label %if65, label %forbodyi626
268 forbodyi626: ; preds = %forcondi622
269 %t7i623 = getelementptr i8* %p.0i619, i32 1 ; <i8*> [#uses=3]
270 %t8i624 = load i8* %t7i623 ; <i8> [#uses=1]
271 %t12i625 = icmp eq i8 %t8i624, %t63 ; <i1> [#uses=1]
272 br i1 %t12i625, label %ifi630, label %forcondi622
274 ifi630: ; preds = %forbodyi626
275 %t15i627 = ptrtoint i8* %t7i623 to i32 ; <i32> [#uses=1]
276 %t17i629 = sub i32 %t15i627, ptrtoint ([11 x i8]* @.str170 to i32) ; <i32> [#uses=1]
277 %phit636 = icmp eq i32 %t17i629, 10 ; <i1> [#uses=1]
278 br i1 %phit636, label %if65, label %e67
280 if65: ; preds = %ifi630, %forcondi622
281 %t4i532 = icmp eq i32 %t49.i759, %.frame.0.3 ; <i1> [#uses=1]
282 br i1 %t4i532, label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576, label %forcondi539
284 forcondi539: ; preds = %zi546, %if65
285 %sign.1.i533 = phi i1 [ %sign.0.i543, %zi546 ], [ false, %if65 ] ; <i1> [#uses=2]
286 %l.0i534 = phi i32 [ %t33i545, %zi546 ], [ %t90.i783, %if65 ] ; <i32> [#uses=3]
287 %p.0i535 = phi i8* [ %t30i544, %zi546 ], [ %t89.i782, %if65 ] ; <i8*> [#uses=6]
288 %c.0.ini536 = phi i8* [ %t30i544, %zi546 ], [ %t89.i782, %if65 ] ; <i8*> [#uses=1]
289 %c.0i537 = load i8* %c.0.ini536 ; <i8> [#uses=2]
290 %t8i538 = icmp eq i32 %l.0i534, 0 ; <i1> [#uses=1]
291 br i1 %t8i538, label %endfori550, label %forbodyi540
293 forbodyi540: ; preds = %forcondi539
294 switch i8 %c.0i537, label %endfori550 [
297 i8 45, label %if20i541
298 i8 43, label %if26i542
301 if20i541: ; preds = %forbodyi540
304 if26i542: ; preds = %forbodyi540
307 zi546: ; preds = %if26i542, %if20i541, %forbodyi540, %forbodyi540
308 %sign.0.i543 = phi i1 [ false, %if26i542 ], [ true, %if20i541 ], [ %sign.1.i533, %forbodyi540 ], [ %sign.1.i533, %forbodyi540 ] ; <i1> [#uses=1]
309 %t30i544 = getelementptr i8* %p.0i535, i32 1 ; <i8*> [#uses=2]
310 %t33i545 = add i32 %l.0i534, -1 ; <i32> [#uses=1]
311 br label %forcondi539
313 endfori550: ; preds = %forbodyi540, %forcondi539
314 %t37i547 = icmp eq i8 %c.0i537, 48 ; <i1> [#uses=1]
315 %t39i548 = icmp sgt i32 %l.0i534, 1 ; <i1> [#uses=1]
316 %or.condi549 = and i1 %t37i547, %t39i548 ; <i1> [#uses=1]
317 br i1 %or.condi549, label %if40i554, label %endif41i564
319 if40i554: ; preds = %endfori550
320 %t43i551 = getelementptr i8* %p.0i535, i32 1 ; <i8*> [#uses=2]
321 %t44i552 = load i8* %t43i551 ; <i8> [#uses=1]
322 %t45i553 = zext i8 %t44i552 to i32 ; <i32> [#uses=1]
323 switch i32 %t45i553, label %endif41i564 [
324 i32 120, label %case46i556
325 i32 88, label %case46i556
326 i32 98, label %case51i558
327 i32 66, label %case51i558
328 i32 111, label %case56i560
329 i32 79, label %case56i560
332 case46i556: ; preds = %if40i554, %if40i554
333 %t48i555 = getelementptr i8* %p.0i535, i32 2 ; <i8*> [#uses=1]
334 br label %endif41i564
336 case51i558: ; preds = %if40i554, %if40i554
337 %t53i557 = getelementptr i8* %p.0i535, i32 2 ; <i8*> [#uses=1]
338 br label %endif41i564
340 case56i560: ; preds = %if40i554, %if40i554
341 %t58i559 = getelementptr i8* %p.0i535, i32 2 ; <i8*> [#uses=1]
342 br label %endif41i564
344 endif41i564: ; preds = %case56i560, %case51i558, %case46i556, %if40i554, %endfori550
345 %r.0i561 = phi i32 [ 0, %if40i554 ], [ 8, %case56i560 ], [ 2, %case51i558 ], [ 16, %case46i556 ], [ 0, %endfori550 ] ; <i32> [#uses=2]
346 %p.2i562 = phi i8* [ %t43i551, %if40i554 ], [ %t58i559, %case56i560 ], [ %t53i557, %case51i558 ], [ %t48i555, %case46i556 ], [ %p.0i535, %endfori550 ] ; <i8*> [#uses=2]
347 %t63i563 = icmp eq i32 %r.0i561, 0 ; <i1> [#uses=1]
348 br i1 %t63i563, label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576, label %if70i568
350 if70i568: ; preds = %endif41i564
351 br label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576
353 Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576: ; preds = %if70i568, %endif41i564, %if65
354 %radix.0.i570 = phi i32 [ 0, %if65 ], [ %r.0i561, %if70i568 ], [ 10, %endif41i564 ] ; <i32> [#uses=2]
355 %p.1i571 = phi i8* [ %p.2i562, %if70i568 ], [ %t89.i782, %if65 ], [ %p.2i562, %endif41i564 ] ; <i8*> [#uses=1]
356 %t84i572 = ptrtoint i8* %p.1i571 to i32 ; <i32> [#uses=1]
357 %t85i573 = ptrtoint i8* %t89.i782 to i32 ; <i32> [#uses=1]
358 %t86i574 = sub i32 %t84i572, %t85i573 ; <i32> [#uses=2]
359 %t6.i575 = sub i32 %t90.i783, %t86i574 ; <i32> [#uses=1]
360 %t59i604 = zext i32 %radix.0.i570 to i64 ; <i64> [#uses=1]
363 fcondi581: ; preds = %if55i610, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576
364 %value.0i577 = phi i64 [ 0, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576 ], [ %t65i607, %if55i610 ] ; <i64> [#uses=1]
365 %fkey.0i579 = phi i32 [ 0, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i576 ], [ %t70i609, %if55i610 ] ; <i32> [#uses=3]
366 %t3i580 = icmp ult i32 %fkey.0i579, %t6.i575 ; <i1> [#uses=1]
367 br i1 %t3i580, label %fbodyi587, label %wcond.i422
369 fbodyi587: ; preds = %fcondi581
370 %t5.s.i582 = add i32 %t86i574, %fkey.0i579 ; <i32> [#uses=1]
371 %t89.i782.s = add i32 %.frame.0.3, %t5.s.i582 ; <i32> [#uses=1]
372 %t5i583 = getelementptr i8* %line_arg831, i32 %t89.i782.s ; <i8*> [#uses=1]
373 %t6i584 = load i8* %t5i583 ; <i8> [#uses=6]
374 %t6.off84i585 = add i8 %t6i584, -48 ; <i8> [#uses=1]
375 %or.cond.i28.i586 = icmp ugt i8 %t6.off84i585, 9 ; <i1> [#uses=1]
376 br i1 %or.cond.i28.i586, label %ei590, label %endifi603
378 ei590: ; preds = %fbodyi587
379 %t6.off83i588 = add i8 %t6i584, -97 ; <i8> [#uses=1]
380 %or.cond81i589 = icmp ugt i8 %t6.off83i588, 25 ; <i1> [#uses=1]
381 br i1 %or.cond81i589, label %e24i595, label %if22i592
383 if22i592: ; preds = %ei590
384 %t27i591 = add i8 %t6i584, -39 ; <i8> [#uses=1]
387 e24i595: ; preds = %ei590
388 %t6.offi593 = add i8 %t6i584, -65 ; <i8> [#uses=1]
389 %or.cond82i594 = icmp ugt i8 %t6.offi593, 25 ; <i1> [#uses=1]
390 br i1 %or.cond82i594, label %wcond.i422, label %if39i597
392 if39i597: ; preds = %e24i595
393 %t44.i29.i596 = add i8 %t6i584, -7 ; <i8> [#uses=1]
396 endifi603: ; preds = %if39i597, %if22i592, %fbodyi587
397 %c.0.i30.i598 = phi i8 [ %t27i591, %if22i592 ], [ %t44.i29.i596, %if39i597 ], [ %t6i584, %fbodyi587 ] ; <i8> [#uses=1]
398 %t48.i31.i599 = zext i8 %c.0.i30.i598 to i32 ; <i32> [#uses=1]
399 %t49i600 = add i32 %t48.i31.i599, 208 ; <i32> [#uses=1]
400 %t52i601 = and i32 %t49i600, 255 ; <i32> [#uses=2]
401 %t54i602 = icmp ult i32 %t52i601, %radix.0.i570 ; <i1> [#uses=1]
402 br i1 %t54i602, label %if55i610, label %wcond.i422
404 if55i610: ; preds = %endifi603
405 %t61i605 = mul i64 %value.0i577, %t59i604 ; <i64> [#uses=1]
406 %t64i606 = zext i32 %t52i601 to i64 ; <i64> [#uses=1]
407 %t65i607 = add i64 %t61i605, %t64i606 ; <i64> [#uses=1]
408 %t70i609 = add i32 %fkey.0i579, 1 ; <i32> [#uses=1]
411 e67: ; preds = %ifi630
412 %t4i447 = icmp eq i32 %t49.i801, %.frame.0.6 ; <i1> [#uses=1]
413 br i1 %t4i447, label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491, label %forcondi454
415 forcondi454: ; preds = %zi461, %e67
416 %c.0i452 = phi i8 [ %c.0i452.pre, %zi461 ], [ %t63, %e67 ] ; <i8> [#uses=2]
417 %sign.1.i448 = phi i1 [ %sign.0.i458, %zi461 ], [ false, %e67 ] ; <i1> [#uses=2]
418 %l.0i449 = phi i32 [ %t33i460, %zi461 ], [ %t90.i825, %e67 ] ; <i32> [#uses=3]
419 %p.0i450 = phi i8* [ %t30i459, %zi461 ], [ %t89.i824, %e67 ] ; <i8*> [#uses=5]
420 %t8i453 = icmp eq i32 %l.0i449, 0 ; <i1> [#uses=1]
421 br i1 %t8i453, label %endfori465, label %forbodyi455
423 forbodyi455: ; preds = %forcondi454
424 switch i8 %c.0i452, label %endfori465 [
427 i8 45, label %if20i456
428 i8 43, label %if26i457
431 if20i456: ; preds = %forbodyi455
434 if26i457: ; preds = %forbodyi455
437 zi461: ; preds = %if26i457, %if20i456, %forbodyi455, %forbodyi455
438 %sign.0.i458 = phi i1 [ false, %if26i457 ], [ true, %if20i456 ], [ %sign.1.i448, %forbodyi455 ], [ %sign.1.i448, %forbodyi455 ] ; <i1> [#uses=1]
439 %t30i459 = getelementptr i8* %p.0i450, i32 1 ; <i8*> [#uses=2]
440 %t33i460 = add i32 %l.0i449, -1 ; <i32> [#uses=1]
441 %c.0i452.pre = load i8* %t30i459 ; <i8> [#uses=1]
442 br label %forcondi454
444 endfori465: ; preds = %forbodyi455, %forcondi454
445 %t37i462 = icmp eq i8 %c.0i452, 48 ; <i1> [#uses=1]
446 %t39i463 = icmp sgt i32 %l.0i449, 1 ; <i1> [#uses=1]
447 %or.condi464 = and i1 %t37i462, %t39i463 ; <i1> [#uses=1]
448 br i1 %or.condi464, label %if40i469, label %endif41i479
450 if40i469: ; preds = %endfori465
451 %t43i466 = getelementptr i8* %p.0i450, i32 1 ; <i8*> [#uses=2]
452 %t44i467 = load i8* %t43i466 ; <i8> [#uses=1]
453 %t45i468 = zext i8 %t44i467 to i32 ; <i32> [#uses=1]
454 switch i32 %t45i468, label %endif41i479 [
455 i32 120, label %case46i471
456 i32 111, label %case56i475
459 case46i471: ; preds = %if40i469
460 %t48i470 = getelementptr i8* %p.0i450, i32 2 ; <i8*> [#uses=1]
461 br label %endif41i479
463 case56i475: ; preds = %if40i469
464 %t58i474 = getelementptr i8* %p.0i450, i32 2 ; <i8*> [#uses=1]
465 br label %endif41i479
467 endif41i479: ; preds = %case56i475, %case46i471, %if40i469, %endfori465
468 %r.0i476 = phi i32 [ 0, %if40i469 ], [ 8, %case56i475 ], [ 16, %case46i471 ], [ 0, %endfori465 ] ; <i32> [#uses=2]
469 %p.2i477 = phi i8* [ %t43i466, %if40i469 ], [ %t58i474, %case56i475 ], [ %t48i470, %case46i471 ], [ %p.0i450, %endfori465 ] ; <i8*> [#uses=2]
470 %t63i478 = icmp eq i32 %r.0i476, 0 ; <i1> [#uses=1]
471 br i1 %t63i478, label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491, label %if70i483
473 if70i483: ; preds = %endif41i479
474 br label %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491
476 Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491: ; preds = %if70i483, %endif41i479, %e67
477 %radix.0.i485 = phi i32 [ 0, %e67 ], [ %r.0i476, %if70i483 ], [ 10, %endif41i479 ] ; <i32> [#uses=2]
478 %p.1i486 = phi i8* [ %p.2i477, %if70i483 ], [ %t89.i824, %e67 ], [ %p.2i477, %endif41i479 ] ; <i8*> [#uses=1]
479 %t84i487 = ptrtoint i8* %p.1i486 to i32 ; <i32> [#uses=1]
480 %t85i488 = ptrtoint i8* %t89.i824 to i32 ; <i32> [#uses=1]
481 %t86i489 = sub i32 %t84i487, %t85i488 ; <i32> [#uses=2]
482 %ttt = sub i32 %t90.i825, %t86i489 ; <i32> [#uses=1]
483 %t59i519 = zext i32 %radix.0.i485 to i64 ; <i64> [#uses=1]
486 fcondi496: ; preds = %if55i525, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491
487 %value.0i492 = phi i64 [ 0, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491 ], [ %t65i522, %if55i525 ] ; <i64> [#uses=1]
488 %fkey.0i494 = phi i32 [ 0, %Dt4x7c7I11V4tTaZ4tFAaKbKkZk.exit.i491 ], [ %t70i524, %if55i525 ] ; <i32> [#uses=3]
489 %t3i495 = icmp ult i32 %fkey.0i494, %ttt ; <i1> [#uses=1]
490 br i1 %t3i495, label %fbodyi502, label %wcond.i422
492 fbodyi502: ; preds = %fcondi496
493 %t5.s.i497 = add i32 %t86i489, %fkey.0i494 ; <i32> [#uses=1]
494 %t89.i824.s = add i32 %.frame.0.6, %t5.s.i497 ; <i32> [#uses=1]
495 %t5i498 = getelementptr i8* %line_arg831, i32 %t89.i824.s ; <i8*> [#uses=1]
496 %t6i499 = load i8* %t5i498 ; <i8> [#uses=6]
497 %t6.off84i500 = add i8 %t6i499, -48 ; <i8> [#uses=1]
498 %or.cond.i28.i501 = icmp ugt i8 %t6.off84i500, 9 ; <i1> [#uses=1]
499 br i1 %or.cond.i28.i501, label %ei505, label %endifi518
501 ei505: ; preds = %fbodyi502
502 %t6.off83i503 = add i8 %t6i499, -97 ; <i8> [#uses=1]
503 %or.cond81i504 = icmp ugt i8 %t6.off83i503, 25 ; <i1> [#uses=1]
504 br i1 %or.cond81i504, label %e24i510, label %if22i507
506 if22i507: ; preds = %ei505
507 %t27i506 = add i8 %t6i499, -39 ; <i8> [#uses=1]
510 e24i510: ; preds = %ei505
511 %t6.offi508 = add i8 %t6i499, -65 ; <i8> [#uses=1]
512 %or.cond82i509 = icmp ugt i8 %t6.offi508, 25 ; <i1> [#uses=1]
513 br i1 %or.cond82i509, label %wcond.i422, label %if39i512
515 if39i512: ; preds = %e24i510
516 %t44.i29.i511 = add i8 %t6i499, -7 ; <i8> [#uses=1]
519 endifi518: ; preds = %if39i512, %if22i507, %fbodyi502
520 %c.0.i30.i513 = phi i8 [ %t27i506, %if22i507 ], [ %t44.i29.i511, %if39i512 ], [ %t6i499, %fbodyi502 ] ; <i8> [#uses=1]
521 %t48.i31.i514 = zext i8 %c.0.i30.i513 to i32 ; <i32> [#uses=1]
522 %t49i515 = add i32 %t48.i31.i514, 208 ; <i32> [#uses=1]
523 %t52i516 = and i32 %t49i515, 255 ; <i32> [#uses=2]
524 %t54i517 = icmp ult i32 %t52i516, %radix.0.i485 ; <i1> [#uses=1]
525 br i1 %t54i517, label %if55i525, label %wcond.i422
527 if55i525: ; preds = %endifi518
528 %t61i520 = mul i64 %value.0i492, %t59i519 ; <i64> [#uses=1]
529 %t64i521 = zext i32 %t52i516 to i64 ; <i64> [#uses=1]
530 %t65i522 = add i64 %t61i520, %t64i521 ; <i64> [#uses=1]
531 %t70i524 = add i32 %fkey.0i494, 1 ; <i32> [#uses=1]
534 wcond.i422: ; preds = %e40.i, %endifi518, %e24i510, %fcondi496, %endifi603, %e24i595, %fcondi581
535 %sarg60.pn.i = phi i8* [ %p.0.i, %e40.i ], [ undef, %fcondi496 ], [ undef, %e24i510 ], [ undef, %endifi518 ], [ undef, %endifi603 ], [ undef, %e24i595 ], [ undef, %fcondi581 ] ; <i8*> [#uses=3]
536 %start_arg.pn.i = phi i32 [ %t49.i443, %e40.i ], [ 0, %fcondi496 ], [ 0, %e24i510 ], [ 0, %endifi518 ], [ 0, %endifi603 ], [ 0, %e24i595 ], [ 0, %fcondi581 ] ; <i32> [#uses=3]
537 %extent.0.i = phi i32 [ %t51.i, %e40.i ], [ undef, %fcondi496 ], [ undef, %e24i510 ], [ undef, %endifi518 ], [ undef, %endifi603 ], [ undef, %e24i595 ], [ undef, %fcondi581 ] ; <i32> [#uses=3]
538 %p.0.i = getelementptr i8* %sarg60.pn.i, i32 %start_arg.pn.i ; <i8*> [#uses=2]
539 %p.0.s63.i = add i32 %start_arg.pn.i, -1 ; <i32> [#uses=1]
540 %t2i424 = getelementptr i8* %sarg60.pn.i, i32 %p.0.s63.i ; <i8*> [#uses=1]
541 br label %forcondi430
543 forcondi430: ; preds = %forbodyi434, %wcond.i422
544 %l.0i426 = phi i32 [ %extent.0.i, %wcond.i422 ], [ %t4i428, %forbodyi434 ] ; <i32> [#uses=2]
545 %p.0i427 = phi i8* [ %t2i424, %wcond.i422 ], [ %t7i431, %forbodyi434 ] ; <i8*> [#uses=1]
546 %t4i428 = add i32 %l.0i426, -1 ; <i32> [#uses=1]
547 %t5i429 = icmp eq i32 %l.0i426, 0 ; <i1> [#uses=1]
548 br i1 %t5i429, label %e.i441, label %forbodyi434
550 forbodyi434: ; preds = %forcondi430
551 %t7i431 = getelementptr i8* %p.0i427, i32 1 ; <i8*> [#uses=3]
552 %t8i432 = load i8* %t7i431 ; <i8> [#uses=1]
553 %t12i433 = icmp eq i8 %t8i432, 32 ; <i1> [#uses=1]
554 br i1 %t12i433, label %ifi438, label %forcondi430
556 ifi438: ; preds = %forbodyi434
557 %t15i435 = ptrtoint i8* %t7i431 to i32 ; <i32> [#uses=1]
558 %t16i436 = ptrtoint i8* %p.0.i to i32 ; <i32> [#uses=1]
559 %t17i437 = sub i32 %t15i435, %t16i436 ; <i32> [#uses=1]
562 e.i441: ; preds = %ifi438, %forcondi430
563 %t2561.i = phi i32 [ %t17i437, %ifi438 ], [ %extent.0.i, %forcondi430 ] ; <i32> [#uses=2]
564 %p.0.s.i = add i32 %start_arg.pn.i, %t2561.i ; <i32> [#uses=1]
565 %t32.s.i = add i32 %p.0.s.i, -1 ; <i32> [#uses=1]
566 %t2i.i = getelementptr i8* %sarg60.pn.i, i32 %t32.s.i ; <i8*> [#uses=1]
569 forbodyi.i: ; preds = %forbodyi.i, %e.i441
570 %p.0i.i = phi i8* [ %t2i.i, %e.i441 ], [ %t7i.i, %forbodyi.i ] ; <i8*> [#uses=1]
571 %s2.0i.i = phi i8* [ getelementptr ([5 x i8]* @.str171, i32 0, i32 0), %e.i441 ], [ %t11i.i, %forbodyi.i ] ; <i8*> [#uses=2]
572 %t7i.i = getelementptr i8* %p.0i.i, i32 1 ; <i8*> [#uses=2]
573 %t8i.i = load i8* %t7i.i ; <i8> [#uses=1]
574 %t11i.i = getelementptr i8* %s2.0i.i, i32 1 ; <i8*> [#uses=1]
575 %t12i.i = load i8* %s2.0i.i ; <i8> [#uses=1]
576 %t14i.i = icmp eq i8 %t8i.i, %t12i.i ; <i1> [#uses=1]
577 br i1 %t14i.i, label %forbodyi.i, label %e40.i
579 e40.i: ; preds = %forbodyi.i
580 %t49.i443 = add i32 %t2561.i, 1 ; <i32> [#uses=2]
581 %t51.i = sub i32 %extent.0.i, %t49.i443 ; <i32> [#uses=1]