1 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1010
-mattr
=+wavefrontsize32
%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
: missing dim operand
8 // CHECK-NEXT
:{{^
}}image_atomic_add v252
, v2
, s
[8:15]
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
]
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
]
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
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
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
48 //==============================================================================
49 // expected
a 16-bit signed jump offset
52 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a 16-bit signed jump offset
53 // CHECK-NEXT
:{{^
}}s_branch
0x10000
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)
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
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
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
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
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
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
:{{^
}} ^
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
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
:{{^
}} ^
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 //==============================================================================
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 //==============================================================================
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
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 //==============================================================================
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
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
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
, structured immediate
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
:{{^
}} ^
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
a valid identifier
or number in
a valid range
489 v_mov_b32_sdwa v5
, v1 dst_sel
:
490 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
491 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:
492 // CHECK-NEXT
:{{^
}} ^
494 v_mov_b32_sdwa v5
, v1 dst_sel
:0a
495 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
496 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:0a
497 // CHECK-NEXT
:{{^
}} ^
499 v_mov_b32_sdwa v5
, v1 dst_sel
:BYTE_1x
500 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_sel value
501 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:BYTE_1
502 // CHECK-NEXT
:{{^
}} ^
504 v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:[UNUSED_PAD
]
505 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected absolute expression
506 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:[UNUSED_PAD
]
507 // CHECK-NEXT
:{{^
}} ^
509 v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:XXX
510 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_unused value
511 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:XXX
512 // CHECK-NEXT
:{{^
}} ^
514 v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:3
515 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_unused value
516 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:3
517 // CHECK-NEXT
:{{^
}} ^
519 v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:-1
520 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_unused value
521 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:DWORD dst_unused
:-1
522 // CHECK-NEXT
:{{^
}} ^
524 //==============================================================================
525 // expected an opening square bracket
527 v_mov_b32_dpp v5
, v1 dpp8
:(0,1,2,3,4,5,6,7)
528 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected an opening square bracket
529 // CHECK-NEXT
:{{^
}}v_mov_b32_dpp v5
, v1 dpp8
:(0,1,2,3,4,5,6,7)
530 // CHECK-NEXT
:{{^
}} ^
532 v_mov_b32_dpp v5
, v1 quad_perm
:(3,2,1,0) row_mask
:0x0 bank_mask
:0x0
533 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected an opening square bracket
534 // CHECK-NEXT
:{{^
}}v_mov_b32_dpp v5
, v1 quad_perm
:(3,2,1,0) row_mask
:0x0 bank_mask
:0x0
535 // CHECK-NEXT
:{{^
}} ^
537 //==============================================================================
538 // expected an operation name
or an absolute expression
540 s_sendmsg sendmsg
(MSG_GS
, GS_OP_CUTX
, 0)
541 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected an operation name
or an absolute expression
542 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(MSG_GS
, GS_OP_CUTX
, 0)
543 // CHECK-NEXT
:{{^
}} ^
545 //==============================================================================
546 // failed parsing operand.
548 v_ceil_f16 v0
, abs(neg(1))
549 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: failed parsing operand.
550 // CHECK-NEXT
:{{^
}}v_ceil_f16 v0
, abs(neg(1))
551 // CHECK-NEXT
:{{^
}} ^
553 //==============================================================================
554 // first register index should
not exceed second index
556 s_mov_b64 s
[10:11], s
[1:0]
557 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: first register index should
not exceed second index
558 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], s
[1:0]
559 // CHECK-NEXT
:{{^
}} ^
561 //==============================================================================
562 // group size must
be a power of two
564 ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,3,1)
565 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: group size must
be a power of two
566 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,3,1)
567 // CHECK-NEXT
:{{^
}} ^
569 ds_swizzle_b32 v8
, v2 offset
:swizzle
(REVERSE
,3)
570 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: group size must
be a power of two
571 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(REVERSE
,3)
572 // CHECK-NEXT
:{{^
}} ^
574 ds_swizzle_b32 v8
, v2 offset
:swizzle
(SWAP
,3)
575 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: group size must
be a power of two
576 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(SWAP
,3)
577 // CHECK-NEXT
:{{^
}} ^
579 //==============================================================================
580 // group size must
be in the interval
[1,16]
582 ds_swizzle_b32 v8
, v2 offset
:swizzle
(SWAP
,0)
583 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: group size must
be in the interval
[1,16]
584 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(SWAP
,0)
585 // CHECK-NEXT
:{{^
}} ^
587 //==============================================================================
588 // group size must
be in the interval
[2,32]
590 ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,1,0)
591 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: group size must
be in the interval
[2,32]
592 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,1,0)
593 // CHECK-NEXT
:{{^
}} ^
595 //==============================================================================
596 // image address size does
not match dim
and a16
598 image_load v
[0:3], v
[0:1], s
[0:7] dmask
:0xf dim
:SQ_RSRC_IMG_3D
599 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: image address size does
not match dim
and a16
600 // CHECK-NEXT
:{{^
}}image_load v
[0:3], v
[0:1], s
[0:7] dmask
:0xf dim
:SQ_RSRC_IMG_3D
603 //==============================================================================
604 // image data size does
not match dmask
, d16
and tfe
606 image_load v
[0:1], v0
, s
[0:7] dmask
:0xf dim
:SQ_RSRC_IMG_1D
607 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: image data size does
not match dmask
, d16
and tfe
608 // CHECK-NEXT
:{{^
}}image_load v
[0:1], v0
, s
[0:7] dmask
:0xf dim
:SQ_RSRC_IMG_1D
611 //==============================================================================
612 // instruction must use glc
614 flat_atomic_cmpswap v0
, v
[1:2], v
[3:4] offset
:2047
615 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: instruction must use glc
616 // CHECK-NEXT
:{{^
}}flat_atomic_cmpswap v0
, v
[1:2], v
[3:4] offset
:2047
619 //==============================================================================
620 // instruction
not supported on this GPU
623 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: instruction
not supported on this GPU
624 // CHECK-NEXT
:{{^
}}s_cbranch_join
1
627 //==============================================================================
628 // invalid bit offset
: only
5-bit values are legal
630 s_getreg_b32 s2
, hwreg
(3,32,32)
631 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid bit offset
: only
5-bit values are legal
632 // CHECK-NEXT
:{{^
}}s_getreg_b32 s2
, hwreg
(3,32,32)
633 // CHECK-NEXT
:{{^
}} ^
635 //==============================================================================
636 // invalid bitfield width
: only values from
1 to
32 are legal
638 s_setreg_b32 hwreg
(3,0,33), s2
639 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid bitfield width
: only values from
1 to
32 are legal
640 // CHECK-NEXT
:{{^
}}s_setreg_b32 hwreg
(3,0,33), s2
641 // CHECK-NEXT
:{{^
}} ^
643 //==============================================================================
644 // invalid hardware register
: only
6-bit values are legal
646 s_setreg_b32 hwreg
(0x40), s2
647 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid hardware register
: only
6-bit values are legal
648 // CHECK-NEXT
:{{^
}}s_setreg_b32 hwreg
(0x40), s2
649 // CHECK-NEXT
:{{^
}} ^
651 //==============================================================================
652 // invalid counter name x
654 s_waitcnt vmcnt
(0) & expcnt
(0) x
(0)
655 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid counter name x
656 // CHECK-NEXT
:{{^
}}s_waitcnt vmcnt
(0) & expcnt
(0) x
(0)
657 // CHECK-NEXT
:{{^
}} ^
659 //==============================================================================
662 image_load v
[0:1], v0
, s
[0:7] dmask
:0x9 dim
:1 D
663 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dim value
664 // CHECK-NEXT
:{{^
}}image_load v
[0:1], v0
, s
[0:7] dmask
:0x9 dim
:1 D
665 // CHECK-NEXT
:{{^
}} ^
667 image_atomic_xor v4
, v32
, s
[96:103] dmask
:0x1 dim
:, glc
668 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dim value
669 // CHECK-NEXT
:{{^
}}image_atomic_xor v4
, v32
, s
[96:103] dmask
:0x1 dim
:, glc
670 // CHECK-NEXT
:{{^
}} ^
672 image_load v
[0:1], v0
, s
[0:7] dmask
:0x9 dim
:7D
673 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dim value
674 // CHECK-NEXT
:{{^
}}image_load v
[0:1], v0
, s
[0:7] dmask
:0x9 dim
:7D
675 // CHECK-NEXT
:{{^
}} ^
677 //==============================================================================
678 // invalid dst_sel value
680 v_mov_b32_sdwa v5
, v1 dst_sel
:WORD
681 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_sel value
682 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_sel
:WORD
683 // CHECK-NEXT
:{{^
}} ^
685 //==============================================================================
686 // invalid dst_unused value
688 v_mov_b32_sdwa v5
, v1 dst_unused
:UNUSED
689 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid dst_unused value
690 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v5
, v1 dst_unused
:UNUSED
691 // CHECK-NEXT
:{{^
}} ^
693 //==============================================================================
694 // invalid exp target
696 exp invalid_target_10 v3
, v2
, v1
, v0
697 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid exp target
698 // CHECK-NEXT
:{{^
}}exp invalid_target_10 v3
, v2
, v1
, v0
699 // CHECK-NEXT
:{{^
}} ^
701 exp pos00 v3
, v2
, v1
, v0
702 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid exp target
703 // CHECK-NEXT
:{{^
}}exp pos00 v3
, v2
, v1
, v0
704 // CHECK-NEXT
:{{^
}} ^
706 //==============================================================================
707 // invalid immediate
: only
16-bit values are legal
709 s_setreg_b32
0x1f803, s2
710 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid immediate
: only
16-bit values are legal
711 // CHECK-NEXT
:{{^
}}s_setreg_b32
0x1f803, s2
712 // CHECK-NEXT
:{{^
}} ^
714 //==============================================================================
715 // invalid instruction
717 v_dot_f32_f16 v0
, v1
, v2
718 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid instruction
719 // CHECK-NEXT
:{{^
}}v_dot_f32_f16 v0
, v1
, v2
722 //==============================================================================
723 // invalid interpolation attribute
725 v_interp_p2_f32 v0
, v1
, att
726 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid interpolation attribute
727 // CHECK-NEXT
:{{^
}}v_interp_p2_f32 v0
, v1
, att
728 // CHECK-NEXT
:{{^
}} ^
730 //==============================================================================
731 // invalid interpolation slot
733 v_interp_mov_f32 v8
, p1
, attr0.x
734 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid interpolation slot
735 // CHECK-NEXT
:{{^
}}v_interp_mov_f32 v8
, p1
, attr0.x
736 // CHECK-NEXT
:{{^
}} ^
738 //==============================================================================
741 ds_swizzle_b32 v8
, v2 offset
:swizzle
(BITMASK_PERM
, "pppi2")
742 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid mask
743 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(BITMASK_PERM
, "pppi2")
744 // CHECK-NEXT
:{{^
}} ^
746 //==============================================================================
747 // invalid message id
749 s_sendmsg sendmsg
(-1)
750 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid message id
751 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(-1)
752 // CHECK-NEXT
:{{^
}} ^
754 //==============================================================================
755 // invalid message stream id
757 s_sendmsg sendmsg
(2, 2, 4)
758 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid message stream id
759 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(2, 2, 4)
760 // CHECK-NEXT
:{{^
}} ^
762 s_sendmsg sendmsg
(MSG_GS
, GS_OP_CUT
, 4)
763 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid message stream id
764 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(MSG_GS
, GS_OP_CUT
, 4)
765 // CHECK-NEXT
:{{^
}} ^
767 //==============================================================================
768 // invalid
mul value.
770 v_cvt_f64_i32 v
[5:6], s1
mul:3
771 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid
mul value.
772 // CHECK-NEXT
:{{^
}}v_cvt_f64_i32 v
[5:6], s1
mul:3
773 // CHECK-NEXT
:{{^
}} ^
775 //==============================================================================
776 // invalid
or missing interpolation attribute channel
778 v_interp_p2_f32 v0
, v1
, attr0.q
779 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid
or missing interpolation attribute channel
780 // CHECK-NEXT
:{{^
}}v_interp_p2_f32 v0
, v1
, attr0.q
781 // CHECK-NEXT
:{{^
}} ^
783 //==============================================================================
784 // invalid
or missing interpolation attribute number
786 v_interp_p2_f32 v7
, v1
, attr.x
787 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid
or missing interpolation attribute number
788 // CHECK-NEXT
:{{^
}}v_interp_p2_f32 v7
, v1
, attr.x
789 // CHECK-NEXT
:{{^
}} ^
791 //==============================================================================
792 // invalid op_sel operand
794 v_permlane16_b32 v5
, v1
, s2
, s3 op_sel
:[0, 0, 0, 1]
795 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid op_sel operand
796 // CHECK-NEXT
:{{^
}}v_permlane16_b32 v5
, v1
, s2
, s3 op_sel
:[0, 0, 0, 1]
797 // CHECK-NEXT
:{{^
}} ^
799 //==============================================================================
800 // invalid op_sel value.
802 v_pk_add_u16 v1
, v2
, v3 op_sel
:[-1,0]
803 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid op_sel value.
804 // CHECK-NEXT
:{{^
}}v_pk_add_u16 v1
, v2
, v3 op_sel
:[-1,0]
805 // CHECK-NEXT
:{{^
}} ^
807 //==============================================================================
808 // invalid operand
(violates constant bus restrictions
)
810 v_ashrrev_i64 v
[0:1], 0x100, s
[0:1]
811 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
812 // CHECK-NEXT
:{{^
}}v_ashrrev_i64 v
[0:1], 0x100, s
[0:1]
813 // CHECK-NEXT
:{{^
}} ^
815 v_ashrrev_i64 v
[0:1], s3
, s
[0:1]
816 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
817 // CHECK-NEXT
:{{^
}}v_ashrrev_i64 v
[0:1], s3
, s
[0:1]
818 // CHECK-NEXT
:{{^
}} ^
820 v_bfe_u32 v0
, s1
, 0x3039, s2
821 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
822 // CHECK-NEXT
:{{^
}}v_bfe_u32 v0
, s1
, 0x3039, s2
823 // CHECK-NEXT
:{{^
}} ^
825 v_bfe_u32 v0
, s1
, s2
, s3
826 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
827 // CHECK-NEXT
:{{^
}}v_bfe_u32 v0
, s1
, s2
, s3
828 // CHECK-NEXT
:{{^
}} ^
830 v_div_fmas_f32 v5
, s3
, 0x123, v3
831 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
832 // CHECK-NEXT
:{{^
}}v_div_fmas_f32 v5
, s3
, 0x123, v3
833 // CHECK-NEXT
:{{^
}} ^
835 v_div_fmas_f32 v5
, s3
, v3
, 0x123
836 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
837 // CHECK-NEXT
:{{^
}}v_div_fmas_f32 v5
, s3
, v3
, 0x123
838 // CHECK-NEXT
:{{^
}} ^
840 v_div_fmas_f32 v5
, 0x123, v3
, s3
841 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
842 // CHECK-NEXT
:{{^
}}v_div_fmas_f32 v5
, 0x123, v3
, s3
843 // CHECK-NEXT
:{{^
}} ^
845 v_div_fmas_f32 v5
, s3
, s4
, v3
846 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand
(violates constant bus restrictions
)
847 // CHECK-NEXT
:{{^
}}v_div_fmas_f32 v5
, s3
, s4
, v3
848 // CHECK-NEXT
:{{^
}} ^
850 //==============================================================================
851 // invalid operand for instruction
853 buffer_load_dword v
[5:6], off
, s
[8:11], s3 tfe lds
854 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
855 // CHECK-NEXT
:{{^
}}buffer_load_dword v
[5:6], off
, s
[8:11], s3 tfe lds
856 // CHECK-NEXT
:{{^
}} ^
858 exp mrt0
0x12345678, v0
, v0
, v0
859 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
860 // CHECK-NEXT
:{{^
}}exp mrt0
0x12345678, v0
, v0
, v0
861 // CHECK-NEXT
:{{^
}} ^
863 v_cmp_eq_f32 s
[0:1], private_base
, s0
864 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
865 // CHECK-NEXT
:{{^
}}v_cmp_eq_f32 s
[0:1], private_base
, s0
866 // CHECK-NEXT
:{{^
}} ^
868 //==============================================================================
869 // invalid operation id
871 s_sendmsg sendmsg
(15, -1)
872 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid operation id
873 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(15, -1)
874 // CHECK-NEXT
:{{^
}} ^
876 //==============================================================================
877 // invalid
or unsupported register size
879 s_mov_b64 s
[0:17], -1
880 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid
or unsupported register size
881 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[0:17], -1
882 // CHECK-NEXT
:{{^
}} ^
884 //==============================================================================
885 // invalid register alignment
887 s_load_dwordx4 s
[1:4], s
[2:3], s4
888 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid register alignment
889 // CHECK-NEXT
:{{^
}}s_load_dwordx4 s
[1:4], s
[2:3], s4
890 // CHECK-NEXT
:{{^
}} ^
892 //==============================================================================
893 // invalid register index
895 s_mov_b32 s1
, s
[0:-1]
896 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid register index
897 // CHECK-NEXT
:{{^
}}s_mov_b32 s1
, s
[0:-1]
898 // CHECK-NEXT
:{{^
}} ^
900 v_add_f64 v
[0:1], v
[0:1], v
[0xF00000001:0x2]
901 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid register index
902 // CHECK-NEXT
:{{^
}}v_add_f64 v
[0:1], v
[0:1], v
[0xF00000001:0x2]
903 // CHECK-NEXT
:{{^
}} ^
905 //==============================================================================
906 // invalid register name
908 s_mov_b64 s
[10:11], [x0
,s1
]
909 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid register name
910 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [x0
,s1
]
911 // CHECK-NEXT
:{{^
}} ^
913 //==============================================================================
914 // invalid row_share value
916 v_mov_b32_dpp v5
, v1 row_share
:16 row_mask
:0x0 bank_mask
:0x0
917 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid row_share value
918 // CHECK-NEXT
:{{^
}}v_mov_b32_dpp v5
, v1 row_share
:16 row_mask
:0x0 bank_mask
:0x0
919 // CHECK-NEXT
:{{^
}} ^
921 v_mov_b32_dpp v5
, v1 row_share
:-1 row_mask
:0x0 bank_mask
:0x0
922 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid row_share value
923 // CHECK-NEXT
:{{^
}}v_mov_b32_dpp v5
, v1 row_share
:-1 row_mask
:0x0 bank_mask
:0x0
924 // CHECK-NEXT
:{{^
}} ^
926 //==============================================================================
927 // invalid syntax
, expected
'neg' modifier
930 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid syntax
, expected
'neg' modifier
931 // CHECK-NEXT
:{{^
}}v_ceil_f32 v0
, --1
932 // CHECK-NEXT
:{{^
}} ^
934 //==============================================================================
935 // lane id must
be in the interval
[0,group size
- 1]
937 ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,2,-1)
938 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lane id must
be in the interval
[0,group size
- 1]
939 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
(BROADCAST
,2,-1)
940 // CHECK-NEXT
:{{^
}} ^
942 //==============================================================================
943 // lds_direct cannot
be used with this instruction
945 v_ashrrev_i16 v0
, lds_direct
, v0
946 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lds_direct cannot
be used with this instruction
947 // CHECK-NEXT
:{{^
}}v_ashrrev_i16 v0
, lds_direct
, v0
948 // CHECK-NEXT
:{{^
}} ^
950 v_ashrrev_i16 v0
, v1
, lds_direct
951 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lds_direct cannot
be used with this instruction
952 // CHECK-NEXT
:{{^
}}v_ashrrev_i16 v0
, v1
, lds_direct
953 // CHECK-NEXT
:{{^
}} ^
955 v_mov_b32_sdwa v1
, src_lds_direct dst_sel
:DWORD
956 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lds_direct cannot
be used with this instruction
957 // CHECK-NEXT
:{{^
}}v_mov_b32_sdwa v1
, src_lds_direct dst_sel
:DWORD
958 // CHECK-NEXT
:{{^
}} ^
960 v_add_f32_sdwa v5
, v1
, lds_direct dst_sel
:DWORD
961 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lds_direct cannot
be used with this instruction
962 // CHECK-NEXT
:{{^
}}v_add_f32_sdwa v5
, v1
, lds_direct dst_sel
:DWORD
963 // CHECK-NEXT
:{{^
}} ^
965 //==============================================================================
966 // lds_direct may
be used as src0 only
968 v_add_f32 v5
, v1
, lds_direct
969 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: lds_direct may
be used as src0 only
970 // CHECK-NEXT
:{{^
}}v_add_f32 v5
, v1
, lds_direct
971 // CHECK-NEXT
:{{^
}} ^
973 //==============================================================================
974 // message does
not support operations
976 s_sendmsg sendmsg
(MSG_GS_ALLOC_REQ
, 0)
977 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: message does
not support operations
978 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(MSG_GS_ALLOC_REQ
, 0)
979 // CHECK-NEXT
:{{^
}} ^
981 //==============================================================================
982 // message operation does
not support streams
984 s_sendmsg sendmsg
(MSG_GS_DONE
, GS_OP_NOP
, 0)
985 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: message operation does
not support streams
986 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(MSG_GS_DONE
, GS_OP_NOP
, 0)
987 // CHECK-NEXT
:{{^
}} ^
989 //==============================================================================
990 // missing message operation
992 s_sendmsg sendmsg
(MSG_SYSMSG
)
993 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: missing message operation
994 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(MSG_SYSMSG
)
995 // CHECK-NEXT
:{{^
}} ^
997 //==============================================================================
998 // missing register index
1000 s_mov_b64 s
[10:11], [s
1001 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: missing register index
1002 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [s
1003 // CHECK-NEXT
:{{^
}} ^
1005 s_mov_b64 s
[10:11], [s
,s1
]
1006 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: missing register index
1007 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [s
,s1
]
1008 // CHECK-NEXT
:{{^
}} ^
1010 //==============================================================================
1011 // not a valid operand.
1014 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: not a valid operand.
1015 // CHECK-NEXT
:{{^
}}s_branch offset
:1
1016 // CHECK-NEXT
:{{^
}} ^
1018 v_mov_b32 v0
, v0 row_bcast
:0
1019 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: not a valid operand.
1020 // CHECK-NEXT
:{{^
}}v_mov_b32 v0
, v0 row_bcast
:0
1021 // CHECK-NEXT
:{{^
}} ^
1023 //==============================================================================
1024 // only one unique literal operand is allowed
1026 s_and_b32 s2
, 0x12345678, 0x12345679
1027 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1028 // CHECK-NEXT
:{{^
}}s_and_b32 s2
, 0x12345678, 0x12345679
1029 // CHECK-NEXT
:{{^
}} ^
1031 v_add_f64 v
[0:1], 1.23456, -abs(1.2345)
1032 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1033 // CHECK-NEXT
:{{^
}}v_add_f64 v
[0:1], 1.23456, -abs(1.2345)
1034 // CHECK-NEXT
:{{^
}} ^
1036 v_min3_i16 v5
, 0x5678, 0x5678, 0x5679
1037 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1038 // CHECK-NEXT
:{{^
}}v_min3_i16 v5
, 0x5678, 0x5678, 0x5679
1039 // CHECK-NEXT
:{{^
}} ^
1041 v_pk_add_f16 v1
, 25.0, 25.1
1042 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1043 // CHECK-NEXT
:{{^
}}v_pk_add_f16 v1
, 25.0, 25.1
1044 // CHECK-NEXT
:{{^
}} ^
1046 v_fma_mix_f32 v5
, 0x7c, 0x7b, 1
1047 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1048 // CHECK-NEXT
:{{^
}}v_fma_mix_f32 v5
, 0x7c, 0x7b, 1
1049 // CHECK-NEXT
:{{^
}} ^
1051 v_pk_add_i16 v5
, 0x7c, 0x4000
1052 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1053 // CHECK-NEXT
:{{^
}}v_pk_add_i16 v5
, 0x7c, 0x4000
1054 // CHECK-NEXT
:{{^
}} ^
1056 v_pk_add_i16 v5
, 0x4400, 0x4000
1057 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1058 // CHECK-NEXT
:{{^
}}v_pk_add_i16 v5
, 0x4400, 0x4000
1059 // CHECK-NEXT
:{{^
}} ^
1061 v_bfe_u32 v0
, v2
, 123, undef
1062 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1063 // CHECK-NEXT
:{{^
}}v_bfe_u32 v0
, v2
, 123, undef
1064 // CHECK-NEXT
:{{^
}} ^
1066 v_bfe_u32 v0
, v2
, undef
, 123
1067 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: only one unique literal operand is allowed
1068 // CHECK-NEXT
:{{^
}}v_bfe_u32 v0
, v2
, undef
, 123
1069 // CHECK-NEXT
:{{^
}} ^
1071 //==============================================================================
1072 // out of bounds interpolation attribute number
1074 v_interp_p1_f32 v0
, v1
, attr64.w
1075 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: out of bounds interpolation attribute number
1076 // CHECK-NEXT
:{{^
}}v_interp_p1_f32 v0
, v1
, attr64.w
1077 // CHECK-NEXT
:{{^
}} ^
1079 //==============================================================================
1080 // out of range format
1082 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:-1, 0
1083 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: out of range format
1084 // CHECK-NEXT
:{{^
}}tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:-1, 0
1085 // CHECK-NEXT
:{{^
}} ^
1087 //==============================================================================
1088 // register does
not fit in the list
1090 s_mov_b64 s
[10:11], [exec
,exec_lo
]
1091 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register does
not fit in the list
1092 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [exec
,exec_lo
]
1093 // CHECK-NEXT
:{{^
}} ^
1095 s_mov_b64 s
[10:11], [exec_lo
,exec
]
1096 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register does
not fit in the list
1097 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [exec_lo
,exec
]
1098 // CHECK-NEXT
:{{^
}} ^
1100 //==============================================================================
1101 // register index is out of range
1103 s_add_i32 s106
, s0
, s1
1104 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register index is out of range
1105 // CHECK-NEXT
:{{^
}}s_add_i32 s106
, s0
, s1
1106 // CHECK-NEXT
:{{^
}} ^
1108 s_load_dwordx16 s
[100:115], s
[2:3], s4
1109 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register index is out of range
1110 // CHECK-NEXT
:{{^
}}s_load_dwordx16 s
[100:115], s
[2:3], s4
1111 // CHECK-NEXT
:{{^
}} ^
1114 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register index is out of range
1115 // CHECK-NEXT
:{{^
}}s_mov_b32 ttmp16
, 0
1116 // CHECK-NEXT
:{{^
}} ^
1118 v_add_nc_i32 v256
, v0
, v1
1119 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: register index is out of range
1120 // CHECK-NEXT
:{{^
}}v_add_nc_i32 v256
, v0
, v1
1121 // CHECK-NEXT
:{{^
}} ^
1123 //==============================================================================
1124 // register
not available on this GPU
1126 s_and_b32 ttmp9
, tma_hi
, 0x0000ffff
1127 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: tma_hi register
not available on this GPU
1128 // CHECK-NEXT
:{{^
}}s_and_b32 ttmp9
, tma_hi
, 0x0000ffff
1129 // CHECK-NEXT
:{{^
}} ^
1131 s_mov_b32 flat_scratch
, -1
1132 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: flat_scratch register
not available on this GPU
1133 // CHECK-NEXT
:{{^
}}s_mov_b32 flat_scratch
, -1
1134 // CHECK-NEXT
:{{^
}} ^
1136 //==============================================================================
1137 // registers in
a list must
be of the same kind
1139 s_mov_b64 s
[10:11], [a0
,v1
]
1140 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: registers in
a list must
be of the same kind
1141 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [a0
,v1
]
1142 // CHECK-NEXT
:{{^
}} ^
1144 //==============================================================================
1145 // registers in
a list must have consecutive indices
1147 s_mov_b64 s
[10:11], [a0
,a2
]
1148 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: registers in
a list must have consecutive indices
1149 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [a0
,a2
]
1150 // CHECK-NEXT
:{{^
}} ^
1152 s_mov_b64 s
[10:11], [s0
,s0
]
1153 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: registers in
a list must have consecutive indices
1154 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [s0
,s0
]
1155 // CHECK-NEXT
:{{^
}} ^
1157 s_mov_b64 s
[10:11], [s2
,s1
]
1158 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: registers in
a list must have consecutive indices
1159 // CHECK-NEXT
:{{^
}}s_mov_b64 s
[10:11], [s2
,s1
]
1160 // CHECK-NEXT
:{{^
}} ^
1162 //==============================================================================
1163 // source operand must
be a VGPR
1165 v_movrels_b32_sdwa v0
, 1 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD
1166 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: source operand must
be a VGPR
1167 // CHECK-NEXT
:{{^
}}v_movrels_b32_sdwa v0
, 1 dst_sel
:DWORD dst_unused
:UNUSED_PAD src0_sel
:DWORD
1168 // CHECK-NEXT
:{{^
}} ^
1170 v_movrels_b32_sdwa v0
, s0
1171 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: source operand must
be a VGPR
1172 // CHECK-NEXT
:{{^
}}v_movrels_b32_sdwa v0
, s0
1173 // CHECK-NEXT
:{{^
}} ^
1175 v_movrels_b32_sdwa v0
, shared_base
1176 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: source operand must
be a VGPR
1177 // CHECK-NEXT
:{{^
}}v_movrels_b32_sdwa v0
, shared_base
1178 // CHECK-NEXT
:{{^
}} ^
1180 //==============================================================================
1181 // invalid hardware register
: not supported on this GPU
1183 s_getreg_b32 s2
, hwreg
(HW_REG_SHADER_CYCLES
)
1184 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: invalid hardware register
: not supported on this GPU
1185 // CHECK-NEXT
:{{^
}}s_getreg_b32 s2
, hwreg
(HW_REG_SHADER_CYCLES
)
1186 // CHECK-NEXT
:{{^
}} ^
1188 //==============================================================================
1189 // too few operands for instruction
1191 tbuffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7]
1192 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too few operands for instruction
1193 // CHECK-NEXT
:{{^
}}tbuffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7]
1194 // CHECK-NEXT
:{{^
}}^
1196 v_add_f32_e64 v0
, v1
1197 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too few operands for instruction
1198 // CHECK-NEXT
:{{^
}}v_add_f32_e64 v0
, v1
1199 // CHECK-NEXT
:{{^
}}^
1201 buffer_load_dword off
, s
[8:11], s3
1202 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too few operands for instruction
1203 // CHECK-NEXT
:{{^
}}buffer_load_dword off
, s
[8:11], s3
1204 // CHECK-NEXT
:{{^
}}^
1206 buffer_load_dword off
, s
[8:11], s3 offset
:1
1207 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too few operands for instruction
1208 // CHECK-NEXT
:{{^
}}buffer_load_dword off
, s
[8:11], s3 offset
:1
1209 // CHECK-NEXT
:{{^
}}^
1211 //==============================================================================
1212 // too large value for expcnt
1215 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too large value for expcnt
1216 // CHECK-NEXT
:{{^
}}s_waitcnt expcnt
(8)
1217 // CHECK-NEXT
:{{^
}} ^
1219 //==============================================================================
1220 // too large value for lgkmcnt
1222 s_waitcnt lgkmcnt
(64)
1223 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too large value for lgkmcnt
1224 // CHECK-NEXT
:{{^
}}s_waitcnt lgkmcnt
(64)
1225 // CHECK-NEXT
:{{^
}} ^
1227 //==============================================================================
1228 // too large value for vmcnt
1231 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: too large value for vmcnt
1232 // CHECK-NEXT
:{{^
}}s_waitcnt vmcnt
(64)
1233 // CHECK-NEXT
:{{^
}} ^
1235 //==============================================================================
1236 // unknown token in expression
1238 ds_swizzle_b32 v8
, v2 offset
:
1239 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1240 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:
1241 // CHECK-NEXT
:{{^
}} ^
1243 s_sendmsg sendmsg
(1 -)
1244 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1245 // CHECK-NEXT
:{{^
}}s_sendmsg sendmsg
(1 -)
1246 // CHECK-NEXT
:{{^
}} ^
1248 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1,, s0
1249 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1250 // CHECK-NEXT
:{{^
}}tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1,, s0
1251 // CHECK-NEXT
:{{^
}} ^
1253 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1:, s0
1254 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1255 // CHECK-NEXT
:{{^
}}tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1:, s0
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 v_pk_add_u16 v1
, v2
, v3 op_sel
:[,0]
1264 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1265 // CHECK-NEXT
:{{^
}}v_pk_add_u16 v1
, v2
, v3 op_sel
:[,0]
1266 // CHECK-NEXT
:{{^
}} ^
1268 v_pk_add_u16 v1
, v2
, v3 op_sel
:[,]
1269 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1270 // CHECK-NEXT
:{{^
}}v_pk_add_u16 v1
, v2
, v3 op_sel
:[,]
1271 // CHECK-NEXT
:{{^
}} ^
1273 v_pk_add_u16 v1
, v2
, v3 op_sel
:[0,]
1274 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1275 // CHECK-NEXT
:{{^
}}v_pk_add_u16 v1
, v2
, v3 op_sel
:[0,]
1276 // CHECK-NEXT
:{{^
}} ^
1278 v_pk_add_u16 v1
, v2
, v3 op_sel
:[]
1279 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unknown token in expression
1280 // CHECK-NEXT
:{{^
}}v_pk_add_u16 v1
, v2
, v3 op_sel
:[]
1281 // CHECK-NEXT
:{{^
}} ^
1283 //==============================================================================
1284 // unsupported format
1286 tbuffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7], s0 format
:[BUF_DATA_FORMAT
]
1287 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
1288 // CHECK-NEXT
:{{^
}}tbuffer_store_format_xyzw v
[1:4], off
, ttmp
[4:7], s0 format
:[BUF_DATA_FORMAT
]
1289 // CHECK-NEXT
:{{^
}} ^
1291 //==============================================================================
1292 // expected vertical bar
1294 v_ceil_f32 v1
, |
1+1|
1295 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected vertical bar
1296 // CHECK-NEXT
:{{^
}}v_ceil_f32 v1
, |
1+1|
1297 // CHECK-NEXT
:{{^
}} ^
1299 //==============================================================================
1300 // expected left paren after
neg
1302 v_ceil_f32 v1
, neg-
(v2
)
1303 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected left paren after
neg
1304 // CHECK-NEXT
:{{^
}}v_ceil_f32 v1
, neg-
(v2
)
1305 // CHECK-NEXT
:{{^
}} ^
1307 //==============================================================================
1308 // expected left paren after
abs
1310 v_ceil_f32 v1
, abs-
(v2
)
1311 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected left paren after
abs
1312 // CHECK-NEXT
:{{^
}}v_ceil_f32 v1
, abs-
(v2
)
1313 // CHECK-NEXT
:{{^
}} ^
1315 //==============================================================================
1316 // expected left paren after sext
1318 v_cmpx_f_i32_sdwa sext
[v1
], v2 src0_sel
:DWORD src1_sel
:DWORD
1319 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected left paren after sext
1320 // CHECK-NEXT
:{{^
}}v_cmpx_f_i32_sdwa sext
[v1
], v2 src0_sel
:DWORD src1_sel
:DWORD
1321 // CHECK-NEXT
:{{^
}} ^
1323 //==============================================================================
1324 // expected closing parentheses
1326 v_ceil_f32 v1
, abs(v2
]
1327 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected closing parentheses
1328 // CHECK-NEXT
:{{^
}}v_ceil_f32 v1
, abs(v2
]
1329 // CHECK-NEXT
:{{^
}} ^
1331 v_ceil_f32 v1
, neg(v2
]
1332 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected closing parentheses
1333 // CHECK-NEXT
:{{^
}}v_ceil_f32 v1
, neg(v2
]
1334 // CHECK-NEXT
:{{^
}} ^
1336 v_cmpx_f_i32_sdwa sext
(v1
], v2 src0_sel
:DWORD src1_sel
:DWORD
1337 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected closing parentheses
1338 // CHECK-NEXT
:{{^
}}v_cmpx_f_i32_sdwa sext
(v1
], v2 src0_sel
:DWORD src1_sel
:DWORD
1339 // CHECK-NEXT
:{{^
}} ^
1341 //==============================================================================
1342 // expected
a left parentheses
1344 ds_swizzle_b32 v8
, v2 offset
:swizzle
[QUAD_PERM
, 0, 1, 2, 3]
1345 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a left parentheses
1346 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:swizzle
[QUAD_PERM
, 0, 1, 2, 3]
1347 // CHECK-NEXT
:{{^
}} ^
1349 //==============================================================================
1350 // expected an absolute expression
or a label
1353 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected an absolute expression
or a label
1354 // CHECK-NEXT
:{{^
}}s_branch
1+x
1355 // CHECK-NEXT
:{{^
}} ^
1357 //==============================================================================
1358 // expected
a 16-bit offset
1360 ds_swizzle_b32 v8
, v2 offset
:0x10000
1361 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a 16-bit offset
1362 // CHECK-NEXT
:{{^
}}ds_swizzle_b32 v8
, v2 offset
:0x10000
1363 // CHECK-NEXT
:{{^
}} ^
1365 //==============================================================================
1366 // not a valid operand
1368 v_cndmask_b32_sdwa v5
, v1
, sext
(v2
), vcc dst_sel
:DWORD dst_unused
:UNUSED_PRESERVE src0_sel
:BYTE_0 src1_sel
:WORD_0
1369 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: not a valid operand.
1370 // 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
1371 // CHECK-NEXT
:{{^
}} ^
1373 //==============================================================================
1374 // TFE modifier has no meaning for store instructions
1376 buffer_store_dword v
[1:2], off
, s
[12:15], s4 tfe
1377 // CHECK
: :[[@LINE-
1]]:{{[0-9]+}}: error
: TFE modifier has no meaning for store instructions
1378 // CHECK-NEXT
:{{^
}}buffer_store_dword v
[1:2], off
, s
[12:15], s4 tfe
1379 // CHECK-NEXT
:{{^
}} ^