1 ; RUN: llvm-as < %s | opt -prune-eh -inline -print-callgraph \
2 ; RUN: -disable-output |& \
3 ; RUN: grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
4 %struct.FRAME.ce3806g = type { %struct.string___XUB, %struct.string___XUB, %struct.string___XUB, %struct.string___XUB }
5 %struct.FRAME.ce3806g__fxio__put__4 = type { i32, i32, i32, %struct.system__file_control_block__pstring*, i32, i32, i8 }
6 %struct.RETURN = type { i8, i32 }
7 %struct.ada__streams__root_stream_type = type { %struct.ada__tags__dispatch_table* }
8 %struct.ada__tags__dispatch_table = type { [1 x i32] }
9 %struct.ada__tags__select_specific_data = type { i32, %struct.ada__tags__select_specific_data_element }
10 %struct.ada__tags__select_specific_data_element = type { i32, i8 }
11 %struct.ada__tags__type_specific_data = type { i32, i32, [2147483647 x i8]*, [2147483647 x i8]*, %struct.ada__tags__dispatch_table*, i8, i32, i32, i32, i32, [2 x %struct.ada__tags__dispatch_table*] }
12 %struct.ada__text_io__text_afcb = type { %struct.system__file_control_block__afcb, i32, i32, i32, i32, i32, %struct.ada__text_io__text_afcb*, i8, i8 }
13 %struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
14 %struct.long_long_float___PAD = type { x86_fp80, [1 x i32] }
15 %struct.string___XUB = type { i32, i32 }
16 %struct.system__file_control_block__afcb = type { %struct.ada__streams__root_stream_type, i32, %struct.system__file_control_block__pstring, %struct.system__file_control_block__pstring, i8, i8, i8, i8, i8, i8, i8, %struct.system__file_control_block__afcb*, %struct.system__file_control_block__afcb* }
17 %struct.system__file_control_block__pstring = type { i8*, %struct.string___XUB* }
18 %struct.system__finalization_implementation__limited_record_controller = type { %struct.system__finalization_root__root_controlled, %struct.system__finalization_root__root_controlled* }
19 %struct.system__finalization_implementation__record_controller = type { %struct.system__finalization_implementation__limited_record_controller, i32 }
20 %struct.system__finalization_root__empty_root_controlled = type { %struct.ada__tags__dispatch_table* }
21 %struct.system__finalization_root__root_controlled = type { %struct.ada__streams__root_stream_type, %struct.system__finalization_root__root_controlled*, %struct.system__finalization_root__root_controlled* }
22 %struct.system__secondary_stack__mark_id = type { i32, i32 }
23 %struct.system__standard_library__exception_data = type { i8, i8, i32, i32, %struct.system__standard_library__exception_data*, i32, void ()* }
24 @.str = internal constant [12 x i8] c"system.ads\00\00" ; <[12 x i8]*> [#uses=1]
25 @.str1 = internal constant [14 x i8] c"a-tifiio.adb\00\00" ; <[14 x i8]*> [#uses=1]
26 @system__soft_links__abort_undefer = external global void ()* ; <void ()**> [#uses=6]
27 @.str2 = internal constant [47 x i8] c"a-tifiio.adb:327 instantiated at ce3806g.adb:52" ; <[47 x i8]*> [#uses=1]
28 @C.354.2200 = internal constant %struct.string___XUB { i32 1, i32 47 } ; <%struct.string___XUB*> [#uses=1]
29 @ada__io_exceptions__data_error = external global %struct.exception ; <%struct.exception*> [#uses=1]
30 @constraint_error = external global %struct.exception ; <%struct.exception*> [#uses=2]
31 @__gnat_all_others_value = external constant i32 ; <i32*> [#uses=21]
32 @.str3 = internal constant [10 x i8] c"0123456789" ; <[10 x i8]*> [#uses=2]
33 @ada__text_io__current_out = external global %struct.ada__text_io__text_afcb* ; <%struct.ada__text_io__text_afcb**> [#uses=1]
34 @.str4 = internal constant [126 x i8] c"CHECK THAT FIXED_IO PUT OPERATES ON FILES OF MODE OUT_FILE AND IF NO FILE IS SPECIFIED THE CURRENT DEFAULT OUTPUT FILE IS USED" ; <[126 x i8]*> [#uses=1]
35 @C.131.1559 = internal constant %struct.string___XUB { i32 1, i32 126 } ; <%struct.string___XUB*> [#uses=1]
36 @.str5 = internal constant [7 x i8] c"CE3806G" ; <[7 x i8]*> [#uses=1]
37 @C.132.1562 = internal constant %struct.string___XUB { i32 1, i32 7 } ; <%struct.string___XUB*> [#uses=1]
38 @incompleteF.1176.b = internal global i1 false ; <i1*> [#uses=2]
39 @incomplete.1177 = internal global %struct.exception { i8 0, i8 65, i32 23, i8* getelementptr ([23 x i8]* @incompleteE.1174, i32 0, i32 0), i8* null, i32 0, i8* null } ; <%struct.exception*> [#uses=15]
40 @incompleteE.1174 = internal global [23 x i8] c"CE3806G.B_1.INCOMPLETE\00" ; <[23 x i8]*> [#uses=1]
41 @.str6 = internal constant [0 x i8] zeroinitializer ; <[0 x i8]*> [#uses=1]
42 @C.136.1568 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
43 @C.137.1571 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
44 @.str7 = internal constant [50 x i8] c"USE_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE" ; <[50 x i8]*> [#uses=1]
45 @C.139.1577 = internal constant %struct.string___XUB { i32 1, i32 50 } ; <%struct.string___XUB*> [#uses=1]
46 @.str8 = internal constant [14 x i8] c"ce3806g.adb:65" ; <[14 x i8]*> [#uses=1]
47 @C.140.1580 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
48 @.str9 = internal constant [51 x i8] c"NAME_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE" ; <[51 x i8]*> [#uses=1]
49 @C.143.1585 = internal constant %struct.string___XUB { i32 1, i32 51 } ; <%struct.string___XUB*> [#uses=1]
50 @.str10 = internal constant [14 x i8] c"ce3806g.adb:69" ; <[14 x i8]*> [#uses=1]
51 @C.144.1588 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
52 @C.146.1592 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
53 @C.147.1595 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
54 @C.153.1609 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
55 @C.154.1612 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
56 @.str12 = internal constant [47 x i8] c"USE_ERROR RAISED ON TEXT OPEN WITH IN_FILE MODE" ; <[47 x i8]*> [#uses=1]
57 @C.156.1618 = internal constant %struct.string___XUB { i32 1, i32 47 } ; <%struct.string___XUB*> [#uses=1]
58 @.str13 = internal constant [14 x i8] c"ce3806g.adb:88" ; <[14 x i8]*> [#uses=1]
59 @C.157.1621 = internal constant %struct.string___XUB { i32 1, i32 14 } ; <%struct.string___XUB*> [#uses=1]
60 @C.159.1627 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
61 @C.160.1630 = internal constant %struct.string___XUB { i32 1, i32 0 } ; <%struct.string___XUB*> [#uses=1]
62 @.str14 = internal constant [33 x i8] c"VALUE INCORRECT - FIXED FROM FILE" ; <[33 x i8]*> [#uses=1]
63 @C.162.1637 = internal constant %struct.string___XUB { i32 1, i32 33 } ; <%struct.string___XUB*> [#uses=1]
64 @.str15 = internal constant [36 x i8] c"VALUE INCORRECT - FIXED FROM DEFAULT" ; <[36 x i8]*> [#uses=1]
65 @C.164.1642 = internal constant %struct.string___XUB { i32 1, i32 36 } ; <%struct.string___XUB*> [#uses=1]
66 @ada__io_exceptions__use_error = external global %struct.exception ; <%struct.exception*> [#uses=4]
67 @ada__io_exceptions__name_error = external global %struct.exception ; <%struct.exception*> [#uses=2]
69 define void @_ada_ce3806g() {
71 %0 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
72 %1 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
73 %2 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
74 %3 = alloca %struct.system__file_control_block__pstring, align 8 ; <%struct.system__file_control_block__pstring*> [#uses=3]
75 %FRAME.356 = alloca %struct.FRAME.ce3806g ; <%struct.FRAME.ce3806g*> [#uses=20]
76 call void @report__test( i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), %struct.string___XUB* @C.132.1562, i8* getelementptr ([126 x i8]* @.str4, i32 0, i32 0), %struct.string___XUB* @C.131.1559 )
77 %4 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3 ; <%struct.string___XUB*> [#uses=1]
78 call void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %4 )
79 %.b = load i1* @incompleteF.1176.b ; <i1> [#uses=1]
80 br i1 %.b, label %bb11, label %bb
83 invoke void @system__exception_table__register_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*) )
84 to label %invcont unwind label %lpad
86 invcont: ; preds = %bb
87 store i1 true, i1* @incompleteF.1176.b
90 bb11: ; preds = %entry, %invcont
91 %5 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2 ; <%struct.string___XUB*> [#uses=1]
92 invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %5 )
93 to label %invcont12 unwind label %lpad228
95 invcont12: ; preds = %bb11
96 invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %3, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.137.1571 )
97 to label %invcont17 unwind label %lpad232
99 invcont17: ; preds = %invcont12
100 %elt18 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 0 ; <i8**> [#uses=1]
101 %val19 = load i8** %elt18, align 8 ; <i8*> [#uses=1]
102 %elt20 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
103 %val21 = load %struct.string___XUB** %elt20 ; <%struct.string___XUB*> [#uses=1]
104 %6 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val19, %struct.string___XUB* %val21, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.136.1568 )
105 to label %invcont26 unwind label %lpad232 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
107 invcont26: ; preds = %invcont17
108 %7 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0 ; <i32*> [#uses=1]
109 %8 = load i32* %7, align 8 ; <i32> [#uses=1]
110 %9 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1 ; <i32*> [#uses=1]
111 %10 = load i32* %9, align 4 ; <i32> [#uses=1]
112 invoke void @system__secondary_stack__ss_release( i32 %8, i32 %10 )
113 to label %bb73 unwind label %lpad228
115 bb32: ; preds = %lpad232
116 call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
117 %11 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
119 to label %invcont33 unwind label %lpad240
121 invcont33: ; preds = %bb32
122 invoke void @report__not_applicable( i8* getelementptr ([50 x i8]* @.str7, i32 0, i32 0), %struct.string___XUB* @C.139.1577 )
123 to label %invcont38 unwind label %lpad240
125 invcont38: ; preds = %invcont33
126 invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str8, i32 0, i32 0), %struct.string___XUB* @C.140.1580 ) noreturn
127 to label %invcont43 unwind label %lpad240
129 invcont43: ; preds = %invcont38
132 bb47: ; preds = %ppad291
133 call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
134 %12 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
136 to label %invcont49 unwind label %lpad248
138 invcont49: ; preds = %bb47
139 invoke void @report__not_applicable( i8* getelementptr ([51 x i8]* @.str9, i32 0, i32 0), %struct.string___XUB* @C.143.1585 )
140 to label %invcont54 unwind label %lpad248
142 invcont54: ; preds = %invcont49
143 invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str10, i32 0, i32 0), %struct.string___XUB* @C.144.1588 ) noreturn
144 to label %invcont59 unwind label %lpad248
146 invcont59: ; preds = %invcont54
149 bb73: ; preds = %invcont26
150 invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %2, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.147.1595 )
151 to label %invcont78 unwind label %lpad228
153 invcont78: ; preds = %bb73
154 %elt79 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 0 ; <i8**> [#uses=1]
155 %val80 = load i8** %elt79, align 8 ; <i8*> [#uses=1]
156 %elt81 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
157 %val82 = load %struct.string___XUB** %elt81 ; <%struct.string___XUB*> [#uses=1]
158 %13 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__create( %struct.ada__text_io__text_afcb* null, i8 2, i8* %val80, %struct.string___XUB* %val82, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.146.1592 )
159 to label %invcont87 unwind label %lpad228 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
161 invcont87: ; preds = %invcont78
162 invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %13 )
163 to label %invcont88 unwind label %lpad228
165 invcont88: ; preds = %invcont87
166 %14 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1 ; <%struct.string___XUB*> [#uses=1]
167 invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %14 )
168 to label %invcont89 unwind label %lpad228
170 invcont89: ; preds = %invcont88
171 invoke fastcc void @ce3806g__fxio__put.1149( %struct.ada__text_io__text_afcb* %6 )
172 to label %bb94 unwind label %lpad252
174 bb94: ; preds = %invcont89
175 invoke fastcc void @ce3806g__fxio__put__2.1155( )
176 to label %invcont95 unwind label %lpad252
178 invcont95: ; preds = %bb94
179 %15 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %6 )
180 to label %invcont96 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
182 invcont96: ; preds = %invcont95
183 %16 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0 ; <%struct.string___XUB*> [#uses=1]
184 invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %16 )
185 to label %invcont97 unwind label %lpad252
187 invcont97: ; preds = %invcont96
188 invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %1, i32 1, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.154.1612 )
189 to label %invcont102 unwind label %lpad256
191 invcont102: ; preds = %invcont97
192 %elt103 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 0 ; <i8**> [#uses=1]
193 %val104 = load i8** %elt103, align 8 ; <i8*> [#uses=1]
194 %elt105 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
195 %val106 = load %struct.string___XUB** %elt105 ; <%struct.string___XUB*> [#uses=1]
196 %17 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %15, i8 0, i8* %val104, %struct.string___XUB* %val106, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.153.1609 )
197 to label %invcont111 unwind label %lpad256 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
199 invcont111: ; preds = %invcont102
200 %18 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
201 %19 = load i32* %18, align 8 ; <i32> [#uses=1]
202 %20 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1 ; <i32*> [#uses=1]
203 %21 = load i32* %20, align 4 ; <i32> [#uses=1]
204 invoke void @system__secondary_stack__ss_release( i32 %19, i32 %21 )
205 to label %bb143 unwind label %lpad252
207 bb117: ; preds = %lpad256
208 call void @__gnat_begin_handler( i8* %eh_ptr257 ) nounwind
209 %22 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
211 to label %invcont119 unwind label %lpad264
213 invcont119: ; preds = %bb117
214 invoke void @report__not_applicable( i8* getelementptr ([47 x i8]* @.str12, i32 0, i32 0), %struct.string___XUB* @C.156.1618 )
215 to label %invcont124 unwind label %lpad264
217 invcont124: ; preds = %invcont119
218 invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @incomplete.1177 to %struct.system__standard_library__exception_data*), i8* getelementptr ([14 x i8]* @.str13, i32 0, i32 0), %struct.string___XUB* @C.157.1621 ) noreturn
219 to label %invcont129 unwind label %lpad264
221 invcont129: ; preds = %invcont124
224 bb143: ; preds = %invcont111
225 %23 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__standard_output( )
226 to label %invcont144 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
228 invcont144: ; preds = %bb143
229 invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %23 )
230 to label %invcont145 unwind label %lpad252
232 invcont145: ; preds = %invcont144
233 %24 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %13 )
234 to label %invcont146 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
236 invcont146: ; preds = %invcont145
237 invoke void @report__legal_file_name( %struct.system__file_control_block__pstring* noalias sret %0, i32 2, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.160.1630 )
238 to label %invcont151 unwind label %lpad252
240 invcont151: ; preds = %invcont146
241 %elt152 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 0 ; <i8**> [#uses=1]
242 %val153 = load i8** %elt152, align 8 ; <i8*> [#uses=1]
243 %elt154 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
244 %val155 = load %struct.string___XUB** %elt154 ; <%struct.string___XUB*> [#uses=1]
245 %25 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__open( %struct.ada__text_io__text_afcb* %24, i8 0, i8* %val153, %struct.string___XUB* %val155, i8* getelementptr ([0 x i8]* @.str6, i32 0, i32 0), %struct.string___XUB* @C.159.1627 )
246 to label %invcont160 unwind label %lpad252 ; <%struct.ada__text_io__text_afcb*> [#uses=2]
248 invcont160: ; preds = %invcont151
249 %26 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %17 ) signext
250 to label %invcont161 unwind label %lpad252 ; <i8> [#uses=1]
252 invcont161: ; preds = %invcont160
253 %27 = icmp eq i8 %26, -3 ; <i1> [#uses=1]
254 br i1 %27, label %bb169, label %bb163
256 bb163: ; preds = %invcont161
257 invoke void @report__failed( i8* getelementptr ([33 x i8]* @.str14, i32 0, i32 0), %struct.string___XUB* @C.162.1637 )
258 to label %bb169 unwind label %lpad252
260 bb169: ; preds = %invcont161, %bb163
261 %28 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %25 ) signext
262 to label %invcont170 unwind label %lpad252 ; <i8> [#uses=1]
264 invcont170: ; preds = %bb169
265 %29 = icmp eq i8 %28, -1 ; <i1> [#uses=1]
266 br i1 %29, label %bb187, label %bb172
268 bb172: ; preds = %invcont170
269 invoke void @report__failed( i8* getelementptr ([36 x i8]* @.str15, i32 0, i32 0), %struct.string___XUB* @C.164.1642 )
270 to label %bb187 unwind label %lpad252
272 bb187: ; preds = %invcont170, %bb172
273 %30 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
274 %31 = load i32* %30, align 8 ; <i32> [#uses=1]
275 %32 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1 ; <i32*> [#uses=1]
276 %33 = load i32* %32, align 4 ; <i32> [#uses=1]
277 invoke void @system__secondary_stack__ss_release( i32 %31, i32 %33 )
278 to label %bb193 unwind label %lpad228
280 bb193: ; preds = %bb187
281 %34 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %17 )
282 to label %invcont194 unwind label %lpad268 ; <%struct.ada__text_io__text_afcb*> [#uses=0]
284 invcont194: ; preds = %bb193
285 %35 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %25 )
286 to label %bb221 unwind label %lpad268 ; <%struct.ada__text_io__text_afcb*> [#uses=0]
288 bb196: ; preds = %lpad268
289 call void @__gnat_begin_handler( i8* %eh_ptr269 ) nounwind
290 %36 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
292 to label %bb203 unwind label %lpad276
294 bb203: ; preds = %bb196
295 invoke void @__gnat_end_handler( i8* %eh_ptr269 )
296 to label %bb221 unwind label %lpad272
298 bb205: ; preds = %ppad304
299 call void @__gnat_begin_handler( i8* %eh_exception.1 ) nounwind
300 %37 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
302 to label %bb212 unwind label %lpad284
304 bb212: ; preds = %bb205
305 invoke void @__gnat_end_handler( i8* %eh_exception.1 )
306 to label %bb221 unwind label %lpad280
308 bb221: ; preds = %invcont194, %bb212, %bb203
309 %38 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0 ; <i32*> [#uses=1]
310 %39 = load i32* %38, align 8 ; <i32> [#uses=1]
311 %40 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1 ; <i32*> [#uses=1]
312 %41 = load i32* %40, align 4 ; <i32> [#uses=1]
313 call void @system__secondary_stack__ss_release( i32 %39, i32 %41 )
314 call void @report__result( )
318 %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
319 %eh_select227 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
322 lpad228: ; preds = %bb187, %ppad294, %invcont88, %invcont87, %invcont78, %bb73, %ppad288, %invcont26, %bb11
323 %eh_ptr229 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
324 %eh_select231 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr229, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
327 lpad232: ; preds = %invcont17, %invcont12
328 %eh_ptr233 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=6]
329 %eh_select235 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr233, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @ada__io_exceptions__name_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=3]
330 %eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
331 %42 = icmp eq i32 %eh_select235, %eh_typeid ; <i1> [#uses=1]
332 br i1 %42, label %bb32, label %ppad291
334 lpad236: ; preds = %lpad240
335 %eh_ptr237 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
336 %eh_select239 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr237, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
339 lpad240: ; preds = %invcont38, %invcont33, %bb32
340 %eh_ptr241 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
341 %eh_select243 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr241, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
342 invoke void @__gnat_end_handler( i8* %eh_ptr233 )
343 to label %ppad288 unwind label %lpad236
345 lpad244: ; preds = %lpad248
346 %eh_ptr245 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
347 %eh_select247 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr245, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
350 lpad248: ; preds = %invcont54, %invcont49, %bb47
351 %eh_ptr249 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
352 %eh_select251 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr249, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
353 invoke void @__gnat_end_handler( i8* %eh_ptr233 )
354 to label %ppad288 unwind label %lpad244
356 lpad252: ; preds = %bb94, %invcont89, %invcont160, %bb169, %bb172, %bb163, %invcont151, %invcont146, %invcont145, %invcont144, %bb143, %ppad295, %invcont111, %invcont96, %invcont95
357 %eh_ptr253 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
358 %eh_select255 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr253, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
361 lpad256: ; preds = %invcont102, %invcont97
362 %eh_ptr257 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=4]
363 %eh_select259 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr257, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=2]
364 %eh_typeid297 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
365 %43 = icmp eq i32 %eh_select259, %eh_typeid297 ; <i1> [#uses=1]
366 br i1 %43, label %bb117, label %ppad295
368 lpad260: ; preds = %lpad264
369 %eh_ptr261 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
370 %eh_select263 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr261, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
373 lpad264: ; preds = %invcont124, %invcont119, %bb117
374 %eh_ptr265 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
375 %eh_select267 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr265, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
376 invoke void @__gnat_end_handler( i8* %eh_ptr257 )
377 to label %ppad295 unwind label %lpad260
379 lpad268: ; preds = %invcont194, %bb193
380 %eh_ptr269 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=5]
381 %eh_select271 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr269, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @ada__io_exceptions__use_error, %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=2]
382 %eh_typeid301 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__use_error, i32 0, i32 0) ) ; <i32> [#uses=1]
383 %44 = icmp eq i32 %eh_select271, %eh_typeid301 ; <i1> [#uses=1]
384 br i1 %44, label %bb196, label %ppad304
386 lpad272: ; preds = %bb203, %lpad276
387 %eh_ptr273 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
388 %eh_select275 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr273, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
391 lpad276: ; preds = %bb196
392 %eh_ptr277 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
393 %eh_select279 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr277, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @incomplete.1177, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
394 invoke void @__gnat_end_handler( i8* %eh_ptr269 )
395 to label %ppad304 unwind label %lpad272
397 lpad280: ; preds = %bb212, %lpad284
398 %eh_ptr281 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
399 %eh_select283 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr281, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
402 lpad284: ; preds = %bb205
403 %eh_ptr285 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
404 %eh_select287 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr285, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
405 invoke void @__gnat_end_handler( i8* %eh_exception.1 )
406 to label %ppad unwind label %lpad280
408 ppad: ; preds = %lpad284, %ppad304, %lpad280, %lpad
409 %eh_exception.2 = phi i8* [ %eh_exception.1, %ppad304 ], [ %eh_ptr281, %lpad280 ], [ %eh_ptr, %lpad ], [ %eh_ptr285, %lpad284 ] ; <i8*> [#uses=1]
410 %45 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0 ; <i32*> [#uses=1]
411 %46 = load i32* %45, align 8 ; <i32> [#uses=1]
412 %47 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1 ; <i32*> [#uses=1]
413 %48 = load i32* %47, align 4 ; <i32> [#uses=1]
414 call void @system__secondary_stack__ss_release( i32 %46, i32 %48 )
415 %49 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 ) ; <i32> [#uses=0]
418 ppad288: ; preds = %lpad248, %lpad240, %ppad291, %lpad244, %lpad236
419 %eh_exception.0 = phi i8* [ %eh_ptr233, %ppad291 ], [ %eh_ptr245, %lpad244 ], [ %eh_ptr237, %lpad236 ], [ %eh_ptr241, %lpad240 ], [ %eh_ptr249, %lpad248 ] ; <i8*> [#uses=1]
420 %eh_selector.0 = phi i32 [ %eh_select235, %ppad291 ], [ %eh_select247, %lpad244 ], [ %eh_select239, %lpad236 ], [ %eh_select243, %lpad240 ], [ %eh_select251, %lpad248 ] ; <i32> [#uses=1]
421 %50 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0 ; <i32*> [#uses=1]
422 %51 = load i32* %50, align 8 ; <i32> [#uses=1]
423 %52 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1 ; <i32*> [#uses=1]
424 %53 = load i32* %52, align 4 ; <i32> [#uses=1]
425 invoke void @system__secondary_stack__ss_release( i32 %51, i32 %53 )
426 to label %ppad304 unwind label %lpad228
428 ppad291: ; preds = %lpad232
429 %eh_typeid292 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @ada__io_exceptions__name_error, i32 0, i32 0) ) ; <i32> [#uses=1]
430 %54 = icmp eq i32 %eh_select235, %eh_typeid292 ; <i1> [#uses=1]
431 br i1 %54, label %bb47, label %ppad288
433 ppad294: ; preds = %ppad295, %lpad252
434 %eh_exception.4 = phi i8* [ %eh_ptr253, %lpad252 ], [ %eh_exception.3, %ppad295 ] ; <i8*> [#uses=1]
435 %eh_selector.4 = phi i32 [ %eh_select255, %lpad252 ], [ %eh_selector.3, %ppad295 ] ; <i32> [#uses=1]
436 %55 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
437 %56 = load i32* %55, align 8 ; <i32> [#uses=1]
438 %57 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1 ; <i32*> [#uses=1]
439 %58 = load i32* %57, align 4 ; <i32> [#uses=1]
440 invoke void @system__secondary_stack__ss_release( i32 %56, i32 %58 )
441 to label %ppad304 unwind label %lpad228
443 ppad295: ; preds = %lpad264, %lpad256, %lpad260
444 %eh_exception.3 = phi i8* [ %eh_ptr257, %lpad256 ], [ %eh_ptr261, %lpad260 ], [ %eh_ptr265, %lpad264 ] ; <i8*> [#uses=1]
445 %eh_selector.3 = phi i32 [ %eh_select259, %lpad256 ], [ %eh_select263, %lpad260 ], [ %eh_select267, %lpad264 ] ; <i32> [#uses=1]
446 %59 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
447 %60 = load i32* %59, align 8 ; <i32> [#uses=1]
448 %61 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1 ; <i32*> [#uses=1]
449 %62 = load i32* %61, align 4 ; <i32> [#uses=1]
450 invoke void @system__secondary_stack__ss_release( i32 %60, i32 %62 )
451 to label %ppad294 unwind label %lpad252
453 ppad304: ; preds = %lpad276, %ppad294, %ppad288, %lpad268, %lpad272, %lpad228
454 %eh_exception.1 = phi i8* [ %eh_ptr229, %lpad228 ], [ %eh_ptr269, %lpad268 ], [ %eh_ptr273, %lpad272 ], [ %eh_exception.0, %ppad288 ], [ %eh_exception.4, %ppad294 ], [ %eh_ptr277, %lpad276 ] ; <i8*> [#uses=4]
455 %eh_selector.1 = phi i32 [ %eh_select231, %lpad228 ], [ %eh_select271, %lpad268 ], [ %eh_select275, %lpad272 ], [ %eh_selector.0, %ppad288 ], [ %eh_selector.4, %ppad294 ], [ %eh_select279, %lpad276 ] ; <i32> [#uses=1]
456 %eh_typeid305 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @incomplete.1177, i32 0, i32 0) ) ; <i32> [#uses=1]
457 %63 = icmp eq i32 %eh_selector.1, %eh_typeid305 ; <i1> [#uses=1]
458 br i1 %63, label %bb205, label %ppad
461 define internal fastcc i8 @ce3806g__fxio__get.1137(%struct.ada__text_io__text_afcb* %file) signext {
463 %0 = invoke x86_fp80 @ada__text_io__float_aux__get( %struct.ada__text_io__text_afcb* %file, i32 0 )
464 to label %invcont unwind label %lpad ; <x86_fp80> [#uses=5]
466 invcont: ; preds = %entry
467 %1 = fcmp ult x86_fp80 %0, 0xKFFFEFFFFFFFFFFFFFFFF ; <i1> [#uses=1]
468 %2 = fcmp ugt x86_fp80 %0, 0xK7FFEFFFFFFFFFFFFFFFF ; <i1> [#uses=1]
469 %or.cond = or i1 %1, %2 ; <i1> [#uses=1]
470 br i1 %or.cond, label %bb2, label %bb4
472 bb2: ; preds = %invcont
473 invoke void @__gnat_rcheck_12( i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i32 1 ) noreturn
474 to label %invcont3 unwind label %lpad
476 invcont3: ; preds = %bb2
479 bb4: ; preds = %invcont
480 %3 = mul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=1]
481 %4 = fcmp ult x86_fp80 %3, 0xKC0068000000000000000 ; <i1> [#uses=1]
482 br i1 %4, label %bb8, label %bb6
485 %5 = mul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=1]
486 %6 = fcmp ugt x86_fp80 %5, 0xK4005FE00000000000000 ; <i1> [#uses=1]
487 br i1 %6, label %bb8, label %bb10
489 bb8: ; preds = %bb4, %bb6
490 invoke void @__gnat_rcheck_10( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
491 to label %invcont9 unwind label %lpad
493 invcont9: ; preds = %bb8
497 %7 = mul x86_fp80 %0, 0xK40008000000000000000 ; <x86_fp80> [#uses=3]
498 %8 = fcmp ult x86_fp80 %7, 0xK00000000000000000000 ; <i1> [#uses=1]
499 br i1 %8, label %bb13, label %bb12
501 bb12: ; preds = %bb10
502 %9 = add x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF ; <x86_fp80> [#uses=1]
505 bb13: ; preds = %bb10
506 %10 = sub x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF ; <x86_fp80> [#uses=1]
509 bb14: ; preds = %bb13, %bb12
510 %iftmp.339.0.in = phi x86_fp80 [ %10, %bb13 ], [ %9, %bb12 ] ; <x86_fp80> [#uses=1]
511 %iftmp.339.0 = fptosi x86_fp80 %iftmp.339.0.in to i8 ; <i8> [#uses=3]
512 %11 = add i8 %iftmp.339.0, 20 ; <i8> [#uses=1]
513 %12 = icmp ugt i8 %11, 40 ; <i1> [#uses=1]
514 br i1 %12, label %bb16, label %bb18
516 bb16: ; preds = %bb14
517 invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
518 to label %invcont17 unwind label %lpad
520 invcont17: ; preds = %bb16
523 bb18: ; preds = %bb14
524 %13 = add i8 %iftmp.339.0, 20 ; <i8> [#uses=1]
525 %14 = icmp ugt i8 %13, 40 ; <i1> [#uses=1]
526 br i1 %14, label %bb20, label %bb22
528 bb20: ; preds = %bb18
529 invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
530 to label %invcont21 unwind label %lpad
532 invcont21: ; preds = %bb20
535 bb22: ; preds = %bb18
538 bb23: ; preds = %lpad
539 call void @__gnat_begin_handler( i8* %eh_ptr ) nounwind
540 %15 = load void ()** @system__soft_links__abort_undefer, align 4 ; <void ()*> [#uses=1]
542 to label %invcont24 unwind label %lpad33
544 invcont24: ; preds = %bb23
545 invoke void @__gnat_raise_exception( %struct.system__standard_library__exception_data* bitcast (%struct.exception* @ada__io_exceptions__data_error to %struct.system__standard_library__exception_data*), i8* getelementptr ([47 x i8]* @.str2, i32 0, i32 0), %struct.string___XUB* @C.354.2200 ) noreturn
546 to label %invcont27 unwind label %lpad33
548 invcont27: ; preds = %invcont24
551 lpad: ; preds = %bb20, %bb16, %bb8, %bb2, %entry
552 %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=4]
553 %eh_select32 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), %struct.exception* @constraint_error, i32* @__gnat_all_others_value ) ; <i32> [#uses=1]
554 %eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) ) ; <i32> [#uses=1]
555 %16 = icmp eq i32 %eh_select32, %eh_typeid ; <i1> [#uses=1]
556 br i1 %16, label %bb23, label %Unwind
558 lpad33: ; preds = %invcont24, %bb23
559 %eh_ptr34 = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
560 %eh_select36 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr34, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
561 call void @__gnat_end_handler( i8* %eh_ptr )
564 Unwind: ; preds = %lpad, %lpad33
565 %eh_exception.0 = phi i8* [ %eh_ptr, %lpad ], [ %eh_ptr34, %lpad33 ] ; <i8*> [#uses=1]
566 %17 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.0 ) ; <i32> [#uses=0]
570 define internal fastcc void @ce3806g__fxio__put.1149(%struct.ada__text_io__text_afcb* %file) {
572 %A.301 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
573 %A.292 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
574 %0 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
575 %1 = alloca [12 x i8] ; <[12 x i8]*> [#uses=1]
576 %.sub = getelementptr [12 x i8]* %1, i32 0, i32 0 ; <i8*> [#uses=2]
577 %2 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 0 ; <i32*> [#uses=1]
578 store i32 1, i32* %2, align 8
579 %3 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 1 ; <i32*> [#uses=1]
580 store i32 12, i32* %3, align 4
581 %4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.292, i8 signext -3 )
582 to label %invcont unwind label %lpad ; <i32> [#uses=1]
584 invcont: ; preds = %entry
585 %5 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 0 ; <i32*> [#uses=1]
586 store i32 1, i32* %5, align 8
587 %6 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 1 ; <i32*> [#uses=1]
588 store i32 %4, i32* %6, align 4
589 invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %file, i8* %.sub, %struct.string___XUB* %A.301 )
590 to label %bb60 unwind label %lpad
592 bb60: ; preds = %invcont
595 lpad: ; preds = %entry, %invcont
596 %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
597 %eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
598 call void @llvm.stackrestore( i8* %0 )
599 %7 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
603 define internal fastcc void @ce3806g__fxio__put__2.1155() {
605 %A.266 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
606 %A.257 = alloca %struct.string___XUB ; <%struct.string___XUB*> [#uses=3]
607 %0 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
608 %1 = alloca [12 x i8] ; <[12 x i8]*> [#uses=1]
609 %.sub = getelementptr [12 x i8]* %1, i32 0, i32 0 ; <i8*> [#uses=2]
610 %2 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 0 ; <i32*> [#uses=1]
611 store i32 1, i32* %2, align 8
612 %3 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 1 ; <i32*> [#uses=1]
613 store i32 12, i32* %3, align 4
614 %4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.257, i8 signext -1 )
615 to label %invcont unwind label %lpad ; <i32> [#uses=1]
617 invcont: ; preds = %entry
618 %5 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 0 ; <i32*> [#uses=1]
619 store i32 1, i32* %5, align 8
620 %6 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 1 ; <i32*> [#uses=1]
621 store i32 %4, i32* %6, align 4
622 %7 = load %struct.ada__text_io__text_afcb** @ada__text_io__current_out, align 4 ; <%struct.ada__text_io__text_afcb*> [#uses=1]
623 invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %7, i8* %.sub, %struct.string___XUB* %A.266 )
624 to label %bb60 unwind label %lpad
626 bb60: ; preds = %invcont
629 lpad: ; preds = %entry, %invcont
630 %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
631 %eh_select62 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
632 call void @llvm.stackrestore( i8* %0 )
633 %8 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
637 define internal fastcc i32 @ce3806g__fxio__put__4.1215(i8* %to.0, %struct.string___XUB* %to.1, i8 signext %item) {
639 %to_addr = alloca %struct.system__file_control_block__pstring ; <%struct.system__file_control_block__pstring*> [#uses=4]
640 %FRAME.358 = alloca %struct.FRAME.ce3806g__fxio__put__4 ; <%struct.FRAME.ce3806g__fxio__put__4*> [#uses=65]
641 %0 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 0 ; <i8**> [#uses=1]
642 store i8* %to.0, i8** %0, align 8
643 %1 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
644 store %struct.string___XUB* %to.1, %struct.string___XUB** %1
645 %2 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
646 store %struct.system__file_control_block__pstring* %to_addr, %struct.system__file_control_block__pstring** %2, align 4
647 %3 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
648 store i32 3, i32* %3, align 8
649 %4 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1 ; <%struct.string___XUB**> [#uses=1]
650 %5 = load %struct.string___XUB** %4, align 4 ; <%struct.string___XUB*> [#uses=1]
651 %6 = getelementptr %struct.string___XUB* %5, i32 0, i32 0 ; <i32*> [#uses=1]
652 %7 = load i32* %6, align 4 ; <i32> [#uses=1]
653 %8 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
654 store i32 %7, i32* %8, align 8
655 %9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
656 %10 = load i32* %9, align 8 ; <i32> [#uses=1]
657 %11 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
658 store i32 %10, i32* %11, align 8
659 %item.lobit = lshr i8 %item, 7 ; <i8> [#uses=1]
660 %12 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
661 store i8 %item.lobit, i8* %12, align 8
662 %13 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
663 %14 = load i32* %13, align 8 ; <i32> [#uses=1]
664 %15 = add i32 %14, -1 ; <i32> [#uses=1]
665 %16 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
666 store i32 %15, i32* %16, align 4
667 %17 = sext i8 %item to i64 ; <i64> [#uses=1]
668 %18 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 1 ) readnone ; <i64> [#uses=1]
669 %19 = sub i64 0, %18 ; <i64> [#uses=1]
670 %20 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 0 ) readnone ; <i64> [#uses=1]
671 %21 = mul i64 %20, -2 ; <i64> [#uses=1]
672 call fastcc void @ce3806g__fxio__put__put_scaled__4.1346( %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i64 %17, i64 %19, i64 %21, i32 0, i32 -1 )
673 %22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
674 %23 = load i32* %22, align 4 ; <i32> [#uses=1]
675 %24 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
676 %25 = load i32* %24, align 8 ; <i32> [#uses=1]
677 %26 = icmp slt i32 %23, %25 ; <i1> [#uses=1]
678 br i1 %26, label %bb71, label %bb72
680 bb71: ; preds = %entry
681 %27 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
682 store i32 0, i32* %27, align 4
685 bb72: ; preds = %entry, %bb102, %bb71
686 %28 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
687 %29 = load i32* %28, align 4 ; <i32> [#uses=1]
688 %30 = icmp slt i32 %29, -1 ; <i1> [#uses=1]
689 %31 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
690 %32 = load i32* %31, align 4 ; <i32> [#uses=2]
691 br i1 %30, label %bb103, label %bb74
693 bb74: ; preds = %bb72
694 %33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2 ; <i32*> [#uses=1]
695 %34 = load i32* %33, align 8 ; <i32> [#uses=1]
696 %35 = add i32 %34, -1 ; <i32> [#uses=1]
697 %36 = icmp eq i32 %32, %35 ; <i1> [#uses=1]
698 %37 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
699 %38 = load i32* %37, align 4 ; <i32> [#uses=2]
700 br i1 %36, label %bb76, label %bb98
702 bb76: ; preds = %bb74
703 %39 = icmp slt i32 %38, 1 ; <i1> [#uses=1]
704 br i1 %39, label %bb80, label %bb102
706 bb80: ; preds = %bb76
707 %40 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
708 %41 = load i32* %40, align 4 ; <i32> [#uses=2]
709 %42 = icmp sgt i32 %41, -1 ; <i1> [#uses=1]
710 %.op = add i32 %41, 2 ; <i32> [#uses=1]
711 %43 = select i1 %42, i32 %.op, i32 2 ; <i32> [#uses=1]
712 %44 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
713 %45 = load i8* %44, align 8 ; <i8> [#uses=1]
714 %46 = zext i8 %45 to i32 ; <i32> [#uses=1]
715 %47 = add i32 %43, %46 ; <i32> [#uses=2]
716 %48 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
717 %49 = load i32* %48, align 8 ; <i32> [#uses=1]
718 %50 = icmp sgt i32 %47, %49 ; <i1> [#uses=1]
719 br i1 %50, label %bb88, label %bb85
721 bb85: ; preds = %bb80, %bb87
722 %j.0 = phi i32 [ %68, %bb87 ], [ %47, %bb80 ] ; <i32> [#uses=2]
723 %51 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
724 %52 = load i32* %51, align 4 ; <i32> [#uses=1]
725 %53 = add i32 %52, 1 ; <i32> [#uses=1]
726 %54 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
727 store i32 %53, i32* %54, align 4
728 %55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
729 %56 = load i32* %55, align 8 ; <i32> [#uses=1]
730 %57 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
731 %58 = load %struct.system__file_control_block__pstring** %57, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
732 %59 = getelementptr %struct.system__file_control_block__pstring* %58, i32 0, i32 0 ; <i8**> [#uses=1]
733 %60 = load i8** %59, align 4 ; <i8*> [#uses=1]
734 %61 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
735 %62 = load i32* %61, align 4 ; <i32> [#uses=1]
736 %63 = sub i32 %62, %56 ; <i32> [#uses=1]
737 %64 = getelementptr i8* %60, i32 %63 ; <i8*> [#uses=1]
738 store i8 32, i8* %64, align 1
739 %65 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0 ; <i32*> [#uses=1]
740 %66 = load i32* %65, align 8 ; <i32> [#uses=1]
741 %67 = icmp eq i32 %66, %j.0 ; <i1> [#uses=1]
742 br i1 %67, label %bb88, label %bb87
744 bb87: ; preds = %bb85
745 %68 = add i32 %j.0, 1 ; <i32> [#uses=1]
748 bb88: ; preds = %bb80, %bb85
749 %69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6 ; <i8*> [#uses=1]
750 %70 = load i8* %69, align 8 ; <i8> [#uses=1]
751 %toBool89 = icmp eq i8 %70, 0 ; <i1> [#uses=1]
752 br i1 %toBool89, label %bb91, label %bb90
754 bb90: ; preds = %bb88
755 %71 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
756 %72 = load i32* %71, align 4 ; <i32> [#uses=1]
757 %73 = add i32 %72, 1 ; <i32> [#uses=1]
758 %74 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
759 store i32 %73, i32* %74, align 4
760 %75 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
761 %76 = load i32* %75, align 8 ; <i32> [#uses=1]
762 %77 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
763 %78 = load %struct.system__file_control_block__pstring** %77, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
764 %79 = getelementptr %struct.system__file_control_block__pstring* %78, i32 0, i32 0 ; <i8**> [#uses=1]
765 %80 = load i8** %79, align 4 ; <i8*> [#uses=1]
766 %81 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
767 %82 = load i32* %81, align 4 ; <i32> [#uses=1]
768 %83 = sub i32 %82, %76 ; <i32> [#uses=1]
769 %84 = getelementptr i8* %80, i32 %83 ; <i8*> [#uses=1]
770 store i8 45, i8* %84, align 1
773 bb91: ; preds = %bb88, %bb90
774 %85 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
775 %86 = load i32* %85, align 4 ; <i32> [#uses=1]
776 %87 = icmp slt i32 %86, 0 ; <i1> [#uses=1]
777 br i1 %87, label %bb93, label %bb97
779 bb93: ; preds = %bb91
780 %88 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
781 %89 = load i32* %88, align 4 ; <i32> [#uses=1]
782 %90 = add i32 %89, 1 ; <i32> [#uses=1]
783 %91 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
784 store i32 %90, i32* %91, align 4
785 %92 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
786 %93 = load i32* %92, align 8 ; <i32> [#uses=1]
787 %94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
788 %95 = load %struct.system__file_control_block__pstring** %94, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
789 %96 = getelementptr %struct.system__file_control_block__pstring* %95, i32 0, i32 0 ; <i8**> [#uses=1]
790 %97 = load i8** %96, align 4 ; <i8*> [#uses=1]
791 %98 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
792 %99 = load i32* %98, align 4 ; <i32> [#uses=1]
793 %100 = sub i32 %99, %93 ; <i32> [#uses=1]
794 %101 = getelementptr i8* %97, i32 %100 ; <i8*> [#uses=1]
795 store i8 48, i8* %101, align 1
796 %102 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
797 %103 = load i32* %102, align 4 ; <i32> [#uses=1]
798 %104 = add i32 %103, 1 ; <i32> [#uses=1]
799 %105 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
800 store i32 %104, i32* %105, align 4
801 %106 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
802 %107 = load i32* %106, align 8 ; <i32> [#uses=1]
803 %108 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
804 %109 = load %struct.system__file_control_block__pstring** %108, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
805 %110 = getelementptr %struct.system__file_control_block__pstring* %109, i32 0, i32 0 ; <i8**> [#uses=1]
806 %111 = load i8** %110, align 4 ; <i8*> [#uses=1]
807 %112 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
808 %113 = load i32* %112, align 4 ; <i32> [#uses=1]
809 %114 = sub i32 %113, %107 ; <i32> [#uses=1]
810 %115 = getelementptr i8* %111, i32 %114 ; <i8*> [#uses=1]
811 store i8 46, i8* %115, align 1
812 %116 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
813 %117 = load i32* %116, align 4 ; <i32> [#uses=1]
816 bb94: ; preds = %bb96, %bb93
817 %j8.0 = phi i32 [ %117, %bb93 ], [ %133, %bb96 ] ; <i32> [#uses=2]
818 %118 = icmp sgt i32 %j8.0, -2 ; <i1> [#uses=1]
819 br i1 %118, label %bb97, label %bb96
821 bb96: ; preds = %bb94
822 %119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
823 %120 = load i32* %119, align 4 ; <i32> [#uses=1]
824 %121 = add i32 %120, 1 ; <i32> [#uses=1]
825 %122 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
826 store i32 %121, i32* %122, align 4
827 %123 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
828 %124 = load i32* %123, align 8 ; <i32> [#uses=1]
829 %125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
830 %126 = load %struct.system__file_control_block__pstring** %125, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
831 %127 = getelementptr %struct.system__file_control_block__pstring* %126, i32 0, i32 0 ; <i8**> [#uses=1]
832 %128 = load i8** %127, align 4 ; <i8*> [#uses=1]
833 %129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
834 %130 = load i32* %129, align 4 ; <i32> [#uses=1]
835 %131 = sub i32 %130, %124 ; <i32> [#uses=1]
836 %132 = getelementptr i8* %128, i32 %131 ; <i8*> [#uses=1]
837 store i8 48, i8* %132, align 1
838 %133 = add i32 %j8.0, 1 ; <i32> [#uses=1]
841 bb97: ; preds = %bb91, %bb94
842 %134 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
843 %135 = load i32* %134, align 4 ; <i32> [#uses=1]
844 %136 = add i32 %135, 1 ; <i32> [#uses=1]
845 %137 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
846 store i32 %136, i32* %137, align 4
847 %138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
848 %139 = load i32* %138, align 8 ; <i32> [#uses=1]
849 %140 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
850 %141 = load %struct.system__file_control_block__pstring** %140, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
851 %142 = getelementptr %struct.system__file_control_block__pstring* %141, i32 0, i32 0 ; <i8**> [#uses=1]
852 %143 = load i8** %142, align 4 ; <i8*> [#uses=1]
853 %144 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
854 %145 = load i32* %144, align 4 ; <i32> [#uses=1]
855 %146 = sub i32 %145, %139 ; <i32> [#uses=1]
856 %147 = getelementptr i8* %143, i32 %146 ; <i8*> [#uses=1]
857 store i8 48, i8* %147, align 1
860 bb98: ; preds = %bb74
861 %148 = icmp eq i32 %38, -1 ; <i1> [#uses=1]
862 br i1 %148, label %bb100, label %bb101
864 bb100: ; preds = %bb98
865 %149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
866 %150 = load i32* %149, align 4 ; <i32> [#uses=1]
867 %151 = add i32 %150, 1 ; <i32> [#uses=1]
868 %152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
869 store i32 %151, i32* %152, align 4
870 %153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
871 %154 = load i32* %153, align 8 ; <i32> [#uses=1]
872 %155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
873 %156 = load %struct.system__file_control_block__pstring** %155, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
874 %157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0 ; <i8**> [#uses=1]
875 %158 = load i8** %157, align 4 ; <i8*> [#uses=1]
876 %159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
877 %160 = load i32* %159, align 4 ; <i32> [#uses=1]
878 %161 = sub i32 %160, %154 ; <i32> [#uses=1]
879 %162 = getelementptr i8* %158, i32 %161 ; <i8*> [#uses=1]
880 store i8 46, i8* %162, align 1
883 bb101: ; preds = %bb98, %bb100
884 %163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
885 %164 = load i32* %163, align 4 ; <i32> [#uses=1]
886 %165 = add i32 %164, 1 ; <i32> [#uses=1]
887 %166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
888 store i32 %165, i32* %166, align 4
889 %167 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4 ; <i32*> [#uses=1]
890 %168 = load i32* %167, align 8 ; <i32> [#uses=1]
891 %169 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
892 %170 = load %struct.system__file_control_block__pstring** %169, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
893 %171 = getelementptr %struct.system__file_control_block__pstring* %170, i32 0, i32 0 ; <i8**> [#uses=1]
894 %172 = load i8** %171, align 4 ; <i8*> [#uses=1]
895 %173 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5 ; <i32*> [#uses=1]
896 %174 = load i32* %173, align 4 ; <i32> [#uses=1]
897 %175 = sub i32 %174, %168 ; <i32> [#uses=1]
898 %176 = getelementptr i8* %172, i32 %175 ; <i8*> [#uses=1]
899 store i8 48, i8* %176, align 1
902 bb102: ; preds = %bb76, %bb101, %bb97
903 %177 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
904 %178 = load i32* %177, align 4 ; <i32> [#uses=1]
905 %179 = add i32 %178, -1 ; <i32> [#uses=1]
906 %180 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1 ; <i32*> [#uses=1]
907 store i32 %179, i32* %180, align 4
910 bb103: ; preds = %bb72
914 declare x86_fp80 @ada__text_io__float_aux__get(%struct.ada__text_io__text_afcb*, i32)
916 declare void @__gnat_rcheck_12(i8*, i32) noreturn
918 declare void @__gnat_rcheck_10(i8*, i32) noreturn
920 declare i8* @llvm.eh.exception() nounwind
922 declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind
924 declare i32 @llvm.eh.typeid.for.i32(i8*) nounwind
926 declare void @__gnat_begin_handler(i8*) nounwind
928 declare void @__gnat_raise_exception(%struct.system__standard_library__exception_data*, i8*, %struct.string___XUB*) noreturn
930 declare void @__gnat_end_handler(i8*)
932 declare i32 @__gnat_eh_personality(...)
934 declare i32 @_Unwind_Resume(...)
936 define internal fastcc void @ce3806g__fxio__put__put_int64__4.1339(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %x, i32 %scale) {
938 %0 = icmp eq i64 %x, 0 ; <i1> [#uses=1]
939 br i1 %0, label %return, label %bb
942 %1 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
943 store i32 %scale, i32* %1, align 4
944 %2 = add i64 %x, 9 ; <i64> [#uses=1]
945 %3 = icmp ugt i64 %2, 18 ; <i1> [#uses=1]
946 br i1 %3, label %bb18, label %bb19
949 %4 = add i32 %scale, 1 ; <i32> [#uses=1]
950 %5 = sdiv i64 %x, 10 ; <i64> [#uses=1]
951 call fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %5, i32 %4 )
954 bb19: ; preds = %bb, %bb18
955 %6 = srem i64 %x, 10 ; <i64> [#uses=3]
956 %neg = sub i64 0, %6 ; <i64> [#uses=1]
957 %abscond = icmp sgt i64 %6, -1 ; <i1> [#uses=1]
958 %abs = select i1 %abscond, i64 %6, i64 %neg ; <i64> [#uses=3]
959 %7 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
960 %8 = load i32* %7, align 4 ; <i32> [#uses=1]
961 %9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 2 ; <i32*> [#uses=1]
962 %10 = load i32* %9, align 4 ; <i32> [#uses=1]
963 %11 = add i32 %10, -1 ; <i32> [#uses=1]
964 %12 = icmp eq i32 %8, %11 ; <i1> [#uses=1]
965 br i1 %12, label %bb23, label %bb44
967 bb23: ; preds = %bb19
968 %13 = icmp ne i64 %abs, 0 ; <i1> [#uses=1]
969 %14 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
970 %15 = load i32* %14, align 4 ; <i32> [#uses=1]
971 %16 = icmp slt i32 %15, 1 ; <i1> [#uses=1]
972 %17 = or i1 %13, %16 ; <i1> [#uses=1]
973 br i1 %17, label %bb27, label %bb48
975 bb27: ; preds = %bb23
976 %18 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
977 %19 = load i32* %18, align 4 ; <i32> [#uses=2]
978 %20 = icmp sgt i32 %19, -1 ; <i1> [#uses=1]
979 %.op = add i32 %19, 2 ; <i32> [#uses=1]
980 %21 = select i1 %20, i32 %.op, i32 2 ; <i32> [#uses=1]
981 %22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6 ; <i8*> [#uses=1]
982 %23 = load i8* %22, align 1 ; <i8> [#uses=1]
983 %24 = zext i8 %23 to i32 ; <i32> [#uses=1]
984 %25 = add i32 %21, %24 ; <i32> [#uses=2]
985 %26 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0 ; <i32*> [#uses=1]
986 %27 = load i32* %26, align 4 ; <i32> [#uses=1]
987 %28 = icmp sgt i32 %25, %27 ; <i1> [#uses=1]
988 br i1 %28, label %bb34, label %bb31
990 bb31: ; preds = %bb27, %bb33
991 %j.0 = phi i32 [ %46, %bb33 ], [ %25, %bb27 ] ; <i32> [#uses=2]
992 %29 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
993 %30 = load i32* %29, align 4 ; <i32> [#uses=1]
994 %31 = add i32 %30, 1 ; <i32> [#uses=1]
995 %32 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
996 store i32 %31, i32* %32, align 4
997 %33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
998 %34 = load i32* %33, align 4 ; <i32> [#uses=1]
999 %35 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1000 %36 = load %struct.system__file_control_block__pstring** %35, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1001 %37 = getelementptr %struct.system__file_control_block__pstring* %36, i32 0, i32 0 ; <i8**> [#uses=1]
1002 %38 = load i8** %37, align 4 ; <i8*> [#uses=1]
1003 %39 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1004 %40 = load i32* %39, align 4 ; <i32> [#uses=1]
1005 %41 = sub i32 %40, %34 ; <i32> [#uses=1]
1006 %42 = getelementptr i8* %38, i32 %41 ; <i8*> [#uses=1]
1007 store i8 32, i8* %42, align 1
1008 %43 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0 ; <i32*> [#uses=1]
1009 %44 = load i32* %43, align 4 ; <i32> [#uses=1]
1010 %45 = icmp eq i32 %44, %j.0 ; <i1> [#uses=1]
1011 br i1 %45, label %bb34, label %bb33
1013 bb33: ; preds = %bb31
1014 %46 = add i32 %j.0, 1 ; <i32> [#uses=1]
1017 bb34: ; preds = %bb27, %bb31
1018 %47 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6 ; <i8*> [#uses=1]
1019 %48 = load i8* %47, align 1 ; <i8> [#uses=1]
1020 %toBool35 = icmp eq i8 %48, 0 ; <i1> [#uses=1]
1021 br i1 %toBool35, label %bb37, label %bb36
1023 bb36: ; preds = %bb34
1024 %49 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1025 %50 = load i32* %49, align 4 ; <i32> [#uses=1]
1026 %51 = add i32 %50, 1 ; <i32> [#uses=1]
1027 %52 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1028 store i32 %51, i32* %52, align 4
1029 %53 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1030 %54 = load i32* %53, align 4 ; <i32> [#uses=1]
1031 %55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1032 %56 = load %struct.system__file_control_block__pstring** %55, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1033 %57 = getelementptr %struct.system__file_control_block__pstring* %56, i32 0, i32 0 ; <i8**> [#uses=1]
1034 %58 = load i8** %57, align 4 ; <i8*> [#uses=1]
1035 %59 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1036 %60 = load i32* %59, align 4 ; <i32> [#uses=1]
1037 %61 = sub i32 %60, %54 ; <i32> [#uses=1]
1038 %62 = getelementptr i8* %58, i32 %61 ; <i8*> [#uses=1]
1039 store i8 45, i8* %62, align 1
1042 bb37: ; preds = %bb34, %bb36
1043 %63 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
1044 %64 = load i32* %63, align 4 ; <i32> [#uses=1]
1045 %65 = icmp slt i32 %64, 0 ; <i1> [#uses=1]
1046 br i1 %65, label %bb39, label %bb43
1048 bb39: ; preds = %bb37
1049 %66 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1050 %67 = load i32* %66, align 4 ; <i32> [#uses=1]
1051 %68 = add i32 %67, 1 ; <i32> [#uses=1]
1052 %69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1053 store i32 %68, i32* %69, align 4
1054 %70 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1055 %71 = load i32* %70, align 4 ; <i32> [#uses=1]
1056 %72 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1057 %73 = load %struct.system__file_control_block__pstring** %72, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1058 %74 = getelementptr %struct.system__file_control_block__pstring* %73, i32 0, i32 0 ; <i8**> [#uses=1]
1059 %75 = load i8** %74, align 4 ; <i8*> [#uses=1]
1060 %76 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1061 %77 = load i32* %76, align 4 ; <i32> [#uses=1]
1062 %78 = sub i32 %77, %71 ; <i32> [#uses=1]
1063 %79 = getelementptr i8* %75, i32 %78 ; <i8*> [#uses=1]
1064 store i8 48, i8* %79, align 1
1065 %80 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1066 %81 = load i32* %80, align 4 ; <i32> [#uses=1]
1067 %82 = add i32 %81, 1 ; <i32> [#uses=1]
1068 %83 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1069 store i32 %82, i32* %83, align 4
1070 %84 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1071 %85 = load i32* %84, align 4 ; <i32> [#uses=1]
1072 %86 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1073 %87 = load %struct.system__file_control_block__pstring** %86, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1074 %88 = getelementptr %struct.system__file_control_block__pstring* %87, i32 0, i32 0 ; <i8**> [#uses=1]
1075 %89 = load i8** %88, align 4 ; <i8*> [#uses=1]
1076 %90 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1077 %91 = load i32* %90, align 4 ; <i32> [#uses=1]
1078 %92 = sub i32 %91, %85 ; <i32> [#uses=1]
1079 %93 = getelementptr i8* %89, i32 %92 ; <i8*> [#uses=1]
1080 store i8 46, i8* %93, align 1
1081 %94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
1082 %95 = load i32* %94, align 4 ; <i32> [#uses=1]
1085 bb40: ; preds = %bb42, %bb39
1086 %j15.0 = phi i32 [ %95, %bb39 ], [ %111, %bb42 ] ; <i32> [#uses=2]
1087 %96 = icmp sgt i32 %j15.0, -2 ; <i1> [#uses=1]
1088 br i1 %96, label %bb43, label %bb42
1090 bb42: ; preds = %bb40
1091 %97 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1092 %98 = load i32* %97, align 4 ; <i32> [#uses=1]
1093 %99 = add i32 %98, 1 ; <i32> [#uses=1]
1094 %100 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1095 store i32 %99, i32* %100, align 4
1096 %101 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1097 %102 = load i32* %101, align 4 ; <i32> [#uses=1]
1098 %103 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1099 %104 = load %struct.system__file_control_block__pstring** %103, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1100 %105 = getelementptr %struct.system__file_control_block__pstring* %104, i32 0, i32 0 ; <i8**> [#uses=1]
1101 %106 = load i8** %105, align 4 ; <i8*> [#uses=1]
1102 %107 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1103 %108 = load i32* %107, align 4 ; <i32> [#uses=1]
1104 %109 = sub i32 %108, %102 ; <i32> [#uses=1]
1105 %110 = getelementptr i8* %106, i32 %109 ; <i8*> [#uses=1]
1106 store i8 48, i8* %110, align 1
1107 %111 = add i32 %j15.0, 1 ; <i32> [#uses=1]
1110 bb43: ; preds = %bb37, %bb40
1111 %112 = trunc i64 %abs to i32 ; <i32> [#uses=1]
1112 %113 = getelementptr [10 x i8]* @.str3, i32 0, i32 %112 ; <i8*> [#uses=1]
1113 %114 = load i8* %113, align 1 ; <i8> [#uses=1]
1114 %115 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1115 %116 = load i32* %115, align 4 ; <i32> [#uses=1]
1116 %117 = add i32 %116, 1 ; <i32> [#uses=1]
1117 %118 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1118 store i32 %117, i32* %118, align 4
1119 %119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1120 %120 = load i32* %119, align 4 ; <i32> [#uses=1]
1121 %121 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1122 %122 = load %struct.system__file_control_block__pstring** %121, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1123 %123 = getelementptr %struct.system__file_control_block__pstring* %122, i32 0, i32 0 ; <i8**> [#uses=1]
1124 %124 = load i8** %123, align 4 ; <i8*> [#uses=1]
1125 %125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1126 %126 = load i32* %125, align 4 ; <i32> [#uses=1]
1127 %127 = sub i32 %126, %120 ; <i32> [#uses=1]
1128 %128 = getelementptr i8* %124, i32 %127 ; <i8*> [#uses=1]
1129 store i8 %114, i8* %128, align 1
1132 bb44: ; preds = %bb19
1133 %129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
1134 %130 = load i32* %129, align 4 ; <i32> [#uses=1]
1135 %131 = icmp eq i32 %130, -1 ; <i1> [#uses=1]
1136 br i1 %131, label %bb46, label %bb47
1138 bb46: ; preds = %bb44
1139 %132 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1140 %133 = load i32* %132, align 4 ; <i32> [#uses=1]
1141 %134 = add i32 %133, 1 ; <i32> [#uses=1]
1142 %135 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1143 store i32 %134, i32* %135, align 4
1144 %136 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1145 %137 = load i32* %136, align 4 ; <i32> [#uses=1]
1146 %138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1147 %139 = load %struct.system__file_control_block__pstring** %138, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1148 %140 = getelementptr %struct.system__file_control_block__pstring* %139, i32 0, i32 0 ; <i8**> [#uses=1]
1149 %141 = load i8** %140, align 4 ; <i8*> [#uses=1]
1150 %142 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1151 %143 = load i32* %142, align 4 ; <i32> [#uses=1]
1152 %144 = sub i32 %143, %137 ; <i32> [#uses=1]
1153 %145 = getelementptr i8* %141, i32 %144 ; <i8*> [#uses=1]
1154 store i8 46, i8* %145, align 1
1157 bb47: ; preds = %bb44, %bb46
1158 %146 = trunc i64 %abs to i32 ; <i32> [#uses=1]
1159 %147 = getelementptr [10 x i8]* @.str3, i32 0, i32 %146 ; <i8*> [#uses=1]
1160 %148 = load i8* %147, align 1 ; <i8> [#uses=1]
1161 %149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1162 %150 = load i32* %149, align 4 ; <i32> [#uses=1]
1163 %151 = add i32 %150, 1 ; <i32> [#uses=1]
1164 %152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1165 store i32 %151, i32* %152, align 4
1166 %153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4 ; <i32*> [#uses=1]
1167 %154 = load i32* %153, align 4 ; <i32> [#uses=1]
1168 %155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3 ; <%struct.system__file_control_block__pstring**> [#uses=1]
1169 %156 = load %struct.system__file_control_block__pstring** %155, align 4 ; <%struct.system__file_control_block__pstring*> [#uses=1]
1170 %157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0 ; <i8**> [#uses=1]
1171 %158 = load i8** %157, align 4 ; <i8*> [#uses=1]
1172 %159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5 ; <i32*> [#uses=1]
1173 %160 = load i32* %159, align 4 ; <i32> [#uses=1]
1174 %161 = sub i32 %160, %154 ; <i32> [#uses=1]
1175 %162 = getelementptr i8* %158, i32 %161 ; <i8*> [#uses=1]
1176 store i8 %148, i8* %162, align 1
1179 bb48: ; preds = %bb23, %bb47, %bb43
1180 %163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
1181 %164 = load i32* %163, align 4 ; <i32> [#uses=1]
1182 %165 = add i32 %164, -1 ; <i32> [#uses=1]
1183 %166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1 ; <i32*> [#uses=1]
1184 store i32 %165, i32* %166, align 4
1187 return: ; preds = %entry
1191 define internal fastcc void @ce3806g__fxio__put__put_scaled__4.1346(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %x, i64 %y, i64 %z, i32 %a, i32 %e) {
1193 %0 = alloca { i64, i64 } ; <{ i64, i64 }*> [#uses=3]
1194 %1 = call i8* @llvm.stacksave( ) ; <i8*> [#uses=1]
1195 %2 = add i32 %a, 17 ; <i32> [#uses=2]
1196 %3 = sdiv i32 %2, 18 ; <i32> [#uses=3]
1197 %4 = add i32 %3, 1 ; <i32> [#uses=7]
1198 %5 = icmp sgt i32 %4, -1 ; <i1> [#uses=1]
1199 %max53 = select i1 %5, i32 %4, i32 0 ; <i32> [#uses=1]
1200 %6 = alloca i64, i32 %max53 ; <i64*> [#uses=21]
1201 %7 = icmp sgt i32 %4, 0 ; <i1> [#uses=1]
1202 br i1 %7, label %bb55, label %bb58
1204 bb55: ; preds = %entry, %bb57
1205 %J60b.0 = phi i32 [ %11, %bb57 ], [ 1, %entry ] ; <i32> [#uses=3]
1206 %8 = add i32 %J60b.0, -1 ; <i32> [#uses=1]
1207 %9 = getelementptr i64* %6, i32 %8 ; <i64*> [#uses=1]
1208 store i64 0, i64* %9, align 8
1209 %10 = icmp eq i32 %4, %J60b.0 ; <i1> [#uses=1]
1210 br i1 %10, label %bb58, label %bb57
1212 bb57: ; preds = %bb55
1213 %11 = add i32 %J60b.0, 1 ; <i32> [#uses=1]
1216 bb58: ; preds = %entry, %bb55
1217 %12 = icmp sgt i32 %4, 0 ; <i1> [#uses=1]
1218 br i1 %12, label %bb61, label %bb91
1220 bb61: ; preds = %bb58, %bb90
1221 %j2.0 = phi i32 [ %88, %bb90 ], [ 1, %bb58 ] ; <i32> [#uses=11]
1222 %aa.0 = phi i32 [ %86, %bb90 ], [ %a, %bb58 ] ; <i32> [#uses=6]
1223 %yy.0 = phi i64 [ %84, %bb90 ], [ %y, %bb58 ] ; <i64> [#uses=3]
1224 %xx.0 = phi i64 [ %21, %bb90 ], [ %x, %bb58 ] ; <i64> [#uses=2]
1225 %13 = icmp eq i64 %xx.0, 0 ; <i1> [#uses=1]
1226 br i1 %13, label %bb91, label %bb63
1228 bb63: ; preds = %bb61
1229 %14 = icmp eq i32 %aa.0, 0 ; <i1> [#uses=1]
1230 %15 = zext i1 %14 to i8 ; <i8> [#uses=1]
1231 invoke void @system__arith_64__scaled_divide( { i64, i64 }* noalias sret %0, i64 %xx.0, i64 %yy.0, i64 %z, i8 %15 )
1232 to label %invcont unwind label %lpad
1234 invcont: ; preds = %bb63
1235 %16 = getelementptr { i64, i64 }* %0, i32 0, i32 0 ; <i64*> [#uses=1]
1236 %17 = load i64* %16, align 8 ; <i64> [#uses=1]
1237 %18 = add i32 %j2.0, -1 ; <i32> [#uses=1]
1238 %19 = getelementptr i64* %6, i32 %18 ; <i64*> [#uses=1]
1239 store i64 %17, i64* %19, align 8
1240 %20 = getelementptr { i64, i64 }* %0, i32 0, i32 1 ; <i64*> [#uses=1]
1241 %21 = load i64* %20, align 8 ; <i64> [#uses=1]
1242 %22 = add i32 %j2.0, -1 ; <i32> [#uses=1]
1243 %23 = getelementptr i64* %6, i32 %22 ; <i64*> [#uses=1]
1244 %24 = load i64* %23, align 8 ; <i64> [#uses=1]
1245 %25 = icmp eq i64 %24, %yy.0 ; <i1> [#uses=1]
1246 %26 = add i32 %j2.0, -1 ; <i32> [#uses=1]
1247 %27 = getelementptr i64* %6, i32 %26 ; <i64*> [#uses=1]
1248 %28 = load i64* %27, align 8 ; <i64> [#uses=1]
1249 %29 = sub i64 0, %28 ; <i64> [#uses=1]
1250 %30 = icmp eq i64 %yy.0, %29 ; <i1> [#uses=1]
1251 %31 = or i1 %25, %30 ; <i1> [#uses=1]
1252 %32 = icmp sgt i32 %j2.0, 1 ; <i1> [#uses=1]
1253 %or.cond = and i1 %31, %32 ; <i1> [#uses=1]
1254 br i1 %or.cond, label %bb69, label %bb83
1256 bb69: ; preds = %invcont
1257 %33 = add i32 %j2.0, -1 ; <i32> [#uses=1]
1258 %34 = getelementptr i64* %6, i32 %33 ; <i64*> [#uses=1]
1259 %35 = load i64* %34, align 8 ; <i64> [#uses=1]
1260 %36 = icmp slt i64 %35, 0 ; <i1> [#uses=1]
1261 %37 = add i32 %j2.0, -2 ; <i32> [#uses=1]
1262 %38 = getelementptr i64* %6, i32 %37 ; <i64*> [#uses=1]
1263 %39 = load i64* %38, align 8 ; <i64> [#uses=2]
1264 br i1 %36, label %bb71, label %bb72
1266 bb71: ; preds = %bb69
1267 %40 = add i64 %39, 1 ; <i64> [#uses=1]
1268 %41 = add i32 %j2.0, -2 ; <i32> [#uses=1]
1269 %42 = getelementptr i64* %6, i32 %41 ; <i64*> [#uses=1]
1270 store i64 %40, i64* %42, align 8
1273 bb72: ; preds = %bb69
1274 %43 = add i64 %39, -1 ; <i64> [#uses=1]
1275 %44 = add i32 %j2.0, -2 ; <i32> [#uses=1]
1276 %45 = getelementptr i64* %6, i32 %44 ; <i64*> [#uses=1]
1277 store i64 %43, i64* %45, align 8
1280 bb73: ; preds = %bb72, %bb71
1281 %46 = add i32 %j2.0, -1 ; <i32> [#uses=1]
1282 %47 = getelementptr i64* %6, i32 %46 ; <i64*> [#uses=1]
1283 store i64 0, i64* %47, align 8
1286 bb74: ; preds = %bb82, %bb73
1287 %j1.0 = phi i32 [ %4, %bb73 ], [ %81, %bb82 ] ; <i32> [#uses=12]
1288 %48 = icmp slt i32 %j1.0, 2 ; <i1> [#uses=1]
1289 br i1 %48, label %bb83, label %bb76
1291 bb76: ; preds = %bb74
1292 %49 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1293 %50 = getelementptr i64* %6, i32 %49 ; <i64*> [#uses=1]
1294 %51 = load i64* %50, align 8 ; <i64> [#uses=1]
1295 %52 = icmp sgt i64 %51, 999999999999999999 ; <i1> [#uses=1]
1296 br i1 %52, label %bb78, label %bb79
1298 bb78: ; preds = %bb76
1299 %53 = add i32 %j1.0, -2 ; <i32> [#uses=1]
1300 %54 = getelementptr i64* %6, i32 %53 ; <i64*> [#uses=1]
1301 %55 = load i64* %54, align 8 ; <i64> [#uses=1]
1302 %56 = add i64 %55, 1 ; <i64> [#uses=1]
1303 %57 = add i32 %j1.0, -2 ; <i32> [#uses=1]
1304 %58 = getelementptr i64* %6, i32 %57 ; <i64*> [#uses=1]
1305 store i64 %56, i64* %58, align 8
1306 %59 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1307 %60 = getelementptr i64* %6, i32 %59 ; <i64*> [#uses=1]
1308 %61 = load i64* %60, align 8 ; <i64> [#uses=1]
1309 %62 = add i64 %61, -1000000000000000000 ; <i64> [#uses=1]
1310 %63 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1311 %64 = getelementptr i64* %6, i32 %63 ; <i64*> [#uses=1]
1312 store i64 %62, i64* %64, align 8
1315 bb79: ; preds = %bb76
1316 %65 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1317 %66 = getelementptr i64* %6, i32 %65 ; <i64*> [#uses=1]
1318 %67 = load i64* %66, align 8 ; <i64> [#uses=1]
1319 %68 = icmp slt i64 %67, -999999999999999999 ; <i1> [#uses=1]
1320 br i1 %68, label %bb81, label %bb82
1322 bb81: ; preds = %bb79
1323 %69 = add i32 %j1.0, -2 ; <i32> [#uses=1]
1324 %70 = getelementptr i64* %6, i32 %69 ; <i64*> [#uses=1]
1325 %71 = load i64* %70, align 8 ; <i64> [#uses=1]
1326 %72 = add i64 %71, -1 ; <i64> [#uses=1]
1327 %73 = add i32 %j1.0, -2 ; <i32> [#uses=1]
1328 %74 = getelementptr i64* %6, i32 %73 ; <i64*> [#uses=1]
1329 store i64 %72, i64* %74, align 8
1330 %75 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1331 %76 = getelementptr i64* %6, i32 %75 ; <i64*> [#uses=1]
1332 %77 = load i64* %76, align 8 ; <i64> [#uses=1]
1333 %78 = add i64 %77, 1000000000000000000 ; <i64> [#uses=1]
1334 %79 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1335 %80 = getelementptr i64* %6, i32 %79 ; <i64*> [#uses=1]
1336 store i64 %78, i64* %80, align 8
1339 bb82: ; preds = %bb79, %bb81, %bb78
1340 %81 = add i32 %j1.0, -1 ; <i32> [#uses=1]
1343 bb83: ; preds = %invcont, %bb74
1344 %82 = icmp slt i32 %aa.0, 19 ; <i1> [#uses=1]
1345 %min = select i1 %82, i32 %aa.0, i32 18 ; <i32> [#uses=1]
1346 %83 = invoke i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 %min ) readnone
1347 to label %invcont86 unwind label %lpad ; <i64> [#uses=1]
1349 invcont86: ; preds = %bb83
1350 %84 = sub i64 0, %83 ; <i64> [#uses=1]
1351 %85 = icmp slt i32 %aa.0, 19 ; <i1> [#uses=1]
1352 %min87 = select i1 %85, i32 %aa.0, i32 18 ; <i32> [#uses=1]
1353 %86 = sub i32 %aa.0, %min87 ; <i32> [#uses=1]
1354 %87 = icmp eq i32 %4, %j2.0 ; <i1> [#uses=1]
1355 br i1 %87, label %bb91, label %bb90
1357 bb90: ; preds = %invcont86
1358 %88 = add i32 %j2.0, 1 ; <i32> [#uses=1]
1361 bb91: ; preds = %bb58, %bb61, %invcont86
1362 %89 = icmp slt i32 %2, 18 ; <i1> [#uses=1]
1363 br i1 %89, label %bb98, label %bb94
1365 bb94: ; preds = %bb91, %bb97
1366 %j.0 = phi i32 [ %97, %bb97 ], [ 1, %bb91 ] ; <i32> [#uses=4]
1367 %90 = mul i32 %j.0, 18 ; <i32> [#uses=1]
1368 %91 = add i32 %90, -18 ; <i32> [#uses=1]
1369 %92 = sub i32 %e, %91 ; <i32> [#uses=1]
1370 %93 = add i32 %j.0, -1 ; <i32> [#uses=1]
1371 %94 = getelementptr i64* %6, i32 %93 ; <i64*> [#uses=1]
1372 %95 = load i64* %94, align 8 ; <i64> [#uses=1]
1373 invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %95, i32 %92 )
1374 to label %invcont95 unwind label %lpad
1376 invcont95: ; preds = %bb94
1377 %96 = icmp eq i32 %3, %j.0 ; <i1> [#uses=1]
1378 br i1 %96, label %bb98, label %bb97
1380 bb97: ; preds = %invcont95
1381 %97 = add i32 %j.0, 1 ; <i32> [#uses=1]
1384 bb98: ; preds = %bb91, %invcont95
1385 %98 = sub i32 %e, %a ; <i32> [#uses=1]
1386 %99 = getelementptr i64* %6, i32 %3 ; <i64*> [#uses=1]
1387 %100 = load i64* %99, align 8 ; <i64> [#uses=1]
1388 invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %100, i32 %98 )
1389 to label %bb101 unwind label %lpad
1391 bb101: ; preds = %bb98
1394 lpad: ; preds = %bb98, %bb94, %bb83, %bb63
1395 %eh_ptr = call i8* @llvm.eh.exception( ) ; <i8*> [#uses=2]
1396 %eh_select103 = call i32 (i8*, i8*, ...)* @llvm.eh.selector.i32( i8* %eh_ptr, i8* bitcast (i32 (...)* @__gnat_eh_personality to i8*), i32* @__gnat_all_others_value ) ; <i32> [#uses=0]
1397 call void @llvm.stackrestore( i8* %1 )
1398 %101 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr ) ; <i32> [#uses=0]
1402 declare i8* @llvm.stacksave() nounwind
1404 declare void @system__arith_64__scaled_divide({ i64, i64 }* noalias sret, i64, i64, i64, i8)
1406 declare i64 @system__exn_lli__exn_long_long_integer(i64, i32) readnone
1408 declare void @llvm.stackrestore(i8*) nounwind
1410 declare i32 @system__img_real__set_image_real(x86_fp80, i8*, %struct.string___XUB*, i32, i32, i32, i32)
1412 declare void @ada__text_io__generic_aux__put_item(%struct.ada__text_io__text_afcb*, i8*, %struct.string___XUB*)
1414 declare void @report__test(i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
1416 declare void @system__secondary_stack__ss_mark(%struct.string___XUB* noalias sret)
1418 declare void @system__exception_table__register_exception(%struct.system__standard_library__exception_data*)
1420 declare void @report__legal_file_name(%struct.system__file_control_block__pstring* noalias sret, i32, i8*, %struct.string___XUB*)
1422 declare %struct.ada__text_io__text_afcb* @ada__text_io__create(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
1424 declare void @system__secondary_stack__ss_release(i32, i32)
1426 declare void @report__not_applicable(i8*, %struct.string___XUB*)
1428 declare void @ada__text_io__set_output(%struct.ada__text_io__text_afcb*)
1430 declare %struct.ada__text_io__text_afcb* @ada__text_io__close(%struct.ada__text_io__text_afcb*)
1432 declare %struct.ada__text_io__text_afcb* @ada__text_io__open(%struct.ada__text_io__text_afcb*, i8, i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)
1434 declare %struct.ada__text_io__text_afcb* @ada__text_io__standard_output()
1436 declare void @report__failed(i8*, %struct.string___XUB*)
1438 declare %struct.ada__text_io__text_afcb* @ada__text_io__delete(%struct.ada__text_io__text_afcb*)
1440 declare void @report__result()