blob: 2b0311283505f7f0192860f8f86cc4c86bbceb05 [file] [log] [blame]
Dan Gohman1cf96c02015-12-09 16:23:59 +00001; RUN: llc < %s -asm-verbose=false -verify-machineinstrs | FileCheck %s
2; RUN: llc < %s -asm-verbose=false -fast-isel -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"
Derek Schuffffa143c2015-11-10 00:30:57 +00008target triple = "wasm32-unknown-unknown"
9
10declare void @llvm.trap()
11declare void @llvm.debugtrap()
12declare void @abort()
13
14; CHECK-LABEL: f1:
Dan Gohmancf4748f2015-11-12 17:04:33 +000015; CHECK: call abort
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}