1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -verify-machineinstrs < %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Teach taildup to update livein set to appease verifier. 4*9880d681SAndroid Build Coastguard Worker; rdar://11538365 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker%struct.__CFString.2 = type opaque 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerdeclare void @CFRelease(i8*) 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine hidden fastcc i32 @t() ssp { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker %mylocale.i.i = alloca [256 x i8], align 1 13*9880d681SAndroid Build Coastguard Worker br i1 undef, label %return, label %CFStringIsHyphenationAvailableForLocale.exit 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard WorkerCFStringIsHyphenationAvailableForLocale.exit: ; preds = %entry 16*9880d681SAndroid Build Coastguard Worker br i1 undef, label %return, label %if.end 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %CFStringIsHyphenationAvailableForLocale.exit 19*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end8.thread.i, label %if.then.i 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerif.then.i: ; preds = %if.end 22*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end8.thread.i, label %if.end8.i 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerif.end8.thread.i: ; preds = %if.then.i, %if.end 25*9880d681SAndroid Build Coastguard Worker unreachable 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerif.end8.i: ; preds = %if.then.i 28*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then11.i, label %__CFHyphenationPullTokenizer.exit 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerif.then11.i: ; preds = %if.end8.i 31*9880d681SAndroid Build Coastguard Worker unreachable 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker__CFHyphenationPullTokenizer.exit: ; preds = %if.end8.i 34*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end68, label %if.then3 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerif.then3: ; preds = %__CFHyphenationPullTokenizer.exit 37*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.end, label %cond.false 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workercond.false: ; preds = %if.then3 40*9880d681SAndroid Build Coastguard Worker br label %cond.end 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workercond.end: ; preds = %cond.false, %if.then3 43*9880d681SAndroid Build Coastguard Worker br i1 undef, label %while.end, label %while.body 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerwhile.body: ; preds = %cond.end 46*9880d681SAndroid Build Coastguard Worker unreachable 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerwhile.end: ; preds = %cond.end 49*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end5.i, label %if.then.i16 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerif.then.i16: ; preds = %while.end 52*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then4.i, label %if.end5.i 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerif.then4.i: ; preds = %if.then.i16 55*9880d681SAndroid Build Coastguard Worker br i1 false, label %cleanup.thread, label %if.end.i20 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerif.end5.i: ; preds = %if.then.i16, %while.end 58*9880d681SAndroid Build Coastguard Worker unreachable 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workerif.end.i20: ; preds = %if.then4.i 61*9880d681SAndroid Build Coastguard Worker br label %for.body.i146.i 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Workerfor.body.i146.i: ; preds = %for.body.i146.i, %if.end.i20 64*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end20.i, label %for.body.i146.i 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerif.end20.i: ; preds = %for.body.i146.i 67*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cleanup.thread, label %if.end23.i 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Workerif.end23.i: ; preds = %if.end20.i 70*9880d681SAndroid Build Coastguard Worker br label %for.body.i94.i 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workerfor.body.i94.i: ; preds = %for.body.i94.i, %if.end23.i 73*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then28.i, label %for.body.i94.i 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerif.then28.i: ; preds = %for.body.i94.i 76*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cond.true.i26, label %land.lhs.true 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workercond.true.i26: ; preds = %if.then28.i 79*9880d681SAndroid Build Coastguard Worker br label %land.lhs.true 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Workerland.lhs.true: ; preds = %cond.true.i26, %if.then28.i 82*9880d681SAndroid Build Coastguard Worker br i1 false, label %cleanup.thread, label %if.end35 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerif.end35: ; preds = %land.lhs.true 85*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cleanup.thread, label %if.end45 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Workerif.end45: ; preds = %if.end35 88*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.then50, label %if.end.i37 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Workerif.end.i37: ; preds = %if.end45 91*9880d681SAndroid Build Coastguard Worker br label %if.then50 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerif.then50: ; preds = %if.end.i37, %if.end45 94*9880d681SAndroid Build Coastguard Worker br i1 undef, label %__CFHyphenationGetHyphensForString.exit, label %if.end.i 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Workerif.end.i: ; preds = %if.then50 97*9880d681SAndroid Build Coastguard Worker br i1 undef, label %cleanup.i, label %cond.true.i 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workercond.true.i: ; preds = %if.end.i 100*9880d681SAndroid Build Coastguard Worker br i1 undef, label %for.cond16.preheader.i, label %for.cond57.preheader.i 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerfor.cond16.preheader.i: ; preds = %cond.true.i 103*9880d681SAndroid Build Coastguard Worker %cmp1791.i = icmp sgt i32 undef, 1 104*9880d681SAndroid Build Coastguard Worker br i1 %cmp1791.i, label %for.body18.i, label %for.cond57.preheader.i 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Workerfor.cond57.preheader.i: ; preds = %for.cond16.preheader.i, %cond.true.i 107*9880d681SAndroid Build Coastguard Worker %sub69.i = add i32 undef, -2 108*9880d681SAndroid Build Coastguard Worker br label %cleanup.i 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workerfor.body18.i: ; preds = %for.cond16.preheader.i 111*9880d681SAndroid Build Coastguard Worker store i16 0, i16* undef, align 2 112*9880d681SAndroid Build Coastguard Worker br label %while.body.i 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerwhile.body.i: ; preds = %while.body.i, %for.body18.i 115*9880d681SAndroid Build Coastguard Worker br label %while.body.i 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Workercleanup.i: ; preds = %for.cond57.preheader.i, %if.end.i 118*9880d681SAndroid Build Coastguard Worker br label %__CFHyphenationGetHyphensForString.exit 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Worker__CFHyphenationGetHyphensForString.exit: ; preds = %cleanup.i, %if.then50 121*9880d681SAndroid Build Coastguard Worker %retval.1.i = phi i32 [ 0, %cleanup.i ], [ -1, %if.then50 ] 122*9880d681SAndroid Build Coastguard Worker %phitmp = bitcast %struct.__CFString.2* null to i8* 123*9880d681SAndroid Build Coastguard Worker br label %if.end68 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workercleanup.thread: ; preds = %if.end35, %land.lhs.true, %if.end20.i, %if.then4.i 126*9880d681SAndroid Build Coastguard Worker call void @llvm.stackrestore(i8* null) 127*9880d681SAndroid Build Coastguard Worker br label %return 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerif.end68: ; preds = %__CFHyphenationGetHyphensForString.exit, %__CFHyphenationPullTokenizer.exit 130*9880d681SAndroid Build Coastguard Worker %hyphenCount.2 = phi i32 [ %retval.1.i, %__CFHyphenationGetHyphensForString.exit ], [ 0, %__CFHyphenationPullTokenizer.exit ] 131*9880d681SAndroid Build Coastguard Worker %_token.1 = phi i8* [ %phitmp, %__CFHyphenationGetHyphensForString.exit ], [ undef, %__CFHyphenationPullTokenizer.exit ] 132*9880d681SAndroid Build Coastguard Worker call void @CFRelease(i8* %_token.1) 133*9880d681SAndroid Build Coastguard Worker br label %return 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Workerreturn: ; preds = %if.end68, %cleanup.thread, %CFStringIsHyphenationAvailableForLocale.exit, %entry 136*9880d681SAndroid Build Coastguard Worker %retval.1 = phi i32 [ %hyphenCount.2, %if.end68 ], [ -1, %CFStringIsHyphenationAvailableForLocale.exit ], [ -1, %cleanup.thread ], [ -1, %entry ] 137*9880d681SAndroid Build Coastguard Worker ret i32 %retval.1 138*9880d681SAndroid Build Coastguard Worker} 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.stackrestore(i8*) nounwind 141