; RUN: llvm-as < %s | opt -prune-eh -inline -print-callgraph \
; RUN:   -disable-output |& \
; RUN:     grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
	%struct.FRAME.ce3806g = type { %struct.string___XUB, %struct.string___XUB, %struct.string___XUB, %struct.string___XUB }
	%struct.FRAME.ce3806g__fxio__put__4 = type { i32, i32, i32, %struct.system__file_control_block__pstring*, i32, i32, i8 }
	%struct.RETURN = type { i8, i32 }
	%struct.ada__streams__root_stream_type = type { %struct.ada__tags__dispatch_table* }
	%struct.ada__tags__dispatch_table = type { [1 x i32] }
	%struct.ada__tags__select_specific_data = type { i32, %struct.ada__tags__select_specific_data_element }
	%struct.ada__tags__select_specific_data_element = type { i32, i8 }
	%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*] }
	%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 }
	%struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
	%struct.long_long_float___PAD = type { x86_fp80, [1 x i32] }
	%struct.string___XUB = type { i32, i32 }
	%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* }
	%struct.system__file_control_block__pstring = type { i8*, %struct.string___XUB* }
	%struct.system__finalization_implementation__limited_record_controller = type { %struct.system__finalization_root__root_controlled, %struct.system__finalization_root__root_controlled* }
	%struct.system__finalization_implementation__record_controller = type { %struct.system__finalization_implementation__limited_record_controller, i32 }
	%struct.system__finalization_root__empty_root_controlled = type { %struct.ada__tags__dispatch_table* }
	%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* }
	%struct.system__secondary_stack__mark_id = type { i32, i32 }
	%struct.system__standard_library__exception_data = type { i8, i8, i32, i32, %struct.system__standard_library__exception_data*, i32, void ()* }
