ds_wrxchg2st64_rtn_b64 GPU Native ISA AMD Vector

DS WRXCHG2ST64 RTN B64 LDS / Data Share

ds_wrxchg2st64_rtn_b64

Swap two unsigned 64-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 64-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 * 512U; addr2 = ADDR_BASE.u32 + OFFSET1.u32 * 512U; tmp1 = MEM[addr1].b64; tmp2 = MEM[addr2].b64; MEM[addr1].b64 = DATA.b64; MEM[addr2].b64 = DATA2.b64; // Note DATA2 can be any other register RETURN_DATA[63 : 0] = tmp1; RETURN_DATA[127 : 64] = tmp2

Example

ds_wrxchg2st64_rtn_b64 v[5:8], v1, v[2:3], v[3:4]

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