Flat Memory Instructions
126 AMDGPU instructions in this category - showing 100 per page, page 1 of 2 - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| cluster_load_async_to_lds_b128 | cluster_load_async_to_lds_b128 | FLAT | AMDGPU FLAT vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_async_to_lds_b32 | cluster_load_async_to_lds_b32 | FLAT | AMDGPU FLAT vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_async_to_lds_b64 | cluster_load_async_to_lds_b64 | FLAT | AMDGPU FLAT vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_async_to_lds_b8 | cluster_load_async_to_lds_b8 | FLAT | AMDGPU FLAT vector instruction operating on b8 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_b128 | cluster_load_b128 | FLAT | AMDGPU FLAT vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_b32 | cluster_load_b32 | FLAT | AMDGPU FLAT vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| cluster_load_b64 | cluster_load_b64 | FLAT | AMDGPU FLAT vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| flat_atomic_add | flat_atomic_add | FLAT | Add two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_add_f32 | flat_atomic_add_f32 | FLAT | Add a single-precision float value in the data register to a location in the flat aperture. |
| flat_atomic_add_f64 | flat_atomic_add_f64 | FLAT | Add a double-precision float value in the data register to a location in the flat aperture. |
| flat_atomic_add_u32 | flat_atomic_add_u32 | FLAT | Add two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_add_u64 | flat_atomic_add_u64 | FLAT | Add two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_add_x2 | flat_atomic_add_x2 | FLAT | Add two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_and | flat_atomic_and | FLAT | Calculate bitwise AND given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_and_b32 | flat_atomic_and_b32 | FLAT | Calculate bitwise AND given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_and_b64 | flat_atomic_and_b64 | FLAT | Calculate bitwise AND given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_and_x2 | flat_atomic_and_x2 | FLAT | Calculate bitwise AND given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_cmpswap | flat_atomic_cmpswap | FLAT | Compare two unsigned 32-bit integer values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_cmpswap_b32 | flat_atomic_cmpswap_b32 | FLAT | Compare two unsigned 32-bit integer values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_cmpswap_b64 | flat_atomic_cmpswap_b64 | FLAT | Compare two unsigned 64-bit integer values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_cmpswap_f32 | flat_atomic_cmpswap_f32 | FLAT | Compare two single-precision float values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_cmpswap_x2 | flat_atomic_cmpswap_x2 | FLAT | Compare two unsigned 64-bit integer values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_cond_sub_u32 | flat_atomic_cond_sub_u32 | FLAT | Subtract an unsigned 32-bit integer value in the data register from a location in the flat aperture only if the memory value is greater than or equal… |
| flat_atomic_csub_u32 | flat_atomic_csub_u32 | FLAT | AMDGPU FLAT vector instruction operating on u32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| flat_atomic_dec | flat_atomic_dec | FLAT | Decrement an unsigned 32-bit integer value from a location in the flat aperture with wraparound to a value in the data register if the decrement… |
| flat_atomic_dec_u32 | flat_atomic_dec_u32 | FLAT | Decrement an unsigned 32-bit integer value from a location in the flat aperture with wraparound to a value in the data register if the decrement… |
| flat_atomic_dec_u64 | flat_atomic_dec_u64 | FLAT | Decrement an unsigned 64-bit integer value from a location in the flat aperture with wraparound to a value in the data register if the decrement… |
| flat_atomic_dec_x2 | flat_atomic_dec_x2 | FLAT | Decrement an unsigned 64-bit integer value from a location in the flat aperture with wraparound to a value in the data register if the decrement… |
| flat_atomic_fcmpswap | flat_atomic_fcmpswap | FLAT | Compare two single-precision float values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_fcmpswap_x2 | flat_atomic_fcmpswap_x2 | FLAT | Compare two double-precision float values stored in the data comparison register and a location in the flat aperture. |
| flat_atomic_fmax | flat_atomic_fmax | FLAT | Select the maximum of two single-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_fmax_x2 | flat_atomic_fmax_x2 | FLAT | Select the maximum of two double-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_fmin | flat_atomic_fmin | FLAT | Select the minimum of two single-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_fmin_x2 | flat_atomic_fmin_x2 | FLAT | Select the minimum of two double-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_inc | flat_atomic_inc | FLAT | Increment an unsigned 32-bit integer value from a location in the flat aperture with wraparound to 0 if the value exceeds a value in the data… |
| flat_atomic_inc_u32 | flat_atomic_inc_u32 | FLAT | Increment an unsigned 32-bit integer value from a location in the flat aperture with wraparound to 0 if the value exceeds a value in the data… |
| flat_atomic_inc_u64 | flat_atomic_inc_u64 | FLAT | Increment an unsigned 64-bit integer value from a location in the flat aperture with wraparound to 0 if the value exceeds a value in the data… |
| flat_atomic_inc_x2 | flat_atomic_inc_x2 | FLAT | Increment an unsigned 64-bit integer value from a location in the flat aperture with wraparound to 0 if the value exceeds a value in the data… |
| flat_atomic_max_f32 | flat_atomic_max_f32 | FLAT | Select the maximum of two single-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_max_f64 | flat_atomic_max_f64 | FLAT | Select the maximum of two double-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_max_i32 | flat_atomic_max_i32 | FLAT | Select the maximum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_max_i64 | flat_atomic_max_i64 | FLAT | Select the maximum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_max_u32 | flat_atomic_max_u32 | FLAT | Select the maximum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_max_u64 | flat_atomic_max_u64 | FLAT | Select the maximum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_f32 | flat_atomic_min_f32 | FLAT | Select the minimum of two single-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_f64 | flat_atomic_min_f64 | FLAT | Select the minimum of two double-precision float inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_i32 | flat_atomic_min_i32 | FLAT | Select the minimum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_i64 | flat_atomic_min_i64 | FLAT | Select the minimum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_u32 | flat_atomic_min_u32 | FLAT | Select the minimum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_min_u64 | flat_atomic_min_u64 | FLAT | Select the minimum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_or | flat_atomic_or | FLAT | Calculate bitwise OR given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_or_b32 | flat_atomic_or_b32 | FLAT | Calculate bitwise OR given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_or_b64 | flat_atomic_or_b64 | FLAT | Calculate bitwise OR given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_or_x2 | flat_atomic_or_x2 | FLAT | Calculate bitwise OR given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_pk_add_bf16 | flat_atomic_pk_add_bf16 | FLAT | Add a packed 2-component BF16 float value in the data register to a location in the flat aperture. |
| flat_atomic_pk_add_f16 | flat_atomic_pk_add_f16 | FLAT | Add a packed 2-component half-precision float value in the data register to a location in the flat aperture. |
| flat_atomic_smax | flat_atomic_smax | FLAT | Select the maximum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_smax_x2 | flat_atomic_smax_x2 | FLAT | Select the maximum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_smin | flat_atomic_smin | FLAT | Select the minimum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_smin_x2 | flat_atomic_smin_x2 | FLAT | Select the minimum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_sub | flat_atomic_sub | FLAT | Subtract an unsigned 32-bit integer value stored in the data register from a value stored in a location in the flat aperture. |
| flat_atomic_sub_u32 | flat_atomic_sub_u32 | FLAT | Subtract an unsigned 32-bit integer value stored in the data register from a value stored in a location in the flat aperture. |
| flat_atomic_sub_u64 | flat_atomic_sub_u64 | FLAT | Subtract an unsigned 64-bit integer value stored in the data register from a value stored in a location in the flat aperture. |
| flat_atomic_sub_x2 | flat_atomic_sub_x2 | FLAT | Subtract an unsigned 64-bit integer value stored in the data register from a value stored in a location in the flat aperture. |
| flat_atomic_swap | flat_atomic_swap | FLAT | Swap an unsigned 32-bit integer value in the data register with a location in the flat aperture. |
| flat_atomic_swap_b32 | flat_atomic_swap_b32 | FLAT | Swap an unsigned 32-bit integer value in the data register with a location in the flat aperture. |
| flat_atomic_swap_b64 | flat_atomic_swap_b64 | FLAT | Swap an unsigned 64-bit integer value in the data register with a location in the flat aperture. |
| flat_atomic_swap_x2 | flat_atomic_swap_x2 | FLAT | Swap an unsigned 64-bit integer value in the data register with a location in the flat aperture. |
| flat_atomic_umax | flat_atomic_umax | FLAT | Select the maximum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_umax_x2 | flat_atomic_umax_x2 | FLAT | Select the maximum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_umin | flat_atomic_umin | FLAT | Select the minimum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_umin_x2 | flat_atomic_umin_x2 | FLAT | Select the minimum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the flat aperture. |
| flat_atomic_xor | flat_atomic_xor | FLAT | Calculate bitwise XOR given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_xor_b32 | flat_atomic_xor_b32 | FLAT | Calculate bitwise XOR given two unsigned 32-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_xor_b64 | flat_atomic_xor_b64 | FLAT | Calculate bitwise XOR given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_atomic_xor_x2 | flat_atomic_xor_x2 | FLAT | Calculate bitwise XOR given two unsigned 64-bit integer values stored in the data register and a location in the flat aperture. |
| flat_load_b128 | flat_load_b128 | FLAT | Load 128 bits of data from the flat aperture into a vector register. |
| flat_load_b32 | flat_load_b32 | FLAT | Load 32 bits of data from the flat aperture into a vector register. |
| flat_load_b64 | flat_load_b64 | FLAT | Load 64 bits of data from the flat aperture into a vector register. |
| flat_load_b96 | flat_load_b96 | FLAT | Load 96 bits of data from the flat aperture into a vector register. |
| flat_load_d16_b16 | flat_load_d16_b16 | FLAT | Load 16 bits of unsigned data from the flat aperture and store the result into the low 16 bits of a 32-bit vector register. |
| flat_load_d16_hi_b16 | flat_load_d16_hi_b16 | FLAT | Load 16 bits of unsigned data from the flat aperture and store the result into the high 16 bits of a 32-bit vector register. |
| flat_load_d16_hi_i8 | flat_load_d16_hi_i8 | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 16 bits and store the result into the high 16 bits of a 32-bit vector register. |
| flat_load_d16_hi_u8 | flat_load_d16_hi_u8 | FLAT | Load 8 bits of unsigned data from the flat aperture, zero extend to 16 bits and store the result into the high 16 bits of a 32-bit vector register. |
| flat_load_d16_i8 | flat_load_d16_i8 | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 16 bits and store the result into the low 16 bits of a 32-bit vector register. |
| flat_load_d16_u8 | flat_load_d16_u8 | FLAT | Load 8 bits of unsigned data from the flat aperture, zero extend to 16 bits and store the result into the low 16 bits of a 32-bit vector register. |
| flat_load_dword | flat_load_dword VDST, VADDR | FLAT | Load one 32-bit dword per lane through the flat (generic) address space, resolved to global/scratch/LDS at runtime. |
| flat_load_dwordx2 | flat_load_dwordx2 | FLAT | Load 64 bits of data from the flat aperture into a vector register. |
| flat_load_dwordx3 | flat_load_dwordx3 | FLAT | Load 96 bits of data from the flat aperture into a vector register. |
| flat_load_dwordx4 | flat_load_dwordx4 | FLAT | Load 128 bits of data from the flat aperture into a vector register. |
| flat_load_i16 | flat_load_i16 | FLAT | Load 16 bits of signed data from the flat aperture, sign extend to 32 bits and store the result into a vector register. |
| flat_load_i8 | flat_load_i8 | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 32 bits and store the result into a vector register. |
| flat_load_monitor_b128 | flat_load_monitor_b128 | FLAT | AMDGPU FLAT vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| flat_load_monitor_b32 | flat_load_monitor_b32 | FLAT | AMDGPU FLAT vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| flat_load_monitor_b64 | flat_load_monitor_b64 | FLAT | AMDGPU FLAT vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| flat_load_sbyte | flat_load_sbyte | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 32 bits and store the result into a vector register. |
| flat_load_sbyte_d16 | flat_load_sbyte_d16 | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 16 bits and store the result into the low 16 bits of a 32-bit vector register. |
| flat_load_sbyte_d16_hi | flat_load_sbyte_d16_hi | FLAT | Load 8 bits of signed data from the flat aperture, sign extend to 16 bits and store the result into the high 16 bits of a 32-bit vector register. |
| flat_load_short_d16 | flat_load_short_d16 | FLAT | Load 16 bits of unsigned data from the flat aperture and store the result into the low 16 bits of a 32-bit vector register. |
| flat_load_short_d16_hi | flat_load_short_d16_hi | FLAT | Load 16 bits of unsigned data from the flat aperture and store the result into the high 16 bits of a 32-bit vector register. |