1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=thumb -mcpu=cortex-a8 < %s 2*9880d681SAndroid Build Coastguard Worker; rdar://problem/10137436: sqlite3 miscompile 3*9880d681SAndroid Build Coastguard Worker; 4*9880d681SAndroid Build Coastguard Worker; CHECK: subs 5*9880d681SAndroid Build Coastguard Worker; CHECK: cmp 6*9880d681SAndroid Build Coastguard Worker; CHECK: it 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32" 9*9880d681SAndroid Build Coastguard Workertarget triple = "thumbv7-apple-ios4.0.0" 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdeclare i8* @__memset_chk(i8*, i32, i32, i32) nounwind 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine hidden fastcc i32 @sqlite3VdbeExec(i32* %p) nounwind { 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker br label %sqlite3VarintLen.exit7424 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Workersqlite3VarintLen.exit7424: ; preds = %do.body.i7423 18*9880d681SAndroid Build Coastguard Worker br label %do.body.i 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workerdo.body.i: ; preds = %do.body.i, %sqlite3VarintLen.exit7424 21*9880d681SAndroid Build Coastguard Worker br i1 undef, label %do.body.i, label %sqlite3VarintLen.exit 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workersqlite3VarintLen.exit: ; preds = %do.body.i 24*9880d681SAndroid Build Coastguard Worker %sub2322 = add i64 undef, undef 25*9880d681SAndroid Build Coastguard Worker br i1 undef, label %too_big, label %if.end2327 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerif.end2327: ; preds = %sqlite3VarintLen.exit 28*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end2341, label %no_mem 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerif.end2341: ; preds = %if.end2327 31*9880d681SAndroid Build Coastguard Worker br label %for.body2355 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerfor.body2355: ; preds = %for.body2355, %if.end2341 34*9880d681SAndroid Build Coastguard Worker %add2366 = add nsw i32 undef, undef 35*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.body2377, label %for.body2355 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerfor.body2377: ; preds = %for.body2355 38*9880d681SAndroid Build Coastguard Worker %conv23836154 = zext i32 %add2366 to i64 39*9880d681SAndroid Build Coastguard Worker %sub2384 = sub i64 %sub2322, %conv23836154 40*9880d681SAndroid Build Coastguard Worker %conv2385 = trunc i64 %sub2384 to i32 41*9880d681SAndroid Build Coastguard Worker %len.0.i = select i1 undef, i32 %conv2385, i32 undef 42*9880d681SAndroid Build Coastguard Worker %sub.i7384 = sub nsw i32 %len.0.i, 0 43*9880d681SAndroid Build Coastguard Worker %call.i.i7385 = call i8* @__memset_chk(i8* undef, i32 0, i32 %sub.i7384, i32 undef) nounwind 44*9880d681SAndroid Build Coastguard Worker unreachable 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Workertoo_big: ; preds = %sqlite3VarintLen.exit 47*9880d681SAndroid Build Coastguard Worker unreachable 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerno_mem: ; preds = %if.end2327, %for.body, %entry.no_mem_crit_edge 50*9880d681SAndroid Build Coastguard Worker unreachable 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workersqlite3ErrStr.exit: ; preds = %if.then82 53*9880d681SAndroid Build Coastguard Worker unreachable 54*9880d681SAndroid Build Coastguard Worker} 55