; RUN: llvm-as < %s | llc

;; Date:     May 28, 2003.
;; From:     test/Programs/External/SPEC/CINT2000/175.vpr.llvm.bc
;; Function: int %main(int %argc.1, sbyte** %argv.1)
;;
;; Error:    A function call with about 56 arguments causes an assertion failure
;;           in llc because the register allocator cannot find a register
;;           not used explicitly by the call instruction.
;;
;; Cause:    Regalloc was not keeping track of free registers correctly.
;;           It was counting the registers allocated to all outgoing arguments,
;;           even though most of those are copied to the stack (so those
;;           registers are not actually used by the call instruction).
;;
;; Fixed:    By rewriting selection and allocation so that selection explicitly
;;           inserts all copy operations required for passing arguments and
;;           for the return value of a call, copying to/from registers
;;           and/or to stack locations as needed.
;;
	%struct..s_annealing_sched = type { i32, float, float, float, float }
	%struct..s_chan = type { i32, float, float, float, float }
	%struct..s_det_routing_arch = type { i32, float, float, float, i32, i32, i16, i16, i16, float, float }
	%struct..s_placer_opts = type { i32, float, i32, i32, i8*, i32, i32 }
	%struct..s_router_opts = type { float, float, float, float, float, i32, i32, i32, i32 }
	%struct..s_segment_inf = type { float, i32, i16, i16, float, float, i32, float, float }
	%struct..s_switch_inf = type { i32, float, float, float, float }

