ds_wrap_rtn_b32 GPU Native ISA AMD Vector
LDS / Data Share
Given a minuend from a location in data share and a subtrahend from a vector register, subtract the two values iff the result is nonnegative…
Encoding
The ENC_DS layout from AMD's machine-readable ISA specification (AMD CDNA 4). Opcode 52 in OP rebuilds 0x00000000D8680000, an identifier AMD lists for this encoding. Not the same in every generation: AMD CDNA 1 (field layout), AMD RDNA 3.5 (field layout), AMD RDNA 3 (field layout), AMD RDNA 2 (field layout), AMD RDNA 1 (field layout). The same in AMD CDNA 3, AMD CDNA 2.
Operands
-
VDST
Written. N/A Data format: N/A (OPR_VGPR_OR_ACCVGPR, FMT_NUM_B32) -
ADDR
Read. N/A Data format: N/A (OPR_VGPR, FMT_NUM_B32) -
DATA0
Read. N/A Data format: N/A (OPR_VGPR_OR_ACCVGPR, FMT_NUM_B32) -
DATA1
Read. N/A Data format: N/A (OPR_VGPR_OR_ACCVGPR, FMT_NUM_B32)
In AMD's order, as its machine-readable ISA specification lists them for the ENC_DS encoding (AMD CDNA 4).
GFX Target Compatibility
| Target | Support |
|---|---|
| gfx1100 | ✅ Supported |
This instruction is designed to for use in ring buffer management.
Related
More in LDS / Data Share
Reference
Description
Semantics
Example
ds_wrap_rtn_b32 v5, v1, v2, v3A real instruction accepted by the LLVM assembler, taken verbatim from LLVM's own AMDGPU MC test suite. Not from an AMD document, and not authored here.
Sources
- User Guide for AMDGPU Backend ↗ - LLVM Project
-
"AMD Instinct MI300" Instruction Set Architecture: Reference Guide ↗
- Advanced Micro Devices, Inc.
Reference Guide, page 431. - LLVM MC assembler tests for AMDGPU ↗ - LLVM Project
- AMD Machine-Readable GPU ISA Specification ↗ - Advanced Micro Devices, Inc.