@.str = internal constant [12 x i8] c"system.ads\00\00"		; <[12 x i8]*> [#uses=1]
@.str1 = internal constant [14 x i8] c"a-tifiio.adb\00\00"		; <[14 x i8]*> [#uses=1]
@system__soft_links__abort_undefer = external global void ()*		; <void ()**> [#uses=6]
@.str2 = internal constant [47 x i8] c"a-tifiio.adb:327 instantiated at ce3806g.adb:52"		; <[47 x i8]*> [#uses=1]
@C.354.2200 = internal constant %struct.string___XUB { i32 1, i32 47 }		; <%struct.string___XUB*> [#uses=1]
@ada__io_exceptions__data_error = external global %struct.exception		; <%struct.exception*> [#uses=1]
@constraint_error = external global %struct.exception		; <%struct.exception*> [#uses=2]
@__gnat_all_others_value = external constant i32		; <i32*> [#uses=21]
@.str3 = internal constant [10 x i8] c"0123456789"		; <[10 x i8]*> [#uses=2]
@ada__text_io__current_out = external global %struct.ada__text_io__text_afcb*		; <%struct.ada__text_io__text_afcb**> [#uses=1]
@.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]
@C.131.1559 = internal constant %struct.string___XUB { i32 1, i32 126 }		; <%struct.string___XUB*> [#uses=1]
@.str5 = internal constant [7 x i8] c"CE3806G"		; <[7 x i8]*> [#uses=1]
@C.132.1562 = internal constant %struct.string___XUB { i32 1, i32 7 }		; <%struct.string___XUB*> [#uses=1]
@incompleteF.1176.b = internal global i1 false		; <i1*> [#uses=2]
@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]
@incompleteE.1174 = internal global [23 x i8] c"CE3806G.B_1.INCOMPLETE\00"		; <[23 x i8]*> [#uses=1]
@.str6 = internal constant [0 x i8] zeroinitializer		; <[0 x i8]*> [#uses=1]
@C.136.1568 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@C.137.1571 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@.str7 = internal constant [50 x i8] c"USE_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE"		; <[50 x i8]*> [#uses=1]
@C.139.1577 = internal constant %struct.string___XUB { i32 1, i32 50 }		; <%struct.string___XUB*> [#uses=1]
@.str8 = internal constant [14 x i8] c"ce3806g.adb:65"		; <[14 x i8]*> [#uses=1]
@C.140.1580 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
@.str9 = internal constant [51 x i8] c"NAME_ERROR RAISED ON TEXT CREATE WITH OUT_FILE MODE"		; <[51 x i8]*> [#uses=1]
@C.143.1585 = internal constant %struct.string___XUB { i32 1, i32 51 }		; <%struct.string___XUB*> [#uses=1]
@.str10 = internal constant [14 x i8] c"ce3806g.adb:69"		; <[14 x i8]*> [#uses=1]
@C.144.1588 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
@C.146.1592 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@C.147.1595 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@C.153.1609 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@C.154.1612 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@.str12 = internal constant [47 x i8] c"USE_ERROR RAISED ON TEXT OPEN WITH IN_FILE MODE"		; <[47 x i8]*> [#uses=1]
@C.156.1618 = internal constant %struct.string___XUB { i32 1, i32 47 }		; <%struct.string___XUB*> [#uses=1]
@.str13 = internal constant [14 x i8] c"ce3806g.adb:88"		; <[14 x i8]*> [#uses=1]
@C.157.1621 = internal constant %struct.string___XUB { i32 1, i32 14 }		; <%struct.string___XUB*> [#uses=1]
@C.159.1627 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@C.160.1630 = internal constant %struct.string___XUB { i32 1, i32 0 }		; <%struct.string___XUB*> [#uses=1]
@.str14 = internal constant [33 x i8] c"VALUE INCORRECT - FIXED FROM FILE"		; <[33 x i8]*> [#uses=1]
@C.162.1637 = internal constant %struct.string___XUB { i32 1, i32 33 }		; <%struct.string___XUB*> [#uses=1]
@.str15 = internal constant [36 x i8] c"VALUE INCORRECT - FIXED FROM DEFAULT"		; <[36 x i8]*> [#uses=1]
@C.164.1642 = internal constant %struct.string___XUB { i32 1, i32 36 }		; <%struct.string___XUB*> [#uses=1]
@ada__io_exceptions__use_error = external global %struct.exception		; <%struct.exception*> [#uses=4]
@ada__io_exceptions__name_error = external global %struct.exception		; <%struct.exception*> [#uses=2]

define void @_ada_ce3806g() {
entry:
	%0 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
	%1 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
	%2 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
	%3 = alloca %struct.system__file_control_block__pstring, align 8		; <%struct.system__file_control_block__pstring*> [#uses=3]
	%FRAME.356 = alloca %struct.FRAME.ce3806g		; <%struct.FRAME.ce3806g*> [#uses=20]
	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 )
	%4 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3		; <%struct.string___XUB*> [#uses=1]
	call void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %4 )
	%.b = load i1* @incompleteF.1176.b		; <i1> [#uses=1]
	br i1 %.b, label %bb11, label %bb

bb:		; preds = %entry
	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*) )
			to label %invcont unwind label %lpad

invcont:		; preds = %bb
	store i1 true, i1* @incompleteF.1176.b
	br label %bb11

bb11:		; preds = %entry, %invcont
	%5 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2		; <%struct.string___XUB*> [#uses=1]
	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %5 )
			to label %invcont12 unwind label %lpad228

invcont12:		; preds = %bb11
	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 )
			to label %invcont17 unwind label %lpad232

invcont17:		; preds = %invcont12
	%elt18 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 0		; <i8**> [#uses=1]
	%val19 = load i8** %elt18, align 8		; <i8*> [#uses=1]
	%elt20 = getelementptr %struct.system__file_control_block__pstring* %3, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	%val21 = load %struct.string___XUB** %elt20		; <%struct.string___XUB*> [#uses=1]
	%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 )
			to label %invcont26 unwind label %lpad232		; <%struct.ada__text_io__text_afcb*> [#uses=2]

invcont26:		; preds = %invcont17
	%7 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0		; <i32*> [#uses=1]
	%8 = load i32* %7, align 8		; <i32> [#uses=1]
	%9 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1		; <i32*> [#uses=1]
	%10 = load i32* %9, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %8, i32 %10 )
			to label %bb73 unwind label %lpad228

bb32:		; preds = %lpad232
	call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
	%11 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %11( )
			to label %invcont33 unwind label %lpad240

invcont33:		; preds = %bb32
	invoke void @report__not_applicable( i8* getelementptr ([50 x i8]* @.str7, i32 0, i32 0), %struct.string___XUB* @C.139.1577 )
			to label %invcont38 unwind label %lpad240

invcont38:		; preds = %invcont33
	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
			to label %invcont43 unwind label %lpad240

invcont43:		; preds = %invcont38
	unreachable

bb47:		; preds = %ppad291
	call void @__gnat_begin_handler( i8* %eh_ptr233 ) nounwind
	%12 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %12( )
			to label %invcont49 unwind label %lpad248

invcont49:		; preds = %bb47
	invoke void @report__not_applicable( i8* getelementptr ([51 x i8]* @.str9, i32 0, i32 0), %struct.string___XUB* @C.143.1585 )
			to label %invcont54 unwind label %lpad248

invcont54:		; preds = %invcont49
	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
			to label %invcont59 unwind label %lpad248

invcont59:		; preds = %invcont54
	unreachable

bb73:		; preds = %invcont26
	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 )
			to label %invcont78 unwind label %lpad228

invcont78:		; preds = %bb73
	%elt79 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 0		; <i8**> [#uses=1]
	%val80 = load i8** %elt79, align 8		; <i8*> [#uses=1]
	%elt81 = getelementptr %struct.system__file_control_block__pstring* %2, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	%val82 = load %struct.string___XUB** %elt81		; <%struct.string___XUB*> [#uses=1]
	%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 )
			to label %invcont87 unwind label %lpad228		; <%struct.ada__text_io__text_afcb*> [#uses=2]

invcont87:		; preds = %invcont78
	invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %13 )
			to label %invcont88 unwind label %lpad228

invcont88:		; preds = %invcont87
	%14 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1		; <%struct.string___XUB*> [#uses=1]
	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %14 )
			to label %invcont89 unwind label %lpad228

invcont89:		; preds = %invcont88
	invoke fastcc void @ce3806g__fxio__put.1149( %struct.ada__text_io__text_afcb* %6 )
			to label %bb94 unwind label %lpad252

bb94:		; preds = %invcont89
	invoke fastcc void @ce3806g__fxio__put__2.1155( )
			to label %invcont95 unwind label %lpad252

invcont95:		; preds = %bb94
	%15 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %6 )
			to label %invcont96 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]

invcont96:		; preds = %invcont95
	%16 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0		; <%struct.string___XUB*> [#uses=1]
	invoke void @system__secondary_stack__ss_mark( %struct.string___XUB* noalias sret %16 )
			to label %invcont97 unwind label %lpad252

invcont97:		; preds = %invcont96
	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 )
			to label %invcont102 unwind label %lpad256

invcont102:		; preds = %invcont97
	%elt103 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 0		; <i8**> [#uses=1]
	%val104 = load i8** %elt103, align 8		; <i8*> [#uses=1]
	%elt105 = getelementptr %struct.system__file_control_block__pstring* %1, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	%val106 = load %struct.string___XUB** %elt105		; <%struct.string___XUB*> [#uses=1]
	%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 )
			to label %invcont111 unwind label %lpad256		; <%struct.ada__text_io__text_afcb*> [#uses=2]

invcont111:		; preds = %invcont102
	%18 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
	%19 = load i32* %18, align 8		; <i32> [#uses=1]
	%20 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
	%21 = load i32* %20, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %19, i32 %21 )
			to label %bb143 unwind label %lpad252

bb117:		; preds = %lpad256
	call void @__gnat_begin_handler( i8* %eh_ptr257 ) nounwind
	%22 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %22( )
			to label %invcont119 unwind label %lpad264

invcont119:		; preds = %bb117
	invoke void @report__not_applicable( i8* getelementptr ([47 x i8]* @.str12, i32 0, i32 0), %struct.string___XUB* @C.156.1618 )
			to label %invcont124 unwind label %lpad264

invcont124:		; preds = %invcont119
	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
			to label %invcont129 unwind label %lpad264

invcont129:		; preds = %invcont124
	unreachable

bb143:		; preds = %invcont111
	%23 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__standard_output( )
			to label %invcont144 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]

invcont144:		; preds = %bb143
	invoke void @ada__text_io__set_output( %struct.ada__text_io__text_afcb* %23 )
			to label %invcont145 unwind label %lpad252

invcont145:		; preds = %invcont144
	%24 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__close( %struct.ada__text_io__text_afcb* %13 )
			to label %invcont146 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=1]

invcont146:		; preds = %invcont145
	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 )
			to label %invcont151 unwind label %lpad252

invcont151:		; preds = %invcont146
	%elt152 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 0		; <i8**> [#uses=1]
	%val153 = load i8** %elt152, align 8		; <i8*> [#uses=1]
	%elt154 = getelementptr %struct.system__file_control_block__pstring* %0, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	%val155 = load %struct.string___XUB** %elt154		; <%struct.string___XUB*> [#uses=1]
	%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 )
			to label %invcont160 unwind label %lpad252		; <%struct.ada__text_io__text_afcb*> [#uses=2]

invcont160:		; preds = %invcont151
	%26 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %17 ) signext
			to label %invcont161 unwind label %lpad252		; <i8> [#uses=1]

invcont161:		; preds = %invcont160
	%27 = icmp eq i8 %26, -3		; <i1> [#uses=1]
	br i1 %27, label %bb169, label %bb163

bb163:		; preds = %invcont161
	invoke void @report__failed( i8* getelementptr ([33 x i8]* @.str14, i32 0, i32 0), %struct.string___XUB* @C.162.1637 )
			to label %bb169 unwind label %lpad252

bb169:		; preds = %invcont161, %bb163
	%28 = invoke fastcc i8 @ce3806g__fxio__get.1137( %struct.ada__text_io__text_afcb* %25 ) signext
			to label %invcont170 unwind label %lpad252		; <i8> [#uses=1]

invcont170:		; preds = %bb169
	%29 = icmp eq i8 %28, -1		; <i1> [#uses=1]
	br i1 %29, label %bb187, label %bb172

bb172:		; preds = %invcont170
	invoke void @report__failed( i8* getelementptr ([36 x i8]* @.str15, i32 0, i32 0), %struct.string___XUB* @C.164.1642 )
			to label %bb187 unwind label %lpad252

bb187:		; preds = %invcont170, %bb172
	%30 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0		; <i32*> [#uses=1]
	%31 = load i32* %30, align 8		; <i32> [#uses=1]
	%32 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1		; <i32*> [#uses=1]
	%33 = load i32* %32, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %31, i32 %33 )
			to label %bb193 unwind label %lpad228

bb193:		; preds = %bb187
	%34 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %17 )
			to label %invcont194 unwind label %lpad268		; <%struct.ada__text_io__text_afcb*> [#uses=0]

invcont194:		; preds = %bb193
	%35 = invoke %struct.ada__text_io__text_afcb* @ada__text_io__delete( %struct.ada__text_io__text_afcb* %25 )
			to label %bb221 unwind label %lpad268		; <%struct.ada__text_io__text_afcb*> [#uses=0]

bb196:		; preds = %lpad268
	call void @__gnat_begin_handler( i8* %eh_ptr269 ) nounwind
	%36 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %36( )
			to label %bb203 unwind label %lpad276

bb203:		; preds = %bb196
	invoke void @__gnat_end_handler( i8* %eh_ptr269 )
			to label %bb221 unwind label %lpad272

bb205:		; preds = %ppad304
	call void @__gnat_begin_handler( i8* %eh_exception.1 ) nounwind
	%37 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %37( )
			to label %bb212 unwind label %lpad284

bb212:		; preds = %bb205
	invoke void @__gnat_end_handler( i8* %eh_exception.1 )
			to label %bb221 unwind label %lpad280

bb221:		; preds = %invcont194, %bb212, %bb203
	%38 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0		; <i32*> [#uses=1]
	%39 = load i32* %38, align 8		; <i32> [#uses=1]
	%40 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1		; <i32*> [#uses=1]
	%41 = load i32* %40, align 4		; <i32> [#uses=1]
	call void @system__secondary_stack__ss_release( i32 %39, i32 %41 )
	call void @report__result( )
	ret void

lpad:		; preds = %bb
	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad

lpad228:		; preds = %bb187, %ppad294, %invcont88, %invcont87, %invcont78, %bb73, %ppad288, %invcont26, %bb11
	%eh_ptr229 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad304

lpad232:		; preds = %invcont17, %invcont12
	%eh_ptr233 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=6]
	%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]
	%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]
	%42 = icmp eq i32 %eh_select235, %eh_typeid		; <i1> [#uses=1]
	br i1 %42, label %bb32, label %ppad291

lpad236:		; preds = %lpad240
	%eh_ptr237 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad288

lpad240:		; preds = %invcont38, %invcont33, %bb32
	%eh_ptr241 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	invoke void @__gnat_end_handler( i8* %eh_ptr233 )
			to label %ppad288 unwind label %lpad236

lpad244:		; preds = %lpad248
	%eh_ptr245 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad288

lpad248:		; preds = %invcont54, %invcont49, %bb47
	%eh_ptr249 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	invoke void @__gnat_end_handler( i8* %eh_ptr233 )
			to label %ppad288 unwind label %lpad244

lpad252:		; preds = %bb94, %invcont89, %invcont160, %bb169, %bb172, %bb163, %invcont151, %invcont146, %invcont145, %invcont144, %bb143, %ppad295, %invcont111, %invcont96, %invcont95
	%eh_ptr253 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad294

lpad256:		; preds = %invcont102, %invcont97
	%eh_ptr257 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=4]
	%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]
	%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]
	%43 = icmp eq i32 %eh_select259, %eh_typeid297		; <i1> [#uses=1]
	br i1 %43, label %bb117, label %ppad295

lpad260:		; preds = %lpad264
	%eh_ptr261 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad295

lpad264:		; preds = %invcont124, %invcont119, %bb117
	%eh_ptr265 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	invoke void @__gnat_end_handler( i8* %eh_ptr257 )
			to label %ppad295 unwind label %lpad260

lpad268:		; preds = %invcont194, %bb193
	%eh_ptr269 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=5]
	%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]
	%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]
	%44 = icmp eq i32 %eh_select271, %eh_typeid301		; <i1> [#uses=1]
	br i1 %44, label %bb196, label %ppad304

lpad272:		; preds = %bb203, %lpad276
	%eh_ptr273 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad304

lpad276:		; preds = %bb196
	%eh_ptr277 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	invoke void @__gnat_end_handler( i8* %eh_ptr269 )
			to label %ppad304 unwind label %lpad272

lpad280:		; preds = %bb212, %lpad284
	%eh_ptr281 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	br label %ppad

lpad284:		; preds = %bb205
	%eh_ptr285 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	invoke void @__gnat_end_handler( i8* %eh_exception.1 )
			to label %ppad unwind label %lpad280

ppad:		; preds = %lpad284, %ppad304, %lpad280, %lpad
	%eh_exception.2 = phi i8* [ %eh_exception.1, %ppad304 ], [ %eh_ptr281, %lpad280 ], [ %eh_ptr, %lpad ], [ %eh_ptr285, %lpad284 ]		; <i8*> [#uses=1]
	%45 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 0		; <i32*> [#uses=1]
	%46 = load i32* %45, align 8		; <i32> [#uses=1]
	%47 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 3, i32 1		; <i32*> [#uses=1]
	%48 = load i32* %47, align 4		; <i32> [#uses=1]
	call void @system__secondary_stack__ss_release( i32 %46, i32 %48 )
	%49 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.2 )		; <i32> [#uses=0]
	unreachable

ppad288:		; preds = %lpad248, %lpad240, %ppad291, %lpad244, %lpad236
	%eh_exception.0 = phi i8* [ %eh_ptr233, %ppad291 ], [ %eh_ptr245, %lpad244 ], [ %eh_ptr237, %lpad236 ], [ %eh_ptr241, %lpad240 ], [ %eh_ptr249, %lpad248 ]		; <i8*> [#uses=1]
	%eh_selector.0 = phi i32 [ %eh_select235, %ppad291 ], [ %eh_select247, %lpad244 ], [ %eh_select239, %lpad236 ], [ %eh_select243, %lpad240 ], [ %eh_select251, %lpad248 ]		; <i32> [#uses=1]
	%50 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 0		; <i32*> [#uses=1]
	%51 = load i32* %50, align 8		; <i32> [#uses=1]
	%52 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 2, i32 1		; <i32*> [#uses=1]
	%53 = load i32* %52, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %51, i32 %53 )
			to label %ppad304 unwind label %lpad228

ppad291:		; preds = %lpad232
	%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]
	%54 = icmp eq i32 %eh_select235, %eh_typeid292		; <i1> [#uses=1]
	br i1 %54, label %bb47, label %ppad288

ppad294:		; preds = %ppad295, %lpad252
	%eh_exception.4 = phi i8* [ %eh_ptr253, %lpad252 ], [ %eh_exception.3, %ppad295 ]		; <i8*> [#uses=1]
	%eh_selector.4 = phi i32 [ %eh_select255, %lpad252 ], [ %eh_selector.3, %ppad295 ]		; <i32> [#uses=1]
	%55 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 0		; <i32*> [#uses=1]
	%56 = load i32* %55, align 8		; <i32> [#uses=1]
	%57 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 1, i32 1		; <i32*> [#uses=1]
	%58 = load i32* %57, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %56, i32 %58 )
			to label %ppad304 unwind label %lpad228

ppad295:		; preds = %lpad264, %lpad256, %lpad260
	%eh_exception.3 = phi i8* [ %eh_ptr257, %lpad256 ], [ %eh_ptr261, %lpad260 ], [ %eh_ptr265, %lpad264 ]		; <i8*> [#uses=1]
	%eh_selector.3 = phi i32 [ %eh_select259, %lpad256 ], [ %eh_select263, %lpad260 ], [ %eh_select267, %lpad264 ]		; <i32> [#uses=1]
	%59 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 0		; <i32*> [#uses=1]
	%60 = load i32* %59, align 8		; <i32> [#uses=1]
	%61 = getelementptr %struct.FRAME.ce3806g* %FRAME.356, i32 0, i32 0, i32 1		; <i32*> [#uses=1]
	%62 = load i32* %61, align 4		; <i32> [#uses=1]
	invoke void @system__secondary_stack__ss_release( i32 %60, i32 %62 )
			to label %ppad294 unwind label %lpad252

ppad304:		; preds = %lpad276, %ppad294, %ppad288, %lpad268, %lpad272, %lpad228
	%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]
	%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]
	%eh_typeid305 = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @incomplete.1177, i32 0, i32 0) )		; <i32> [#uses=1]
	%63 = icmp eq i32 %eh_selector.1, %eh_typeid305		; <i1> [#uses=1]
	br i1 %63, label %bb205, label %ppad
}

define internal fastcc i8 @ce3806g__fxio__get.1137(%struct.ada__text_io__text_afcb* %file) signext {
entry:
	%0 = invoke x86_fp80 @ada__text_io__float_aux__get( %struct.ada__text_io__text_afcb* %file, i32 0 )
			to label %invcont unwind label %lpad		; <x86_fp80> [#uses=5]

invcont:		; preds = %entry
	%1 = fcmp ult x86_fp80 %0, 0xKFFFEFFFFFFFFFFFFFFFF		; <i1> [#uses=1]
	%2 = fcmp ugt x86_fp80 %0, 0xK7FFEFFFFFFFFFFFFFFFF		; <i1> [#uses=1]
	%or.cond = or i1 %1, %2		; <i1> [#uses=1]
	br i1 %or.cond, label %bb2, label %bb4

bb2:		; preds = %invcont
	invoke void @__gnat_rcheck_12( i8* getelementptr ([12 x i8]* @.str, i32 0, i32 0), i32 1 ) noreturn
			to label %invcont3 unwind label %lpad

invcont3:		; preds = %bb2
	unreachable

bb4:		; preds = %invcont
	%3 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=1]
	%4 = fcmp ult x86_fp80 %3, 0xKC0068000000000000000		; <i1> [#uses=1]
	br i1 %4, label %bb8, label %bb6

bb6:		; preds = %bb4
	%5 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=1]
	%6 = fcmp ugt x86_fp80 %5, 0xK4005FE00000000000000		; <i1> [#uses=1]
	br i1 %6, label %bb8, label %bb10

bb8:		; preds = %bb4, %bb6
	invoke void @__gnat_rcheck_10( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
			to label %invcont9 unwind label %lpad

invcont9:		; preds = %bb8
	unreachable

bb10:		; preds = %bb6
	%7 = fmul x86_fp80 %0, 0xK40008000000000000000		; <x86_fp80> [#uses=3]
	%8 = fcmp ult x86_fp80 %7, 0xK00000000000000000000		; <i1> [#uses=1]
	br i1 %8, label %bb13, label %bb12

bb12:		; preds = %bb10
	%9 = fadd x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF		; <x86_fp80> [#uses=1]
	br label %bb14

bb13:		; preds = %bb10
	%10 = fsub x86_fp80 %7, 0xK3FFDFFFFFFFFFFFFFFFF		; <x86_fp80> [#uses=1]
	br label %bb14

bb14:		; preds = %bb13, %bb12
	%iftmp.339.0.in = phi x86_fp80 [ %10, %bb13 ], [ %9, %bb12 ]		; <x86_fp80> [#uses=1]
	%iftmp.339.0 = fptosi x86_fp80 %iftmp.339.0.in to i8		; <i8> [#uses=3]
	%11 = add i8 %iftmp.339.0, 20		; <i8> [#uses=1]
	%12 = icmp ugt i8 %11, 40		; <i1> [#uses=1]
	br i1 %12, label %bb16, label %bb18

bb16:		; preds = %bb14
	invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
			to label %invcont17 unwind label %lpad

invcont17:		; preds = %bb16
	unreachable

bb18:		; preds = %bb14
	%13 = add i8 %iftmp.339.0, 20		; <i8> [#uses=1]
	%14 = icmp ugt i8 %13, 40		; <i1> [#uses=1]
	br i1 %14, label %bb20, label %bb22

bb20:		; preds = %bb18
	invoke void @__gnat_rcheck_12( i8* getelementptr ([14 x i8]* @.str1, i32 0, i32 0), i32 324 ) noreturn
			to label %invcont21 unwind label %lpad

invcont21:		; preds = %bb20
	unreachable

bb22:		; preds = %bb18
	ret i8 %iftmp.339.0

bb23:		; preds = %lpad
	call void @__gnat_begin_handler( i8* %eh_ptr ) nounwind
	%15 = load void ()** @system__soft_links__abort_undefer, align 4		; <void ()*> [#uses=1]
	invoke void %15( )
			to label %invcont24 unwind label %lpad33

invcont24:		; preds = %bb23
	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
			to label %invcont27 unwind label %lpad33

invcont27:		; preds = %invcont24
	unreachable

lpad:		; preds = %bb20, %bb16, %bb8, %bb2, %entry
	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=4]
	%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]
	%eh_typeid = call i32 @llvm.eh.typeid.for.i32( i8* getelementptr (%struct.exception* @constraint_error, i32 0, i32 0) )		; <i32> [#uses=1]
	%16 = icmp eq i32 %eh_select32, %eh_typeid		; <i1> [#uses=1]
	br i1 %16, label %bb23, label %Unwind

lpad33:		; preds = %invcont24, %bb23
	%eh_ptr34 = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	call void @__gnat_end_handler( i8* %eh_ptr )
	br label %Unwind

Unwind:		; preds = %lpad, %lpad33
	%eh_exception.0 = phi i8* [ %eh_ptr, %lpad ], [ %eh_ptr34, %lpad33 ]		; <i8*> [#uses=1]
	%17 = call i32 (...)* @_Unwind_Resume( i8* %eh_exception.0 )		; <i32> [#uses=0]
	unreachable
}

define internal fastcc void @ce3806g__fxio__put.1149(%struct.ada__text_io__text_afcb* %file) {
entry:
	%A.301 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
	%A.292 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
	%0 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
	%1 = alloca [12 x i8]		; <[12 x i8]*> [#uses=1]
	%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0		; <i8*> [#uses=2]
	%2 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 1, i32* %2, align 8
	%3 = getelementptr %struct.string___XUB* %A.292, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 12, i32* %3, align 4
	%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.292, i8 signext -3 )
			to label %invcont unwind label %lpad		; <i32> [#uses=1]

invcont:		; preds = %entry
	%5 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 1, i32* %5, align 8
	%6 = getelementptr %struct.string___XUB* %A.301, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 %4, i32* %6, align 4
	invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %file, i8* %.sub, %struct.string___XUB* %A.301 )
			to label %bb60 unwind label %lpad

bb60:		; preds = %invcont
	ret void

lpad:		; preds = %entry, %invcont
	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	call void @llvm.stackrestore( i8* %0 )
	%7 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
	unreachable
}

define internal fastcc void @ce3806g__fxio__put__2.1155() {
entry:
	%A.266 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
	%A.257 = alloca %struct.string___XUB		; <%struct.string___XUB*> [#uses=3]
	%0 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
	%1 = alloca [12 x i8]		; <[12 x i8]*> [#uses=1]
	%.sub = getelementptr [12 x i8]* %1, i32 0, i32 0		; <i8*> [#uses=2]
	%2 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 1, i32* %2, align 8
	%3 = getelementptr %struct.string___XUB* %A.257, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 12, i32* %3, align 4
	%4 = invoke fastcc i32 @ce3806g__fxio__put__4.1215( i8* %.sub, %struct.string___XUB* %A.257, i8 signext -1 )
			to label %invcont unwind label %lpad		; <i32> [#uses=1]

invcont:		; preds = %entry
	%5 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 1, i32* %5, align 8
	%6 = getelementptr %struct.string___XUB* %A.266, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 %4, i32* %6, align 4
	%7 = load %struct.ada__text_io__text_afcb** @ada__text_io__current_out, align 4		; <%struct.ada__text_io__text_afcb*> [#uses=1]
	invoke void @ada__text_io__generic_aux__put_item( %struct.ada__text_io__text_afcb* %7, i8* %.sub, %struct.string___XUB* %A.266 )
			to label %bb60 unwind label %lpad

bb60:		; preds = %invcont
	ret void

lpad:		; preds = %entry, %invcont
	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	call void @llvm.stackrestore( i8* %0 )
	%8 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
	unreachable
}

define internal fastcc i32 @ce3806g__fxio__put__4.1215(i8* %to.0, %struct.string___XUB* %to.1, i8 signext %item) {
entry:
        %P0 = load i32 * @__gnat_all_others_value, align 4  ; <i32*> [#uses=1]
        %P = alloca i32, i32 %P0	; <i32*> [#uses=1]
        call void @ext( i32* %P )
	%to_addr = alloca %struct.system__file_control_block__pstring		; <%struct.system__file_control_block__pstring*> [#uses=4]
	%FRAME.358 = alloca %struct.FRAME.ce3806g__fxio__put__4		; <%struct.FRAME.ce3806g__fxio__put__4*> [#uses=65]
	%0 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 0		; <i8**> [#uses=1]
	store i8* %to.0, i8** %0, align 8
	%1 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	store %struct.string___XUB* %to.1, %struct.string___XUB** %1
	%2 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	store %struct.system__file_control_block__pstring* %to_addr, %struct.system__file_control_block__pstring** %2, align 4
	%3 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 3, i32* %3, align 8
	%4 = getelementptr %struct.system__file_control_block__pstring* %to_addr, i32 0, i32 1		; <%struct.string___XUB**> [#uses=1]
	%5 = load %struct.string___XUB** %4, align 4		; <%struct.string___XUB*> [#uses=1]
	%6 = getelementptr %struct.string___XUB* %5, i32 0, i32 0		; <i32*> [#uses=1]
	%7 = load i32* %6, align 4		; <i32> [#uses=1]
	%8 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
	store i32 %7, i32* %8, align 8
	%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
	%10 = load i32* %9, align 8		; <i32> [#uses=1]
	%11 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	store i32 %10, i32* %11, align 8
	%item.lobit = lshr i8 %item, 7		; <i8> [#uses=1]
	%12 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
	store i8 %item.lobit, i8* %12, align 8
	%13 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
	%14 = load i32* %13, align 8		; <i32> [#uses=1]
	%15 = add i32 %14, -1		; <i32> [#uses=1]
	%16 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %15, i32* %16, align 4
	%17 = sext i8 %item to i64		; <i64> [#uses=1]
	%18 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 1 ) readnone		; <i64> [#uses=1]
	%19 = sub i64 0, %18		; <i64> [#uses=1]
	%20 = call i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 0 ) readnone		; <i64> [#uses=1]
	%21 = mul i64 %20, -2		; <i64> [#uses=1]
	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 )
	%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%23 = load i32* %22, align 4		; <i32> [#uses=1]
	%24 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
	%25 = load i32* %24, align 8		; <i32> [#uses=1]
	%26 = icmp slt i32 %23, %25		; <i1> [#uses=1]
	br i1 %26, label %bb71, label %bb72

bb71:		; preds = %entry
	%27 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 0, i32* %27, align 4
	br label %bb72

bb72:		; preds = %entry, %bb102, %bb71
	%28 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%29 = load i32* %28, align 4		; <i32> [#uses=1]
	%30 = icmp slt i32 %29, -1		; <i1> [#uses=1]
	%31 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%32 = load i32* %31, align 4		; <i32> [#uses=2]
	br i1 %30, label %bb103, label %bb74

bb74:		; preds = %bb72
	%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 2		; <i32*> [#uses=1]
	%34 = load i32* %33, align 8		; <i32> [#uses=1]
	%35 = add i32 %34, -1		; <i32> [#uses=1]
	%36 = icmp eq i32 %32, %35		; <i1> [#uses=1]
	%37 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%38 = load i32* %37, align 4		; <i32> [#uses=2]
	br i1 %36, label %bb76, label %bb98

bb76:		; preds = %bb74
	%39 = icmp slt i32 %38, 1		; <i1> [#uses=1]
	br i1 %39, label %bb80, label %bb102

bb80:		; preds = %bb76
	%40 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%41 = load i32* %40, align 4		; <i32> [#uses=2]
	%42 = icmp sgt i32 %41, -1		; <i1> [#uses=1]
	%.op = add i32 %41, 2		; <i32> [#uses=1]
	%43 = select i1 %42, i32 %.op, i32 2		; <i32> [#uses=1]
	%44 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
	%45 = load i8* %44, align 8		; <i8> [#uses=1]
	%46 = zext i8 %45 to i32		; <i32> [#uses=1]
	%47 = add i32 %43, %46		; <i32> [#uses=2]
	%48 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
	%49 = load i32* %48, align 8		; <i32> [#uses=1]
	%50 = icmp sgt i32 %47, %49		; <i1> [#uses=1]
	br i1 %50, label %bb88, label %bb85

bb85:		; preds = %bb80, %bb87
	%j.0 = phi i32 [ %68, %bb87 ], [ %47, %bb80 ]		; <i32> [#uses=2]
	%51 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%52 = load i32* %51, align 4		; <i32> [#uses=1]
	%53 = add i32 %52, 1		; <i32> [#uses=1]
	%54 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %53, i32* %54, align 4
	%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%56 = load i32* %55, align 8		; <i32> [#uses=1]
	%57 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%58 = load %struct.system__file_control_block__pstring** %57, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%59 = getelementptr %struct.system__file_control_block__pstring* %58, i32 0, i32 0		; <i8**> [#uses=1]
	%60 = load i8** %59, align 4		; <i8*> [#uses=1]
	%61 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%62 = load i32* %61, align 4		; <i32> [#uses=1]
	%63 = sub i32 %62, %56		; <i32> [#uses=1]
	%64 = getelementptr i8* %60, i32 %63		; <i8*> [#uses=1]
	store i8 32, i8* %64, align 1
	%65 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 0		; <i32*> [#uses=1]
	%66 = load i32* %65, align 8		; <i32> [#uses=1]
	%67 = icmp eq i32 %66, %j.0		; <i1> [#uses=1]
	br i1 %67, label %bb88, label %bb87

bb87:		; preds = %bb85
	%68 = add i32 %j.0, 1		; <i32> [#uses=1]
	br label %bb85

bb88:		; preds = %bb80, %bb85
	%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 6		; <i8*> [#uses=1]
	%70 = load i8* %69, align 8		; <i8> [#uses=1]
	%toBool89 = icmp eq i8 %70, 0		; <i1> [#uses=1]
	br i1 %toBool89, label %bb91, label %bb90

bb90:		; preds = %bb88
	%71 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%72 = load i32* %71, align 4		; <i32> [#uses=1]
	%73 = add i32 %72, 1		; <i32> [#uses=1]
	%74 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %73, i32* %74, align 4
	%75 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%76 = load i32* %75, align 8		; <i32> [#uses=1]
	%77 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%78 = load %struct.system__file_control_block__pstring** %77, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%79 = getelementptr %struct.system__file_control_block__pstring* %78, i32 0, i32 0		; <i8**> [#uses=1]
	%80 = load i8** %79, align 4		; <i8*> [#uses=1]
	%81 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%82 = load i32* %81, align 4		; <i32> [#uses=1]
	%83 = sub i32 %82, %76		; <i32> [#uses=1]
	%84 = getelementptr i8* %80, i32 %83		; <i8*> [#uses=1]
	store i8 45, i8* %84, align 1
	br label %bb91

bb91:		; preds = %bb88, %bb90
	%85 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%86 = load i32* %85, align 4		; <i32> [#uses=1]
	%87 = icmp slt i32 %86, 0		; <i1> [#uses=1]
	br i1 %87, label %bb93, label %bb97

bb93:		; preds = %bb91
	%88 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%89 = load i32* %88, align 4		; <i32> [#uses=1]
	%90 = add i32 %89, 1		; <i32> [#uses=1]
	%91 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %90, i32* %91, align 4
	%92 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%93 = load i32* %92, align 8		; <i32> [#uses=1]
	%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%95 = load %struct.system__file_control_block__pstring** %94, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%96 = getelementptr %struct.system__file_control_block__pstring* %95, i32 0, i32 0		; <i8**> [#uses=1]
	%97 = load i8** %96, align 4		; <i8*> [#uses=1]
	%98 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%99 = load i32* %98, align 4		; <i32> [#uses=1]
	%100 = sub i32 %99, %93		; <i32> [#uses=1]
	%101 = getelementptr i8* %97, i32 %100		; <i8*> [#uses=1]
	store i8 48, i8* %101, align 1
	%102 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%103 = load i32* %102, align 4		; <i32> [#uses=1]
	%104 = add i32 %103, 1		; <i32> [#uses=1]
	%105 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %104, i32* %105, align 4
	%106 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%107 = load i32* %106, align 8		; <i32> [#uses=1]
	%108 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%109 = load %struct.system__file_control_block__pstring** %108, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%110 = getelementptr %struct.system__file_control_block__pstring* %109, i32 0, i32 0		; <i8**> [#uses=1]
	%111 = load i8** %110, align 4		; <i8*> [#uses=1]
	%112 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%113 = load i32* %112, align 4		; <i32> [#uses=1]
	%114 = sub i32 %113, %107		; <i32> [#uses=1]
	%115 = getelementptr i8* %111, i32 %114		; <i8*> [#uses=1]
	store i8 46, i8* %115, align 1
	%116 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%117 = load i32* %116, align 4		; <i32> [#uses=1]
	br label %bb94

bb94:		; preds = %bb96, %bb93
	%j8.0 = phi i32 [ %117, %bb93 ], [ %133, %bb96 ]		; <i32> [#uses=2]
	%118 = icmp sgt i32 %j8.0, -2		; <i1> [#uses=1]
	br i1 %118, label %bb97, label %bb96

bb96:		; preds = %bb94
	%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%120 = load i32* %119, align 4		; <i32> [#uses=1]
	%121 = add i32 %120, 1		; <i32> [#uses=1]
	%122 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %121, i32* %122, align 4
	%123 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%124 = load i32* %123, align 8		; <i32> [#uses=1]
	%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%126 = load %struct.system__file_control_block__pstring** %125, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%127 = getelementptr %struct.system__file_control_block__pstring* %126, i32 0, i32 0		; <i8**> [#uses=1]
	%128 = load i8** %127, align 4		; <i8*> [#uses=1]
	%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%130 = load i32* %129, align 4		; <i32> [#uses=1]
	%131 = sub i32 %130, %124		; <i32> [#uses=1]
	%132 = getelementptr i8* %128, i32 %131		; <i8*> [#uses=1]
	store i8 48, i8* %132, align 1
	%133 = add i32 %j8.0, 1		; <i32> [#uses=1]
	br label %bb94

bb97:		; preds = %bb91, %bb94
	%134 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%135 = load i32* %134, align 4		; <i32> [#uses=1]
	%136 = add i32 %135, 1		; <i32> [#uses=1]
	%137 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %136, i32* %137, align 4
	%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%139 = load i32* %138, align 8		; <i32> [#uses=1]
	%140 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%141 = load %struct.system__file_control_block__pstring** %140, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%142 = getelementptr %struct.system__file_control_block__pstring* %141, i32 0, i32 0		; <i8**> [#uses=1]
	%143 = load i8** %142, align 4		; <i8*> [#uses=1]
	%144 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%145 = load i32* %144, align 4		; <i32> [#uses=1]
	%146 = sub i32 %145, %139		; <i32> [#uses=1]
	%147 = getelementptr i8* %143, i32 %146		; <i8*> [#uses=1]
	store i8 48, i8* %147, align 1
	br label %bb102

bb98:		; preds = %bb74
	%148 = icmp eq i32 %38, -1		; <i1> [#uses=1]
	br i1 %148, label %bb100, label %bb101

bb100:		; preds = %bb98
	%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%150 = load i32* %149, align 4		; <i32> [#uses=1]
	%151 = add i32 %150, 1		; <i32> [#uses=1]
	%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %151, i32* %152, align 4
	%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%154 = load i32* %153, align 8		; <i32> [#uses=1]
	%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%156 = load %struct.system__file_control_block__pstring** %155, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0		; <i8**> [#uses=1]
	%158 = load i8** %157, align 4		; <i8*> [#uses=1]
	%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%160 = load i32* %159, align 4		; <i32> [#uses=1]
	%161 = sub i32 %160, %154		; <i32> [#uses=1]
	%162 = getelementptr i8* %158, i32 %161		; <i8*> [#uses=1]
	store i8 46, i8* %162, align 1
	br label %bb101

bb101:		; preds = %bb98, %bb100
	%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%164 = load i32* %163, align 4		; <i32> [#uses=1]
	%165 = add i32 %164, 1		; <i32> [#uses=1]
	%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %165, i32* %166, align 4
	%167 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 4		; <i32*> [#uses=1]
	%168 = load i32* %167, align 8		; <i32> [#uses=1]
	%169 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%170 = load %struct.system__file_control_block__pstring** %169, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%171 = getelementptr %struct.system__file_control_block__pstring* %170, i32 0, i32 0		; <i8**> [#uses=1]
	%172 = load i8** %171, align 4		; <i8*> [#uses=1]
	%173 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 5		; <i32*> [#uses=1]
	%174 = load i32* %173, align 4		; <i32> [#uses=1]
	%175 = sub i32 %174, %168		; <i32> [#uses=1]
	%176 = getelementptr i8* %172, i32 %175		; <i8*> [#uses=1]
	store i8 48, i8* %176, align 1
	br label %bb102

bb102:		; preds = %bb76, %bb101, %bb97
	%177 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	%178 = load i32* %177, align 4		; <i32> [#uses=1]
	%179 = add i32 %178, -1		; <i32> [#uses=1]
	%180 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %FRAME.358, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 %179, i32* %180, align 4
	br label %bb72

bb103:		; preds = %bb72
	ret i32 %32
}

declare x86_fp80 @ada__text_io__float_aux__get(%struct.ada__text_io__text_afcb*, i32)

declare void @__gnat_rcheck_12(i8*, i32) noreturn

declare void @__gnat_rcheck_10(i8*, i32) noreturn

declare i8* @llvm.eh.exception() nounwind

declare i32 @llvm.eh.selector.i32(i8*, i8*, ...) nounwind

declare i32 @llvm.eh.typeid.for.i32(i8*) nounwind

declare void @__gnat_begin_handler(i8*) nounwind

declare void @__gnat_raise_exception(%struct.system__standard_library__exception_data*, i8*, %struct.string___XUB*) noreturn

declare void @__gnat_end_handler(i8*)

declare i32 @__gnat_eh_personality(...)

declare i32 @_Unwind_Resume(...)

define internal fastcc void @ce3806g__fxio__put__put_int64__4.1339(%struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %x, i32 %scale) {
entry:
	%0 = icmp eq i64 %x, 0		; <i1> [#uses=1]
	br i1 %0, label %return, label %bb

bb:		; preds = %entry
	%1 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 %scale, i32* %1, align 4
	%2 = add i64 %x, 9		; <i64> [#uses=1]
	%3 = icmp ugt i64 %2, 18		; <i1> [#uses=1]
	br i1 %3, label %bb18, label %bb19

bb18:		; preds = %bb
	%4 = add i32 %scale, 1		; <i32> [#uses=1]
	%5 = sdiv i64 %x, 10		; <i64> [#uses=1]
	call fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i64 %5, i32 %4 )
	br label %bb19

bb19:		; preds = %bb, %bb18
	%6 = srem i64 %x, 10		; <i64> [#uses=3]
	%neg = sub i64 0, %6		; <i64> [#uses=1]
	%abscond = icmp sgt i64 %6, -1		; <i1> [#uses=1]
	%abs = select i1 %abscond, i64 %6, i64 %neg		; <i64> [#uses=3]
	%7 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%8 = load i32* %7, align 4		; <i32> [#uses=1]
	%9 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 2		; <i32*> [#uses=1]
	%10 = load i32* %9, align 4		; <i32> [#uses=1]
	%11 = add i32 %10, -1		; <i32> [#uses=1]
	%12 = icmp eq i32 %8, %11		; <i1> [#uses=1]
	br i1 %12, label %bb23, label %bb44

bb23:		; preds = %bb19
	%13 = icmp ne i64 %abs, 0		; <i1> [#uses=1]
	%14 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%15 = load i32* %14, align 4		; <i32> [#uses=1]
	%16 = icmp slt i32 %15, 1		; <i1> [#uses=1]
	%17 = or i1 %13, %16		; <i1> [#uses=1]
	br i1 %17, label %bb27, label %bb48

bb27:		; preds = %bb23
	%18 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%19 = load i32* %18, align 4		; <i32> [#uses=2]
	%20 = icmp sgt i32 %19, -1		; <i1> [#uses=1]
	%.op = add i32 %19, 2		; <i32> [#uses=1]
	%21 = select i1 %20, i32 %.op, i32 2		; <i32> [#uses=1]
	%22 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6		; <i8*> [#uses=1]
	%23 = load i8* %22, align 1		; <i8> [#uses=1]
	%24 = zext i8 %23 to i32		; <i32> [#uses=1]
	%25 = add i32 %21, %24		; <i32> [#uses=2]
	%26 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0		; <i32*> [#uses=1]
	%27 = load i32* %26, align 4		; <i32> [#uses=1]
	%28 = icmp sgt i32 %25, %27		; <i1> [#uses=1]
	br i1 %28, label %bb34, label %bb31

bb31:		; preds = %bb27, %bb33
	%j.0 = phi i32 [ %46, %bb33 ], [ %25, %bb27 ]		; <i32> [#uses=2]
	%29 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%30 = load i32* %29, align 4		; <i32> [#uses=1]
	%31 = add i32 %30, 1		; <i32> [#uses=1]
	%32 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %31, i32* %32, align 4
	%33 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%34 = load i32* %33, align 4		; <i32> [#uses=1]
	%35 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%36 = load %struct.system__file_control_block__pstring** %35, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%37 = getelementptr %struct.system__file_control_block__pstring* %36, i32 0, i32 0		; <i8**> [#uses=1]
	%38 = load i8** %37, align 4		; <i8*> [#uses=1]
	%39 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%40 = load i32* %39, align 4		; <i32> [#uses=1]
	%41 = sub i32 %40, %34		; <i32> [#uses=1]
	%42 = getelementptr i8* %38, i32 %41		; <i8*> [#uses=1]
	store i8 32, i8* %42, align 1
	%43 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 0		; <i32*> [#uses=1]
	%44 = load i32* %43, align 4		; <i32> [#uses=1]
	%45 = icmp eq i32 %44, %j.0		; <i1> [#uses=1]
	br i1 %45, label %bb34, label %bb33

bb33:		; preds = %bb31
	%46 = add i32 %j.0, 1		; <i32> [#uses=1]
	br label %bb31

bb34:		; preds = %bb27, %bb31
	%47 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 6		; <i8*> [#uses=1]
	%48 = load i8* %47, align 1		; <i8> [#uses=1]
	%toBool35 = icmp eq i8 %48, 0		; <i1> [#uses=1]
	br i1 %toBool35, label %bb37, label %bb36

bb36:		; preds = %bb34
	%49 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%50 = load i32* %49, align 4		; <i32> [#uses=1]
	%51 = add i32 %50, 1		; <i32> [#uses=1]
	%52 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %51, i32* %52, align 4
	%53 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%54 = load i32* %53, align 4		; <i32> [#uses=1]
	%55 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%56 = load %struct.system__file_control_block__pstring** %55, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%57 = getelementptr %struct.system__file_control_block__pstring* %56, i32 0, i32 0		; <i8**> [#uses=1]
	%58 = load i8** %57, align 4		; <i8*> [#uses=1]
	%59 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%60 = load i32* %59, align 4		; <i32> [#uses=1]
	%61 = sub i32 %60, %54		; <i32> [#uses=1]
	%62 = getelementptr i8* %58, i32 %61		; <i8*> [#uses=1]
	store i8 45, i8* %62, align 1
	br label %bb37

bb37:		; preds = %bb34, %bb36
	%63 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%64 = load i32* %63, align 4		; <i32> [#uses=1]
	%65 = icmp slt i32 %64, 0		; <i1> [#uses=1]
	br i1 %65, label %bb39, label %bb43

bb39:		; preds = %bb37
	%66 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%67 = load i32* %66, align 4		; <i32> [#uses=1]
	%68 = add i32 %67, 1		; <i32> [#uses=1]
	%69 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %68, i32* %69, align 4
	%70 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%71 = load i32* %70, align 4		; <i32> [#uses=1]
	%72 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%73 = load %struct.system__file_control_block__pstring** %72, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%74 = getelementptr %struct.system__file_control_block__pstring* %73, i32 0, i32 0		; <i8**> [#uses=1]
	%75 = load i8** %74, align 4		; <i8*> [#uses=1]
	%76 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%77 = load i32* %76, align 4		; <i32> [#uses=1]
	%78 = sub i32 %77, %71		; <i32> [#uses=1]
	%79 = getelementptr i8* %75, i32 %78		; <i8*> [#uses=1]
	store i8 48, i8* %79, align 1
	%80 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%81 = load i32* %80, align 4		; <i32> [#uses=1]
	%82 = add i32 %81, 1		; <i32> [#uses=1]
	%83 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %82, i32* %83, align 4
	%84 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%85 = load i32* %84, align 4		; <i32> [#uses=1]
	%86 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%87 = load %struct.system__file_control_block__pstring** %86, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%88 = getelementptr %struct.system__file_control_block__pstring* %87, i32 0, i32 0		; <i8**> [#uses=1]
	%89 = load i8** %88, align 4		; <i8*> [#uses=1]
	%90 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%91 = load i32* %90, align 4		; <i32> [#uses=1]
	%92 = sub i32 %91, %85		; <i32> [#uses=1]
	%93 = getelementptr i8* %89, i32 %92		; <i8*> [#uses=1]
	store i8 46, i8* %93, align 1
	%94 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%95 = load i32* %94, align 4		; <i32> [#uses=1]
	br label %bb40

bb40:		; preds = %bb42, %bb39
	%j15.0 = phi i32 [ %95, %bb39 ], [ %111, %bb42 ]		; <i32> [#uses=2]
	%96 = icmp sgt i32 %j15.0, -2		; <i1> [#uses=1]
	br i1 %96, label %bb43, label %bb42

bb42:		; preds = %bb40
	%97 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%98 = load i32* %97, align 4		; <i32> [#uses=1]
	%99 = add i32 %98, 1		; <i32> [#uses=1]
	%100 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %99, i32* %100, align 4
	%101 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%102 = load i32* %101, align 4		; <i32> [#uses=1]
	%103 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%104 = load %struct.system__file_control_block__pstring** %103, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%105 = getelementptr %struct.system__file_control_block__pstring* %104, i32 0, i32 0		; <i8**> [#uses=1]
	%106 = load i8** %105, align 4		; <i8*> [#uses=1]
	%107 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%108 = load i32* %107, align 4		; <i32> [#uses=1]
	%109 = sub i32 %108, %102		; <i32> [#uses=1]
	%110 = getelementptr i8* %106, i32 %109		; <i8*> [#uses=1]
	store i8 48, i8* %110, align 1
	%111 = add i32 %j15.0, 1		; <i32> [#uses=1]
	br label %bb40

bb43:		; preds = %bb37, %bb40
	%112 = trunc i64 %abs to i32		; <i32> [#uses=1]
	%113 = getelementptr [10 x i8]* @.str3, i32 0, i32 %112		; <i8*> [#uses=1]
	%114 = load i8* %113, align 1		; <i8> [#uses=1]
	%115 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%116 = load i32* %115, align 4		; <i32> [#uses=1]
	%117 = add i32 %116, 1		; <i32> [#uses=1]
	%118 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %117, i32* %118, align 4
	%119 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%120 = load i32* %119, align 4		; <i32> [#uses=1]
	%121 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%122 = load %struct.system__file_control_block__pstring** %121, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%123 = getelementptr %struct.system__file_control_block__pstring* %122, i32 0, i32 0		; <i8**> [#uses=1]
	%124 = load i8** %123, align 4		; <i8*> [#uses=1]
	%125 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%126 = load i32* %125, align 4		; <i32> [#uses=1]
	%127 = sub i32 %126, %120		; <i32> [#uses=1]
	%128 = getelementptr i8* %124, i32 %127		; <i8*> [#uses=1]
	store i8 %114, i8* %128, align 1
	br label %bb48

bb44:		; preds = %bb19
	%129 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%130 = load i32* %129, align 4		; <i32> [#uses=1]
	%131 = icmp eq i32 %130, -1		; <i1> [#uses=1]
	br i1 %131, label %bb46, label %bb47

bb46:		; preds = %bb44
	%132 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%133 = load i32* %132, align 4		; <i32> [#uses=1]
	%134 = add i32 %133, 1		; <i32> [#uses=1]
	%135 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %134, i32* %135, align 4
	%136 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%137 = load i32* %136, align 4		; <i32> [#uses=1]
	%138 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%139 = load %struct.system__file_control_block__pstring** %138, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%140 = getelementptr %struct.system__file_control_block__pstring* %139, i32 0, i32 0		; <i8**> [#uses=1]
	%141 = load i8** %140, align 4		; <i8*> [#uses=1]
	%142 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%143 = load i32* %142, align 4		; <i32> [#uses=1]
	%144 = sub i32 %143, %137		; <i32> [#uses=1]
	%145 = getelementptr i8* %141, i32 %144		; <i8*> [#uses=1]
	store i8 46, i8* %145, align 1
	br label %bb47

bb47:		; preds = %bb44, %bb46
	%146 = trunc i64 %abs to i32		; <i32> [#uses=1]
	%147 = getelementptr [10 x i8]* @.str3, i32 0, i32 %146		; <i8*> [#uses=1]
	%148 = load i8* %147, align 1		; <i8> [#uses=1]
	%149 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%150 = load i32* %149, align 4		; <i32> [#uses=1]
	%151 = add i32 %150, 1		; <i32> [#uses=1]
	%152 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	store i32 %151, i32* %152, align 4
	%153 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 4		; <i32*> [#uses=1]
	%154 = load i32* %153, align 4		; <i32> [#uses=1]
	%155 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 3		; <%struct.system__file_control_block__pstring**> [#uses=1]
	%156 = load %struct.system__file_control_block__pstring** %155, align 4		; <%struct.system__file_control_block__pstring*> [#uses=1]
	%157 = getelementptr %struct.system__file_control_block__pstring* %156, i32 0, i32 0		; <i8**> [#uses=1]
	%158 = load i8** %157, align 4		; <i8*> [#uses=1]
	%159 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 5		; <i32*> [#uses=1]
	%160 = load i32* %159, align 4		; <i32> [#uses=1]
	%161 = sub i32 %160, %154		; <i32> [#uses=1]
	%162 = getelementptr i8* %158, i32 %161		; <i8*> [#uses=1]
	store i8 %148, i8* %162, align 1
	br label %bb48

bb48:		; preds = %bb23, %bb47, %bb43
	%163 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	%164 = load i32* %163, align 4		; <i32> [#uses=1]
	%165 = add i32 %164, -1		; <i32> [#uses=1]
	%166 = getelementptr %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.361, i32 0, i32 1		; <i32*> [#uses=1]
	store i32 %165, i32* %166, align 4
	ret void

return:		; preds = %entry
	ret void
}

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) {
entry:
	%0 = alloca { i64, i64 }		; <{ i64, i64 }*> [#uses=3]
	%1 = call i8* @llvm.stacksave( )		; <i8*> [#uses=1]
	%2 = add i32 %a, 17		; <i32> [#uses=2]
	%3 = sdiv i32 %2, 18		; <i32> [#uses=3]
	%4 = add i32 %3, 1		; <i32> [#uses=7]
	%5 = icmp sgt i32 %4, -1		; <i1> [#uses=1]
	%max53 = select i1 %5, i32 %4, i32 0		; <i32> [#uses=1]
	%6 = alloca i64, i32 %max53		; <i64*> [#uses=21]
	%7 = icmp sgt i32 %4, 0		; <i1> [#uses=1]
	br i1 %7, label %bb55, label %bb58

bb55:		; preds = %entry, %bb57
	%J60b.0 = phi i32 [ %11, %bb57 ], [ 1, %entry ]		; <i32> [#uses=3]
	%8 = add i32 %J60b.0, -1		; <i32> [#uses=1]
	%9 = getelementptr i64* %6, i32 %8		; <i64*> [#uses=1]
	store i64 0, i64* %9, align 8
	%10 = icmp eq i32 %4, %J60b.0		; <i1> [#uses=1]
	br i1 %10, label %bb58, label %bb57

bb57:		; preds = %bb55
	%11 = add i32 %J60b.0, 1		; <i32> [#uses=1]
	br label %bb55

bb58:		; preds = %entry, %bb55
	%12 = icmp sgt i32 %4, 0		; <i1> [#uses=1]
	br i1 %12, label %bb61, label %bb91

bb61:		; preds = %bb58, %bb90
	%j2.0 = phi i32 [ %88, %bb90 ], [ 1, %bb58 ]		; <i32> [#uses=11]
	%aa.0 = phi i32 [ %86, %bb90 ], [ %a, %bb58 ]		; <i32> [#uses=6]
	%yy.0 = phi i64 [ %84, %bb90 ], [ %y, %bb58 ]		; <i64> [#uses=3]
	%xx.0 = phi i64 [ %21, %bb90 ], [ %x, %bb58 ]		; <i64> [#uses=2]
	%13 = icmp eq i64 %xx.0, 0		; <i1> [#uses=1]
	br i1 %13, label %bb91, label %bb63

bb63:		; preds = %bb61
	%14 = icmp eq i32 %aa.0, 0		; <i1> [#uses=1]
	%15 = zext i1 %14 to i8		; <i8> [#uses=1]
	invoke void @system__arith_64__scaled_divide( { i64, i64 }* noalias sret %0, i64 %xx.0, i64 %yy.0, i64 %z, i8 %15 )
			to label %invcont unwind label %lpad

invcont:		; preds = %bb63
	%16 = getelementptr { i64, i64 }* %0, i32 0, i32 0		; <i64*> [#uses=1]
	%17 = load i64* %16, align 8		; <i64> [#uses=1]
	%18 = add i32 %j2.0, -1		; <i32> [#uses=1]
	%19 = getelementptr i64* %6, i32 %18		; <i64*> [#uses=1]
	store i64 %17, i64* %19, align 8
	%20 = getelementptr { i64, i64 }* %0, i32 0, i32 1		; <i64*> [#uses=1]
	%21 = load i64* %20, align 8		; <i64> [#uses=1]
	%22 = add i32 %j2.0, -1		; <i32> [#uses=1]
	%23 = getelementptr i64* %6, i32 %22		; <i64*> [#uses=1]
	%24 = load i64* %23, align 8		; <i64> [#uses=1]
	%25 = icmp eq i64 %24, %yy.0		; <i1> [#uses=1]
	%26 = add i32 %j2.0, -1		; <i32> [#uses=1]
	%27 = getelementptr i64* %6, i32 %26		; <i64*> [#uses=1]
	%28 = load i64* %27, align 8		; <i64> [#uses=1]
	%29 = sub i64 0, %28		; <i64> [#uses=1]
	%30 = icmp eq i64 %yy.0, %29		; <i1> [#uses=1]
	%31 = or i1 %25, %30		; <i1> [#uses=1]
	%32 = icmp sgt i32 %j2.0, 1		; <i1> [#uses=1]
	%or.cond = and i1 %31, %32		; <i1> [#uses=1]
	br i1 %or.cond, label %bb69, label %bb83

bb69:		; preds = %invcont
	%33 = add i32 %j2.0, -1		; <i32> [#uses=1]
	%34 = getelementptr i64* %6, i32 %33		; <i64*> [#uses=1]
	%35 = load i64* %34, align 8		; <i64> [#uses=1]
	%36 = icmp slt i64 %35, 0		; <i1> [#uses=1]
	%37 = add i32 %j2.0, -2		; <i32> [#uses=1]
	%38 = getelementptr i64* %6, i32 %37		; <i64*> [#uses=1]
	%39 = load i64* %38, align 8		; <i64> [#uses=2]
	br i1 %36, label %bb71, label %bb72

bb71:		; preds = %bb69
	%40 = add i64 %39, 1		; <i64> [#uses=1]
	%41 = add i32 %j2.0, -2		; <i32> [#uses=1]
	%42 = getelementptr i64* %6, i32 %41		; <i64*> [#uses=1]
	store i64 %40, i64* %42, align 8
	br label %bb73

bb72:		; preds = %bb69
	%43 = add i64 %39, -1		; <i64> [#uses=1]
	%44 = add i32 %j2.0, -2		; <i32> [#uses=1]
	%45 = getelementptr i64* %6, i32 %44		; <i64*> [#uses=1]
	store i64 %43, i64* %45, align 8
	br label %bb73

bb73:		; preds = %bb72, %bb71
	%46 = add i32 %j2.0, -1		; <i32> [#uses=1]
	%47 = getelementptr i64* %6, i32 %46		; <i64*> [#uses=1]
	store i64 0, i64* %47, align 8
	br label %bb74

bb74:		; preds = %bb82, %bb73
	%j1.0 = phi i32 [ %4, %bb73 ], [ %81, %bb82 ]		; <i32> [#uses=12]
	%48 = icmp slt i32 %j1.0, 2		; <i1> [#uses=1]
	br i1 %48, label %bb83, label %bb76

bb76:		; preds = %bb74
	%49 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%50 = getelementptr i64* %6, i32 %49		; <i64*> [#uses=1]
	%51 = load i64* %50, align 8		; <i64> [#uses=1]
	%52 = icmp sgt i64 %51, 999999999999999999		; <i1> [#uses=1]
	br i1 %52, label %bb78, label %bb79

bb78:		; preds = %bb76
	%53 = add i32 %j1.0, -2		; <i32> [#uses=1]
	%54 = getelementptr i64* %6, i32 %53		; <i64*> [#uses=1]
	%55 = load i64* %54, align 8		; <i64> [#uses=1]
	%56 = add i64 %55, 1		; <i64> [#uses=1]
	%57 = add i32 %j1.0, -2		; <i32> [#uses=1]
	%58 = getelementptr i64* %6, i32 %57		; <i64*> [#uses=1]
	store i64 %56, i64* %58, align 8
	%59 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%60 = getelementptr i64* %6, i32 %59		; <i64*> [#uses=1]
	%61 = load i64* %60, align 8		; <i64> [#uses=1]
	%62 = add i64 %61, -1000000000000000000		; <i64> [#uses=1]
	%63 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%64 = getelementptr i64* %6, i32 %63		; <i64*> [#uses=1]
	store i64 %62, i64* %64, align 8
	br label %bb82

bb79:		; preds = %bb76
	%65 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%66 = getelementptr i64* %6, i32 %65		; <i64*> [#uses=1]
	%67 = load i64* %66, align 8		; <i64> [#uses=1]
	%68 = icmp slt i64 %67, -999999999999999999		; <i1> [#uses=1]
	br i1 %68, label %bb81, label %bb82

bb81:		; preds = %bb79
	%69 = add i32 %j1.0, -2		; <i32> [#uses=1]
	%70 = getelementptr i64* %6, i32 %69		; <i64*> [#uses=1]
	%71 = load i64* %70, align 8		; <i64> [#uses=1]
	%72 = add i64 %71, -1		; <i64> [#uses=1]
	%73 = add i32 %j1.0, -2		; <i32> [#uses=1]
	%74 = getelementptr i64* %6, i32 %73		; <i64*> [#uses=1]
	store i64 %72, i64* %74, align 8
	%75 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%76 = getelementptr i64* %6, i32 %75		; <i64*> [#uses=1]
	%77 = load i64* %76, align 8		; <i64> [#uses=1]
	%78 = add i64 %77, 1000000000000000000		; <i64> [#uses=1]
	%79 = add i32 %j1.0, -1		; <i32> [#uses=1]
	%80 = getelementptr i64* %6, i32 %79		; <i64*> [#uses=1]
	store i64 %78, i64* %80, align 8
	br label %bb82

bb82:		; preds = %bb79, %bb81, %bb78
	%81 = add i32 %j1.0, -1		; <i32> [#uses=1]
	br label %bb74

bb83:		; preds = %invcont, %bb74
	%82 = icmp slt i32 %aa.0, 19		; <i1> [#uses=1]
	%min = select i1 %82, i32 %aa.0, i32 18		; <i32> [#uses=1]
	%83 = invoke i64 @system__exn_lli__exn_long_long_integer( i64 10, i32 %min ) readnone
			to label %invcont86 unwind label %lpad		; <i64> [#uses=1]

invcont86:		; preds = %bb83
	%84 = sub i64 0, %83		; <i64> [#uses=1]
	%85 = icmp slt i32 %aa.0, 19		; <i1> [#uses=1]
	%min87 = select i1 %85, i32 %aa.0, i32 18		; <i32> [#uses=1]
	%86 = sub i32 %aa.0, %min87		; <i32> [#uses=1]
	%87 = icmp eq i32 %4, %j2.0		; <i1> [#uses=1]
	br i1 %87, label %bb91, label %bb90

bb90:		; preds = %invcont86
	%88 = add i32 %j2.0, 1		; <i32> [#uses=1]
	br label %bb61

bb91:		; preds = %bb58, %bb61, %invcont86
	%89 = icmp slt i32 %2, 18		; <i1> [#uses=1]
	br i1 %89, label %bb98, label %bb94

bb94:		; preds = %bb91, %bb97
	%j.0 = phi i32 [ %97, %bb97 ], [ 1, %bb91 ]		; <i32> [#uses=4]
	%90 = mul i32 %j.0, 18		; <i32> [#uses=1]
	%91 = add i32 %90, -18		; <i32> [#uses=1]
	%92 = sub i32 %e, %91		; <i32> [#uses=1]
	%93 = add i32 %j.0, -1		; <i32> [#uses=1]
	%94 = getelementptr i64* %6, i32 %93		; <i64*> [#uses=1]
	%95 = load i64* %94, align 8		; <i64> [#uses=1]
	invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %95, i32 %92 )
			to label %invcont95 unwind label %lpad

invcont95:		; preds = %bb94
	%96 = icmp eq i32 %3, %j.0		; <i1> [#uses=1]
	br i1 %96, label %bb98, label %bb97

bb97:		; preds = %invcont95
	%97 = add i32 %j.0, 1		; <i32> [#uses=1]
	br label %bb94

bb98:		; preds = %bb91, %invcont95
	%98 = sub i32 %e, %a		; <i32> [#uses=1]
	%99 = getelementptr i64* %6, i32 %3		; <i64*> [#uses=1]
	%100 = load i64* %99, align 8		; <i64> [#uses=1]
	invoke fastcc void @ce3806g__fxio__put__put_int64__4.1339( %struct.FRAME.ce3806g__fxio__put__4* %CHAIN.365, i64 %100, i32 %98 )
			to label %bb101 unwind label %lpad

bb101:		; preds = %bb98
	ret void

lpad:		; preds = %bb98, %bb94, %bb83, %bb63
	%eh_ptr = call i8* @llvm.eh.exception( )		; <i8*> [#uses=2]
	%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]
	call void @llvm.stackrestore( i8* %1 )
	%101 = call i32 (...)* @_Unwind_Resume( i8* %eh_ptr )		; <i32> [#uses=0]
	unreachable
}

declare i8* @llvm.stacksave() nounwind

declare void @system__arith_64__scaled_divide({ i64, i64 }* noalias sret, i64, i64, i64, i8)

declare i64 @system__exn_lli__exn_long_long_integer(i64, i32) readnone

declare void @llvm.stackrestore(i8*) nounwind

declare i32 @system__img_real__set_image_real(x86_fp80, i8*, %struct.string___XUB*, i32, i32, i32, i32)

declare void @ada__text_io__generic_aux__put_item(%struct.ada__text_io__text_afcb*, i8*, %struct.string___XUB*)

declare void @report__test(i8*, %struct.string___XUB*, i8*, %struct.string___XUB*)

declare void @system__secondary_stack__ss_mark(%struct.string___XUB* noalias sret)

declare void @system__exception_table__register_exception(%struct.system__standard_library__exception_data*)

declare void @report__legal_file_name(%struct.system__file_control_block__pstring* noalias sret, i32, i8*, %struct.string___XUB*)

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*)

declare void @system__secondary_stack__ss_release(i32, i32)

declare void @report__not_applicable(i8*, %struct.string___XUB*)

declare void @ada__text_io__set_output(%struct.ada__text_io__text_afcb*)

declare %struct.ada__text_io__text_afcb* @ada__text_io__close(%struct.ada__text_io__text_afcb*)

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*)

declare %struct.ada__text_io__text_afcb* @ada__text_io__standard_output()

declare void @report__failed(i8*, %struct.string___XUB*)

declare void @ext(i32*)

declare %struct.ada__text_io__text_afcb* @ada__text_io__delete(%struct.ada__text_io__text_afcb*)

declare void @report__result()
