xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-trap.mir (revision d365a45cb3eaa640b09874fb7984a6a69683c773)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -o - %s | FileCheck -check-prefix=GCN %s
3
4# Check edge cases for trap legalization
5
6---
7name: test_fallthrough_after_trap
8body: |
9  ; GCN-LABEL: name: test_fallthrough_after_trap
10  ; GCN: bb.0:
11  ; GCN-NEXT:   successors: %bb.1(0x80000000), %bb.2(0x00000000)
12  ; GCN-NEXT: {{  $}}
13  ; GCN-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
14  ; GCN-NEXT:   [[C1:%[0-9]+]]:_(p1) = G_CONSTANT i64 0
15  ; GCN-NEXT:   S_CBRANCH_EXECNZ %bb.2, implicit $exec
16  ; GCN-NEXT: {{  $}}
17  ; GCN-NEXT: bb.1:
18  ; GCN-NEXT:   successors:
19  ; GCN-NEXT: {{  $}}
20  ; GCN-NEXT:   G_STORE [[C]](s32), [[C1]](p1) :: (store (s8), addrspace 1)
21  ; GCN-NEXT: {{  $}}
22  ; GCN-NEXT: bb.2:
23  ; GCN-NEXT:   S_ENDPGM 0
24  bb.0:
25    %0:_(s8) = G_CONSTANT i8 0
26    %1:_(p1) = G_CONSTANT i64 0
27    G_TRAP
28
29  bb.1:
30    G_STORE %0, %1 :: (store 1, addrspace 1)
31
32...
33
34---
35name: test_def_fallthrough_after_trap
36body: |
37  ; GCN-LABEL: name: test_def_fallthrough_after_trap
38  ; GCN: bb.0:
39  ; GCN-NEXT:   successors: %bb.2(0x40000000), %bb.3(0x40000000)
40  ; GCN-NEXT: {{  $}}
41  ; GCN-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
42  ; GCN-NEXT:   S_CBRANCH_EXECNZ %bb.3, implicit $exec
43  ; GCN-NEXT: {{  $}}
44  ; GCN-NEXT: bb.2:
45  ; GCN-NEXT:   successors: %bb.1(0x80000000)
46  ; GCN-NEXT: {{  $}}
47  ; GCN-NEXT:   [[C1:%[0-9]+]]:_(p1) = G_CONSTANT i64 0
48  ; GCN-NEXT: {{  $}}
49  ; GCN-NEXT: bb.1:
50  ; GCN-NEXT:   successors:
51  ; GCN-NEXT: {{  $}}
52  ; GCN-NEXT:   G_STORE [[C]](s32), [[C1]](p1) :: (store (s8), addrspace 1)
53  ; GCN-NEXT: {{  $}}
54  ; GCN-NEXT: bb.3:
55  ; GCN-NEXT:   S_ENDPGM 0
56  bb.0:
57    %0:_(s8) = G_CONSTANT i8 0
58    G_TRAP
59    %1:_(p1) = G_CONSTANT i64 0
60
61  bb.1:
62    G_STORE %0, %1 :: (store 1, addrspace 1)
63
64...
65