1; RUN: opt < %s -loop-simplify -S | FileCheck %s
2; PR11575
3
4@catchtypeinfo = external unnamed_addr constant { i8*, i8*, i8* }
5
6define void @main() uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
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 { i8*, i32 }
21          catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
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 { i8*, i32 }
34          cleanup
35          catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
36  resume { i8*, i32 } undef
37}
38
39declare i32 @__gxx_personality_v0(...)
40
41declare void @f1()
42
43declare void @f2()
44
45declare void @f3()
46