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