"Simplified" testcase for PR1422.
[oota-llvm.git] / test / CodeGen / Generic / 2007-06-06-CriticalEdgeLandingPad.ll
1 ; RUN: llvm-as < %s | llc -enable-eh -asm-verbose -o - | grep {Llabel137.*Region start}
2 ; PR1422
3
4 target triple = "i686-pc-linux-gnu"
5         %struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
6         %struct.string___XUB = type { i32, i32 }
7         %struct.string___XUP = type { i8*, %struct.string___XUB* }
8         %struct.system__secondary_stack__mark_id = type { i8*, i32 }
9 @weekS.154 = internal constant [28 x i8] c"SSUNSMONSTUESWEDSTHUSFRISSAT"                ; <[28 x i8]*> [#uses=1]
10 @weekN.179 = internal constant [8 x i8] c"\01\05\09\0D\11\15\19\1D"             ; <[8 x i8]*> [#uses=1]
11 @C.28.862 = internal constant %struct.string___XUB { i32 1, i32 85 }            ; <%struct.string___XUB*> [#uses=1]
12 @C.29.865 = internal constant %struct.string___XUB { i32 1, i32 7 }             ; <%struct.string___XUB*> [#uses=1]
13 @C.30.904 = internal constant %struct.string___XUB { i32 1, i32 30 }            ; <%struct.string___XUB*> [#uses=1]
14 @C.32.910 = internal constant %struct.string___XUB { i32 1, i32 28 }            ; <%struct.string___XUB*> [#uses=1]
15 @C.35.915 = internal constant %struct.string___XUB { i32 1, i32 24 }            ; <%struct.string___XUB*> [#uses=1]
16 @C.36.923 = internal constant %struct.string___XUB { i32 1, i32 29 }            ; <%struct.string___XUB*> [#uses=1]
17 @C.98.1466 = internal constant %struct.string___XUB { i32 1, i32 31 }           ; <%struct.string___XUB*> [#uses=1]
18 @C.101.1473 = internal constant %struct.string___XUB { i32 1, i32 46 }          ; <%struct.string___XUB*> [#uses=1]
19 @C.104.1478 = internal constant %struct.string___XUB { i32 1, i32 25 }          ; <%struct.string___XUB*> [#uses=1]
20 @C.124.1606 = internal constant %struct.string___XUB { i32 1, i32 18 }          ; <%struct.string___XUB*> [#uses=1]
21 @C.143.1720 = internal constant [2 x i32] [ i32 1, i32 2 ]              ; <[2 x i32]*> [#uses=1]
22 @C.146.1725 = internal constant %struct.string___XUB { i32 1, i32 37 }          ; <%struct.string___XUB*> [#uses=1]
23 @C.170.1990 = internal constant %struct.string___XUB { i32 1, i32 19 }          ; <%struct.string___XUB*> [#uses=1]
24 @C.178.2066 = internal constant %struct.string___XUB { i32 1, i32 27 }          ; <%struct.string___XUB*> [#uses=1]
25 @.str = internal constant [13 x i8] c"c36104b.adb\00\00"                ; <[13 x i8]*> [#uses=1]
26 @.str1 = internal constant [85 x i8] c"CONSTRAINT_ERROR IS RAISED OR NOT IN DYNAMIC DISCRETE_RANGES WITH EXPLICIT TYPE_MARKS"           ; <[85 x i8]*> [#uses=1]
27 @.str2 = internal constant [7 x i8] c"C36104B"          ; <[7 x i8]*> [#uses=1]
28 @constraint_error = external global %struct.exception           ; <%struct.exception*> [#uses=18]
29 @__gnat_others_value = external constant i32            ; <i32*> [#uses=37]
30 @.str3 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 1 "          ; <[30 x i8]*> [#uses=1]
31 @system__soft_links__abort_undefer = external global void ()*           ; <void ()**> [#uses=30]
32 @.str4 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 1"            ; <[28 x i8]*> [#uses=1]
33 @.str5 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 1"                ; <[24 x i8]*> [#uses=1]
34 @.str6 = internal constant [29 x i8] c"CONSTRAINT_ERROR NOT RAISED 3"           ; <[29 x i8]*> [#uses=1]
35 @.str7 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 3"                ; <[24 x i8]*> [#uses=1]
36 @.str10 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 4"               ; <[24 x i8]*> [#uses=1]
37 @.str11 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 7 "         ; <[30 x i8]*> [#uses=1]
38 @.str12 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 7"           ; <[28 x i8]*> [#uses=1]
39 @.str13 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 7"               ; <[24 x i8]*> [#uses=1]
40 @.str14 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 8 "         ; <[30 x i8]*> [#uses=1]
41 @.str15 = internal constant [28 x i8] c"UNHANDLED EXCEPTION RAISED 8"           ; <[28 x i8]*> [#uses=1]
42 @.str16 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 8"               ; <[24 x i8]*> [#uses=1]
43 @.str17 = internal constant [30 x i8] c"CONSTRAINT_ERROR NOT RAISED 9 "         ; <[30 x i8]*> [#uses=1]
44 @.str18 = internal constant [24 x i8] c"WRONG EXCEPTION RAISED 9"               ; <[24 x i8]*> [#uses=1]
45 @.str19 = internal constant [31 x i8] c"CONSTRAINT_ERROR NOT RAISED 10 "                ; <[31 x i8]*> [#uses=1]
46 @.str20 = internal constant [46 x i8] c"DID NOT RAISE CONSTRAINT_ERROR AT PROPER PLACE"         ; <[46 x i8]*> [#uses=1]
47 @.str21 = internal constant [25 x i8] c"WRONG EXCEPTION RAISED 10"              ; <[25 x i8]*> [#uses=1]
48 @.str22 = internal constant [31 x i8] c"CONSTRAINT_ERROR NOT RAISED 11 "                ; <[31 x i8]*> [#uses=1]
49 @.str23 = internal constant [25 x i8] c"WRONG EXCEPTION RAISED 11"              ; <[25 x i8]*> [#uses=1]
50 @.str24 = internal constant [30 x i8] c"'FIRST OF NULL ARRAY INCORRECT"         ; <[30 x i8]*> [#uses=1]
51 @.str25 = internal constant [18 x i8] c"EXCEPTION RAISED 1"             ; <[18 x i8]*> [#uses=1]
52 @.str26 = internal constant [18 x i8] c"EXCEPTION RAISED 3"             ; <[18 x i8]*> [#uses=1]
53 @.str27 = internal constant [31 x i8] c"'LENGTH OF NULL ARRAY INCORRECT"                ; <[31 x i8]*> [#uses=1]
54 @.str28 = internal constant [18 x i8] c"EXCEPTION RAISED 5"             ; <[18 x i8]*> [#uses=1]
55 @.str29 = internal constant [37 x i8] c"EVALUATION OF EXPRESSION IS INCORRECT"          ; <[37 x i8]*> [#uses=1]
56 @.str30 = internal constant [18 x i8] c"EXCEPTION RAISED 7"             ; <[18 x i8]*> [#uses=1]
57 @.str32 = internal constant [18 x i8] c"EXCEPTION RAISED 9"             ; <[18 x i8]*> [#uses=1]
58 @.str33 = internal constant [19 x i8] c"EXCEPTION RAISED 10"            ; <[19 x i8]*> [#uses=1]
59 @.str34 = internal constant [19 x i8] c"EXCEPTION RAISED 12"            ; <[19 x i8]*> [#uses=1]
60 @.str35 = internal constant [27 x i8] c"INCORRECT 'IN' EVALUATION 1"            ; <[27 x i8]*> [#uses=1]
61 @.str36 = internal constant [27 x i8] c"INCORRECT 'IN' EVALUATION 2"            ; <[27 x i8]*> [#uses=1]
62 @.str37 = internal constant [29 x i8] c"INCORRECT 'NOT IN' EVALUATION"          ; <[29 x i8]*> [#uses=1]
63 @.str38 = internal constant [19 x i8] c"EXCEPTION RAISED 52"            ; <[19 x i8]*> [#uses=1]
64
65 define void @_ada_c36104b() {
66 entry:
67         %tmp9 = alloca %struct.system__secondary_stack__mark_id, align 8                ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
68         %tmp12 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
69         %tmp15 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
70         %tmp31 = alloca %struct.system__secondary_stack__mark_id, align 8               ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
71         %tmp34 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
72         %tmp37 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
73         %tmp46 = alloca %struct.system__secondary_stack__mark_id, align 8               ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
74         %tmp49 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
75         %tmp52 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
76         %tmp55 = alloca %struct.system__secondary_stack__mark_id, align 8               ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
77         %tmp58 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
78         %tmp61 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
79         %tmp63 = alloca %struct.system__secondary_stack__mark_id, align 8               ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
80         %tmp66 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
81         %tmp69 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
82         %tmp72 = alloca %struct.system__secondary_stack__mark_id, align 8               ; <%struct.system__secondary_stack__mark_id*> [#uses=3]
83         %tmp75 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
84         %tmp78 = alloca %struct.string___XUP, align 8           ; <%struct.string___XUP*> [#uses=3]
85         %tmp123 = call i32 @report__ident_int( i32 0 )          ; <i32> [#uses=3]
86         %tmp125 = icmp ugt i32 %tmp123, 6               ; <i1> [#uses=1]
87         br i1 %tmp125, label %cond_true, label %cond_next136
88
89 cond_true:              ; preds = %entry
90         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 50 )
91         unreachable
92
93 cond_next136:           ; preds = %entry
94         %tmp137138 = trunc i32 %tmp123 to i8            ; <i8> [#uses=21]
95         %tmp139 = icmp ugt i8 %tmp137138, 6             ; <i1> [#uses=1]
96         br i1 %tmp139, label %bb, label %bb144
97
98 bb:             ; preds = %cond_next136
99         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 50 )
100         unreachable
101
102 bb144:          ; preds = %cond_next136
103         %tmp150 = call i32 @report__ident_int( i32 1 )          ; <i32> [#uses=4]
104         %tmp154 = icmp ugt i32 %tmp150, 6               ; <i1> [#uses=1]
105         br i1 %tmp154, label %cond_true157, label %cond_next169
106
107 cond_true157:           ; preds = %bb144
108         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 51 )
109         unreachable
110
111 cond_next169:           ; preds = %bb144
112         %tmp170171 = trunc i32 %tmp150 to i8            ; <i8> [#uses=34]
113         %tmp172 = icmp ugt i8 %tmp170171, 6             ; <i1> [#uses=1]
114         br i1 %tmp172, label %bb175, label %bb178
115
116 bb175:          ; preds = %cond_next169
117         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 51 )
118         unreachable
119
120 bb178:          ; preds = %cond_next169
121         %tmp184 = call i32 @report__ident_int( i32 2 )          ; <i32> [#uses=3]
122         %tmp188 = icmp ugt i32 %tmp184, 6               ; <i1> [#uses=1]
123         br i1 %tmp188, label %cond_true191, label %cond_next203
124
125 cond_true191:           ; preds = %bb178
126         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 52 )
127         unreachable
128
129 cond_next203:           ; preds = %bb178
130         %tmp204205 = trunc i32 %tmp184 to i8            ; <i8> [#uses=30]
131         %tmp206 = icmp ugt i8 %tmp204205, 6             ; <i1> [#uses=3]
132         br i1 %tmp206, label %bb209, label %bb212
133
134 bb209:          ; preds = %cond_next203
135         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 52 )
136         unreachable
137
138 bb212:          ; preds = %cond_next203
139         %tmp218 = call i32 @report__ident_int( i32 3 )          ; <i32> [#uses=4]
140         %tmp222 = icmp ugt i32 %tmp218, 6               ; <i1> [#uses=1]
141         br i1 %tmp222, label %cond_true225, label %cond_next237
142
143 cond_true225:           ; preds = %bb212
144         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 53 )
145         unreachable
146
147 cond_next237:           ; preds = %bb212
148         %tmp238239 = trunc i32 %tmp218 to i8            ; <i8> [#uses=34]
149         %tmp240 = icmp ugt i8 %tmp238239, 6             ; <i1> [#uses=2]
150         br i1 %tmp240, label %bb243, label %bb246
151
152 bb243:          ; preds = %cond_next237
153         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 53 )
154         unreachable
155
156 bb246:          ; preds = %cond_next237
157         %tmp252 = call i32 @report__ident_int( i32 4 )          ; <i32> [#uses=3]
158         %tmp256 = icmp ugt i32 %tmp252, 6               ; <i1> [#uses=1]
159         br i1 %tmp256, label %cond_true259, label %cond_next271
160
161 cond_true259:           ; preds = %bb246
162         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 54 )
163         unreachable
164
165 cond_next271:           ; preds = %bb246
166         %tmp272273 = trunc i32 %tmp252 to i8            ; <i8> [#uses=27]
167         %tmp274 = icmp ugt i8 %tmp272273, 6             ; <i1> [#uses=4]
168         br i1 %tmp274, label %bb277, label %bb280
169
170 bb277:          ; preds = %cond_next271
171         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 54 )
172         unreachable
173
174 bb280:          ; preds = %cond_next271
175         %tmp286 = call i32 @report__ident_int( i32 5 )          ; <i32> [#uses=3]
176         %tmp290 = icmp ugt i32 %tmp286, 6               ; <i1> [#uses=1]
177         br i1 %tmp290, label %cond_true293, label %cond_next305
178
179 cond_true293:           ; preds = %bb280
180         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 55 )
181         unreachable
182
183 cond_next305:           ; preds = %bb280
184         %tmp306307 = trunc i32 %tmp286 to i8            ; <i8> [#uses=16]
185         %tmp308 = icmp ugt i8 %tmp306307, 6             ; <i1> [#uses=1]
186         br i1 %tmp308, label %bb311, label %bb314
187
188 bb311:          ; preds = %cond_next305
189         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 55 )
190         unreachable
191
192 bb314:          ; preds = %cond_next305
193         %tmp320 = call i32 @report__ident_int( i32 6 )          ; <i32> [#uses=2]
194         %tmp324 = icmp ugt i32 %tmp320, 6               ; <i1> [#uses=1]
195         br i1 %tmp324, label %cond_true327, label %cond_next339
196
197 cond_true327:           ; preds = %bb314
198         call void @__gnat_rcheck_10( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 56 )
199         unreachable
200
201 cond_next339:           ; preds = %bb314
202         %tmp340341 = trunc i32 %tmp320 to i8            ; <i8> [#uses=4]
203         %tmp342 = icmp ugt i8 %tmp340341, 6             ; <i1> [#uses=1]
204         br i1 %tmp342, label %bb345, label %bb348
205
206 bb345:          ; preds = %cond_next339
207         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 56 )
208         unreachable
209
210 bb348:          ; preds = %cond_next339
211         %tmp364 = icmp ult i8 %tmp272273, %tmp204205            ; <i1> [#uses=2]
212         br i1 %tmp364, label %cond_next383, label %cond_true367
213
214 cond_true367:           ; preds = %bb348
215         %tmp370 = icmp ult i8 %tmp204205, %tmp170171            ; <i1> [#uses=1]
216         %tmp374 = icmp ugt i8 %tmp272273, %tmp306307            ; <i1> [#uses=1]
217         %tmp378 = or i1 %tmp374, %tmp370                ; <i1> [#uses=1]
218         br i1 %tmp378, label %cond_true381, label %cond_next383
219
220 cond_true381:           ; preds = %cond_true367
221         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 59 )
222         unreachable
223
224 cond_next383:           ; preds = %cond_true367, %bb348
225         %tmp384 = call i32 @report__ident_int( i32 -5 )         ; <i32> [#uses=15]
226         %tmp388 = add i32 %tmp384, 10           ; <i32> [#uses=1]
227         %tmp389 = icmp ugt i32 %tmp388, 20              ; <i1> [#uses=1]
228         br i1 %tmp389, label %cond_true392, label %cond_next393
229
230 cond_true392:           ; preds = %cond_next383
231         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 63 )
232         unreachable
233
234 cond_next393:           ; preds = %cond_next383
235         %tmp394 = call i32 @report__ident_int( i32 5 )          ; <i32> [#uses=18]
236         %tmp398 = add i32 %tmp394, 10           ; <i32> [#uses=1]
237         %tmp399 = icmp ugt i32 %tmp398, 20              ; <i1> [#uses=1]
238         br i1 %tmp399, label %cond_true402, label %cond_next403
239
240 cond_true402:           ; preds = %cond_next393
241         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 64 )
242         unreachable
243
244 cond_next403:           ; preds = %cond_next393
245         %tmp416 = icmp slt i32 %tmp394, %tmp384         ; <i1> [#uses=1]
246         br i1 %tmp416, label %cond_next437, label %cond_true419
247
248 cond_true419:           ; preds = %cond_next403
249         %tmp423 = icmp slt i32 %tmp384, -10             ; <i1> [#uses=1]
250         %tmp428 = icmp sgt i32 %tmp394, 10              ; <i1> [#uses=1]
251         %tmp432 = or i1 %tmp428, %tmp423                ; <i1> [#uses=1]
252         br i1 %tmp432, label %cond_true435, label %cond_next437
253
254 cond_true435:           ; preds = %cond_true419
255         call void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 63 )
256         unreachable
257
258 cond_next437:           ; preds = %cond_true419, %cond_next403
259         call void @report__test( i64 or (i64 zext (i32 ptrtoint ([7 x i8]* @.str2 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.29.865 to i32) to i64), i64 32)), i64 or (i64 zext (i32 ptrtoint ([85 x i8]* @.str1 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.28.862 to i32) to i64), i64 32)) )
260         %tmp453 = icmp sgt i32 %tmp384, 0               ; <i1> [#uses=1]
261         %tmp458 = icmp slt i32 %tmp394, 6               ; <i1> [#uses=1]
262         %tmp462 = or i1 %tmp458, %tmp453                ; <i1> [#uses=3]
263         br i1 %tmp462, label %cond_true465, label %cond_next467
264
265 cond_true465:           ; preds = %cond_next437
266         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 80 )
267                         to label %UnifiedUnreachableBlock34 unwind label %unwind
268
269 unwind:         ; preds = %cleanup798, %unwind783, %cond_true465
270         %eh_ptr = call i8* @llvm.eh.exception( )                ; <i8*> [#uses=3]
271         %eh_select = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
272         %eh_typeid8065921 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )              ; <i32> [#uses=1]
273         %tmp8085923 = icmp eq i32 %eh_select, %eh_typeid8065921         ; <i1> [#uses=1]
274         br i1 %tmp8085923, label %eh_then809, label %eh_else823
275
276 cond_next467:           ; preds = %cond_next437
277         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp9 sret  )
278                         to label %invcont472 unwind label %unwind468
279
280 unwind468:              ; preds = %cleanup, %unwind480, %cond_next467
281         %eh_ptr469 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=3]
282         %eh_select471 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr469, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )                ; <i32> [#uses=2]
283         %eh_typeid5928 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
284         %tmp7815929 = icmp eq i32 %eh_select471, %eh_typeid5928         ; <i1> [#uses=1]
285         br i1 %tmp7815929, label %eh_then, label %cleanup805
286
287 invcont472:             ; preds = %cond_next467
288         %tmp475 = getelementptr %struct.system__secondary_stack__mark_id* %tmp9, i32 0, i32 0           ; <i8**> [#uses=1]
289         %tmp476 = load i8** %tmp475             ; <i8*> [#uses=2]
290         %tmp478 = getelementptr %struct.system__secondary_stack__mark_id* %tmp9, i32 0, i32 1           ; <i32*> [#uses=1]
291         %tmp479 = load i32* %tmp478             ; <i32> [#uses=2]
292         %tmp485 = invoke i32 @report__ident_int( i32 1 )
293                         to label %invcont484 unwind label %unwind480            ; <i32> [#uses=2]
294
295 unwind480:              ; preds = %invcont734, %invcont717, %cond_next665, %cond_true663, %cond_next639, %cond_true637, %cond_next613, %cond_true611, %cond_next587, %cond_true585, %cond_next561, %cond_true559, %cond_next535, %cond_true533, %cond_next509, %cond_true507, %invcont472
296         %eh_ptr481 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=3]
297         %eh_select483 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr481, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )                ; <i32> [#uses=2]
298         %tmp7685575 = ptrtoint i8* %tmp476 to i32               ; <i32> [#uses=1]
299         %tmp76855755576 = zext i32 %tmp7685575 to i64           ; <i64> [#uses=1]
300         %tmp7715572 = zext i32 %tmp479 to i64           ; <i64> [#uses=1]
301         %tmp77155725573 = shl i64 %tmp7715572, 32               ; <i64> [#uses=1]
302         %tmp77155725573.ins = or i64 %tmp77155725573, %tmp76855755576           ; <i64> [#uses=1]
303         invoke void @system__secondary_stack__ss_release( i64 %tmp77155725573.ins )
304                         to label %cleanup779 unwind label %unwind468
305
306 invcont484:             ; preds = %invcont472
307         %tmp492 = icmp slt i32 %tmp485, %tmp384         ; <i1> [#uses=1]
308         %tmp500 = icmp sgt i32 %tmp485, %tmp394         ; <i1> [#uses=1]
309         %tmp504 = or i1 %tmp492, %tmp500                ; <i1> [#uses=1]
310         br i1 %tmp504, label %cond_true507, label %cond_next509
311
312 cond_true507:           ; preds = %invcont484
313         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
314                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
315
316 cond_next509:           ; preds = %invcont484
317         %tmp511 = invoke i32 @report__ident_int( i32 1 )
318                         to label %invcont510 unwind label %unwind480            ; <i32> [#uses=3]
319
320 invcont510:             ; preds = %cond_next509
321         %tmp518 = icmp slt i32 %tmp511, %tmp384         ; <i1> [#uses=1]
322         %tmp526 = icmp sgt i32 %tmp511, %tmp394         ; <i1> [#uses=1]
323         %tmp530 = or i1 %tmp518, %tmp526                ; <i1> [#uses=1]
324         br i1 %tmp530, label %cond_true533, label %cond_next535
325
326 cond_true533:           ; preds = %invcont510
327         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
328                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
329
330 cond_next535:           ; preds = %invcont510
331         %tmp537 = invoke i32 @report__ident_int( i32 1 )
332                         to label %invcont536 unwind label %unwind480            ; <i32> [#uses=2]
333
334 invcont536:             ; preds = %cond_next535
335         %tmp544 = icmp slt i32 %tmp537, %tmp384         ; <i1> [#uses=1]
336         %tmp552 = icmp sgt i32 %tmp537, %tmp394         ; <i1> [#uses=1]
337         %tmp556 = or i1 %tmp544, %tmp552                ; <i1> [#uses=1]
338         br i1 %tmp556, label %cond_true559, label %cond_next561
339
340 cond_true559:           ; preds = %invcont536
341         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
342                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
343
344 cond_next561:           ; preds = %invcont536
345         %tmp563 = invoke i32 @report__ident_int( i32 1 )
346                         to label %invcont562 unwind label %unwind480            ; <i32> [#uses=2]
347
348 invcont562:             ; preds = %cond_next561
349         %tmp570 = icmp slt i32 %tmp563, %tmp384         ; <i1> [#uses=1]
350         %tmp578 = icmp sgt i32 %tmp563, %tmp394         ; <i1> [#uses=1]
351         %tmp582 = or i1 %tmp570, %tmp578                ; <i1> [#uses=1]
352         br i1 %tmp582, label %cond_true585, label %cond_next587
353
354 cond_true585:           ; preds = %invcont562
355         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
356                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
357
358 cond_next587:           ; preds = %invcont562
359         %tmp589 = invoke i32 @report__ident_int( i32 1 )
360                         to label %invcont588 unwind label %unwind480            ; <i32> [#uses=2]
361
362 invcont588:             ; preds = %cond_next587
363         %tmp596 = icmp slt i32 %tmp589, %tmp384         ; <i1> [#uses=1]
364         %tmp604 = icmp sgt i32 %tmp589, %tmp394         ; <i1> [#uses=1]
365         %tmp608 = or i1 %tmp596, %tmp604                ; <i1> [#uses=1]
366         br i1 %tmp608, label %cond_true611, label %cond_next613
367
368 cond_true611:           ; preds = %invcont588
369         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
370                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
371
372 cond_next613:           ; preds = %invcont588
373         %tmp615 = invoke i32 @report__ident_int( i32 1 )
374                         to label %invcont614 unwind label %unwind480            ; <i32> [#uses=2]
375
376 invcont614:             ; preds = %cond_next613
377         %tmp622 = icmp slt i32 %tmp615, %tmp384         ; <i1> [#uses=1]
378         %tmp630 = icmp sgt i32 %tmp615, %tmp394         ; <i1> [#uses=1]
379         %tmp634 = or i1 %tmp622, %tmp630                ; <i1> [#uses=1]
380         br i1 %tmp634, label %cond_true637, label %cond_next639
381
382 cond_true637:           ; preds = %invcont614
383         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
384                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
385
386 cond_next639:           ; preds = %invcont614
387         %tmp641 = invoke i32 @report__ident_int( i32 1 )
388                         to label %invcont640 unwind label %unwind480            ; <i32> [#uses=2]
389
390 invcont640:             ; preds = %cond_next639
391         %tmp648 = icmp slt i32 %tmp641, %tmp384         ; <i1> [#uses=1]
392         %tmp656 = icmp sgt i32 %tmp641, %tmp394         ; <i1> [#uses=1]
393         %tmp660 = or i1 %tmp648, %tmp656                ; <i1> [#uses=1]
394         br i1 %tmp660, label %cond_true663, label %cond_next665
395
396 cond_true663:           ; preds = %invcont640
397         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 86 )
398                         to label %UnifiedUnreachableBlock34 unwind label %unwind480
399
400 cond_next665:           ; preds = %invcont640
401         invoke void @system__img_int__image_integer( %struct.string___XUP* %tmp12 sret , i32 %tmp511 )
402                         to label %invcont717 unwind label %unwind480
403
404 invcont717:             ; preds = %cond_next665
405         %tmp719 = getelementptr %struct.string___XUP* %tmp12, i32 0, i32 0              ; <i8**> [#uses=1]
406         %tmp720 = load i8** %tmp719             ; <i8*> [#uses=1]
407         %tmp7205888 = ptrtoint i8* %tmp720 to i32               ; <i32> [#uses=1]
408         %tmp72058885889 = zext i32 %tmp7205888 to i64           ; <i64> [#uses=1]
409         %tmp722 = getelementptr %struct.string___XUP* %tmp12, i32 0, i32 1              ; <%struct.string___XUB**> [#uses=1]
410         %tmp723 = load %struct.string___XUB** %tmp722           ; <%struct.string___XUB*> [#uses=1]
411         %tmp7235884 = ptrtoint %struct.string___XUB* %tmp723 to i32             ; <i32> [#uses=1]
412         %tmp72358845885 = zext i32 %tmp7235884 to i64           ; <i64> [#uses=1]
413         %tmp723588458855886 = shl i64 %tmp72358845885, 32               ; <i64> [#uses=1]
414         %tmp723588458855886.ins = or i64 %tmp723588458855886, %tmp72058885889           ; <i64> [#uses=1]
415         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp15 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str3 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp723588458855886.ins )
416                         to label %invcont734 unwind label %unwind480
417
418 invcont734:             ; preds = %invcont717
419         %tmp736 = getelementptr %struct.string___XUP* %tmp15, i32 0, i32 0              ; <i8**> [#uses=1]
420         %tmp737 = load i8** %tmp736             ; <i8*> [#uses=1]
421         %tmp7375876 = ptrtoint i8* %tmp737 to i32               ; <i32> [#uses=1]
422         %tmp73758765877 = zext i32 %tmp7375876 to i64           ; <i64> [#uses=1]
423         %tmp739 = getelementptr %struct.string___XUP* %tmp15, i32 0, i32 1              ; <%struct.string___XUB**> [#uses=1]
424         %tmp740 = load %struct.string___XUB** %tmp739           ; <%struct.string___XUB*> [#uses=1]
425         %tmp7405872 = ptrtoint %struct.string___XUB* %tmp740 to i32             ; <i32> [#uses=1]
426         %tmp74058725873 = zext i32 %tmp7405872 to i64           ; <i64> [#uses=1]
427         %tmp740587258735874 = shl i64 %tmp74058725873, 32               ; <i64> [#uses=1]
428         %tmp740587258735874.ins = or i64 %tmp740587258735874, %tmp73758765877           ; <i64> [#uses=1]
429         invoke void @report__failed( i64 %tmp740587258735874.ins )
430                         to label %cleanup unwind label %unwind480
431
432 cleanup:                ; preds = %invcont734
433         %tmp7515581 = ptrtoint i8* %tmp476 to i32               ; <i32> [#uses=1]
434         %tmp75155815582 = zext i32 %tmp7515581 to i64           ; <i64> [#uses=1]
435         %tmp7545578 = zext i32 %tmp479 to i64           ; <i64> [#uses=1]
436         %tmp75455785579 = shl i64 %tmp7545578, 32               ; <i64> [#uses=1]
437         %tmp75455785579.ins = or i64 %tmp75455785579, %tmp75155815582           ; <i64> [#uses=1]
438         invoke void @system__secondary_stack__ss_release( i64 %tmp75455785579.ins )
439                         to label %cond_true856 unwind label %unwind468
440
441 cleanup779:             ; preds = %unwind480
442         %eh_typeid = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )             ; <i32> [#uses=1]
443         %tmp781 = icmp eq i32 %eh_select483, %eh_typeid         ; <i1> [#uses=1]
444         br i1 %tmp781, label %eh_then, label %cleanup805
445
446 eh_then:                ; preds = %cleanup779, %unwind468
447         %eh_exception.35924.0 = phi i8* [ %eh_ptr469, %unwind468 ], [ %eh_ptr481, %cleanup779 ]         ; <i8*> [#uses=3]
448         invoke void @__gnat_begin_handler( i8* %eh_exception.35924.0 )
449                         to label %invcont787 unwind label %unwind783
450
451 unwind783:              ; preds = %invcont789, %invcont787, %eh_then
452         %eh_ptr784 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=2]
453         %eh_select786 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr784, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )          ; <i32> [#uses=1]
454         invoke void @__gnat_end_handler( i8* %eh_exception.35924.0 )
455                         to label %cleanup805 unwind label %unwind
456
457 invcont787:             ; preds = %eh_then
458         %tmp788 = load void ()** @system__soft_links__abort_undefer             ; <void ()*> [#uses=1]
459         invoke void %tmp788( )
460                         to label %invcont789 unwind label %unwind783
461
462 invcont789:             ; preds = %invcont787
463         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str4 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) )
464                         to label %cleanup798 unwind label %unwind783
465
466 cleanup798:             ; preds = %invcont789
467         invoke void @__gnat_end_handler( i8* %eh_exception.35924.0 )
468                         to label %cond_true856 unwind label %unwind
469
470 cleanup805:             ; preds = %unwind783, %cleanup779, %unwind468
471         %eh_selector.0 = phi i32 [ %eh_select471, %unwind468 ], [ %eh_select483, %cleanup779 ], [ %eh_select786, %unwind783 ]           ; <i32> [#uses=2]
472         %eh_exception.0 = phi i8* [ %eh_ptr469, %unwind468 ], [ %eh_ptr481, %cleanup779 ], [ %eh_ptr784, %unwind783 ]           ; <i8*> [#uses=2]
473         %eh_typeid806 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )          ; <i32> [#uses=1]
474         %tmp808 = icmp eq i32 %eh_selector.0, %eh_typeid806             ; <i1> [#uses=1]
475         br i1 %tmp808, label %eh_then809, label %eh_else823
476
477 eh_then809:             ; preds = %cleanup805, %unwind
478         %eh_exception.05914.0 = phi i8* [ %eh_ptr, %unwind ], [ %eh_exception.0, %cleanup805 ]          ; <i8*> [#uses=3]
479         invoke void @__gnat_begin_handler( i8* %eh_exception.05914.0 )
480                         to label %invcont815 unwind label %unwind813
481
482 unwind813:              ; preds = %invcont815, %eh_then809
483         %eh_ptr814 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=1]
484         call void @__gnat_end_handler( i8* %eh_exception.05914.0 )
485         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr814 )               ; <i32>:0 [#uses=0]
486         unreachable
487
488 invcont815:             ; preds = %eh_then809
489         %tmp816 = load void ()** @system__soft_links__abort_undefer             ; <void ()*> [#uses=1]
490         invoke void %tmp816( )
491                         to label %cleanup819 unwind label %unwind813
492
493 cleanup819:             ; preds = %invcont815
494         call void @__gnat_end_handler( i8* %eh_exception.05914.0 )
495         %tmp8595931 = icmp ult i8 %tmp170171, %tmp204205                ; <i1> [#uses=1]
496         %tmp8635932 = icmp ugt i8 %tmp170171, %tmp272273                ; <i1> [#uses=1]
497         %tmp8675933 = or i1 %tmp8635932, %tmp8595931            ; <i1> [#uses=1]
498         br i1 %tmp8675933, label %cond_true870, label %bb887
499
500 eh_else823:             ; preds = %cleanup805, %unwind
501         %eh_selector.05912.1 = phi i32 [ %eh_select, %unwind ], [ %eh_selector.0, %cleanup805 ]         ; <i32> [#uses=1]
502         %eh_exception.05914.1 = phi i8* [ %eh_ptr, %unwind ], [ %eh_exception.0, %cleanup805 ]          ; <i8*> [#uses=4]
503         %eh_typeid824 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )          ; <i32> [#uses=1]
504         %tmp826 = icmp eq i32 %eh_selector.05912.1, %eh_typeid824               ; <i1> [#uses=1]
505         br i1 %tmp826, label %eh_then827, label %Unwind
506
507 eh_then827:             ; preds = %eh_else823
508         invoke void @__gnat_begin_handler( i8* %eh_exception.05914.1 )
509                         to label %invcont833 unwind label %unwind831
510
511 unwind831:              ; preds = %invcont835, %invcont833, %eh_then827
512         %eh_ptr832 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=1]
513         call void @__gnat_end_handler( i8* %eh_exception.05914.1 )
514         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr832 )               ; <i32>:1 [#uses=0]
515         unreachable
516
517 invcont833:             ; preds = %eh_then827
518         %tmp834 = load void ()** @system__soft_links__abort_undefer             ; <void ()*> [#uses=1]
519         invoke void %tmp834( )
520                         to label %invcont835 unwind label %unwind831
521
522 invcont835:             ; preds = %invcont833
523         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str5 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
524                         to label %cleanup844 unwind label %unwind831
525
526 cleanup844:             ; preds = %invcont835
527         call void @__gnat_end_handler( i8* %eh_exception.05914.1 )
528         br label %cond_true856
529
530 cond_true856:           ; preds = %cleanup844, %cleanup798, %cleanup
531         %tmp859 = icmp ult i8 %tmp170171, %tmp204205            ; <i1> [#uses=1]
532         %tmp863 = icmp ugt i8 %tmp170171, %tmp272273            ; <i1> [#uses=1]
533         %tmp867 = or i1 %tmp863, %tmp859                ; <i1> [#uses=1]
534         br i1 %tmp867, label %cond_true870, label %bb887
535
536 cond_true870:           ; preds = %cond_true856, %cleanup819
537         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 103 )
538                         to label %UnifiedUnreachableBlock34 unwind label %unwind871
539
540 unwind871:              ; preds = %cond_next905, %bb887, %cond_true870
541         %sat.3 = phi i8 [ %tmp340341, %cond_true870 ], [ %sat.1, %bb887 ], [ %sat.0, %cond_next905 ]            ; <i8> [#uses=2]
542         %eh_ptr872 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=8]
543         %eh_select874 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr872, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )          ; <i32> [#uses=2]
544         %eh_typeid915 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )          ; <i32> [#uses=1]
545         %tmp917 = icmp eq i32 %eh_select874, %eh_typeid915              ; <i1> [#uses=1]
546         br i1 %tmp917, label %eh_then918, label %eh_else932
547
548 bb887:          ; preds = %cond_next901, %cond_true856, %cleanup819
549         %indvar = phi i8 [ %indvar.next10, %cond_next901 ], [ 0, %cond_true856 ], [ 0, %cleanup819 ]            ; <i8> [#uses=2]
550         %sat.1 = phi i8 [ %sat.0, %cond_next901 ], [ %tmp340341, %cond_true856 ], [ %tmp340341, %cleanup819 ]           ; <i8> [#uses=2]
551         %tmp889 = invoke i8 @report__equal( i32 2, i32 2 )
552                         to label %invcont888 unwind label %unwind871            ; <i8> [#uses=1]
553
554 invcont888:             ; preds = %bb887
555         %i.4 = add i8 %indvar, %tmp170171               ; <i8> [#uses=1]
556         %tmp890 = icmp eq i8 %tmp889, 0         ; <i1> [#uses=1]
557         %sat.0 = select i1 %tmp890, i8 %sat.1, i8 6             ; <i8> [#uses=3]
558         %tmp897 = icmp eq i8 %i.4, %tmp170171           ; <i1> [#uses=1]
559         br i1 %tmp897, label %cond_next905, label %cond_next901
560
561 cond_next901:           ; preds = %invcont888
562         %indvar.next10 = add i8 %indvar, 1              ; <i8> [#uses=1]
563         br label %bb887
564
565 cond_next905:           ; preds = %invcont888
566         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([29 x i8]* @.str6 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.36.923 to i32) to i64), i64 32)) )
567                         to label %finally913 unwind label %unwind871
568
569 eh_then918:             ; preds = %unwind871
570         invoke void @__gnat_begin_handler( i8* %eh_ptr872 )
571                         to label %invcont924 unwind label %unwind922
572
573 unwind922:              ; preds = %invcont924, %eh_then918
574         %eh_ptr923 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=1]
575         call void @__gnat_end_handler( i8* %eh_ptr872 )
576         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr923 )               ; <i32>:2 [#uses=0]
577         unreachable
578
579 invcont924:             ; preds = %eh_then918
580         %tmp925 = load void ()** @system__soft_links__abort_undefer             ; <void ()*> [#uses=1]
581         invoke void %tmp925( )
582                         to label %cleanup928 unwind label %unwind922
583
584 cleanup928:             ; preds = %invcont924
585         call void @__gnat_end_handler( i8* %eh_ptr872 )
586         br i1 %tmp462, label %cond_true973, label %UnifiedReturnBlock35
587
588 eh_else932:             ; preds = %unwind871
589         %eh_typeid933 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )          ; <i32> [#uses=1]
590         %tmp935 = icmp eq i32 %eh_select874, %eh_typeid933              ; <i1> [#uses=1]
591         br i1 %tmp935, label %eh_then936, label %Unwind
592
593 eh_then936:             ; preds = %eh_else932
594         invoke void @__gnat_begin_handler( i8* %eh_ptr872 )
595                         to label %invcont942 unwind label %unwind940
596
597 unwind940:              ; preds = %invcont944, %invcont942, %eh_then936
598         %eh_ptr941 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=1]
599         call void @__gnat_end_handler( i8* %eh_ptr872 )
600         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr941 )               ; <i32>:3 [#uses=0]
601         unreachable
602
603 invcont942:             ; preds = %eh_then936
604         %tmp943 = load void ()** @system__soft_links__abort_undefer             ; <void ()*> [#uses=1]
605         invoke void %tmp943( )
606                         to label %invcont944 unwind label %unwind940
607
608 invcont944:             ; preds = %invcont942
609         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str7 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
610                         to label %cleanup953 unwind label %unwind940
611
612 cleanup953:             ; preds = %invcont944
613         call void @__gnat_end_handler( i8* %eh_ptr872 )
614         br label %finally913
615
616 finally913:             ; preds = %cleanup953, %cond_next905
617         %sat.4 = phi i8 [ %sat.3, %cleanup953 ], [ %sat.0, %cond_next905 ]              ; <i8> [#uses=1]
618         br i1 %tmp462, label %cond_true973, label %UnifiedReturnBlock35
619
620 cond_true973:           ; preds = %finally913, %cleanup928
621         %sat.45934.0 = phi i8 [ %sat.3, %cleanup928 ], [ %sat.4, %finally913 ]          ; <i8> [#uses=9]
622         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 119 )
623                         to label %UnifiedUnreachableBlock34 unwind label %unwind974
624
625 unwind974:              ; preds = %cond_true973
626         %eh_ptr975 = call i8* @llvm.eh.exception( )             ; <i8*> [#uses=8]
627         %eh_select977 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr975, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )          ; <i32> [#uses=2]
628         %eh_typeid13135959 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
629         %tmp13155961 = icmp eq i32 %eh_select977, %eh_typeid13135959            ; <i1> [#uses=1]
630         br i1 %tmp13155961, label %eh_then1316, label %eh_else1330
631
632 eh_then1316:            ; preds = %unwind974
633         invoke void @__gnat_begin_handler( i8* %eh_ptr975 )
634                         to label %invcont1322 unwind label %unwind1320
635
636 unwind1320:             ; preds = %invcont1322, %eh_then1316
637         %eh_ptr1321 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
638         call void @__gnat_end_handler( i8* %eh_ptr975 )
639         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1321 )              ; <i32>:4 [#uses=0]
640         unreachable
641
642 invcont1322:            ; preds = %eh_then1316
643         %tmp1323 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
644         invoke void %tmp1323( )
645                         to label %cleanup1326 unwind label %unwind1320
646
647 cleanup1326:            ; preds = %invcont1322
648         call void @__gnat_end_handler( i8* %eh_ptr975 )
649         br label %finally1311
650
651 eh_else1330:            ; preds = %unwind974
652         %eh_typeid1331 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
653         %tmp1333 = icmp eq i32 %eh_select977, %eh_typeid1331            ; <i1> [#uses=1]
654         br i1 %tmp1333, label %eh_then1334, label %Unwind
655
656 eh_then1334:            ; preds = %eh_else1330
657         invoke void @__gnat_begin_handler( i8* %eh_ptr975 )
658                         to label %invcont1340 unwind label %unwind1338
659
660 unwind1338:             ; preds = %invcont1342, %invcont1340, %eh_then1334
661         %eh_ptr1339 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
662         call void @__gnat_end_handler( i8* %eh_ptr975 )
663         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1339 )              ; <i32>:5 [#uses=0]
664         unreachable
665
666 invcont1340:            ; preds = %eh_then1334
667         %tmp1341 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
668         invoke void %tmp1341( )
669                         to label %invcont1342 unwind label %unwind1338
670
671 invcont1342:            ; preds = %invcont1340
672         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str10 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
673                         to label %cleanup1351 unwind label %unwind1338
674
675 cleanup1351:            ; preds = %invcont1342
676         call void @__gnat_end_handler( i8* %eh_ptr975 )
677         br label %finally1311
678
679 finally1311:            ; preds = %cleanup1351, %cleanup1326
680         %tmp1356 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=6]
681         %tmp13571358 = and i32 %tmp184, 255             ; <i32> [#uses=11]
682         %tmp13831384 = and i32 %tmp252, 255             ; <i32> [#uses=5]
683         %tmp1387 = add i32 %tmp13571358, -1             ; <i32> [#uses=2]
684         %tmp1388 = icmp sge i32 %tmp13831384, %tmp1387          ; <i1> [#uses=1]
685         %max1389 = select i1 %tmp1388, i32 %tmp13831384, i32 %tmp1387           ; <i32> [#uses=1]
686         %tmp1392 = sub i32 %max1389, %tmp13571358               ; <i32> [#uses=1]
687         %tmp1393 = add i32 %tmp1392, 1          ; <i32> [#uses=2]
688         %tmp1394 = icmp sgt i32 %tmp1393, -1            ; <i1> [#uses=1]
689         %max1395 = select i1 %tmp1394, i32 %tmp1393, i32 0              ; <i32> [#uses=5]
690         %tmp1397 = alloca i8, i32 %max1395              ; <i8*> [#uses=2]
691         %tmp1401 = icmp ult i8 %tmp238239, %tmp170171           ; <i1> [#uses=2]
692         br i1 %tmp1401, label %cond_next1425, label %cond_true1404
693
694 cond_true1404:          ; preds = %finally1311
695         %tmp1407 = icmp ult i8 %tmp170171, %tmp204205           ; <i1> [#uses=1]
696         %tmp1411 = icmp ugt i8 %tmp238239, %tmp272273           ; <i1> [#uses=1]
697         %tmp1415 = or i1 %tmp1411, %tmp1407             ; <i1> [#uses=1]
698         br i1 %tmp1415, label %cond_true1418, label %cond_next1425
699
700 cond_true1418:          ; preds = %cond_true1404
701         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 144 )
702                         to label %UnifiedUnreachableBlock34 unwind label %unwind1419
703
704 unwind1419:             ; preds = %cleanup1702, %cleanup1686, %unwind1676, %cond_next1548, %cond_true1546, %cond_true1418
705         %eh_ptr1420 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
706         %eh_select1422 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr1420, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
707         %eh_typeid17215981 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
708         %tmp17235983 = icmp eq i32 %eh_select1422, %eh_typeid17215981           ; <i1> [#uses=1]
709         br i1 %tmp17235983, label %eh_then1724, label %eh_else1742
710
711 cond_next1425:          ; preds = %cond_true1404, %finally1311
712         %tmp14281429 = and i32 %tmp150, 255             ; <i32> [#uses=3]
713         %tmp14841485 = and i32 %tmp218, 255             ; <i32> [#uses=3]
714         %tmp1488 = add i32 %tmp14281429, -1             ; <i32> [#uses=2]
715         %tmp1489 = icmp sge i32 %tmp14841485, %tmp1488          ; <i1> [#uses=1]
716         %max1490 = select i1 %tmp1489, i32 %tmp14841485, i32 %tmp1488           ; <i32> [#uses=1]
717         %tmp1493 = sub i32 %max1490, %tmp14281429               ; <i32> [#uses=1]
718         %tmp1494 = add i32 %tmp1493, 1          ; <i32> [#uses=2]
719         %tmp1495 = icmp sgt i32 %tmp1494, -1            ; <i1> [#uses=1]
720         %max1496 = select i1 %tmp1495, i32 %tmp1494, i32 0              ; <i32> [#uses=1]
721         %tmp1497 = alloca i8, i32 %max1496              ; <i8*> [#uses=3]
722         %tmp1504 = icmp ugt i8 %tmp170171, %tmp238239           ; <i1> [#uses=1]
723         br i1 %tmp1504, label %cond_next1526, label %bb1509
724
725 bb1509:         ; preds = %cond_next1425
726         store i8 %tmp238239, i8* %tmp1497
727         %tmp1518 = icmp eq i8 %tmp238239, %tmp170171            ; <i1> [#uses=1]
728         br i1 %tmp1518, label %cond_next1526, label %cond_next1522.preheader
729
730 cond_next1522.preheader:                ; preds = %bb1509
731         %J64b.55984.8 = add i8 %tmp170171, 1            ; <i8> [#uses=1]
732         br label %cond_next1522
733
734 cond_next1522:          ; preds = %cond_next1522, %cond_next1522.preheader
735         %indvar6241 = phi i8 [ 0, %cond_next1522.preheader ], [ %indvar.next, %cond_next1522 ]          ; <i8> [#uses=2]
736         %tmp1524 = add i8 %J64b.55984.8, %indvar6241            ; <i8> [#uses=2]
737         %tmp151015115988 = zext i8 %tmp1524 to i32              ; <i32> [#uses=1]
738         %tmp15135989 = sub i32 %tmp151015115988, %tmp14281429           ; <i32> [#uses=1]
739         %tmp15145990 = getelementptr i8* %tmp1497, i32 %tmp15135989             ; <i8*> [#uses=1]
740         store i8 %tmp238239, i8* %tmp15145990
741         %tmp15185992 = icmp eq i8 %tmp238239, %tmp1524          ; <i1> [#uses=1]
742         %indvar.next = add i8 %indvar6241, 1            ; <i8> [#uses=1]
743         br i1 %tmp15185992, label %cond_next1526, label %cond_next1522
744
745 cond_next1526:          ; preds = %cond_next1522, %bb1509, %cond_next1425
746         %tmp15271528 = zext i8 %tmp272273 to i64                ; <i64> [#uses=1]
747         %tmp15291530 = zext i8 %tmp204205 to i64                ; <i64> [#uses=1]
748         %tmp1531 = sub i64 %tmp15271528, %tmp15291530           ; <i64> [#uses=1]
749         %tmp1532 = add i64 %tmp1531, 1          ; <i64> [#uses=2]
750         %tmp1533 = icmp sgt i64 %tmp1532, -1            ; <i1> [#uses=1]
751         %max1534 = select i1 %tmp1533, i64 %tmp1532, i64 0              ; <i64> [#uses=1]
752         %tmp15351536 = zext i8 %tmp238239 to i64                ; <i64> [#uses=1]
753         %tmp15371538 = zext i8 %tmp170171 to i64                ; <i64> [#uses=1]
754         %tmp1539 = sub i64 %tmp15351536, %tmp15371538           ; <i64> [#uses=1]
755         %tmp1540 = add i64 %tmp1539, 1          ; <i64> [#uses=2]
756         %tmp1541 = icmp sgt i64 %tmp1540, -1            ; <i1> [#uses=1]
757         %max1542 = select i1 %tmp1541, i64 %tmp1540, i64 0              ; <i64> [#uses=1]
758         %tmp1543 = icmp eq i64 %max1534, %max1542               ; <i1> [#uses=1]
759         br i1 %tmp1543, label %cond_next1548, label %cond_true1546
760
761 cond_true1546:          ; preds = %cond_next1526
762         invoke void @__gnat_rcheck_07( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 144 )
763                         to label %UnifiedUnreachableBlock34 unwind label %unwind1419
764
765 cond_next1548:          ; preds = %cond_next1526
766         call void @llvm.memcpy.i32( i8* %tmp1397, i8* %tmp1497, i32 %max1395, i32 1 )
767         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp31 sret  )
768                         to label %invcont1552 unwind label %unwind1419
769
770 invcont1552:            ; preds = %cond_next1548
771         %tmp1555 = getelementptr %struct.system__secondary_stack__mark_id* %tmp31, i32 0, i32 0         ; <i8**> [#uses=1]
772         %tmp1556 = load i8** %tmp1555           ; <i8*> [#uses=3]
773         %tmp1558 = getelementptr %struct.system__secondary_stack__mark_id* %tmp31, i32 0, i32 1         ; <i32*> [#uses=1]
774         %tmp1559 = load i32* %tmp1558           ; <i32> [#uses=3]
775         %tmp1562 = icmp ult i8 %tmp238239, %tmp204205           ; <i1> [#uses=1]
776         %tmp1566 = icmp ugt i8 %tmp238239, %tmp272273           ; <i1> [#uses=1]
777         %tmp1570 = or i1 %tmp1566, %tmp1562             ; <i1> [#uses=1]
778         br i1 %tmp1570, label %cond_true1573, label %cond_next1591
779
780 cond_true1573:          ; preds = %invcont1552
781         invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 148 )
782                         to label %UnifiedUnreachableBlock34 unwind label %unwind1574
783
784 unwind1574:             ; preds = %invcont1638, %invcont1621, %bb1607, %bb1605, %cond_true1573
785         %eh_ptr1575 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
786         %eh_select1577 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr1575, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
787         %eh_typeid1652 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
788         %tmp1654 = icmp eq i32 %eh_select1577, %eh_typeid1652           ; <i1> [#uses=1]
789         br i1 %tmp1654, label %eh_then1655, label %cleanup1686
790
791 cond_next1591:          ; preds = %invcont1552
792         %tmp1595 = sub i32 %tmp14841485, %tmp13571358           ; <i32> [#uses=1]
793         %tmp1596 = getelementptr i8* %tmp1397, i32 %tmp1595             ; <i8*> [#uses=1]
794         %tmp1597 = load i8* %tmp1596            ; <i8> [#uses=2]
795         %tmp1599 = icmp ugt i8 %tmp1597, 6              ; <i1> [#uses=1]
796         br i1 %tmp1599, label %bb1605, label %bb1607
797
798 bb1605:         ; preds = %cond_next1591
799         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 148 )
800                         to label %UnifiedUnreachableBlock34 unwind label %unwind1574
801
802 bb1607:         ; preds = %cond_next1591
803         %tmp16151616 = zext i8 %tmp1597 to i32          ; <i32> [#uses=1]
804         invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp34 sret , i32 %tmp16151616, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) )
805                         to label %invcont1621 unwind label %unwind1574
806
807 invcont1621:            ; preds = %bb1607
808         %tmp1623 = getelementptr %struct.string___XUP* %tmp34, i32 0, i32 0             ; <i8**> [#uses=1]
809         %tmp1624 = load i8** %tmp1623           ; <i8*> [#uses=1]
810         %tmp16245815 = ptrtoint i8* %tmp1624 to i32             ; <i32> [#uses=1]
811         %tmp162458155816 = zext i32 %tmp16245815 to i64         ; <i64> [#uses=1]
812         %tmp1626 = getelementptr %struct.string___XUP* %tmp34, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
813         %tmp1627 = load %struct.string___XUB** %tmp1626         ; <%struct.string___XUB*> [#uses=1]
814         %tmp16275811 = ptrtoint %struct.string___XUB* %tmp1627 to i32           ; <i32> [#uses=1]
815         %tmp162758115812 = zext i32 %tmp16275811 to i64         ; <i64> [#uses=1]
816         %tmp1627581158125813 = shl i64 %tmp162758115812, 32             ; <i64> [#uses=1]
817         %tmp1627581158125813.ins = or i64 %tmp1627581158125813, %tmp162458155816                ; <i64> [#uses=1]
818         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp37 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str11 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp1627581158125813.ins )
819                         to label %invcont1638 unwind label %unwind1574
820
821 invcont1638:            ; preds = %invcont1621
822         %tmp1640 = getelementptr %struct.string___XUP* %tmp37, i32 0, i32 0             ; <i8**> [#uses=1]
823         %tmp1641 = load i8** %tmp1640           ; <i8*> [#uses=1]
824         %tmp16415803 = ptrtoint i8* %tmp1641 to i32             ; <i32> [#uses=1]
825         %tmp164158035804 = zext i32 %tmp16415803 to i64         ; <i64> [#uses=1]
826         %tmp1643 = getelementptr %struct.string___XUP* %tmp37, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
827         %tmp1644 = load %struct.string___XUB** %tmp1643         ; <%struct.string___XUB*> [#uses=1]
828         %tmp16445799 = ptrtoint %struct.string___XUB* %tmp1644 to i32           ; <i32> [#uses=1]
829         %tmp164457995800 = zext i32 %tmp16445799 to i64         ; <i64> [#uses=1]
830         %tmp1644579958005801 = shl i64 %tmp164457995800, 32             ; <i64> [#uses=1]
831         %tmp1644579958005801.ins = or i64 %tmp1644579958005801, %tmp164158035804                ; <i64> [#uses=1]
832         invoke void @report__failed( i64 %tmp1644579958005801.ins )
833                         to label %cleanup1702 unwind label %unwind1574
834
835 eh_then1655:            ; preds = %unwind1574
836         invoke void @__gnat_begin_handler( i8* %eh_ptr1575 )
837                         to label %invcont1663 unwind label %unwind1659
838
839 unwind1659:             ; preds = %invcont1665, %invcont1663, %eh_then1655
840         %eh_ptr1660 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
841         %eh_select1662 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr1660, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
842         invoke void @__gnat_end_handler( i8* %eh_ptr1575 )
843                         to label %cleanup1686 unwind label %unwind1676
844
845 invcont1663:            ; preds = %eh_then1655
846         %tmp1664 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
847         invoke void %tmp1664( )
848                         to label %invcont1665 unwind label %unwind1659
849
850 invcont1665:            ; preds = %invcont1663
851         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str12 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) )
852                         to label %cleanup1674 unwind label %unwind1659
853
854 cleanup1674:            ; preds = %invcont1665
855         invoke void @__gnat_end_handler( i8* %eh_ptr1575 )
856                         to label %cleanup1702 unwind label %unwind1676
857
858 unwind1676:             ; preds = %cleanup1674, %unwind1659
859         %eh_ptr1677 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
860         %eh_select1679 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr1677, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
861         %tmp169255575995 = ptrtoint i8* %tmp1556 to i32         ; <i32> [#uses=1]
862         %tmp1692555755585996 = zext i32 %tmp169255575995 to i64         ; <i64> [#uses=1]
863         %tmp169555545997 = zext i32 %tmp1559 to i64             ; <i64> [#uses=1]
864         %tmp1695555455555998 = shl i64 %tmp169555545997, 32             ; <i64> [#uses=1]
865         %tmp169555545555.ins5999 = or i64 %tmp1695555455555998, %tmp1692555755585996            ; <i64> [#uses=1]
866         invoke void @system__secondary_stack__ss_release( i64 %tmp169555545555.ins5999 )
867                         to label %cleanup1720 unwind label %unwind1419
868
869 cleanup1686:            ; preds = %unwind1659, %unwind1574
870         %eh_selector.18 = phi i32 [ %eh_select1577, %unwind1574 ], [ %eh_select1662, %unwind1659 ]              ; <i32> [#uses=1]
871         %eh_exception.18 = phi i8* [ %eh_ptr1575, %unwind1574 ], [ %eh_ptr1660, %unwind1659 ]           ; <i8*> [#uses=1]
872         %tmp16925557 = ptrtoint i8* %tmp1556 to i32             ; <i32> [#uses=1]
873         %tmp169255575558 = zext i32 %tmp16925557 to i64         ; <i64> [#uses=1]
874         %tmp16955554 = zext i32 %tmp1559 to i64         ; <i64> [#uses=1]
875         %tmp169555545555 = shl i64 %tmp16955554, 32             ; <i64> [#uses=1]
876         %tmp169555545555.ins = or i64 %tmp169555545555, %tmp169255575558                ; <i64> [#uses=1]
877         invoke void @system__secondary_stack__ss_release( i64 %tmp169555545555.ins )
878                         to label %cleanup1720 unwind label %unwind1419
879
880 cleanup1702:            ; preds = %cleanup1674, %invcont1638
881         %tmp17095551 = ptrtoint i8* %tmp1556 to i32             ; <i32> [#uses=1]
882         %tmp170955515552 = zext i32 %tmp17095551 to i64         ; <i64> [#uses=1]
883         %tmp17125548 = zext i32 %tmp1559 to i64         ; <i64> [#uses=1]
884         %tmp171255485549 = shl i64 %tmp17125548, 32             ; <i64> [#uses=1]
885         %tmp171255485549.ins = or i64 %tmp171255485549, %tmp170955515552                ; <i64> [#uses=1]
886         invoke void @system__secondary_stack__ss_release( i64 %tmp171255485549.ins )
887                         to label %cleanup1773 unwind label %unwind1419
888
889 cleanup1720:            ; preds = %cleanup1686, %unwind1676
890         %eh_selector.185993.1 = phi i32 [ %eh_select1679, %unwind1676 ], [ %eh_selector.18, %cleanup1686 ]              ; <i32> [#uses=2]
891         %eh_exception.185994.1 = phi i8* [ %eh_ptr1677, %unwind1676 ], [ %eh_exception.18, %cleanup1686 ]               ; <i8*> [#uses=2]
892         %eh_typeid1721 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )         ; <i32> [#uses=1]
893         %tmp1723 = icmp eq i32 %eh_selector.185993.1, %eh_typeid1721            ; <i1> [#uses=1]
894         br i1 %tmp1723, label %eh_then1724, label %eh_else1742
895
896 eh_then1724:            ; preds = %cleanup1720, %unwind1419
897         %eh_exception.135974.0 = phi i8* [ %eh_ptr1420, %unwind1419 ], [ %eh_exception.185994.1, %cleanup1720 ]         ; <i8*> [#uses=3]
898         invoke void @__gnat_begin_handler( i8* %eh_exception.135974.0 )
899                         to label %invcont1730 unwind label %unwind1728
900
901 unwind1728:             ; preds = %invcont1730, %eh_then1724
902         %eh_ptr1729 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
903         invoke void @__gnat_end_handler( i8* %eh_exception.135974.0 )
904                         to label %cleanup1771 unwind label %unwind1736
905
906 invcont1730:            ; preds = %eh_then1724
907         %tmp1731 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
908         invoke void %tmp1731( )
909                         to label %cleanup1734 unwind label %unwind1728
910
911 cleanup1734:            ; preds = %invcont1730
912         invoke void @__gnat_end_handler( i8* %eh_exception.135974.0 )
913                         to label %cleanup1773 unwind label %unwind1736
914
915 unwind1736:             ; preds = %cleanup1763, %unwind1750, %cleanup1734, %unwind1728
916         %eh_ptr1737 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
917         call void @llvm.stackrestore( i8* %tmp1356 )
918         call void @llvm.stackrestore( i8* %tmp1356 )
919         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr1737 )              ; <i32>:6 [#uses=0]
920         unreachable
921
922 eh_else1742:            ; preds = %cleanup1720, %unwind1419
923         %eh_selector.135972.1 = phi i32 [ %eh_select1422, %unwind1419 ], [ %eh_selector.185993.1, %cleanup1720 ]                ; <i32> [#uses=1]
924         %eh_exception.135974.1 = phi i8* [ %eh_ptr1420, %unwind1419 ], [ %eh_exception.185994.1, %cleanup1720 ]         ; <i8*> [#uses=4]
925         %eh_typeid1743 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
926         %tmp1745 = icmp eq i32 %eh_selector.135972.1, %eh_typeid1743            ; <i1> [#uses=1]
927         br i1 %tmp1745, label %eh_then1746, label %cleanup1771
928
929 eh_then1746:            ; preds = %eh_else1742
930         invoke void @__gnat_begin_handler( i8* %eh_exception.135974.1 )
931                         to label %invcont1752 unwind label %unwind1750
932
933 unwind1750:             ; preds = %invcont1754, %invcont1752, %eh_then1746
934         %eh_ptr1751 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
935         invoke void @__gnat_end_handler( i8* %eh_exception.135974.1 )
936                         to label %cleanup1771 unwind label %unwind1736
937
938 invcont1752:            ; preds = %eh_then1746
939         %tmp1753 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
940         invoke void %tmp1753( )
941                         to label %invcont1754 unwind label %unwind1750
942
943 invcont1754:            ; preds = %invcont1752
944         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str13 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
945                         to label %cleanup1763 unwind label %unwind1750
946
947 cleanup1763:            ; preds = %invcont1754
948         invoke void @__gnat_end_handler( i8* %eh_exception.135974.1 )
949                         to label %cleanup1773 unwind label %unwind1736
950
951 cleanup1771:            ; preds = %unwind1750, %eh_else1742, %unwind1728
952         %eh_exception.20 = phi i8* [ %eh_ptr1729, %unwind1728 ], [ %eh_exception.135974.1, %eh_else1742 ], [ %eh_ptr1751, %unwind1750 ]         ; <i8*> [#uses=1]
953         call void @llvm.stackrestore( i8* %tmp1356 )
954         call void @llvm.stackrestore( i8* %tmp1356 )
955         call i32 (...)* @_Unwind_Resume( i8* %eh_exception.20 )         ; <i32>:7 [#uses=0]
956         unreachable
957
958 cleanup1773:            ; preds = %cleanup1763, %cleanup1734, %cleanup1702
959         call void @llvm.stackrestore( i8* %tmp1356 )
960         call void @llvm.stackrestore( i8* %tmp1356 )
961         %tmp1780 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=6]
962         %tmp17811782 = and i32 %tmp150, 255             ; <i32> [#uses=4]
963         %tmp18071808 = and i32 %tmp286, 255             ; <i32> [#uses=2]
964         %tmp1811 = add i32 %tmp17811782, -1             ; <i32> [#uses=2]
965         %tmp1812 = icmp sge i32 %tmp18071808, %tmp1811          ; <i1> [#uses=1]
966         %max1813 = select i1 %tmp1812, i32 %tmp18071808, i32 %tmp1811           ; <i32> [#uses=1]
967         %tmp1816 = sub i32 %max1813, %tmp17811782               ; <i32> [#uses=1]
968         %tmp1817 = add i32 %tmp1816, 1          ; <i32> [#uses=2]
969         %tmp1818 = icmp sgt i32 %tmp1817, -1            ; <i1> [#uses=1]
970         %max1819 = select i1 %tmp1818, i32 %tmp1817, i32 0              ; <i32> [#uses=3]
971         %tmp1821 = alloca i8, i32 %max1819              ; <i8*> [#uses=2]
972         %tmp1863 = alloca i8, i32 %max1819              ; <i8*> [#uses=3]
973         %tmp1870 = icmp ugt i8 %tmp170171, %tmp306307           ; <i1> [#uses=1]
974         br i1 %tmp1870, label %cond_next1900, label %bb1875
975
976 bb1875:         ; preds = %cleanup1773
977         store i8 %tmp238239, i8* %tmp1863
978         %tmp1884 = icmp eq i8 %tmp306307, %tmp170171            ; <i1> [#uses=1]
979         br i1 %tmp1884, label %cond_next1900, label %cond_next1888.preheader
980
981 cond_next1888.preheader:                ; preds = %bb1875
982         %J77b.26000.2 = add i8 %tmp170171, 1            ; <i8> [#uses=1]
983         br label %cond_next1888
984
985 cond_next1888:          ; preds = %cond_next1888, %cond_next1888.preheader
986         %indvar6245 = phi i8 [ 0, %cond_next1888.preheader ], [ %indvar.next14, %cond_next1888 ]                ; <i8> [#uses=2]
987         %tmp1890 = add i8 %J77b.26000.2, %indvar6245            ; <i8> [#uses=2]
988         %tmp187618776004 = zext i8 %tmp1890 to i32              ; <i32> [#uses=1]
989         %tmp18796005 = sub i32 %tmp187618776004, %tmp17811782           ; <i32> [#uses=1]
990         %tmp18806006 = getelementptr i8* %tmp1863, i32 %tmp18796005             ; <i8*> [#uses=1]
991         store i8 %tmp238239, i8* %tmp18806006
992         %tmp18846008 = icmp eq i8 %tmp306307, %tmp1890          ; <i1> [#uses=1]
993         %indvar.next14 = add i8 %indvar6245, 1          ; <i8> [#uses=1]
994         br i1 %tmp18846008, label %cond_next1900, label %cond_next1888
995
996 unwind1895:             ; preds = %cleanup2300, %cleanup2284, %unwind2274, %cond_next2149, %cond_true1946
997         %eh_ptr1896 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
998         %eh_select1898 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr1896, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
999         %eh_typeid23196018 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
1000         %tmp23216020 = icmp eq i32 %eh_select1898, %eh_typeid23196018           ; <i1> [#uses=1]
1001         br i1 %tmp23216020, label %eh_then2322, label %eh_else2340
1002
1003 cond_next1900:          ; preds = %cond_next1888, %bb1875, %cleanup1773
1004         call void @llvm.memcpy.i32( i8* %tmp1821, i8* %tmp1863, i32 %max1819, i32 1 )
1005         ret void
1006
1007 cond_true1909:          ; No predecessors!
1008         %tmp1912 = icmp ult i8 %tmp170171, %tmp204205           ; <i1> [#uses=1]
1009         %tmp1916 = icmp ugt i8 %tmp238239, %tmp272273           ; <i1> [#uses=1]
1010         %tmp1920 = or i1 %tmp1916, %tmp1912             ; <i1> [#uses=0]
1011         ret void
1012
1013 cond_true1923:          ; No predecessors!
1014         ret void
1015
1016 cond_next1926:          ; No predecessors!
1017         %tmp1929.not = icmp uge i8 %tmp238239, %tmp170171               ; <i1> [#uses=1]
1018         %tmp1939 = icmp ugt i8 %tmp238239, %tmp306307           ; <i1> [#uses=2]
1019         %bothcond = and i1 %tmp1939, %tmp1929.not               ; <i1> [#uses=0]
1020         ret void
1021
1022 cond_true1946:          ; No predecessors!
1023         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 162 )
1024                         to label %UnifiedUnreachableBlock34 unwind label %unwind1895
1025
1026 cond_next2149:          ; No predecessors!
1027         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp46 sret  )
1028                         to label %invcont2150 unwind label %unwind1895
1029
1030 invcont2150:            ; preds = %cond_next2149
1031         %tmp2153 = getelementptr %struct.system__secondary_stack__mark_id* %tmp46, i32 0, i32 0         ; <i8**> [#uses=1]
1032         %tmp2154 = load i8** %tmp2153           ; <i8*> [#uses=3]
1033         %tmp2156 = getelementptr %struct.system__secondary_stack__mark_id* %tmp46, i32 0, i32 1         ; <i32*> [#uses=1]
1034         %tmp2157 = load i32* %tmp2156           ; <i32> [#uses=3]
1035         %tmp2168 = or i1 %tmp1939, %tmp1401             ; <i1> [#uses=1]
1036         br i1 %tmp2168, label %cond_true2171, label %cond_next2189
1037
1038 cond_true2171:          ; preds = %invcont2150
1039         invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 165 )
1040                         to label %UnifiedUnreachableBlock34 unwind label %unwind2172
1041
1042 unwind2172:             ; preds = %invcont2236, %invcont2219, %bb2205, %bb2203, %cond_true2171
1043         %eh_ptr2173 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
1044         %eh_select2175 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2173, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1045         %eh_typeid2250 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1046         %tmp2252 = icmp eq i32 %eh_select2175, %eh_typeid2250           ; <i1> [#uses=1]
1047         br i1 %tmp2252, label %eh_then2253, label %cleanup2284
1048
1049 cond_next2189:          ; preds = %invcont2150
1050         %tmp21902191 = and i32 %tmp218, 255             ; <i32> [#uses=1]
1051         %tmp2193 = sub i32 %tmp21902191, %tmp17811782           ; <i32> [#uses=1]
1052         %tmp2194 = getelementptr i8* %tmp1821, i32 %tmp2193             ; <i8*> [#uses=1]
1053         %tmp2195 = load i8* %tmp2194            ; <i8> [#uses=2]
1054         %tmp2197 = icmp ugt i8 %tmp2195, 6              ; <i1> [#uses=1]
1055         br i1 %tmp2197, label %bb2203, label %bb2205
1056
1057 bb2203:         ; preds = %cond_next2189
1058         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 165 )
1059                         to label %UnifiedUnreachableBlock34 unwind label %unwind2172
1060
1061 bb2205:         ; preds = %cond_next2189
1062         %tmp22132214 = zext i8 %tmp2195 to i32          ; <i32> [#uses=1]
1063         invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp49 sret , i32 %tmp22132214, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) )
1064                         to label %invcont2219 unwind label %unwind2172
1065
1066 invcont2219:            ; preds = %bb2205
1067         %tmp2221 = getelementptr %struct.string___XUP* %tmp49, i32 0, i32 0             ; <i8**> [#uses=1]
1068         %tmp2222 = load i8** %tmp2221           ; <i8*> [#uses=1]
1069         %tmp22225781 = ptrtoint i8* %tmp2222 to i32             ; <i32> [#uses=1]
1070         %tmp222257815782 = zext i32 %tmp22225781 to i64         ; <i64> [#uses=1]
1071         %tmp2224 = getelementptr %struct.string___XUP* %tmp49, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1072         %tmp2225 = load %struct.string___XUB** %tmp2224         ; <%struct.string___XUB*> [#uses=1]
1073         %tmp22255777 = ptrtoint %struct.string___XUB* %tmp2225 to i32           ; <i32> [#uses=1]
1074         %tmp222557775778 = zext i32 %tmp22255777 to i64         ; <i64> [#uses=1]
1075         %tmp2225577757785779 = shl i64 %tmp222557775778, 32             ; <i64> [#uses=1]
1076         %tmp2225577757785779.ins = or i64 %tmp2225577757785779, %tmp222257815782                ; <i64> [#uses=1]
1077         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp52 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str14 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp2225577757785779.ins )
1078                         to label %invcont2236 unwind label %unwind2172
1079
1080 invcont2236:            ; preds = %invcont2219
1081         %tmp2238 = getelementptr %struct.string___XUP* %tmp52, i32 0, i32 0             ; <i8**> [#uses=1]
1082         %tmp2239 = load i8** %tmp2238           ; <i8*> [#uses=1]
1083         %tmp22395769 = ptrtoint i8* %tmp2239 to i32             ; <i32> [#uses=1]
1084         %tmp223957695770 = zext i32 %tmp22395769 to i64         ; <i64> [#uses=1]
1085         %tmp2241 = getelementptr %struct.string___XUP* %tmp52, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1086         %tmp2242 = load %struct.string___XUB** %tmp2241         ; <%struct.string___XUB*> [#uses=1]
1087         %tmp22425765 = ptrtoint %struct.string___XUB* %tmp2242 to i32           ; <i32> [#uses=1]
1088         %tmp224257655766 = zext i32 %tmp22425765 to i64         ; <i64> [#uses=1]
1089         %tmp2242576557665767 = shl i64 %tmp224257655766, 32             ; <i64> [#uses=1]
1090         %tmp2242576557665767.ins = or i64 %tmp2242576557665767, %tmp223957695770                ; <i64> [#uses=1]
1091         invoke void @report__failed( i64 %tmp2242576557665767.ins )
1092                         to label %cleanup2300 unwind label %unwind2172
1093
1094 eh_then2253:            ; preds = %unwind2172
1095         invoke void @__gnat_begin_handler( i8* %eh_ptr2173 )
1096                         to label %invcont2261 unwind label %unwind2257
1097
1098 unwind2257:             ; preds = %invcont2263, %invcont2261, %eh_then2253
1099         %eh_ptr2258 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
1100         %eh_select2260 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2258, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
1101         invoke void @__gnat_end_handler( i8* %eh_ptr2173 )
1102                         to label %cleanup2284 unwind label %unwind2274
1103
1104 invcont2261:            ; preds = %eh_then2253
1105         %tmp2262 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1106         invoke void %tmp2262( )
1107                         to label %invcont2263 unwind label %unwind2257
1108
1109 invcont2263:            ; preds = %invcont2261
1110         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @.str15 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)) )
1111                         to label %cleanup2272 unwind label %unwind2257
1112
1113 cleanup2272:            ; preds = %invcont2263
1114         invoke void @__gnat_end_handler( i8* %eh_ptr2173 )
1115                         to label %cleanup2300 unwind label %unwind2274
1116
1117 unwind2274:             ; preds = %cleanup2272, %unwind2257
1118         %eh_ptr2275 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
1119         %eh_select2277 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2275, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
1120         %tmp229055456023 = ptrtoint i8* %tmp2154 to i32         ; <i32> [#uses=1]
1121         %tmp2290554555466024 = zext i32 %tmp229055456023 to i64         ; <i64> [#uses=1]
1122         %tmp229355426025 = zext i32 %tmp2157 to i64             ; <i64> [#uses=1]
1123         %tmp2293554255436026 = shl i64 %tmp229355426025, 32             ; <i64> [#uses=1]
1124         %tmp229355425543.ins6027 = or i64 %tmp2293554255436026, %tmp2290554555466024            ; <i64> [#uses=1]
1125         invoke void @system__secondary_stack__ss_release( i64 %tmp229355425543.ins6027 )
1126                         to label %cleanup2318 unwind label %unwind1895
1127
1128 cleanup2284:            ; preds = %unwind2257, %unwind2172
1129         %eh_selector.24 = phi i32 [ %eh_select2175, %unwind2172 ], [ %eh_select2260, %unwind2257 ]              ; <i32> [#uses=1]
1130         %eh_exception.26 = phi i8* [ %eh_ptr2173, %unwind2172 ], [ %eh_ptr2258, %unwind2257 ]           ; <i8*> [#uses=1]
1131         %tmp22905545 = ptrtoint i8* %tmp2154 to i32             ; <i32> [#uses=1]
1132         %tmp229055455546 = zext i32 %tmp22905545 to i64         ; <i64> [#uses=1]
1133         %tmp22935542 = zext i32 %tmp2157 to i64         ; <i64> [#uses=1]
1134         %tmp229355425543 = shl i64 %tmp22935542, 32             ; <i64> [#uses=1]
1135         %tmp229355425543.ins = or i64 %tmp229355425543, %tmp229055455546                ; <i64> [#uses=1]
1136         invoke void @system__secondary_stack__ss_release( i64 %tmp229355425543.ins )
1137                         to label %cleanup2318 unwind label %unwind1895
1138
1139 cleanup2300:            ; preds = %cleanup2272, %invcont2236
1140         %tmp23075539 = ptrtoint i8* %tmp2154 to i32             ; <i32> [#uses=1]
1141         %tmp230755395540 = zext i32 %tmp23075539 to i64         ; <i64> [#uses=1]
1142         %tmp23105536 = zext i32 %tmp2157 to i64         ; <i64> [#uses=1]
1143         %tmp231055365537 = shl i64 %tmp23105536, 32             ; <i64> [#uses=1]
1144         %tmp231055365537.ins = or i64 %tmp231055365537, %tmp230755395540                ; <i64> [#uses=1]
1145         invoke void @system__secondary_stack__ss_release( i64 %tmp231055365537.ins )
1146                         to label %cleanup2371 unwind label %unwind1895
1147
1148 cleanup2318:            ; preds = %cleanup2284, %unwind2274
1149         %eh_selector.246021.1 = phi i32 [ %eh_select2277, %unwind2274 ], [ %eh_selector.24, %cleanup2284 ]              ; <i32> [#uses=2]
1150         %eh_exception.266022.1 = phi i8* [ %eh_ptr2275, %unwind2274 ], [ %eh_exception.26, %cleanup2284 ]               ; <i8*> [#uses=2]
1151         %eh_typeid2319 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )         ; <i32> [#uses=1]
1152         %tmp2321 = icmp eq i32 %eh_selector.246021.1, %eh_typeid2319            ; <i1> [#uses=1]
1153         br i1 %tmp2321, label %eh_then2322, label %eh_else2340
1154
1155 eh_then2322:            ; preds = %cleanup2318, %unwind1895
1156         %eh_exception.216011.0 = phi i8* [ %eh_ptr1896, %unwind1895 ], [ %eh_exception.266022.1, %cleanup2318 ]         ; <i8*> [#uses=3]
1157         invoke void @__gnat_begin_handler( i8* %eh_exception.216011.0 )
1158                         to label %invcont2328 unwind label %unwind2326
1159
1160 unwind2326:             ; preds = %invcont2328, %eh_then2322
1161         %eh_ptr2327 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1162         invoke void @__gnat_end_handler( i8* %eh_exception.216011.0 )
1163                         to label %cleanup2369 unwind label %unwind2334
1164
1165 invcont2328:            ; preds = %eh_then2322
1166         %tmp2329 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1167         invoke void %tmp2329( )
1168                         to label %cleanup2332 unwind label %unwind2326
1169
1170 cleanup2332:            ; preds = %invcont2328
1171         invoke void @__gnat_end_handler( i8* %eh_exception.216011.0 )
1172                         to label %cleanup2371 unwind label %unwind2334
1173
1174 unwind2334:             ; preds = %cleanup2361, %unwind2348, %cleanup2332, %unwind2326
1175         %eh_ptr2335 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1176         call void @llvm.stackrestore( i8* %tmp1780 )
1177         call void @llvm.stackrestore( i8* %tmp1780 )
1178         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2335 )              ; <i32>:8 [#uses=0]
1179         unreachable
1180
1181 eh_else2340:            ; preds = %cleanup2318, %unwind1895
1182         %eh_selector.196009.1 = phi i32 [ %eh_select1898, %unwind1895 ], [ %eh_selector.246021.1, %cleanup2318 ]                ; <i32> [#uses=1]
1183         %eh_exception.216011.1 = phi i8* [ %eh_ptr1896, %unwind1895 ], [ %eh_exception.266022.1, %cleanup2318 ]         ; <i8*> [#uses=4]
1184         %eh_typeid2341 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1185         %tmp2343 = icmp eq i32 %eh_selector.196009.1, %eh_typeid2341            ; <i1> [#uses=1]
1186         br i1 %tmp2343, label %eh_then2344, label %cleanup2369
1187
1188 eh_then2344:            ; preds = %eh_else2340
1189         invoke void @__gnat_begin_handler( i8* %eh_exception.216011.1 )
1190                         to label %invcont2350 unwind label %unwind2348
1191
1192 unwind2348:             ; preds = %invcont2352, %invcont2350, %eh_then2344
1193         %eh_ptr2349 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1194         invoke void @__gnat_end_handler( i8* %eh_exception.216011.1 )
1195                         to label %cleanup2369 unwind label %unwind2334
1196
1197 invcont2350:            ; preds = %eh_then2344
1198         %tmp2351 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1199         invoke void %tmp2351( )
1200                         to label %invcont2352 unwind label %unwind2348
1201
1202 invcont2352:            ; preds = %invcont2350
1203         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str16 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
1204                         to label %cleanup2361 unwind label %unwind2348
1205
1206 cleanup2361:            ; preds = %invcont2352
1207         invoke void @__gnat_end_handler( i8* %eh_exception.216011.1 )
1208                         to label %cleanup2371 unwind label %unwind2334
1209
1210 cleanup2369:            ; preds = %unwind2348, %eh_else2340, %unwind2326
1211         %eh_exception.28 = phi i8* [ %eh_ptr2327, %unwind2326 ], [ %eh_exception.216011.1, %eh_else2340 ], [ %eh_ptr2349, %unwind2348 ]         ; <i8*> [#uses=1]
1212         call void @llvm.stackrestore( i8* %tmp1780 )
1213         call void @llvm.stackrestore( i8* %tmp1780 )
1214         call i32 (...)* @_Unwind_Resume( i8* %eh_exception.28 )         ; <i32>:9 [#uses=0]
1215         unreachable
1216
1217 cleanup2371:            ; preds = %cleanup2361, %cleanup2332, %cleanup2300
1218         call void @llvm.stackrestore( i8* %tmp1780 )
1219         call void @llvm.stackrestore( i8* %tmp1780 )
1220         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp55 sret  )
1221                         to label %invcont2382 unwind label %unwind2378
1222
1223 unwind2378:             ; preds = %cleanup2371
1224         %eh_ptr2379 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1225         %eh_select2381 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2379, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
1226         %eh_typeid26496037 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
1227         %tmp26516039 = icmp eq i32 %eh_select2381, %eh_typeid26496037           ; <i1> [#uses=1]
1228         br i1 %tmp26516039, label %eh_then2652, label %eh_else2666
1229
1230 invcont2382:            ; preds = %cleanup2371
1231         %tmp2385 = getelementptr %struct.system__secondary_stack__mark_id* %tmp55, i32 0, i32 0         ; <i8**> [#uses=1]
1232         %tmp2386 = load i8** %tmp2385           ; <i8*> [#uses=2]
1233         %tmp2388 = getelementptr %struct.system__secondary_stack__mark_id* %tmp55, i32 0, i32 1         ; <i32*> [#uses=1]
1234         %tmp2389 = load i32* %tmp2388           ; <i32> [#uses=2]
1235         %tmp2390 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=3]
1236         %tmp2393 = icmp ult i8 %tmp306307, %tmp170171           ; <i1> [#uses=1]
1237         br i1 %tmp2393, label %cond_next2417, label %cond_true2396
1238
1239 cond_true2396:          ; preds = %invcont2382
1240         %tmp2399 = icmp ult i8 %tmp170171, %tmp204205           ; <i1> [#uses=1]
1241         %tmp2403 = icmp ugt i8 %tmp306307, %tmp272273           ; <i1> [#uses=1]
1242         %tmp2407 = or i1 %tmp2403, %tmp2399             ; <i1> [#uses=1]
1243         br i1 %tmp2407, label %cond_true2410, label %cond_next2417
1244
1245 cond_true2410:          ; preds = %cond_true2396
1246         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 177 )
1247                         to label %UnifiedUnreachableBlock34 unwind label %unwind2411
1248
1249 unwind2411:             ; preds = %invcont2591, %invcont2574, %bb2560, %bb2558, %bb2524, %bb2506, %cond_true2410
1250         %eh_ptr2412 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1251         %eh_select2414 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2412, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
1252         %tmp26315527 = ptrtoint i8* %tmp2386 to i32             ; <i32> [#uses=1]
1253         %tmp263155275528 = zext i32 %tmp26315527 to i64         ; <i64> [#uses=1]
1254         %tmp26345524 = zext i32 %tmp2389 to i64         ; <i64> [#uses=1]
1255         %tmp263455245525 = shl i64 %tmp26345524, 32             ; <i64> [#uses=1]
1256         %tmp263455245525.ins = or i64 %tmp263455245525, %tmp263155275528                ; <i64> [#uses=1]
1257         invoke void @system__secondary_stack__ss_release( i64 %tmp263455245525.ins )
1258                         to label %cleanup2644 unwind label %unwind2618
1259
1260 cond_next2417:          ; preds = %cond_true2396, %invcont2382
1261         %tmp2493 = icmp ugt i8 %tmp170171, %tmp238239           ; <i1> [#uses=1]
1262         %tmp2500 = icmp ugt i8 %tmp238239, %tmp306307           ; <i1> [#uses=1]
1263         %bothcond5903 = or i1 %tmp2500, %tmp2493                ; <i1> [#uses=1]
1264         br i1 %bothcond5903, label %bb2506, label %cond_next2515
1265
1266 bb2506:         ; preds = %cond_next2417
1267         invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 180 )
1268                         to label %UnifiedUnreachableBlock34 unwind label %unwind2411
1269
1270 cond_next2515:          ; preds = %cond_next2417
1271         br i1 %tmp240, label %bb2524, label %bb2526
1272
1273 bb2524:         ; preds = %cond_next2515
1274         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 180 )
1275                         to label %UnifiedUnreachableBlock34 unwind label %unwind2411
1276
1277 bb2526:         ; preds = %cond_next2515
1278         br i1 %tmp274, label %bb2558, label %bb2560
1279
1280 bb2558:         ; preds = %bb2526
1281         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 182 )
1282                         to label %UnifiedUnreachableBlock34 unwind label %unwind2411
1283
1284 bb2560:         ; preds = %bb2526
1285         invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp58 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) )
1286                         to label %invcont2574 unwind label %unwind2411
1287
1288 invcont2574:            ; preds = %bb2560
1289         %tmp2576 = getelementptr %struct.string___XUP* %tmp58, i32 0, i32 0             ; <i8**> [#uses=1]
1290         %tmp2577 = load i8** %tmp2576           ; <i8*> [#uses=1]
1291         %tmp25775747 = ptrtoint i8* %tmp2577 to i32             ; <i32> [#uses=1]
1292         %tmp257757475748 = zext i32 %tmp25775747 to i64         ; <i64> [#uses=1]
1293         %tmp2579 = getelementptr %struct.string___XUP* %tmp58, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1294         %tmp2580 = load %struct.string___XUB** %tmp2579         ; <%struct.string___XUB*> [#uses=1]
1295         %tmp25805743 = ptrtoint %struct.string___XUB* %tmp2580 to i32           ; <i32> [#uses=1]
1296         %tmp258057435744 = zext i32 %tmp25805743 to i64         ; <i64> [#uses=1]
1297         %tmp2580574357445745 = shl i64 %tmp258057435744, 32             ; <i64> [#uses=1]
1298         %tmp2580574357445745.ins = or i64 %tmp2580574357445745, %tmp257757475748                ; <i64> [#uses=1]
1299         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp61 sret , i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str17 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)), i64 %tmp2580574357445745.ins )
1300                         to label %invcont2591 unwind label %unwind2411
1301
1302 invcont2591:            ; preds = %invcont2574
1303         %tmp2593 = getelementptr %struct.string___XUP* %tmp61, i32 0, i32 0             ; <i8**> [#uses=1]
1304         %tmp2594 = load i8** %tmp2593           ; <i8*> [#uses=1]
1305         %tmp25945735 = ptrtoint i8* %tmp2594 to i32             ; <i32> [#uses=1]
1306         %tmp259457355736 = zext i32 %tmp25945735 to i64         ; <i64> [#uses=1]
1307         %tmp2596 = getelementptr %struct.string___XUP* %tmp61, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1308         %tmp2597 = load %struct.string___XUB** %tmp2596         ; <%struct.string___XUB*> [#uses=1]
1309         %tmp25975731 = ptrtoint %struct.string___XUB* %tmp2597 to i32           ; <i32> [#uses=1]
1310         %tmp259757315732 = zext i32 %tmp25975731 to i64         ; <i64> [#uses=1]
1311         %tmp2597573157325733 = shl i64 %tmp259757315732, 32             ; <i64> [#uses=1]
1312         %tmp2597573157325733.ins = or i64 %tmp2597573157325733, %tmp259457355736                ; <i64> [#uses=1]
1313         invoke void @report__failed( i64 %tmp2597573157325733.ins )
1314                         to label %cleanup2604 unwind label %unwind2411
1315
1316 cleanup2604:            ; preds = %invcont2591
1317         %tmp26105533 = ptrtoint i8* %tmp2386 to i32             ; <i32> [#uses=1]
1318         %tmp261055335534 = zext i32 %tmp26105533 to i64         ; <i64> [#uses=1]
1319         %tmp26135530 = zext i32 %tmp2389 to i64         ; <i64> [#uses=1]
1320         %tmp261355305531 = shl i64 %tmp26135530, 32             ; <i64> [#uses=1]
1321         %tmp261355305531.ins = or i64 %tmp261355305531, %tmp261055335534                ; <i64> [#uses=1]
1322         invoke void @system__secondary_stack__ss_release( i64 %tmp261355305531.ins )
1323                         to label %cleanup2642 unwind label %unwind2618
1324
1325 unwind2618:             ; preds = %cleanup2604, %unwind2411
1326         %eh_ptr2619 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1327         %eh_select2621 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2619, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
1328         call void @llvm.stackrestore( i8* %tmp2390 )
1329         %eh_typeid26493 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )                ; <i32> [#uses=1]
1330         %tmp26514 = icmp eq i32 %eh_select2621, %eh_typeid26493         ; <i1> [#uses=1]
1331         br i1 %tmp26514, label %eh_then2652, label %eh_else2666
1332
1333 cleanup2642:            ; preds = %cleanup2604
1334         call void @llvm.stackrestore( i8* %tmp2390 )
1335         %tmp26946042 = icmp ult i8 %tmp238239, %tmp137138               ; <i1> [#uses=1]
1336         br i1 %tmp26946042, label %cond_next2718, label %cond_true2697
1337
1338 cleanup2644:            ; preds = %unwind2411
1339         call void @llvm.stackrestore( i8* %tmp2390 )
1340         %eh_typeid2649 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )         ; <i32> [#uses=1]
1341         %tmp2651 = icmp eq i32 %eh_select2414, %eh_typeid2649           ; <i1> [#uses=1]
1342         br i1 %tmp2651, label %eh_then2652, label %eh_else2666
1343
1344 eh_then2652:            ; preds = %cleanup2644, %unwind2618, %unwind2378
1345         %eh_exception.296030.0 = phi i8* [ %eh_ptr2379, %unwind2378 ], [ %eh_ptr2619, %unwind2618 ], [ %eh_ptr2412, %cleanup2644 ]              ; <i8*> [#uses=3]
1346         invoke void @__gnat_begin_handler( i8* %eh_exception.296030.0 )
1347                         to label %invcont2658 unwind label %unwind2656
1348
1349 unwind2656:             ; preds = %invcont2658, %eh_then2652
1350         %eh_ptr2657 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1351         call void @__gnat_end_handler( i8* %eh_exception.296030.0 )
1352         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2657 )              ; <i32>:10 [#uses=0]
1353         unreachable
1354
1355 invcont2658:            ; preds = %eh_then2652
1356         %tmp2659 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1357         invoke void %tmp2659( )
1358                         to label %cleanup2662 unwind label %unwind2656
1359
1360 cleanup2662:            ; preds = %invcont2658
1361         call void @__gnat_end_handler( i8* %eh_exception.296030.0 )
1362         %tmp26946043 = icmp ult i8 %tmp238239, %tmp137138               ; <i1> [#uses=1]
1363         br i1 %tmp26946043, label %cond_next2718, label %cond_true2697
1364
1365 eh_else2666:            ; preds = %cleanup2644, %unwind2618, %unwind2378
1366         %eh_selector.256028.1 = phi i32 [ %eh_select2381, %unwind2378 ], [ %eh_select2621, %unwind2618 ], [ %eh_select2414, %cleanup2644 ]              ; <i32> [#uses=1]
1367         %eh_exception.296030.1 = phi i8* [ %eh_ptr2379, %unwind2378 ], [ %eh_ptr2619, %unwind2618 ], [ %eh_ptr2412, %cleanup2644 ]              ; <i8*> [#uses=4]
1368         %eh_typeid2667 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1369         %tmp2669 = icmp eq i32 %eh_selector.256028.1, %eh_typeid2667            ; <i1> [#uses=1]
1370         br i1 %tmp2669, label %eh_then2670, label %Unwind
1371
1372 eh_then2670:            ; preds = %eh_else2666
1373         invoke void @__gnat_begin_handler( i8* %eh_exception.296030.1 )
1374                         to label %invcont2676 unwind label %unwind2674
1375
1376 unwind2674:             ; preds = %invcont2678, %invcont2676, %eh_then2670
1377         %eh_ptr2675 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1378         call void @__gnat_end_handler( i8* %eh_exception.296030.1 )
1379         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr2675 )              ; <i32>:11 [#uses=0]
1380         unreachable
1381
1382 invcont2676:            ; preds = %eh_then2670
1383         %tmp2677 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1384         invoke void %tmp2677( )
1385                         to label %invcont2678 unwind label %unwind2674
1386
1387 invcont2678:            ; preds = %invcont2676
1388         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([24 x i8]* @.str18 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.35.915 to i32) to i64), i64 32)) )
1389                         to label %cleanup2687 unwind label %unwind2674
1390
1391 cleanup2687:            ; preds = %invcont2678
1392         call void @__gnat_end_handler( i8* %eh_exception.296030.1 )
1393         %tmp2694 = icmp ult i8 %tmp238239, %tmp137138           ; <i1> [#uses=1]
1394         br i1 %tmp2694, label %cond_next2718, label %cond_true2697
1395
1396 cond_true2697:          ; preds = %cleanup2687, %cleanup2662, %cleanup2642
1397         %tmp2700 = icmp ult i8 %tmp137138, %tmp204205           ; <i1> [#uses=1]
1398         %tmp2704 = icmp ugt i8 %tmp238239, %tmp272273           ; <i1> [#uses=1]
1399         %tmp2708 = or i1 %tmp2704, %tmp2700             ; <i1> [#uses=1]
1400         br i1 %tmp2708, label %cond_true2711, label %cond_next2718
1401
1402 cond_true2711:          ; preds = %cond_true2697
1403         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 192 )
1404                         to label %UnifiedUnreachableBlock34 unwind label %unwind2712
1405
1406 unwind2712:             ; preds = %cleanup2990, %unwind2975, %cond_true2711
1407         %eh_ptr2713 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1408         %eh_select2715 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2713, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
1409         %eh_typeid29996053 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
1410         %tmp30016055 = icmp eq i32 %eh_select2715, %eh_typeid29996053           ; <i1> [#uses=1]
1411         br i1 %tmp30016055, label %eh_then3002, label %eh_else3016
1412
1413 cond_next2718:          ; preds = %cond_true2697, %cleanup2687, %cleanup2662, %cleanup2642
1414         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp63 sret  )
1415                         to label %invcont2766 unwind label %unwind2762
1416
1417 unwind2762:             ; preds = %cond_next2718
1418         %eh_ptr2763 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1419         %eh_select2765 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2763, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1420         %eh_typeid29686060 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )             ; <i32> [#uses=1]
1421         %tmp29706061 = icmp eq i32 %eh_select2765, %eh_typeid29686060           ; <i1> [#uses=1]
1422         br i1 %tmp29706061, label %eh_then2971, label %cleanup2998
1423
1424 invcont2766:            ; preds = %cond_next2718
1425         %tmp2769 = getelementptr %struct.system__secondary_stack__mark_id* %tmp63, i32 0, i32 0         ; <i8**> [#uses=1]
1426         %tmp2770 = load i8** %tmp2769           ; <i8*> [#uses=2]
1427         %tmp2772 = getelementptr %struct.system__secondary_stack__mark_id* %tmp63, i32 0, i32 1         ; <i32*> [#uses=1]
1428         %tmp2773 = load i32* %tmp2772           ; <i32> [#uses=2]
1429         %tmp2774 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=3]
1430         %tmp2808 = icmp ugt i8 %tmp137138, %tmp204205           ; <i1> [#uses=1]
1431         %tmp2815 = icmp ult i8 %tmp238239, %tmp204205           ; <i1> [#uses=1]
1432         %bothcond5904 = or i1 %tmp2815, %tmp2808                ; <i1> [#uses=1]
1433         br i1 %bothcond5904, label %bb2821, label %cond_next2834
1434
1435 bb2821:         ; preds = %invcont2766
1436         invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 198 )
1437                         to label %UnifiedUnreachableBlock34 unwind label %unwind2822
1438
1439 unwind2822:             ; preds = %invcont2910, %invcont2893, %bb2879, %bb2877, %bb2843, %bb2821
1440         %eh_ptr2823 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1441         %eh_select2825 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2823, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1442         %tmp29295521 = ptrtoint i8* %tmp2770 to i32             ; <i32> [#uses=1]
1443         %tmp292955215522 = zext i32 %tmp29295521 to i64         ; <i64> [#uses=1]
1444         %tmp29325518 = zext i32 %tmp2773 to i64         ; <i64> [#uses=1]
1445         %tmp293255185519 = shl i64 %tmp29325518, 32             ; <i64> [#uses=1]
1446         %tmp293255185519.ins = or i64 %tmp293255185519, %tmp292955215522                ; <i64> [#uses=1]
1447         invoke void @system__secondary_stack__ss_release( i64 %tmp293255185519.ins )
1448                         to label %cleanup2963 unwind label %unwind2937
1449
1450 cond_next2834:          ; preds = %invcont2766
1451         br i1 %tmp206, label %bb2843, label %bb2845
1452
1453 bb2843:         ; preds = %cond_next2834
1454         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 198 )
1455                         to label %UnifiedUnreachableBlock34 unwind label %unwind2822
1456
1457 bb2845:         ; preds = %cond_next2834
1458         br i1 %tmp274, label %bb2877, label %bb2879
1459
1460 bb2877:         ; preds = %bb2845
1461         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 200 )
1462                         to label %UnifiedUnreachableBlock34 unwind label %unwind2822
1463
1464 bb2879:         ; preds = %bb2845
1465         invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp66 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) )
1466                         to label %invcont2893 unwind label %unwind2822
1467
1468 invcont2893:            ; preds = %bb2879
1469         %tmp2895 = getelementptr %struct.string___XUP* %tmp66, i32 0, i32 0             ; <i8**> [#uses=1]
1470         %tmp2896 = load i8** %tmp2895           ; <i8*> [#uses=1]
1471         %tmp28965718 = ptrtoint i8* %tmp2896 to i32             ; <i32> [#uses=1]
1472         %tmp289657185719 = zext i32 %tmp28965718 to i64         ; <i64> [#uses=1]
1473         %tmp2898 = getelementptr %struct.string___XUP* %tmp66, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1474         %tmp2899 = load %struct.string___XUB** %tmp2898         ; <%struct.string___XUB*> [#uses=1]
1475         %tmp28995714 = ptrtoint %struct.string___XUB* %tmp2899 to i32           ; <i32> [#uses=1]
1476         %tmp289957145715 = zext i32 %tmp28995714 to i64         ; <i64> [#uses=1]
1477         %tmp2899571457155716 = shl i64 %tmp289957145715, 32             ; <i64> [#uses=1]
1478         %tmp2899571457155716.ins = or i64 %tmp2899571457155716, %tmp289657185719                ; <i64> [#uses=1]
1479         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp69 sret , i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str19 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)), i64 %tmp2899571457155716.ins )
1480                         to label %invcont2910 unwind label %unwind2822
1481
1482 invcont2910:            ; preds = %invcont2893
1483         %tmp2912 = getelementptr %struct.string___XUP* %tmp69, i32 0, i32 0             ; <i8**> [#uses=1]
1484         %tmp2913 = load i8** %tmp2912           ; <i8*> [#uses=1]
1485         %tmp29135706 = ptrtoint i8* %tmp2913 to i32             ; <i32> [#uses=1]
1486         %tmp291357065707 = zext i32 %tmp29135706 to i64         ; <i64> [#uses=1]
1487         %tmp2915 = getelementptr %struct.string___XUP* %tmp69, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1488         %tmp2916 = load %struct.string___XUB** %tmp2915         ; <%struct.string___XUB*> [#uses=1]
1489         %tmp29165702 = ptrtoint %struct.string___XUB* %tmp2916 to i32           ; <i32> [#uses=1]
1490         %tmp291657025703 = zext i32 %tmp29165702 to i64         ; <i64> [#uses=1]
1491         %tmp2916570257035704 = shl i64 %tmp291657025703, 32             ; <i64> [#uses=1]
1492         %tmp2916570257035704.ins = or i64 %tmp2916570257035704, %tmp291357065707                ; <i64> [#uses=1]
1493         invoke void @report__failed( i64 %tmp2916570257035704.ins )
1494                         to label %cleanup2943 unwind label %unwind2822
1495
1496 unwind2937:             ; preds = %cleanup2943, %unwind2822
1497         %eh_ptr2938 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1498         %eh_select2940 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2938, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1499         call void @llvm.stackrestore( i8* %tmp2774 )
1500         %eh_typeid29685 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )                ; <i32> [#uses=1]
1501         %tmp29706 = icmp eq i32 %eh_select2940, %eh_typeid29685         ; <i1> [#uses=1]
1502         br i1 %tmp29706, label %eh_then2971, label %cleanup2998
1503
1504 cleanup2943:            ; preds = %invcont2910
1505         %tmp29505515 = ptrtoint i8* %tmp2770 to i32             ; <i32> [#uses=1]
1506         %tmp295055155516 = zext i32 %tmp29505515 to i64         ; <i64> [#uses=1]
1507         %tmp29535512 = zext i32 %tmp2773 to i64         ; <i64> [#uses=1]
1508         %tmp295355125513 = shl i64 %tmp29535512, 32             ; <i64> [#uses=1]
1509         %tmp295355125513.ins = or i64 %tmp295355125513, %tmp295055155516                ; <i64> [#uses=1]
1510         invoke void @system__secondary_stack__ss_release( i64 %tmp295355125513.ins )
1511                         to label %cleanup2961 unwind label %unwind2937
1512
1513 cleanup2961:            ; preds = %cleanup2943
1514         call void @llvm.stackrestore( i8* %tmp2774 )
1515         %tmp3044.not6066 = icmp uge i8 %tmp272273, %tmp170171           ; <i1> [#uses=1]
1516         %tmp30506067 = icmp ult i8 %tmp170171, %tmp204205               ; <i1> [#uses=1]
1517         %bothcond59056068 = and i1 %tmp3044.not6066, %tmp30506067               ; <i1> [#uses=1]
1518         br i1 %bothcond59056068, label %cond_true3061, label %cond_next3068
1519
1520 cleanup2963:            ; preds = %unwind2822
1521         call void @llvm.stackrestore( i8* %tmp2774 )
1522         %eh_typeid2968 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1523         %tmp2970 = icmp eq i32 %eh_select2825, %eh_typeid2968           ; <i1> [#uses=1]
1524         br i1 %tmp2970, label %eh_then2971, label %cleanup2998
1525
1526 eh_then2971:            ; preds = %cleanup2963, %unwind2937, %unwind2762
1527         %eh_exception.356056.0 = phi i8* [ %eh_ptr2763, %unwind2762 ], [ %eh_ptr2938, %unwind2937 ], [ %eh_ptr2823, %cleanup2963 ]              ; <i8*> [#uses=3]
1528         invoke void @__gnat_begin_handler( i8* %eh_exception.356056.0 )
1529                         to label %invcont2979 unwind label %unwind2975
1530
1531 unwind2975:             ; preds = %invcont2981, %invcont2979, %eh_then2971
1532         %eh_ptr2976 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
1533         %eh_select2978 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr2976, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
1534         invoke void @__gnat_end_handler( i8* %eh_exception.356056.0 )
1535                         to label %cleanup2998 unwind label %unwind2712
1536
1537 invcont2979:            ; preds = %eh_then2971
1538         %tmp2980 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1539         invoke void %tmp2980( )
1540                         to label %invcont2981 unwind label %unwind2975
1541
1542 invcont2981:            ; preds = %invcont2979
1543         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([46 x i8]* @.str20 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.101.1473 to i32) to i64), i64 32)) )
1544                         to label %cleanup2990 unwind label %unwind2975
1545
1546 cleanup2990:            ; preds = %invcont2981
1547         invoke void @__gnat_end_handler( i8* %eh_exception.356056.0 )
1548                         to label %finally2997 unwind label %unwind2712
1549
1550 cleanup2998:            ; preds = %unwind2975, %cleanup2963, %unwind2937, %unwind2762
1551         %eh_selector.29 = phi i32 [ %eh_select2765, %unwind2762 ], [ %eh_select2940, %unwind2937 ], [ %eh_select2825, %cleanup2963 ], [ %eh_select2978, %unwind2975 ]           ; <i32> [#uses=2]
1552         %eh_exception.33 = phi i8* [ %eh_ptr2763, %unwind2762 ], [ %eh_ptr2938, %unwind2937 ], [ %eh_ptr2823, %cleanup2963 ], [ %eh_ptr2976, %unwind2975 ]              ; <i8*> [#uses=2]
1553         %eh_typeid2999 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )         ; <i32> [#uses=1]
1554         %tmp3001 = icmp eq i32 %eh_selector.29, %eh_typeid2999          ; <i1> [#uses=1]
1555         br i1 %tmp3001, label %eh_then3002, label %eh_else3016
1556
1557 eh_then3002:            ; preds = %cleanup2998, %unwind2712
1558         %eh_exception.336046.0 = phi i8* [ %eh_ptr2713, %unwind2712 ], [ %eh_exception.33, %cleanup2998 ]               ; <i8*> [#uses=3]
1559         invoke void @__gnat_begin_handler( i8* %eh_exception.336046.0 )
1560                         to label %invcont3008 unwind label %unwind3006
1561
1562 unwind3006:             ; preds = %invcont3008, %eh_then3002
1563         %eh_ptr3007 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1564         call void @__gnat_end_handler( i8* %eh_exception.336046.0 )
1565         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3007 )              ; <i32>:12 [#uses=0]
1566         unreachable
1567
1568 invcont3008:            ; preds = %eh_then3002
1569         %tmp3009 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1570         invoke void %tmp3009( )
1571                         to label %cleanup3012 unwind label %unwind3006
1572
1573 cleanup3012:            ; preds = %invcont3008
1574         call void @__gnat_end_handler( i8* %eh_exception.336046.0 )
1575         %tmp3044.not6069 = icmp uge i8 %tmp272273, %tmp170171           ; <i1> [#uses=1]
1576         %tmp30506070 = icmp ult i8 %tmp170171, %tmp204205               ; <i1> [#uses=1]
1577         %bothcond59056071 = and i1 %tmp3044.not6069, %tmp30506070               ; <i1> [#uses=1]
1578         br i1 %bothcond59056071, label %cond_true3061, label %cond_next3068
1579
1580 eh_else3016:            ; preds = %cleanup2998, %unwind2712
1581         %eh_selector.296044.1 = phi i32 [ %eh_select2715, %unwind2712 ], [ %eh_selector.29, %cleanup2998 ]              ; <i32> [#uses=1]
1582         %eh_exception.336046.1 = phi i8* [ %eh_ptr2713, %unwind2712 ], [ %eh_exception.33, %cleanup2998 ]               ; <i8*> [#uses=4]
1583         %eh_typeid3017 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1584         %tmp3019 = icmp eq i32 %eh_selector.296044.1, %eh_typeid3017            ; <i1> [#uses=1]
1585         br i1 %tmp3019, label %eh_then3020, label %Unwind
1586
1587 eh_then3020:            ; preds = %eh_else3016
1588         invoke void @__gnat_begin_handler( i8* %eh_exception.336046.1 )
1589                         to label %invcont3026 unwind label %unwind3024
1590
1591 unwind3024:             ; preds = %invcont3028, %invcont3026, %eh_then3020
1592         %eh_ptr3025 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1593         call void @__gnat_end_handler( i8* %eh_exception.336046.1 )
1594         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3025 )              ; <i32>:13 [#uses=0]
1595         unreachable
1596
1597 invcont3026:            ; preds = %eh_then3020
1598         %tmp3027 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1599         invoke void %tmp3027( )
1600                         to label %invcont3028 unwind label %unwind3024
1601
1602 invcont3028:            ; preds = %invcont3026
1603         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([25 x i8]* @.str21 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.104.1478 to i32) to i64), i64 32)) )
1604                         to label %cleanup3037 unwind label %unwind3024
1605
1606 cleanup3037:            ; preds = %invcont3028
1607         call void @__gnat_end_handler( i8* %eh_exception.336046.1 )
1608         br label %finally2997
1609
1610 finally2997:            ; preds = %cleanup3037, %cleanup2990
1611         %tmp3044.not = icmp uge i8 %tmp272273, %tmp170171               ; <i1> [#uses=1]
1612         %tmp3050 = icmp ult i8 %tmp170171, %tmp204205           ; <i1> [#uses=1]
1613         %bothcond5905 = and i1 %tmp3044.not, %tmp3050           ; <i1> [#uses=1]
1614         br i1 %bothcond5905, label %cond_true3061, label %cond_next3068
1615
1616 cond_true3061:          ; preds = %finally2997, %cleanup3012, %cleanup2961
1617         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 214 )
1618                         to label %UnifiedUnreachableBlock34 unwind label %unwind3062
1619
1620 unwind3062:             ; preds = %cleanup3340, %unwind3325, %cond_true3061
1621         %eh_ptr3063 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1622         %eh_select3065 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3063, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=2]
1623         %eh_typeid33496081 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )             ; <i32> [#uses=1]
1624         %tmp33516083 = icmp eq i32 %eh_select3065, %eh_typeid33496081           ; <i1> [#uses=1]
1625         br i1 %tmp33516083, label %eh_then3352, label %eh_else3366
1626
1627 cond_next3068:          ; preds = %finally2997, %cleanup3012, %cleanup2961
1628         invoke void @system__secondary_stack__ss_mark( %struct.system__secondary_stack__mark_id* %tmp72 sret  )
1629                         to label %invcont3116 unwind label %unwind3112
1630
1631 unwind3112:             ; preds = %cond_next3068
1632         %eh_ptr3113 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1633         %eh_select3115 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3113, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1634         %eh_typeid33186088 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )             ; <i32> [#uses=1]
1635         %tmp33206089 = icmp eq i32 %eh_select3115, %eh_typeid33186088           ; <i1> [#uses=1]
1636         br i1 %tmp33206089, label %eh_then3321, label %cleanup3348
1637
1638 invcont3116:            ; preds = %cond_next3068
1639         %tmp3119 = getelementptr %struct.system__secondary_stack__mark_id* %tmp72, i32 0, i32 0         ; <i8**> [#uses=1]
1640         %tmp3120 = load i8** %tmp3119           ; <i8*> [#uses=2]
1641         %tmp3122 = getelementptr %struct.system__secondary_stack__mark_id* %tmp72, i32 0, i32 1         ; <i32*> [#uses=1]
1642         %tmp3123 = load i32* %tmp3122           ; <i32> [#uses=2]
1643         %tmp3124 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=3]
1644         %tmp3158 = icmp ugt i8 %tmp170171, %tmp204205           ; <i1> [#uses=1]
1645         %bothcond5906 = or i1 %tmp364, %tmp3158         ; <i1> [#uses=1]
1646         br i1 %bothcond5906, label %bb3171, label %cond_next3184
1647
1648 bb3171:         ; preds = %invcont3116
1649         invoke void @__gnat_rcheck_05( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 220 )
1650                         to label %UnifiedUnreachableBlock34 unwind label %unwind3172
1651
1652 unwind3172:             ; preds = %invcont3260, %invcont3243, %bb3229, %bb3227, %bb3193, %bb3171
1653         %eh_ptr3173 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1654         %eh_select3175 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3173, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1655         %tmp32795509 = ptrtoint i8* %tmp3120 to i32             ; <i32> [#uses=1]
1656         %tmp327955095510 = zext i32 %tmp32795509 to i64         ; <i64> [#uses=1]
1657         %tmp32825506 = zext i32 %tmp3123 to i64         ; <i64> [#uses=1]
1658         %tmp328255065507 = shl i64 %tmp32825506, 32             ; <i64> [#uses=1]
1659         %tmp328255065507.ins = or i64 %tmp328255065507, %tmp327955095510                ; <i64> [#uses=1]
1660         invoke void @system__secondary_stack__ss_release( i64 %tmp328255065507.ins )
1661                         to label %cleanup3313 unwind label %unwind3287
1662
1663 cond_next3184:          ; preds = %invcont3116
1664         br i1 %tmp206, label %bb3193, label %bb3195
1665
1666 bb3193:         ; preds = %cond_next3184
1667         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 220 )
1668                         to label %UnifiedUnreachableBlock34 unwind label %unwind3172
1669
1670 bb3195:         ; preds = %cond_next3184
1671         br i1 %tmp274, label %bb3227, label %bb3229
1672
1673 bb3227:         ; preds = %bb3195
1674         invoke void @__gnat_rcheck_06( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 222 )
1675                         to label %UnifiedUnreachableBlock34 unwind label %unwind3172
1676
1677 bb3229:         ; preds = %bb3195
1678         invoke void @system__img_enum__image_enumeration_8( %struct.string___XUP* %tmp75 sret , i32 %tmp13831384, i64 or (i64 zext (i32 ptrtoint ([28 x i8]* @weekS.154 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.32.910 to i32) to i64), i64 32)), i8* getelementptr ([8 x i8]* @weekN.179, i32 0, i32 0) )
1679                         to label %invcont3243 unwind label %unwind3172
1680
1681 invcont3243:            ; preds = %bb3229
1682         %tmp3245 = getelementptr %struct.string___XUP* %tmp75, i32 0, i32 0             ; <i8**> [#uses=1]
1683         %tmp3246 = load i8** %tmp3245           ; <i8*> [#uses=1]
1684         %tmp32465684 = ptrtoint i8* %tmp3246 to i32             ; <i32> [#uses=1]
1685         %tmp324656845685 = zext i32 %tmp32465684 to i64         ; <i64> [#uses=1]
1686         %tmp3248 = getelementptr %struct.string___XUP* %tmp75, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1687         %tmp3249 = load %struct.string___XUB** %tmp3248         ; <%struct.string___XUB*> [#uses=1]
1688         %tmp32495680 = ptrtoint %struct.string___XUB* %tmp3249 to i32           ; <i32> [#uses=1]
1689         %tmp324956805681 = zext i32 %tmp32495680 to i64         ; <i64> [#uses=1]
1690         %tmp3249568056815682 = shl i64 %tmp324956805681, 32             ; <i64> [#uses=1]
1691         %tmp3249568056815682.ins = or i64 %tmp3249568056815682, %tmp324656845685                ; <i64> [#uses=1]
1692         invoke void @system__string_ops__str_concat( %struct.string___XUP* %tmp78 sret , i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str22 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)), i64 %tmp3249568056815682.ins )
1693                         to label %invcont3260 unwind label %unwind3172
1694
1695 invcont3260:            ; preds = %invcont3243
1696         %tmp3262 = getelementptr %struct.string___XUP* %tmp78, i32 0, i32 0             ; <i8**> [#uses=1]
1697         %tmp3263 = load i8** %tmp3262           ; <i8*> [#uses=1]
1698         %tmp32635672 = ptrtoint i8* %tmp3263 to i32             ; <i32> [#uses=1]
1699         %tmp326356725673 = zext i32 %tmp32635672 to i64         ; <i64> [#uses=1]
1700         %tmp3265 = getelementptr %struct.string___XUP* %tmp78, i32 0, i32 1             ; <%struct.string___XUB**> [#uses=1]
1701         %tmp3266 = load %struct.string___XUB** %tmp3265         ; <%struct.string___XUB*> [#uses=1]
1702         %tmp32665668 = ptrtoint %struct.string___XUB* %tmp3266 to i32           ; <i32> [#uses=1]
1703         %tmp326656685669 = zext i32 %tmp32665668 to i64         ; <i64> [#uses=1]
1704         %tmp3266566856695670 = shl i64 %tmp326656685669, 32             ; <i64> [#uses=1]
1705         %tmp3266566856695670.ins = or i64 %tmp3266566856695670, %tmp326356725673                ; <i64> [#uses=1]
1706         invoke void @report__failed( i64 %tmp3266566856695670.ins )
1707                         to label %cleanup3293 unwind label %unwind3172
1708
1709 unwind3287:             ; preds = %cleanup3293, %unwind3172
1710         %eh_ptr3288 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=3]
1711         %eh_select3290 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3288, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=2]
1712         call void @llvm.stackrestore( i8* %tmp3124 )
1713         %eh_typeid33187 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )                ; <i32> [#uses=1]
1714         %tmp33208 = icmp eq i32 %eh_select3290, %eh_typeid33187         ; <i1> [#uses=1]
1715         br i1 %tmp33208, label %eh_then3321, label %cleanup3348
1716
1717 cleanup3293:            ; preds = %invcont3260
1718         %tmp33005503 = ptrtoint i8* %tmp3120 to i32             ; <i32> [#uses=1]
1719         %tmp330055035504 = zext i32 %tmp33005503 to i64         ; <i64> [#uses=1]
1720         %tmp33035500 = zext i32 %tmp3123 to i64         ; <i64> [#uses=1]
1721         %tmp330355005501 = shl i64 %tmp33035500, 32             ; <i64> [#uses=1]
1722         %tmp330355005501.ins = or i64 %tmp330355005501, %tmp330055035504                ; <i64> [#uses=1]
1723         invoke void @system__secondary_stack__ss_release( i64 %tmp330355005501.ins )
1724                         to label %cleanup3311 unwind label %unwind3287
1725
1726 cleanup3311:            ; preds = %cleanup3293
1727         call void @llvm.stackrestore( i8* %tmp3124 )
1728         br label %finally3347
1729
1730 cleanup3313:            ; preds = %unwind3172
1731         call void @llvm.stackrestore( i8* %tmp3124 )
1732         %eh_typeid3318 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1733         %tmp3320 = icmp eq i32 %eh_select3175, %eh_typeid3318           ; <i1> [#uses=1]
1734         br i1 %tmp3320, label %eh_then3321, label %cleanup3348
1735
1736 eh_then3321:            ; preds = %cleanup3313, %unwind3287, %unwind3112
1737         %eh_exception.416084.0 = phi i8* [ %eh_ptr3113, %unwind3112 ], [ %eh_ptr3288, %unwind3287 ], [ %eh_ptr3173, %cleanup3313 ]              ; <i8*> [#uses=3]
1738         invoke void @__gnat_begin_handler( i8* %eh_exception.416084.0 )
1739                         to label %invcont3329 unwind label %unwind3325
1740
1741 unwind3325:             ; preds = %invcont3331, %invcont3329, %eh_then3321
1742         %eh_ptr3326 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=2]
1743         %eh_select3328 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3326, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_others_value )                ; <i32> [#uses=1]
1744         invoke void @__gnat_end_handler( i8* %eh_exception.416084.0 )
1745                         to label %cleanup3348 unwind label %unwind3062
1746
1747 invcont3329:            ; preds = %eh_then3321
1748         %tmp3330 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1749         invoke void %tmp3330( )
1750                         to label %invcont3331 unwind label %unwind3325
1751
1752 invcont3331:            ; preds = %invcont3329
1753         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([46 x i8]* @.str20 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.101.1473 to i32) to i64), i64 32)) )
1754                         to label %cleanup3340 unwind label %unwind3325
1755
1756 cleanup3340:            ; preds = %invcont3331
1757         invoke void @__gnat_end_handler( i8* %eh_exception.416084.0 )
1758                         to label %finally3347 unwind label %unwind3062
1759
1760 cleanup3348:            ; preds = %unwind3325, %cleanup3313, %unwind3287, %unwind3112
1761         %eh_selector.35 = phi i32 [ %eh_select3115, %unwind3112 ], [ %eh_select3290, %unwind3287 ], [ %eh_select3175, %cleanup3313 ], [ %eh_select3328, %unwind3325 ]           ; <i32> [#uses=2]
1762         %eh_exception.39 = phi i8* [ %eh_ptr3113, %unwind3112 ], [ %eh_ptr3288, %unwind3287 ], [ %eh_ptr3173, %cleanup3313 ], [ %eh_ptr3326, %unwind3325 ]              ; <i8*> [#uses=2]
1763         %eh_typeid3349 = call i32 @llvm.eh.typeid.for( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )         ; <i32> [#uses=1]
1764         %tmp3351 = icmp eq i32 %eh_selector.35, %eh_typeid3349          ; <i1> [#uses=1]
1765         br i1 %tmp3351, label %eh_then3352, label %eh_else3366
1766
1767 eh_then3352:            ; preds = %cleanup3348, %unwind3062
1768         %eh_exception.396074.0 = phi i8* [ %eh_ptr3063, %unwind3062 ], [ %eh_exception.39, %cleanup3348 ]               ; <i8*> [#uses=3]
1769         invoke void @__gnat_begin_handler( i8* %eh_exception.396074.0 )
1770                         to label %invcont3358 unwind label %unwind3356
1771
1772 unwind3356:             ; preds = %invcont3358, %eh_then3352
1773         %eh_ptr3357 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1774         call void @__gnat_end_handler( i8* %eh_exception.396074.0 )
1775         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3357 )              ; <i32>:14 [#uses=0]
1776         unreachable
1777
1778 invcont3358:            ; preds = %eh_then3352
1779         %tmp3359 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1780         invoke void %tmp3359( )
1781                         to label %cleanup3362 unwind label %unwind3356
1782
1783 cleanup3362:            ; preds = %invcont3358
1784         call void @__gnat_end_handler( i8* %eh_exception.396074.0 )
1785         br label %finally3347
1786
1787 eh_else3366:            ; preds = %cleanup3348, %unwind3062
1788         %eh_selector.356072.1 = phi i32 [ %eh_select3065, %unwind3062 ], [ %eh_selector.35, %cleanup3348 ]              ; <i32> [#uses=1]
1789         %eh_exception.396074.1 = phi i8* [ %eh_ptr3063, %unwind3062 ], [ %eh_exception.39, %cleanup3348 ]               ; <i8*> [#uses=4]
1790         %eh_typeid3367 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1791         %tmp3369 = icmp eq i32 %eh_selector.356072.1, %eh_typeid3367            ; <i1> [#uses=1]
1792         br i1 %tmp3369, label %eh_then3370, label %Unwind
1793
1794 eh_then3370:            ; preds = %eh_else3366
1795         invoke void @__gnat_begin_handler( i8* %eh_exception.396074.1 )
1796                         to label %invcont3376 unwind label %unwind3374
1797
1798 unwind3374:             ; preds = %invcont3378, %invcont3376, %eh_then3370
1799         %eh_ptr3375 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1800         call void @__gnat_end_handler( i8* %eh_exception.396074.1 )
1801         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3375 )              ; <i32>:15 [#uses=0]
1802         unreachable
1803
1804 invcont3376:            ; preds = %eh_then3370
1805         %tmp3377 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1806         invoke void %tmp3377( )
1807                         to label %invcont3378 unwind label %unwind3374
1808
1809 invcont3378:            ; preds = %invcont3376
1810         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([25 x i8]* @.str23 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.104.1478 to i32) to i64), i64 32)) )
1811                         to label %cleanup3387 unwind label %unwind3374
1812
1813 cleanup3387:            ; preds = %invcont3378
1814         call void @__gnat_end_handler( i8* %eh_exception.396074.1 )
1815         br label %finally3347
1816
1817 finally3347:            ; preds = %cleanup3387, %cleanup3362, %cleanup3340, %cleanup3311
1818         %tmp3392 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=2]
1819         %tmp3398 = invoke i32 @report__ident_int( i32 -5 )
1820                         to label %invcont3397 unwind label %unwind3393          ; <i32> [#uses=4]
1821
1822 unwind3393:             ; preds = %cond_true3555, %cond_true3543, %cond_next3451, %cond_true3448, %cond_true3420, %finally3347
1823         %eh_ptr3394 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
1824         %eh_select3396 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3394, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
1825         call void @llvm.stackrestore( i8* %tmp3392 )
1826         %eh_typeid3571 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1827         %tmp3573 = icmp eq i32 %eh_select3396, %eh_typeid3571           ; <i1> [#uses=1]
1828         br i1 %tmp3573, label %eh_then3574, label %Unwind
1829
1830 invcont3397:            ; preds = %finally3347
1831         %tmp3405 = icmp slt i32 %tmp3398, %tmp384               ; <i1> [#uses=2]
1832         %tmp3413 = icmp sgt i32 %tmp3398, %tmp394               ; <i1> [#uses=1]
1833         %tmp3417 = or i1 %tmp3405, %tmp3413             ; <i1> [#uses=1]
1834         br i1 %tmp3417, label %cond_true3420, label %cond_next3422
1835
1836 cond_true3420:          ; preds = %invcont3397
1837         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 238 )
1838                         to label %UnifiedUnreachableBlock34 unwind label %unwind3393
1839
1840 cond_next3422:          ; preds = %invcont3397
1841         %tmp3426 = icmp slt i32 %tmp3398, -5            ; <i1> [#uses=1]
1842         br i1 %tmp3426, label %cond_true3429, label %cond_next3451
1843
1844 cond_true3429:          ; preds = %cond_next3422
1845         %tmp3441 = icmp slt i32 %tmp394, -6             ; <i1> [#uses=1]
1846         %tmp3445 = or i1 %tmp3405, %tmp3441             ; <i1> [#uses=1]
1847         br i1 %tmp3445, label %cond_true3448, label %cond_next3451
1848
1849 cond_true3448:          ; preds = %cond_true3429
1850         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 238 )
1851                         to label %UnifiedUnreachableBlock34 unwind label %unwind3393
1852
1853 cond_next3451:          ; preds = %cond_true3429, %cond_next3422
1854         %tmp3521 = invoke i32 @report__ident_int( i32 -5 )
1855                         to label %invcont3520 unwind label %unwind3393          ; <i32> [#uses=3]
1856
1857 invcont3520:            ; preds = %cond_next3451
1858         %tmp3528 = icmp slt i32 %tmp3521, %tmp384               ; <i1> [#uses=1]
1859         %tmp3536 = icmp sgt i32 %tmp3521, %tmp394               ; <i1> [#uses=1]
1860         %tmp3540 = or i1 %tmp3528, %tmp3536             ; <i1> [#uses=1]
1861         br i1 %tmp3540, label %cond_true3543, label %cond_next3545
1862
1863 cond_true3543:          ; preds = %invcont3520
1864         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 241 )
1865                         to label %UnifiedUnreachableBlock34 unwind label %unwind3393
1866
1867 cond_next3545:          ; preds = %invcont3520
1868         %tmp3552 = icmp eq i32 %tmp3398, %tmp3521               ; <i1> [#uses=1]
1869         br i1 %tmp3552, label %cleanup3565, label %cond_true3555
1870
1871 cond_true3555:          ; preds = %cond_next3545
1872         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([30 x i8]* @.str24 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.30.904 to i32) to i64), i64 32)) )
1873                         to label %cleanup3565 unwind label %unwind3393
1874
1875 cleanup3565:            ; preds = %cond_true3555, %cond_next3545
1876         call void @llvm.stackrestore( i8* %tmp3392 )
1877         %tmp36006095 = icmp ult i8 %tmp137138, %sat.45934.0             ; <i1> [#uses=1]
1878         br i1 %tmp36006095, label %cond_next3624, label %cond_true3603
1879
1880 eh_then3574:            ; preds = %unwind3393
1881         invoke void @__gnat_begin_handler( i8* %eh_ptr3394 )
1882                         to label %invcont3580 unwind label %unwind3578
1883
1884 unwind3578:             ; preds = %invcont3582, %invcont3580, %eh_then3574
1885         %eh_ptr3579 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
1886         call void @__gnat_end_handler( i8* %eh_ptr3394 )
1887         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3579 )              ; <i32>:16 [#uses=0]
1888         unreachable
1889
1890 invcont3580:            ; preds = %eh_then3574
1891         %tmp3581 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
1892         invoke void %tmp3581( )
1893                         to label %invcont3582 unwind label %unwind3578
1894
1895 invcont3582:            ; preds = %invcont3580
1896         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str25 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) )
1897                         to label %cleanup3591 unwind label %unwind3578
1898
1899 cleanup3591:            ; preds = %invcont3582
1900         call void @__gnat_end_handler( i8* %eh_ptr3394 )
1901         %tmp3600 = icmp ult i8 %tmp137138, %sat.45934.0         ; <i1> [#uses=1]
1902         br i1 %tmp3600, label %cond_next3624, label %cond_true3603
1903
1904 cond_true3603:          ; preds = %cleanup3591, %cleanup3565
1905         %tmp3606 = icmp ult i8 %sat.45934.0, %tmp204205         ; <i1> [#uses=1]
1906         %tmp3610 = icmp ugt i8 %tmp137138, %tmp272273           ; <i1> [#uses=1]
1907         %tmp3614 = or i1 %tmp3606, %tmp3610             ; <i1> [#uses=1]
1908         br i1 %tmp3614, label %cond_true3617, label %cond_next3624
1909
1910 cond_true3617:          ; preds = %cond_true3603
1911         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 250 )
1912                         to label %UnifiedUnreachableBlock34 unwind label %unwind3618
1913
1914 unwind3618:             ; preds = %bb3743, %cond_true3729, %bb3689, %cond_true3675, %bb3635, %cond_true3617
1915         %wed.3 = phi i8 [ %tmp238239, %cond_true3617 ], [ %wed.1, %bb3743 ], [ %tmp238239, %bb3689 ], [ %tmp238239, %bb3635 ], [ %tmp238239, %cond_true3675 ], [ %tmp238239, %cond_true3729 ]           ; <i8> [#uses=1]
1916         %tue.3 = phi i8 [ %tmp204205, %cond_true3617 ], [ %tue.2, %bb3743 ], [ %tue.2, %bb3689 ], [ %tue.1, %bb3635 ], [ %tue.2, %cond_true3675 ], [ %tue.2, %cond_true3729 ]           ; <i8> [#uses=1]
1917         %mon.3 = phi i8 [ %tmp170171, %cond_true3617 ], [ %mon.2, %bb3743 ], [ %mon.1, %bb3689 ], [ %tmp170171, %bb3635 ], [ %tmp170171, %cond_true3675 ], [ %mon.2, %cond_true3729 ]           ; <i8> [#uses=1]
1918         %eh_ptr3619 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
1919         %eh_select3621 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3619, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
1920         %eh_typeid3854 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
1921         %tmp3856 = icmp eq i32 %eh_select3621, %eh_typeid3854           ; <i1> [#uses=1]
1922         br i1 %tmp3856, label %eh_then3857, label %Unwind
1923
1924 cond_next3624:          ; preds = %cond_true3603, %cleanup3591, %cleanup3565
1925         %tmp3629 = icmp ugt i8 %sat.45934.0, %tmp137138         ; <i1> [#uses=1]
1926         br i1 %tmp3629, label %cond_next3653, label %bb3635
1927
1928 bb3635:         ; preds = %cond_next3649, %cond_next3624
1929         %indvar6258 = phi i8 [ %indvar.next16, %cond_next3649 ], [ 0, %cond_next3624 ]          ; <i8> [#uses=2]
1930         %tue.1 = phi i8 [ %tue.0, %cond_next3649 ], [ %tmp204205, %cond_next3624 ]              ; <i8> [#uses=2]
1931         %tmp3637 = invoke i8 @report__equal( i32 2, i32 2 )
1932                         to label %invcont3636 unwind label %unwind3618          ; <i8> [#uses=1]
1933
1934 invcont3636:            ; preds = %bb3635
1935         %i3633.4 = add i8 %indvar6258, %sat.45934.0             ; <i8> [#uses=1]
1936         %tmp3638 = icmp eq i8 %tmp3637, 0               ; <i1> [#uses=1]
1937         %tue.0 = select i1 %tmp3638, i8 %tue.1, i8 2            ; <i8> [#uses=2]
1938         %tmp3645 = icmp eq i8 %i3633.4, %tmp137138              ; <i1> [#uses=1]
1939         br i1 %tmp3645, label %cond_next3653, label %cond_next3649
1940
1941 cond_next3649:          ; preds = %invcont3636
1942         %indvar.next16 = add i8 %indvar6258, 1          ; <i8> [#uses=1]
1943         br label %bb3635
1944
1945 cond_next3653:          ; preds = %invcont3636, %cond_next3624
1946         %tue.2 = phi i8 [ %tmp204205, %cond_next3624 ], [ %tue.0, %invcont3636 ]                ; <i8> [#uses=6]
1947         %tmp3658 = icmp ult i8 %tmp238239, %tmp306307           ; <i1> [#uses=1]
1948         br i1 %tmp3658, label %cond_next3678, label %cond_true3661
1949
1950 cond_true3661:          ; preds = %cond_next3653
1951         %tmp3664 = icmp ult i8 %tmp306307, %tmp204205           ; <i1> [#uses=1]
1952         %tmp3668 = icmp ugt i8 %tmp238239, %tmp272273           ; <i1> [#uses=1]
1953         %tmp3672 = or i1 %tmp3664, %tmp3668             ; <i1> [#uses=1]
1954         br i1 %tmp3672, label %cond_true3675, label %cond_next3678
1955
1956 cond_true3675:          ; preds = %cond_true3661
1957         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 257 )
1958                         to label %UnifiedUnreachableBlock34 unwind label %unwind3618
1959
1960 cond_next3678:          ; preds = %cond_true3661, %cond_next3653
1961         %tmp3683 = icmp ugt i8 %tmp306307, %tmp238239           ; <i1> [#uses=1]
1962         br i1 %tmp3683, label %cond_next3707, label %bb3689
1963
1964 bb3689:         ; preds = %cond_next3703, %cond_next3678
1965         %indvar6261 = phi i8 [ %indvar.next18, %cond_next3703 ], [ 0, %cond_next3678 ]          ; <i8> [#uses=2]
1966         %mon.1 = phi i8 [ %mon.0, %cond_next3703 ], [ %tmp170171, %cond_next3678 ]              ; <i8> [#uses=2]
1967         %tmp3691 = invoke i8 @report__equal( i32 2, i32 2 )
1968                         to label %invcont3690 unwind label %unwind3618          ; <i8> [#uses=1]
1969
1970 invcont3690:            ; preds = %bb3689
1971         %i3687.4 = add i8 %indvar6261, %tmp306307               ; <i8> [#uses=1]
1972         %tmp3692 = icmp eq i8 %tmp3691, 0               ; <i1> [#uses=1]
1973         %mon.0 = select i1 %tmp3692, i8 %mon.1, i8 1            ; <i8> [#uses=2]
1974         %tmp3699 = icmp eq i8 %i3687.4, %tmp238239              ; <i1> [#uses=1]
1975         br i1 %tmp3699, label %cond_next3707, label %cond_next3703
1976
1977 cond_next3703:          ; preds = %invcont3690
1978         %indvar.next18 = add i8 %indvar6261, 1          ; <i8> [#uses=1]
1979         br label %bb3689
1980
1981 cond_next3707:          ; preds = %invcont3690, %cond_next3678
1982         %mon.2 = phi i8 [ %tmp170171, %cond_next3678 ], [ %mon.0, %invcont3690 ]                ; <i8> [#uses=8]
1983         %tmp3712 = icmp ult i8 %tmp137138, %mon.2               ; <i1> [#uses=1]
1984         br i1 %tmp3712, label %cond_next3732, label %cond_true3715
1985
1986 cond_true3715:          ; preds = %cond_next3707
1987         %tmp3718 = icmp ult i8 %mon.2, %tmp204205               ; <i1> [#uses=1]
1988         %tmp3722 = icmp ugt i8 %tmp137138, %tmp272273           ; <i1> [#uses=1]
1989         %tmp3726 = or i1 %tmp3718, %tmp3722             ; <i1> [#uses=1]
1990         br i1 %tmp3726, label %cond_true3729, label %cond_next3732
1991
1992 cond_true3729:          ; preds = %cond_true3715
1993         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 264 )
1994                         to label %UnifiedUnreachableBlock34 unwind label %unwind3618
1995
1996 cond_next3732:          ; preds = %cond_true3715, %cond_next3707
1997         %tmp3737 = icmp ugt i8 %mon.2, %tmp137138               ; <i1> [#uses=1]
1998         br i1 %tmp3737, label %finally3852, label %bb3743
1999
2000 bb3743:         ; preds = %cond_next3757, %cond_next3732
2001         %indvar6265 = phi i8 [ %indvar.next20, %cond_next3757 ], [ 0, %cond_next3732 ]          ; <i8> [#uses=2]
2002         %wed.1 = phi i8 [ %wed.0, %cond_next3757 ], [ %tmp238239, %cond_next3732 ]              ; <i8> [#uses=2]
2003         %tmp3745 = invoke i8 @report__equal( i32 3, i32 3 )
2004                         to label %invcont3744 unwind label %unwind3618          ; <i8> [#uses=1]
2005
2006 invcont3744:            ; preds = %bb3743
2007         %i3741.4 = add i8 %indvar6265, %mon.2           ; <i8> [#uses=1]
2008         %tmp3746 = icmp eq i8 %tmp3745, 0               ; <i1> [#uses=1]
2009         %wed.0 = select i1 %tmp3746, i8 %wed.1, i8 3            ; <i8> [#uses=2]
2010         %tmp3753 = icmp eq i8 %i3741.4, %tmp137138              ; <i1> [#uses=1]
2011         br i1 %tmp3753, label %finally3852, label %cond_next3757
2012
2013 cond_next3757:          ; preds = %invcont3744
2014         %indvar.next20 = add i8 %indvar6265, 1          ; <i8> [#uses=1]
2015         br label %bb3743
2016
2017 eh_then3857:            ; preds = %unwind3618
2018         invoke void @__gnat_begin_handler( i8* %eh_ptr3619 )
2019                         to label %invcont3863 unwind label %unwind3861
2020
2021 unwind3861:             ; preds = %invcont3865, %invcont3863, %eh_then3857
2022         %eh_ptr3862 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2023         call void @__gnat_end_handler( i8* %eh_ptr3619 )
2024         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr3862 )              ; <i32>:17 [#uses=0]
2025         unreachable
2026
2027 invcont3863:            ; preds = %eh_then3857
2028         %tmp3864 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2029         invoke void %tmp3864( )
2030                         to label %invcont3865 unwind label %unwind3861
2031
2032 invcont3865:            ; preds = %invcont3863
2033         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str26 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) )
2034                         to label %cleanup3874 unwind label %unwind3861
2035
2036 cleanup3874:            ; preds = %invcont3865
2037         call void @__gnat_end_handler( i8* %eh_ptr3619 )
2038         br label %finally3852
2039
2040 finally3852:            ; preds = %cleanup3874, %invcont3744, %cond_next3732
2041         %wed.4 = phi i8 [ %wed.3, %cleanup3874 ], [ %tmp238239, %cond_next3732 ], [ %wed.0, %invcont3744 ]              ; <i8> [#uses=4]
2042         %tue.4 = phi i8 [ %tue.3, %cleanup3874 ], [ %tue.2, %cond_next3732 ], [ %tue.2, %invcont3744 ]          ; <i8> [#uses=13]
2043         %mon.4 = phi i8 [ %mon.3, %cleanup3874 ], [ %mon.2, %cond_next3732 ], [ %mon.2, %invcont3744 ]          ; <i8> [#uses=18]
2044         %tmp3885 = invoke i32 @report__ident_int( i32 -5 )
2045                         to label %invcont3884 unwind label %unwind3880          ; <i32> [#uses=4]
2046
2047 unwind3880:             ; preds = %cond_true4138, %invcont4122, %cond_next4120, %cond_true4117, %cond_true4027, %cond_next3938, %cond_true3935, %cond_true3907, %finally3852
2048         %eh_ptr3881 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2049         %eh_select3883 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr3881, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2050         %eh_typeid4149 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2051         %tmp4151 = icmp eq i32 %eh_select3883, %eh_typeid4149           ; <i1> [#uses=1]
2052         br i1 %tmp4151, label %eh_then4152, label %Unwind
2053
2054 invcont3884:            ; preds = %finally3852
2055         %tmp3892 = icmp slt i32 %tmp3885, %tmp384               ; <i1> [#uses=2]
2056         %tmp3900 = icmp sgt i32 %tmp3885, %tmp394               ; <i1> [#uses=1]
2057         %tmp3904 = or i1 %tmp3892, %tmp3900             ; <i1> [#uses=1]
2058         br i1 %tmp3904, label %cond_true3907, label %cond_next3909
2059
2060 cond_true3907:          ; preds = %invcont3884
2061         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 312 )
2062                         to label %UnifiedUnreachableBlock34 unwind label %unwind3880
2063
2064 cond_next3909:          ; preds = %invcont3884
2065         %tmp3913 = icmp slt i32 %tmp3885, -5            ; <i1> [#uses=1]
2066         br i1 %tmp3913, label %cond_true3916, label %cond_next3938
2067
2068 cond_true3916:          ; preds = %cond_next3909
2069         %tmp3928 = icmp slt i32 %tmp394, -6             ; <i1> [#uses=1]
2070         %tmp3932 = or i1 %tmp3892, %tmp3928             ; <i1> [#uses=1]
2071         br i1 %tmp3932, label %cond_true3935, label %cond_next3938
2072
2073 cond_true3935:          ; preds = %cond_true3916
2074         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 312 )
2075                         to label %UnifiedUnreachableBlock34 unwind label %unwind3880
2076
2077 cond_next3938:          ; preds = %cond_true3916, %cond_next3909
2078         %tmp4005 = invoke i32 @report__ident_int( i32 -5 )
2079                         to label %invcont4004 unwind label %unwind3880          ; <i32> [#uses=6]
2080
2081 invcont4004:            ; preds = %cond_next3938
2082         %tmp4012 = icmp slt i32 %tmp4005, %tmp384               ; <i1> [#uses=2]
2083         %tmp4020 = icmp sgt i32 %tmp4005, %tmp394               ; <i1> [#uses=1]
2084         %tmp4024 = or i1 %tmp4012, %tmp4020             ; <i1> [#uses=1]
2085         br i1 %tmp4024, label %cond_true4027, label %cond_next4029
2086
2087 cond_true4027:          ; preds = %invcont4004
2088         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 313 )
2089                         to label %UnifiedUnreachableBlock34 unwind label %unwind3880
2090
2091 cond_next4029:          ; preds = %invcont4004
2092         %tmp4071 = icmp sgt i32 %tmp4005, -6            ; <i1> [#uses=1]
2093         %tmp4078 = add i32 %tmp4005, 1073741823         ; <i32> [#uses=1]
2094         %iftmp.132.0 = select i1 %tmp4071, i32 %tmp4078, i32 1073741818         ; <i32> [#uses=1]
2095         %tmp4085 = sub i32 %iftmp.132.0, %tmp4005               ; <i32> [#uses=1]
2096         %tmp4086 = shl i32 %tmp4085, 2          ; <i32> [#uses=2]
2097         %tmp4087 = add i32 %tmp4086, 4          ; <i32> [#uses=1]
2098         %tmp4088 = icmp sgt i32 %tmp4087, -1            ; <i1> [#uses=1]
2099         %tmp4087.op = add i32 %tmp4086, 7               ; <i32> [#uses=1]
2100         %tmp4087.op.op = and i32 %tmp4087.op, -4                ; <i32> [#uses=1]
2101         %tmp4091 = select i1 %tmp4088, i32 %tmp4087.op.op, i32 0                ; <i32> [#uses=1]
2102         %tmp4095 = icmp slt i32 %tmp4005, -5            ; <i1> [#uses=1]
2103         br i1 %tmp4095, label %cond_true4098, label %cond_next4120
2104
2105 cond_true4098:          ; preds = %cond_next4029
2106         %tmp4110 = icmp slt i32 %tmp394, -6             ; <i1> [#uses=1]
2107         %tmp4114 = or i1 %tmp4012, %tmp4110             ; <i1> [#uses=1]
2108         br i1 %tmp4114, label %cond_true4117, label %cond_next4120
2109
2110 cond_true4117:          ; preds = %cond_true4098
2111         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 313 )
2112                         to label %UnifiedUnreachableBlock34 unwind label %unwind3880
2113
2114 cond_next4120:          ; preds = %cond_true4098, %cond_next4029
2115         %tmp4123 = invoke i8* @__gnat_malloc( i32 %tmp4091 )
2116                         to label %invcont4122 unwind label %unwind3880          ; <i8*> [#uses=0]
2117
2118 invcont4122:            ; preds = %cond_next4120
2119         %tmp41254128 = sext i32 %tmp3885 to i64         ; <i64> [#uses=1]
2120         %tmp4129 = sub i64 -5, %tmp41254128             ; <i64> [#uses=2]
2121         %tmp4134 = invoke i32 @report__ident_int( i32 0 )
2122                         to label %invcont4133 unwind label %unwind3880          ; <i32> [#uses=1]
2123
2124 invcont4133:            ; preds = %invcont4122
2125         %tmp4130 = icmp sgt i64 %tmp4129, -1            ; <i1> [#uses=1]
2126         %tmp4129.cast = trunc i64 %tmp4129 to i32               ; <i32> [#uses=1]
2127         %max41314132 = select i1 %tmp4130, i32 %tmp4129.cast, i32 0             ; <i32> [#uses=1]
2128         %tmp4135 = icmp eq i32 %max41314132, %tmp4134           ; <i1> [#uses=1]
2129         br i1 %tmp4135, label %finally4147, label %cond_true4138
2130
2131 cond_true4138:          ; preds = %invcont4133
2132         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([31 x i8]* @.str27 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.98.1466 to i32) to i64), i64 32)) )
2133                         to label %finally4147 unwind label %unwind3880
2134
2135 eh_then4152:            ; preds = %unwind3880
2136         invoke void @__gnat_begin_handler( i8* %eh_ptr3881 )
2137                         to label %invcont4158 unwind label %unwind4156
2138
2139 unwind4156:             ; preds = %invcont4160, %invcont4158, %eh_then4152
2140         %eh_ptr4157 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2141         call void @__gnat_end_handler( i8* %eh_ptr3881 )
2142         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4157 )              ; <i32>:18 [#uses=0]
2143         unreachable
2144
2145 invcont4158:            ; preds = %eh_then4152
2146         %tmp4159 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2147         invoke void %tmp4159( )
2148                         to label %invcont4160 unwind label %unwind4156
2149
2150 invcont4160:            ; preds = %invcont4158
2151         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str28 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) )
2152                         to label %cleanup4169 unwind label %unwind4156
2153
2154 cleanup4169:            ; preds = %invcont4160
2155         call void @__gnat_end_handler( i8* %eh_ptr3881 )
2156         br label %finally4147
2157
2158 finally4147:            ; preds = %cleanup4169, %cond_true4138, %invcont4133
2159         %tmp4174 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=3]
2160         %tmp4180 = invoke i32 @report__ident_int( i32 4 )
2161                         to label %invcont4179 unwind label %unwind4175          ; <i32> [#uses=6]
2162
2163 unwind4175:             ; preds = %cond_true4292, %cond_true4187, %finally4147
2164         %eh_ptr4176 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2165         %eh_select4178 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr4176, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2166         %eh_typeid4304 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2167         %tmp4306 = icmp eq i32 %eh_select4178, %eh_typeid4304           ; <i1> [#uses=1]
2168         br i1 %tmp4306, label %eh_then4307, label %cleanup4334
2169
2170 invcont4179:            ; preds = %finally4147
2171         %tmp4184 = icmp slt i32 %tmp4180, 1             ; <i1> [#uses=1]
2172         br i1 %tmp4184, label %cond_true4187, label %cond_next4189
2173
2174 cond_true4187:          ; preds = %invcont4179
2175         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 329 )
2176                         to label %UnifiedUnreachableBlock34 unwind label %unwind4175
2177
2178 cond_next4189:          ; preds = %invcont4179
2179         %tmp4231 = icmp sgt i32 %tmp4180, 2             ; <i1> [#uses=2]
2180         %tmp4238 = add i32 %tmp4180, 1073741823         ; <i32> [#uses=1]
2181         %iftmp.138.0 = select i1 %tmp4231, i32 %tmp4238, i32 2          ; <i32> [#uses=1]
2182         %tmp4245 = sub i32 %iftmp.138.0, %tmp4180               ; <i32> [#uses=1]
2183         %tmp4246 = shl i32 %tmp4245, 2          ; <i32> [#uses=2]
2184         %tmp4247 = add i32 %tmp4246, 4          ; <i32> [#uses=1]
2185         %tmp4248 = icmp sgt i32 %tmp4247, -1            ; <i1> [#uses=1]
2186         %tmp4247.op = add i32 %tmp4246, 7               ; <i32> [#uses=1]
2187         %tmp4247.op.op = and i32 %tmp4247.op, -4                ; <i32> [#uses=1]
2188         %tmp4251 = select i1 %tmp4248, i32 %tmp4247.op.op, i32 0                ; <i32> [#uses=1]
2189         %tmp4253 = alloca i8, i32 %tmp4251              ; <i8*> [#uses=2]
2190         %tmp42534254 = bitcast i8* %tmp4253 to i32*             ; <i32*> [#uses=1]
2191         br i1 %tmp4231, label %bb4276, label %cond_next4266.preheader
2192
2193 cond_next4266.preheader:                ; preds = %cond_next4189
2194         %J152b.36147.3 = add i32 %tmp4180, 1            ; <i32> [#uses=1]
2195         br label %cond_next4266
2196
2197 cond_next4266:          ; preds = %cond_next4266, %cond_next4266.preheader
2198         %indvar6268 = phi i32 [ 0, %cond_next4266.preheader ], [ %indvar.next22, %cond_next4266 ]               ; <i32> [#uses=3]
2199         %tmp4273 = getelementptr i32* %tmp42534254, i32 %indvar6268             ; <i32*> [#uses=1]
2200         store i32 5, i32* %tmp4273
2201         %tmp4275 = add i32 %J152b.36147.3, %indvar6268          ; <i32> [#uses=1]
2202         %tmp42626151 = icmp sgt i32 %tmp4275, 2         ; <i1> [#uses=1]
2203         %indvar.next22 = add i32 %indvar6268, 1         ; <i32> [#uses=1]
2204         br i1 %tmp42626151, label %bb4276, label %cond_next4266
2205
2206 bb4276:         ; preds = %cond_next4266, %cond_next4189
2207         %tmp4280 = sub i32 2, %tmp4180          ; <i32> [#uses=1]
2208         %tmp4281 = icmp eq i32 %tmp4280, 1              ; <i1> [#uses=1]
2209         br i1 %tmp4281, label %cond_true4284, label %cleanup4336
2210
2211 cond_true4284:          ; preds = %bb4276
2212         %tmp4288 = call i32 (i8*, i8*, i32, ...)* @memcmp( i8* %tmp4253, i8* bitcast ([2 x i32]* @C.143.1720 to i8*), i32 8 )           ; <i32> [#uses=1]
2213         %tmp4289 = icmp eq i32 %tmp4288, 0              ; <i1> [#uses=1]
2214         br i1 %tmp4289, label %cond_true4292, label %cleanup4336
2215
2216 cond_true4292:          ; preds = %cond_true4284
2217         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([37 x i8]* @.str29 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.146.1725 to i32) to i64), i64 32)) )
2218                         to label %cleanup4336 unwind label %unwind4175
2219
2220 eh_then4307:            ; preds = %unwind4175
2221         invoke void @__gnat_begin_handler( i8* %eh_ptr4176 )
2222                         to label %invcont4313 unwind label %unwind4311
2223
2224 unwind4311:             ; preds = %invcont4315, %invcont4313, %eh_then4307
2225         %eh_ptr4312 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2226         invoke void @__gnat_end_handler( i8* %eh_ptr4176 )
2227                         to label %cleanup4334 unwind label %unwind4326
2228
2229 invcont4313:            ; preds = %eh_then4307
2230         %tmp4314 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2231         invoke void %tmp4314( )
2232                         to label %invcont4315 unwind label %unwind4311
2233
2234 invcont4315:            ; preds = %invcont4313
2235         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str30 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) )
2236                         to label %cleanup4324 unwind label %unwind4311
2237
2238 cleanup4324:            ; preds = %invcont4315
2239         invoke void @__gnat_end_handler( i8* %eh_ptr4176 )
2240                         to label %cleanup4336 unwind label %unwind4326
2241
2242 unwind4326:             ; preds = %cleanup4324, %unwind4311
2243         %eh_ptr4327 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2244         call void @llvm.stackrestore( i8* %tmp4174 )
2245         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4327 )              ; <i32>:19 [#uses=0]
2246         unreachable
2247
2248 cleanup4334:            ; preds = %unwind4311, %unwind4175
2249         %eh_exception.50 = phi i8* [ %eh_ptr4176, %unwind4175 ], [ %eh_ptr4312, %unwind4311 ]           ; <i8*> [#uses=1]
2250         call void @llvm.stackrestore( i8* %tmp4174 )
2251         call i32 (...)* @_Unwind_Resume( i8* %eh_exception.50 )         ; <i32>:20 [#uses=0]
2252         unreachable
2253
2254 cleanup4336:            ; preds = %cleanup4324, %cond_true4292, %cond_true4284, %bb4276
2255         call void @llvm.stackrestore( i8* %tmp4174 )
2256         %tmp4338 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=6]
2257         %tmp4379 = alloca i8, i32 %max1395              ; <i8*> [#uses=9]
2258         %tmp4421 = alloca i8, i32 %max1395              ; <i8*> [#uses=3]
2259         %tmp4428 = icmp ugt i8 %tmp204205, %tmp272273           ; <i1> [#uses=1]
2260         br i1 %tmp4428, label %cond_next4458, label %bb4433
2261
2262 bb4433:         ; preds = %cleanup4336
2263         store i8 %wed.4, i8* %tmp4421
2264         %tmp4442 = icmp eq i8 %tmp272273, %tmp204205            ; <i1> [#uses=1]
2265         br i1 %tmp4442, label %cond_next4458, label %cond_next4446.preheader
2266
2267 cond_next4446.preheader:                ; preds = %bb4433
2268         %J161b.26152.2 = add i8 %tmp204205, 1           ; <i8> [#uses=1]
2269         br label %cond_next4446
2270
2271 cond_next4446:          ; preds = %cond_next4446, %cond_next4446.preheader
2272         %indvar6271 = phi i8 [ 0, %cond_next4446.preheader ], [ %indvar.next24, %cond_next4446 ]                ; <i8> [#uses=2]
2273         %tmp4448 = add i8 %J161b.26152.2, %indvar6271           ; <i8> [#uses=2]
2274         %tmp443444356156 = zext i8 %tmp4448 to i32              ; <i32> [#uses=1]
2275         %tmp44376157 = sub i32 %tmp443444356156, %tmp13571358           ; <i32> [#uses=1]
2276         %tmp44386158 = getelementptr i8* %tmp4421, i32 %tmp44376157             ; <i8*> [#uses=1]
2277         store i8 %wed.4, i8* %tmp44386158
2278         %tmp44426160 = icmp eq i8 %tmp272273, %tmp4448          ; <i1> [#uses=1]
2279         %indvar.next24 = add i8 %indvar6271, 1          ; <i8> [#uses=1]
2280         br i1 %tmp44426160, label %cond_next4458, label %cond_next4446
2281
2282 unwind4453:             ; preds = %cond_true4609, %cond_true4504, %cond_true4481
2283         %eh_ptr4454 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=4]
2284         %eh_select4456 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr4454, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2285         %eh_typeid4710 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2286         %tmp4712 = icmp eq i32 %eh_select4456, %eh_typeid4710           ; <i1> [#uses=1]
2287         br i1 %tmp4712, label %eh_then4713, label %cleanup4740
2288
2289 cond_next4458:          ; preds = %cond_next4446, %bb4433, %cleanup4336
2290         call void @llvm.memcpy.i32( i8* %tmp4379, i8* %tmp4421, i32 %max1395, i32 1 )
2291         %tmp4464 = icmp ult i8 %tmp137138, %mon.4               ; <i1> [#uses=2]
2292         br i1 %tmp4464, label %cond_next4484, label %cond_true4467
2293
2294 cond_true4467:          ; preds = %cond_next4458
2295         %tmp4470 = icmp ult i8 %mon.4, %tmp204205               ; <i1> [#uses=1]
2296         %tmp4474 = icmp ugt i8 %tmp137138, %tmp272273           ; <i1> [#uses=1]
2297         %tmp4478 = or i1 %tmp4470, %tmp4474             ; <i1> [#uses=1]
2298         br i1 %tmp4478, label %cond_true4481, label %cond_next4484
2299
2300 cond_true4481:          ; preds = %cond_true4467
2301         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 )
2302                         to label %UnifiedUnreachableBlock34 unwind label %unwind4453
2303
2304 cond_next4484:          ; preds = %cond_true4467, %cond_next4458
2305         %tmp4487 = icmp ult i8 %mon.4, %tue.4           ; <i1> [#uses=2]
2306         br i1 %tmp4487, label %cond_next4507, label %cond_true4490
2307
2308 cond_true4490:          ; preds = %cond_next4484
2309         %tmp4493 = icmp ult i8 %tue.4, %tmp204205               ; <i1> [#uses=1]
2310         %tmp4497 = icmp ugt i8 %mon.4, %tmp272273               ; <i1> [#uses=1]
2311         %tmp4501 = or i1 %tmp4497, %tmp4493             ; <i1> [#uses=1]
2312         br i1 %tmp4501, label %cond_true4504, label %cond_next4507
2313
2314 cond_true4504:          ; preds = %cond_true4490
2315         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 )
2316                         to label %UnifiedUnreachableBlock34 unwind label %unwind4453
2317
2318 cond_next4507:          ; preds = %cond_true4490, %cond_next4484
2319         %tmp45904591 = zext i8 %mon.4 to i64            ; <i64> [#uses=3]
2320         %tmp45924593 = zext i8 %tue.4 to i64            ; <i64> [#uses=1]
2321         %tmp4594 = sub i64 %tmp45904591, %tmp45924593           ; <i64> [#uses=1]
2322         %tmp4595 = add i64 %tmp4594, 1          ; <i64> [#uses=2]
2323         %tmp4596 = icmp sgt i64 %tmp4595, -1            ; <i1> [#uses=1]
2324         %max4597 = select i1 %tmp4596, i64 %tmp4595, i64 0              ; <i64> [#uses=1]
2325         %tmp45984599 = zext i8 %tmp137138 to i64                ; <i64> [#uses=1]
2326         %tmp4602 = sub i64 %tmp45984599, %tmp45904591           ; <i64> [#uses=1]
2327         %tmp4603 = add i64 %tmp4602, 1          ; <i64> [#uses=3]
2328         %tmp4604 = icmp sgt i64 %tmp4603, -1            ; <i1> [#uses=2]
2329         %max4605 = select i1 %tmp4604, i64 %tmp4603, i64 0              ; <i64> [#uses=1]
2330         %tmp4606 = icmp eq i64 %max4597, %max4605               ; <i1> [#uses=1]
2331         br i1 %tmp4606, label %cond_next4611, label %cond_true4609
2332
2333 cond_true4609:          ; preds = %cond_next4507
2334         invoke void @__gnat_rcheck_07( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 340 )
2335                         to label %UnifiedUnreachableBlock34 unwind label %unwind4453
2336
2337 cond_next4611:          ; preds = %cond_next4507
2338         %tmp46124613 = zext i8 %tue.4 to i32            ; <i32> [#uses=1]
2339         %tmp4616 = sub i32 %tmp46124613, %tmp13571358           ; <i32> [#uses=2]
2340         %tmp46244625 = zext i8 %mon.4 to i32            ; <i32> [#uses=1]
2341         %tmp4628 = sub i32 %tmp46244625, %tmp13571358           ; <i32> [#uses=3]
2342         %tmp4636 = icmp slt i32 %tmp4628, %tmp4616              ; <i1> [#uses=1]
2343         %tmp4677 = icmp ugt i8 %tue.4, %mon.4           ; <i1> [#uses=2]
2344         br i1 %tmp4636, label %cond_false4673, label %cond_true4639
2345
2346 cond_true4639:          ; preds = %cond_next4611
2347         br i1 %tmp4677, label %cleanup4742, label %bb4648.preheader
2348
2349 bb4648.preheader:               ; preds = %cond_true4639
2350         %tmp46556217 = getelementptr i8* %tmp4379, i32 %tmp4628         ; <i8*> [#uses=1]
2351         %tmp46566218 = load i8* %tmp46556217            ; <i8> [#uses=1]
2352         %tmp46596220 = getelementptr i8* %tmp4379, i32 %tmp4616         ; <i8*> [#uses=1]
2353         store i8 %tmp46566218, i8* %tmp46596220
2354         %tmp46646223 = icmp eq i8 %tue.4, %mon.4                ; <i1> [#uses=1]
2355         br i1 %tmp46646223, label %cleanup4742, label %cond_next4668.preheader
2356
2357 cond_next4668.preheader:                ; preds = %bb4648.preheader
2358         %tmp46616222.in = add i8 %mon.4, 1              ; <i8> [#uses=1]
2359         %L174b.26213 = add i8 %tue.4, 1         ; <i8> [#uses=1]
2360         %tmp.27 = sub i8 %mon.4, %tue.4         ; <i8> [#uses=1]
2361         br label %cond_next4668
2362
2363 cond_next4668:          ; preds = %cond_next4668, %cond_next4668.preheader
2364         %indvar6275 = phi i8 [ 0, %cond_next4668.preheader ], [ %indvar.next26, %cond_next4668 ]                ; <i8> [#uses=3]
2365         %tmp46616222 = add i8 %tmp46616222.in, %indvar6275              ; <i8> [#uses=1]
2366         %tmp4670 = add i8 %L174b.26213, %indvar6275             ; <i8> [#uses=1]
2367         %tmp46494650 = zext i8 %tmp4670 to i32          ; <i32> [#uses=1]
2368         %tmp46514652 = zext i8 %tmp46616222 to i32              ; <i32> [#uses=1]
2369         %tmp4654 = sub i32 %tmp46514652, %tmp13571358           ; <i32> [#uses=1]
2370         %tmp4655 = getelementptr i8* %tmp4379, i32 %tmp4654             ; <i8*> [#uses=1]
2371         %tmp4656 = load i8* %tmp4655            ; <i8> [#uses=1]
2372         %tmp4658 = sub i32 %tmp46494650, %tmp13571358           ; <i32> [#uses=1]
2373         %tmp4659 = getelementptr i8* %tmp4379, i32 %tmp4658             ; <i8*> [#uses=1]
2374         store i8 %tmp4656, i8* %tmp4659
2375         %indvar.next26 = add i8 %indvar6275, 1          ; <i8> [#uses=2]
2376         %exitcond28 = icmp eq i8 %indvar.next26, %tmp.27                ; <i1> [#uses=1]
2377         br i1 %exitcond28, label %cleanup4742, label %cond_next4668
2378
2379 cond_false4673:         ; preds = %cond_next4611
2380         br i1 %tmp4677, label %cleanup4742, label %bb4682.preheader
2381
2382 bb4682.preheader:               ; preds = %cond_false4673
2383         %tmp468546866228 = and i32 %tmp123, 255         ; <i32> [#uses=1]
2384         %tmp46886229 = sub i32 %tmp468546866228, %tmp13571358           ; <i32> [#uses=1]
2385         %tmp46896230 = getelementptr i8* %tmp4379, i32 %tmp46886229             ; <i8*> [#uses=1]
2386         %tmp46906231 = load i8* %tmp46896230            ; <i8> [#uses=1]
2387         %tmp46936233 = getelementptr i8* %tmp4379, i32 %tmp4628         ; <i8*> [#uses=1]
2388         store i8 %tmp46906231, i8* %tmp46936233
2389         %tmp46986236 = icmp eq i8 %mon.4, %tue.4                ; <i1> [#uses=1]
2390         br i1 %tmp46986236, label %cleanup4742, label %cond_next4702.preheader
2391
2392 cond_next4702.preheader:                ; preds = %bb4682.preheader
2393         %tmp46956235.in = add i8 %tmp137138, -1         ; <i8> [#uses=1]
2394         %L172b.26226 = add i8 %mon.4, -1                ; <i8> [#uses=1]
2395         %tmp.32 = sub i8 %mon.4, %tue.4         ; <i8> [#uses=1]
2396         br label %cond_next4702
2397
2398 cond_next4702:          ; preds = %cond_next4702, %cond_next4702.preheader
2399         %indvar6278 = phi i8 [ 0, %cond_next4702.preheader ], [ %indvar.next30, %cond_next4702 ]                ; <i8> [#uses=3]
2400         %tmp46956235 = sub i8 %tmp46956235.in, %indvar6278              ; <i8> [#uses=1]
2401         %tmp4704 = sub i8 %L172b.26226, %indvar6278             ; <i8> [#uses=1]
2402         %tmp46834684 = zext i8 %tmp4704 to i32          ; <i32> [#uses=1]
2403         %tmp46854686 = zext i8 %tmp46956235 to i32              ; <i32> [#uses=1]
2404         %tmp4688 = sub i32 %tmp46854686, %tmp13571358           ; <i32> [#uses=1]
2405         %tmp4689 = getelementptr i8* %tmp4379, i32 %tmp4688             ; <i8*> [#uses=1]
2406         %tmp4690 = load i8* %tmp4689            ; <i8> [#uses=1]
2407         %tmp4692 = sub i32 %tmp46834684, %tmp13571358           ; <i32> [#uses=1]
2408         %tmp4693 = getelementptr i8* %tmp4379, i32 %tmp4692             ; <i8*> [#uses=1]
2409         store i8 %tmp4690, i8* %tmp4693
2410         %indvar.next30 = add i8 %indvar6278, 1          ; <i8> [#uses=2]
2411         %exitcond33 = icmp eq i8 %indvar.next30, %tmp.32                ; <i1> [#uses=1]
2412         br i1 %exitcond33, label %cleanup4742, label %cond_next4702
2413
2414 eh_then4713:            ; preds = %unwind4453
2415         invoke void @__gnat_begin_handler( i8* %eh_ptr4454 )
2416                         to label %invcont4719 unwind label %unwind4717
2417
2418 unwind4717:             ; preds = %invcont4719, %eh_then4713
2419         %eh_ptr4718 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2420         invoke void @__gnat_end_handler( i8* %eh_ptr4454 )
2421                         to label %cleanup4740 unwind label %unwind4732
2422
2423 invcont4719:            ; preds = %eh_then4713
2424         %tmp4720 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2425         invoke void %tmp4720( )
2426                         to label %UnifiedReturnBlock35 unwind label %unwind4717
2427
2428 unwind4732:             ; preds = %unwind4717
2429         %eh_ptr4733 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2430         call void @llvm.stackrestore( i8* %tmp4338 )
2431         call void @llvm.stackrestore( i8* %tmp4338 )
2432         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4733 )              ; <i32>:21 [#uses=0]
2433         unreachable
2434
2435 cleanup4740:            ; preds = %unwind4717, %unwind4453
2436         %eh_exception.53 = phi i8* [ %eh_ptr4454, %unwind4453 ], [ %eh_ptr4718, %unwind4717 ]           ; <i8*> [#uses=1]
2437         call void @llvm.stackrestore( i8* %tmp4338 )
2438         call void @llvm.stackrestore( i8* %tmp4338 )
2439         call i32 (...)* @_Unwind_Resume( i8* %eh_exception.53 )         ; <i32>:22 [#uses=0]
2440         unreachable
2441
2442 cleanup4742:            ; preds = %cond_next4702, %bb4682.preheader, %cond_false4673, %cond_next4668, %bb4648.preheader, %cond_true4639
2443         call void @llvm.stackrestore( i8* %tmp4338 )
2444         call void @llvm.stackrestore( i8* %tmp4338 )
2445         %tmp4749 = call i8* @llvm.stacksave( )          ; <i8*> [#uses=2]
2446         br i1 %tmp4464, label %cond_next4776, label %UnifiedReturnBlock35
2447
2448 unwind4770:             ; preds = %cond_next4776
2449         %eh_ptr4771 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2450         %eh_select4773 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr4771, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2451         call void @llvm.stackrestore( i8* %tmp4749 )
2452         %eh_typeid4874 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2453         %tmp4876 = icmp eq i32 %eh_select4773, %eh_typeid4874           ; <i1> [#uses=1]
2454         br i1 %tmp4876, label %eh_then4877, label %Unwind
2455
2456 cond_next4776:          ; preds = %cleanup4742
2457         %tmp4856.cast = trunc i64 %tmp4603 to i32               ; <i32> [#uses=1]
2458         %max48584859 = select i1 %tmp4604, i32 %tmp4856.cast, i32 0             ; <i32> [#uses=1]
2459         %tmp4861 = invoke i8 @report__equal( i32 %max48584859, i32 0 )
2460                         to label %invcont4860 unwind label %unwind4770          ; <i8> [#uses=1]
2461
2462 invcont4860:            ; preds = %cond_next4776
2463         %tmp4862 = icmp eq i8 %tmp4861, 0               ; <i1> [#uses=1]
2464         %tue.8 = select i1 %tmp4862, i8 %tue.4, i8 2            ; <i8> [#uses=3]
2465         call void @llvm.stackrestore( i8* %tmp4749 )
2466         %tmp49016170 = icmp ult i8 %mon.4, %tue.8               ; <i1> [#uses=1]
2467         br i1 %tmp49016170, label %cond_next4925, label %cond_true4904
2468
2469 eh_then4877:            ; preds = %unwind4770
2470         invoke void @__gnat_begin_handler( i8* %eh_ptr4771 )
2471                         to label %invcont4883 unwind label %unwind4881
2472
2473 unwind4881:             ; preds = %invcont4885, %invcont4883, %eh_then4877
2474         %eh_ptr4882 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2475         call void @__gnat_end_handler( i8* %eh_ptr4771 )
2476         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4882 )              ; <i32>:23 [#uses=0]
2477         unreachable
2478
2479 invcont4883:            ; preds = %eh_then4877
2480         %tmp4884 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2481         invoke void %tmp4884( )
2482                         to label %invcont4885 unwind label %unwind4881
2483
2484 invcont4885:            ; preds = %invcont4883
2485         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([18 x i8]* @.str32 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.124.1606 to i32) to i64), i64 32)) )
2486                         to label %cleanup4894 unwind label %unwind4881
2487
2488 cleanup4894:            ; preds = %invcont4885
2489         call void @__gnat_end_handler( i8* %eh_ptr4771 )
2490         br i1 %tmp4487, label %cond_next4925, label %cond_true4904
2491
2492 cond_true4904:          ; preds = %cleanup4894, %invcont4860
2493         %tue.96161.0 = phi i8 [ %tue.8, %invcont4860 ], [ %tue.4, %cleanup4894 ]                ; <i8> [#uses=3]
2494         %tmp4907 = icmp ult i8 %tue.96161.0, %tmp204205         ; <i1> [#uses=1]
2495         %tmp4911 = icmp ugt i8 %mon.4, %tmp272273               ; <i1> [#uses=1]
2496         %tmp4915 = or i1 %tmp4907, %tmp4911             ; <i1> [#uses=1]
2497         br i1 %tmp4915, label %cond_true4918, label %cond_next4925
2498
2499 cond_true4918:          ; preds = %cond_true4904
2500         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 361 )
2501                         to label %UnifiedUnreachableBlock34 unwind label %unwind4919
2502
2503 unwind4919:             ; preds = %cond_next4925, %cond_true4918
2504         %tue.96161.2 = phi i8 [ %tue.96161.0, %cond_true4918 ], [ %tue.96161.1, %cond_next4925 ]                ; <i8> [#uses=1]
2505         %eh_ptr4920 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2506         %eh_select4922 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr4920, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2507         %eh_typeid4987 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2508         %tmp4989 = icmp eq i32 %eh_select4922, %eh_typeid4987           ; <i1> [#uses=1]
2509         br i1 %tmp4989, label %eh_then4990, label %Unwind
2510
2511 cond_next4925:          ; preds = %cond_true4904, %cleanup4894, %invcont4860
2512         %tue.96161.1 = phi i8 [ %tue.8, %invcont4860 ], [ %tue.4, %cleanup4894 ], [ %tue.96161.0, %cond_true4904 ]              ; <i8> [#uses=6]
2513         %tmp49714972 = zext i8 %tue.96161.1 to i64              ; <i64> [#uses=1]
2514         %tmp4973 = sub i64 %tmp45904591, %tmp49714972           ; <i64> [#uses=1]
2515         %tmp4974 = add i64 %tmp4973, 1          ; <i64> [#uses=2]
2516         %tmp4975 = icmp sgt i64 %tmp4974, -1            ; <i1> [#uses=1]
2517         %tmp4974.cast = trunc i64 %tmp4974 to i32               ; <i32> [#uses=1]
2518         %max49764977 = select i1 %tmp4975, i32 %tmp4974.cast, i32 0             ; <i32> [#uses=1]
2519         %tmp4979 = invoke i8 @report__equal( i32 %max49764977, i32 0 )
2520                         to label %invcont4978 unwind label %unwind4919          ; <i8> [#uses=1]
2521
2522 invcont4978:            ; preds = %cond_next4925
2523         %tmp4980 = icmp eq i8 %tmp4979, 0               ; <i1> [#uses=1]
2524         br i1 %tmp4980, label %finally4985, label %cond_true4983
2525
2526 cond_true4983:          ; preds = %invcont4978
2527         %tmp50146178 = icmp ugt i8 %tue.96161.1, 1              ; <i1> [#uses=1]
2528         br i1 %tmp50146178, label %cond_next5038, label %cond_true5017
2529
2530 eh_then4990:            ; preds = %unwind4919
2531         invoke void @__gnat_begin_handler( i8* %eh_ptr4920 )
2532                         to label %invcont4996 unwind label %unwind4994
2533
2534 unwind4994:             ; preds = %invcont4998, %invcont4996, %eh_then4990
2535         %eh_ptr4995 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2536         call void @__gnat_end_handler( i8* %eh_ptr4920 )
2537         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr4995 )              ; <i32>:24 [#uses=0]
2538         unreachable
2539
2540 invcont4996:            ; preds = %eh_then4990
2541         %tmp4997 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2542         invoke void %tmp4997( )
2543                         to label %invcont4998 unwind label %unwind4994
2544
2545 invcont4998:            ; preds = %invcont4996
2546         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str33 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) )
2547                         to label %cleanup5007 unwind label %unwind4994
2548
2549 cleanup5007:            ; preds = %invcont4998
2550         call void @__gnat_end_handler( i8* %eh_ptr4920 )
2551         br label %finally4985
2552
2553 finally4985:            ; preds = %cleanup5007, %invcont4978
2554         %tue.96161.3 = phi i8 [ %tue.96161.2, %cleanup5007 ], [ %tue.96161.1, %invcont4978 ]            ; <i8> [#uses=3]
2555         %tmp5014 = icmp ult i8 %mon.4, %tue.96161.3             ; <i1> [#uses=1]
2556         br i1 %tmp5014, label %cond_next5038, label %cond_true5017
2557
2558 cond_true5017:          ; preds = %finally4985, %cond_true4983
2559         %tue.96161.4 = phi i8 [ %tue.96161.1, %cond_true4983 ], [ %tue.96161.3, %finally4985 ]          ; <i8> [#uses=3]
2560         %mon.86171.0 = phi i8 [ 1, %cond_true4983 ], [ %mon.4, %finally4985 ]           ; <i8> [#uses=3]
2561         %tmp5020 = icmp ult i8 %tue.96161.4, %tmp204205         ; <i1> [#uses=1]
2562         %tmp5024 = icmp ugt i8 %mon.86171.0, %tmp272273         ; <i1> [#uses=1]
2563         %tmp5028 = or i1 %tmp5024, %tmp5020             ; <i1> [#uses=1]
2564         br i1 %tmp5028, label %cond_true5031, label %cond_next5038
2565
2566 cond_true5031:          ; preds = %cond_true5017
2567         invoke void @__gnat_rcheck_12( i8* getelementptr ([13 x i8]* @.str, i32 0, i32 0), i32 375 )
2568                         to label %UnifiedUnreachableBlock34 unwind label %unwind5032
2569
2570 unwind5032:             ; preds = %cond_next5038, %cond_true5031
2571         %tue.96161.6 = phi i8 [ %tue.96161.4, %cond_true5031 ], [ %tue.96161.5, %cond_next5038 ]                ; <i8> [#uses=1]
2572         %mon.86171.2 = phi i8 [ %mon.86171.0, %cond_true5031 ], [ %mon.86171.1, %cond_next5038 ]                ; <i8> [#uses=1]
2573         %eh_ptr5033 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2574         %eh_select5035 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr5033, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2575         %eh_typeid5100 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2576         %tmp5102 = icmp eq i32 %eh_select5035, %eh_typeid5100           ; <i1> [#uses=1]
2577         br i1 %tmp5102, label %eh_then5103, label %Unwind
2578
2579 cond_next5038:          ; preds = %cond_true5017, %finally4985, %cond_true4983
2580         %tue.96161.5 = phi i8 [ %tue.96161.1, %cond_true4983 ], [ %tue.96161.3, %finally4985 ], [ %tue.96161.4, %cond_true5017 ]                ; <i8> [#uses=4]
2581         %mon.86171.1 = phi i8 [ 1, %cond_true4983 ], [ %mon.4, %finally4985 ], [ %mon.86171.0, %cond_true5017 ]         ; <i8> [#uses=4]
2582         %tmp50825083 = zext i8 %mon.86171.1 to i64              ; <i64> [#uses=1]
2583         %tmp50845085 = zext i8 %tue.96161.5 to i64              ; <i64> [#uses=1]
2584         %tmp5086 = sub i64 %tmp50825083, %tmp50845085           ; <i64> [#uses=1]
2585         %tmp5087 = add i64 %tmp5086, 1          ; <i64> [#uses=2]
2586         %tmp5088 = icmp sgt i64 %tmp5087, -1            ; <i1> [#uses=1]
2587         %tmp5087.cast = trunc i64 %tmp5087 to i32               ; <i32> [#uses=1]
2588         %max50895090 = select i1 %tmp5088, i32 %tmp5087.cast, i32 0             ; <i32> [#uses=1]
2589         %tmp5092 = invoke i8 @report__equal( i32 %max50895090, i32 0 )
2590                         to label %invcont5091 unwind label %unwind5032          ; <i8> [#uses=1]
2591
2592 invcont5091:            ; preds = %cond_next5038
2593         %tmp5093 = icmp eq i8 %tmp5092, 0               ; <i1> [#uses=1]
2594         br i1 %tmp5093, label %finally5098, label %cond_true5096
2595
2596 cond_true5096:          ; preds = %invcont5091
2597         br label %finally5098
2598
2599 eh_then5103:            ; preds = %unwind5032
2600         invoke void @__gnat_begin_handler( i8* %eh_ptr5033 )
2601                         to label %invcont5109 unwind label %unwind5107
2602
2603 unwind5107:             ; preds = %invcont5111, %invcont5109, %eh_then5103
2604         %eh_ptr5108 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2605         call void @__gnat_end_handler( i8* %eh_ptr5033 )
2606         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr5108 )              ; <i32>:25 [#uses=0]
2607         unreachable
2608
2609 invcont5109:            ; preds = %eh_then5103
2610         %tmp5110 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2611         invoke void %tmp5110( )
2612                         to label %invcont5111 unwind label %unwind5107
2613
2614 invcont5111:            ; preds = %invcont5109
2615         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str34 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) )
2616                         to label %cleanup5120 unwind label %unwind5107
2617
2618 cleanup5120:            ; preds = %invcont5111
2619         call void @__gnat_end_handler( i8* %eh_ptr5033 )
2620         br label %finally5098
2621
2622 finally5098:            ; preds = %cleanup5120, %cond_true5096, %invcont5091
2623         %tue.96161.7 = phi i8 [ %tue.96161.6, %cleanup5120 ], [ %tue.96161.5, %cond_true5096 ], [ %tue.96161.5, %invcont5091 ]          ; <i8> [#uses=1]
2624         %mon.86171.3 = phi i8 [ %mon.86171.2, %cleanup5120 ], [ %mon.86171.1, %cond_true5096 ], [ %mon.86171.1, %invcont5091 ]          ; <i8> [#uses=2]
2625         %wed.6 = phi i8 [ %wed.4, %cleanup5120 ], [ 3, %cond_true5096 ], [ %wed.4, %invcont5091 ]               ; <i8> [#uses=5]
2626         %not.tmp5135 = icmp uge i8 %tmp137138, %sat.45934.0             ; <i1> [#uses=1]
2627         %tmp5151 = icmp uge i8 %sat.45934.0, %tmp306307         ; <i1> [#uses=1]
2628         %tmp5155 = icmp ule i8 %sat.45934.0, %wed.6             ; <i1> [#uses=1]
2629         %tmp5159 = and i1 %tmp5155, %tmp5151            ; <i1> [#uses=1]
2630         %tmp5177 = icmp ult i8 %wed.6, %tmp272273               ; <i1> [#uses=1]
2631         %tmp5184 = icmp ugt i8 %wed.6, %tue.96161.7             ; <i1> [#uses=1]
2632         %bothcond5907 = or i1 %tmp5177, %tmp5184                ; <i1> [#uses=2]
2633         %not.bothcond5907 = xor i1 %bothcond5907, true          ; <i1> [#uses=1]
2634         %tmp5198 = icmp uge i8 %tmp272273, %mon.86171.3         ; <i1> [#uses=1]
2635         %tmp5202 = icmp ule i8 %tmp272273, %tmp137138           ; <i1> [#uses=1]
2636         %tmp5206 = and i1 %tmp5198, %tmp5202            ; <i1> [#uses=1]
2637         %not.bothcond5908 = icmp uge i8 %tmp306307, %sat.45934.0                ; <i1> [#uses=1]
2638         %tmp5244 = icmp uge i8 %wed.6, %tmp306307               ; <i1> [#uses=1]
2639         %tmp5248 = icmp ule i8 %wed.6, %mon.86171.3             ; <i1> [#uses=1]
2640         %tmp5252 = and i1 %tmp5244, %tmp5248            ; <i1> [#uses=1]
2641         %tmp5164 = or i1 %not.tmp5135, %not.bothcond5908                ; <i1> [#uses=1]
2642         %tmp5194 = or i1 %tmp5164, %tmp5206             ; <i1> [#uses=1]
2643         %tmp5210 = or i1 %tmp5194, %tmp5159             ; <i1> [#uses=1]
2644         %tmp5240 = or i1 %tmp5210, %not.bothcond5907            ; <i1> [#uses=1]
2645         %tmp5256 = or i1 %tmp5240, %tmp5252             ; <i1> [#uses=1]
2646         br i1 %tmp5256, label %cond_true5259, label %cond_next5271
2647
2648 cond_true5259:          ; preds = %finally5098
2649         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([27 x i8]* @.str35 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.178.2066 to i32) to i64), i64 32)) )
2650                         to label %cond_next5271 unwind label %unwind5266
2651
2652 unwind5266:             ; preds = %cond_true5462, %invcont5429, %cond_next5401, %cond_true5393, %cond_next5374, %bb5359, %cond_next5347, %invcont5330, %invcont5305, %invcont5303, %invcont5294, %bb5293, %cond_next5281, %cond_next5271, %cond_true5259
2653         %eh_ptr5267 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=5]
2654         %eh_select5269 = call i32 (i8*, i8*, ...)* @llvm.eh.selector( i8* %eh_ptr5267, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_others_value )              ; <i32> [#uses=1]
2655         %eh_typeid5473 = call i32 @llvm.eh.typeid.for( i8* bitcast (i32* @__gnat_others_value to i8*) )         ; <i32> [#uses=1]
2656         %tmp5475 = icmp eq i32 %eh_select5269, %eh_typeid5473           ; <i1> [#uses=1]
2657         br i1 %tmp5475, label %eh_then5476, label %Unwind
2658
2659 cond_next5271:          ; preds = %cond_true5259, %finally5098
2660         %tmp5273 = invoke i32 @report__ident_int( i32 0 )
2661                         to label %invcont5272 unwind label %unwind5266          ; <i32> [#uses=2]
2662
2663 invcont5272:            ; preds = %cond_next5271
2664         %tmp5277 = icmp slt i32 %tmp5273, 10            ; <i1> [#uses=1]
2665         br i1 %tmp5277, label %bb5292, label %cond_next5281
2666
2667 cond_next5281:          ; preds = %invcont5272
2668         %tmp5283 = invoke i32 @report__ident_int( i32 -10 )
2669                         to label %invcont5282 unwind label %unwind5266          ; <i32> [#uses=1]
2670
2671 invcont5282:            ; preds = %cond_next5281
2672         %tmp5287 = icmp sgt i32 %tmp5273, %tmp5283              ; <i1> [#uses=1]
2673         br i1 %tmp5287, label %bb5292, label %bb5293
2674
2675 bb5292:         ; preds = %invcont5282, %invcont5272
2676         br label %bb5293
2677
2678 bb5293:         ; preds = %bb5292, %invcont5282
2679         %iftmp.179.0 = phi i1 [ false, %bb5292 ], [ true, %invcont5282 ]                ; <i1> [#uses=1]
2680         %tmp5295 = invoke i32 @report__ident_int( i32 10 )
2681                         to label %invcont5294 unwind label %unwind5266          ; <i32> [#uses=1]
2682
2683 invcont5294:            ; preds = %bb5293
2684         %tmp5296 = icmp slt i32 %tmp5295, 1             ; <i1> [#uses=1]
2685         %tmp5304 = invoke i32 @report__ident_int( i32 0 )
2686                         to label %invcont5303 unwind label %unwind5266          ; <i32> [#uses=2]
2687
2688 invcont5303:            ; preds = %invcont5294
2689         %tmp5306 = invoke i32 @report__ident_int( i32 -10 )
2690                         to label %invcont5305 unwind label %unwind5266          ; <i32> [#uses=1]
2691
2692 invcont5305:            ; preds = %invcont5303
2693         %tmp5331 = invoke i32 @report__ident_int( i32 -20 )
2694                         to label %invcont5330 unwind label %unwind5266          ; <i32> [#uses=1]
2695
2696 invcont5330:            ; preds = %invcont5305
2697         %tmp5310 = icmp slt i32 %tmp5304, %tmp5306              ; <i1> [#uses=1]
2698         %tmp5318 = icmp sgt i32 %tmp5304, -11           ; <i1> [#uses=1]
2699         %bothcond5909 = or i1 %tmp5310, %tmp5318                ; <i1> [#uses=1]
2700         %not.bothcond5909 = xor i1 %bothcond5909, true          ; <i1> [#uses=1]
2701         %tmp5332 = icmp sgt i32 %tmp5331, -1            ; <i1> [#uses=1]
2702         %tmp5339 = invoke i32 @report__ident_int( i32 0 )
2703                         to label %invcont5338 unwind label %unwind5266          ; <i32> [#uses=2]
2704
2705 invcont5338:            ; preds = %invcont5330
2706         %tmp5343 = icmp slt i32 %tmp5339, 6             ; <i1> [#uses=1]
2707         br i1 %tmp5343, label %bb5358, label %cond_next5347
2708
2709 cond_next5347:          ; preds = %invcont5338
2710         %tmp5349 = invoke i32 @report__ident_int( i32 5 )
2711                         to label %invcont5348 unwind label %unwind5266          ; <i32> [#uses=1]
2712
2713 invcont5348:            ; preds = %cond_next5347
2714         %tmp5353 = icmp sgt i32 %tmp5339, %tmp5349              ; <i1> [#uses=1]
2715         br i1 %tmp5353, label %bb5358, label %bb5359
2716
2717 bb5358:         ; preds = %invcont5348, %invcont5338
2718         br label %bb5359
2719
2720 bb5359:         ; preds = %bb5358, %invcont5348
2721         %iftmp.181.0 = phi i1 [ false, %bb5358 ], [ true, %invcont5348 ]                ; <i1> [#uses=1]
2722         %tmp5366 = invoke i32 @report__ident_int( i32 0 )
2723                         to label %invcont5365 unwind label %unwind5266          ; <i32> [#uses=2]
2724
2725 invcont5365:            ; preds = %bb5359
2726         %tmp5370 = icmp slt i32 %tmp5366, 7             ; <i1> [#uses=1]
2727         br i1 %tmp5370, label %bb5385, label %cond_next5374
2728
2729 cond_next5374:          ; preds = %invcont5365
2730         %tmp5376 = invoke i32 @report__ident_int( i32 3 )
2731                         to label %invcont5375 unwind label %unwind5266          ; <i32> [#uses=1]
2732
2733 invcont5375:            ; preds = %cond_next5374
2734         %tmp5380 = icmp sgt i32 %tmp5366, %tmp5376              ; <i1> [#uses=1]
2735         br i1 %tmp5380, label %bb5385, label %bb5386
2736
2737 bb5385:         ; preds = %invcont5375, %invcont5365
2738         br label %bb5386
2739
2740 bb5386:         ; preds = %bb5385, %invcont5375
2741         %iftmp.182.0 = phi i1 [ false, %bb5385 ], [ true, %invcont5375 ]                ; <i1> [#uses=1]
2742         %tmp5301 = or i1 %tmp5296, %iftmp.179.0         ; <i1> [#uses=1]
2743         %tmp5328 = or i1 %tmp5301, %not.bothcond5909            ; <i1> [#uses=1]
2744         %tmp5336 = or i1 %tmp5328, %tmp5332             ; <i1> [#uses=1]
2745         %tmp5363 = or i1 %tmp5336, %iftmp.181.0         ; <i1> [#uses=1]
2746         %tmp5390 = or i1 %tmp5363, %iftmp.182.0         ; <i1> [#uses=1]
2747         br i1 %tmp5390, label %cond_true5393, label %cond_next5401
2748
2749 cond_true5393:          ; preds = %bb5386
2750         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([27 x i8]* @.str36 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.178.2066 to i32) to i64), i64 32)) )
2751                         to label %cond_next5401 unwind label %unwind5266
2752
2753 cond_next5401:          ; preds = %cond_true5393, %bb5386
2754         %tmp5430 = invoke i32 @report__ident_int( i32 0 )
2755                         to label %invcont5429 unwind label %unwind5266          ; <i32> [#uses=2]
2756
2757 invcont5429:            ; preds = %cond_next5401
2758         %tmp5432 = invoke i32 @report__ident_int( i32 4 )
2759                         to label %invcont5431 unwind label %unwind5266          ; <i32> [#uses=1]
2760
2761 invcont5431:            ; preds = %invcont5429
2762         %tmp5436 = icmp slt i32 %tmp5430, %tmp5432              ; <i1> [#uses=1]
2763         %tmp5444 = icmp sgt i32 %tmp5430, -4            ; <i1> [#uses=1]
2764         %bothcond5911 = or i1 %tmp5436, %tmp5444                ; <i1> [#uses=1]
2765         %tmp5457 = and i1 %bothcond5911, %bothcond5907          ; <i1> [#uses=1]
2766         br i1 %tmp5457, label %finally5471, label %cond_true5462
2767
2768 cond_true5462:          ; preds = %invcont5431
2769         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([29 x i8]* @.str37 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.36.923 to i32) to i64), i64 32)) )
2770                         to label %finally5471 unwind label %unwind5266
2771
2772 eh_then5476:            ; preds = %unwind5266
2773         invoke void @__gnat_begin_handler( i8* %eh_ptr5267 )
2774                         to label %invcont5482 unwind label %unwind5480
2775
2776 unwind5480:             ; preds = %invcont5484, %invcont5482, %eh_then5476
2777         %eh_ptr5481 = call i8* @llvm.eh.exception( )            ; <i8*> [#uses=1]
2778         call void @__gnat_end_handler( i8* %eh_ptr5267 )
2779         call i32 (...)* @_Unwind_Resume( i8* %eh_ptr5481 )              ; <i32>:26 [#uses=0]
2780         unreachable
2781
2782 invcont5482:            ; preds = %eh_then5476
2783         %tmp5483 = load void ()** @system__soft_links__abort_undefer            ; <void ()*> [#uses=1]
2784         invoke void %tmp5483( )
2785                         to label %invcont5484 unwind label %unwind5480
2786
2787 invcont5484:            ; preds = %invcont5482
2788         invoke void @report__failed( i64 or (i64 zext (i32 ptrtoint ([19 x i8]* @.str38 to i32) to i64), i64 shl (i64 zext (i32 ptrtoint (%struct.string___XUB* @C.170.1990 to i32) to i64), i64 32)) )
2789                         to label %cleanup5493 unwind label %unwind5480
2790
2791 cleanup5493:            ; preds = %invcont5484
2792         call void @__gnat_end_handler( i8* %eh_ptr5267 )
2793         call void @report__result( )
2794         ret void
2795
2796 finally5471:            ; preds = %cond_true5462, %invcont5431
2797         call void @report__result( )
2798         ret void
2799
2800 Unwind:         ; preds = %unwind5266, %unwind5032, %unwind4919, %unwind4770, %unwind3880, %unwind3618, %unwind3393, %eh_else3366, %eh_else3016, %eh_else2666, %eh_else1330, %eh_else932, %eh_else823
2801         %eh_exception.2 = phi i8* [ %eh_exception.05914.1, %eh_else823 ], [ %eh_ptr872, %eh_else932 ], [ %eh_ptr975, %eh_else1330 ], [ %eh_exception.296030.1, %eh_else2666 ], [ %eh_exception.336046.1, %eh_else3016 ], [ %eh_exception.396074.1, %eh_else3366 ], [ %eh_ptr3394, %unwind3393 ], [ %eh_ptr3619, %unwind3618 ], [ %eh_ptr3881, %unwind3880 ], [ %eh_ptr4771, %unwind4770 ], [ %eh_ptr4920, %unwind4919 ], [ %eh_ptr5033, %unwind5032 ], [ %eh_ptr5267, %unwind5266 ]             ; <i8*> [#uses=1]
2802         call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 )          ; <i32>:27 [#uses=0]
2803         unreachable
2804
2805 UnifiedUnreachableBlock34:              ; preds = %cond_true5031, %cond_true4918, %cond_true4609, %cond_true4504, %cond_true4481, %cond_true4187, %cond_true4117, %cond_true4027, %cond_true3935, %cond_true3907, %cond_true3729, %cond_true3675, %cond_true3617, %cond_true3543, %cond_true3448, %cond_true3420, %bb3227, %bb3193, %bb3171, %cond_true3061, %bb2877, %bb2843, %bb2821, %cond_true2711, %bb2558, %bb2524, %bb2506, %cond_true2410, %bb2203, %cond_true2171, %cond_true1946, %bb1605, %cond_true1573, %cond_true1546, %cond_true1418, %cond_true973, %cond_true870, %cond_true663, %cond_true637, %cond_true611, %cond_true585, %cond_true559, %cond_true533, %cond_true507, %cond_true465
2806         unreachable
2807
2808 UnifiedReturnBlock35:           ; preds = %cleanup4742, %invcont4719, %finally913, %cleanup928
2809         ret void
2810 }
2811
2812 declare i32 @report__ident_int(i32)
2813
2814 declare void @__gnat_rcheck_10(i8*, i32)
2815
2816 declare void @__gnat_rcheck_12(i8*, i32)
2817
2818 declare void @report__test(i64, i64)
2819
2820 declare i8* @llvm.eh.exception()
2821
2822 declare i32 @llvm.eh.selector(i8*, i8*, ...)
2823
2824 declare i32 @llvm.eh.typeid.for(i8*)
2825
2826 declare i32 @__gnat_eh_personality(...)
2827
2828 declare i32 @_Unwind_Resume(...)
2829
2830 declare void @system__secondary_stack__ss_mark(%struct.system__secondary_stack__mark_id* sret )
2831
2832 declare void @system__img_int__image_integer(%struct.string___XUP* sret , i32)
2833
2834 declare void @system__string_ops__str_concat(%struct.string___XUP* sret , i64, i64)
2835
2836 declare void @report__failed(i64)
2837
2838 declare void @system__secondary_stack__ss_release(i64)
2839
2840 declare void @__gnat_begin_handler(i8*)
2841
2842 declare void @__gnat_end_handler(i8*)
2843
2844 declare i8 @report__equal(i32, i32)
2845
2846 declare i8* @llvm.stacksave()
2847
2848 declare void @__gnat_rcheck_07(i8*, i32)
2849
2850 declare i8* @__gnat_malloc(i32)
2851
2852 declare void @llvm.stackrestore(i8*)
2853
2854 declare void @llvm.memcpy.i32(i8*, i8*, i32, i32)
2855
2856 declare void @__gnat_rcheck_05(i8*, i32)
2857
2858 declare void @__gnat_rcheck_06(i8*, i32)
2859
2860 declare void @system__img_enum__image_enumeration_8(%struct.string___XUP* sret , i32, i64, i8*)
2861
2862 declare i32 @memcmp(i8*, i8*, i32, ...)
2863
2864 declare void @report__result()