blob: de96b0927563ccca54567e239c5bd622968f5f7a [file] [log] [blame]
Dan Gohman1cf96c02015-12-09 16:23:59 +00001; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s
Dan Gohman2e644382016-05-10 17:39:48 +00002; RUN: llc < %s -asm-verbose=false -fast-isel -fast-isel-abort=1 -verify-machineinstrs | FileCheck %s
Derek Schuffffa143c2015-11-10 00:30:57 +00003
4; Test that LLVM unreachable instruction and trap intrinsic are lowered to
5; wasm unreachable
6
Dan Gohman0c6f5ac2016-01-07 03:19:23 +00007target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
Dan Gohmand934cb82017-02-24 23:18:00 +00008target triple = "wasm32-unknown-unknown-wasm"
Derek Schuffffa143c2015-11-10 00:30:57 +00009
10declare void @llvm.trap()
11declare void @llvm.debugtrap()
12declare void @abort()
13
14; CHECK-LABEL: f1:
Dan Gohman26c67652016-01-11 23:38:05 +000015; CHECK: call abort@FUNCTION{{$}}
Derek Schuffffa143c2015-11-10 00:30:57 +000016; CHECK: unreachable
17define i32 @f1() {
18 call void @abort()
19 unreachable
20}
21
22; CHECK-LABEL: f2:
23; CHECK: unreachable
24define void @f2() {
25 call void @llvm.trap()
26 ret void
27}
28
29; CHECK-LABEL: f3:
30; CHECK: unreachable
31define void @f3() {
32 call void @llvm.debugtrap()
33 ret void
34}