llvm.org GIT mirror llvm / b5b1e77
the date on this testcase is wrong, it is unreduced, and it passes without the fix for PR4313. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84674 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 10 years ago
1 changed file(s) with 0 addition(s) and 716 deletion(s). Raw diff Collapse all Expand all
+0
-716
test/Transforms/SCCP/2009-06-03-sccp-structret-undef.ll less more
None ; RUN: opt -ipsccp <%s -S | FileCheck %s
1 ; PR4313
2 ; the return value of a multiple-return value invoke must not be left undefined
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
4 target triple = "x86_64-unknown-linux-gnu"
5
6 %0 = type <{ %1, %2, [4 x i8], %3 }>
7 %1 = type { i32 (...)**, i32, i32, i32, i32, %1*, i8*, i8*, i8* }
8 %2 = type { i32 }
9 %3 = type <{ %4, %5 }>
10 %4 = type { i32 (...)**, i8 }
11 %5 = type <{ [33 x i8], [191 x i8] }>
12 %6 = type { %1, %7, %10 }
13 %7 = type { %8 }
14 %8 = type { %9 }
15 %9 = type { i8* }
16 %10 = type { %11 }
17 %11 = type { %12 }
18 %12 = type { i32 (...)** }
19 %13 = type { %1, %14, %18, %10 }
20 %14 = type { %15 }
21 %15 = type { %16 }
22 %16 = type { %17 }
23 %17 = type { %8*, %8*, %8* }
24 %18 = type { %19 }
25 %19 = type { %20 }
26 %20 = type { i32*, i32*, i32* }
27 %21 = type { %22, %22 }
28 %22 = type { %23 }
29 %23 = type { %24 }
30 %24 = type { %25, %26, i64 }
31 %25 = type <{ i8 }>
32 %26 = type { i32, %26*, %26*, %26* }
33 %27 = type { %28, %15, i8* }
34 %28 = type { %29 }
35 %29 = type { %30 }
36 %30 = type { %31*, %31*, %31* }
37 %31 = type { %32*, %9 }
38 %32 = type { i32 (...)**, i8*, i8*, i8 }
39 %33 = type { i64, [12 x i32] }
40 %34 = type { %35 }
41 %35 = type { i32, i32, i32, i32, i32, i32, %36 }
42 %36 = type { %36*, %36* }
43 %37 = type { i32, %8, %9, %15, %38, %42 }
44 %38 = type { %39 }
45 %39 = type { %40 }
46 %40 = type { %41*, %41*, %41* }
47 %41 = type { %8, %12*, i32, %12* }
48 %42 = type { %43 }
49 %43 = type { %44 }
50 %44 = type { %37**, %37**, %37** }
51 %45 = type { i32 (...)**, i8*, i8*, i8*, i32, i8 }
52 %46 = type { %47, %37*, %12*, %8, %15, %37*, %50 }
53 %47 = type { %48 }
54 %48 = type { %49 }
55 %49 = type { i8*, i8*, i8* }
56 %50 = type { %51 }
57 %51 = type { %52 }
58 %52 = type { %46**, %46**, %46** }
59 %53 = type { %21*, %54, %63, %63, %22, %22, %22, %22, %22, %22, %37*, %37*, %37*, %72 }
60 %54 = type { %37*, %22, %55, %59, %18 }
61 %55 = type { %56 }
62 %56 = type { %57 }
63 %57 = type { %58*, %58*, %58* }
64 %58 = type { %37*, i32, i32 }
65 %59 = type { %60 }
66 %60 = type { %61 }
67 %61 = type { %62*, %62*, %62* }
68 %62 = type { %37*, %8, %42, %18, i32, i32, i32, %42, %8, %8 }
69 %63 = type { %64 }
70 %64 = type { %65 }
71 %65 = type { %66*, %66*, %66* }
72 %66 = type { %37*, %8, %8, %8, %8, %67, i32, i8, i8, %68 }
73 %67 = type { %18, %42, %18, %42 }
74 %68 = type { %69 }
75 %69 = type { %70 }
76 %70 = type { %71*, %71*, %71* }
77 %71 = type { i32, i32 }
78 %72 = type { %73 }
79 %73 = type { %74 }
80 %74 = type { %75*, %75*, %75* }
81 %75 = type { %76*, %46*, %46*, %42, i32 }
82 %76 = type { %77, %78 }
83 %77 = type { %12, %12* }
84 %78 = type { %79 }
85 %79 = type { %80 }
86 %80 = type { %12**, %12**, %12** }
87 %81 = type { %12, %21*, %53 }
88 %82 = type { %22, %8 }
89 %83 = type { %26, %84 }
90 %84 = type { i32, %22 }
91 %s2i64 = type { i64, i64 }
92 %85 = type { %26* }
93 %86 = type { %27*, i8*, %32*, i8*, i32, %8, i64, i32 }
94 %87 = type { %86, %88, %22, %95* }
95 %88 = type { %89 }
96 %89 = type { %90 }
97 %90 = type { %91*, %91*, %91* }
98 %91 = type { %92 }
99 %92 = type { %93 }
100 %93 = type { %94*, %94*, %94* }
101 %94 = type { %8, %18, %12*, %9 }
102 %95 = type { %37, %42 }
103
104 @_ZNSs4_Rep20_S_empty_rep_storageE = external global [4 x i64] ; <[4 x i64]*> [#uses=1]
105 @.str111723 = external constant [1 x i8], align 1 ; <[1 x i8]*> [#uses=1]
106 @.str181730 = external constant [4 x i8], align 1 ; <[4 x i8]*> [#uses=1]
107 @.str721784 = external constant [37 x i8], align 8 ; <[37 x i8]*> [#uses=1]
108 @_ZN12_GLOBAL__N_16ActionE = external global %0, align 32 ; <%0*> [#uses=1]
109 @_ZN12_GLOBAL__N_114OutputFilenameE = external global %6, align 32 ; <%6*> [#uses=1]
110 @_ZN12_GLOBAL__N_111IncludeDirsE = external global %13, align 32 ; <%13*> [#uses=1]
111 @.str533653 = external constant [2 x i8], align 1 ; <[2 x i8]*> [#uses=1]
112 @_ZN4llvm7RecordsE = external global %21, align 32 ; <%21*> [#uses=2]
113 @_ZL6SrcMgr = external global %27, align 32 ; <%27*> [#uses=2]
114 @.str3723 = external constant [88 x i8], align 8 ; <[88 x i8]*> [#uses=1]
115 @.str13724 = external constant [136 x i8], align 8 ; <[136 x i8]*> [#uses=1]
116
117 @_ZL20__gthrw_pthread_oncePiPFvvE = alias weak i32 (i32*, void ()*)* @pthread_once ; [#uses=0]
118 @_ZL27__gthrw_pthread_getspecificj = alias weak i8* (i32)* @pthread_getspecific ; [#uses=0]
119 @_ZL27__gthrw_pthread_setspecificjPKv = alias weak i32 (i32, i8*)* @pthread_setspecific ; [#uses=0]
120 @_ZL22__gthrw_pthread_createPmPK14pthread_attr_tPFPvS3_ES3_ = alias weak i32 (i64*, %33*, i8* (i8*)*, i8*)* @pthread_create ; [#uses=0]
121 @_ZL22__gthrw_pthread_cancelm = alias weak i32 (i64)* @pthread_cancel ; [#uses=0]
122 @_ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = alias weak i32 (%34*)* @pthread_mutex_lock ; [#uses=0]
123 @_ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = alias weak i32 (%34*)* @pthread_mutex_trylock ; [#uses=0]
124 @_ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = alias weak i32 (%34*)* @pthread_mutex_unlock ; [#uses=0]
125 @_ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = alias weak i32 (%34*, %2*)* @pthread_mutex_init ; [#uses=0]
126 @_ZL26__gthrw_pthread_key_createPjPFvPvE = alias weak i32 (i32*, void (i8*)*)* @pthread_key_create ; [#uses=0]
127 @_ZL26__gthrw_pthread_key_deletej = alias weak i32 (i32)* @pthread_key_delete ; [#uses=0]
128 @_ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = alias weak i32 (%2*)* @pthread_mutexattr_init ; [#uses=0]
129 @_ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = alias weak i32 (%2*, i32)* @pthread_mutexattr_settype ; [#uses=0]
130 @_ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = alias weak i32 (%2*)* @pthread_mutexattr_destroy ; [#uses=0]
131
132 declare void @_ZNSsC1EPKcRKSaIcE(%8*, i8*, %25*)
133
134 declare i8* @_Znwm(i64)
135
136 declare zeroext i8 @_ZNK4llvm6Record12isSubClassOfENS_9StringRefE(%37*, i64, i64) align 2
137
138 declare i32 @_ZNKSs7compareEPKc(%8*, i8*)
139
140 declare %45* @_ZN4llvm11raw_ostreamlsEPKc(%45*, i8*) align 2
141
142 declare void @_ZNSsC1ERKSs(%8*, %8*)
143
144 declare %26* @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(%26*)
145
146 declare void @_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_(%8* noalias sret, i8*, %8*)
147
148 declare %15* @_ZNSt6vectorISsSaISsEEaSERKS1_(%15*, %15*) align 2
149
150 declare void @_ZNSt6vectorISsSaISsEE9push_backERKSs(%15*, %8*) align 2
151
152 declare i32 @_ZNK4llvm15TreePatternNode10getTypeNumEj(%46*, i32) align 2
153
154 declare void @_ZN4llvm18CodeGenDAGPatternsD1Ev(%53*) align 2
155
156 declare void @_ZN4llvm18CodeGenDAGPatternsC1ERNS_12RecordKeeperE(%53*, %21*) align 2
157
158 declare void @_ZNK4llvm14PatternToMatch17getPredicateCheckEv(%8* noalias sret, %75*) align 2
159
160 define internal void @0(%81*, %45*) align 2 {
161 invoke void @_ZNSsC1ERKSs(%8* undef, %8* null)
162 to label %3 unwind label %28
163
164 ;
165 %4 = getelementptr inbounds i8* null, i64 -24 ; [#uses=1]
166 %5 = icmp eq i8* %4, bitcast ([4 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) ; [#uses=1]
167 br i1 %5, label %7, label %6
168
169 ;
170 unreachable
171
172 ;
173 br i1 undef, label %9, label %8
174
175 ;
176 invoke void @_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_(%8* noalias sret null, i8* getelementptr inbounds ([37 x i8]* @.str721784, i64 0, i64 0), %8* undef)
177 to label %10 unwind label %29
178
179 ;
180 unreachable
181
182 ;
183 invoke void @_ZNSsC1ERKSs(%8* null, %8* null)
184 to label %11 unwind label %30
185
186 ;
187 %12 = invoke %45* @_ZN4llvm11raw_ostreamlsEPKc(%45* %1, i8* getelementptr inbounds ([88 x i8]* @.str3723, i64 0, i64 0))
188 to label %13 unwind label %31 ; <%45*> [#uses=1]
189
190 ;
191 %14 = invoke %45* @_ZN4llvm11raw_ostreamlsEPKc(%45* %12, i8* getelementptr inbounds ([136 x i8]* @.str13724, i64 0, i64 0))
192 to label %15 unwind label %31 ; <%45*> [#uses=0]
193
194 ;
195 %16 = getelementptr inbounds i8* null, i64 -24 ; [#uses=1]
196 %17 = icmp eq i8* %16, bitcast ([4 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) ; [#uses=1]
197 br i1 %17, label %19, label %18
198
199 ;
200 unreachable
201
202 ;
203 %20 = getelementptr inbounds i8* null, i64 -24 ; [#uses=1]
204 %21 = icmp eq i8* %20, bitcast ([4 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*) ; [#uses=1]
205 br i1 %21, label %23, label %22
206
207 ;
208 unreachable
209
210 ;
211 invoke void @_ZNSsC1ERKSs(%8* undef, %8* undef)
212 to label %24 unwind label %29
213
214 ;
215 invoke void @_ZNSsC1ERKSs(%8* undef, %8* undef)
216 to label %26 unwind label %25
217
218 ;
219 unreachable
220
221 ;
222 invoke void @f4(%82* undef, %53* undef)
223 to label %27 unwind label %32
224
225 ;
226 unreachable
227
228 ;
229 unreachable
230
231 ;
232 unreachable
233
234 ;
235 unreachable
236
237 ;
238 unreachable
239
240 ;
241 unreachable
242 }
243
244 declare void @_ZNSt3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS1_EEED1Ev(%22*) align 2
245
246 declare void @_ZNSt3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS1_EEEC1ERKS8_(%22*, %22*) align 2
247
248 declare %83* @_ZNSt8_Rb_treeIN4llvm3MVT15SimpleValueTypeESt4pairIKS2_St3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaIS3_IKSsS7_EEEESt10_Select1stISE_ES8_IS2_ESaISE_EE14_M_create_nodeERKSE_(%23*, %84*) align 2
249
250 declare %22* @_ZNSt3mapIN12_GLOBAL__N_117OperandsSignatureES_ISsS_IN4llvm3MVT15SimpleValueTypeES_IS4_S_ISsNS0_15InstructionMemoESt4lessISsESaISt4pairIKSsS5_EEES6_IS4_ESaIS8_IKS4_SC_EEESD_SaIS8_ISE_SH_EEES7_SaIS8_IS9_SK_EEES6_IS1_ESaIS8_IKS1_SN_EEEixERSP_(%22*, %14*) align 2
251
252 define internal %22* @1(%22*, i32*) align 2 {
253 unreachable
254 }
255
256 declare void @test(i64);
257
258 define internal %22* @f3(%22*, i32*) align 2 {
259 %3 = alloca %85, align 8 ; <%85*> [#uses=1]
260 %4 = alloca %84, align 8 ; <%84*> [#uses=5]
261 invoke void @_ZNSt3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS1_EEEC1ERKS8_(%22* undef, %22* undef)
262 to label %5 unwind label %30
263
264 ;
265 %6 = getelementptr inbounds %26* null, i64 1, i32 0 ; [#uses=1]
266 %7 = load i32* %6, align 4 ; [#uses=0]
267 br i1 false, label %8, label %11
268
269 ;
270 %9 = invoke %83* @_ZNSt8_Rb_treeIN4llvm3MVT15SimpleValueTypeESt4pairIKS2_St3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaIS3_IKSsS7_EEEESt10_Select1stISE_ES8_IS2_ESaISE_EE14_M_create_nodeERKSE_(%23* undef, %84* %4)
271 to label %10 unwind label %31 ; <%83*> [#uses=0]
272
273 ;
274 unreachable
275
276 ;
277 %12 = getelementptr inbounds %85* %3, i64 0, i32 0 ; <%26**> [#uses=1]
278 %13 = load %26** %12, align 8 ; <%26*> [#uses=0]
279 br i1 false, label %14, label %17
280
281 ;
282 %15 = invoke %83* @_ZNSt8_Rb_treeIN4llvm3MVT15SimpleValueTypeESt4pairIKS2_St3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaIS3_IKSsS7_EEEESt10_Select1stISE_ES8_IS2_ESaISE_EE14_M_create_nodeERKSE_(%23* undef, %84* %4)
283 to label %16 unwind label %31 ; <%83*> [#uses=0]
284
285 ;
286 unreachable
287
288 ;
289 %18 = invoke %26* @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(%26* undef)
290 to label %19 unwind label %31 ; <%26*> [#uses=0]
291
292 ;
293 %20 = getelementptr inbounds %84* %4, i64 0, i32 0 ; [#uses=1]
294 %21 = load i32* %20, align 8 ; [#uses=0]
295 br i1 false, label %22, label %25
296
297 ;
298 %23 = invoke %83* @_ZNSt8_Rb_treeIN4llvm3MVT15SimpleValueTypeESt4pairIKS2_St3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaIS3_IKSsS7_EEEESt10_Select1stISE_ES8_IS2_ESaISE_EE14_M_create_nodeERKSE_(%23* undef, %84* %4)
299 to label %24 unwind label %31 ; <%83*> [#uses=0]
300
301 ;
302 unreachable
303
304 ;
305 %26 = invoke %s2i64 @f_3(%23* undef, %84* %4)
306 to label %l1 unwind label %31
307
308 ;
309 %eval = extractvalue %s2i64 %inv, 0 ; [#uses=0]
310 call void @test(i64 %eval)
311 ; CHECK: = invoke %s2i64 @f_3
312 ; CHECK: %eval = extractvalue %s2i64 %inv, 0
313 ; CHECK-NEXT: call void @test(i64 %eval)
314 invoke void @_ZNSt3mapISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS1_EEED1Ev(%22* undef)
315 to label %29 unwind label %30
316
317 l1:
318 %28 = extractvalue %s2i64 %26, 0
319 call void @test(i64 %28)
320 ;CHECK: call void @test(i64 5)
321 ;CHECK-NEXT: %inv = invoke %s2i64 @f2
322 %inv = invoke %s2i64 @f2(%23* undef, %84* %4)
323 to label %27 unwind label %31 ; <%s2i64> [#uses=1]
324
325
326 ;
327 unreachable
328
329 ;
330 unreachable
331
332 ;
333 unreachable
334 }
335 define internal %s2i64 @f2(%23*, %84*) align 2 {
336 br i1 undef, label %3, label %4
337
338 ;
339 br label %4
340
341 ;
342 %5 = insertvalue %s2i64 undef, i64 4, 1 ; <%s2i64> [#uses=1]
343 %6 = ptrtoint %84* %1 to i64
344 %7 = insertvalue %s2i64 %5, i64 %6, 0 ; <%s2i64> [#uses=1]
345 ret %s2i64 %7
346 }
347 define internal %s2i64 @f_3(%23*, %84*) align 2 {
348 br i1 undef, label %3, label %4
349
350 ;
351 br label %4
352
353 ;
354 %5 = insertvalue %s2i64 undef, i64 4, 1 ; <%s2i64> [#uses=1]
355 %6 = insertvalue %s2i64 %5, i64 5, 0 ; <%s2i64> [#uses=1]
356 ret %s2i64 %6
357 }
358
359
360 declare %22* @_ZNSt3mapISsS_IN4llvm3MVT15SimpleValueTypeES_IS2_S_ISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS4_EEES5_IS2_ESaIS7_IKS2_SB_EEESC_SaIS7_ISD_SG_EEES6_SaIS7_IS8_SJ_EEEixERS8_(%22*, %8*) align 2
361
362 define internal void @f4(%82*, %53*) align 2 {
363 invoke void @_ZNSsC1ERKSs(%8* undef, %8* undef)
364 to label %3 unwind label %57
365
366 ;
367 br i1 undef, label %6, label %4
368
369 ;
370 br i1 undef, label %5, label %6
371
372 ;
373 br label %6
374
375 ;
376 br i1 undef, label %8, label %7
377
378 ;
379 br i1 undef, label %56, label %9
380
381 ;
382 unreachable
383
384 ;
385 %10 = icmp eq %12* null, null ; [#uses=1]
386 br i1 %10, label %12, label %11
387
388 ;
389 unreachable
390
391 ;
392 %13 = getelementptr inbounds %46* null, i64 0, i32 6, i32 0, i32 0, i32 0 ; <%46***> [#uses=0]
393 %14 = icmp eq i32 0, 0 ; [#uses=1]
394 br i1 %14, label %16, label %15
395
396 ;
397 unreachable
398
399 ;
400 br i1 undef, label %19, label %17
401
402 ;
403 %18 = icmp eq %12* null, null ; [#uses=1]
404 br i1 %18, label %21, label %20
405
406 ;
407 unreachable
408
409 ;
410 unreachable
411
412 ;
413 %22 = invoke i32 @_ZNK4llvm15TreePatternNode10getTypeNumEj(%46* null, i32 0)
414 to label %23 unwind label %58 ; [#uses=0]
415
416 ;
417 %24 = invoke zeroext i8 @_ZNK4llvm6Record12isSubClassOfENS_9StringRefE(%37* undef, i64 undef, i64 undef)
418 to label %25 unwind label %58 ; [#uses=0]
419
420 ;
421 br i1 undef, label %26, label %27
422
423 ;
424 unreachable
425
426 ;
427 %28 = invoke i8* @_Znwm(i64 24)
428 to label %29 unwind label %59 ; [#uses=0]
429
430 ;
431 %30 = icmp eq %12* null, null ; [#uses=1]
432 br i1 %30, label %32, label %31
433
434 ;
435 unreachable
436
437 ;
438 %33 = invoke i32 @_ZNKSs7compareEPKc(%8* undef, i8* getelementptr inbounds ([4 x i8]* @.str181730, i64 0, i64 0))
439 to label %34 unwind label %59 ; [#uses=1]
440
441 ;
442 %35 = icmp eq i32 %33, 0 ; [#uses=1]
443 br i1 %35, label %37, label %36
444
445 ;
446 unreachable
447
448 ;
449 invoke void @_ZNSsC1EPKcRKSaIcE(%8* undef, i8* getelementptr inbounds ([1 x i8]* @.str111723, i64 0, i64 0), %25* undef)
450 to label %38 unwind label %60
451
452 ;
453 invoke void @_ZNSt6vectorISsSaISsEE9push_backERKSs(%15* undef, %8* undef)
454 to label %39 unwind label %61
455
456 ;
457 br i1 undef, label %42, label %40
458
459 ;
460 br i1 undef, label %41, label %42
461
462 ;
463 unreachable
464
465 ;
466 invoke void @_ZNK4llvm14PatternToMatch17getPredicateCheckEv(%8* noalias sret undef, %75* null)
467 to label %43 unwind label %59
468
469 ;
470 %44 = icmp eq %12* null, null ; [#uses=1]
471 br i1 %44, label %46, label %45
472
473 ;
474 unreachable
475
476 ;
477 invoke void @_ZNSsC1ERKSs(%8* undef, %8* undef)
478 to label %47 unwind label %62
479
480 ;
481 %48 = invoke %22* @_ZNSt3mapIN12_GLOBAL__N_117OperandsSignatureES_ISsS_IN4llvm3MVT15SimpleValueTypeES_IS4_S_ISsNS0_15InstructionMemoESt4lessISsESaISt4pairIKSsS5_EEES6_IS4_ESaIS8_IKS4_SC_EEESD_SaIS8_ISE_SH_EEES7_SaIS8_IS9_SK_EEES6_IS1_ESaIS8_IKS1_SN_EEEixERSP_(%22* undef, %14* undef)
482 to label %49 unwind label %63 ; <%22*> [#uses=1]
483
484 ;
485 %50 = invoke %22* @_ZNSt3mapISsS_IN4llvm3MVT15SimpleValueTypeES_IS2_S_ISsN12_GLOBAL__N_115InstructionMemoESt4lessISsESaISt4pairIKSsS4_EEES5_IS2_ESaIS7_IKS2_SB_EEESC_SaIS7_ISD_SG_EEES6_SaIS7_IS8_SJ_EEEixERS8_(%22* %48, %8* undef)
486 to label %51 unwind label %63 ; <%22*> [#uses=1]
487
488 ;
489 %52 = invoke %22* @1(%22* %50, i32* undef)
490 to label %53 unwind label %63 ; <%22*> [#uses=1]
491
492 ;
493 %54 = invoke %22* @f3(%22* %52, i32* undef)
494 to label %55 unwind label %63 ; <%22*> [#uses=0]
495
496 ;
497 unreachable
498
499 ;
500 ret void
501
502 ;
503 unreachable
504
505 ;
506 unreachable
507
508 ;
509 unreachable
510
511 ;
512 unreachable
513
514 ;
515 unreachable
516
517 ;
518 unreachable
519
520 ;
521 unreachable
522 }
523
524 declare i32 @_ZN4llvm7TGLexer8LexTokenEv(%86*) align 2
525
526 declare void @_ZN4llvm8TGParserD1Ev(%87*) align 2
527
528 declare i32 @_ZN4llvm9SourceMgr18AddNewSourceBufferEPNS_12MemoryBufferENS_5SMLocE(%27*, %32*, %9* noalias) align 2
529
530 define i32 @main(i32, i8**) {
531 br i1 undef, label %3, label %4
532
533 ;
534 unreachable
535
536 ;
537 %5 = icmp eq i32 0, 0 ; [#uses=1]
538 br i1 %5, label %7, label %6
539
540 ;
541 unreachable
542
543 ;
544 br i1 undef, label %8, label %9
545
546 ;
547 br i1 undef, label %10, label %9
548
549 ;
550 br i1 undef, label %14, label %18
551
552 ;
553 br label %11
554
555 ;
556 br i1 undef, label %12, label %13
557
558 ;
559 br label %11
560
561 ;
562 unreachable
563
564 ;
565 br i1 undef, label %15, label %17
566
567 ;
568 br i1 undef, label %17, label %16
569
570 ;
571 unreachable
572
573 ;
574 unreachable
575
576 ;
577 %19 = invoke i32 @_ZN4llvm9SourceMgr18AddNewSourceBufferEPNS_12MemoryBufferENS_5SMLocE(%27* @_ZL6SrcMgr, %32* undef, %9* noalias undef)
578 to label %20 unwind label %34 ; [#uses=0]
579
580 ;
581 %21 = invoke %15* @_ZNSt6vectorISsSaISsEEaSERKS1_(%15* getelementptr inbounds (%27* @_ZL6SrcMgr, i64 0, i32 1), %15* getelementptr inbounds (%13* @_ZN12_GLOBAL__N_111IncludeDirsE, i64 0, i32 1, i32 0))
582 to label %22 unwind label %34 ; <%15*> [#uses=0]
583
584 ;
585 %23 = getelementptr inbounds %27* null, i64 0, i32 0, i32 0, i32 0, i32 1 ; <%31**> [#uses=1]
586 %24 = load %31** %23, align 8 ; <%31*> [#uses=1]
587 %25 = ptrtoint %31* %24 to i64 ; [#uses=1]
588 %26 = sub i64 %25, 0 ; [#uses=1]
589 %27 = icmp ugt i64 %26, 15 ; [#uses=1]
590 br i1 %27, label %29, label %28
591
592 ;
593 unreachable
594
595 ;
596 %30 = invoke i32 @_ZN4llvm7TGLexer8LexTokenEv(%86* undef)
597 to label %31 unwind label %35 ; [#uses=0]
598
599 ;
600 invoke void @_ZN4llvm8TGParserD1Ev(%87* null)
601 to label %32 unwind label %34
602
603 ;
604 %33 = icmp eq i8 0, 0 ; [#uses=1]
605 br i1 %33, label %36, label %56
606
607 ;
608 unreachable
609
610 ;
611 unreachable
612
613 ;
614 %37 = invoke i32 @_ZNKSs7compareEPKc(%8* getelementptr inbounds (%6* @_ZN12_GLOBAL__N_114OutputFilenameE, i64 0, i32 1, i32 0), i8* getelementptr inbounds ([2 x i8]* @.str533653, i64 0, i64 0))
615 to label %38 unwind label %57 ; [#uses=1]
616
617 ;
618 %39 = icmp eq i32 %37, 0 ; [#uses=1]
619 br i1 %39, label %43, label %40
620
621 ;
622 %41 = invoke i8* @_Znwm(i64 56)
623 to label %42 unwind label %58 ; [#uses=0]
624
625 ;
626 unreachable
627
628 ;
629 %44 = load i32* getelementptr inbounds (%0* @_ZN12_GLOBAL__N_16ActionE, i64 0, i32 1, i32 0), align 8 ; [#uses=1]
630 switch i32 %44, label %56 [
631 i32 0, label %45
632 i32 12, label %48
633 i32 13, label %51
634 ]
635
636 ;
637 br i1 undef, label %46, label %47
638
639 ;
640 unreachable
641
642 ;
643 unreachable
644
645 ;
646 invoke void @_ZN4llvm18CodeGenDAGPatternsC1ERNS_12RecordKeeperE(%53* undef, %21* @_ZN4llvm7RecordsE)
647 to label %50 unwind label %49
648
649 ;
650 unreachable
651
652 ;
653 unreachable
654
655 ;
656 invoke void @_ZN4llvm18CodeGenDAGPatternsC1ERNS_12RecordKeeperE(%53* undef, %21* @_ZN4llvm7RecordsE)
657 to label %53 unwind label %52
658
659 ;
660 unreachable
661
662 ;
663 invoke void @0(%81* undef, %45* null)
664 to label %54 unwind label %60
665
666 ;
667 invoke void @_ZN4llvm18CodeGenDAGPatternsD1Ev(%53* undef)
668 to label %55 unwind label %59
669
670 ;
671 unreachable
672
673 ;
674 ret i32 1
675
676 ;
677 unreachable
678
679 ;
680 unreachable
681
682 ;
683 unreachable
684
685 ;
686 unreachable
687 }
688
689 declare i8* @pthread_getspecific(i32) nounwind
690
691 declare i32 @pthread_setspecific(i32, i8*) nounwind
692
693 declare i32 @pthread_key_delete(i32) nounwind
694
695 declare i32 @pthread_key_create(i32*, void (i8*)*) nounwind
696
697 declare i32 @pthread_mutex_trylock(%34*) nounwind
698
699 declare i32 @pthread_mutex_unlock(%34*) nounwind
700
701 declare i32 @pthread_mutex_lock(%34*) nounwind
702
703 declare i32 @pthread_mutexattr_init(%2*) nounwind
704
705 declare i32 @pthread_mutexattr_settype(%2*, i32) nounwind
706
707 declare i32 @pthread_mutex_init(%34*, %2*) nounwind
708
709 declare i32 @pthread_mutexattr_destroy(%2*) nounwind
710
711 declare extern_weak i32 @pthread_once(i32*, void ()*)
712
713 declare extern_weak i32 @pthread_create(i64*, %33*, i8* (i8*)*, i8*)
714
715 declare extern_weak i32 @pthread_cancel(i64)