; RUN: llc < %s -mtriple=thumbv6-apple-darwin10 | grep rsbs | grep "#0"

	%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.__sFILEX = type opaque
	%struct.__sbuf = type { i8*, i32 }
	%struct.adpcm_state = type { i16, i8 }
@stepsizeTable = internal constant [89 x i32] [i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 16, i32 17, i32 19, i32 21, i32 23, i32 25, i32 28, i32 31, i32 34, i32 37, i32 41, i32 45, i32 50, i32 55, i32 60, i32 66, i32 73, i32 80, i32 88, i32 97, i32 107, i32 118, i32 130, i32 143, i32 157, i32 173, i32 190, i32 209, i32 230, i32 253, i32 279, i32 307, i32 337, i32 371, i32 408, i32 449, i32 494, i32 544, i32 598, i32 658, i32 724, i32 796, i32 876, i32 963, i32 1060, i32 1166, i32 1282, i32 1411, i32 1552, i32 1707, i32 1878, i32 2066, i32 2272, i32 2499, i32 2749, i32 3024, i32 3327, i32 3660, i32 4026, i32 4428, i32 4871, i32 5358, i32 5894, i32 6484, i32 7132, i32 7845, i32 8630, i32 9493, i32 10442, i32 11487, i32 12635, i32 13899, i32 15289, i32 16818, i32 18500, i32 20350, i32 22385, i32 24623, i32 27086, i32 29794, i32 32767]		; <[89 x i32]*> [#uses=4]
@indexTable = internal constant [16 x i32] [i32 -1, i32 -1, i32 -1, i32 -1, i32 2, i32 4, i32 6, i32 8, i32 -1, i32 -1, i32 -1, i32 -1, i32 2, i32 4, i32 6, i32 8]		; <[16 x i32]*> [#uses=2]
@abuf = common global [500 x i8] zeroinitializer		; <[500 x i8]*> [#uses=1]
@.str = private constant [11 x i8] c"input file\00", section "__TEXT,__cstring,cstring_literals", align 1		; <[11 x i8]*> [#uses=1]
@sbuf = common global [1000 x i16] zeroinitializer		; <[1000 x i16]*> [#uses=1]
@state = common global %struct.adpcm_state zeroinitializer		; <%struct.adpcm_state*> [#uses=3]
@__stderrp = external global %struct.FILE*		; <%struct.FILE**> [#uses=1]
@.str1 = private constant [28 x i8] c"Final valprev=%d, index=%d\0A\00", section "__TEXT,__cstring,cstring_literals", align 1		; <[28 x i8]*> [#uses=1]

define void @adpcm_coder(i16* nocapture %indata, i8* nocapture %outdata, i32 %len, %struct.adpcm_state* nocapture %state) nounwind {
entry:
	%0 = getelementptr %struct.adpcm_state, %struct.adpcm_state* %state, i32 0, i32 0		; <i16*> [#uses=2]
	%1 = load i16, i16* %0, align 2		; <i16> [#uses=1]
	%2 = sext i16 %1 to i32		; <i32> [#uses=2]
	%3 = getelementptr %struct.adpcm_state, %struct.adpcm_state* %state, i32 0, i32 1		; <i8*> [#uses=2]
	%4 = load i8, i8* %3, align 2		; <i8> [#uses=1]
	%5 = sext i8 %4 to i32		; <i32> [#uses=3]
	%6 = getelementptr [89 x i32], [89 x i32]* @stepsizeTable, i32 0, i32 %5		; <i32*> [#uses=1]
	%7 = load i32, i32* %6, align 4		; <i32> [#uses=1]
	%8 = icmp sgt i32 %len, 0		; <i1> [#uses=1]
	br i1 %8, label %bb, label %bb27

bb:		; preds = %bb25, %entry
	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb25 ]		; <i32> [#uses=2]
	%outp.136 = phi i8* [ %outdata, %entry ], [ %outp.0, %bb25 ]		; <i8*> [#uses=3]
	%bufferstep.035 = phi i32 [ 1, %entry ], [ %tmp, %bb25 ]		; <i32> [#uses=3]
	%outputbuffer.134 = phi i32 [ undef, %entry ], [ %outputbuffer.0, %bb25 ]		; <i32> [#uses=2]
	%index.033 = phi i32 [ %5, %entry ], [ %index.2, %bb25 ]		; <i32> [#uses=1]
	%valpred.132 = phi i32 [ %2, %entry ], [ %valpred.2, %bb25 ]		; <i32> [#uses=2]
	%step.031 = phi i32 [ %7, %entry ], [ %36, %bb25 ]		; <i32> [#uses=5]
	%inp.038 = getelementptr i16, i16* %indata, i32 %indvar		; <i16*> [#uses=1]
	%9 = load i16, i16* %inp.038, align 2		; <i16> [#uses=1]
	%10 = sext i16 %9 to i32		; <i32> [#uses=1]
	%11 = sub i32 %10, %valpred.132		; <i32> [#uses=3]
	%12 = icmp slt i32 %11, 0		; <i1> [#uses=1]
	%iftmp.1.0 = select i1 %12, i32 8, i32 0		; <i32> [#uses=2]
	%13 = sub i32 0, %11		; <i32> [#uses=1]
	%14 = icmp eq i32 %iftmp.1.0, 0		; <i1> [#uses=2]
	%. = select i1 %14, i32 %11, i32 %13		; <i32> [#uses=2]
	%15 = ashr i32 %step.031, 3		; <i32> [#uses=1]
	%16 = icmp slt i32 %., %step.031		; <i1> [#uses=2]
	%delta.0 = select i1 %16, i32 0, i32 4		; <i32> [#uses=2]
	%17 = select i1 %16, i32 0, i32 %step.031		; <i32> [#uses=2]
	%diff.1 = sub i32 %., %17		; <i32> [#uses=2]
	%18 = ashr i32 %step.031, 1		; <i32> [#uses=2]
	%19 = icmp slt i32 %diff.1, %18		; <i1> [#uses=2]
	%20 = or i32 %delta.0, 2		; <i32> [#uses=1]
	%21 = select i1 %19, i32 %delta.0, i32 %20		; <i32> [#uses=1]
	%22 = select i1 %19, i32 0, i32 %18		; <i32> [#uses=2]
	%diff.2 = sub i32 %diff.1, %22		; <i32> [#uses=1]
	%23 = ashr i32 %step.031, 2		; <i32> [#uses=2]
	%24 = icmp slt i32 %diff.2, %23		; <i1> [#uses=2]
	%25 = zext i1 %24 to i32		; <i32> [#uses=1]
	%26 = select i1 %24, i32 0, i32 %23		; <i32> [#uses=1]
	%vpdiff.0 = add i32 %17, %15		; <i32> [#uses=1]
	%vpdiff.1 = add i32 %vpdiff.0, %22		; <i32> [#uses=1]
	%vpdiff.2 = add i32 %vpdiff.1, %26		; <i32> [#uses=2]
	%tmp30 = sub i32 0, %vpdiff.2		; <i32> [#uses=1]
	%valpred.0.p = select i1 %14, i32 %vpdiff.2, i32 %tmp30		; <i32> [#uses=1]
	%valpred.0 = add i32 %valpred.0.p, %valpred.132		; <i32> [#uses=3]
	%27 = icmp sgt i32 %valpred.0, 32767		; <i1> [#uses=1]
	br i1 %27, label %bb18, label %bb16

bb16:		; preds = %bb
	%28 = icmp slt i32 %valpred.0, -32768		; <i1> [#uses=1]
	br i1 %28, label %bb17, label %bb18

bb17:		; preds = %bb16
	br label %bb18

bb18:		; preds = %bb17, %bb16, %bb
	%valpred.2 = phi i32 [ -32768, %bb17 ], [ 32767, %bb ], [ %valpred.0, %bb16 ]		; <i32> [#uses=2]
	%delta.1 = or i32 %21, %iftmp.1.0		; <i32> [#uses=1]
	%delta.2 = or i32 %delta.1, %25		; <i32> [#uses=1]
	%29 = xor i32 %delta.2, 1		; <i32> [#uses=3]
	%30 = getelementptr [16 x i32], [16 x i32]* @indexTable, i32 0, i32 %29		; <i32*> [#uses=1]
	%31 = load i32, i32* %30, align 4		; <i32> [#uses=1]
	%32 = add i32 %31, %index.033		; <i32> [#uses=2]
	%33 = icmp slt i32 %32, 0		; <i1> [#uses=1]
	%index.1 = select i1 %33, i32 0, i32 %32		; <i32> [#uses=2]
	%34 = icmp sgt i32 %index.1, 88		; <i1> [#uses=1]
	%index.2 = select i1 %34, i32 88, i32 %index.1		; <i32> [#uses=3]
	%35 = getelementptr [89 x i32], [89 x i32]* @stepsizeTable, i32 0, i32 %index.2		; <i32*> [#uses=1]
	%36 = load i32, i32* %35, align 4		; <i32> [#uses=1]
	%37 = icmp eq i32 %bufferstep.035, 0		; <i1> [#uses=1]
	br i1 %37, label %bb24, label %bb23

bb23:		; preds = %bb18
	%38 = shl i32 %29, 4		; <i32> [#uses=1]
	%39 = and i32 %38, 240		; <i32> [#uses=1]
	br label %bb25

bb24:		; preds = %bb18
	%40 = trunc i32 %29 to i8		; <i8> [#uses=1]
	%41 = and i8 %40, 15		; <i8> [#uses=1]
	%42 = trunc i32 %outputbuffer.134 to i8		; <i8> [#uses=1]
	%43 = or i8 %41, %42		; <i8> [#uses=1]
	store i8 %43, i8* %outp.136, align 1
	%44 = getelementptr i8, i8* %outp.136, i32 1		; <i8*> [#uses=1]
	br label %bb25

bb25:		; preds = %bb24, %bb23
	%outputbuffer.0 = phi i32 [ %39, %bb23 ], [ %outputbuffer.134, %bb24 ]		; <i32> [#uses=2]
	%outp.0 = phi i8* [ %outp.136, %bb23 ], [ %44, %bb24 ]		; <i8*> [#uses=2]
	%tmp = xor i32 %bufferstep.035, 1		; <i32> [#uses=1]
	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
	%exitcond = icmp eq i32 %indvar.next, %len		; <i1> [#uses=1]
	br i1 %exitcond, label %bb26.bb27_crit_edge, label %bb

bb26.bb27_crit_edge:		; preds = %bb25
	%phitmp44 = icmp eq i32 %bufferstep.035, 1		; <i1> [#uses=1]
	br label %bb27

bb27:		; preds = %bb26.bb27_crit_edge, %entry
	%outp.1.lcssa = phi i8* [ %outp.0, %bb26.bb27_crit_edge ], [ %outdata, %entry ]		; <i8*> [#uses=1]
	%bufferstep.0.lcssa = phi i1 [ %phitmp44, %bb26.bb27_crit_edge ], [ false, %entry ]		; <i1> [#uses=1]
	%outputbuffer.1.lcssa = phi i32 [ %outputbuffer.0, %bb26.bb27_crit_edge ], [ undef, %entry ]		; <i32> [#uses=1]
	%index.0.lcssa = phi i32 [ %index.2, %bb26.bb27_crit_edge ], [ %5, %entry ]		; <i32> [#uses=1]
	%valpred.1.lcssa = phi i32 [ %valpred.2, %bb26.bb27_crit_edge ], [ %2, %entry ]		; <i32> [#uses=1]
	br i1 %bufferstep.0.lcssa, label %bb28, label %bb29

bb28:		; preds = %bb27
	%45 = trunc i32 %outputbuffer.1.lcssa to i8		; <i8> [#uses=1]
	store i8 %45, i8* %outp.1.lcssa, align 1
	br label %bb29

bb29:		; preds = %bb28, %bb27
	%46 = trunc i32 %valpred.1.lcssa to i16		; <i16> [#uses=1]
	store i16 %46, i16* %0, align 2
	%47 = trunc i32 %index.0.lcssa to i8		; <i8> [#uses=1]
	store i8 %47, i8* %3, align 2
	ret void
}

define void @adpcm_decoder(i8* nocapture %indata, i16* nocapture %outdata, i32 %len, %struct.adpcm_state* nocapture %state) nounwind {
entry:
	%0 = getelementptr %struct.adpcm_state, %struct.adpcm_state* %state, i32 0, i32 0		; <i16*> [#uses=2]
	%1 = load i16, i16* %0, align 2		; <i16> [#uses=1]
	%2 = sext i16 %1 to i32		; <i32> [#uses=2]
	%3 = getelementptr %struct.adpcm_state, %struct.adpcm_state* %state, i32 0, i32 1		; <i8*> [#uses=2]
	%4 = load i8, i8* %3, align 2		; <i8> [#uses=1]
	%5 = sext i8 %4 to i32		; <i32> [#uses=3]
	%6 = getelementptr [89 x i32], [89 x i32]* @stepsizeTable, i32 0, i32 %5		; <i32*> [#uses=1]
	%7 = load i32, i32* %6, align 4		; <i32> [#uses=1]
	%8 = icmp sgt i32 %len, 0		; <i1> [#uses=1]
	br i1 %8, label %bb, label %bb22

bb:		; preds = %bb20, %entry
	%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb20 ]		; <i32> [#uses=2]
	%inp.131 = phi i8* [ %indata, %entry ], [ %inp.0, %bb20 ]		; <i8*> [#uses=3]
	%bufferstep.028 = phi i32 [ 0, %entry ], [ %tmp, %bb20 ]		; <i32> [#uses=2]
	%inputbuffer.127 = phi i32 [ undef, %entry ], [ %inputbuffer.0, %bb20 ]		; <i32> [#uses=2]
	%index.026 = phi i32 [ %5, %entry ], [ %index.2, %bb20 ]		; <i32> [#uses=1]
	%valpred.125 = phi i32 [ %2, %entry ], [ %valpred.2, %bb20 ]		; <i32> [#uses=1]
	%step.024 = phi i32 [ %7, %entry ], [ %35, %bb20 ]		; <i32> [#uses=4]
	%outp.030 = getelementptr i16, i16* %outdata, i32 %indvar		; <i16*> [#uses=1]
	%9 = icmp eq i32 %bufferstep.028, 0		; <i1> [#uses=1]
	br i1 %9, label %bb2, label %bb3

bb2:		; preds = %bb
	%10 = load i8, i8* %inp.131, align 1		; <i8> [#uses=1]
	%11 = sext i8 %10 to i32		; <i32> [#uses=2]
	%12 = getelementptr i8, i8* %inp.131, i32 1		; <i8*> [#uses=1]
	%13 = ashr i32 %11, 4		; <i32> [#uses=1]
	br label %bb3

bb3:		; preds = %bb2, %bb
	%inputbuffer.0 = phi i32 [ %11, %bb2 ], [ %inputbuffer.127, %bb ]		; <i32> [#uses=1]
	%delta.0.in = phi i32 [ %13, %bb2 ], [ %inputbuffer.127, %bb ]		; <i32> [#uses=5]
	%inp.0 = phi i8* [ %12, %bb2 ], [ %inp.131, %bb ]		; <i8*> [#uses=1]
	%delta.0 = and i32 %delta.0.in, 15		; <i32> [#uses=1]
	%tmp = xor i32 %bufferstep.028, 1		; <i32> [#uses=1]
	%14 = getelementptr [16 x i32], [16 x i32]* @indexTable, i32 0, i32 %delta.0		; <i32*> [#uses=1]
	%15 = load i32, i32* %14, align 4		; <i32> [#uses=1]
	%16 = add i32 %15, %index.026		; <i32> [#uses=2]
	%17 = icmp slt i32 %16, 0		; <i1> [#uses=1]
	%index.1 = select i1 %17, i32 0, i32 %16		; <i32> [#uses=2]
	%18 = icmp sgt i32 %index.1, 88		; <i1> [#uses=1]
	%index.2 = select i1 %18, i32 88, i32 %index.1		; <i32> [#uses=3]
	%19 = and i32 %delta.0.in, 8		; <i32> [#uses=1]
	%20 = ashr i32 %step.024, 3		; <i32> [#uses=1]
	%21 = and i32 %delta.0.in, 4		; <i32> [#uses=1]
	%22 = icmp eq i32 %21, 0		; <i1> [#uses=1]
	%23 = select i1 %22, i32 0, i32 %step.024		; <i32> [#uses=1]
	%vpdiff.0 = add i32 %23, %20		; <i32> [#uses=2]
	%24 = and i32 %delta.0.in, 2		; <i32> [#uses=1]
	%25 = icmp eq i32 %24, 0		; <i1> [#uses=1]
	br i1 %25, label %bb11, label %bb10

bb10:		; preds = %bb3
	%26 = ashr i32 %step.024, 1		; <i32> [#uses=1]
	%27 = add i32 %vpdiff.0, %26		; <i32> [#uses=1]
	br label %bb11

bb11:		; preds = %bb10, %bb3
	%vpdiff.1 = phi i32 [ %27, %bb10 ], [ %vpdiff.0, %bb3 ]		; <i32> [#uses=2]
	%28 = and i32 %delta.0.in, 1		; <i32> [#uses=1]
	%toBool = icmp eq i32 %28, 0		; <i1> [#uses=1]
	br i1 %toBool, label %bb13, label %bb12

bb12:		; preds = %bb11
	%29 = ashr i32 %step.024, 2		; <i32> [#uses=1]
	%30 = add i32 %vpdiff.1, %29		; <i32> [#uses=1]
	br label %bb13

bb13:		; preds = %bb12, %bb11
	%vpdiff.2 = phi i32 [ %30, %bb12 ], [ %vpdiff.1, %bb11 ]		; <i32> [#uses=2]
	%31 = icmp eq i32 %19, 0		; <i1> [#uses=1]
	%tmp23 = sub i32 0, %vpdiff.2		; <i32> [#uses=1]
	%valpred.0.p = select i1 %31, i32 %vpdiff.2, i32 %tmp23		; <i32> [#uses=1]
	%valpred.0 = add i32 %valpred.0.p, %valpred.125		; <i32> [#uses=3]
	%32 = icmp sgt i32 %valpred.0, 32767		; <i1> [#uses=1]
	br i1 %32, label %bb20, label %bb18

bb18:		; preds = %bb13
	%33 = icmp slt i32 %valpred.0, -32768		; <i1> [#uses=1]
	br i1 %33, label %bb19, label %bb20

bb19:		; preds = %bb18
	br label %bb20

bb20:		; preds = %bb19, %bb18, %bb13
	%valpred.2 = phi i32 [ -32768, %bb19 ], [ 32767, %bb13 ], [ %valpred.0, %bb18 ]		; <i32> [#uses=3]
	%34 = getelementptr [89 x i32], [89 x i32]* @stepsizeTable, i32 0, i32 %index.2		; <i32*> [#uses=1]
	%35 = load i32, i32* %34, align 4		; <i32> [#uses=1]
	%36 = trunc i32 %valpred.2 to i16		; <i16> [#uses=1]
	store i16 %36, i16* %outp.030, align 2
	%indvar.next = add i32 %indvar, 1		; <i32> [#uses=2]
	%exitcond = icmp eq i32 %indvar.next, %len		; <i1> [#uses=1]
	br i1 %exitcond, label %bb22, label %bb

bb22:		; preds = %bb20, %entry
	%index.0.lcssa = phi i32 [ %5, %entry ], [ %index.2, %bb20 ]		; <i32> [#uses=1]
	%valpred.1.lcssa = phi i32 [ %2, %entry ], [ %valpred.2, %bb20 ]		; <i32> [#uses=1]
	%37 = trunc i32 %valpred.1.lcssa to i16		; <i16> [#uses=1]
	store i16 %37, i16* %0, align 2
	%38 = trunc i32 %index.0.lcssa to i8		; <i8> [#uses=1]
	store i8 %38, i8* %3, align 2
	ret void
}

define i32 @main() nounwind {
entry:
	br label %bb

bb:		; preds = %bb3, %entry
	%0 = tail call  i32 (...) @read(i32 0, i8* getelementptr ([500 x i8], [500 x i8]* @abuf, i32 0, i32 0), i32 500) nounwind		; <i32> [#uses=4]
	%1 = icmp slt i32 %0, 0		; <i1> [#uses=1]
	br i1 %1, label %bb1, label %bb2

bb1:		; preds = %bb
	tail call  void @perror(i8* getelementptr ([11 x i8], [11 x i8]* @.str, i32 0, i32 0)) nounwind
	ret i32 1

bb2:		; preds = %bb
	%2 = icmp eq i32 %0, 0		; <i1> [#uses=1]
	br i1 %2, label %bb4, label %bb3

bb3:		; preds = %bb2
	%3 = shl i32 %0, 1		; <i32> [#uses=1]
	tail call  void @adpcm_decoder(i8* getelementptr ([500 x i8], [500 x i8]* @abuf, i32 0, i32 0), i16* getelementptr ([1000 x i16], [1000 x i16]* @sbuf, i32 0, i32 0), i32 %3, %struct.adpcm_state* @state) nounwind
	%4 = shl i32 %0, 2		; <i32> [#uses=1]
	%5 = tail call  i32 (...) @write(i32 1, i16* getelementptr ([1000 x i16], [1000 x i16]* @sbuf, i32 0, i32 0), i32 %4) nounwind		; <i32> [#uses=0]
	br label %bb

bb4:		; preds = %bb2
	%6 = load %struct.FILE*, %struct.FILE** @__stderrp, align 4		; <%struct.FILE*> [#uses=1]
	%7 = load i16, i16* getelementptr (%struct.adpcm_state, %struct.adpcm_state* @state, i32 0, i32 0), align 4		; <i16> [#uses=1]
	%8 = sext i16 %7 to i32		; <i32> [#uses=1]
	%9 = load i8, i8* getelementptr (%struct.adpcm_state, %struct.adpcm_state* @state, i32 0, i32 1), align 2		; <i8> [#uses=1]
	%10 = sext i8 %9 to i32		; <i32> [#uses=1]
	%11 = tail call  i32 (%struct.FILE*, i8*, ...) @fprintf(%struct.FILE* %6, i8* getelementptr ([28 x i8], [28 x i8]* @.str1, i32 0, i32 0), i32 %8, i32 %10) nounwind		; <i32> [#uses=0]
	ret i32 0
}

declare i32 @read(...)

declare void @perror(i8* nocapture) nounwind

declare i32 @write(...)

declare i32 @fprintf(%struct.FILE* nocapture, i8* nocapture, ...) nounwind
