AMDGPU / GFX Instructions GPU Native ISA AMD
1960 instructions - showing 100 per page, page 14 of 20 - AMDGPU/GFX is AMD's native, low-level
GPU instruction set family, assembled directly with no virtual intermediate layer. Supported
instructions and their exact encodings vary by GFX compatibility target (e.g.
gfx942, gfx1100). Scalar instructions execute once per wavefront on
the Scalar ALU; vector instructions execute per-lane on the Vector ALU, gated by the EXEC mask.
| Mnemonic | Syntax | Format | GFX Targets | Unit | Summary |
|---|---|---|---|---|---|
| v_cvt_f32_i32 | v_cvt_f32_i32 VDST, S0 | VOP1 | gfx942, gfx1100 | Vector ALU | Per-lane conversion from signed 32-bit integer to single-precision float. |
| v_cvt_f32_u32 | v_cvt_f32_u32 | VOP1 | gfx1100 | Convert from an unsigned 32-bit integer input to a single-precision float value and store the result into a vector register. | |
| v_cvt_f32_ubyte0 | v_cvt_f32_ubyte0 | VOP1 | gfx1100 | Convert an unsigned byte in byte 0 of the input to a single-precision float value and store the result into a vector register. | |
| v_cvt_f32_ubyte1 | v_cvt_f32_ubyte1 | VOP1 | gfx1100 | Convert an unsigned byte in byte 1 of the input to a single-precision float value and store the result into a vector register. | |
| v_cvt_f32_ubyte2 | v_cvt_f32_ubyte2 | VOP1 | gfx1100 | Convert an unsigned byte in byte 2 of the input to a single-precision float value and store the result into a vector register. | |
| v_cvt_f32_ubyte3 | v_cvt_f32_ubyte3 | VOP1 | gfx1100 | Convert an unsigned byte in byte 3 of the input to a single-precision float value and store the result into a vector register. | |
| v_cvt_f64_f32 | v_cvt_f64_f32 | VOP1 | gfx1100 | Convert from a single-precision float input to a double-precision float value and store the result into a vector register. | |
| v_cvt_f64_i32 | v_cvt_f64_i32 | VOP1 | gfx1100 | Convert from a signed 32-bit integer input to a double-precision float value and store the result into a vector register. | |
| v_cvt_f64_u32 | v_cvt_f64_u32 | VOP1 | gfx1100 | Convert from an unsigned 32-bit integer input to a double-precision float value and store the result into a vector register. | |
| v_cvt_flr_i32_f32 | v_cvt_flr_i32_f32 | VOP1 | Convert from a single-precision float input to a signed 32-bit integer value using round-down semantics (ignore the default rounding mode) and store… | ||
| v_cvt_i16_f16 | v_cvt_i16_f16 | VOP1 | gfx1100 | Convert from a half-precision float input to a signed 16-bit integer value and store the result into a vector register. | |
| v_cvt_i32_f32 | v_cvt_i32_f32 | VOP1 | gfx1100 | Convert from a single-precision float input to a signed 32-bit integer value and store the result into a vector register. | |
| v_cvt_i32_f64 | v_cvt_i32_f64 | VOP1 | gfx1100 | Convert from a double-precision float input to a signed 32-bit integer value and store the result into a vector register. | |
| v_cvt_i32_i16 | v_cvt_i32_i16 | VOP1 | gfx1100 | Convert from a signed 16-bit integer input to a signed 32-bit integer value using sign extension and store the result into a vector register. | |
| v_cvt_norm_i16_f16 | v_cvt_norm_i16_f16 | VOP1 | gfx1100 | Convert from a half-precision float input to a signed normalized short and store the result into a vector register. | |
| v_cvt_norm_u16_f16 | v_cvt_norm_u16_f16 | VOP1 | gfx1100 | Convert from a half-precision float input to an unsigned normalized short and store the result into a vector register. | |
| v_cvt_off_f32_i4 | v_cvt_off_f32_i4 | VOP1 | gfx1100 | Convert from a signed 4-bit integer input to a single-precision float value using an offset table and store the result into a vector register. | |
| v_cvt_pk_bf16_f32 | v_cvt_pk_bf16_f32 | VOP3 | Convert from two single-precision float inputs to a packed BF16 value and store the result into a vector register. | ||
| v_cvt_pk_bf8_f16 | v_cvt_pk_bf8_f16 | VOP1 | AMDGPU VOP1 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_pk_bf8_f32 | v_cvt_pk_bf8_f32 | VOP3 | gfx1100 | Convert from two single-precision float inputs to a packed BF8 float value with round to nearest even semantics and store the result into 16 bits of… | |
| v_cvt_pk_f16_bf8 | v_cvt_pk_f16_bf8 | VOP1 | AMDGPU VOP1 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_pk_f16_f32 | v_cvt_pk_f16_f32 | VOP3 | Convert from two single-precision float inputs to a packed half-precision value and store the result into a vector register. | ||
| v_cvt_pk_f16_fp8 | v_cvt_pk_f16_fp8 | VOP1 | AMDGPU VOP1 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_pk_f32_bf8 | v_cvt_pk_f32_bf8 | VOP1 | Convert from a packed 2-component BF8 float input to a packed single-precision float value and store the result into a vector register. | ||
| v_cvt_pk_f32_bf8_fake16 | v_cvt_pk_f32_bf8_fake16 | VOP1 | gfx1100 | AMDGPU VOP1 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | |
| v_cvt_pk_f32_bf8_t16 | v_cvt_pk_f32_bf8_t16 | VOP1 | gfx1100 | AMDGPU VOP1 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | |
| v_cvt_pk_f32_fp8 | v_cvt_pk_f32_fp8 | VOP1 | Convert from a packed 2-component FP8 float input to a packed single-precision float value and store the result into a vector register. | ||
| v_cvt_pk_f32_fp8_fake16 | v_cvt_pk_f32_fp8_fake16 | VOP1 | gfx1100 | AMDGPU VOP1 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | |
| v_cvt_pk_f32_fp8_t16 | v_cvt_pk_f32_fp8_t16 | VOP1 | gfx1100 | AMDGPU VOP1 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | |
| v_cvt_pk_fp8_f16 | v_cvt_pk_fp8_f16 | VOP1 | AMDGPU VOP1 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_pk_fp8_f32 | v_cvt_pk_fp8_f32 | VOP3 | gfx1100 | Convert from two single-precision float inputs to a packed FP8 float value with round to nearest even semantics and store the result into 16 bits of… | |
| v_cvt_pk_fp8_f32_gfx1250 | v_cvt_pk_fp8_f32_gfx1250 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_pk_i16_f32 | v_cvt_pk_i16_f32 | VOP3 | gfx1100 | Convert two single-precision float inputs into a packed signed 16-bit integer value and store the result into a vector register. | |
| v_cvt_pk_i16_i32 | v_cvt_pk_i16_i32 | VOP2 | gfx1100 | Convert from two signed 32-bit integer inputs to a packed signed 16-bit integer value and store the result into a vector register. | |
| v_cvt_pk_norm_i16_f16 | v_cvt_pk_norm_i16_f16 | VOP3 | gfx1100 | Convert from two half-precision float inputs to a packed signed normalized short and store the result into a vector register. | |
| v_cvt_pk_norm_i16_f32 | v_cvt_pk_norm_i16_f32 | VOP3 | gfx1100 | Convert from two single-precision float inputs to a packed signed normalized short and store the result into a vector register. | |
| v_cvt_pk_norm_u16_f16 | v_cvt_pk_norm_u16_f16 | VOP3 | gfx1100 | Convert from two half-precision float inputs to a packed unsigned normalized short and store the result into a vector register. | |
| v_cvt_pk_norm_u16_f32 | v_cvt_pk_norm_u16_f32 | VOP3 | gfx1100 | Convert from two single-precision float inputs to a packed unsigned normalized short and store the result into a vector register. | |
| v_cvt_pk_u16_f32 | v_cvt_pk_u16_f32 | VOP3 | gfx1100 | Convert two single-precision float inputs into a packed unsigned 16-bit integer value and store the result into a vector register. | |
| v_cvt_pk_u16_u32 | v_cvt_pk_u16_u32 | VOP2 | gfx1100 | Convert from two unsigned 32-bit integer inputs to a packed unsigned 16-bit integer value and store the result into a vector register. | |
| v_cvt_pk_u8_f32 | v_cvt_pk_u8_f32 | VOP3 | gfx1100 | Convert a single-precision float value from the first input to an unsigned 8-bit integer value and pack the result into one byte of the third input… | |
| v_cvt_pkaccum_u8_f32 | v_cvt_pkaccum_u8_f32 | VOP2 | Convert a single-precision float value in the first input to an unsigned 8-bit integer value and store the result into one byte of the destination… | ||
| v_cvt_pknorm_i16_f16 | v_cvt_pknorm_i16_f16 | VOP3 | Convert from two half-precision float inputs to a packed signed normalized short and store the result into a vector register. | ||
| v_cvt_pknorm_i16_f32 | v_cvt_pknorm_i16_f32 | VOP2 | Convert from two single-precision float inputs to a packed signed normalized short and store the result into a vector register. | ||
| v_cvt_pknorm_u16_f16 | v_cvt_pknorm_u16_f16 | VOP3 | Convert from two half-precision float inputs to a packed unsigned normalized short and store the result into a vector register. | ||
| v_cvt_pknorm_u16_f32 | v_cvt_pknorm_u16_f32 | VOP2 | Convert from two single-precision float inputs to a packed unsigned normalized short and store the result into a vector register. | ||
| v_cvt_pkrtz_f16_f32 | v_cvt_pkrtz_f16_f32 | VOP2 | Convert two single-precision float inputs to a packed half-precision float value using round toward zero semantics (ignore the current rounding… | ||
| v_cvt_rpi_i32_f32 | v_cvt_rpi_i32_f32 | VOP1 | Convert from a single-precision float input to a signed 32-bit integer value using round to nearest integer semantics (ignore the default rounding… | ||
| v_cvt_scale_pk16_bf16_bf6 | v_cvt_scale_pk16_bf16_bf6 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk16_bf16_fp6 | v_cvt_scale_pk16_bf16_fp6 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk16_f16_bf6 | v_cvt_scale_pk16_f16_bf6 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk16_f16_fp6 | v_cvt_scale_pk16_f16_fp6 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk16_f32_bf6 | v_cvt_scale_pk16_f32_bf6 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk16_f32_fp6 | v_cvt_scale_pk16_f32_fp6 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_bf16_bf8 | v_cvt_scale_pk8_bf16_bf8 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_bf16_fp4 | v_cvt_scale_pk8_bf16_fp4 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_bf16_fp8 | v_cvt_scale_pk8_bf16_fp8 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f16_bf8 | v_cvt_scale_pk8_f16_bf8 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f16_fp4 | v_cvt_scale_pk8_f16_fp4 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f16_fp8 | v_cvt_scale_pk8_f16_fp8 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f32_bf8 | v_cvt_scale_pk8_f32_bf8 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f32_fp4 | v_cvt_scale_pk8_f32_fp4 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scale_pk8_f32_fp8 | v_cvt_scale_pk8_f32_fp8 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_2xpk16_bf6_f32 | v_cvt_scalef32_2xpk16_bf6_f32 | VOP3 | Scale packed 16-component single-precision float vectors from two source inputs using the exponent provided by the third single-precision float… | ||
| v_cvt_scalef32_2xpk16_fp6_f32 | v_cvt_scalef32_2xpk16_fp6_f32 | VOP3 | Scale packed 16-component single-precision float vectors from two source inputs using the exponent provided by the third single-precision float… | ||
| v_cvt_scalef32_f16_bf8 | v_cvt_scalef32_f16_bf8 | VOP3 | Convert from a BF8 float input to a half-precision float value, then scale the value using the exponent provided by the second single-precision float… | ||
| v_cvt_scalef32_f16_fp8 | v_cvt_scalef32_f16_fp8 | VOP3 | Convert from an FP8 float input to a half-precision float value, then scale the value using the exponent provided by the second single-precision… | ||
| v_cvt_scalef32_f32_bf8 | v_cvt_scalef32_f32_bf8 | VOP3 | Convert from a BF8 float input to a single-precision float value, then scale the value using the exponent provided by the second single-precision… | ||
| v_cvt_scalef32_f32_fp8 | v_cvt_scalef32_f32_fp8 | VOP3 | Convert from an FP8 float input to a single-precision float value, then scale the value using the exponent provided by the second single-precision… | ||
| v_cvt_scalef32_pk16_bf6_bf16 | v_cvt_scalef32_pk16_bf6_bf16 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk16_bf6_f16 | v_cvt_scalef32_pk16_bf6_f16 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk16_bf6_f32 | v_cvt_scalef32_pk16_bf6_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk16_fp6_bf16 | v_cvt_scalef32_pk16_fp6_bf16 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk16_fp6_f16 | v_cvt_scalef32_pk16_fp6_f16 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk16_fp6_f32 | v_cvt_scalef32_pk16_fp6_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk32_bf16_bf6 | v_cvt_scalef32_pk32_bf16_bf6 | VOP3 | Convert from a packed 32-component BF6 float input to a packed BF16 float value, then scale the packed values using the exponent provided by the… | ||
| v_cvt_scalef32_pk32_bf16_fp6 | v_cvt_scalef32_pk32_bf16_fp6 | VOP3 | Convert from a packed 32-component FP6 float input to a packed BF16 float value, then scale the packed values using the exponent provided by the… | ||
| v_cvt_scalef32_pk32_bf6_bf16 | v_cvt_scalef32_pk32_bf6_bf16 | VOP3 | Scale a packed 32-component BF16 float input using the exponent provided by the second single-precision float input, then convert the values to a… | ||
| v_cvt_scalef32_pk32_bf6_f16 | v_cvt_scalef32_pk32_bf6_f16 | VOP3 | Scale a packed 32-component half-precision float input using the exponent provided by the second single-precision float input, then convert the… | ||
| v_cvt_scalef32_pk32_bf6_f32 | v_cvt_scalef32_pk32_bf6_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk32_f16_bf6 | v_cvt_scalef32_pk32_f16_bf6 | VOP3 | Convert from a packed 32-component BF6 float input to a packed half-precision float value, then scale the packed values using the exponent provided… | ||
| v_cvt_scalef32_pk32_f16_fp6 | v_cvt_scalef32_pk32_f16_fp6 | VOP3 | Convert from a packed 32-component FP6 float input to a packed half-precision float value, then scale the packed values using the exponent provided… | ||
| v_cvt_scalef32_pk32_f32_bf6 | v_cvt_scalef32_pk32_f32_bf6 | VOP3 | Convert from a packed 32-component BF6 float input to a packed single-precision float value, then scale the packed values using the exponent provided… | ||
| v_cvt_scalef32_pk32_f32_fp6 | v_cvt_scalef32_pk32_f32_fp6 | VOP3 | Convert from a packed 32-component FP6 float input to a packed single-precision float value, then scale the packed values using the exponent provided… | ||
| v_cvt_scalef32_pk32_fp6_bf16 | v_cvt_scalef32_pk32_fp6_bf16 | VOP3 | Scale a packed 32-component BF16 float input using the exponent provided by the second single-precision float input, then convert the values to a… | ||
| v_cvt_scalef32_pk32_fp6_f16 | v_cvt_scalef32_pk32_fp6_f16 | VOP3 | Scale a packed 32-component half-precision float input using the exponent provided by the second single-precision float input, then convert the… | ||
| v_cvt_scalef32_pk32_fp6_f32 | v_cvt_scalef32_pk32_fp6_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_bf8_bf16 | v_cvt_scalef32_pk8_bf8_bf16 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_bf8_f16 | v_cvt_scalef32_pk8_bf8_f16 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_bf8_f32 | v_cvt_scalef32_pk8_bf8_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp4_bf16 | v_cvt_scalef32_pk8_fp4_bf16 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp4_f16 | v_cvt_scalef32_pk8_fp4_f16 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp4_f32 | v_cvt_scalef32_pk8_fp4_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp8_bf16 | v_cvt_scalef32_pk8_fp8_bf16 | VOP3 | AMDGPU VOP3 vector instruction. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp8_f16 | v_cvt_scalef32_pk8_fp8_f16 | VOP3 | AMDGPU VOP3 vector instruction operating on f16 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk8_fp8_f32 | v_cvt_scalef32_pk8_fp8_f32 | VOP3 | AMDGPU VOP3 vector instruction operating on f32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) | ||
| v_cvt_scalef32_pk_bf16_bf8 | v_cvt_scalef32_pk_bf16_bf8 | VOP3 | Convert from a packed 2-component BF8 float input to a packed BF16 float value, then scale the packed values using the exponent provided by the… | ||
| v_cvt_scalef32_pk_bf16_fp4 | v_cvt_scalef32_pk_bf16_fp4 | VOP3 | Convert from a packed 2-component FP4 float input to a packed BF16 float value, then scale the packed values using the exponent provided by the… | ||
| v_cvt_scalef32_pk_bf16_fp8 | v_cvt_scalef32_pk_bf16_fp8 | VOP3 | Convert from a packed 2-component FP8 float input to a packed BF16 float value, then scale the packed values using the exponent provided by the… | ||
| v_cvt_scalef32_pk_bf8_bf16 | v_cvt_scalef32_pk_bf8_bf16 | VOP3 | Scale a packed 2-component BF16 float input using the exponent provided by the second single-precision float input, then convert the values to a… |
Source
Normalized from AMD's official ROCm documentation, with the LLVM AMDGPU backend documentation as supplementary compiler-target information. ROCm documentation ↗