; RUN: opt < %s -deadargelim -S | grep byval

	%struct.point = type { double, double }
@pts = global [4 x %struct.point] [ %struct.point { double 1.000000e+00, double 2.000000e+00 }, %struct.point { double 3.000000e+00, double 4.000000e+00 }, %struct.point { double 5.000000e+00, double 6.000000e+00 }, %struct.point { double 7.000000e+00, double 8.000000e+00 } ], align 32		; <[4 x %struct.point]*> [#uses=1]

define internal i32 @va1(i32 %nargs, ...) {
entry:
	%pi = alloca %struct.point		; <%struct.point*> [#uses=0]
	%args = alloca i8*		; <i8**> [#uses=2]
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%args1 = bitcast i8** %args to i8*		; <i8*> [#uses=1]
	call void @llvm.va_start( i8* %args1 )
	%args41 = bitcast i8** %args to i8*		; <i8*> [#uses=1]
	call void @llvm.va_end( i8* %args41 )
	ret i32 undef
}

declare void @llvm.va_start(i8*) nounwind

declare void @llvm.va_end(i8*) nounwind

define i32 @main() {
entry:
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%tmp = getelementptr [4 x %struct.point], [4 x %struct.point]* @pts, i32 0, i32 0		; <%struct.point*> [#uses=1]
	%tmp1 = call i32 (i32, ...) @va1(i32 1, %struct.point* byval(%struct.point) %tmp) nounwind 		; <i32> [#uses=0]
	call void @exit( i32 0 ) noreturn nounwind
	unreachable
}

declare void @exit(i32) noreturn nounwind
