; RUN: llc < %s -mtriple=arm-apple-darwin

	%struct.CONTENTBOX = type { i32, i32, i32, i32, i32 }
	%struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 }
	%struct.LOCBOX = type { i32, i32, i32, i32 }
	%struct.SIDEBOX = type { i32, i32 }
	%struct.UNCOMBOX = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
	%struct.__sFILEX = type opaque
	%struct.__sbuf = type { i8*, i32 }
	%struct.cellbox = type { i8*, i32, i32, i32, [9 x i32], i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, i32, i32, %struct.CONTENTBOX*, %struct.UNCOMBOX*, [8 x %struct.tilebox*], %struct.SIDEBOX* }
	%struct.termbox = type { %struct.termbox*, i32, i32, i32, i32, i32 }
	%struct.tilebox = type { %struct.tilebox*, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.termbox*, %struct.LOCBOX* }
@.str127 = external constant [2 x i8]		; <[2 x i8]*> [#uses=1]
@.str584 = external constant [5 x i8]		; <[5 x i8]*> [#uses=1]
@.str8115 = external constant [9 x i8]		; <[9 x i8]*> [#uses=1]

declare %struct.FILE* @fopen(i8*, i8*)

declare i32 @strcmp(i8*, i8*)

declare i32 @fscanf(%struct.FILE*, i8*, ...)

define void @main(i32 %argc, i8** %argv) noreturn  {
entry:
	br i1 false, label %cond_next48, label %cond_false674
cond_next48:		; preds = %entry
	%tmp61 = call %struct.FILE* @fopen( i8* null, i8* getelementptr ([2 x i8], [2 x i8]* @.str127, i32 0, i32 0) )		; <%struct.FILE*> [#uses=2]
	br i1 false, label %bb220.i.i.i, label %bb62.preheader.i.i.i
bb62.preheader.i.i.i:		; preds = %cond_next48
	ret void
bb220.i.i.i:		; preds = %cond_next48
	br i1 false, label %bb248.i.i.i, label %cond_next232.i.i.i
cond_next232.i.i.i:		; preds = %bb220.i.i.i
	ret void
bb248.i.i.i:		; preds = %bb220.i.i.i
	br i1 false, label %bb300.i.i.i, label %cond_false256.i.i.i
cond_false256.i.i.i:		; preds = %bb248.i.i.i
	ret void
bb300.i.i.i:		; preds = %bb248.i.i.i
	br label %bb.i.i347.i
bb.i.i347.i:		; preds = %bb.i.i347.i, %bb300.i.i.i
	br i1 false, label %bb894.loopexit.i.i, label %bb.i.i347.i
bb.i350.i:		; preds = %bb894.i.i
	br i1 false, label %bb24.i.i, label %cond_false373.i.i
bb24.i.i:		; preds = %bb24.i.i, %bb.i350.i
	br i1 false, label %bb40.i.i, label %bb24.i.i
bb40.i.i:		; preds = %bb24.i.i
	br i1 false, label %bb177.i393.i, label %bb82.i.i
bb82.i.i:		; preds = %bb40.i.i
	ret void
bb177.i393.i:		; preds = %bb40.i.i
	br i1 false, label %bb894.i.i, label %bb192.i.i
bb192.i.i:		; preds = %bb177.i393.i
	ret void
cond_false373.i.i:		; preds = %bb.i350.i
	%tmp376.i.i = call i32 @strcmp( i8* null, i8* getelementptr ([9 x i8], [9 x i8]* @.str8115, i32 0, i32 0) )		; <i32> [#uses=0]
	br i1 false, label %cond_true380.i.i, label %cond_next602.i.i
cond_true380.i.i:		; preds = %cond_false373.i.i
	%tmp394.i418.i = add i32 %cell.0.i.i, 1		; <i32> [#uses=1]
	%tmp397.i420.i = load %struct.cellbox*, %struct.cellbox** null, align 4		; <%struct.cellbox*> [#uses=1]
	br label %bb398.i.i
bb398.i.i:		; preds = %bb398.i.i, %cond_true380.i.i
	br i1 false, label %bb414.i.i, label %bb398.i.i
bb414.i.i:		; preds = %bb398.i.i
	br i1 false, label %bb581.i.i, label %bb455.i442.i
bb455.i442.i:		; preds = %bb414.i.i
	ret void
bb581.i.i:		; preds = %bb581.i.i, %bb414.i.i
	br i1 false, label %bb894.i.i, label %bb581.i.i
cond_next602.i.i:		; preds = %cond_false373.i.i
	br i1 false, label %bb609.i.i, label %bb661.i.i
bb609.i.i:		; preds = %cond_next602.i.i
	br label %bb620.i.i
bb620.i.i:		; preds = %bb620.i.i, %bb609.i.i
	%indvar166.i465.i = phi i32 [ %indvar.next167.i.i, %bb620.i.i ], [ 0, %bb609.i.i ]		; <i32> [#uses=1]
	%tmp640.i.i = call i32 (%struct.FILE*, i8*, ...) @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8], [5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null )		; <i32> [#uses=0]
	%tmp648.i.i = load i32, i32* null, align 4		; <i32> [#uses=1]
	%tmp650.i468.i = icmp sgt i32 0, %tmp648.i.i		; <i1> [#uses=1]
	%tmp624.i469.i = call i32 (%struct.FILE*, i8*, ...) @fscanf( %struct.FILE* %tmp61, i8* getelementptr ([5 x i8], [5 x i8]* @.str584, i32 0, i32 0), [1024 x i8]* null )		; <i32> [#uses=0]
	%indvar.next167.i.i = add i32 %indvar166.i465.i, 1		; <i32> [#uses=1]
	br i1 %tmp650.i468.i, label %bb653.i.i.loopexit, label %bb620.i.i
bb653.i.i.loopexit:		; preds = %bb620.i.i
	%tmp642.i466.i = add i32 0, 1		; <i32> [#uses=1]
	br label %bb894.i.i
bb661.i.i:		; preds = %cond_next602.i.i
	ret void
bb894.loopexit.i.i:		; preds = %bb.i.i347.i
	br label %bb894.i.i
bb894.i.i:		; preds = %bb894.loopexit.i.i, %bb653.i.i.loopexit, %bb581.i.i, %bb177.i393.i
	%pinctr.0.i.i = phi i32 [ 0, %bb894.loopexit.i.i ], [ %tmp642.i466.i, %bb653.i.i.loopexit ], [ %pinctr.0.i.i, %bb177.i393.i ], [ %pinctr.0.i.i, %bb581.i.i ]		; <i32> [#uses=2]
	%soft.0.i.i = phi i32 [ undef, %bb894.loopexit.i.i ], [ %soft.0.i.i, %bb653.i.i.loopexit ], [ 0, %bb177.i393.i ], [ 1, %bb581.i.i ]		; <i32> [#uses=1]
	%cell.0.i.i = phi i32 [ 0, %bb894.loopexit.i.i ], [ %cell.0.i.i, %bb653.i.i.loopexit ], [ 0, %bb177.i393.i ], [ %tmp394.i418.i, %bb581.i.i ]		; <i32> [#uses=2]
	%ptr.0.i.i = phi %struct.cellbox* [ undef, %bb894.loopexit.i.i ], [ %ptr.0.i.i, %bb653.i.i.loopexit ], [ null, %bb177.i393.i ], [ %tmp397.i420.i, %bb581.i.i ]		; <%struct.cellbox*> [#uses=1]
	br i1 false, label %bb.i350.i, label %bb902.i502.i
bb902.i502.i:		; preds = %bb894.i.i
	ret void
cond_false674:		; preds = %entry
	ret void
}

	%struct.III_psy_xmin = type { [22 x double], [13 x [3 x double]] }
	%struct.III_scalefac_t = type { [22 x i32], [13 x [3 x i32]] }
	%struct.gr_info = type { i32, i32, i32, i32, i32, i32, i32, i32, [3 x i32], [3 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32*, [4 x i32] }
	%struct.lame_global_flags = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8*, i8*, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32 }
@scalefac_band.1 = external global [14 x i32]		; <[14 x i32]*> [#uses=2]

declare fastcc i32 @init_outer_loop(%struct.lame_global_flags*, double*, %struct.gr_info*)

define fastcc void @outer_loop(%struct.lame_global_flags* %gfp, double* %xr, i32 %targ_bits, double* %best_noise, %struct.III_psy_xmin* %l3_xmin, i32* %l3_enc, %struct.III_scalefac_t* %scalefac, %struct.gr_info* %cod_info, i32 %ch) {
entry:
	%cod_info.182 = getelementptr %struct.gr_info, %struct.gr_info* %cod_info, i32 0, i32 1		; <i32*> [#uses=1]
	br label %bb
bb:		; preds = %bb226, %entry
	%save_cod_info.1.1 = phi i32 [ undef, %entry ], [ %save_cod_info.1.1, %bb226 ]		; <i32> [#uses=2]
	br i1 false, label %cond_next, label %cond_true
cond_true:		; preds = %bb
	ret void
cond_next:		; preds = %bb
	br i1 false, label %cond_next144, label %cond_false
cond_false:		; preds = %cond_next
	ret void
cond_next144:		; preds = %cond_next
	br i1 false, label %cond_next205, label %cond_true163
cond_true163:		; preds = %cond_next144
	br i1 false, label %bb34.i, label %bb.i53
bb.i53:		; preds = %cond_true163
	ret void
bb34.i:		; preds = %cond_true163
	%tmp37.i55 = load i32, i32* null, align 4		; <i32> [#uses=1]
	br i1 false, label %bb65.preheader.i, label %bb78.i
bb65.preheader.i:		; preds = %bb34.i
	br label %bb65.outer.us.i
bb65.outer.us.i:		; preds = %bb65.outer.us.i, %bb65.preheader.i
	br i1 false, label %bb78.i, label %bb65.outer.us.i
bb78.i:		; preds = %bb65.outer.us.i, %bb34.i
	br i1 false, label %bb151.i.preheader, label %bb90.i
bb90.i:		; preds = %bb78.i
	ret void
bb151.i.preheader:		; preds = %bb78.i
	br label %bb151.i
bb151.i:		; preds = %bb226.backedge.i, %bb151.i.preheader
	%i.154.i = phi i32 [ %tmp15747.i, %bb226.backedge.i ], [ 0, %bb151.i.preheader ]		; <i32> [#uses=2]
	%tmp15747.i = add i32 %i.154.i, 1		; <i32> [#uses=3]
	br i1 false, label %bb155.i, label %bb226.backedge.i
bb226.backedge.i:		; preds = %cond_next215.i, %bb151.i
	%tmp228.i71 = icmp slt i32 %tmp15747.i, 3		; <i1> [#uses=1]
	br i1 %tmp228.i71, label %bb151.i, label %amp_scalefac_bands.exit
bb155.i:		; preds = %cond_next215.i, %bb151.i
	%indvar90.i = phi i32 [ %indvar.next91.i, %cond_next215.i ], [ 0, %bb151.i ]		; <i32> [#uses=2]
	%sfb.3.reg2mem.0.i = add i32 %indvar90.i, %tmp37.i55		; <i32> [#uses=4]
	%tmp161.i = getelementptr [4 x [21 x double]], [4 x [21 x double]]* null, i32 0, i32 %tmp15747.i, i32 %sfb.3.reg2mem.0.i		; <double*> [#uses=1]
	%tmp162.i74 = load double, double* %tmp161.i, align 4		; <double> [#uses=0]
	br i1 false, label %cond_true167.i, label %cond_next215.i
cond_true167.i:		; preds = %bb155.i
	%tmp173.i = getelementptr %struct.III_scalefac_t, %struct.III_scalefac_t* null, i32 0, i32 1, i32 %sfb.3.reg2mem.0.i, i32 %i.154.i		; <i32*> [#uses=1]
	store i32 0, i32* %tmp173.i, align 4
	%tmp182.1.i = getelementptr [14 x i32], [14 x i32]* @scalefac_band.1, i32 0, i32 %sfb.3.reg2mem.0.i		; <i32*> [#uses=0]
	%tmp185.i78 = add i32 %sfb.3.reg2mem.0.i, 1		; <i32> [#uses=1]
	%tmp187.1.i = getelementptr [14 x i32], [14 x i32]* @scalefac_band.1, i32 0, i32 %tmp185.i78		; <i32*> [#uses=1]
	%tmp188.i = load i32, i32* %tmp187.1.i, align 4		; <i32> [#uses=1]
	%tmp21153.i = icmp slt i32 0, %tmp188.i		; <i1> [#uses=1]
	br i1 %tmp21153.i, label %bb190.preheader.i, label %cond_next215.i
bb190.preheader.i:		; preds = %cond_true167.i
	ret void
cond_next215.i:		; preds = %cond_true167.i, %bb155.i
	%indvar.next91.i = add i32 %indvar90.i, 1		; <i32> [#uses=2]
	%exitcond99.i87 = icmp eq i32 %indvar.next91.i, 0		; <i1> [#uses=1]
	br i1 %exitcond99.i87, label %bb226.backedge.i, label %bb155.i
amp_scalefac_bands.exit:		; preds = %bb226.backedge.i
	br i1 false, label %bb19.i, label %bb.i16
bb.i16:		; preds = %amp_scalefac_bands.exit
	ret void
bb19.i:		; preds = %amp_scalefac_bands.exit
	br i1 false, label %bb40.outer.i, label %cond_next205
bb40.outer.i:		; preds = %bb19.i
	ret void
cond_next205:		; preds = %bb19.i, %cond_next144
	br i1 false, label %bb226, label %cond_true210
cond_true210:		; preds = %cond_next205
	br i1 false, label %bb226, label %cond_true217
cond_true217:		; preds = %cond_true210
	%tmp221 = call fastcc i32 @init_outer_loop( %struct.lame_global_flags* %gfp, double* %xr, %struct.gr_info* %cod_info )		; <i32> [#uses=0]
	ret void
bb226:		; preds = %cond_true210, %cond_next205
	br i1 false, label %bb231, label %bb
bb231:		; preds = %bb226
	store i32 %save_cod_info.1.1, i32* %cod_info.182
	ret void
}

define fastcc void @outer_loop2(%struct.lame_global_flags* %gfp, double* %xr, i32 %targ_bits, double* %best_noise, %struct.III_psy_xmin* %l3_xmin, i32* %l3_enc, %struct.III_scalefac_t* %scalefac, %struct.gr_info* %cod_info, i32 %ch) {
entry:
	%cod_info.20128.1 = getelementptr %struct.gr_info, %struct.gr_info* %cod_info, i32 0, i32 20, i32 1		; <i32*> [#uses=1]
	%cod_info.20128.2 = getelementptr %struct.gr_info, %struct.gr_info* %cod_info, i32 0, i32 20, i32 2		; <i32*> [#uses=1]
	%cod_info.20128.3 = getelementptr %struct.gr_info, %struct.gr_info* %cod_info, i32 0, i32 20, i32 3		; <i32*> [#uses=1]
	br label %bb
bb:		; preds = %bb226, %entry
	%save_cod_info.19.1 = phi i32* [ undef, %entry ], [ %save_cod_info.19.0, %bb226 ]		; <i32*> [#uses=1]
	%save_cod_info.0.1 = phi i32 [ undef, %entry ], [ %save_cod_info.0.0, %bb226 ]		; <i32> [#uses=1]
	br i1 false, label %cond_next144, label %cond_false
cond_false:		; preds = %bb
	br i1 false, label %cond_true56, label %cond_false78
cond_true56:		; preds = %cond_false
	br i1 false, label %inner_loop.exit, label %cond_next85
inner_loop.exit:		; preds = %cond_true56
	br i1 false, label %cond_next104, label %cond_false96
cond_false78:		; preds = %cond_false
	ret void
cond_next85:		; preds = %cond_true56
	ret void
cond_false96:		; preds = %inner_loop.exit
	ret void
cond_next104:		; preds = %inner_loop.exit
	br i1 false, label %cond_next144, label %cond_false110
cond_false110:		; preds = %cond_next104
	ret void
cond_next144:		; preds = %cond_next104, %bb
	%save_cod_info.19.0 = phi i32* [ %save_cod_info.19.1, %bb ], [ null, %cond_next104 ]		; <i32*> [#uses=1]
	%save_cod_info.4.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%save_cod_info.3.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%save_cod_info.2.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%save_cod_info.1.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%save_cod_info.0.0 = phi i32 [ %save_cod_info.0.1, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%over.1 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%best_over.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%notdone.0 = phi i32 [ 0, %bb ], [ 0, %cond_next104 ]		; <i32> [#uses=1]
	%tmp147 = load i32, i32* null, align 4		; <i32> [#uses=1]
	%tmp148 = icmp eq i32 %tmp147, 0		; <i1> [#uses=1]
	%tmp153 = icmp eq i32 %over.1, 0		; <i1> [#uses=1]
	%bothcond = and i1 %tmp148, %tmp153		; <i1> [#uses=1]
	%notdone.2 = select i1 %bothcond, i32 0, i32 %notdone.0		; <i32> [#uses=1]
	br i1 false, label %cond_next205, label %cond_true163
cond_true163:		; preds = %cond_next144
	ret void
cond_next205:		; preds = %cond_next144
	br i1 false, label %bb226, label %cond_true210
cond_true210:		; preds = %cond_next205
	ret void
bb226:		; preds = %cond_next205
	%tmp228 = icmp eq i32 %notdone.2, 0		; <i1> [#uses=1]
	br i1 %tmp228, label %bb231, label %bb
bb231:		; preds = %bb226
	store i32 %save_cod_info.1.0, i32* null
	store i32 %save_cod_info.2.0, i32* null
	store i32 %save_cod_info.3.0, i32* null
	store i32 %save_cod_info.4.0, i32* null
	store i32 0, i32* %cod_info.20128.1
	store i32 0, i32* %cod_info.20128.2
	store i32 0, i32* %cod_info.20128.3
	%tmp244245 = sitofp i32 %best_over.0 to double		; <double> [#uses=1]
	store double %tmp244245, double* %best_noise, align 4
	ret void
}
