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