Revert "[InstCombine] Support gep nuw in icmp folds" (#118698)
[llvm-project.git] / llvm / test / Transforms / ObjCARC / path-overflow.ll
blob431b377481262911db268d003db0e135cd772088
1 ; RUN: opt -passes=objc-arc -S < %s
2 ; rdar://12277446
3 ; rdar://12480535
4 ; rdar://14590914
5 ; rdar://15377890
7 ; The total number of paths grows exponentially with the number of branches, and a
8 ; computation of this number can overflow any reasonable fixed-sized
9 ; integer. This can occur in both the addition phase when we are adding up the
10 ; total bottomup/topdown paths and when we multiply them together at the end.
12 target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
13 target triple = "thumbv7-apple-ios5.0.0"
15 %struct.NSConstantString = type { ptr, i32, ptr, i32 }
16 %struct.CGPoint = type { float, float }
18 @_unnamed_cfstring = external constant %struct.NSConstantString, section "__DATA,__cfstring"
19 @_unnamed_cfstring_2 = external constant %struct.NSConstantString, section "__DATA,__cfstring"
21 declare ptr @llvm.objc.retain(ptr) nonlazybind
22 declare ptr @llvm.objc.retainAutoreleasedReturnValue(ptr) nonlazybind
23 declare void @llvm.objc.release(ptr) nonlazybind
24 declare ptr @returner()
25 declare ptr @objc_msgSend(ptr, ptr, ...) nonlazybind
26 declare void @NSLog(ptr, ...)
27 declare void @objc_msgSend_stret(ptr, ptr, ...)
28 declare i32 @__gxx_personality_sj0(...)
29 declare i32 @__objc_personality_v0(...)
32 define hidden void @test1(i1 %arg) personality ptr @__gxx_personality_sj0 {
33 entry:
34   br i1 %arg, label %msgSend.nullinit, label %msgSend.call
36 msgSend.call:                                     ; preds = %entry
37   br label %msgSend.cont
39 msgSend.nullinit:                                 ; preds = %entry
40   br label %msgSend.cont
42 msgSend.cont:                                     ; preds = %msgSend.nullinit, %msgSend.call
43   %0 = call ptr @llvm.objc.retain(ptr @_unnamed_cfstring) nounwind
44   br i1 %arg, label %msgSend.nullinit33, label %msgSend.call32
46 msgSend.call32:                                   ; preds = %if.end10
47   br label %msgSend.cont34
49 msgSend.nullinit33:                               ; preds = %if.end10
50   br label %msgSend.cont34
52 msgSend.cont34:                                   ; preds = %msgSend.nullinit33, %msgSend.call32
53   br i1 %arg, label %msgSend.nullinit38, label %msgSend.call37
55 msgSend.call37:                                   ; preds = %msgSend.cont34
56   br label %msgSend.cont39
58 msgSend.nullinit38:                               ; preds = %msgSend.cont34
59   br label %msgSend.cont39
61 msgSend.cont39:                                   ; preds = %msgSend.nullinit38, %msgSend.call37
62   br i1 %arg, label %msgSend.nullinit49, label %msgSend.call48
64 msgSend.call48:                                   ; preds = %msgSend.cont39
65   br label %msgSend.cont50
67 msgSend.nullinit49:                               ; preds = %msgSend.cont39
68   br label %msgSend.cont50
70 msgSend.cont50:                                   ; preds = %msgSend.nullinit49, %msgSend.call48
71   br i1 %arg, label %msgSend.nullinit61, label %msgSend.call60
73 msgSend.call60:                                   ; preds = %msgSend.cont50
74   br label %msgSend.cont62
76 msgSend.nullinit61:                               ; preds = %msgSend.cont50
77   br label %msgSend.cont62
79 msgSend.cont62:                                   ; preds = %msgSend.nullinit61, %msgSend.call60
80   br i1 %arg, label %msgSend.nullinit67, label %msgSend.call66
82 msgSend.call66:                                   ; preds = %msgSend.cont62
83   br label %msgSend.cont68
85 msgSend.nullinit67:                               ; preds = %msgSend.cont62
86   br label %msgSend.cont68
88 msgSend.cont68:                                   ; preds = %msgSend.nullinit67, %msgSend.call66
89   br i1 %arg, label %msgSend.nullinit84, label %msgSend.call83
91 msgSend.call83:                                   ; preds = %msgSend.cont68
92   br label %msgSend.cont85
94 msgSend.nullinit84:                               ; preds = %msgSend.cont68
95   br label %msgSend.cont85
97 msgSend.cont85:                                   ; preds = %msgSend.nullinit84, %msgSend.call83
98   br i1 %arg, label %msgSend.nullinit90, label %msgSend.call89
100 msgSend.call89:                                   ; preds = %msgSend.cont85
101   br label %msgSend.cont91
103 msgSend.nullinit90:                               ; preds = %msgSend.cont85
104   br label %msgSend.cont91
106 msgSend.cont91:                                   ; preds = %msgSend.nullinit90, %msgSend.call89
107   br i1 %arg, label %msgSend.nullinit104, label %msgSend.call103
109 msgSend.call103:                                  ; preds = %msgSend.cont91
110   br label %msgSend.cont105
112 msgSend.nullinit104:                              ; preds = %msgSend.cont91
113   br label %msgSend.cont105
115 msgSend.cont105:                                  ; preds = %msgSend.nullinit104, %msgSend.call103
116   br i1 %arg, label %land.lhs.true, label %if.end123
118 land.lhs.true:                                    ; preds = %msgSend.cont105
119   br i1 %arg, label %if.then117, label %if.end123
121 if.then117:                                       ; preds = %land.lhs.true
122   br label %if.end123
124 if.end123:                                        ; preds = %if.then117, %land.lhs.true, %msgSend.cont105
125   br i1 %arg, label %msgSend.nullinit132, label %msgSend.call131
127 msgSend.call131:                                  ; preds = %if.end123
128   br label %msgSend.cont133
130 msgSend.nullinit132:                              ; preds = %if.end123
131   br label %msgSend.cont133
133 msgSend.cont133:                                  ; preds = %msgSend.nullinit132, %msgSend.call131
134   br i1 %arg, label %msgSend.nullinit139, label %msgSend.call138
136 msgSend.call138:                                  ; preds = %msgSend.cont133
137   br label %msgSend.cont140
139 msgSend.nullinit139:                              ; preds = %msgSend.cont133
140   br label %msgSend.cont140
142 msgSend.cont140:                                  ; preds = %msgSend.nullinit139, %msgSend.call138
143   br i1 %arg, label %if.then151, label %if.end157
145 if.then151:                                       ; preds = %msgSend.cont140
146   br label %if.end157
148 if.end157:                                        ; preds = %if.then151, %msgSend.cont140
149   br i1 %arg, label %msgSend.nullinit164, label %msgSend.call163
151 msgSend.call163:                                  ; preds = %if.end157
152   br label %msgSend.cont165
154 msgSend.nullinit164:                              ; preds = %if.end157
155   br label %msgSend.cont165
157 msgSend.cont165:                                  ; preds = %msgSend.nullinit164, %msgSend.call163
158   br i1 %arg, label %msgSend.nullinit176, label %msgSend.call175
160 msgSend.call175:                                  ; preds = %msgSend.cont165
161   br label %msgSend.cont177
163 msgSend.nullinit176:                              ; preds = %msgSend.cont165
164   br label %msgSend.cont177
166 msgSend.cont177:                                  ; preds = %msgSend.nullinit176, %msgSend.call175
167   br i1 %arg, label %land.lhs.true181, label %if.end202
169 land.lhs.true181:                                 ; preds = %msgSend.cont177
170   br i1 %arg, label %if.then187, label %if.end202
172 if.then187:                                       ; preds = %land.lhs.true181
173   br i1 %arg, label %msgSend.nullinit199, label %msgSend.call198
175 msgSend.call198:                                  ; preds = %if.then187
176   br label %msgSend.cont200
178 msgSend.nullinit199:                              ; preds = %if.then187
179   br label %msgSend.cont200
181 msgSend.cont200:                                  ; preds = %msgSend.nullinit199, %msgSend.call198
182   br label %if.end202
184 if.end202:                                        ; preds = %msgSend.cont200, %land.lhs.true181, %msgSend.cont177
185   br i1 %arg, label %msgSend.nullinit236, label %msgSend.call235
187 msgSend.call235:                                  ; preds = %if.end202
188   br label %msgSend.cont237
190 msgSend.nullinit236:                              ; preds = %if.end202
191   br label %msgSend.cont237
193 msgSend.cont237:                                  ; preds = %msgSend.nullinit236, %msgSend.call235
194   br i1 %arg, label %msgSend.nullinit254, label %msgSend.call253
196 msgSend.call253:                                  ; preds = %msgSend.cont237
197   br label %msgSend.cont255
199 msgSend.nullinit254:                              ; preds = %msgSend.cont237
200   br label %msgSend.cont255
202 msgSend.cont255:                                  ; preds = %msgSend.nullinit254, %msgSend.call253
203   br i1 %arg, label %msgSend.nullinit269, label %msgSend.call268
205 msgSend.call268:                                  ; preds = %msgSend.cont255
206   br label %msgSend.cont270
208 msgSend.nullinit269:                              ; preds = %msgSend.cont255
209   br label %msgSend.cont270
211 msgSend.cont270:                                  ; preds = %msgSend.nullinit269, %msgSend.call268
212   br i1 %arg, label %msgSend.nullinit281, label %msgSend.call280
214 msgSend.call280:                                  ; preds = %msgSend.cont270
215   br label %msgSend.cont282
217 msgSend.nullinit281:                              ; preds = %msgSend.cont270
218   br label %msgSend.cont282
220 msgSend.cont282:                                  ; preds = %msgSend.nullinit281, %msgSend.call280
221   br i1 %arg, label %msgSend.nullinit287, label %msgSend.call286
223 msgSend.call286:                                  ; preds = %msgSend.cont282
224   br label %msgSend.cont288
226 msgSend.nullinit287:                              ; preds = %msgSend.cont282
227   br label %msgSend.cont288
229 msgSend.cont288:                                  ; preds = %msgSend.nullinit287, %msgSend.call286
230   br i1 %arg, label %msgSend.nullinit303, label %msgSend.call302
232 msgSend.call302:                                  ; preds = %msgSend.cont288
233   br label %msgSend.cont304
235 msgSend.nullinit303:                              ; preds = %msgSend.cont288
236   br label %msgSend.cont304
238 msgSend.cont304:                                  ; preds = %msgSend.nullinit303, %msgSend.call302
239   br i1 %arg, label %msgSend.nullinit344, label %msgSend.call343
241 msgSend.call343:                                  ; preds = %msgSend.cont304
242   br label %msgSend.cont345
244 msgSend.nullinit344:                              ; preds = %msgSend.cont304
245   br label %msgSend.cont345
247 msgSend.cont345:                                  ; preds = %msgSend.nullinit344, %msgSend.call343
248   br i1 %arg, label %msgSend.nullinit350, label %msgSend.call349
250 msgSend.call349:                                  ; preds = %msgSend.cont345
251   br label %msgSend.cont351
253 msgSend.nullinit350:                              ; preds = %msgSend.cont345
254   br label %msgSend.cont351
256 msgSend.cont351:                                  ; preds = %msgSend.nullinit350, %msgSend.call349
257   br i1 %arg, label %msgSend.nullinit366, label %msgSend.call365
259 msgSend.call365:                                  ; preds = %msgSend.cont351
260   br label %msgSend.cont367
262 msgSend.nullinit366:                              ; preds = %msgSend.cont351
263   br label %msgSend.cont367
265 msgSend.cont367:                                  ; preds = %msgSend.nullinit366, %msgSend.call365
266   br i1 %arg, label %msgSend.nullinit376, label %msgSend.call375
268 msgSend.call375:                                  ; preds = %msgSend.cont367
269   br label %msgSend.cont377
271 msgSend.nullinit376:                              ; preds = %msgSend.cont367
272   br label %msgSend.cont377
274 msgSend.cont377:                                  ; preds = %msgSend.nullinit376, %msgSend.call375
275   br i1 %arg, label %if.then384, label %if.else401
277 if.then384:                                       ; preds = %msgSend.cont377
278   br i1 %arg, label %msgSend.nullinit392, label %msgSend.call391
280 msgSend.call391:                                  ; preds = %if.then384
281   br label %msgSend.cont393
283 msgSend.nullinit392:                              ; preds = %if.then384
284   br label %msgSend.cont393
286 msgSend.cont393:                                  ; preds = %msgSend.nullinit392, %msgSend.call391
287   br label %if.end418
289 if.else401:                                       ; preds = %msgSend.cont377
290   br i1 %arg, label %msgSend.nullinit409, label %msgSend.call408
292 msgSend.call408:                                  ; preds = %if.else401
293   br label %msgSend.cont410
295 msgSend.nullinit409:                              ; preds = %if.else401
296   br label %msgSend.cont410
298 msgSend.cont410:                                  ; preds = %msgSend.nullinit409, %msgSend.call408
299   br label %if.end418
301 if.end418:                                        ; preds = %msgSend.cont410, %msgSend.cont393
302   br i1 %arg, label %msgSend.nullinit470, label %msgSend.call469
304 msgSend.call469:                                  ; preds = %if.end418
305   br label %msgSend.cont471
307 msgSend.nullinit470:                              ; preds = %if.end418
308   br label %msgSend.cont471
310 msgSend.cont471:                                  ; preds = %msgSend.nullinit470, %msgSend.call469
311   br i1 %arg, label %msgSend.nullinit484, label %msgSend.call483
313 msgSend.call483:                                  ; preds = %msgSend.cont471
314   br label %msgSend.cont485
316 msgSend.nullinit484:                              ; preds = %msgSend.cont471
317   br label %msgSend.cont485
319 msgSend.cont485:                                  ; preds = %msgSend.nullinit484, %msgSend.call483
320   br i1 %arg, label %msgSend.nullinit500, label %msgSend.call499
322 msgSend.call499:                                  ; preds = %msgSend.cont485
323   br label %msgSend.cont501
325 msgSend.nullinit500:                              ; preds = %msgSend.cont485
326   br label %msgSend.cont501
328 msgSend.cont501:                                  ; preds = %msgSend.nullinit500, %msgSend.call499
329   br i1 %arg, label %msgSend.nullinit506, label %msgSend.call505
331 msgSend.call505:                                  ; preds = %msgSend.cont501
332   br label %msgSend.cont507
334 msgSend.nullinit506:                              ; preds = %msgSend.cont501
335   br label %msgSend.cont507
337 msgSend.cont507:                                  ; preds = %msgSend.nullinit506, %msgSend.call505
338   call void @llvm.objc.release(ptr @_unnamed_cfstring) nounwind, !clang.imprecise_release !0
339   ret void
342 ; Function Attrs: optsize ssp uwtable
343 define void @test2(i1 %arg) unnamed_addr align 2 personality ptr @__gxx_personality_sj0 {
345   br i1 %arg, label %bb3, label %bb2
347 bb2:                                              ; preds = %bb
348   br label %bb3
350 bb3:                                              ; preds = %bb2, %bb
351   br i1 %arg, label %bb5, label %bb4
353 bb4:                                              ; preds = %bb3
354   br label %bb5
356 bb5:                                              ; preds = %bb4, %bb3
357   br i1 %arg, label %bb7, label %bb6
359 bb6:                                              ; preds = %bb5
360   br label %bb7
362 bb7:                                              ; preds = %bb6, %bb5
363   br i1 %arg, label %bb9, label %bb8
365 bb8:                                              ; preds = %bb7
366   unreachable
368 bb9:                                              ; preds = %bb7
369   br i1 %arg, label %bb11, label %bb10
371 bb10:                                             ; preds = %bb9
372   br label %bb11
374 bb11:                                             ; preds = %bb10, %bb9
375   br i1 %arg, label %bb13, label %bb12
377 bb12:                                             ; preds = %bb11
378   br label %bb13
380 bb13:                                             ; preds = %bb12, %bb11
381   br i1 %arg, label %bb15, label %bb14
383 bb14:                                             ; preds = %bb13
384   br label %bb15
386 bb15:                                             ; preds = %bb14, %bb13
387   br i1 %arg, label %bb17, label %bb16
389 bb16:                                             ; preds = %bb15
390   br label %bb17
392 bb17:                                             ; preds = %bb16, %bb15
393   br i1 %arg, label %bb19, label %bb18
395 bb18:                                             ; preds = %bb17
396   br label %bb19
398 bb19:                                             ; preds = %bb18, %bb17
399   br i1 %arg, label %bb222, label %bb20
401 bb20:                                             ; preds = %bb19
402   br i1 %arg, label %bb222, label %bb21
404 bb21:                                             ; preds = %bb20
405   br i1 %arg, label %bb22, label %bb30
407 bb22:                                             ; preds = %bb21
408   br i1 %arg, label %bb23, label %bb32
410 bb23:                                             ; preds = %bb22
411   br i1 %arg, label %bb24, label %bb34
413 bb24:                                             ; preds = %bb23
414   br i1 %arg, label %bb26, label %bb25
416 bb25:                                             ; preds = %bb24
417   br label %bb27
419 bb26:                                             ; preds = %bb24
420   br label %bb27
422 bb27:                                             ; preds = %bb26, %bb25
423   br i1 %arg, label %bb28, label %bb42
425 bb28:                                             ; preds = %bb27
426   br i1 %arg, label %bb36, label %bb29
428 bb29:                                             ; preds = %bb28
429   br label %bb36
431 bb30:                                             ; preds = %bb210, %bb207, %bb203, %bb199, %bb182, %bb176, %bb174, %bb171, %bb136, %bb132, %bb21
432   br label %bb213
434 bb32:                                             ; preds = %bb22
435   unreachable
437 bb34:                                             ; preds = %bb23
438   unreachable
440 bb36:                                             ; preds = %bb29, %bb28
441   br i1 %arg, label %bb38, label %bb37
443 bb37:                                             ; preds = %bb36
444   br label %bb39
446 bb38:                                             ; preds = %bb36
447   br label %bb39
449 bb39:                                             ; preds = %bb38, %bb37
450   br i1 %arg, label %bb41, label %bb40
452 bb40:                                             ; preds = %bb39
453   unreachable
455 bb41:                                             ; preds = %bb39
456   br label %bb42
458 bb42:                                             ; preds = %bb41, %bb27
459   br i1 %arg, label %bb43, label %bb214
461 bb43:                                             ; preds = %bb42
462   br i1 %arg, label %bb47, label %bb45
464 bb45:                                             ; preds = %bb130, %bb128, %bb126, %bb124, %bb122, %bb120, %bb118, %bb116, %bb114, %bb112, %bb110, %bb108, %bb105, %bb102, %bb100, %bb96, %bb94, %bb90, %bb88, %bb84, %bb82, %bb78, %bb76, %bb72, %bb70, %bb66, %bb64, %bb60, %bb58, %bb54, %bb51, %bb43
465   unreachable
467 bb47:                                             ; preds = %bb43
468   br i1 %arg, label %bb48, label %bb106
470 bb48:                                             ; preds = %bb47
471   br i1 %arg, label %bb50, label %bb49
473 bb49:                                             ; preds = %bb48
474   br label %bb51
476 bb50:                                             ; preds = %bb48
477   br label %bb51
479 bb51:                                             ; preds = %bb50, %bb49
480   br i1 %arg, label %bb53, label %bb45
482 bb53:                                             ; preds = %bb51
483   br i1 %arg, label %bb54, label %bb134
485 bb54:                                             ; preds = %bb53
486   br i1 %arg, label %bb55, label %bb45
488 bb55:                                             ; preds = %bb54
489   br i1 %arg, label %bb57, label %bb56
491 bb56:                                             ; preds = %bb55
492   br label %bb58
494 bb57:                                             ; preds = %bb55
495   br label %bb58
497 bb58:                                             ; preds = %bb57, %bb56
498   br i1 %arg, label %bb60, label %bb45
500 bb60:                                             ; preds = %bb58
501   br i1 %arg, label %bb61, label %bb45
503 bb61:                                             ; preds = %bb60
504   br i1 %arg, label %bb63, label %bb62
506 bb62:                                             ; preds = %bb61
507   br label %bb64
509 bb63:                                             ; preds = %bb61
510   br label %bb64
512 bb64:                                             ; preds = %bb63, %bb62
513   br i1 %arg, label %bb66, label %bb45
515 bb66:                                             ; preds = %bb64
516   br i1 %arg, label %bb67, label %bb45
518 bb67:                                             ; preds = %bb66
519   br i1 %arg, label %bb69, label %bb68
521 bb68:                                             ; preds = %bb67
522   br label %bb70
524 bb69:                                             ; preds = %bb67
525   br label %bb70
527 bb70:                                             ; preds = %bb69, %bb68
528   br i1 %arg, label %bb72, label %bb45
530 bb72:                                             ; preds = %bb70
531   br i1 %arg, label %bb73, label %bb45
533 bb73:                                             ; preds = %bb72
534   br i1 %arg, label %bb75, label %bb74
536 bb74:                                             ; preds = %bb73
537   br label %bb76
539 bb75:                                             ; preds = %bb73
540   br label %bb76
542 bb76:                                             ; preds = %bb75, %bb74
543   br i1 %arg, label %bb78, label %bb45
545 bb78:                                             ; preds = %bb76
546   br i1 %arg, label %bb79, label %bb45
548 bb79:                                             ; preds = %bb78
549   br i1 %arg, label %bb81, label %bb80
551 bb80:                                             ; preds = %bb79
552   br label %bb82
554 bb81:                                             ; preds = %bb79
555   br label %bb82
557 bb82:                                             ; preds = %bb81, %bb80
558   br i1 %arg, label %bb84, label %bb45
560 bb84:                                             ; preds = %bb82
561   br i1 %arg, label %bb85, label %bb45
563 bb85:                                             ; preds = %bb84
564   br i1 %arg, label %bb87, label %bb86
566 bb86:                                             ; preds = %bb85
567   br label %bb88
569 bb87:                                             ; preds = %bb85
570   br label %bb88
572 bb88:                                             ; preds = %bb87, %bb86
573   br i1 %arg, label %bb90, label %bb45
575 bb90:                                             ; preds = %bb88
576   br i1 %arg, label %bb91, label %bb45
578 bb91:                                             ; preds = %bb90
579   br i1 %arg, label %bb93, label %bb92
581 bb92:                                             ; preds = %bb91
582   br label %bb94
584 bb93:                                             ; preds = %bb91
585   br label %bb94
587 bb94:                                             ; preds = %bb93, %bb92
588   br i1 %arg, label %bb96, label %bb45
590 bb96:                                             ; preds = %bb94
591   br i1 %arg, label %bb97, label %bb45
593 bb97:                                             ; preds = %bb96
594   br i1 %arg, label %bb99, label %bb98
596 bb98:                                             ; preds = %bb97
597   br label %bb100
599 bb99:                                             ; preds = %bb97
600   br label %bb100
602 bb100:                                            ; preds = %bb99, %bb98
603   br i1 %arg, label %bb102, label %bb45
605 bb102:                                            ; preds = %bb100
606   br i1 %arg, label %bb104, label %bb45
608 bb104:                                            ; preds = %bb102
609   br i1 %arg, label %bb108, label %bb105
611 bb105:                                            ; preds = %bb104
612   br i1 %arg, label %bb108, label %bb45
614 bb106:                                            ; preds = %bb47
615   unreachable
617 bb108:                                            ; preds = %bb105, %bb104
618   br i1 %arg, label %bb110, label %bb45
620 bb110:                                            ; preds = %bb108
621   br i1 %arg, label %bb112, label %bb45
623 bb112:                                            ; preds = %bb110
624   br i1 %arg, label %bb114, label %bb45
626 bb114:                                            ; preds = %bb112
627   br i1 %arg, label %bb116, label %bb45
629 bb116:                                            ; preds = %bb114
630   br i1 %arg, label %bb118, label %bb45
632 bb118:                                            ; preds = %bb116
633   br i1 %arg, label %bb120, label %bb45
635 bb120:                                            ; preds = %bb118
636   br i1 %arg, label %bb122, label %bb45
638 bb122:                                            ; preds = %bb120
639   br i1 %arg, label %bb124, label %bb45
641 bb124:                                            ; preds = %bb122
642   br i1 %arg, label %bb126, label %bb45
644 bb126:                                            ; preds = %bb124
645   br i1 %arg, label %bb128, label %bb45
647 bb128:                                            ; preds = %bb126
648   br i1 %arg, label %bb130, label %bb45
650 bb130:                                            ; preds = %bb128
651   br i1 %arg, label %bb132, label %bb45
653 bb132:                                            ; preds = %bb130
654   br i1 %arg, label %bb135, label %bb30
656 bb134:                                            ; preds = %bb53
657   unreachable
659 bb135:                                            ; preds = %bb132
660   br i1 %arg, label %bb139, label %bb136
662 bb136:                                            ; preds = %bb135
663   br i1 %arg, label %bb138, label %bb30
665 bb138:                                            ; preds = %bb136
666   br label %bb139
668 bb139:                                            ; preds = %bb138, %bb135
669   br i1 %arg, label %bb140, label %bb141
671 bb140:                                            ; preds = %bb139
672   unreachable
674 bb141:                                            ; preds = %bb139
675   br i1 %arg, label %bb142, label %bb215
677 bb142:                                            ; preds = %bb141
678   br i1 %arg, label %bb144, label %bb143
680 bb143:                                            ; preds = %bb142
681   br label %bb145
683 bb144:                                            ; preds = %bb142
684   br label %bb145
686 bb145:                                            ; preds = %bb144, %bb143
687   br i1 %arg, label %bb146, label %bb151
689 bb146:                                            ; preds = %bb145
690   br i1 %arg, label %bb148, label %bb153
692 bb148:                                            ; preds = %bb146
693   br i1 %arg, label %bb155, label %bb149
695 bb149:                                            ; preds = %bb148
696   br i1 %arg, label %bb150, label %bb153
698 bb150:                                            ; preds = %bb149
699   br label %bb155
701 bb151:                                            ; preds = %bb145
702   unreachable
704 bb153:                                            ; preds = %bb158, %bb149, %bb146
705   unreachable
707 bb155:                                            ; preds = %bb150, %bb148
708   br i1 %arg, label %bb157, label %bb156
710 bb156:                                            ; preds = %bb155
711   br label %bb158
713 bb157:                                            ; preds = %bb155
714   br label %bb158
716 bb158:                                            ; preds = %bb157, %bb156
717   br i1 %arg, label %bb160, label %bb153
719 bb160:                                            ; preds = %bb158
720   br i1 %arg, label %bb162, label %bb161
722 bb161:                                            ; preds = %bb160
723   br label %bb163
725 bb162:                                            ; preds = %bb160
726   br label %bb163
728 bb163:                                            ; preds = %bb162, %bb161
729   br i1 %arg, label %bb165, label %bb164
731 bb164:                                            ; preds = %bb163
732   br label %bb165
734 bb165:                                            ; preds = %bb164, %bb163
735   br i1 %arg, label %bb170, label %bb166
737 bb166:                                            ; preds = %bb165
738   br i1 %arg, label %bb167, label %bb168
740 bb167:                                            ; preds = %bb166
741   unreachable
743 bb168:                                            ; preds = %bb166
744   unreachable
746 bb170:                                            ; preds = %bb165
747   br i1 %arg, label %bb215, label %bb171
749 bb171:                                            ; preds = %bb170
750   br i1 %arg, label %bb173, label %bb30
752 bb173:                                            ; preds = %bb171
753   br i1 %arg, label %bb174, label %bb215
755 bb174:                                            ; preds = %bb173
756   br i1 %arg, label %bb176, label %bb30
758 bb176:                                            ; preds = %bb174
759   br i1 %arg, label %bb178, label %bb30
761 bb178:                                            ; preds = %bb176
762   br i1 %arg, label %bb179, label %bb193
764 bb179:                                            ; preds = %bb178
765   br i1 %arg, label %bb181, label %bb180
767 bb180:                                            ; preds = %bb179
768   br label %bb182
770 bb181:                                            ; preds = %bb179
771   br label %bb182
773 bb182:                                            ; preds = %bb181, %bb180
774   br i1 %arg, label %bb184, label %bb30
776 bb184:                                            ; preds = %bb182
777   %tmp185 = call ptr @returner()
778   br i1 %arg, label %bb186, label %bb195
780 bb186:                                            ; preds = %bb184
781   %tmp188 = call ptr @llvm.objc.retainAutoreleasedReturnValue(ptr %tmp185)
782   %tmp189 = call ptr @llvm.objc.retain(ptr %tmp188)
783   call void @llvm.objc.release(ptr %tmp189), !clang.imprecise_release !0
784   br i1 %arg, label %bb197, label %bb190
786 bb190:                                            ; preds = %bb186
787   br i1 %arg, label %bb192, label %bb195
789 bb192:                                            ; preds = %bb190
790   br i1 %arg, label %bb197, label %bb195
792 bb193:                                            ; preds = %bb178
793   br label %bb213
795 bb195:                                            ; preds = %bb192, %bb190, %bb184
796   unreachable
798 bb197:                                            ; preds = %bb192, %bb186
799   br i1 %arg, label %bb198, label %bb215
801 bb198:                                            ; preds = %bb197
802   br i1 %arg, label %bb202, label %bb199
804 bb199:                                            ; preds = %bb198
805   br i1 %arg, label %bb201, label %bb30
807 bb201:                                            ; preds = %bb199
808   br label %bb202
810 bb202:                                            ; preds = %bb201, %bb198
811   br i1 %arg, label %bb206, label %bb203
813 bb203:                                            ; preds = %bb202
814   br i1 %arg, label %bb205, label %bb30
816 bb205:                                            ; preds = %bb203
817   br label %bb206
819 bb206:                                            ; preds = %bb205, %bb202
820   br i1 %arg, label %bb210, label %bb207
822 bb207:                                            ; preds = %bb206
823   br i1 %arg, label %bb209, label %bb30
825 bb209:                                            ; preds = %bb207
826   br label %bb210
828 bb210:                                            ; preds = %bb209, %bb206
829   br i1 %arg, label %bb212, label %bb30
831 bb212:                                            ; preds = %bb210
832   unreachable
834 bb213:                                            ; preds = %bb193, %bb30
835   resume { ptr, i32 } undef
837 bb214:                                            ; preds = %bb42
838   br label %bb219
840 bb215:                                            ; preds = %bb197, %bb173, %bb170, %bb141
841   br i1 %arg, label %bb217, label %bb216
843 bb216:                                            ; preds = %bb215
844   br label %bb217
846 bb217:                                            ; preds = %bb216, %bb215
847   br i1 %arg, label %bb219, label %bb218
849 bb218:                                            ; preds = %bb217
850   br label %bb219
852 bb219:                                            ; preds = %bb218, %bb217, %bb214
853   br i1 %arg, label %bb221, label %bb220
855 bb220:                                            ; preds = %bb219
856   unreachable
858 bb221:                                            ; preds = %bb219
859   unreachable
861 bb222:                                            ; preds = %bb20, %bb19
862   ret void
865 ; Function Attrs: ssp
866 define void @test3(i1 %arg) #1 personality ptr @__gxx_personality_sj0 {
867 entry:
868   %call2 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
869           to label %invoke.cont unwind label %lpad
871 invoke.cont:                                      ; preds = %entry
872   %call5 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef)
873           to label %invoke.cont4 unwind label %lpad3
875 invoke.cont4:                                     ; preds = %invoke.cont
876   br i1 %arg, label %land.end, label %land.rhs
878 land.rhs:                                         ; preds = %invoke.cont4
879   %call7 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
880           to label %land.end unwind label %lpad3
882 land.end:                                         ; preds = %land.rhs, %invoke.cont4
883   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
884           to label %invoke.cont.i unwind label %lpad.i
886 invoke.cont.i:                                    ; preds = %land.end
887   br i1 %arg, label %invoke.cont8, label %if.then.i
889 if.then.i:                                        ; preds = %invoke.cont.i
890   br label %invoke.cont8
892 lpad.i:                                           ; preds = %land.end
893   %tmp13 = landingpad { ptr, i32 }
894           cleanup
895   unreachable
897 invoke.cont8:                                     ; preds = %if.then.i, %invoke.cont.i
898   %call18 = invoke ptr (ptr, ptr, ptr, ...) @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef)
899           to label %invoke.cont17 unwind label %lpad16
901 invoke.cont17:                                    ; preds = %invoke.cont8
902   %call22 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
903           to label %invoke.cont21 unwind label %lpad20
905 invoke.cont21:                                    ; preds = %invoke.cont17
906   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
907           to label %invoke.cont.i1980 unwind label %lpad.i1982
909 invoke.cont.i1980:                                ; preds = %invoke.cont21
910   br i1 %arg, label %invoke.cont24, label %if.then.i1981
912 if.then.i1981:                                    ; preds = %invoke.cont.i1980
913   br label %invoke.cont24
915 lpad.i1982:                                       ; preds = %invoke.cont21
916   %tmp28 = landingpad { ptr, i32 }
917           cleanup
918   unreachable
920 invoke.cont24:                                    ; preds = %if.then.i1981, %invoke.cont.i1980
921   %call37 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef)
922           to label %invoke.cont36 unwind label %lpad35
924 invoke.cont36:                                    ; preds = %invoke.cont24
925   br i1 %arg, label %land.end43, label %land.rhs39
927 land.rhs39:                                       ; preds = %invoke.cont36
928   %call41 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
929           to label %land.end43 unwind label %lpad35
931 land.end43:                                       ; preds = %land.rhs39, %invoke.cont36
932   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
933           to label %invoke.cont.i1986 unwind label %lpad.i1988
935 invoke.cont.i1986:                                ; preds = %land.end43
936   br i1 %arg, label %invoke.cont44, label %if.then.i1987
938 if.then.i1987:                                    ; preds = %invoke.cont.i1986
939   br label %invoke.cont44
941 lpad.i1988:                                       ; preds = %land.end43
942   %tmp42 = landingpad { ptr, i32 }
943           cleanup
944   unreachable
946 invoke.cont44:                                    ; preds = %if.then.i1987, %invoke.cont.i1986
947   %call53 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
948           to label %invoke.cont52 unwind label %lpad51
950 invoke.cont52:                                    ; preds = %invoke.cont44
951   br i1 %arg, label %land.end70, label %land.rhs58
953 land.rhs58:                                       ; preds = %invoke.cont52
954   %call63 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42)
955           to label %invoke.cont62 unwind label %lpad61
957 invoke.cont62:                                    ; preds = %land.rhs58
958   %call68 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr undef)
959           to label %land.end70 unwind label %lpad66.body.thread
961 land.end70:                                       ; preds = %invoke.cont62, %invoke.cont52
962   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
963           to label %invoke.cont.i1992 unwind label %lpad66.body
965 invoke.cont.i1992:                                ; preds = %land.end70
966   br i1 %arg, label %invoke.cont71, label %if.then.i1993
968 if.then.i1993:                                    ; preds = %invoke.cont.i1992
969   br label %invoke.cont71
971 invoke.cont71:                                    ; preds = %if.then.i1993, %invoke.cont.i1992
972   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
973           to label %invoke.cont.i1998 unwind label %lpad.i2000
975 invoke.cont.i1998:                                ; preds = %invoke.cont71
976   br i1 %arg, label %invoke.cont91, label %if.then.i1999
978 if.then.i1999:                                    ; preds = %invoke.cont.i1998
979   br label %invoke.cont91
981 lpad.i2000:                                       ; preds = %invoke.cont71
982   %tmp74 = landingpad { ptr, i32 }
983           cleanup
984   br label %ehcleanup102
986 invoke.cont91:                                    ; preds = %if.then.i1999, %invoke.cont.i1998
987   %call96 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
988           to label %invoke.cont95 unwind label %lpad94
990 invoke.cont95:                                    ; preds = %invoke.cont91
991   %call98 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr %call96)
992           to label %invoke.cont97 unwind label %lpad94
994 invoke.cont97:                                    ; preds = %invoke.cont95
995   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
996           to label %invoke.cont.i2004 unwind label %lpad.i2006
998 invoke.cont.i2004:                                ; preds = %invoke.cont97
999   br i1 %arg, label %invoke.cont100, label %if.then.i2005
1001 if.then.i2005:                                    ; preds = %invoke.cont.i2004
1002   br label %invoke.cont100
1004 lpad.i2006:                                       ; preds = %invoke.cont97
1005   %tmp82 = landingpad { ptr, i32 }
1006           cleanup
1007   unreachable
1009 invoke.cont100:                                   ; preds = %if.then.i2005, %invoke.cont.i2004
1010   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1011           to label %invoke.cont110 unwind label %lpad109
1013 invoke.cont110:                                   ; preds = %invoke.cont100
1014   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1015           to label %invoke.cont.i2010 unwind label %lpad.i2012
1017 invoke.cont.i2010:                                ; preds = %invoke.cont110
1018   br i1 %arg, label %invoke.cont117, label %if.then.i2011
1020 if.then.i2011:                                    ; preds = %invoke.cont.i2010
1021   br label %invoke.cont117
1023 lpad.i2012:                                       ; preds = %invoke.cont110
1024   %tmp98 = landingpad { ptr, i32 }
1025           cleanup
1026   unreachable
1028 invoke.cont117:                                   ; preds = %if.then.i2011, %invoke.cont.i2010
1029   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1030           to label %invoke.cont.i2022 unwind label %lpad156.body
1032 lpad:                                             ; preds = %entry
1033   %tmp118 = landingpad { ptr, i32 }
1034           cleanup
1035   br label %ehcleanup
1037 lpad3:                                            ; preds = %land.rhs, %invoke.cont
1038   %tmp119 = landingpad { ptr, i32 }
1039           cleanup
1040   br label %ehcleanup
1042 ehcleanup:                                        ; preds = %lpad3, %lpad
1043   unreachable
1045 lpad16:                                           ; preds = %invoke.cont8
1046   %tmp121 = landingpad { ptr, i32 }
1047           cleanup
1048   br label %ehcleanup26
1050 lpad20:                                           ; preds = %invoke.cont17
1051   %tmp122 = landingpad { ptr, i32 }
1052           cleanup
1053   br label %ehcleanup26
1055 ehcleanup26:                                      ; preds = %lpad20, %lpad16
1056   unreachable
1058 lpad35:                                           ; preds = %land.rhs39, %invoke.cont24
1059   %tmp124 = landingpad { ptr, i32 }
1060           cleanup
1061   unreachable
1063 lpad51:                                           ; preds = %invoke.cont44
1064   %tmp125 = landingpad { ptr, i32 }
1065           cleanup
1066   unreachable
1068 lpad61:                                           ; preds = %land.rhs58
1069   %tmp127 = landingpad { ptr, i32 }
1070           cleanup
1071   unreachable
1073 lpad66.body.thread:                               ; preds = %invoke.cont62
1074   %tmp128 = landingpad { ptr, i32 }
1075           cleanup
1076   unreachable
1078 lpad66.body:                                      ; preds = %land.end70
1079   %tmp129 = landingpad { ptr, i32 }
1080           cleanup
1081   unreachable
1083 lpad94:                                           ; preds = %invoke.cont95, %invoke.cont91
1084   %tmp133 = landingpad { ptr, i32 }
1085           cleanup
1086   br label %ehcleanup102
1088 ehcleanup102:                                     ; preds = %lpad94, %lpad.i2000
1089   unreachable
1091 lpad109:                                          ; preds = %invoke.cont100
1092   %tmp134 = landingpad { ptr, i32 }
1093           cleanup
1094   unreachable
1096 invoke.cont.i2022:                                ; preds = %invoke.cont117
1097   br i1 %arg, label %invoke.cont157, label %if.then.i2023
1099 if.then.i2023:                                    ; preds = %invoke.cont.i2022
1100   br label %invoke.cont157
1102 invoke.cont157:                                   ; preds = %if.then.i2023, %invoke.cont.i2022
1103   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1104           to label %invoke.cont.i2028 unwind label %lpad164.body
1106 invoke.cont.i2028:                                ; preds = %invoke.cont157
1107   br i1 %arg, label %invoke.cont165, label %if.then.i2029
1109 if.then.i2029:                                    ; preds = %invoke.cont.i2028
1110   br label %invoke.cont165
1112 invoke.cont165:                                   ; preds = %if.then.i2029, %invoke.cont.i2028
1113   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef)
1114           to label %invoke.cont184 unwind label %lpad183
1116 invoke.cont184:                                   ; preds = %invoke.cont165
1117   %call186 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1118           to label %invoke.cont185 unwind label %lpad183
1120 invoke.cont185:                                   ; preds = %invoke.cont184
1121   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1122           to label %invoke.cont.i2034 unwind label %lpad.i2036
1124 invoke.cont.i2034:                                ; preds = %invoke.cont185
1125   br i1 %arg, label %invoke.cont190, label %if.then.i2035
1127 if.then.i2035:                                    ; preds = %invoke.cont.i2034
1128   br label %invoke.cont190
1130 lpad.i2036:                                       ; preds = %invoke.cont185
1131   %tmp168 = landingpad { ptr, i32 }
1132           cleanup
1133   br label %lpad183.body
1135 invoke.cont190:                                   ; preds = %if.then.i2035, %invoke.cont.i2034
1136   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1137           to label %invoke.cont197 unwind label %lpad196
1139 invoke.cont197:                                   ; preds = %invoke.cont190
1140   %call202 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1141           to label %invoke.cont201 unwind label %lpad200
1143 invoke.cont201:                                   ; preds = %invoke.cont197
1144   %call205 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1145           to label %invoke.cont204 unwind label %lpad203
1147 invoke.cont204:                                   ; preds = %invoke.cont201
1148   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1149           to label %invoke.cont.i2040 unwind label %lpad.i2042
1151 invoke.cont.i2040:                                ; preds = %invoke.cont204
1152   br i1 %arg, label %invoke.cont207, label %if.then.i2041
1154 if.then.i2041:                                    ; preds = %invoke.cont.i2040
1155   br label %invoke.cont207
1157 lpad.i2042:                                       ; preds = %invoke.cont204
1158   %tmp181 = landingpad { ptr, i32 }
1159           cleanup
1160   unreachable
1162 invoke.cont207:                                   ; preds = %if.then.i2041, %invoke.cont.i2040
1163   %call209 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1164           to label %invoke.cont208 unwind label %lpad203
1166 invoke.cont208:                                   ; preds = %invoke.cont207
1167   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1168           to label %invoke.cont.i2046 unwind label %lpad212.body
1170 invoke.cont.i2046:                                ; preds = %invoke.cont208
1171   br i1 %arg, label %invoke.cont213, label %if.then.i2047
1173 if.then.i2047:                                    ; preds = %invoke.cont.i2046
1174   br label %invoke.cont213
1176 invoke.cont213:                                   ; preds = %if.then.i2047, %invoke.cont.i2046
1177   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1178           to label %invoke.cont221 unwind label %lpad220
1180 invoke.cont221:                                   ; preds = %invoke.cont213
1181   %call229 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1182           to label %invoke.cont228 unwind label %lpad227
1184 invoke.cont228:                                   ; preds = %invoke.cont221
1185   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1186           to label %invoke.cont.i2052 unwind label %lpad.i2054
1188 invoke.cont.i2052:                                ; preds = %invoke.cont228
1189   br i1 %arg, label %invoke.cont231, label %if.then.i2053
1191 if.then.i2053:                                    ; preds = %invoke.cont.i2052
1192   br label %invoke.cont231
1194 lpad.i2054:                                       ; preds = %invoke.cont228
1195   %tmp198 = landingpad { ptr, i32 }
1196           cleanup
1197   unreachable
1199 invoke.cont231:                                   ; preds = %if.then.i2053, %invoke.cont.i2052
1200   %call233 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1201           to label %invoke.cont232 unwind label %lpad227
1203 invoke.cont232:                                   ; preds = %invoke.cont231
1204   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1205           to label %invoke.cont.i2058 unwind label %lpad236.body
1207 invoke.cont.i2058:                                ; preds = %invoke.cont232
1208   br i1 %arg, label %invoke.cont237, label %if.then.i2059
1210 if.then.i2059:                                    ; preds = %invoke.cont.i2058
1211   br label %invoke.cont237
1213 invoke.cont237:                                   ; preds = %if.then.i2059, %invoke.cont.i2058
1214   %call246 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1215           to label %invoke.cont245 unwind label %lpad244
1217 invoke.cont245:                                   ; preds = %invoke.cont237
1218   %call248 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 13)
1219           to label %invoke.cont247 unwind label %lpad244
1221 invoke.cont247:                                   ; preds = %invoke.cont245
1222   %call251 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 2)
1223           to label %invoke.cont250 unwind label %lpad249
1225 invoke.cont250:                                   ; preds = %invoke.cont247
1226   %call254 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 7)
1227           to label %invoke.cont253 unwind label %lpad252
1229 invoke.cont253:                                   ; preds = %invoke.cont250
1230   %call257 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 3)
1231           to label %invoke.cont256 unwind label %lpad255
1233 invoke.cont256:                                   ; preds = %invoke.cont253
1234   %call260 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr undef)
1235           to label %invoke.cont259 unwind label %lpad258
1237 invoke.cont259:                                   ; preds = %invoke.cont256
1238   %call267 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1239           to label %invoke.cont266 unwind label %lpad265
1241 invoke.cont266:                                   ; preds = %invoke.cont259
1242   %call275 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef)
1243           to label %invoke.cont274 unwind label %lpad273
1245 invoke.cont274:                                   ; preds = %invoke.cont266
1246   %call279 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
1247           to label %invoke.cont278 unwind label %lpad277
1249 invoke.cont278:                                   ; preds = %invoke.cont274
1250   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1251           to label %invoke.cont.i2064 unwind label %lpad.i2066
1253 invoke.cont.i2064:                                ; preds = %invoke.cont278
1254   br i1 %arg, label %invoke.cont281, label %if.then.i2065
1256 if.then.i2065:                                    ; preds = %invoke.cont.i2064
1257   br label %invoke.cont281
1259 lpad.i2066:                                       ; preds = %invoke.cont278
1260   %tmp253 = landingpad { ptr, i32 }
1261           cleanup
1262   unreachable
1264 invoke.cont281:                                   ; preds = %if.then.i2065, %invoke.cont.i2064
1265   %call291 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1266           to label %invoke.cont290 unwind label %lpad289
1268 invoke.cont290:                                   ; preds = %invoke.cont281
1269   %call303 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 8)
1270           to label %invoke.cont302 unwind label %lpad301
1272 invoke.cont302:                                   ; preds = %invoke.cont290
1273   %call310 = invoke ptr @objc_msgSend(ptr undef, ptr undef, double 5.000000e-01)
1274           to label %invoke.cont309 unwind label %lpad308
1276 invoke.cont309:                                   ; preds = %invoke.cont302
1277   %call313 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42)
1278           to label %invoke.cont312 unwind label %lpad311
1280 invoke.cont312:                                   ; preds = %invoke.cont309
1281   %call316 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr undef, i32 2)
1282           to label %invoke.cont315 unwind label %lpad314
1284 invoke.cont315:                                   ; preds = %invoke.cont312
1285   %call322 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef)
1286           to label %invoke.cont321 unwind label %lpad320
1288 invoke.cont321:                                   ; preds = %invoke.cont315
1289   br i1 %arg, label %land.end344, label %land.rhs335
1291 land.rhs335:                                      ; preds = %invoke.cont321
1292   %call342 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1293           to label %land.end344 unwind label %lpad340.body.thread
1295 land.end344:                                      ; preds = %land.rhs335, %invoke.cont321
1296   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1297           to label %invoke.cont.i2070 unwind label %lpad340.body
1299 invoke.cont.i2070:                                ; preds = %land.end344
1300   br i1 %arg, label %invoke.cont345, label %if.then.i2071
1302 if.then.i2071:                                    ; preds = %invoke.cont.i2070
1303   br label %invoke.cont345
1305 invoke.cont345:                                   ; preds = %if.then.i2071, %invoke.cont.i2070
1306   %call362 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr undef)
1307           to label %invoke.cont361 unwind label %lpad360
1309 invoke.cont361:                                   ; preds = %invoke.cont345
1310   %call365 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1311           to label %invoke.cont364 unwind label %lpad363
1313 invoke.cont364:                                   ; preds = %invoke.cont361
1314   %call371 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
1315           to label %invoke.cont370 unwind label %lpad369
1317 invoke.cont370:                                   ; preds = %invoke.cont364
1318   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1319           to label %invoke.cont.i2076 unwind label %lpad.i2078
1321 invoke.cont.i2076:                                ; preds = %invoke.cont370
1322   br i1 %arg, label %invoke.cont373, label %if.then.i2077
1324 if.then.i2077:                                    ; preds = %invoke.cont.i2076
1325   br label %invoke.cont373
1327 lpad.i2078:                                       ; preds = %invoke.cont370
1328   %tmp340 = landingpad { ptr, i32 }
1329           cleanup
1330   unreachable
1332 invoke.cont373:                                   ; preds = %if.then.i2077, %invoke.cont.i2076
1333   %call377 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 42, ptr undef)
1334           to label %invoke.cont376 unwind label %lpad363
1336 invoke.cont376:                                   ; preds = %invoke.cont373
1337   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 5)
1338           to label %invoke.cont382 unwind label %lpad381
1340 invoke.cont382:                                   ; preds = %invoke.cont376
1341   %call384 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1342           to label %invoke.cont383 unwind label %lpad381
1344 invoke.cont383:                                   ; preds = %invoke.cont382
1345   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1346           to label %invoke.cont.i2082 unwind label %lpad.i2084
1348 invoke.cont.i2082:                                ; preds = %invoke.cont383
1349   br i1 %arg, label %invoke.cont392, label %if.then.i2083
1351 if.then.i2083:                                    ; preds = %invoke.cont.i2082
1352   br label %invoke.cont392
1354 lpad.i2084:                                       ; preds = %invoke.cont383
1355   %tmp360 = landingpad { ptr, i32 }
1356           cleanup
1357   unreachable
1359 invoke.cont392:                                   ; preds = %if.then.i2083, %invoke.cont.i2082
1360   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 -2)
1361           to label %invoke.cont395 unwind label %lpad381
1363 invoke.cont395:                                   ; preds = %invoke.cont392
1364   %call397 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1365           to label %invoke.cont396 unwind label %lpad381
1367 invoke.cont396:                                   ; preds = %invoke.cont395
1368   %call400 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1369           to label %invoke.cont399 unwind label %lpad398
1371 invoke.cont399:                                   ; preds = %invoke.cont396
1372   %call403 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
1373           to label %invoke.cont402 unwind label %lpad401
1375 invoke.cont402:                                   ; preds = %invoke.cont399
1376   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1377           to label %invoke.cont.i2088 unwind label %lpad.i2090
1379 invoke.cont.i2088:                                ; preds = %invoke.cont402
1380   br i1 %arg, label %invoke.cont405, label %if.then.i2089
1382 if.then.i2089:                                    ; preds = %invoke.cont.i2088
1383   br label %invoke.cont405
1385 lpad.i2090:                                       ; preds = %invoke.cont402
1386   %tmp370 = landingpad { ptr, i32 }
1387           cleanup
1388   unreachable
1390 invoke.cont405:                                   ; preds = %if.then.i2089, %invoke.cont.i2088
1391   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 -1)
1392           to label %invoke.cont408 unwind label %lpad381
1394 invoke.cont408:                                   ; preds = %invoke.cont405
1395   %call410 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1396           to label %invoke.cont409 unwind label %lpad381
1398 invoke.cont409:                                   ; preds = %invoke.cont408
1399   %call413 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1400           to label %invoke.cont412 unwind label %lpad411
1402 invoke.cont412:                                   ; preds = %invoke.cont409
1403   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1404           to label %invoke.cont.i2094 unwind label %lpad.i2096
1406 invoke.cont.i2094:                                ; preds = %invoke.cont412
1407   br i1 %arg, label %invoke.cont418, label %if.then.i2095
1409 if.then.i2095:                                    ; preds = %invoke.cont.i2094
1410   br label %invoke.cont418
1412 lpad.i2096:                                       ; preds = %invoke.cont412
1413   %tmp380 = landingpad { ptr, i32 }
1414           cleanup
1415   unreachable
1417 invoke.cont418:                                   ; preds = %if.then.i2095, %invoke.cont.i2094
1418   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, i32 0)
1419           to label %invoke.cont422 unwind label %lpad381
1421 invoke.cont422:                                   ; preds = %invoke.cont418
1422   %call424 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1423           to label %invoke.cont423 unwind label %lpad381
1425 invoke.cont423:                                   ; preds = %invoke.cont422
1426   %call427 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1427           to label %invoke.cont426 unwind label %lpad425
1429 invoke.cont426:                                   ; preds = %invoke.cont423
1430   %call430 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
1431           to label %invoke.cont429 unwind label %lpad428
1433 invoke.cont429:                                   ; preds = %invoke.cont426
1434   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1435           to label %invoke.cont.i2100 unwind label %lpad.i2102
1437 invoke.cont.i2100:                                ; preds = %invoke.cont429
1438   br i1 %arg, label %invoke.cont432, label %if.then.i2101
1440 if.then.i2101:                                    ; preds = %invoke.cont.i2100
1441   br label %invoke.cont432
1443 lpad.i2102:                                       ; preds = %invoke.cont429
1444   %tmp390 = landingpad { ptr, i32 }
1445           cleanup
1446   unreachable
1448 invoke.cont432:                                   ; preds = %if.then.i2101, %invoke.cont.i2100
1449   %call436 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 0)
1450           to label %invoke.cont435 unwind label %lpad381
1452 invoke.cont435:                                   ; preds = %invoke.cont432
1453   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1454           to label %invoke.cont.i2106 unwind label %lpad.i2108
1456 invoke.cont.i2106:                                ; preds = %invoke.cont435
1457   %call444 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 5)
1458           to label %invoke.cont443 unwind label %lpad381
1460 lpad.i2108:                                       ; preds = %invoke.cont435
1461   %tmp396 = landingpad { ptr, i32 }
1462           cleanup
1463   unreachable
1465 invoke.cont443:                                   ; preds = %invoke.cont.i2106
1466   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1467           to label %invoke.cont.i2112 unwind label %lpad.i2114
1469 invoke.cont.i2112:                                ; preds = %invoke.cont443
1470   br i1 %arg, label %invoke.cont449, label %if.then.i2113
1472 if.then.i2113:                                    ; preds = %invoke.cont.i2112
1473   br label %invoke.cont449
1475 lpad.i2114:                                       ; preds = %invoke.cont443
1476   %tmp402 = landingpad { ptr, i32 }
1477           cleanup
1478   unreachable
1480 invoke.cont449:                                   ; preds = %if.then.i2113, %invoke.cont.i2112
1481   %call453 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 -2)
1482           to label %invoke.cont452 unwind label %lpad381
1484 invoke.cont452:                                   ; preds = %invoke.cont449
1485   %call456 = invoke i32 @objc_msgSend(ptr undef, ptr undef)
1486           to label %invoke.cont455 unwind label %lpad454
1488 invoke.cont455:                                   ; preds = %invoke.cont452
1489   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1490           to label %invoke.cont.i2118 unwind label %lpad.i2120
1492 invoke.cont.i2118:                                ; preds = %invoke.cont455
1493   br i1 %arg, label %invoke.cont458, label %if.then.i2119
1495 if.then.i2119:                                    ; preds = %invoke.cont.i2118
1496   br label %invoke.cont458
1498 lpad.i2120:                                       ; preds = %invoke.cont455
1499   %tmp408 = landingpad { ptr, i32 }
1500           cleanup
1501   unreachable
1503 invoke.cont458:                                   ; preds = %if.then.i2119, %invoke.cont.i2118
1504   %call461 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 -1)
1505           to label %invoke.cont460 unwind label %lpad381
1507 invoke.cont460:                                   ; preds = %invoke.cont458
1508   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1509           to label %invoke.cont.i2124 unwind label %lpad.i2126
1511 invoke.cont.i2124:                                ; preds = %invoke.cont460
1512   br i1 %arg, label %invoke.cont466, label %if.then.i2125
1514 if.then.i2125:                                    ; preds = %invoke.cont.i2124
1515   br label %invoke.cont466
1517 lpad.i2126:                                       ; preds = %invoke.cont460
1518   %tmp414 = landingpad { ptr, i32 }
1519           cleanup
1520   br label %ehcleanup477
1522 invoke.cont466:                                   ; preds = %if.then.i2125, %invoke.cont.i2124
1523   %call470 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 0)
1524           to label %invoke.cont469 unwind label %lpad381
1526 invoke.cont469:                                   ; preds = %invoke.cont466
1527   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1528           to label %invoke.cont.i2130 unwind label %lpad.i2132
1530 invoke.cont.i2130:                                ; preds = %invoke.cont469
1531   br i1 %arg, label %invoke.cont475, label %if.then.i2131
1533 if.then.i2131:                                    ; preds = %invoke.cont.i2130
1534   br label %invoke.cont475
1536 lpad.i2132:                                       ; preds = %invoke.cont469
1537   %tmp420 = landingpad { ptr, i32 }
1538           cleanup
1539   br label %ehcleanup477
1541 invoke.cont475:                                   ; preds = %if.then.i2131, %invoke.cont.i2130
1542   %call491 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 1)
1543           to label %invoke.cont490 unwind label %lpad489
1545 invoke.cont490:                                   ; preds = %invoke.cont475
1546   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1547           to label %invoke.cont499 unwind label %lpad498
1549 invoke.cont499:                                   ; preds = %invoke.cont490
1550   %call504 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1551           to label %invoke.cont503 unwind label %lpad489
1553 invoke.cont503:                                   ; preds = %invoke.cont499
1554   %call507 = invoke ptr @objc_msgSend(ptr undef, ptr undef, i32 3)
1555           to label %invoke.cont506 unwind label %lpad505
1557 invoke.cont506:                                   ; preds = %invoke.cont503
1558   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1559           to label %invoke.cont509 unwind label %lpad508
1561 invoke.cont509:                                   ; preds = %invoke.cont506
1562   %call513 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1563           to label %invoke.cont512 unwind label %lpad489
1565 invoke.cont512:                                   ; preds = %invoke.cont509
1566   br i1 %arg, label %msgSend.null-receiver, label %msgSend.call
1568 msgSend.call:                                     ; preds = %invoke.cont512
1569   invoke void @objc_msgSend_stret(ptr sret(%struct.CGPoint) undef, ptr undef, ptr undef)
1570           to label %msgSend.cont unwind label %lpad514
1572 msgSend.null-receiver:                            ; preds = %invoke.cont512
1573   br label %msgSend.cont
1575 msgSend.cont:                                     ; preds = %msgSend.null-receiver, %msgSend.call
1576   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1577           to label %invoke.cont.i2136 unwind label %lpad.i2138
1579 invoke.cont.i2136:                                ; preds = %msgSend.cont
1580   br i1 %arg, label %invoke.cont521, label %if.then.i2137
1582 if.then.i2137:                                    ; preds = %invoke.cont.i2136
1583   br label %invoke.cont521
1585 lpad.i2138:                                       ; preds = %msgSend.cont
1586   %tmp468 = landingpad { ptr, i32 }
1587           cleanup
1588   unreachable
1590 invoke.cont521:                                   ; preds = %if.then.i2137, %invoke.cont.i2136
1591   invoke void @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef)
1592           to label %invoke.cont528 unwind label %lpad527
1594 invoke.cont528:                                   ; preds = %invoke.cont521
1595   %call532 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1596           to label %invoke.cont531 unwind label %lpad489
1598 invoke.cont531:                                   ; preds = %invoke.cont528
1599   %call535 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1600           to label %invoke.cont534 unwind label %lpad533
1602 invoke.cont534:                                   ; preds = %invoke.cont531
1603   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr undef, ptr @_unnamed_cfstring)
1604           to label %invoke.cont.i2142 unwind label %lpad.i2144
1606 invoke.cont.i2142:                                ; preds = %invoke.cont534
1607   br i1 %arg, label %invoke.cont540, label %if.then.i2143
1609 if.then.i2143:                                    ; preds = %invoke.cont.i2142
1610   br label %invoke.cont540
1612 lpad.i2144:                                       ; preds = %invoke.cont534
1613   %tmp486 = landingpad { ptr, i32 }
1614           cleanup
1615   unreachable
1617 invoke.cont540:                                   ; preds = %if.then.i2143, %invoke.cont.i2142
1618   %call544 = invoke ptr @objc_msgSend(ptr @_unnamed_cfstring, ptr undef, i32 3)
1619           to label %invoke.cont543 unwind label %lpad489
1621 invoke.cont543:                                   ; preds = %invoke.cont540
1622   invoke void @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, ptr undef)
1623           to label %invoke.cont546 unwind label %lpad545
1625 invoke.cont546:                                   ; preds = %invoke.cont543
1626   %call549 = invoke ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1627           to label %invoke.cont548 unwind label %lpad489
1629 invoke.cont548:                                   ; preds = %invoke.cont546
1630   %call555 = invoke signext i8 @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring)
1631           to label %invoke.cont554 unwind label %lpad553
1633 invoke.cont554:                                   ; preds = %invoke.cont548
1634   %tmp499 = call ptr @llvm.objc.retain(ptr @_unnamed_cfstring) #3
1635   invoke void (ptr, ...) @NSLog(ptr @_unnamed_cfstring, ptr %tmp499, ptr @_unnamed_cfstring)
1636           to label %invoke.cont.i2148 unwind label %lpad.i2150
1638 invoke.cont.i2148:                                ; preds = %invoke.cont554
1639   call void @llvm.objc.release(ptr %tmp499) #3, !clang.imprecise_release !0
1640   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1641           to label %invoke.cont566 unwind label %lpad565
1643 lpad.i2150:                                       ; preds = %invoke.cont554
1644   %tmp500 = landingpad { ptr, i32 }
1645           cleanup
1646   call void @llvm.objc.release(ptr %tmp499) #3, !clang.imprecise_release !0
1647   unreachable
1649 invoke.cont566:                                   ; preds = %invoke.cont.i2148
1650   invoke void @objc_msgSend(ptr undef, ptr undef, ptr undef, ptr @_unnamed_cfstring)
1651           to label %invoke.cont572 unwind label %lpad571
1653 invoke.cont572:                                   ; preds = %invoke.cont566
1654   %call582 = invoke ptr @objc_msgSend(ptr undef, ptr undef)
1655           to label %invoke.cont581 unwind label %lpad580
1657 invoke.cont581:                                   ; preds = %invoke.cont572
1658   unreachable
1660 lpad156.body:                                     ; preds = %invoke.cont117
1661   %tmp1157 = landingpad { ptr, i32 }
1662           cleanup
1663   unreachable
1665 lpad164.body:                                     ; preds = %invoke.cont157
1666   %tmp1158 = landingpad { ptr, i32 }
1667           cleanup
1668   unreachable
1670 lpad183:                                          ; preds = %invoke.cont184, %invoke.cont165
1671   %tmp1159 = landingpad { ptr, i32 }
1672           cleanup
1673   br label %lpad183.body
1675 lpad183.body:                                     ; preds = %lpad183, %lpad.i2036
1676   unreachable
1678 lpad196:                                          ; preds = %invoke.cont190
1679   %tmp1160 = landingpad { ptr, i32 }
1680           cleanup
1681   unreachable
1683 lpad200:                                          ; preds = %invoke.cont197
1684   %tmp1161 = landingpad { ptr, i32 }
1685           cleanup
1686   unreachable
1688 lpad203:                                          ; preds = %invoke.cont207, %invoke.cont201
1689   %tmp1162 = landingpad { ptr, i32 }
1690           cleanup
1691   unreachable
1693 lpad212.body:                                     ; preds = %invoke.cont208
1694   %tmp1163 = landingpad { ptr, i32 }
1695           cleanup
1696   unreachable
1698 lpad220:                                          ; preds = %invoke.cont213
1699   %tmp1164 = landingpad { ptr, i32 }
1700           cleanup
1701   br label %eh.resume
1703 lpad227:                                          ; preds = %invoke.cont231, %invoke.cont221
1704   %tmp1166 = landingpad { ptr, i32 }
1705           cleanup
1706   br label %ehcleanup239
1708 lpad236.body:                                     ; preds = %invoke.cont232
1709   %tmp1167 = landingpad { ptr, i32 }
1710           cleanup
1711   br label %ehcleanup239
1713 ehcleanup239:                                     ; preds = %lpad236.body, %lpad227
1714   unreachable
1716 lpad244:                                          ; preds = %invoke.cont245, %invoke.cont237
1717   %tmp1168 = landingpad { ptr, i32 }
1718           cleanup
1719   unreachable
1721 lpad249:                                          ; preds = %invoke.cont247
1722   %tmp1169 = landingpad { ptr, i32 }
1723           cleanup
1724   unreachable
1726 lpad252:                                          ; preds = %invoke.cont250
1727   %tmp1170 = landingpad { ptr, i32 }
1728           cleanup
1729   br label %ehcleanup263
1731 lpad255:                                          ; preds = %invoke.cont253
1732   %tmp1171 = landingpad { ptr, i32 }
1733           cleanup
1734   br label %ehcleanup263
1736 lpad258:                                          ; preds = %invoke.cont256
1737   %tmp1172 = landingpad { ptr, i32 }
1738           cleanup
1739   unreachable
1741 ehcleanup263:                                     ; preds = %lpad255, %lpad252
1742   unreachable
1744 lpad265:                                          ; preds = %invoke.cont259
1745   %tmp1173 = landingpad { ptr, i32 }
1746           cleanup
1747   unreachable
1749 lpad273:                                          ; preds = %invoke.cont266
1750   %tmp1175 = landingpad { ptr, i32 }
1751           cleanup
1752   unreachable
1754 lpad277:                                          ; preds = %invoke.cont274
1755   %tmp1176 = landingpad { ptr, i32 }
1756           cleanup
1757   unreachable
1759 lpad289:                                          ; preds = %invoke.cont281
1760   %tmp1177 = landingpad { ptr, i32 }
1761           cleanup
1762   unreachable
1764 lpad301:                                          ; preds = %invoke.cont290
1765   %tmp1180 = landingpad { ptr, i32 }
1766           cleanup
1767   unreachable
1769 lpad308:                                          ; preds = %invoke.cont302
1770   %tmp1182 = landingpad { ptr, i32 }
1771           cleanup
1772   unreachable
1774 lpad311:                                          ; preds = %invoke.cont309
1775   %tmp1183 = landingpad { ptr, i32 }
1776           cleanup
1777   unreachable
1779 lpad314:                                          ; preds = %invoke.cont312
1780   %tmp1184 = landingpad { ptr, i32 }
1781           cleanup
1782   unreachable
1784 lpad320:                                          ; preds = %invoke.cont315
1785   %tmp1186 = landingpad { ptr, i32 }
1786           cleanup
1787   unreachable
1789 lpad340.body.thread:                              ; preds = %land.rhs335
1790   %tmp1188 = landingpad { ptr, i32 }
1791           cleanup
1792   unreachable
1794 lpad340.body:                                     ; preds = %land.end344
1795   %tmp1189 = landingpad { ptr, i32 }
1796           cleanup
1797   unreachable
1799 lpad360:                                          ; preds = %invoke.cont345
1800   %tmp1191 = landingpad { ptr, i32 }
1801           cleanup
1802   br label %eh.resume
1804 lpad363:                                          ; preds = %invoke.cont373, %invoke.cont361
1805   %tmp1192 = landingpad { ptr, i32 }
1806           cleanup
1807   unreachable
1809 lpad369:                                          ; preds = %invoke.cont364
1810   %tmp1194 = landingpad { ptr, i32 }
1811           cleanup
1812   unreachable
1814 lpad381:                                          ; preds = %invoke.cont466, %invoke.cont458, %invoke.cont449, %invoke.cont.i2106, %invoke.cont432, %invoke.cont422, %invoke.cont418, %invoke.cont408, %invoke.cont405, %invoke.cont395, %invoke.cont392, %invoke.cont382, %invoke.cont376
1815   %tmp1196 = landingpad { ptr, i32 }
1816           cleanup
1817   br label %ehcleanup477
1819 lpad398:                                          ; preds = %invoke.cont396
1820   %tmp1199 = landingpad { ptr, i32 }
1821           cleanup
1822   unreachable
1824 lpad401:                                          ; preds = %invoke.cont399
1825   %tmp1200 = landingpad { ptr, i32 }
1826           cleanup
1827   unreachable
1829 lpad411:                                          ; preds = %invoke.cont409
1830   %tmp1201 = landingpad { ptr, i32 }
1831           cleanup
1832   unreachable
1834 lpad425:                                          ; preds = %invoke.cont423
1835   %tmp1203 = landingpad { ptr, i32 }
1836           cleanup
1837   br label %ehcleanup477
1839 lpad428:                                          ; preds = %invoke.cont426
1840   %tmp1204 = landingpad { ptr, i32 }
1841           cleanup
1842   unreachable
1844 lpad454:                                          ; preds = %invoke.cont452
1845   %tmp1207 = landingpad { ptr, i32 }
1846           cleanup
1847   unreachable
1849 ehcleanup477:                                     ; preds = %lpad425, %lpad381, %lpad.i2132, %lpad.i2126
1850   unreachable
1852 lpad489:                                          ; preds = %invoke.cont546, %invoke.cont540, %invoke.cont528, %invoke.cont509, %invoke.cont499, %invoke.cont475
1853   %tmp1211 = landingpad { ptr, i32 }
1854           cleanup
1855   br label %ehcleanup560
1857 lpad498:                                          ; preds = %invoke.cont490
1858   %tmp1214 = landingpad { ptr, i32 }
1859           cleanup
1860   unreachable
1862 lpad505:                                          ; preds = %invoke.cont503
1863   %tmp1215 = landingpad { ptr, i32 }
1864           cleanup
1865   unreachable
1867 lpad508:                                          ; preds = %invoke.cont506
1868   %tmp1216 = landingpad { ptr, i32 }
1869           cleanup
1870   unreachable
1872 lpad514:                                          ; preds = %msgSend.call
1873   %tmp1217 = landingpad { ptr, i32 }
1874           cleanup
1875   unreachable
1877 lpad527:                                          ; preds = %invoke.cont521
1878   %tmp1219 = landingpad { ptr, i32 }
1879           cleanup
1880   br label %ehcleanup560
1882 lpad533:                                          ; preds = %invoke.cont531
1883   %tmp1220 = landingpad { ptr, i32 }
1884           cleanup
1885   unreachable
1887 lpad545:                                          ; preds = %invoke.cont543
1888   %tmp1222 = landingpad { ptr, i32 }
1889           cleanup
1890   unreachable
1892 lpad553:                                          ; preds = %invoke.cont548
1893   %tmp1224 = landingpad { ptr, i32 }
1894           cleanup
1895   unreachable
1897 ehcleanup560:                                     ; preds = %lpad527, %lpad489
1898   br label %eh.resume
1900 lpad565:                                          ; preds = %invoke.cont.i2148
1901   %tmp1225 = landingpad { ptr, i32 }
1902           cleanup
1903   unreachable
1905 lpad571:                                          ; preds = %invoke.cont566
1906   %tmp1227 = landingpad { ptr, i32 }
1907           cleanup
1908   unreachable
1910 lpad580:                                          ; preds = %invoke.cont572
1911   %tmp1228 = landingpad { ptr, i32 }
1912           cleanup
1913   br label %eh.resume
1915 eh.resume:                                        ; preds = %lpad580, %ehcleanup560, %lpad360, %lpad220
1916   resume { ptr, i32 } undef
1919 @"OBJC_EHTYPE_$_NSException" = external global i8
1921 define void @test4(i1 %arg) personality ptr @__objc_personality_v0 {
1922 entry:
1923   br i1 %arg, label %if.end13, label %if.then10
1925 if.then10:                                        ; preds = %entry
1926   br label %if.end13
1928 if.end13:                                         ; preds = %if.then10, %entry
1929   %0 = call ptr @objc_msgSend(ptr undef, ptr undef, ptr @_unnamed_cfstring, i64 2, ptr @_unnamed_cfstring_2, i8 signext 0), !clang.arc.no_objc_arc_exceptions !0
1930   br i1 %arg, label %if.then17, label %if.end18
1932 if.then17:                                        ; preds = %if.end13
1933   br label %if.end18
1935 if.end18:                                         ; preds = %if.then17, %if.end13
1936   br i1 %arg, label %if.then64, label %if.end73
1938 if.then64:                                        ; preds = %if.end18
1939   br i1 %arg, label %cond.end71, label %cond.true68
1941 cond.true68:                                      ; preds = %if.then64
1942   br label %cond.end71
1944 cond.end71:                                       ; preds = %cond.true68, %if.then64
1945   br i1 %arg, label %cleanup.action, label %cleanup.done
1947 cleanup.action:                                   ; preds = %cond.end71
1948   br label %cleanup.done
1950 cleanup.done:                                     ; preds = %cleanup.action, %cond.end71
1951   br label %if.end73
1953 if.end73:                                         ; preds = %cleanup.done, %if.end18
1954   br i1 %arg, label %forcoll.empty, label %forcoll.loopinit
1956 forcoll.loopinit:                                 ; preds = %if.end73
1957   br label %forcoll.loopbody.outer
1959 forcoll.loopbody.outer:                           ; preds = %forcoll.refetch, %forcoll.loopinit
1960   br label %forcoll.loopbody
1962 forcoll.loopbody:                                 ; preds = %forcoll.notmutated, %forcoll.loopbody.outer
1963   br i1 %arg, label %forcoll.notmutated, label %forcoll.mutated
1965 forcoll.mutated:                                  ; preds = %forcoll.loopbody
1966   br label %forcoll.notmutated
1968 forcoll.notmutated:                               ; preds = %forcoll.mutated, %forcoll.loopbody
1969   br i1 %arg, label %forcoll.loopbody, label %forcoll.refetch
1971 forcoll.refetch:                                  ; preds = %forcoll.notmutated
1972   br i1 %arg, label %forcoll.empty, label %forcoll.loopbody.outer
1974 forcoll.empty:                                    ; preds = %forcoll.refetch, %if.end73
1975   br i1 %arg, label %if.end85, label %if.then82
1977 if.then82:                                        ; preds = %forcoll.empty
1978   br label %if.end85
1980 if.end85:                                         ; preds = %if.then82, %forcoll.empty
1981   br i1 %arg, label %if.then87, label %if.end102
1983 if.then87:                                        ; preds = %if.end85
1984   br i1 %arg, label %if.end94, label %if.then91
1986 if.then91:                                        ; preds = %if.then87
1987   br label %if.end94
1989 if.end94:                                         ; preds = %if.then91, %if.then87
1990   br i1 %arg, label %if.end101, label %if.then98
1992 if.then98:                                        ; preds = %if.end94
1993   br label %if.end101
1995 if.end101:                                        ; preds = %if.then98, %if.end94
1996   br label %if.end102
1998 if.end102:                                        ; preds = %if.end101, %if.end85
1999   br i1 %arg, label %do.body113, label %if.then107
2001 if.then107:                                       ; preds = %if.end102
2002   br label %do.body113
2004 do.body113:                                       ; preds = %if.then107, %if.end102
2005   br i1 %arg, label %if.then116, label %if.end117
2007 if.then116:                                       ; preds = %do.body113
2008   br label %if.end117
2010 if.end117:                                        ; preds = %if.then116, %do.body113
2011   br i1 %arg, label %if.then125, label %if.end126
2013 if.then125:                                       ; preds = %if.end117
2014   br label %if.end126
2016 if.end126:                                        ; preds = %if.then125, %if.end117
2017   br i1 %arg, label %do.end166, label %cond.true132
2019 cond.true132:                                     ; preds = %if.end126
2020   br i1 %arg, label %do.body148, label %cond.true151
2022 do.body148:                                       ; preds = %cond.true132
2023   br i1 %arg, label %do.end166, label %cond.true151
2025 cond.true151:                                     ; preds = %do.body148, %cond.true132
2026   br i1 %arg, label %if.then162, label %do.end166
2028 if.then162:                                       ; preds = %cond.true151
2029   br label %do.end166
2031 do.end166:                                        ; preds = %if.then162, %cond.true151, %do.body148, %if.end126
2032   br i1 %arg, label %if.then304, label %if.then170
2034 if.then170:                                       ; preds = %do.end166
2035   br i1 %arg, label %do.end193, label %cond.true179
2037 cond.true179:                                     ; preds = %if.then170
2038   br i1 %arg, label %if.then190, label %do.end193
2040 if.then190:                                       ; preds = %cond.true179
2041   br label %do.end193
2043 do.end193:                                        ; preds = %if.then190, %cond.true179, %if.then170
2044   br i1 %arg, label %do.body200, label %do.body283
2046 do.body200:                                       ; preds = %do.end193
2047   br i1 %arg, label %do.end254, label %cond.true203
2049 cond.true203:                                     ; preds = %do.body200
2050   br i1 %arg, label %do.body218, label %cond.true221
2052 do.body218:                                       ; preds = %cond.true203
2053   br i1 %arg, label %do.end254, label %cond.true221
2055 cond.true221:                                     ; preds = %do.body218, %cond.true203
2056   br i1 %arg, label %if.then232, label %do.body236
2058 if.then232:                                       ; preds = %cond.true221
2059   br label %do.body236
2061 do.body236:                                       ; preds = %if.then232, %cond.true221
2062   br i1 %arg, label %do.end254, label %cond.true239
2064 cond.true239:                                     ; preds = %do.body236
2065   br i1 %arg, label %if.then250, label %do.end254
2067 if.then250:                                       ; preds = %cond.true239
2068   br label %do.end254
2070 do.end254:                                        ; preds = %if.then250, %cond.true239, %do.body236, %do.body218, %do.body200
2071   br i1 %arg, label %do.end277, label %cond.true263
2073 cond.true263:                                     ; preds = %do.end254
2074   br i1 %arg, label %if.then274, label %do.end277
2076 if.then274:                                       ; preds = %cond.true263
2077   unreachable
2079 do.end277:                                        ; preds = %cond.true263, %do.end254
2080   br i1 %arg, label %if.then280, label %do.body283
2082 if.then280:                                       ; preds = %do.end277
2083   br label %do.body283
2085 do.body283:                                       ; preds = %if.then280, %do.end277, %do.end193
2086   br i1 %arg, label %if.end301, label %cond.true286
2088 cond.true286:                                     ; preds = %do.body283
2089   br i1 %arg, label %if.then297, label %if.end301
2091 if.then297:                                       ; preds = %cond.true286
2092   br label %if.end301
2094 if.end301:                                        ; preds = %if.then297, %cond.true286, %do.body283
2095   br i1 %arg, label %if.then304, label %do.body351
2097 if.then304:                                       ; preds = %if.end301, %do.end166
2098   br i1 %arg, label %do.body309.lr.ph, label %do.body351
2100 do.body309.lr.ph:                                 ; preds = %if.then304
2101   br label %do.body309
2103 do.body309:                                       ; preds = %for.cond.backedge, %do.body309.lr.ph
2104   br i1 %arg, label %do.end328, label %cond.true312
2106 cond.true312:                                     ; preds = %do.body309
2107   br i1 %arg, label %if.then323, label %do.end328
2109 if.then323:                                       ; preds = %cond.true312
2110   br label %do.end328
2112 do.end328:                                        ; preds = %if.then323, %cond.true312, %do.body309
2113   br i1 %arg, label %for.cond.backedge, label %cond.true335
2115 for.cond.backedge:                                ; preds = %if.then346, %cond.true335, %do.end328
2116   br i1 %arg, label %do.body309, label %do.body351
2118 cond.true335:                                     ; preds = %do.end328
2119   br i1 %arg, label %if.then346, label %for.cond.backedge
2121 if.then346:                                       ; preds = %cond.true335
2122   br label %for.cond.backedge
2124 do.body351:                                       ; preds = %for.cond.backedge, %if.then304, %if.end301
2125   br i1 %arg, label %if.then354, label %if.end355
2127 if.then354:                                       ; preds = %do.body351
2128   br label %if.end355
2130 if.end355:                                        ; preds = %if.then354, %do.body351
2131   br i1 %arg, label %if.else, label %if.then364
2133 if.then364:                                       ; preds = %if.end355
2134   br label %do.body366
2136 if.else:                                          ; preds = %if.end355
2137   br label %do.body366
2139 do.body366:                                       ; preds = %if.else, %if.then364
2140   br i1 %arg, label %if.then369, label %if.end377.critedge
2142 if.then369:                                       ; preds = %do.body366
2143   br label %if.end377
2145 if.end377.critedge:                               ; preds = %do.body366
2146   br label %if.end377
2148 if.end377:                                        ; preds = %if.end377.critedge, %if.then369
2149   br i1 %arg, label %if.then383, label %if.end392.critedge
2151 if.then383:                                       ; preds = %if.end377
2152   br label %if.end392
2154 if.end392.critedge:                               ; preds = %if.end377
2155   br label %if.end392
2157 if.end392:                                        ; preds = %if.end392.critedge, %if.then383
2158   br i1 %arg, label %if.then398, label %if.end399
2160 if.then398:                                       ; preds = %if.end392
2161   br label %if.end399
2163 if.end399:                                        ; preds = %if.then398, %if.end392
2164   invoke void @objc_msgSend(ptr undef, ptr undef)
2165           to label %eh.cont unwind label %lpad, !clang.arc.no_objc_arc_exceptions !0
2167 eh.cont:                                          ; preds = %if.end399
2168   br i1 %arg, label %if.then430, label %if.end439.critedge
2170 if.then430:                                       ; preds = %eh.cont
2171   %1 = call ptr @llvm.objc.retain(ptr %0)
2172   br label %if.end439
2174 lpad:                                             ; preds = %if.end399
2175   %2 = landingpad { ptr, i32 }
2176           catch ptr @"OBJC_EHTYPE_$_NSException"
2177   unreachable
2179 if.end439.critedge:                               ; preds = %eh.cont
2180   %3 = call ptr @llvm.objc.retain(ptr %0)
2181   br label %if.end439
2183 if.end439:                                        ; preds = %if.end439.critedge, %if.then430
2184   call void @llvm.objc.release(ptr %0), !clang.imprecise_release !0
2185   unreachable
2187 return:                                           ; No predecessors!
2188   ret void
2192 !0 = !{}