Skip to content

Commit 8cb7b4f

Browse files
[AMDGPU] Ensure positive InstOffset for buffer operations
GFX12+ buffer ops require positive InstOffset per AMD hardware spec. Modified assembler/disassembler to reject negative buffer offsets.
1 parent ddecfa6 commit 8cb7b4f

File tree

4 files changed

+311
-2
lines changed

4 files changed

+311
-2
lines changed

llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4464,12 +4464,13 @@ bool AMDGPUAsmParser::validateOffset(const MCInst &Inst,
44644464
return validateSMEMOffset(Inst, Operands);
44654465

44664466
const auto &Op = Inst.getOperand(OpNum);
4467+
// GFX12+ buffer ops: InstOffset is signed 24, but must be positive
44674468
if (isGFX12Plus() &&
44684469
(TSFlags & (SIInstrFlags::MUBUF | SIInstrFlags::MTBUF))) {
44694470
const unsigned OffsetSize = 24;
4470-
if (!isIntN(OffsetSize, Op.getImm())) {
4471+
if (!isUIntN(OffsetSize - 1, Op.getImm())) {
44714472
Error(getFlatOffsetLoc(Operands),
4472-
Twine("expected a ") + Twine(OffsetSize) + "-bit signed offset");
4473+
Twine("expected a ") + Twine(OffsetSize - 1) + "-bit positive offset for buffer ops");
44734474
return false;
44744475
}
44754476
} else {
@@ -4547,6 +4548,16 @@ bool AMDGPUAsmParser::validateSMEMOffset(const MCInst &Inst,
45474548

45484549
uint64_t Offset = Op.getImm();
45494550
bool IsBuffer = AMDGPU::getSMEMIsBuffer(Opcode);
4551+
// GFX12+ S_BUFFER_*: InstOffset is signed 24, but must be positive
4552+
if (isGFX12Plus() && IsBuffer) {
4553+
const unsigned OffsetSize = 24;
4554+
if (!isUIntN(OffsetSize, Offset)) {
4555+
Error(getSMEMOffsetLoc(Operands),
4556+
Twine("expected a ") + Twine(OffsetSize - 1) + "-bit positive offset for S_BUFFER ops");
4557+
return false;
4558+
}
4559+
return true;
4560+
}
45504561
if (AMDGPU::isLegalSMRDEncodedUnsignedOffset(getSTI(), Offset) ||
45514562
AMDGPU::isLegalSMRDEncodedSignedOffset(getSTI(), Offset, IsBuffer))
45524563
return true;

llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,6 +803,21 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
803803
}
804804
}
805805

806+
// Validate buffer offset for GFX12+ - must be positive
807+
if ((MCII->get(MI.getOpcode()).TSFlags &
808+
(SIInstrFlags::MTBUF | SIInstrFlags::MUBUF)) &&
809+
AMDGPU::isGFX12Plus(STI)) {
810+
int OffsetIdx =
811+
AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::offset);
812+
if (OffsetIdx != -1) {
813+
uint32_t Imm = MI.getOperand(OffsetIdx).getImm();
814+
int64_t SignedOffset = SignExtend64<24>(Imm);
815+
if (SignedOffset < 0) {
816+
return MCDisassembler::Fail;
817+
}
818+
}
819+
}
820+
806821
if (MCII->get(MI.getOpcode()).TSFlags &
807822
(SIInstrFlags::MTBUF | SIInstrFlags::MUBUF)) {
808823
int SWZOpIdx =

llvm/test/MC/AMDGPU/gfx12_err.s

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,261 @@ s_alloc_vgpr exec
125125

126126
s_alloc_vgpr vcc
127127
// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
128+
129+
buffer_load_dword v0, off, s[4:7], s8 offset:-1
130+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
131+
132+
buffer_load_dword v0, off, s[4:7], s8 offset:-1
133+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
134+
135+
buffer_load_dwordx2 v[0:1], off, s[4:7], s8 offset:-1
136+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
137+
138+
buffer_load_dwordx3 v[0:2], off, s[4:7], s8 offset:-1
139+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
140+
141+
buffer_load_dwordx4 v[0:3], off, s[4:7], s8 offset:-1
142+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
143+
144+
buffer_load_short_d16 v0, off, s[4:7], s8 offset:-1
145+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
146+
147+
buffer_load_format_d16_x v0, off, s[4:7], s8 offset:-1
148+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
149+
150+
buffer_load_format_d16_xy v0, off, s[4:7], s8 offset:-1
151+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
152+
153+
buffer_load_format_d16_xyz v[0:1], off, s[4:7], s8 offset:-1
154+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
155+
156+
buffer_load_format_d16_xyzw v[0:1], off, s[4:7], s8 offset:-1
157+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
158+
159+
buffer_load_short_d16_hi v0, off, s[4:7], s8 offset:-1
160+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
161+
162+
buffer_load_format_d16_hi_x v0, off, s[4:7], s8 offset:-1
163+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
164+
165+
buffer_load_sbyte_d16_hi v0, off, s[4:7], s8 offset:-1
166+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
167+
168+
buffer_load_ubyte_d16_hi v0, off, s[4:7], s8 offset:-1
169+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
170+
171+
buffer_load_sbyte_d16 v0, off, s[4:7], s8 offset:-1
172+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
173+
174+
buffer_load_ubyte_d16 v0, off, s[4:7], s8 offset:-1
175+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
176+
177+
buffer_load_sbyte v0, off, s[4:7], s8 offset:-1
178+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
179+
180+
buffer_load_sshort v0, off, s[4:7], s8 offset:-1
181+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
182+
183+
buffer_load_ubyte v0, off, s[4:7], s8 offset:-1
184+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
185+
186+
buffer_load_ushort v0, off, s[4:7], s8 offset:-1
187+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
188+
189+
buffer_store_byte v0, off, s[4:7], s8 offset:-1
190+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
191+
192+
buffer_store_short v0, off, s[4:7], s8 offset:-1
193+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
194+
195+
buffer_store_dword v0, off, s[4:7], s8 offset:-1
196+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
197+
198+
buffer_store_dwordx2 v[0:1], off, s[4:7], s8 offset:-1
199+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
200+
201+
buffer_store_dwordx3 v[0:2], off, s[4:7], s8 offset:-1
202+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
203+
204+
buffer_store_dwordx4 v[0:3], off, s[4:7], s8 offset:-1
205+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
206+
207+
buffer_store_format_d16_x v0, off, s[4:7], s8 offset:-1
208+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
209+
210+
buffer_store_format_d16_xy v0, off, s[4:7], s8 offset:-1
211+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
212+
213+
buffer_store_format_d16_xyz v[0:1], off, s[4:7], s8 offset:-1
214+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
215+
216+
buffer_store_format_d16_xyzw v[0:1], off, s[4:7], s8 offset:-1
217+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
218+
219+
buffer_store_byte_d16_hi v0, off, s[4:7], s8 offset:-1
220+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
221+
222+
buffer_store_short_d16_hi v0, off, s[4:7], s8 offset:-1
223+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
224+
225+
buffer_store_format_d16_hi_x v0, off, s[4:7], s8 offset:-1
226+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
227+
228+
buffer_atomic_add v0, off, s[4:7], s8 offset:-1
229+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
230+
231+
buffer_atomic_add_x2 v[0:1], off, s[4:7], s8 offset:-1
232+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
233+
234+
buffer_atomic_and v0, off, s[4:7], s8 offset:-1
235+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
236+
237+
buffer_atomic_and_x2 v[0:1], off, s[4:7], s8 offset:-1
238+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
239+
240+
buffer_atomic_cmpswap v[0:1], off, s[4:7], s8 offset:-1
241+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
242+
243+
buffer_atomic_cmpswap_x2 v[0:3], off, s[4:7], s8 offset:-1
244+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
245+
246+
buffer_atomic_csub v0, off, s[4:7], s8 offset:-1
247+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
248+
249+
buffer_atomic_dec v0, off, s[4:7], s8 offset:-1
250+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
251+
252+
buffer_atomic_dec_x2 v[0:1], off, s[4:7], s8 offset:-1
253+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
254+
255+
buffer_atomic_inc v0, off, s[4:7], s8 offset:-1
256+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
257+
258+
buffer_atomic_inc_x2 v[0:1], off, s[4:7], s8 offset:-1
259+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
260+
261+
buffer_atomic_fmax v0, off, s[4:7], s8 offset:-1
262+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
263+
264+
buffer_atomic_smax v0, off, s[4:7], s8 offset:-1
265+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
266+
267+
buffer_atomic_smax_x2 v[0:1], off, s[4:7], s8 offset:-1
268+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
269+
270+
buffer_atomic_umax v0, off, s[4:7], s8 offset:-1
271+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
272+
273+
buffer_atomic_umax_x2 v[0:1], off, s[4:7], s8 offset:-1
274+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
275+
276+
buffer_atomic_fmin v0, off, s[4:7], s8 offset:-1
277+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
278+
279+
buffer_atomic_smin v0, off, s[4:7], s8 offset:-1
280+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
281+
282+
buffer_atomic_smin_x2 v[0:1], off, s[4:7], s8 offset:-1
283+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
284+
285+
buffer_atomic_umin v0, off, s[4:7], s8 offset:-1
286+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
287+
288+
buffer_atomic_umin_x2 v[0:1], off, s[4:7], s8 offset:-1
289+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
290+
291+
buffer_atomic_or v0, off, s[4:7], s8 offset:-1
292+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
293+
294+
buffer_atomic_or_x2 v[0:1], off, s[4:7], s8 offset:-1
295+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
296+
297+
buffer_atomic_sub v0, off, s[4:7], s8 offset:-1
298+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
299+
300+
buffer_atomic_sub_x2 v[0:1], off, s[4:7], s8 offset:-1
301+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
302+
303+
buffer_atomic_swap v0, off, s[4:7], s8 offset:-1
304+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
305+
306+
buffer_atomic_swap_x2 v[0:1], off, s[4:7], s8 offset:-1
307+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
308+
309+
buffer_atomic_xor v0, off, s[4:7], s8 offset:-1
310+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
311+
312+
buffer_atomic_xor_x2 v[0:1], off, s[4:7], s8 offset:-1
313+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
314+
315+
tbuffer_load_format_d16_x v0, off, s[4:7], s8 offset:-1
316+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
317+
318+
tbuffer_load_format_d16_xy v0, off, s[4:7], s8 offset:-1
319+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
320+
321+
tbuffer_load_format_d16_xyz v[0:1], off, s[4:7], s8 offset:-1
322+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
323+
324+
tbuffer_load_format_d16_xyzw v[0:1], off, s[4:7], s8 offset:-1
325+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
326+
327+
tbuffer_load_format_x v0, off, s[4:7], s8 offset:-1
328+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
329+
330+
tbuffer_load_format_xy v[0:1], off, s[4:7], s8 offset:-1
331+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
332+
333+
tbuffer_load_format_xyz v[0:2], off, s[4:7], s8 offset:-1
334+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
335+
336+
tbuffer_load_format_xyzw v[0:3], off, s[4:7], s8 offset:-1
337+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
338+
339+
tbuffer_store_format_d16_x v0, off, s[4:7], s8 offset:-1
340+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
341+
342+
tbuffer_store_format_d16_xy v0, off, s[4:7], s8 offset:-1
343+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
344+
345+
tbuffer_store_format_d16_xyz v[0:1], off, s[4:7], s8 offset:-1
346+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
347+
348+
tbuffer_store_format_d16_xyzw v[0:1], off, s[4:7], s8 offset:-1
349+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
350+
351+
tbuffer_store_format_x v0, off, s[4:7], s8 offset:-1
352+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
353+
354+
tbuffer_store_format_xy v[0:1], off, s[4:7], s8 offset:-1
355+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
356+
357+
tbuffer_store_format_xyz v[0:2], off, s[4:7], s8 offset:-1
358+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
359+
360+
tbuffer_store_format_xyzw v[0:3], off, s[4:7], s8 offset:-1
361+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for buffer ops
362+
363+
s_buffer_load_b32 s5, s[4:7], s0 offset:-1
364+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
365+
366+
s_buffer_load_b64 s[10:11], s[4:7], s0 offset:-1
367+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
368+
369+
s_buffer_load_b96 s[20:22], s[4:7], s0 offset:-1
370+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
371+
372+
s_buffer_load_i8 s5, s[4:7], s0 offset:-1
373+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
374+
375+
s_buffer_load_u8 s5, s[4:7], s0 offset:-1
376+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
377+
378+
s_buffer_load_i16 s5, s[4:7], s0 offset:-1
379+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
380+
381+
s_buffer_load_u16 s5, s[4:7], s0 offset:-1
382+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
383+
384+
s_buffer_prefetch_data s[20:23], -1, s10, 7
385+
// GFX12-ERR: [[@LINE-1]]:{{[0-9]+}}: error: expected a 23-bit positive offset for S_BUFFER ops
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# RUN: not llvm-mc -disassemble -triple=amdgcn -mcpu=gfx1200 -show-encoding %s 2>&1 | FileCheck --implicit-check-not=warning: --check-prefix=GFX12 %s
2+
3+
# buffer_load_b32 v1, off, s[0:3], s4 offset:-1
4+
# GFX12: warning: invalid instruction encoding
5+
[0x04,0x00,0x05,0xc4,0x01,0x00,0x80,0x00,0xff,0xff,0xff,0xff]
6+
7+
# buffer_load_b32 v0, off, s[4:7], s8 offset:-1
8+
# GFX12: warning: invalid instruction encoding
9+
[0x08,0x00,0x05,0xc4,0x00,0x08,0x80,0x00,0xff,0xff,0xff,0xff]
10+
11+
# buffer_load_b64 v[0:1], off, s[4:7], s8 offset:-1
12+
# GFX12: warning: invalid instruction encoding
13+
[0x08,0x40,0x05,0xc4,0x00,0x08,0x80,0x00,0xff,0xff,0xff,0xff]
14+
15+
# buffer_store_b32 v0, off, s[4:7], s8 offset:-1
16+
# GFX12: warning: invalid instruction encoding
17+
[0x08,0x80,0x06,0xc4,0x00,0x08,0x80,0x00,0xff,0xff,0xff,0xff]
18+
19+
# buffer_atomic_add v0, off, s[4:7], s8 offset:-1
20+
# GFX12: warning: invalid instruction encoding
21+
[0x08,0x40,0x0d,0xc4,0x00,0x08,0x80,0x00,0xff,0xff,0xff,0xff]
22+
23+
# tbuffer_load_format_x v0, off, s[4:7], s8 format:0 offset:-1
24+
# GFX12: warning: invalid instruction encoding
25+
[0x08,0x00,0x20,0xc4,0x00,0x08,0x00,0x00,0xff,0xff,0xff,0xff]

0 commit comments

Comments
 (0)