1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-insert-waitcnts -o - %s | FileCheck -check-prefix=GCN %s
3
4# Make sure no waitcnt is inserted for meta instruction uses.
5
6---
7
8name: waitcnt_kill
9
10body:             |
11  bb.0:
12    liveins: $vgpr0_vgpr1
13    ; GCN-LABEL: name: waitcnt_kill
14    ; GCN: liveins: $vgpr0_vgpr1
15    ; GCN-NEXT: {{  $}}
16    ; GCN-NEXT: S_WAITCNT 0
17    ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
18    ; GCN-NEXT: KILL $vgpr0
19    $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
20    KILL $vgpr0
21...
22
23---
24
25name: waitcnt_implicit_def
26
27body:             |
28  bb.0:
29    liveins: $vgpr0_vgpr1
30    ; GCN-LABEL: name: waitcnt_implicit_def
31    ; GCN: liveins: $vgpr0_vgpr1
32    ; GCN-NEXT: {{  $}}
33    ; GCN-NEXT: S_WAITCNT 0
34    ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
35    ; GCN-NEXT: $vgpr0 = IMPLICIT_DEF
36    $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
37    $vgpr0 = IMPLICIT_DEF
38...
39
40---
41
42name: waitcnt_eh_label
43
44body:             |
45  bb.0:
46    liveins: $vgpr0_vgpr1, $vgpr2
47    ; GCN-LABEL: name: waitcnt_eh_label
48    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2
49    ; GCN-NEXT: {{  $}}
50    ; GCN-NEXT: S_WAITCNT 0
51    ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
52    ; GCN-NEXT: EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0
53    $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
54    EH_LABEL <mcsymbol Ltmp0>, implicit $vgpr0
55
56...
57
58---
59
60name: waitcnt_cfi
61
62body:             |
63  bb.0:
64    liveins: $vgpr0_vgpr1, $vgpr2
65    ; GCN-LABEL: name: waitcnt_cfi
66    ; GCN: liveins: $vgpr0_vgpr1, $vgpr2
67    ; GCN-NEXT: {{  $}}
68    ; GCN-NEXT: S_WAITCNT 0
69    ; GCN-NEXT: $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
70    ; GCN-NEXT: CFI_INSTRUCTION offset $vgpr0_lo16, 16
71    $vgpr0 = GLOBAL_LOAD_DWORD $vgpr0_vgpr1, 0, 0, implicit $exec
72    CFI_INSTRUCTION offset $vgpr0, 16
73
74...
75