define i32 @main(i32 %argc.1, i8** %argv.1) {
entry:
	%net_file = alloca [300 x i8]		; <[300 x i8]*> [#uses=1]
	%place_file = alloca [300 x i8]		; <[300 x i8]*> [#uses=1]
	%arch_file = alloca [300 x i8]		; <[300 x i8]*> [#uses=1]
	%route_file = alloca [300 x i8]		; <[300 x i8]*> [#uses=1]
	%full_stats = alloca i32		; <i32*> [#uses=1]
	%operation = alloca i32		; <i32*> [#uses=1]
	%verify_binary_search = alloca i32		; <i32*> [#uses=1]
	%show_graphics = alloca i32		; <i32*> [#uses=1]
	%annealing_sched = alloca %struct..s_annealing_sched		; <%struct..s_annealing_sched*> [#uses=5]
	%placer_opts = alloca %struct..s_placer_opts		; <%struct..s_placer_opts*> [#uses=7]
	%router_opts = alloca %struct..s_router_opts		; <%struct..s_router_opts*> [#uses=9]
	%det_routing_arch = alloca %struct..s_det_routing_arch		; <%struct..s_det_routing_arch*> [#uses=11]
	%segment_inf = alloca %struct..s_segment_inf*		; <%struct..s_segment_inf**> [#uses=1]
	%timing_inf = alloca { i32, float, float, float, float, float, float, float, float, float, float }		; <{ i32, float, float, float, float, float, float, float, float, float, float }*> [#uses=11]
	%tmp.101 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 4		; <i8**> [#uses=1]
	%tmp.105 = getelementptr [300 x i8]* %net_file, i64 0, i64 0		; <i8*> [#uses=1]
	%tmp.106 = getelementptr [300 x i8]* %arch_file, i64 0, i64 0		; <i8*> [#uses=1]
	%tmp.107 = getelementptr [300 x i8]* %place_file, i64 0, i64 0		; <i8*> [#uses=1]
	%tmp.108 = getelementptr [300 x i8]* %route_file, i64 0, i64 0		; <i8*> [#uses=1]
	%tmp.109 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 0		; <i32*> [#uses=1]
	%tmp.112 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 0		; <i32*> [#uses=1]
	%tmp.114 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 6		; <i32*> [#uses=1]
	%tmp.118 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 7		; <i32*> [#uses=1]
	%tmp.135 = load i32* %operation		; <i32> [#uses=1]
	%tmp.137 = load i32* %tmp.112		; <i32> [#uses=1]
	%tmp.138 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 1		; <float*> [#uses=1]
	%tmp.139 = load float* %tmp.138		; <float> [#uses=1]
	%tmp.140 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 2		; <i32*> [#uses=1]
	%tmp.141 = load i32* %tmp.140		; <i32> [#uses=1]
	%tmp.142 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 3		; <i32*> [#uses=1]
	%tmp.143 = load i32* %tmp.142		; <i32> [#uses=1]
	%tmp.145 = load i8** %tmp.101		; <i8*> [#uses=1]
	%tmp.146 = getelementptr %struct..s_placer_opts* %placer_opts, i64 0, i32 5		; <i32*> [#uses=1]
	%tmp.147 = load i32* %tmp.146		; <i32> [#uses=1]
	%tmp.149 = load i32* %tmp.114		; <i32> [#uses=1]
	%tmp.154 = load i32* %full_stats		; <i32> [#uses=1]
	%tmp.155 = load i32* %verify_binary_search		; <i32> [#uses=1]
	%tmp.156 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 0		; <i32*> [#uses=1]
	%tmp.157 = load i32* %tmp.156		; <i32> [#uses=1]
	%tmp.158 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 1		; <float*> [#uses=1]
	%tmp.159 = load float* %tmp.158		; <float> [#uses=1]
	%tmp.160 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 2		; <float*> [#uses=1]
	%tmp.161 = load float* %tmp.160		; <float> [#uses=1]
	%tmp.162 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 3		; <float*> [#uses=1]
	%tmp.163 = load float* %tmp.162		; <float> [#uses=1]
	%tmp.164 = getelementptr %struct..s_annealing_sched* %annealing_sched, i64 0, i32 4		; <float*> [#uses=1]
	%tmp.165 = load float* %tmp.164		; <float> [#uses=1]
	%tmp.166 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 0		; <float*> [#uses=1]
	%tmp.167 = load float* %tmp.166		; <float> [#uses=1]
	%tmp.168 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 1		; <float*> [#uses=1]
	%tmp.169 = load float* %tmp.168		; <float> [#uses=1]
	%tmp.170 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 2		; <float*> [#uses=1]
	%tmp.171 = load float* %tmp.170		; <float> [#uses=1]
	%tmp.172 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 3		; <float*> [#uses=1]
	%tmp.173 = load float* %tmp.172		; <float> [#uses=1]
	%tmp.174 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 4		; <float*> [#uses=1]
	%tmp.175 = load float* %tmp.174		; <float> [#uses=1]
	%tmp.176 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 5		; <i32*> [#uses=1]
	%tmp.177 = load i32* %tmp.176		; <i32> [#uses=1]
	%tmp.178 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 6		; <i32*> [#uses=1]
	%tmp.179 = load i32* %tmp.178		; <i32> [#uses=1]
	%tmp.181 = load i32* %tmp.118		; <i32> [#uses=1]
	%tmp.182 = getelementptr %struct..s_router_opts* %router_opts, i64 0, i32 8		; <i32*> [#uses=1]
	%tmp.183 = load i32* %tmp.182		; <i32> [#uses=1]
	%tmp.184 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 0		; <i32*> [#uses=1]
	%tmp.185 = load i32* %tmp.184		; <i32> [#uses=1]
	%tmp.186 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 1		; <float*> [#uses=1]
	%tmp.187 = load float* %tmp.186		; <float> [#uses=1]
	%tmp.188 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 2		; <float*> [#uses=1]
	%tmp.189 = load float* %tmp.188		; <float> [#uses=1]
	%tmp.190 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 3		; <float*> [#uses=1]
	%tmp.191 = load float* %tmp.190		; <float> [#uses=1]
	%tmp.192 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 4		; <i32*> [#uses=1]
	%tmp.193 = load i32* %tmp.192		; <i32> [#uses=1]
	%tmp.194 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 5		; <i32*> [#uses=1]
	%tmp.195 = load i32* %tmp.194		; <i32> [#uses=1]
	%tmp.196 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 6		; <i16*> [#uses=1]
	%tmp.197 = load i16* %tmp.196		; <i16> [#uses=1]
	%tmp.198 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 7		; <i16*> [#uses=1]
	%tmp.199 = load i16* %tmp.198		; <i16> [#uses=1]
	%tmp.200 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 8		; <i16*> [#uses=1]
	%tmp.201 = load i16* %tmp.200		; <i16> [#uses=1]
	%tmp.202 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 9		; <float*> [#uses=1]
	%tmp.203 = load float* %tmp.202		; <float> [#uses=1]
	%tmp.204 = getelementptr %struct..s_det_routing_arch* %det_routing_arch, i64 0, i32 10		; <float*> [#uses=1]
	%tmp.205 = load float* %tmp.204		; <float> [#uses=1]
	%tmp.206 = load %struct..s_segment_inf** %segment_inf		; <%struct..s_segment_inf*> [#uses=1]
	%tmp.208 = load i32* %tmp.109		; <i32> [#uses=1]
	%tmp.209 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 1		; <float*> [#uses=1]
	%tmp.210 = load float* %tmp.209		; <float> [#uses=1]
	%tmp.211 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 2		; <float*> [#uses=1]
	%tmp.212 = load float* %tmp.211		; <float> [#uses=1]
	%tmp.213 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 3		; <float*> [#uses=1]
	%tmp.214 = load float* %tmp.213		; <float> [#uses=1]
	%tmp.215 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 4		; <float*> [#uses=1]
	%tmp.216 = load float* %tmp.215		; <float> [#uses=1]
	%tmp.217 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 5		; <float*> [#uses=1]
	%tmp.218 = load float* %tmp.217		; <float> [#uses=1]
	%tmp.219 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 6		; <float*> [#uses=1]
	%tmp.220 = load float* %tmp.219		; <float> [#uses=1]
	%tmp.221 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 7		; <float*> [#uses=1]
	%tmp.222 = load float* %tmp.221		; <float> [#uses=1]
	%tmp.223 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 8		; <float*> [#uses=1]
	%tmp.224 = load float* %tmp.223		; <float> [#uses=1]
	%tmp.225 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 9		; <float*> [#uses=1]
	%tmp.226 = load float* %tmp.225		; <float> [#uses=1]
	%tmp.227 = getelementptr { i32, float, float, float, float, float, float, float, float, float, float }* %timing_inf, i64 0, i32 10		; <float*> [#uses=1]
	%tmp.228 = load float* %tmp.227		; <float> [#uses=1]
	call void @place_and_route( i32 %tmp.135, i32 %tmp.137, float %tmp.139, i32 %tmp.141, i32 %tmp.143, i8* %tmp.145, i32 %tmp.147, i32 %tmp.149, i8* %tmp.107, i8* %tmp.105, i8* %tmp.106, i8* %tmp.108, i32 %tmp.154, i32 %tmp.155, i32 %tmp.157, float %tmp.159, float %tmp.161, float %tmp.163, float %tmp.165, float %tmp.167, float %tmp.169, float %tmp.171, float %tmp.173, float %tmp.175, i32 %tmp.177, i32 %tmp.179, i32 %tmp.181, i32 %tmp.183, i32 %tmp.185, float %tmp.187, float %tmp.189, float %tmp.191, i32 %tmp.193, i32 %tmp.195, i16 %tmp.197, i16 %tmp.199, i16 %tmp.201, float %tmp.203, float %tmp.205, %struct..s_segment_inf* %tmp.206, i32 %tmp.208, float %tmp.210, float %tmp.212, float %tmp.214, float %tmp.216, float %tmp.218, float %tmp.220, float %tmp.222, float %tmp.224, float %tmp.226, float %tmp.228 )
	%tmp.231 = load i32* %show_graphics		; <i32> [#uses=1]
	%tmp.232 = icmp ne i32 %tmp.231, 0		; <i1> [#uses=1]
	br i1 %tmp.232, label %then.2, label %endif.2

then.2:		; preds = %entry
	br label %endif.2

endif.2:		; preds = %then.2, %entry
	ret i32 0
}

declare i32 @printf(i8*, ...)

declare void @place_and_route(i32, i32, float, i32, i32, i8*, i32, i32, i8*, i8*, i8*, i8*, i32, i32, i32, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, i32, float, float, float, i32, i32, i16, i16, i16, float, float, %struct..s_segment_inf*, i32, float, float, float, float, float, float, float, float, float, float)
