Compiler projects using llvm
; RUN: opt -loop-simplifycfg -verify-memoryssa -S < %s | FileCheck %s
; REQUIRES: asserts

target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

declare i32 @eggs(...)

declare void @spam()

; CHECK-LABEL: @f()
define void @f() personality i8* bitcast (i32 (...)* @eggs to i8*) {
bb:
  invoke void @spam()
          to label %bb2 unwind label %bb4

bb2:                                              ; preds = %bb
  invoke void @spam()
          to label %bb8 unwind label %bb5

bb4:                                              ; preds = %bb
  %tmp = landingpad { i8*, i32 }
          cleanup
  resume { i8*, i32 } undef

bb5:                                              ; preds = %bb2
  %tmp6 = landingpad { i8*, i32 }
          cleanup
  unreachable

bb8:                                              ; preds = %bb13, %bb2
  br label %bb10

bb10:                                             ; preds = %bb8
  invoke void @spam()
          to label %bb11 unwind label %bb20

bb11:                                             ; preds = %bb10
  invoke void @spam()
          to label %bb12 unwind label %bb22

bb12:                                             ; preds = %bb11
  invoke void @spam()
          to label %bb13 unwind label %bb24

bb13:                                             ; preds = %bb12
  br label %bb8

bb20:                                             ; preds = %bb10
  %tmp21 = landingpad { i8*, i32 }
          cleanup
  unreachable

bb22:                                             ; preds = %bb11
  %tmp23 = landingpad { i8*, i32 }
          cleanup
  unreachable

bb24:                                             ; preds = %bb12
  %tmp25 = landingpad { i8*, i32 }
          cleanup
  unreachable
}