[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / ARM / trap.ll
blobc45f7133febebdb8d642ab859f7f6e3a639fe1c6
1 ; RUN: llc < %s -mtriple=arm-apple-darwin | FileCheck %s -check-prefix=DARWIN
2 ; RUN: llc < %s -mtriple=arm-apple-darwin -trap-func=_trap | FileCheck %s -check-prefix=FUNC
3 ; RUN: llc < %s -mtriple=arm-apple-darwin -trap-func=_trap -O0 | FileCheck %s -check-prefix=FUNC
4 ; RUN: llc < %s -mtriple=armv7 -mattr=+nacl-trap | FileCheck %s -check-prefix=NACL
5 ; RUN: llc < %s -mtriple=armv7 | FileCheck %s -check-prefix=ARM
6 ; RUN: llc < %s -mtriple=thumbv7 | FileCheck %s -check-prefix=THUMB
8 ; RUN: llc -mtriple=armv7 -mattr=+nacl-trap -filetype=obj %s -o - \
9 ; RUN:  | llvm-objdump -disassemble -triple armv7 -mattr=+nacl-trap - \
10 ; RUN:  | FileCheck %s -check-prefix=ENCODING-NACL
11 ; RUN: llc -verify-machineinstrs -fast-isel -mtriple=armv7 -mattr=+nacl-trap -filetype=obj %s -o - \
12 ; RUN:  | llvm-objdump -disassemble -triple armv7 -mattr=+nacl-trap - \
13 ; RUN:  | FileCheck %s -check-prefix=ENCODING-NACL
15 ; RUN: llc -mtriple=armv7 -filetype=obj %s -o - \
16 ; RUN:  | llvm-objdump -disassemble -triple armv7 - \
17 ; RUN:  | FileCheck %s -check-prefix=ENCODING-ARM
18 ; RUN: llc -verify-machineinstrs -fast-isel -mtriple=armv7 -filetype=obj %s -o - \
19 ; RUN:  | llvm-objdump -disassemble -triple armv7 - \
20 ; RUN:  | FileCheck %s -check-prefix=ENCODING-ARM
22 ; RUN: llc -mtriple=thumbv7 -filetype=obj %s -o - \
23 ; RUN:  | llvm-objdump -disassemble -triple thumbv7 - \
24 ; RUN:  | FileCheck %s -check-prefix=ENCODING-THUMB
25 ; RUN: llc -verify-machineinstrs -fast-isel -mtriple=thumbv7 -filetype=obj %s -o - \
26 ; RUN:  | llvm-objdump -disassemble -triple thumbv7 - \
27 ; RUN:  | FileCheck %s -check-prefix=ENCODING-THUMB
29 ; rdar://7961298
30 ; rdar://9249183
32 define void @t() nounwind {
33 entry:
34 ; DARWIN-LABEL: t:
35 ; DARWIN: trap
37 ; FUNC-LABEL: t:
38 ; FUNC: bl __trap
40 ; NACL-LABEL: t:
41 ; NACL: .inst 0xe7fedef0
43 ; ARM-LABEL: t:
44 ; ARM: .inst 0xe7ffdefe
46 ; THUMB-LABEL: t:
47 ; THUMB: .inst.n 0xdefe
49 ; ENCODING-NACL: f0 de fe e7 trap
51 ; ENCODING-ARM: fe de ff e7 trap
53 ; ENCODING-THUMB: fe de trap
55   call void @llvm.trap()
56   unreachable
59 define void @t2() nounwind {
60 entry:
61 ; DARWIN-LABEL: t2:
62 ; DARWIN: udf #254
64 ; FUNC-LABEL: t2:
65 ; FUNC: bl __trap
67 ; NACL-LABEL: t2:
68 ; NACL: bkpt #0
70 ; ARM-LABEL: t2:
71 ; ARM: bkpt #0
73 ; THUMB-LABEL: t2:
74 ; THUMB: bkpt #0
76 ; ENCODING-NACL: 70 00 20 e1 bkpt #0
78 ; ENCODING-ARM: 70 00 20 e1 bkpt #0
80 ; ENCODING-THUMB: 00 be bkpt #0
82   call void @llvm.debugtrap()
83   unreachable
86 declare void @llvm.trap() nounwind
87 declare void @llvm.debugtrap() nounwind