xref: /aosp_15_r20/external/llvm/test/CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s
2*9880d681SAndroid Build Coastguard Worker; PR1228
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker	%"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
5*9880d681SAndroid Build Coastguard Worker	%"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
6*9880d681SAndroid Build Coastguard Worker	%"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
7*9880d681SAndroid Build Coastguard Worker	%"struct.std::locale::facet" = type { i32 (...)**, i32 }
8*9880d681SAndroid Build Coastguard Worker	%"struct.std::string" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @_ZNKSt6locale4nameEv(%"struct.std::string"* %agg.result) personality i32 (...)* @__gxx_personality_v0 {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker	%tmp105 = icmp eq i8* null, null		; <i1> [#uses=1]
13*9880d681SAndroid Build Coastguard Worker	br i1 %tmp105, label %cond_true, label %cond_true222
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workercond_true:		; preds = %entry
16*9880d681SAndroid Build Coastguard Worker	invoke void @_ZNSs14_M_replace_auxEjjjc( )
17*9880d681SAndroid Build Coastguard Worker			to label %cond_next1328 unwind label %cond_true1402
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workercond_true222:		; preds = %cond_true222, %entry
20*9880d681SAndroid Build Coastguard Worker	%tmp207 = call i32 @strcmp( )		; <i32> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	%tmp208 = icmp eq i32 %tmp207, 0		; <i1> [#uses=2]
22*9880d681SAndroid Build Coastguard Worker	%bothcond1480 = and i1 %tmp208, false		; <i1> [#uses=1]
23*9880d681SAndroid Build Coastguard Worker	br i1 %bothcond1480, label %cond_true222, label %cond_next226.loopexit
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workercond_next226.loopexit:		; preds = %cond_true222
26*9880d681SAndroid Build Coastguard Worker	%phitmp = xor i1 %tmp208, true		; <i1> [#uses=1]
27*9880d681SAndroid Build Coastguard Worker	br i1 %phitmp, label %cond_false280, label %cond_true235
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Workercond_true235:		; preds = %cond_next226.loopexit
30*9880d681SAndroid Build Coastguard Worker	invoke void @_ZNSs6assignEPKcj( )
31*9880d681SAndroid Build Coastguard Worker			to label %cond_next1328 unwind label %cond_true1402
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workercond_false280:		; preds = %cond_next226.loopexit
34*9880d681SAndroid Build Coastguard Worker	invoke void @_ZNSs7reserveEj( )
35*9880d681SAndroid Build Coastguard Worker			to label %invcont282 unwind label %cond_true1402
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Workerinvcont282:		; preds = %cond_false280
38*9880d681SAndroid Build Coastguard Worker	invoke void @_ZNSs6appendEPKcj( )
39*9880d681SAndroid Build Coastguard Worker			to label %invcont317 unwind label %cond_true1402
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Workerinvcont317:		; preds = %invcont282
42*9880d681SAndroid Build Coastguard Worker	ret void
43*9880d681SAndroid Build Coastguard Worker
44*9880d681SAndroid Build Coastguard Workercond_next1328:		; preds = %cond_true235, %cond_true
45*9880d681SAndroid Build Coastguard Worker	ret void
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workercond_true1402:		; preds = %invcont282, %cond_false280, %cond_true235, %cond_true
48*9880d681SAndroid Build Coastguard Worker  %lpad = landingpad { i8*, i32 }
49*9880d681SAndroid Build Coastguard Worker            cleanup
50*9880d681SAndroid Build Coastguard Worker  ret void
51*9880d681SAndroid Build Coastguard Worker}
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSs14_M_replace_auxEjjjc()
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Workerdeclare i32 @strcmp()
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSs6assignEPKcj()
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSs7reserveEj()
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Workerdeclare void @_ZNSs6appendEPKcj()
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
64