; RUN: llc -march=hexagon -O2 -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s

; The purpose of this test is to make sure that the packetizer is ignoring
; CFI instructions while forming packet for allocframe. Refer to 7d7d99622
; which replaced PROLOG_LABEL with CFI_INSTRUCTION.

@g0 = external constant i8*

; We used to emit:
;      {
;        allocframe(#0)
;      }
;      {
;         r0 = #4
; But we can put more instructions in the first packet.

; CHECK:      {
; CHECK-NEXT:   call f1
; CHECK-NEXT:   r0 = #4
; CHECK-NEXT:   allocframe(#0)
; CHECK-NEXT: }

define i32 @f0() personality i8* bitcast (i32 (...)* @f3 to i8*) {
b0:
  %v0 = tail call i8* @f1(i32 4) #1
  %v1 = bitcast i8* %v0 to i32*
  store i32 20, i32* %v1, align 4, !tbaa !0
  invoke void @f2(i8* %v0, i8* bitcast (i8** @g0 to i8*), i8* null) #2
          to label %b4 unwind label %b1

b1:                                               ; preds = %b0
  %v2 = landingpad { i8*, i32 }
          catch i8* bitcast (i8** @g0 to i8*)
  %v3 = extractvalue { i8*, i32 } %v2, 1
  %v4 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @g0 to i8*)) #1
  %v5 = icmp eq i32 %v3, %v4
  br i1 %v5, label %b2, label %b3

b2:                                               ; preds = %b1
  %v6 = extractvalue { i8*, i32 } %v2, 0
  %v7 = tail call i8* @f4(i8* %v6) #1
  tail call void @f5() #1
  ret i32 1

b3:                                               ; preds = %b1
  resume { i8*, i32 } %v2

b4:                                               ; preds = %b0
  unreachable
}

declare i8* @f1(i32)

declare void @f2(i8*, i8*, i8*)

declare i32 @f3(...)

; Function Attrs: nounwind readnone
declare i32 @llvm.eh.typeid.for(i8*) #0

declare i8* @f4(i8*)

declare void @f5()

attributes #0 = { nounwind readnone }
attributes #1 = { nounwind }
attributes #2 = { noreturn }

!0 = !{!1, !1, i64 0}
!1 = !{!"int", !2}
!2 = !{!"omnipotent char", !3}
!3 = !{!"Simple C/C++ TBAA"}
