; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s

; Test lowering of __builtin_debugtrap in cases where lowering it via
; the normal UNREACHABLE instruction would yield invalid
; MachineFunctions.

target triple = "wasm32"

declare void @llvm.debugtrap()

; CHECK-LABEL: foo:
; CHECK-NEXT: .functype       foo (i32) -> ()
; CHECK-NEXT: .LBB0_1:
; CHECK-NEXT: loop
; CHECK-NEXT: unreachable
; CHECK-NEXT: i32.const       0
; CHECK-NEXT: br_if           0
; CHECK-NEXT: end_loop
; CHECK-NEXT: end_function
define void @foo(i32 %g) {
entry:
  br label %for.body

for.body:
  call void @llvm.debugtrap()
  %exitcond = icmp eq i32 undef, %g
  br i1 %exitcond, label %for.cond.cleanup, label %for.body

for.cond.cleanup:
  ret void
}

; CHECK-LABEL: middle_of_block:
; CHECK-NEXT: .functype       middle_of_block (i32, i32) -> (i32)
; CHECK-NEXT: unreachable
; CHECK-NEXT: local.get       0
; CHECK-NEXT: local.get       1
; CHECK-NEXT: i32.add
; CHECK-NEXT: end_function
define i32 @middle_of_block(i32 %x, i32 %y) {
  %r = add i32 %x, %y
  call void @llvm.debugtrap()
  ret i32 %r
}

; CHECK-LABEL: really_middle_of_block:
; CHECK-NEXT: .functype       really_middle_of_block () -> (i32)
; CHECK-NEXT: call    bar
; CHECK-NEXT: drop
; CHECK-NEXT: unreachable
; CHECK-NEXT: call    bar
; CHECK-NEXT: end_function
declare i32 @bar()
define i32 @really_middle_of_block() {
  %x = call i32 @bar()
  call void @llvm.debugtrap()
  %r = call i32 @bar()
  ret i32 %r
}
