; RUN: %lli_mcjit %s > /dev/null

@.LC0 = internal global [10 x i8] c"argc: %d\0A\00"		; <[10 x i8]*> [#uses=1]

declare i32 @puts(i8*)

define void @getoptions(i32* %argc) {
bb0:
	ret void
}

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

define i32 @main(i32 %argc, i8** %argv) {
bb0:
	call i32 (i8*, ...)* @printf( i8* getelementptr ([10 x i8]* @.LC0, i64 0, i64 0), i32 %argc )		; <i32>:0 [#uses=0]
	%cast224 = bitcast i8** %argv to i8*		; <i8*> [#uses=1]
	%local = alloca i8*		; <i8**> [#uses=3]
	store i8* %cast224, i8** %local
	%cond226 = icmp sle i32 %argc, 0		; <i1> [#uses=1]
	br i1 %cond226, label %bb3, label %bb2
bb2:		; preds = %bb2, %bb0
	%cann-indvar = phi i32 [ 0, %bb0 ], [ %add1-indvar, %bb2 ]		; <i32> [#uses=2]
	%add1-indvar = add i32 %cann-indvar, 1		; <i32> [#uses=2]
	%cann-indvar-idxcast = sext i32 %cann-indvar to i64		; <i64> [#uses=1]
	%CT = bitcast i8** %local to i8***		; <i8***> [#uses=1]
	%reg115 = load i8*** %CT		; <i8**> [#uses=1]
	%cast235 = getelementptr i8** %reg115, i64 %cann-indvar-idxcast		; <i8**> [#uses=1]
	%reg117 = load i8** %cast235		; <i8*> [#uses=1]
	%reg236 = call i32 @puts( i8* %reg117 )		; <i32> [#uses=0]
	%cond239 = icmp slt i32 %add1-indvar, %argc		; <i1> [#uses=1]
	br i1 %cond239, label %bb2, label %bb3
bb3:		; preds = %bb2, %bb0
	%cast243 = bitcast i8** %local to i32*		; <i32*> [#uses=1]
	call void @getoptions( i32* %cast243 )
	ret i32 0
}
