xref: /llvm-project/llvm/test/Transforms/LoopSimplify/2011-12-14-LandingpadHeader.ll (revision 055fb7795aa219a3d274d280ec9129784f169f56)
1; RUN: opt < %s -passes=loop-simplify -S | FileCheck %s
2; PR11575
3
4@catchtypeinfo = external unnamed_addr constant { ptr, ptr, ptr }
5
6define void @main() uwtable ssp personality ptr @__gxx_personality_v0 {
7entry:
8  invoke void @f1()
9          to label %try.cont19 unwind label %catch
10
11; CHECK: catch.preheader:
12; CHECK-NEXT: landingpad
13; CHECK: br label %catch
14
15; CHECK: catch.preheader.split-lp:
16; CHECK-NEXT: landingpad
17; CHECK: br label %catch
18
19catch:                                            ; preds = %if.else, %entry
20  %0 = landingpad { ptr, i32 }
21          catch ptr @catchtypeinfo
22  invoke void @f3()
23          to label %if.else unwind label %eh.resume
24
25if.else:                                          ; preds = %catch
26  invoke void @f2()
27          to label %try.cont19 unwind label %catch
28
29try.cont19:                                       ; preds = %if.else, %entry
30  ret void
31
32eh.resume:                                        ; preds = %catch
33  %1 = landingpad { ptr, i32 }
34          cleanup
35          catch ptr @catchtypeinfo
36  resume { ptr, i32 } undef
37}
38
39declare i32 @__gxx_personality_v0(...)
40
41declare void @f1()
42
43declare void @f2()
44
45declare void @f3()
46