1; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s
2; RUN: llc < %s -asm-verbose=false -fast-isel -fast-isel-abort=1 -verify-machineinstrs | FileCheck %s
3
4; Test that LLVM unreachable instruction and trap intrinsic are lowered to
5; wasm unreachable
6
7target triple = "wasm32-unknown-unknown"
8
9declare void @llvm.trap()
10declare void @llvm.debugtrap()
11declare void @abort()
12
13; CHECK-LABEL: f1:
14; CHECK: call abort{{$}}
15; CHECK: unreachable
16define i32 @f1() {
17  call void @abort()
18  unreachable
19}
20
21; CHECK-LABEL: f2:
22; CHECK: unreachable
23define void @f2() {
24  call void @llvm.trap()
25  ret void
26}
27
28; CHECK-LABEL: f3:
29; CHECK: unreachable
30define void @f3() {
31  call void @llvm.debugtrap()
32  ret void
33}
34