[AMDGPU] Add True16 register classes.
[llvm-project.git] / llvm / test / MC / AMDGPU / gfx10_err_pos.s
blob1d34f00ee0f92137e4ac0ec5a4fed20718a12049
1 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1010 -mattr=+WavefrontSize32,-WavefrontSize64 %s 2>&1 | FileCheck %s --implicit-check-not=error: --strict-whitespace
3 //==============================================================================
4 // operands are not valid for this GPU or mode
6 image_atomic_add v252, v2, s[8:15]
7 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode
8 // CHECK-NEXT:{{^}}image_atomic_add v252, v2, s[8:15]
9 // CHECK-NEXT:{{^}}^
11 //==============================================================================
12 // duplicate data format
14 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT_32,BUF_DATA_FORMAT_8]
15 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: duplicate data format
16 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT_32,BUF_DATA_FORMAT_8]
17 // CHECK-NEXT:{{^}} ^
19 //==============================================================================
20 // duplicate numeric format
22 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_NUM_FORMAT_UINT,BUF_NUM_FORMAT_FLOAT]
23 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: duplicate numeric format
24 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_NUM_FORMAT_UINT,BUF_NUM_FORMAT_FLOAT]
25 // CHECK-NEXT:{{^}} ^
27 //==============================================================================
28 // expected ')' in parentheses expression
30 v_bfe_u32 v0, 1+(100, v1, v2
31 // CHECK: :[[#@LINE-1]]:21: error: expected ')'
32 // CHECK-NEXT:{{^}}v_bfe_u32 v0, 1+(100, v1, v2
33 // CHECK-NEXT:{{^}} ^
35 //==============================================================================
36 // expected a 12-bit signed offset
38 global_load_dword v1, v[3:4] off, offset:-4097
39 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 12-bit signed offset
40 // CHECK-NEXT:{{^}}global_load_dword v1, v[3:4] off, offset:-4097
41 // CHECK-NEXT:{{^}} ^
43 scratch_load_dword v0, v1, off offset:-2049 glc slc
44 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 12-bit signed offset
45 // CHECK-NEXT:{{^}}scratch_load_dword v0, v1, off offset:-2049 glc slc
46 // CHECK-NEXT:{{^}} ^
48 //==============================================================================
49 // expected a 16-bit signed jump offset
51 s_branch 0x10000
52 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit signed jump offset
53 // CHECK-NEXT:{{^}}s_branch 0x10000
54 // CHECK-NEXT:{{^}} ^
56 //==============================================================================
57 // expected a 2-bit lane id
59 ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 4, 1, 2, 3)
60 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 2-bit lane id
61 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 4, 1, 2, 3)
62 // CHECK-NEXT:{{^}} ^
64 //==============================================================================
65 // expected a 20-bit unsigned offset
67 s_atc_probe_buffer 0x1, s[8:11], -1
68 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 20-bit unsigned offset
69 // CHECK-NEXT:{{^}}s_atc_probe_buffer 0x1, s[8:11], -1
70 // CHECK-NEXT:{{^}} ^
72 s_atc_probe_buffer 0x1, s[8:11], 0xFFFFFFFFFFF00000
73 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 20-bit unsigned offset
74 // CHECK-NEXT:{{^}}s_atc_probe_buffer 0x1, s[8:11], 0xFFFFFFFFFFF00000
75 // CHECK-NEXT:{{^}} ^
77 s_buffer_atomic_swap s5, s[4:7], 0x1FFFFF
78 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 20-bit unsigned offset
79 // CHECK-NEXT:{{^}}s_buffer_atomic_swap s5, s[4:7], 0x1FFFFF
80 // CHECK-NEXT:{{^}} ^
82 //==============================================================================
83 // expected a 21-bit signed offset
85 s_atc_probe 0x7, s[4:5], 0x1FFFFF
86 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 21-bit signed offset
87 // CHECK-NEXT:{{^}}s_atc_probe 0x7, s[4:5], 0x1FFFFF
88 // CHECK-NEXT:{{^}} ^
90 s_atomic_swap s5, s[2:3], 0x1FFFFF
91 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 21-bit signed offset
92 // CHECK-NEXT:{{^}}s_atomic_swap s5, s[2:3], 0x1FFFFF
93 // CHECK-NEXT:{{^}} ^
95 //==============================================================================
96 // expected a 2-bit value
98 v_mov_b32_dpp v5, v1 quad_perm:[3,2,1,4] row_mask:0x0 bank_mask:0x0
99 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 2-bit value
100 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:[3,2,1,4] row_mask:0x0 bank_mask:0x0
101 // CHECK-NEXT:{{^}} ^
103 v_mov_b32_dpp v5, v1 quad_perm:[3,-1,1,3] row_mask:0x0 bank_mask:0x0
104 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 2-bit value
105 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:[3,-1,1,3] row_mask:0x0 bank_mask:0x0
106 // CHECK-NEXT:{{^}} ^
108 //==============================================================================
109 // expected a 3-bit value
111 v_mov_b32_dpp v5, v1 dpp8:[-1,1,2,3,4,5,6,7]
112 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 3-bit value
113 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:[-1,1,2,3,4,5,6,7]
114 // CHECK-NEXT:{{^}} ^
116 v_mov_b32_dpp v5, v1 dpp8:[0,1,2,8,4,5,6,7]
117 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 3-bit value
118 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:[0,1,2,8,4,5,6,7]
119 // CHECK-NEXT:{{^}} ^
121 //==============================================================================
122 // expected a 5-character mask
124 ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "ppii")
125 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 5-character mask
126 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "ppii")
127 // CHECK-NEXT:{{^}} ^
129 //==============================================================================
130 // expected a closing parentheses
132 ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2, 3
133 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing parentheses
134 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2, 3
135 // CHECK-NEXT:{{^}} ^
137 ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2, 3, 4)
138 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing parentheses
139 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2, 3, 4)
140 // CHECK-NEXT:{{^}} ^
142 //==============================================================================
143 // expected a closing parenthesis
145 s_sendmsg sendmsg(2, 2, 0, 0)
146 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing parenthesis
147 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(2, 2, 0, 0)
148 // CHECK-NEXT:{{^}} ^
150 s_waitcnt vmcnt(0
151 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing parenthesis
152 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0
153 // CHECK-NEXT:{{^}} ^
155 //==============================================================================
156 // expected a closing square bracket
158 s_mov_b32 s1, s[0 1
159 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
160 // CHECK-NEXT:{{^}}s_mov_b32 s1, s[0 1
161 // CHECK-NEXT:{{^}} ^
163 s_mov_b32 s1, s[0 s0
164 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
165 // CHECK-NEXT:{{^}}s_mov_b32 s1, s[0 s0
166 // CHECK-NEXT:{{^}} ^
168 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT_32,BUF_NUM_FORMAT_FLOAT,BUF_DATA_FORMAT_8]
169 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
170 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT_32,BUF_NUM_FORMAT_FLOAT,BUF_DATA_FORMAT_8]
171 // CHECK-NEXT:{{^}} ^
173 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_NUM_FORMAT_UINT
174 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
175 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_NUM_FORMAT_UINT
176 // CHECK-NEXT:{{^}} ^
178 v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1 1
179 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
180 // CHECK-NEXT:{{^}}v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1 1
181 // CHECK-NEXT:{{^}} ^
183 v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1,
184 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
185 // CHECK-NEXT:{{^}}v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1,
186 // CHECK-NEXT:{{^}} ^
188 v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1[
189 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
190 // CHECK-NEXT:{{^}}v_max3_f16 v5, v1, v2, v3 op_sel:[1,1,1,1[
191 // CHECK-NEXT:{{^}} ^
193 v_pk_add_u16 v1, v2, v3 op_sel:[0,0,0,0,0]
194 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
195 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[0,0,0,0,0]
196 // CHECK-NEXT:{{^}} ^
198 v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6,7)
199 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
200 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6,7)
201 // CHECK-NEXT:{{^}} ^
203 v_mov_b32_dpp v5, v1 quad_perm:[3,2,1,0) row_mask:0x0 bank_mask:0x0
204 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a closing square bracket
205 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:[3,2,1,0) row_mask:0x0 bank_mask:0x0
206 // CHECK-NEXT:{{^}} ^
208 //==============================================================================
209 // expected a colon
211 ds_swizzle_b32 v8, v2 offset
212 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a colon
213 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset
214 // CHECK-NEXT:{{^}} ^
216 ds_swizzle_b32 v8, v2 offset-
217 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a colon
218 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset-
219 // CHECK-NEXT:{{^}} ^
221 //==============================================================================
222 // expected a comma
224 ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM
225 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
226 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM
227 // CHECK-NEXT:{{^}} ^
229 ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2)
230 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
231 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(QUAD_PERM, 0, 1, 2)
232 // CHECK-NEXT:{{^}} ^
234 s_setreg_b32 hwreg(1,2 3), s2
235 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
236 // CHECK-NEXT:{{^}}s_setreg_b32 hwreg(1,2 3), s2
237 // CHECK-NEXT:{{^}} ^
239 v_pk_add_u16 v1, v2, v3 op_sel:[0 0]
240 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
241 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[0 0]
242 // CHECK-NEXT:{{^}} ^
244 v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6]
245 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
246 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:[0,1,2,3,4,5,6]
247 // CHECK-NEXT:{{^}} ^
249 v_mov_b32_dpp v5, v1 quad_perm:[3,2] row_mask:0x0 bank_mask:0x0
250 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma
251 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:[3,2] row_mask:0x0 bank_mask:0x0
252 // CHECK-NEXT:{{^}} ^
254 //==============================================================================
255 // expected a comma or a closing parenthesis
257 s_setreg_b32 hwreg(1 2,3), s2
258 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing parenthesis
259 // CHECK-NEXT:{{^}}s_setreg_b32 hwreg(1 2,3), s2
260 // CHECK-NEXT:{{^}} ^
262 //==============================================================================
263 // expected a comma or a closing square bracket
265 s_mov_b64 s[10:11], [s0
266 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket
267 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s0
268 // CHECK-NEXT:{{^}} ^
270 s_mov_b64 s[10:11], [s0,s1
271 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket
272 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s0,s1
273 // CHECK-NEXT:{{^}} ^
275 image_load_mip v[253:255], [v255, v254 dmask:0xe dim:1D
276 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket
277 // CHECK-NEXT:{{^}}image_load_mip v[253:255], [v255, v254 dmask:0xe dim:1D
278 // CHECK-NEXT:{{^}} ^
280 image_load_mip v[253:255], [v255, v254
281 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a comma or a closing square bracket
282 // CHECK-NEXT:{{^}}image_load_mip v[253:255], [v255, v254
283 // CHECK-NEXT:{{^}} ^
285 //==============================================================================
286 // expected a counter name
288 s_waitcnt vmcnt(0) & expcnt(0) & 1
289 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a counter name
290 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0) & expcnt(0) & 1
291 // CHECK-NEXT:{{^}} ^
293 s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)&
294 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a counter name
295 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)&
296 // CHECK-NEXT:{{^}} ^
298 s_waitcnt vmcnt(0) & expcnt(0) 1
299 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a counter name
300 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0) & expcnt(0) 1
301 // CHECK-NEXT:{{^}} ^
303 s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0),
304 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a counter name
305 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0),
306 // CHECK-NEXT:{{^}} ^
308 //==============================================================================
309 // expected a format string
311 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[]
312 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a format string
313 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[]
314 // CHECK-NEXT:{{^}} ^
316 //==============================================================================
317 // expected a left parenthesis
319 s_waitcnt vmcnt(0) & expcnt(0) & x
320 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a left parenthesis
321 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0) & expcnt(0) & x
322 // CHECK-NEXT:{{^}} ^
324 //==============================================================================
325 // expected a left square bracket
327 v_pk_add_u16 v1, v2, v3 op_sel:
328 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a left square bracket
329 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:
330 // CHECK-NEXT:{{^}} ^
332 //==============================================================================
333 // expected a register
335 image_load v[0:3], [v4, v5, 6], s[8:15] dmask:0xf dim:3D unorm
336 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a register
337 // CHECK-NEXT:{{^}}image_load v[0:3], [v4, v5, 6], s[8:15] dmask:0xf dim:3D unorm
338 // CHECK-NEXT:{{^}} ^
340 image_load v[0:3], [v4, v5, v], s[8:15] dmask:0xf dim:3D unorm
341 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a register
342 // CHECK-NEXT:{{^}}image_load v[0:3], [v4, v5, v], s[8:15] dmask:0xf dim:3D unorm
343 // CHECK-NEXT:{{^}} ^
345 //==============================================================================
346 // expected a register or a list of registers
348 s_mov_b32 s1, [s0, 1
349 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a register or a list of registers
350 // CHECK-NEXT:{{^}}s_mov_b32 s1, [s0, 1
351 // CHECK-NEXT:{{^}} ^
353 //==============================================================================
354 // expected a single 32-bit register
356 s_mov_b64 s[10:11], [s0,s[2:3]]
357 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a single 32-bit register
358 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s0,s[2:3]]
359 // CHECK-NEXT:{{^}} ^
361 //==============================================================================
362 // expected a string
364 ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, pppii)
365 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a string
366 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, pppii)
367 // CHECK-NEXT:{{^}} ^
369 //==============================================================================
370 // expected a swizzle mode
372 ds_swizzle_b32 v8, v2 offset:swizzle(XXX,1)
373 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a swizzle mode
374 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(XXX,1)
375 // CHECK-NEXT:{{^}} ^
377 //==============================================================================
378 // expected absolute expression
380 s_waitcnt vmcnt(x)
381 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
382 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(x)
383 // CHECK-NEXT:{{^}} ^
385 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], format:[BUF_DATA_FORMAT_32]
386 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
387 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], format:[BUF_DATA_FORMAT_32]
388 // CHECK-NEXT:{{^}} ^
390 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format: offset:52
391 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
392 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format: offset:52
393 // CHECK-NEXT:{{^}} ^
395 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:BUF_NUM_FORMAT_UINT]
396 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
397 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:BUF_NUM_FORMAT_UINT]
398 // CHECK-NEXT:{{^}} ^
400 v_mov_b32_dpp v5, v1 dpp8:[0,1,2,x,4,5,6,7]
401 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
402 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:[0,1,2,x,4,5,6,7]
403 // CHECK-NEXT:{{^}} ^
405 v_mov_b32_dpp v5, v1 quad_perm:[3,x,1,0] row_mask:0x0 bank_mask:0x0
406 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
407 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:[3,x,1,0] row_mask:0x0 bank_mask:0x0
408 // CHECK-NEXT:{{^}} ^
410 v_mov_b32_dpp v5, v1 row_share:x row_mask:0x0 bank_mask:0x0
411 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected absolute expression
412 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 row_share:x row_mask:0x0 bank_mask:0x0
413 // CHECK-NEXT:{{^}} ^
415 //==============================================================================
416 // expected a message name or an absolute expression
418 s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
419 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a message name or an absolute expression
420 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
421 // CHECK-NEXT:{{^}} ^
423 //==============================================================================
424 // expected a register name or an absolute expression
426 s_setreg_b32 hwreg(HW_REG_WRONG), s2
427 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a register name or an absolute expression
428 // CHECK-NEXT:{{^}}s_setreg_b32 hwreg(HW_REG_WRONG), s2
429 // CHECK-NEXT:{{^}} ^
431 //==============================================================================
432 // expected a sendmsg macro or an absolute expression
434 s_sendmsg undef
435 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a sendmsg macro or an absolute expression
436 // CHECK-NEXT:{{^}}s_sendmsg undef
437 // CHECK-NEXT:{{^}} ^
439 //==============================================================================
440 // expected a swizzle macro or an absolute expression
442 ds_swizzle_b32 v8, v2 offset:SWZ(QUAD_PERM, 0, 1, 2, 3)
443 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a swizzle macro or an absolute expression
444 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:SWZ(QUAD_PERM, 0, 1, 2, 3)
445 // CHECK-NEXT:{{^}} ^
447 //==============================================================================
448 // expected a hwreg macro or an absolute expression
450 s_setreg_b32 undef, s2
451 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a hwreg macro or an absolute expression
452 // CHECK-NEXT:{{^}}s_setreg_b32 undef, s2
453 // CHECK-NEXT:{{^}} ^
455 //==============================================================================
456 // expected an 11-bit unsigned offset
458 flat_atomic_cmpswap v0, v[1:2], v[3:4] offset:4095 glc
459 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 11-bit unsigned offset
460 // CHECK-NEXT:{{^}}flat_atomic_cmpswap v0, v[1:2], v[3:4] offset:4095 glc
461 // CHECK-NEXT:{{^}} ^
463 //==============================================================================
464 // expected an absolute expression
466 v_ceil_f32 v1, abs(u)
467 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an absolute expression
468 // CHECK-NEXT:{{^}}v_ceil_f32 v1, abs(u)
469 // CHECK-NEXT:{{^}} ^
471 v_ceil_f32 v1, neg(u)
472 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an absolute expression
473 // CHECK-NEXT:{{^}}v_ceil_f32 v1, neg(u)
474 // CHECK-NEXT:{{^}} ^
476 v_ceil_f32 v1, |u|
477 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an absolute expression
478 // CHECK-NEXT:{{^}}v_ceil_f32 v1, |u|
479 // CHECK-NEXT:{{^}} ^
481 v_mov_b32_sdwa v1, sext(u)
482 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an absolute expression
483 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v1, sext(u)
484 // CHECK-NEXT:{{^}} ^
486 //==============================================================================
487 // expected an identifier
489 v_mov_b32_sdwa v5, v1 dst_sel:
490 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an identifier
491 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v5, v1 dst_sel:
492 // CHECK-NEXT:{{^}} ^
494 v_mov_b32_sdwa v5, v1 dst_sel:0
495 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an identifier
496 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v5, v1 dst_sel:0
497 // CHECK-NEXT:{{^}} ^
499 v_mov_b32_sdwa v5, v1 dst_sel:DWORD dst_unused:[UNUSED_PAD]
500 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an identifier
501 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v5, v1 dst_sel:DWORD dst_unused:[UNUSED_PAD]
502 // CHECK-NEXT:{{^}} ^
504 //==============================================================================
505 // expected an opening square bracket
507 v_mov_b32_dpp v5, v1 dpp8:(0,1,2,3,4,5,6,7)
508 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an opening square bracket
509 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 dpp8:(0,1,2,3,4,5,6,7)
510 // CHECK-NEXT:{{^}} ^
512 v_mov_b32_dpp v5, v1 quad_perm:(3,2,1,0) row_mask:0x0 bank_mask:0x0
513 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an opening square bracket
514 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 quad_perm:(3,2,1,0) row_mask:0x0 bank_mask:0x0
515 // CHECK-NEXT:{{^}} ^
517 //==============================================================================
518 // expected an operation name or an absolute expression
520 s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
521 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an operation name or an absolute expression
522 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
523 // CHECK-NEXT:{{^}} ^
525 //==============================================================================
526 // failed parsing operand.
528 v_ceil_f16 v0, abs(neg(1))
529 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: failed parsing operand.
530 // CHECK-NEXT:{{^}}v_ceil_f16 v0, abs(neg(1))
531 // CHECK-NEXT:{{^}} ^
533 //==============================================================================
534 // first register index should not exceed second index
536 s_mov_b64 s[10:11], s[1:0]
537 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: first register index should not exceed second index
538 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], s[1:0]
539 // CHECK-NEXT:{{^}} ^
541 //==============================================================================
542 // group size must be a power of two
544 ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,3,1)
545 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: group size must be a power of two
546 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,3,1)
547 // CHECK-NEXT:{{^}} ^
549 ds_swizzle_b32 v8, v2 offset:swizzle(REVERSE,3)
550 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: group size must be a power of two
551 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(REVERSE,3)
552 // CHECK-NEXT:{{^}} ^
554 ds_swizzle_b32 v8, v2 offset:swizzle(SWAP,3)
555 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: group size must be a power of two
556 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(SWAP,3)
557 // CHECK-NEXT:{{^}} ^
559 //==============================================================================
560 // group size must be in the interval [1,16]
562 ds_swizzle_b32 v8, v2 offset:swizzle(SWAP,0)
563 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: group size must be in the interval [1,16]
564 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(SWAP,0)
565 // CHECK-NEXT:{{^}} ^
567 //==============================================================================
568 // group size must be in the interval [2,32]
570 ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,1,0)
571 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: group size must be in the interval [2,32]
572 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,1,0)
573 // CHECK-NEXT:{{^}} ^
575 //==============================================================================
576 // image address size does not match dim and a16
578 image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D
579 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: image address size does not match dim and a16
580 // CHECK-NEXT:{{^}}image_load v[0:3], v[0:1], s[0:7] dmask:0xf dim:SQ_RSRC_IMG_3D
581 // CHECK-NEXT:{{^}}^
583 //==============================================================================
584 // image data size does not match dmask, d16 and tfe
586 image_load v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
587 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: image data size does not match dmask, d16 and tfe
588 // CHECK-NEXT:{{^}}image_load v[0:1], v0, s[0:7] dmask:0xf dim:SQ_RSRC_IMG_1D
589 // CHECK-NEXT:{{^}}^
591 //==============================================================================
592 // instruction must use glc
594 flat_atomic_cmpswap v0, v[1:2], v[3:4] offset:2047
595 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction must use glc
596 // CHECK-NEXT:{{^}}flat_atomic_cmpswap v0, v[1:2], v[3:4] offset:2047
597 // CHECK-NEXT:{{^}}^
599 //==============================================================================
600 // instruction not supported on this GPU
602 s_cbranch_join 1
603 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU
604 // CHECK-NEXT:{{^}}s_cbranch_join 1
605 // CHECK-NEXT:{{^}}^
607 //==============================================================================
608 // invalid bit offset: only 5-bit values are legal
610 s_getreg_b32 s2, hwreg(3,32,32)
611 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid bit offset: only 5-bit values are legal
612 // CHECK-NEXT:{{^}}s_getreg_b32 s2, hwreg(3,32,32)
613 // CHECK-NEXT:{{^}} ^
615 //==============================================================================
616 // invalid bitfield width: only values from 1 to 32 are legal
618 s_setreg_b32 hwreg(3,0,33), s2
619 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid bitfield width: only values from 1 to 32 are legal
620 // CHECK-NEXT:{{^}}s_setreg_b32 hwreg(3,0,33), s2
621 // CHECK-NEXT:{{^}} ^
623 //==============================================================================
624 // invalid code of hardware register: only 6-bit values are legal
626 s_setreg_b32 hwreg(0x40), s2
627 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid code of hardware register: only 6-bit values are legal
628 // CHECK-NEXT:{{^}}s_setreg_b32 hwreg(0x40), s2
629 // CHECK-NEXT:{{^}} ^
631 //==============================================================================
632 // invalid counter name x
634 s_waitcnt vmcnt(0) & expcnt(0) x(0)
635 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid counter name x
636 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(0) & expcnt(0) x(0)
637 // CHECK-NEXT:{{^}} ^
639 //==============================================================================
640 // invalid dim value
642 image_load v[0:1], v0, s[0:7] dmask:0x9 dim:1 D
643 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid dim value
644 // CHECK-NEXT:{{^}}image_load v[0:1], v0, s[0:7] dmask:0x9 dim:1 D
645 // CHECK-NEXT:{{^}} ^
647 image_atomic_xor v4, v32, s[96:103] dmask:0x1 dim:, glc
648 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid dim value
649 // CHECK-NEXT:{{^}}image_atomic_xor v4, v32, s[96:103] dmask:0x1 dim:, glc
650 // CHECK-NEXT:{{^}} ^
652 image_load v[0:1], v0, s[0:7] dmask:0x9 dim:7D
653 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid dim value
654 // CHECK-NEXT:{{^}}image_load v[0:1], v0, s[0:7] dmask:0x9 dim:7D
655 // CHECK-NEXT:{{^}} ^
657 //==============================================================================
658 // invalid dst_sel value
660 v_mov_b32_sdwa v5, v1 dst_sel:WORD
661 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid dst_sel value
662 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v5, v1 dst_sel:WORD
663 // CHECK-NEXT:{{^}} ^
665 //==============================================================================
666 // invalid dst_unused value
668 v_mov_b32_sdwa v5, v1 dst_unused:UNUSED
669 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid dst_unused value
670 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v5, v1 dst_unused:UNUSED
671 // CHECK-NEXT:{{^}} ^
673 //==============================================================================
674 // invalid exp target
676 exp invalid_target_10 v3, v2, v1, v0
677 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid exp target
678 // CHECK-NEXT:{{^}}exp invalid_target_10 v3, v2, v1, v0
679 // CHECK-NEXT:{{^}} ^
681 exp pos00 v3, v2, v1, v0
682 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid exp target
683 // CHECK-NEXT:{{^}}exp pos00 v3, v2, v1, v0
684 // CHECK-NEXT:{{^}} ^
686 //==============================================================================
687 // invalid immediate: only 16-bit values are legal
689 s_setreg_b32 0x1f803, s2
690 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid immediate: only 16-bit values are legal
691 // CHECK-NEXT:{{^}}s_setreg_b32 0x1f803, s2
692 // CHECK-NEXT:{{^}} ^
694 //==============================================================================
695 // invalid instruction
697 v_dot_f32_f16 v0, v1, v2
698 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid instruction
699 // CHECK-NEXT:{{^}}v_dot_f32_f16 v0, v1, v2
700 // CHECK-NEXT:{{^}}^
702 //==============================================================================
703 // invalid interpolation attribute
705 v_interp_p2_f32 v0, v1, att
706 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid interpolation attribute
707 // CHECK-NEXT:{{^}}v_interp_p2_f32 v0, v1, att
708 // CHECK-NEXT:{{^}} ^
710 //==============================================================================
711 // invalid interpolation slot
713 v_interp_mov_f32 v8, p1, attr0.x
714 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid interpolation slot
715 // CHECK-NEXT:{{^}}v_interp_mov_f32 v8, p1, attr0.x
716 // CHECK-NEXT:{{^}} ^
718 //==============================================================================
719 // invalid mask
721 ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "pppi2")
722 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid mask
723 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BITMASK_PERM, "pppi2")
724 // CHECK-NEXT:{{^}} ^
726 //==============================================================================
727 // invalid message id
729 s_sendmsg sendmsg(-1)
730 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid message id
731 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(-1)
732 // CHECK-NEXT:{{^}} ^
734 //==============================================================================
735 // invalid message stream id
737 s_sendmsg sendmsg(2, 2, 4)
738 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid message stream id
739 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(2, 2, 4)
740 // CHECK-NEXT:{{^}} ^
742 s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
743 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid message stream id
744 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
745 // CHECK-NEXT:{{^}} ^
747 //==============================================================================
748 // invalid mul value.
750 v_cvt_f64_i32 v[5:6], s1 mul:3
751 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid mul value.
752 // CHECK-NEXT:{{^}}v_cvt_f64_i32 v[5:6], s1 mul:3
753 // CHECK-NEXT:{{^}} ^
755 //==============================================================================
756 // invalid or missing interpolation attribute channel
758 v_interp_p2_f32 v0, v1, attr0.q
759 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid or missing interpolation attribute channel
760 // CHECK-NEXT:{{^}}v_interp_p2_f32 v0, v1, attr0.q
761 // CHECK-NEXT:{{^}} ^
763 //==============================================================================
764 // invalid or missing interpolation attribute number
766 v_interp_p2_f32 v7, v1, attr.x
767 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid or missing interpolation attribute number
768 // CHECK-NEXT:{{^}}v_interp_p2_f32 v7, v1, attr.x
769 // CHECK-NEXT:{{^}} ^
771 //==============================================================================
772 // invalid op_sel operand
774 v_permlane16_b32 v5, v1, s2, s3 op_sel:[0, 0, 0, 1]
775 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand
776 // CHECK-NEXT:{{^}}v_permlane16_b32 v5, v1, s2, s3 op_sel:[0, 0, 0, 1]
777 // CHECK-NEXT:{{^}} ^
779 //==============================================================================
780 // invalid op_sel value.
782 v_pk_add_u16 v1, v2, v3 op_sel:[-1,0]
783 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel value.
784 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[-1,0]
785 // CHECK-NEXT:{{^}} ^
787 //==============================================================================
788 // invalid operand (violates constant bus restrictions)
790 v_ashrrev_i64 v[0:1], 0x100, s[0:1]
791 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
792 // CHECK-NEXT:{{^}}v_ashrrev_i64 v[0:1], 0x100, s[0:1]
793 // CHECK-NEXT:{{^}} ^
795 v_ashrrev_i64 v[0:1], s3, s[0:1]
796 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
797 // CHECK-NEXT:{{^}}v_ashrrev_i64 v[0:1], s3, s[0:1]
798 // CHECK-NEXT:{{^}} ^
800 v_bfe_u32 v0, s1, 0x3039, s2
801 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
802 // CHECK-NEXT:{{^}}v_bfe_u32 v0, s1, 0x3039, s2
803 // CHECK-NEXT:{{^}} ^
805 v_bfe_u32 v0, s1, s2, s3
806 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
807 // CHECK-NEXT:{{^}}v_bfe_u32 v0, s1, s2, s3
808 // CHECK-NEXT:{{^}} ^
810 v_div_fmas_f32 v5, s3, 0x123, v3
811 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
812 // CHECK-NEXT:{{^}}v_div_fmas_f32 v5, s3, 0x123, v3
813 // CHECK-NEXT:{{^}} ^
815 v_div_fmas_f32 v5, s3, v3, 0x123
816 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
817 // CHECK-NEXT:{{^}}v_div_fmas_f32 v5, s3, v3, 0x123
818 // CHECK-NEXT:{{^}} ^
820 v_div_fmas_f32 v5, 0x123, v3, s3
821 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
822 // CHECK-NEXT:{{^}}v_div_fmas_f32 v5, 0x123, v3, s3
823 // CHECK-NEXT:{{^}} ^
825 v_div_fmas_f32 v5, s3, s4, v3
826 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions)
827 // CHECK-NEXT:{{^}}v_div_fmas_f32 v5, s3, s4, v3
828 // CHECK-NEXT:{{^}} ^
830 //==============================================================================
831 // invalid operand for instruction
833 buffer_load_dword v[5:6], off, s[8:11], s3 tfe lds
834 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
835 // CHECK-NEXT:{{^}}buffer_load_dword v[5:6], off, s[8:11], s3 tfe lds
836 // CHECK-NEXT:{{^}} ^
838 exp mrt0 0x12345678, v0, v0, v0
839 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
840 // CHECK-NEXT:{{^}}exp mrt0 0x12345678, v0, v0, v0
841 // CHECK-NEXT:{{^}} ^
843 v_cmp_eq_f32 s[0:1], private_base, s0
844 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
845 // CHECK-NEXT:{{^}}v_cmp_eq_f32 s[0:1], private_base, s0
846 // CHECK-NEXT:{{^}} ^
848 //==============================================================================
849 // invalid operation id
851 s_sendmsg sendmsg(15, -1)
852 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operation id
853 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(15, -1)
854 // CHECK-NEXT:{{^}} ^
856 //==============================================================================
857 // invalid or unsupported register size
859 s_mov_b64 s[0:17], -1
860 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid or unsupported register size
861 // CHECK-NEXT:{{^}}s_mov_b64 s[0:17], -1
862 // CHECK-NEXT:{{^}} ^
864 //==============================================================================
865 // invalid register alignment
867 s_load_dwordx4 s[1:4], s[2:3], s4
868 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register alignment
869 // CHECK-NEXT:{{^}}s_load_dwordx4 s[1:4], s[2:3], s4
870 // CHECK-NEXT:{{^}} ^
872 //==============================================================================
873 // invalid register index
875 s_mov_b32 s1, s[0:-1]
876 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index
877 // CHECK-NEXT:{{^}}s_mov_b32 s1, s[0:-1]
878 // CHECK-NEXT:{{^}} ^
880 v_add_f64 v[0:1], v[0:1], v[0xF00000001:0x2]
881 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register index
882 // CHECK-NEXT:{{^}}v_add_f64 v[0:1], v[0:1], v[0xF00000001:0x2]
883 // CHECK-NEXT:{{^}} ^
885 //==============================================================================
886 // invalid register name
888 s_mov_b64 s[10:11], [x0,s1]
889 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register name
890 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [x0,s1]
891 // CHECK-NEXT:{{^}} ^
893 //==============================================================================
894 // invalid row_share value
896 v_mov_b32_dpp v5, v1 row_share:16 row_mask:0x0 bank_mask:0x0
897 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid row_share value
898 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 row_share:16 row_mask:0x0 bank_mask:0x0
899 // CHECK-NEXT:{{^}} ^
901 v_mov_b32_dpp v5, v1 row_share:-1 row_mask:0x0 bank_mask:0x0
902 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid row_share value
903 // CHECK-NEXT:{{^}}v_mov_b32_dpp v5, v1 row_share:-1 row_mask:0x0 bank_mask:0x0
904 // CHECK-NEXT:{{^}} ^
906 //==============================================================================
907 // invalid syntax, expected 'neg' modifier
909 v_ceil_f32 v0, --1
910 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: invalid syntax, expected 'neg' modifier
911 // CHECK-NEXT:{{^}}v_ceil_f32 v0, --1
912 // CHECK-NEXT:{{^}} ^
914 //==============================================================================
915 // lane id must be in the interval [0,group size - 1]
917 ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,2,-1)
918 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lane id must be in the interval [0,group size - 1]
919 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle(BROADCAST,2,-1)
920 // CHECK-NEXT:{{^}} ^
922 //==============================================================================
923 // lds_direct cannot be used with this instruction
925 v_ashrrev_i16 v0, lds_direct, v0
926 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lds_direct cannot be used with this instruction
927 // CHECK-NEXT:{{^}}v_ashrrev_i16 v0, lds_direct, v0
928 // CHECK-NEXT:{{^}} ^
930 v_ashrrev_i16 v0, v1, lds_direct
931 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lds_direct cannot be used with this instruction
932 // CHECK-NEXT:{{^}}v_ashrrev_i16 v0, v1, lds_direct
933 // CHECK-NEXT:{{^}} ^
935 v_mov_b32_sdwa v1, src_lds_direct dst_sel:DWORD
936 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lds_direct cannot be used with this instruction
937 // CHECK-NEXT:{{^}}v_mov_b32_sdwa v1, src_lds_direct dst_sel:DWORD
938 // CHECK-NEXT:{{^}} ^
940 v_add_f32_sdwa v5, v1, lds_direct dst_sel:DWORD
941 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lds_direct cannot be used with this instruction
942 // CHECK-NEXT:{{^}}v_add_f32_sdwa v5, v1, lds_direct dst_sel:DWORD
943 // CHECK-NEXT:{{^}} ^
945 //==============================================================================
946 // lds_direct may be used as src0 only
948 v_add_f32 v5, v1, lds_direct
949 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: lds_direct may be used as src0 only
950 // CHECK-NEXT:{{^}}v_add_f32 v5, v1, lds_direct
951 // CHECK-NEXT:{{^}} ^
953 //==============================================================================
954 // message does not support operations
956 s_sendmsg sendmsg(MSG_GS_ALLOC_REQ, 0)
957 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: message does not support operations
958 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_GS_ALLOC_REQ, 0)
959 // CHECK-NEXT:{{^}} ^
961 //==============================================================================
962 // message operation does not support streams
964 s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
965 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: message operation does not support streams
966 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
967 // CHECK-NEXT:{{^}} ^
969 //==============================================================================
970 // missing message operation
972 s_sendmsg sendmsg(MSG_SYSMSG)
973 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: missing message operation
974 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(MSG_SYSMSG)
975 // CHECK-NEXT:{{^}} ^
977 //==============================================================================
978 // missing register index
980 s_mov_b64 s[10:11], [s
981 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: missing register index
982 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s
983 // CHECK-NEXT:{{^}} ^
985 s_mov_b64 s[10:11], [s,s1]
986 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: missing register index
987 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s,s1]
988 // CHECK-NEXT:{{^}} ^
990 //==============================================================================
991 // not a valid operand.
993 s_branch offset:1
994 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
995 // CHECK-NEXT:{{^}}s_branch offset:1
996 // CHECK-NEXT:{{^}} ^
998 v_mov_b32 v0, v0 row_bcast:0
999 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
1000 // CHECK-NEXT:{{^}}v_mov_b32 v0, v0 row_bcast:0
1001 // CHECK-NEXT:{{^}} ^
1003 //==============================================================================
1004 // only one unique literal operand is allowed
1006 s_and_b32 s2, 0x12345678, 0x12345679
1007 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1008 // CHECK-NEXT:{{^}}s_and_b32 s2, 0x12345678, 0x12345679
1009 // CHECK-NEXT:{{^}} ^
1011 v_add_f64 v[0:1], 1.23456, -abs(1.2345)
1012 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1013 // CHECK-NEXT:{{^}}v_add_f64 v[0:1], 1.23456, -abs(1.2345)
1014 // CHECK-NEXT:{{^}} ^
1016 v_min3_i16 v5, 0x5678, 0x5678, 0x5679
1017 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1018 // CHECK-NEXT:{{^}}v_min3_i16 v5, 0x5678, 0x5678, 0x5679
1019 // CHECK-NEXT:{{^}} ^
1021 v_pk_add_f16 v1, 25.0, 25.1
1022 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1023 // CHECK-NEXT:{{^}}v_pk_add_f16 v1, 25.0, 25.1
1024 // CHECK-NEXT:{{^}} ^
1026 v_fma_mix_f32 v5, 0x7c, 0x7b, 1
1027 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1028 // CHECK-NEXT:{{^}}v_fma_mix_f32 v5, 0x7c, 0x7b, 1
1029 // CHECK-NEXT:{{^}} ^
1031 v_pk_add_i16 v5, 0x7c, 0x4000
1032 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1033 // CHECK-NEXT:{{^}}v_pk_add_i16 v5, 0x7c, 0x4000
1034 // CHECK-NEXT:{{^}} ^
1036 v_pk_add_i16 v5, 0x4400, 0x4000
1037 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1038 // CHECK-NEXT:{{^}}v_pk_add_i16 v5, 0x4400, 0x4000
1039 // CHECK-NEXT:{{^}} ^
1041 v_bfe_u32 v0, v2, 123, undef
1042 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1043 // CHECK-NEXT:{{^}}v_bfe_u32 v0, v2, 123, undef
1044 // CHECK-NEXT:{{^}} ^
1046 v_bfe_u32 v0, v2, undef, 123
1047 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: only one unique literal operand is allowed
1048 // CHECK-NEXT:{{^}}v_bfe_u32 v0, v2, undef, 123
1049 // CHECK-NEXT:{{^}} ^
1051 //==============================================================================
1052 // out of bounds interpolation attribute number
1054 v_interp_p1_f32 v0, v1, attr64.w
1055 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: out of bounds interpolation attribute number
1056 // CHECK-NEXT:{{^}}v_interp_p1_f32 v0, v1, attr64.w
1057 // CHECK-NEXT:{{^}} ^
1059 //==============================================================================
1060 // out of range format
1062 tbuffer_load_format_d16_x v0, off, s[0:3], format:-1, 0
1063 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: out of range format
1064 // CHECK-NEXT:{{^}}tbuffer_load_format_d16_x v0, off, s[0:3], format:-1, 0
1065 // CHECK-NEXT:{{^}} ^
1067 //==============================================================================
1068 // register does not fit in the list
1070 s_mov_b64 s[10:11], [exec,exec_lo]
1071 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list
1072 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [exec,exec_lo]
1073 // CHECK-NEXT:{{^}} ^
1075 s_mov_b64 s[10:11], [exec_lo,exec]
1076 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register does not fit in the list
1077 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [exec_lo,exec]
1078 // CHECK-NEXT:{{^}} ^
1080 //==============================================================================
1081 // register index is out of range
1083 s_add_i32 s106, s0, s1
1084 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range
1085 // CHECK-NEXT:{{^}}s_add_i32 s106, s0, s1
1086 // CHECK-NEXT:{{^}} ^
1088 s_load_dwordx16 s[100:115], s[2:3], s4
1089 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range
1090 // CHECK-NEXT:{{^}}s_load_dwordx16 s[100:115], s[2:3], s4
1091 // CHECK-NEXT:{{^}} ^
1093 s_mov_b32 ttmp16, 0
1094 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range
1095 // CHECK-NEXT:{{^}}s_mov_b32 ttmp16, 0
1096 // CHECK-NEXT:{{^}} ^
1098 v_add_nc_i32 v256, v0, v1
1099 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register index is out of range
1100 // CHECK-NEXT:{{^}}v_add_nc_i32 v256, v0, v1
1101 // CHECK-NEXT:{{^}} ^
1103 //==============================================================================
1104 // register not available on this GPU
1106 s_and_b32 ttmp9, tma_hi, 0x0000ffff
1107 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register not available on this GPU
1108 // CHECK-NEXT:{{^}}s_and_b32 ttmp9, tma_hi, 0x0000ffff
1109 // CHECK-NEXT:{{^}} ^
1111 s_mov_b32 flat_scratch, -1
1112 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: register not available on this GPU
1113 // CHECK-NEXT:{{^}}s_mov_b32 flat_scratch, -1
1114 // CHECK-NEXT:{{^}} ^
1116 //==============================================================================
1117 // registers in a list must be of the same kind
1119 s_mov_b64 s[10:11], [a0,v1]
1120 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must be of the same kind
1121 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [a0,v1]
1122 // CHECK-NEXT:{{^}} ^
1124 //==============================================================================
1125 // registers in a list must have consecutive indices
1127 s_mov_b64 s[10:11], [a0,a2]
1128 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices
1129 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [a0,a2]
1130 // CHECK-NEXT:{{^}} ^
1132 s_mov_b64 s[10:11], [s0,s0]
1133 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices
1134 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s0,s0]
1135 // CHECK-NEXT:{{^}} ^
1137 s_mov_b64 s[10:11], [s2,s1]
1138 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: registers in a list must have consecutive indices
1139 // CHECK-NEXT:{{^}}s_mov_b64 s[10:11], [s2,s1]
1140 // CHECK-NEXT:{{^}} ^
1142 //==============================================================================
1143 // source operand must be a VGPR
1145 v_movrels_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD
1146 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: source operand must be a VGPR
1147 // CHECK-NEXT:{{^}}v_movrels_b32_sdwa v0, 1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD
1148 // CHECK-NEXT:{{^}} ^
1150 v_movrels_b32_sdwa v0, s0
1151 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: source operand must be a VGPR
1152 // CHECK-NEXT:{{^}}v_movrels_b32_sdwa v0, s0
1153 // CHECK-NEXT:{{^}} ^
1155 v_movrels_b32_sdwa v0, shared_base
1156 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: source operand must be a VGPR
1157 // CHECK-NEXT:{{^}}v_movrels_b32_sdwa v0, shared_base
1158 // CHECK-NEXT:{{^}} ^
1160 //==============================================================================
1161 // specified hardware register is not supported on this GPU
1163 s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES)
1164 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: specified hardware register is not supported on this GPU
1165 // CHECK-NEXT:{{^}}s_getreg_b32 s2, hwreg(HW_REG_SHADER_CYCLES)
1166 // CHECK-NEXT:{{^}} ^
1168 //==============================================================================
1169 // too few operands for instruction
1171 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7]
1172 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
1173 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7]
1174 // CHECK-NEXT:{{^}}^
1176 v_add_f32_e64 v0, v1
1177 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
1178 // CHECK-NEXT:{{^}}v_add_f32_e64 v0, v1
1179 // CHECK-NEXT:{{^}}^
1181 buffer_load_dword off, s[8:11], s3
1182 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
1183 // CHECK-NEXT:{{^}}buffer_load_dword off, s[8:11], s3
1184 // CHECK-NEXT:{{^}}^
1186 buffer_load_dword off, s[8:11], s3 offset:1
1187 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
1188 // CHECK-NEXT:{{^}}buffer_load_dword off, s[8:11], s3 offset:1
1189 // CHECK-NEXT:{{^}}^
1191 //==============================================================================
1192 // too large value for expcnt
1194 s_waitcnt expcnt(8)
1195 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too large value for expcnt
1196 // CHECK-NEXT:{{^}}s_waitcnt expcnt(8)
1197 // CHECK-NEXT:{{^}} ^
1199 //==============================================================================
1200 // too large value for lgkmcnt
1202 s_waitcnt lgkmcnt(64)
1203 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too large value for lgkmcnt
1204 // CHECK-NEXT:{{^}}s_waitcnt lgkmcnt(64)
1205 // CHECK-NEXT:{{^}} ^
1207 //==============================================================================
1208 // too large value for vmcnt
1210 s_waitcnt vmcnt(64)
1211 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: too large value for vmcnt
1212 // CHECK-NEXT:{{^}}s_waitcnt vmcnt(64)
1213 // CHECK-NEXT:{{^}} ^
1215 //==============================================================================
1216 // unknown token in expression
1218 ds_swizzle_b32 v8, v2 offset:
1219 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1220 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:
1221 // CHECK-NEXT:{{^}} ^
1223 s_sendmsg sendmsg(1 -)
1224 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1225 // CHECK-NEXT:{{^}}s_sendmsg sendmsg(1 -)
1226 // CHECK-NEXT:{{^}} ^
1228 tbuffer_load_format_d16_x v0, off, s[0:3], format:1,, s0
1229 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1230 // CHECK-NEXT:{{^}}tbuffer_load_format_d16_x v0, off, s[0:3], format:1,, s0
1231 // CHECK-NEXT:{{^}} ^
1233 tbuffer_load_format_d16_x v0, off, s[0:3], format:1:, s0
1234 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1235 // CHECK-NEXT:{{^}}tbuffer_load_format_d16_x v0, off, s[0:3], format:1:, s0
1236 // CHECK-NEXT:{{^}} ^
1238 v_pk_add_u16 v1, v2, v3 op_sel:[
1239 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1240 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[
1241 // CHECK-NEXT:{{^}} ^
1243 v_pk_add_u16 v1, v2, v3 op_sel:[,0]
1244 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1245 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[,0]
1246 // CHECK-NEXT:{{^}} ^
1248 v_pk_add_u16 v1, v2, v3 op_sel:[,]
1249 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1250 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[,]
1251 // CHECK-NEXT:{{^}} ^
1253 v_pk_add_u16 v1, v2, v3 op_sel:[0,]
1254 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1255 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[0,]
1256 // CHECK-NEXT:{{^}} ^
1258 v_pk_add_u16 v1, v2, v3 op_sel:[]
1259 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unknown token in expression
1260 // CHECK-NEXT:{{^}}v_pk_add_u16 v1, v2, v3 op_sel:[]
1261 // CHECK-NEXT:{{^}} ^
1263 //==============================================================================
1264 // unsupported format
1266 tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT]
1267 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: unsupported format
1268 // CHECK-NEXT:{{^}}tbuffer_store_format_xyzw v[1:4], off, ttmp[4:7], s0 format:[BUF_DATA_FORMAT]
1269 // CHECK-NEXT:{{^}} ^
1271 //==============================================================================
1272 // expected vertical bar
1274 v_ceil_f32 v1, |1+1|
1275 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected vertical bar
1276 // CHECK-NEXT:{{^}}v_ceil_f32 v1, |1+1|
1277 // CHECK-NEXT:{{^}} ^
1279 //==============================================================================
1280 // expected left paren after neg
1282 v_ceil_f32 v1, neg-(v2)
1283 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected left paren after neg
1284 // CHECK-NEXT:{{^}}v_ceil_f32 v1, neg-(v2)
1285 // CHECK-NEXT:{{^}} ^
1287 //==============================================================================
1288 // expected left paren after abs
1290 v_ceil_f32 v1, abs-(v2)
1291 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected left paren after abs
1292 // CHECK-NEXT:{{^}}v_ceil_f32 v1, abs-(v2)
1293 // CHECK-NEXT:{{^}} ^
1295 //==============================================================================
1296 // expected left paren after sext
1298 v_cmpx_f_i32_sdwa sext[v1], v2 src0_sel:DWORD src1_sel:DWORD
1299 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected left paren after sext
1300 // CHECK-NEXT:{{^}}v_cmpx_f_i32_sdwa sext[v1], v2 src0_sel:DWORD src1_sel:DWORD
1301 // CHECK-NEXT:{{^}} ^
1303 //==============================================================================
1304 // expected closing parentheses
1306 v_ceil_f32 v1, abs(v2]
1307 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected closing parentheses
1308 // CHECK-NEXT:{{^}}v_ceil_f32 v1, abs(v2]
1309 // CHECK-NEXT:{{^}} ^
1311 v_ceil_f32 v1, neg(v2]
1312 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected closing parentheses
1313 // CHECK-NEXT:{{^}}v_ceil_f32 v1, neg(v2]
1314 // CHECK-NEXT:{{^}} ^
1316 v_cmpx_f_i32_sdwa sext(v1], v2 src0_sel:DWORD src1_sel:DWORD
1317 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected closing parentheses
1318 // CHECK-NEXT:{{^}}v_cmpx_f_i32_sdwa sext(v1], v2 src0_sel:DWORD src1_sel:DWORD
1319 // CHECK-NEXT:{{^}} ^
1321 //==============================================================================
1322 // expected a left parentheses
1324 ds_swizzle_b32 v8, v2 offset:swizzle[QUAD_PERM, 0, 1, 2, 3]
1325 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a left parentheses
1326 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:swizzle[QUAD_PERM, 0, 1, 2, 3]
1327 // CHECK-NEXT:{{^}} ^
1329 //==============================================================================
1330 // expected an absolute expression or a label
1332 s_branch 1+x
1333 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected an absolute expression or a label
1334 // CHECK-NEXT:{{^}}s_branch 1+x
1335 // CHECK-NEXT:{{^}} ^
1337 //==============================================================================
1338 // expected a 16-bit offset
1340 ds_swizzle_b32 v8, v2 offset:0x10000
1341 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit offset
1342 // CHECK-NEXT:{{^}}ds_swizzle_b32 v8, v2 offset:0x10000
1343 // CHECK-NEXT:{{^}} ^
1345 //==============================================================================
1346 // not a valid operand
1348 v_cndmask_b32_sdwa v5, v1, sext(v2), vcc dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:BYTE_0 src1_sel:WORD_0
1349 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand.
1350 // CHECK-NEXT:{{^}}v_cndmask_b32_sdwa v5, v1, sext(v2), vcc dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:BYTE_0 src1_sel:WORD_0
1351 // CHECK-NEXT:{{^}} ^
1353 //==============================================================================
1354 // TFE modifier has no meaning for store instructions
1356 buffer_store_dword v[1:2], off, s[12:15], s4 tfe
1357 // CHECK: :[[@LINE-1]]:{{[0-9]+}}: error: TFE modifier has no meaning for store instructions
1358 // CHECK-NEXT:{{^}}buffer_store_dword v[1:2], off, s[12:15], s4 tfe
1359 // CHECK-NEXT:{{^}} ^