; RUN: opt < %s -loop-simplify -S | FileCheck %s
; PR11575

@catchtypeinfo = external unnamed_addr constant { i8*, i8*, i8* }

define void @main() uwtable ssp {
entry:
  invoke void @f1()
          to label %try.cont19 unwind label %catch

; CHECK: catch.preheader:
; CHECK-NEXT: landingpad
; CHECK: br label %catch

; CHECK: catch.split-lp:
; CHECK-NEXT: landingpad
; CHECK: br label %catch

catch:                                            ; preds = %if.else, %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
  invoke void @f3()
          to label %if.else unwind label %eh.resume

if.else:                                          ; preds = %catch
  invoke void @f2()
          to label %try.cont19 unwind label %catch

try.cont19:                                       ; preds = %if.else, %entry
  ret void

eh.resume:                                        ; preds = %catch
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
          catch i8* bitcast ({ i8*, i8*, i8* }* @catchtypeinfo to i8*)
  resume { i8*, i32 } undef
}

declare i32 @__gxx_personality_v0(...)

declare void @f1()

declare void @f2()

declare void @f3()
