[ARM] Cortex-M4 schedule additions
[llvm-complete.git] / test / CodeGen / Generic / 2007-04-30-LandingPadBranchFolding.ll
blobf0259ec6b128bad8943336207dff19ff84cf4626
1 ; RUN: llc < %s 
2 ; PR1228
4         %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" = type { i8* }
5         %"struct.std::locale" = type { %"struct.std::locale::_Impl"* }
6         %"struct.std::locale::_Impl" = type { i32, %"struct.std::locale::facet"**, i32, %"struct.std::locale::facet"**, i8** }
7         %"struct.std::locale::facet" = type { i32 (...)**, i32 }
8         %"struct.std::string" = type { %"struct.std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider" }
10 define void @_ZNKSt6locale4nameEv(%"struct.std::string"* %agg.result) personality i32 (...)* @__gxx_personality_v0 {
11 entry:
12         %tmp105 = icmp eq i8* null, null                ; <i1> [#uses=1]
13         br i1 %tmp105, label %cond_true, label %cond_true222
15 cond_true:              ; preds = %entry
16         invoke void @_ZNSs14_M_replace_auxEjjjc( )
17                         to label %cond_next1328 unwind label %cond_true1402
19 cond_true222:           ; preds = %cond_true222, %entry
20         %tmp207 = call i32 @strcmp( )           ; <i32> [#uses=1]
21         %tmp208 = icmp eq i32 %tmp207, 0                ; <i1> [#uses=2]
22         %bothcond1480 = and i1 %tmp208, false           ; <i1> [#uses=1]
23         br i1 %bothcond1480, label %cond_true222, label %cond_next226.loopexit
25 cond_next226.loopexit:          ; preds = %cond_true222
26         %phitmp = xor i1 %tmp208, true          ; <i1> [#uses=1]
27         br i1 %phitmp, label %cond_false280, label %cond_true235
29 cond_true235:           ; preds = %cond_next226.loopexit
30         invoke void @_ZNSs6assignEPKcj( )
31                         to label %cond_next1328 unwind label %cond_true1402
33 cond_false280:          ; preds = %cond_next226.loopexit
34         invoke void @_ZNSs7reserveEj( )
35                         to label %invcont282 unwind label %cond_true1402
37 invcont282:             ; preds = %cond_false280
38         invoke void @_ZNSs6appendEPKcj( )
39                         to label %invcont317 unwind label %cond_true1402
41 invcont317:             ; preds = %invcont282
42         ret void
44 cond_next1328:          ; preds = %cond_true235, %cond_true
45         ret void
47 cond_true1402:          ; preds = %invcont282, %cond_false280, %cond_true235, %cond_true
48   %lpad = landingpad { i8*, i32 }
49             cleanup
50   ret void
53 declare void @_ZNSs14_M_replace_auxEjjjc()
55 declare i32 @strcmp()
57 declare void @_ZNSs6assignEPKcj()
59 declare void @_ZNSs7reserveEj()
61 declare void @_ZNSs6appendEPKcj()
63 declare i32 @__gxx_personality_v0(...)