|  | ; RUN: llc -mtriple=thumbv7-apple-ios -mcpu=cortex-a8 -verify-machineinstrs < %s | 
|  |  | 
|  | ; Teach taildup to update livein set to appease verifier. | 
|  | ; rdar://11538365 | 
|  |  | 
|  | %struct.__CFString.2 = type opaque | 
|  |  | 
|  | declare void @CFRelease(i8*) | 
|  |  | 
|  | define hidden fastcc i32 @t() ssp { | 
|  | entry: | 
|  | %mylocale.i.i = alloca [256 x i8], align 1 | 
|  | br i1 undef, label %return, label %CFStringIsHyphenationAvailableForLocale.exit | 
|  |  | 
|  | CFStringIsHyphenationAvailableForLocale.exit:     ; preds = %entry | 
|  | br i1 undef, label %return, label %if.end | 
|  |  | 
|  | if.end:                                           ; preds = %CFStringIsHyphenationAvailableForLocale.exit | 
|  | br i1 undef, label %if.end8.thread.i, label %if.then.i | 
|  |  | 
|  | if.then.i:                                        ; preds = %if.end | 
|  | br i1 undef, label %if.end8.thread.i, label %if.end8.i | 
|  |  | 
|  | if.end8.thread.i:                                 ; preds = %if.then.i, %if.end | 
|  | unreachable | 
|  |  | 
|  | if.end8.i:                                        ; preds = %if.then.i | 
|  | br i1 undef, label %if.then11.i, label %__CFHyphenationPullTokenizer.exit | 
|  |  | 
|  | if.then11.i:                                      ; preds = %if.end8.i | 
|  | unreachable | 
|  |  | 
|  | __CFHyphenationPullTokenizer.exit:                ; preds = %if.end8.i | 
|  | br i1 undef, label %if.end68, label %if.then3 | 
|  |  | 
|  | if.then3:                                         ; preds = %__CFHyphenationPullTokenizer.exit | 
|  | br i1 undef, label %cond.end, label %cond.false | 
|  |  | 
|  | cond.false:                                       ; preds = %if.then3 | 
|  | br label %cond.end | 
|  |  | 
|  | cond.end:                                         ; preds = %cond.false, %if.then3 | 
|  | br i1 undef, label %while.end, label %while.body | 
|  |  | 
|  | while.body:                                       ; preds = %cond.end | 
|  | unreachable | 
|  |  | 
|  | while.end:                                        ; preds = %cond.end | 
|  | br i1 undef, label %if.end5.i, label %if.then.i16 | 
|  |  | 
|  | if.then.i16:                                      ; preds = %while.end | 
|  | br i1 undef, label %if.then4.i, label %if.end5.i | 
|  |  | 
|  | if.then4.i:                                       ; preds = %if.then.i16 | 
|  | br i1 false, label %cleanup.thread, label %if.end.i20 | 
|  |  | 
|  | if.end5.i:                                        ; preds = %if.then.i16, %while.end | 
|  | unreachable | 
|  |  | 
|  | if.end.i20:                                       ; preds = %if.then4.i | 
|  | br label %for.body.i146.i | 
|  |  | 
|  | for.body.i146.i:                                  ; preds = %for.body.i146.i, %if.end.i20 | 
|  | br i1 undef, label %if.end20.i, label %for.body.i146.i | 
|  |  | 
|  | if.end20.i:                                       ; preds = %for.body.i146.i | 
|  | br i1 undef, label %cleanup.thread, label %if.end23.i | 
|  |  | 
|  | if.end23.i:                                       ; preds = %if.end20.i | 
|  | br label %for.body.i94.i | 
|  |  | 
|  | for.body.i94.i:                                   ; preds = %for.body.i94.i, %if.end23.i | 
|  | br i1 undef, label %if.then28.i, label %for.body.i94.i | 
|  |  | 
|  | if.then28.i:                                      ; preds = %for.body.i94.i | 
|  | br i1 undef, label %cond.true.i26, label %land.lhs.true | 
|  |  | 
|  | cond.true.i26:                                    ; preds = %if.then28.i | 
|  | br label %land.lhs.true | 
|  |  | 
|  | land.lhs.true:                                    ; preds = %cond.true.i26, %if.then28.i | 
|  | br i1 false, label %cleanup.thread, label %if.end35 | 
|  |  | 
|  | if.end35:                                         ; preds = %land.lhs.true | 
|  | br i1 undef, label %cleanup.thread, label %if.end45 | 
|  |  | 
|  | if.end45:                                         ; preds = %if.end35 | 
|  | br i1 undef, label %if.then50, label %if.end.i37 | 
|  |  | 
|  | if.end.i37:                                       ; preds = %if.end45 | 
|  | br label %if.then50 | 
|  |  | 
|  | if.then50:                                        ; preds = %if.end.i37, %if.end45 | 
|  | br i1 undef, label %__CFHyphenationGetHyphensForString.exit, label %if.end.i | 
|  |  | 
|  | if.end.i:                                         ; preds = %if.then50 | 
|  | br i1 undef, label %cleanup.i, label %cond.true.i | 
|  |  | 
|  | cond.true.i:                                      ; preds = %if.end.i | 
|  | br i1 undef, label %for.cond16.preheader.i, label %for.cond57.preheader.i | 
|  |  | 
|  | for.cond16.preheader.i:                           ; preds = %cond.true.i | 
|  | %cmp1791.i = icmp sgt i32 undef, 1 | 
|  | br i1 %cmp1791.i, label %for.body18.i, label %for.cond57.preheader.i | 
|  |  | 
|  | for.cond57.preheader.i:                           ; preds = %for.cond16.preheader.i, %cond.true.i | 
|  | %sub69.i = add i32 undef, -2 | 
|  | br label %cleanup.i | 
|  |  | 
|  | for.body18.i:                                     ; preds = %for.cond16.preheader.i | 
|  | store i16 0, i16* undef, align 2 | 
|  | br label %while.body.i | 
|  |  | 
|  | while.body.i:                                     ; preds = %while.body.i, %for.body18.i | 
|  | br label %while.body.i | 
|  |  | 
|  | cleanup.i:                                        ; preds = %for.cond57.preheader.i, %if.end.i | 
|  | br label %__CFHyphenationGetHyphensForString.exit | 
|  |  | 
|  | __CFHyphenationGetHyphensForString.exit:          ; preds = %cleanup.i, %if.then50 | 
|  | %retval.1.i = phi i32 [ 0, %cleanup.i ], [ -1, %if.then50 ] | 
|  | %phitmp = bitcast %struct.__CFString.2* null to i8* | 
|  | br label %if.end68 | 
|  |  | 
|  | cleanup.thread:                                   ; preds = %if.end35, %land.lhs.true, %if.end20.i, %if.then4.i | 
|  | call void @llvm.stackrestore(i8* null) | 
|  | br label %return | 
|  |  | 
|  | if.end68:                                         ; preds = %__CFHyphenationGetHyphensForString.exit, %__CFHyphenationPullTokenizer.exit | 
|  | %hyphenCount.2 = phi i32 [ %retval.1.i, %__CFHyphenationGetHyphensForString.exit ], [ 0, %__CFHyphenationPullTokenizer.exit ] | 
|  | %_token.1 = phi i8* [ %phitmp, %__CFHyphenationGetHyphensForString.exit ], [ undef, %__CFHyphenationPullTokenizer.exit ] | 
|  | call void @CFRelease(i8* %_token.1) | 
|  | br label %return | 
|  |  | 
|  | return:                                           ; preds = %if.end68, %cleanup.thread, %CFStringIsHyphenationAvailableForLocale.exit, %entry | 
|  | %retval.1 = phi i32 [ %hyphenCount.2, %if.end68 ], [ -1, %CFStringIsHyphenationAvailableForLocale.exit ], [ -1, %cleanup.thread ], [ -1, %entry ] | 
|  | ret i32 %retval.1 | 
|  | } | 
|  |  | 
|  | declare void @llvm.stackrestore(i8*) nounwind |