[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / ARM / 2009-06-15-RegScavengerAssert.ll
bloba0f903b0bdf56411f686d72514945fd0303004b0
1 ; RUN: llc < %s -mtriple=armv6-apple-darwin
3   %struct.term = type { i32, i32, i32 }
5 declare fastcc i8* @memory_Malloc(i32) nounwind
7 define fastcc %struct.term* @t1() nounwind {
8 entry:
9         br i1 undef, label %bb, label %bb1
11 bb:             ; preds = %entry
12         ret %struct.term* undef
14 bb1:            ; preds = %entry
15         %0 = tail call fastcc i8* @memory_Malloc(i32 12) nounwind               ; <i8*> [#uses=0]
16         %1 = tail call fastcc i8* @memory_Malloc(i32 12) nounwind               ; <i8*> [#uses=0]
17         ret %struct.term* undef
21 define i32 @t2(i32 %argc, i8** nocapture %argv) nounwind {
22 entry:
23         br label %bb6.i8
25 bb6.i8:         ; preds = %memory_CalculateRealBlockSize1374.exit.i, %entry
26         br i1 undef, label %memory_CalculateRealBlockSize1374.exit.i, label %bb.i.i9
28 bb.i.i9:                ; preds = %bb6.i8
29         br label %memory_CalculateRealBlockSize1374.exit.i
31 memory_CalculateRealBlockSize1374.exit.i:               ; preds = %bb.i.i9, %bb6.i8
32         %0 = phi i32 [ undef, %bb.i.i9 ], [ undef, %bb6.i8 ]            ; <i32> [#uses=2]
33         store i32 %0, i32* undef, align 4
34         %1 = urem i32 8184, %0          ; <i32> [#uses=1]
35         %2 = sub i32 8188, %1           ; <i32> [#uses=1]
36         store i32 %2, i32* undef, align 4
37         br i1 undef, label %memory_Init.exit, label %bb6.i8
39 memory_Init.exit:               ; preds = %memory_CalculateRealBlockSize1374.exit.i
40         br label %bb.i.i
42 bb.i.i:         ; preds = %bb.i.i, %memory_Init.exit
43         br i1 undef, label %symbol_Init.exit, label %bb.i.i
45 symbol_Init.exit:               ; preds = %bb.i.i
46         br label %bb.i.i67
48 bb.i.i67:               ; preds = %bb.i.i67, %symbol_Init.exit
49         br i1 undef, label %symbol_CreatePrecedence3522.exit, label %bb.i.i67
51 symbol_CreatePrecedence3522.exit:               ; preds = %bb.i.i67
52         br label %bb.i.i8.i
54 bb.i.i8.i:              ; preds = %bb.i.i8.i, %symbol_CreatePrecedence3522.exit
55         br i1 undef, label %cont_Create.exit9.i, label %bb.i.i8.i
57 cont_Create.exit9.i:            ; preds = %bb.i.i8.i
58         br label %bb.i.i.i72
60 bb.i.i.i72:             ; preds = %bb.i.i.i72, %cont_Create.exit9.i
61         br i1 undef, label %cont_Init.exit, label %bb.i.i.i72
63 cont_Init.exit:         ; preds = %bb.i.i.i72
64         br label %bb.i103
66 bb.i103:                ; preds = %bb.i103, %cont_Init.exit
67         br i1 undef, label %subs_Init.exit, label %bb.i103
69 subs_Init.exit:         ; preds = %bb.i103
70         br i1 undef, label %bb1.i.i.i80, label %cc_Init.exit
72 bb1.i.i.i80:            ; preds = %subs_Init.exit
73         unreachable
75 cc_Init.exit:           ; preds = %subs_Init.exit
76         br label %bb.i.i375
78 bb.i.i375:              ; preds = %bb.i.i375, %cc_Init.exit
79         br i1 undef, label %bb.i439, label %bb.i.i375
81 bb.i439:                ; preds = %bb.i439, %bb.i.i375
82         br i1 undef, label %opts_DeclareSPASSFlagsAsOptions.exit, label %bb.i439
84 opts_DeclareSPASSFlagsAsOptions.exit:           ; preds = %bb.i439
85         br i1 undef, label %opts_TranslateShortOptDeclarations.exit.i, label %bb.i.i82
87 bb.i.i82:               ; preds = %opts_DeclareSPASSFlagsAsOptions.exit
88         unreachable
90 opts_TranslateShortOptDeclarations.exit.i:              ; preds = %opts_DeclareSPASSFlagsAsOptions.exit
91         br i1 undef, label %list_Length.exit.i.thread.i, label %bb.i.i4.i
93 list_Length.exit.i.thread.i:            ; preds = %opts_TranslateShortOptDeclarations.exit.i
94         br i1 undef, label %bb18.i.i.i, label %bb26.i.i.i
96 bb.i.i4.i:              ; preds = %opts_TranslateShortOptDeclarations.exit.i
97         unreachable
99 bb18.i.i.i:             ; preds = %list_Length.exit.i.thread.i
100         unreachable
102 bb26.i.i.i:             ; preds = %list_Length.exit.i.thread.i
103         br i1 undef, label %bb27.i142, label %opts_GetOptLongOnly.exit.thread97.i
105 opts_GetOptLongOnly.exit.thread97.i:            ; preds = %bb26.i.i.i
106         br label %bb27.i142
108 bb27.i142:              ; preds = %opts_GetOptLongOnly.exit.thread97.i, %bb26.i.i.i
109         br label %bb1.i3.i
111 bb1.i3.i:               ; preds = %bb1.i3.i, %bb27.i142
112         br i1 undef, label %opts_FreeLongOptsArray.exit.i, label %bb1.i3.i
114 opts_FreeLongOptsArray.exit.i:          ; preds = %bb1.i3.i
115         br label %bb.i443
117 bb.i443:                ; preds = %bb.i443, %opts_FreeLongOptsArray.exit.i
118         br i1 undef, label %flag_InitStoreByDefaults3542.exit, label %bb.i443
120 flag_InitStoreByDefaults3542.exit:              ; preds = %bb.i443
121         br i1 undef, label %bb6.i449, label %bb.i503
123 bb6.i449:               ; preds = %flag_InitStoreByDefaults3542.exit
124         unreachable
126 bb.i503:                ; preds = %bb.i503, %flag_InitStoreByDefaults3542.exit
127         br i1 undef, label %flag_CleanStore3464.exit, label %bb.i503
129 flag_CleanStore3464.exit:               ; preds = %bb.i503
130         br i1 undef, label %bb1.i81.i.preheader, label %bb.i173
132 bb.i173:                ; preds = %flag_CleanStore3464.exit
133         unreachable
135 bb1.i81.i.preheader:            ; preds = %flag_CleanStore3464.exit
136         br i1 undef, label %bb1.i64.i.preheader, label %bb5.i179
138 bb5.i179:               ; preds = %bb1.i81.i.preheader
139         unreachable
141 bb1.i64.i.preheader:            ; preds = %bb1.i81.i.preheader
142         br i1 undef, label %dfg_DeleteProofList.exit.i, label %bb.i9.i
144 bb.i9.i:                ; preds = %bb1.i64.i.preheader
145         unreachable
147 dfg_DeleteProofList.exit.i:             ; preds = %bb1.i64.i.preheader
148         br i1 undef, label %term_DeleteTermList621.exit.i, label %bb.i.i62.i
150 bb.i.i62.i:             ; preds = %bb.i.i62.i, %dfg_DeleteProofList.exit.i
151         br i1 undef, label %term_DeleteTermList621.exit.i, label %bb.i.i62.i
153 term_DeleteTermList621.exit.i:          ; preds = %bb.i.i62.i, %dfg_DeleteProofList.exit.i
154         br i1 undef, label %dfg_DFGParser.exit, label %bb.i.i211
156 bb.i.i211:              ; preds = %term_DeleteTermList621.exit.i
157         unreachable
159 dfg_DFGParser.exit:             ; preds = %term_DeleteTermList621.exit.i
160         br label %bb.i513
162 bb.i513:                ; preds = %bb2.i516, %dfg_DFGParser.exit
163         br i1 undef, label %bb2.i516, label %bb1.i514
165 bb1.i514:               ; preds = %bb.i513
166         unreachable
168 bb2.i516:               ; preds = %bb.i513
169         br i1 undef, label %bb.i509, label %bb.i513
171 bb.i509:                ; preds = %bb.i509, %bb2.i516
172         br i1 undef, label %symbol_TransferPrecedence3468.exit511, label %bb.i509
174 symbol_TransferPrecedence3468.exit511:          ; preds = %bb.i509
175         br i1 undef, label %bb20, label %bb21
177 bb20:           ; preds = %symbol_TransferPrecedence3468.exit511
178         unreachable
180 bb21:           ; preds = %symbol_TransferPrecedence3468.exit511
181         br i1 undef, label %cnf_Init.exit, label %bb.i498
183 bb.i498:                ; preds = %bb21
184         unreachable
186 cnf_Init.exit:          ; preds = %bb21
187         br i1 undef, label %bb23, label %bb22
189 bb22:           ; preds = %cnf_Init.exit
190         br i1 undef, label %bb2.i.i496, label %bb.i.i494
192 bb.i.i494:              ; preds = %bb22
193         unreachable
195 bb2.i.i496:             ; preds = %bb22
196         unreachable
198 bb23:           ; preds = %cnf_Init.exit
199         br i1 undef, label %bb28, label %bb24
201 bb24:           ; preds = %bb23
202         unreachable
204 bb28:           ; preds = %bb23
205         br i1 undef, label %bb31, label %bb29
207 bb29:           ; preds = %bb28
208         unreachable
210 bb31:           ; preds = %bb28
211         br i1 undef, label %bb34, label %bb32
213 bb32:           ; preds = %bb31
214         unreachable
216 bb34:           ; preds = %bb31
217         br i1 undef, label %bb83, label %bb66
219 bb66:           ; preds = %bb34
220         unreachable
222 bb83:           ; preds = %bb34
223         br i1 undef, label %bb2.i1668, label %bb.i1667
225 bb.i1667:               ; preds = %bb83
226         unreachable
228 bb2.i1668:              ; preds = %bb83
229         br i1 undef, label %bb5.i205, label %bb3.i204
231 bb3.i204:               ; preds = %bb2.i1668
232         unreachable
234 bb5.i205:               ; preds = %bb2.i1668
235         br i1 undef, label %bb.i206.i, label %ana_AnalyzeSortStructure.exit.i
237 bb.i206.i:              ; preds = %bb5.i205
238         br i1 undef, label %bb1.i207.i, label %ana_AnalyzeSortStructure.exit.i
240 bb1.i207.i:             ; preds = %bb.i206.i
241         br i1 undef, label %bb25.i1801.thread, label %bb.i1688
243 bb.i1688:               ; preds = %bb1.i207.i
244         unreachable
246 bb25.i1801.thread:              ; preds = %bb1.i207.i
247         unreachable
249 ana_AnalyzeSortStructure.exit.i:                ; preds = %bb.i206.i, %bb5.i205
250         br i1 undef, label %bb7.i207, label %bb.i1806
252 bb.i1806:               ; preds = %ana_AnalyzeSortStructure.exit.i
253         br i1 undef, label %bb2.i.i.i1811, label %bb.i.i.i1809
255 bb.i.i.i1809:           ; preds = %bb.i1806
256         unreachable
258 bb2.i.i.i1811:          ; preds = %bb.i1806
259         unreachable
261 bb7.i207:               ; preds = %ana_AnalyzeSortStructure.exit.i
262         br i1 undef, label %bb9.i, label %bb8.i
264 bb8.i:          ; preds = %bb7.i207
265         unreachable
267 bb9.i:          ; preds = %bb7.i207
268         br i1 undef, label %bb23.i, label %bb26.i
270 bb23.i:         ; preds = %bb9.i
271         br i1 undef, label %bb25.i, label %bb24.i
273 bb24.i:         ; preds = %bb23.i
274         br i1 undef, label %sort_SortTheoryIsTrivial.exit.i, label %bb.i2093
276 bb.i2093:               ; preds = %bb.i2093, %bb24.i
277         br label %bb.i2093
279 sort_SortTheoryIsTrivial.exit.i:                ; preds = %bb24.i
280         br i1 undef, label %bb3.i2141, label %bb4.i2143
282 bb3.i2141:              ; preds = %sort_SortTheoryIsTrivial.exit.i
283         unreachable
285 bb4.i2143:              ; preds = %sort_SortTheoryIsTrivial.exit.i
286         br i1 undef, label %bb8.i2178, label %bb5.i2144
288 bb5.i2144:              ; preds = %bb4.i2143
289         br i1 undef, label %bb7.i2177, label %bb1.i28.i
291 bb1.i28.i:              ; preds = %bb5.i2144
292         br i1 undef, label %bb4.i43.i, label %bb2.i.i2153
294 bb2.i.i2153:            ; preds = %bb1.i28.i
295         br i1 undef, label %bb4.i.i33.i, label %bb.i.i30.i
297 bb.i.i30.i:             ; preds = %bb2.i.i2153
298         unreachable
300 bb4.i.i33.i:            ; preds = %bb2.i.i2153
301         br i1 undef, label %bb9.i.i36.i, label %bb5.i.i34.i
303 bb5.i.i34.i:            ; preds = %bb4.i.i33.i
304         unreachable
306 bb9.i.i36.i:            ; preds = %bb4.i.i33.i
307         br i1 undef, label %bb14.i.i.i2163, label %bb10.i.i37.i
309 bb10.i.i37.i:           ; preds = %bb9.i.i36.i
310         unreachable
312 bb14.i.i.i2163:         ; preds = %bb9.i.i36.i
313         br i1 undef, label %sort_LinkPrint.exit.i.i, label %bb15.i.i.i2164
315 bb15.i.i.i2164:         ; preds = %bb14.i.i.i2163
316         unreachable
318 sort_LinkPrint.exit.i.i:                ; preds = %bb14.i.i.i2163
319         unreachable
321 bb4.i43.i:              ; preds = %bb1.i28.i
322         unreachable
324 bb7.i2177:              ; preds = %bb5.i2144
325         unreachable
327 bb8.i2178:              ; preds = %bb4.i2143
328         br i1 undef, label %sort_ApproxStaticSortTheory.exit, label %bb.i5.i2185.preheader
330 bb.i5.i2185.preheader:          ; preds = %bb8.i2178
331         br label %bb.i5.i2185
333 bb.i5.i2185:            ; preds = %bb.i5.i2185, %bb.i5.i2185.preheader
334         br i1 undef, label %sort_ApproxStaticSortTheory.exit, label %bb.i5.i2185
336 sort_ApproxStaticSortTheory.exit:               ; preds = %bb.i5.i2185, %bb8.i2178
337         br label %bb25.i
339 bb25.i:         ; preds = %sort_ApproxStaticSortTheory.exit, %bb23.i
340         unreachable
342 bb26.i:         ; preds = %bb9.i
343         unreachable