ds_wrxchg2st64_rtn_b32 GPU Native ISA AMD Vector

DS WRXCHG2ST64 RTN B32 LDS / Data Share

ds_wrxchg2st64_rtn_b32

Swap two unsigned 32-bit integer values in the data registers with two locations in a data share.

Encoding

Verified bit-level encoding data is not yet available for this instruction. The instruction-format classification below (DS) is well-documented and stable; exact per-target opcode/field bit positions have not yet been imported from a verified source.
Format DS
Execution Unit

Operands

Operand details have not yet been curated for this instruction.

GFX Target Compatibility

TargetSupport
gfx1100✅ Supported

Related

More in LDS / Data Share

Reference

AMDGPU / GFX ISA

Description

Swap two unsigned 32-bit integer values in the data registers with two locations in a data share. Treat each offset as an index and multiply by a stride of 64 elements (256 bytes) to generate an offset for each DS address.

Semantics

addr1 = ADDR_BASE.u32 + OFFSET0.u32 * 256U; addr2 = ADDR_BASE.u32 + OFFSET1.u32 * 256U; tmp1 = MEM[addr1].b32; tmp2 = MEM[addr2].b32; MEM[addr1].b32 = DATA.b32; MEM[addr2].b32 = DATA2.b32; // Note DATA2 can be any other register RETURN_DATA[31 : 0] = tmp1; RETURN_DATA[63 : 32] = tmp2

Example

ds_wrxchg2st64_rtn_b32 v[5:6], v1, v2, v3

A real instruction accepted by the LLVM assembler, taken verbatim from LLVM's own AMDGPU MC test suite (gfx11). Not from an AMD document, and not authored here.

Sources