1// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefixes=GCN,SICI --implicit-check-not=error: %s
2// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck --check-prefixes=GCN,SICI --implicit-check-not=error: %s
3// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefixes=GCN,VI --implicit-check-not=error: %s
4// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck --check-prefixes=GCN,GFX10 --implicit-check-not=error: %s
5
6//===----------------------------------------------------------------------===//
7// sendmsg
8//===----------------------------------------------------------------------===//
9
10s_sendmsg sendmsg(MSG_INTERRUPTX)
11// GCN: error: expected a message name or an absolute expression
12
13s_sendmsg sendmsg(1 -)
14// GCN: error: unknown token in expression
15
16s_sendmsg sendmsg(MSG_INTERRUPT, 0)
17// GCN: error: message does not support operations
18
19s_sendmsg sendmsg(MSG_INTERRUPT, 0, 0)
20// GCN: error: message does not support operations
21
22s_sendmsg sendmsg(MSG_GS)
23// GCN: error: missing message operation
24
25s_sendmsg sendmsg(MSG_GS, GS_OP_NOP)
26// GCN: error: invalid operation id
27
28s_sendmsg sendmsg(MSG_GS, SYSMSG_OP_ECC_ERR_INTERRUPT)
29// GCN: error: expected an operation name or an absolute expression
30
31s_sendmsg sendmsg(MSG_GS, 0)
32// GCN: error: invalid operation id
33
34s_sendmsg sendmsg(MSG_GS, -1)
35// GCN: error: invalid operation id
36
37s_sendmsg sendmsg(MSG_GS, 4)
38// GCN: error: invalid operation id
39
40s_sendmsg sendmsg(MSG_GS, 8)
41// GCN: error: invalid operation id
42
43s_sendmsg sendmsg(15, -1)
44// GCN: error: invalid operation id
45
46s_sendmsg sendmsg(15, 8)
47// GCN: error: invalid operation id
48
49s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0, 0)
50// GCN: error: expected a closing parenthesis
51
52s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
53// GCN: error: expected a message name or an absolute expression
54
55s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
56// GCN: error: expected an operation name or an absolute expression
57
58s_sendmsg sendmsg(MSG_GS, 1 -)
59// GCN: error: unknown token in expression
60
61s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
62// GCN: error: invalid message stream id
63
64s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 1 -)
65// GCN: error: unknown token in expression
66
67s_sendmsg sendmsg(2, 3, 0, 0)
68// GCN: error: expected a closing parenthesis
69
70s_sendmsg sendmsg(2, 2, -1)
71// GCN: error: invalid message stream id
72
73s_sendmsg sendmsg(2, 2, 4)
74// GCN: error: invalid message stream id
75
76s_sendmsg sendmsg(2, 2, 0, 0)
77// GCN: error: expected a closing parenthesis
78
79s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
80// GCN: error: message operation does not support streams
81
82s_sendmsg sendmsg(MSG_GS_DONE, 0, 0)
83// GCN: error: message operation does not support streams
84
85s_sendmsg sendmsg(MSG_SAVEWAVE)
86// SICI: error: invalid message id
87
88s_sendmsg sendmsg(MSG_STALL_WAVE_GEN)
89// SICI: error: invalid message id
90// VI: error: invalid message id
91
92s_sendmsg sendmsg(MSG_HALT_WAVES)
93// SICI: error: invalid message id
94// VI: error: invalid message id
95
96s_sendmsg sendmsg(MSG_ORDERED_PS_DONE)
97// SICI: error: invalid message id
98// VI: error: invalid message id
99
100s_sendmsg sendmsg(MSG_EARLY_PRIM_DEALLOC)
101// SICI: error: invalid message id
102// VI: error: invalid message id
103// GFX10: error: invalid message id
104
105s_sendmsg sendmsg(MSG_GS_ALLOC_REQ)
106// VI: error: invalid message id
107// SICI: error: invalid message id
108
109s_sendmsg sendmsg(MSG_GS_ALLOC_REQ, 0)
110// VI: error: invalid message id
111// SICI: error: invalid message id
112// GFX10: error: message does not support operations
113
114s_sendmsg sendmsg(MSG_GET_DOORBELL)
115// SICI: error: invalid message id
116// VI: error: invalid message id
117
118s_sendmsg sendmsg(MSG_GET_DDID)
119// SICI: error: invalid message id
120// VI: error: invalid message id
121
122s_sendmsg sendmsg(-1)
123// VI: error: invalid message id
124// SICI: error: invalid message id
125// GFX10: error: invalid message id
126
127s_sendmsg sendmsg(16)
128// VI: error: invalid message id
129// SICI: error: invalid message id
130// GFX10: error: invalid message id
131
132s_sendmsg sendmsg(MSG_SYSMSG)
133// GCN: error: missing message operation
134
135s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT, 0)
136// GCN: error: message operation does not support streams
137
138s_sendmsg sendmsg(MSG_SYSMSG, 0)
139// GCN: error: invalid operation id
140
141s_sendmsg sendmsg(MSG_SYSMSG, 5)
142// GCN: error: invalid operation id
143
144//===----------------------------------------------------------------------===//
145// waitcnt
146//===----------------------------------------------------------------------===//
147
148s_waitcnt lgkmcnt(16)
149// VI: error: too large value for lgkmcnt
150// SICI: error: too large value for lgkmcnt
151
152s_waitcnt lgkmcnt(64)
153// GCN: error: too large value for lgkmcnt
154
155s_waitcnt expcnt(8)
156// GCN: error: too large value for expcnt
157
158s_waitcnt vmcnt(16)
159// VI: error: too large value for vmcnt
160// SICI: error: too large value for vmcnt
161
162s_waitcnt vmcnt(64)
163// GFX10: error: too large value for vmcnt
164// SICI: error: too large value for vmcnt
165// VI: error: too large value for vmcnt
166
167s_waitcnt vmcnt(0xFFFFFFFFFFFF0000)
168// GCN: error: too large value for vmcnt
169
170s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0),
171// GCN: error: expected a counter name
172
173s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)&
174// GCN: error: expected a counter name
175
176s_waitcnt vmcnt(0) & expcnt(0) & x
177// GCN: error: expected a left parenthesis
178
179s_waitcnt vmcnt(0) & expcnt(0) x
180// GCN: error: expected a left parenthesis
181
182s_waitcnt vmcnt(0) & expcnt(0) & 1
183// GCN: error: expected a counter name
184
185s_waitcnt vmcnt(0) & expcnt(0) 1
186// GCN: error: expected a counter name
187
188s_waitcnt vmcnt(0) & expcnt(0) x(0)
189// GCN: error: invalid counter name x
190
191s_waitcnt vmcnt(x)
192// GCN: error: expected absolute expression
193
194s_waitcnt x
195// GCN: error: expected absolute expression
196
197s_waitcnt vmcnt(0
198// GCN: error: expected a closing parenthesis
199
200s_branch 0x80000000ffff
201// GCN: error: expected a 16-bit signed jump offset
202
203s_branch 0x10000
204// GCN: error: expected a 16-bit signed jump offset
205
206s_branch -32769
207// GCN: error: expected a 16-bit signed jump offset
208
209s_branch 1.0
210// GCN: error: expected a 16-bit signed jump offset
211
212s_branch s0
213// GCN: error: invalid operand for instruction
214
215s_branch offset:1
216// GCN: error: not a valid operand
217