Vector/Global Memory Instructions
88 AMDGPU instructions in this category - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| global_atomic_add_f64 | global_atomic_add_f64 | GLOBAL | Add a double-precision float value in the data register to a location in the global aperture. |
| global_atomic_add_x2 | global_atomic_add_x2 | GLOBAL | Add two unsigned 64-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_and | global_atomic_and | GLOBAL | Calculate bitwise AND given two unsigned 32-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_and_x2 | global_atomic_and_x2 | GLOBAL | Calculate bitwise AND given two unsigned 64-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_cmpswap | global_atomic_cmpswap | GLOBAL | Compare two unsigned 32-bit integer values stored in the data comparison register and a location in the global aperture. |
| global_atomic_cmpswap_x2 | global_atomic_cmpswap_x2 | GLOBAL | Compare two unsigned 64-bit integer values stored in the data comparison register and a location in the global aperture. |
| global_atomic_cond_sub_u32 | global_atomic_cond_sub_u32 | GLOBAL | Subtract an unsigned 32-bit integer value in the data register from a location in the global aperture only if the memory value is greater than or… |
| global_atomic_csub | global_atomic_csub | GLOBAL | Subtract an unsigned 32-bit integer location in the global aperture from a value in the data register and clamp the result to zero. |
| global_atomic_dec | global_atomic_dec | GLOBAL | Decrement an unsigned 32-bit integer value from a location in the global aperture with wraparound to a value in the data register if the decrement… |
| global_atomic_dec_x2 | global_atomic_dec_x2 | GLOBAL | Decrement an unsigned 64-bit integer value from a location in the global aperture with wraparound to a value in the data register if the decrement… |
| global_atomic_fmax_x2 | global_atomic_fmax_x2 | GLOBAL | Select the maximum of two double-precision float inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_fmin_x2 | global_atomic_fmin_x2 | GLOBAL | Select the minimum of two double-precision float inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_inc | global_atomic_inc | GLOBAL | Increment an unsigned 32-bit integer value from a location in the global aperture with wraparound to 0 if the value exceeds a value in the data… |
| global_atomic_inc_x2 | global_atomic_inc_x2 | GLOBAL | Increment an unsigned 64-bit integer value from a location in the global aperture with wraparound to 0 if the value exceeds a value in the data… |
| global_atomic_max_f64 | global_atomic_max_f64 | GLOBAL | Select the maximum of two double-precision float inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_min_f64 | global_atomic_min_f64 | GLOBAL | Select the minimum of two double-precision float inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_or | global_atomic_or | GLOBAL | Calculate bitwise OR given two unsigned 32-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_or_x2 | global_atomic_or_x2 | GLOBAL | Calculate bitwise OR given two unsigned 64-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_ordered_add_b64 | global_atomic_ordered_add_b64 | GLOBAL | Given an (ID, value) pair in memory, increment the value by a given amount if the ID matches an ID provided by the shader. |
| global_atomic_pk_add_bf16 | global_atomic_pk_add_bf16 | GLOBAL | Add a packed 2-component BF16 float value in the data register to a location in the global aperture. |
| global_atomic_smax | global_atomic_smax | GLOBAL | Select the maximum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_smax_x2 | global_atomic_smax_x2 | GLOBAL | Select the maximum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_smin | global_atomic_smin | GLOBAL | Select the minimum of two signed 32-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_smin_x2 | global_atomic_smin_x2 | GLOBAL | Select the minimum of two signed 64-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_sub | global_atomic_sub | GLOBAL | Subtract an unsigned 32-bit integer value stored in the data register from a value stored in a location in the global aperture. |
| global_atomic_sub_x2 | global_atomic_sub_x2 | GLOBAL | Subtract an unsigned 64-bit integer value stored in the data register from a value stored in a location in the global aperture. |
| global_atomic_swap | global_atomic_swap | GLOBAL | Swap an unsigned 32-bit integer value in the data register with a location in the global aperture. |
| global_atomic_swap_x2 | global_atomic_swap_x2 | GLOBAL | Swap an unsigned 64-bit integer value in the data register with a location in the global aperture. |
| global_atomic_umax | global_atomic_umax | GLOBAL | Select the maximum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_umax_x2 | global_atomic_umax_x2 | GLOBAL | Select the maximum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_umin | global_atomic_umin | GLOBAL | Select the minimum of two unsigned 32-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_umin_x2 | global_atomic_umin_x2 | GLOBAL | Select the minimum of two unsigned 64-bit integer inputs, given two values stored in the data register and a location in the global aperture. |
| global_atomic_xor | global_atomic_xor | GLOBAL | Calculate bitwise XOR given two unsigned 32-bit integer values stored in the data register and a location in the global aperture. |
| global_atomic_xor_x2 | global_atomic_xor_x2 | GLOBAL | Calculate bitwise XOR given two unsigned 64-bit integer values stored in the data register and a location in the global aperture. |
| global_inv | global_inv | GLOBAL | Invalidate cache lines based on the SCOPE field. Increments/decrements LOAD_CNT. |
| global_load_async_to_lds_b128 | global_load_async_to_lds_b128 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_async_to_lds_b32 | global_load_async_to_lds_b32 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_async_to_lds_b64 | global_load_async_to_lds_b64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_async_to_lds_b8 | global_load_async_to_lds_b8 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b8 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_block | global_load_block | GLOBAL | Load a block of data from the global aperture. |
| global_load_dword | global_load_dword VDST, VADDR, SADDR, offset | GLOBAL | Load one 32-bit dword per lane from the global address space using a 64-bit per-lane address. |
| global_load_dword_addtid | global_load_dword_addtid | GLOBAL | Load 32 bits of data from the global aperture into a vector register. |
| global_load_dwordx2 | global_load_dwordx2 | GLOBAL | Load 64 bits of data from the global aperture into a vector register. |
| global_load_dwordx3 | global_load_dwordx3 | GLOBAL | Load 96 bits of data from the global aperture into a vector register. |
| global_load_dwordx4 | global_load_dwordx4 | GLOBAL | Load 128 bits of data from the global aperture into a vector register. |
| global_load_lds_dword | global_load_lds_dword | GLOBAL | Load 32 bits of untyped data from the global aperture and store the result into a data share. |
| global_load_lds_dwordx3 | global_load_lds_dwordx3 | GLOBAL | Untyped buffer load 3 dwords, store result into data share. |
| global_load_lds_dwordx4 | global_load_lds_dwordx4 | GLOBAL | Untyped buffer load 4 dwords, store result into data share. |
| global_load_lds_sbyte | global_load_lds_sbyte | GLOBAL | Load 8 bits of untyped data from the global aperture, sign extend to 32 bits and store the result into a data share. |
| global_load_lds_sshort | global_load_lds_sshort | GLOBAL | Load 16 bits of untyped data from the global aperture, sign extend to 32 bits and store the result into a data share. |
| global_load_lds_ubyte | global_load_lds_ubyte | GLOBAL | Load 8 bits of untyped data from the global aperture, zero extend to 32 bits and store the result into a data share. |
| global_load_lds_ushort | global_load_lds_ushort | GLOBAL | Load 16 bits of untyped data from the global aperture, zero extend to 32 bits and store the result into a data share. |
| global_load_monitor_b128 | global_load_monitor_b128 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_monitor_b32 | global_load_monitor_b32 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_monitor_b64 | global_load_monitor_b64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_sbyte | global_load_sbyte | GLOBAL | Load 8 bits of signed data from the global aperture, sign extend to 32 bits and store the result into a vector register. |
| global_load_sbyte_d16 | global_load_sbyte_d16 | GLOBAL | Load 8 bits of signed data from the global aperture, sign extend to 16 bits and store the result into the low 16 bits of a 32-bit vector register. |
| global_load_sbyte_d16_hi | global_load_sbyte_d16_hi | GLOBAL | Load 8 bits of signed data from the global aperture, sign extend to 16 bits and store the result into the high 16 bits of a 32-bit vector register. |
| global_load_short_d16 | global_load_short_d16 | GLOBAL | Load 16 bits of unsigned data from the global aperture and store the result into the low 16 bits of a 32-bit vector register. |
| global_load_short_d16_hi | global_load_short_d16_hi | GLOBAL | Load 16 bits of unsigned data from the global aperture and store the result into the high 16 bits of a 32-bit vector register. |
| global_load_sshort | global_load_sshort | GLOBAL | Load 16 bits of signed data from the global aperture, sign extend to 32 bits and store the result into a vector register. |
| global_load_tr4_b64 | global_load_tr4_b64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_tr6_b96 | global_load_tr6_b96 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b96 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_tr_b128 | global_load_tr_b128 | GLOBAL | Load a 16x16 matrix of 16-bit data from the global aperture, transpose data between row-major and column-major order, and store the result into a… |
| global_load_tr_b128_w64 | global_load_tr_b128_w64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_tr_b64 | global_load_tr_b64 | GLOBAL | Load a 16x16 matrix of 8-bit data from the global aperture, transpose data between row-major and column-major order, and store the result into a… |
| global_load_tr_b64_w64 | global_load_tr_b64_w64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_load_ubyte | global_load_ubyte | GLOBAL | Load 8 bits of unsigned data from the global aperture, zero extend to 32 bits and store the result into a vector register. |
| global_load_ubyte_d16 | global_load_ubyte_d16 | GLOBAL | Load 8 bits of unsigned data from the global aperture, zero extend to 16 bits and store the result into the low 16 bits of a 32-bit vector register. |
| global_load_ubyte_d16_hi | global_load_ubyte_d16_hi | GLOBAL | Load 8 bits of unsigned data from the global aperture, zero extend to 16 bits and store the result into the high 16 bits of a 32-bit vector register. |
| global_load_ushort | global_load_ushort | GLOBAL | Load 16 bits of unsigned data from the global aperture, zero extend to 32 bits and store the result into a vector register. |
| global_prefetch_b8 | global_prefetch_b8 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b8 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_store_async_from_lds_b128 | global_store_async_from_lds_b128 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b128 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_store_async_from_lds_b32 | global_store_async_from_lds_b32 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b32 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_store_async_from_lds_b64 | global_store_async_from_lds_b64 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b64 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_store_async_from_lds_b8 | global_store_async_from_lds_b8 | GLOBAL | AMDGPU GLOBAL vector instruction operating on b8 data. (Format and name extracted from LLVM's AMDGPU backend source - semantics not yet curated.) |
| global_store_block | global_store_block | GLOBAL | Store a block of data to the global aperture. |
| global_store_byte | global_store_byte | GLOBAL | Store 8 bits of data from a vector register into the global aperture. |
| global_store_byte_d16_hi | global_store_byte_d16_hi | GLOBAL | Store 8 bits of data from the high 16 bits of a 32-bit vector register into the global aperture. |
| global_store_dword | global_store_dword VADDR, VDATA, SADDR, offset | GLOBAL | Store one 32-bit dword per lane to the global address space using a 64-bit per-lane address. |
| global_store_dword_addtid | global_store_dword_addtid | GLOBAL | Store 32 bits of data from a vector input register into the global aperture. |
| global_store_dwordx2 | global_store_dwordx2 | GLOBAL | Store 64 bits of data from vector input registers into the global aperture. |
| global_store_dwordx3 | global_store_dwordx3 | GLOBAL | Store 96 bits of data from vector input registers into the global aperture. |
| global_store_dwordx4 | global_store_dwordx4 | GLOBAL | Store 128 bits of data from vector input registers into the global aperture. |
| global_store_short | global_store_short | GLOBAL | Store 16 bits of data from a vector register into the global aperture. |
| global_store_short_d16_hi | global_store_short_d16_hi | GLOBAL | Store 16 bits of data from the high 16 bits of a 32-bit vector register into the global aperture. |
| global_wb | global_wb | GLOBAL | Write back dirty cache lines based on the SCOPE field. Increments/decrements STORE_CNT. |
| global_wbinv | global_wbinv | GLOBAL | Write back and invalidate cache lines based on the SCOPE field. Increments/decrements STORE_CNT. |