1// RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GFX9 %s
2
3//===----------------------------------------------------------------------===//
4// s_waitcnt
5//===----------------------------------------------------------------------===//
6
7s_waitcnt 0
8// GFX9: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
9
10s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)
11// GFX9: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
12
13s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14// GFX9: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
15
16s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0)
17// GFX9: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
18
19s_waitcnt vmcnt(1)
20// GFX9: s_waitcnt vmcnt(1) ; encoding: [0x71,0x0f,0x8c,0xbf]
21
22s_waitcnt vmcnt(9)
23// GFX9: s_waitcnt vmcnt(9) ; encoding: [0x79,0x0f,0x8c,0xbf]
24
25s_waitcnt expcnt(2)
26// GFX9: s_waitcnt expcnt(2) ; encoding: [0x2f,0xcf,0x8c,0xbf]
27
28s_waitcnt lgkmcnt(3)
29// GFX9: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0xc3,0x8c,0xbf]
30
31s_waitcnt lgkmcnt(9)
32// GFX9: s_waitcnt lgkmcnt(9) ; encoding: [0x7f,0xc9,0x8c,0xbf]
33
34s_waitcnt vmcnt(0), expcnt(0)
35// GFX9: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x0f,0x8c,0xbf]
36
37s_waitcnt vmcnt(15)
38// GFX9: s_waitcnt vmcnt(15) ; encoding: [0x7f,0x0f,0x8c,0xbf]
39
40s_waitcnt vmcnt(15) expcnt(6)
41// GFX9: s_waitcnt vmcnt(15) expcnt(6) ; encoding: [0x6f,0x0f,0x8c,0xbf]
42
43s_waitcnt vmcnt(15) lgkmcnt(14)
44// GFX9: s_waitcnt vmcnt(15) lgkmcnt(14) ; encoding: [0x7f,0x0e,0x8c,0xbf]
45
46s_waitcnt vmcnt(15) expcnt(6) lgkmcnt(14)
47// GFX9: s_waitcnt vmcnt(15) expcnt(6) lgkmcnt(14) ; encoding: [0x6f,0x0e,0x8c,0xbf]
48
49s_waitcnt vmcnt(31)
50// GFX9: s_waitcnt vmcnt(31) ; encoding: [0x7f,0x4f,0x8c,0xbf]
51
52s_waitcnt vmcnt(31) expcnt(6)
53// GFX9: s_waitcnt vmcnt(31) expcnt(6) ; encoding: [0x6f,0x4f,0x8c,0xbf]
54
55s_waitcnt vmcnt(31) lgkmcnt(14)
56// GFX9: s_waitcnt vmcnt(31) lgkmcnt(14) ; encoding: [0x7f,0x4e,0x8c,0xbf]
57
58s_waitcnt vmcnt(31) expcnt(6) lgkmcnt(14)
59// GFX9: s_waitcnt vmcnt(31) expcnt(6) lgkmcnt(14) ; encoding: [0x6f,0x4e,0x8c,0xbf]
60
61s_waitcnt vmcnt(62)
62// GFX9: s_waitcnt vmcnt(62) ; encoding: [0x7e,0xcf,0x8c,0xbf]
63
64s_waitcnt vmcnt(62) expcnt(6)
65// GFX9: s_waitcnt vmcnt(62) expcnt(6) ; encoding: [0x6e,0xcf,0x8c,0xbf]
66
67s_waitcnt vmcnt(62) lgkmcnt(14)
68// GFX9: s_waitcnt vmcnt(62) lgkmcnt(14) ; encoding: [0x7e,0xce,0x8c,0xbf]
69
70s_waitcnt vmcnt(62) expcnt(6) lgkmcnt(14)
71// GFX9: s_waitcnt vmcnt(62) expcnt(6) lgkmcnt(14) ; encoding: [0x6e,0xce,0x8c,0xbf]
72
73//===----------------------------------------------------------------------===//
74// s_sendmsg
75//===----------------------------------------------------------------------===//
76
77s_sendmsg 9
78// GFX9: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
79
80s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
81// GFX9: s_sendmsg sendmsg(MSG_GS_ALLOC_REQ) ; encoding: [0x09,0x00,0x90,0xbf]
82
83s_sendmsg 10
84// GFX9: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]
85
86s_sendmsg sendmsg(MSG_GET_DOORBELL)
87// GFX9: s_sendmsg sendmsg(MSG_GET_DOORBELL) ; encoding: [0x0a,0x00,0x90,0xbf]
88