Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / trap.ll
blob1b1837a7c5a7a0d9915723fbb4afa60476d54ace
1 ; RUN: llc < %s -mtriple=i686-apple-darwin8 -mcpu=yonah | FileCheck %s -check-prefix=DARWIN
2 ; RUN: llc < %s -mtriple=i686-unknown-linux -mcpu=yonah | FileCheck %s -check-prefix=LINUX
3 ; RUN: llc < %s -mtriple=x86_64-scei-ps4 | FileCheck %s -check-prefix=PS4
4 ; RUN: llc < %s -mtriple=x86_64-sie-ps5  | FileCheck %s -check-prefix=PS4
5 ; RUN: llc < %s -mtriple=x86_64-windows-msvc | FileCheck %s -check-prefix=WIN64
7 ; DARWIN-LABEL: test0:
8 ; DARWIN: ud2
9 ; LINUX-LABEL: test0:
10 ; LINUX: ud2
11 ; FIXME: PS4 probably doesn't want two ud2s.
12 ; PS4-LABEL: test0:
13 ; PS4: ud2
14 ; PS4: ud2
15 ; WIN64-LABEL: test0:
16 ; WIN64: ud2
17 ; WIN64-NOT: ud2
18 define i32 @test0() noreturn nounwind  {
19 entry:
20         tail call void @llvm.trap( )
21         unreachable
24 ; DARWIN-LABEL: test1:
25 ; DARWIN: int3
26 ; LINUX-LABEL: test1:
27 ; LINUX: int3
28 ; PS4-LABEL: test1:
29 ; PS4: int     $65
30 ; WIN64-LABEL: test1:
31 ; WIN64: int3
32 ; WIN64-NOT: ud2
33 define i32 @test1() noreturn nounwind  {
34 entry:
35         tail call void @llvm.debugtrap( )
36         unreachable
39 declare void @llvm.trap() nounwind 
40 declare void @llvm.debugtrap() nounwind