Integer Multiplication Arithmetic
Multiply two integer operands, taking the low, high, or wide part of the product.
Vendor-Neutral Definition
d = (a * b), truncated to the low half, the high half, or a widened result depending on the selected form.
⚠️ Cross-vendor mappings describe semantic relationships and are not guaranteed one-to-one compiler
translations.
equivalent with restrictions
Both compute an integer product; PTX selects the result slice (lo/hi/wide) via a modifier on one mnemonic, AMDGPU via distinct mnemonics.
| Property | NVIDIA PTX | AMDGPU |
|---|---|---|
| Instruction | mul | s_mul_i32, v_mul_lo_u32 |
| ISA Layer | Virtual | Native |
| Data Types | f32, f64, s16, s32, s64, u16, u32, u64 | i32, u32 |
| Version / Target Introduced | PTX ISA 1.0 | gfx942/gfx1100, gfx942/gfx1100 |
Important Differences
- PTX's mul.{lo,hi,wide} selects the result slice explicitly on one mnemonic; AMDGPU uses separate mnemonics per slice (e.g. v_mul_lo_u32 for the low 32 bits) with a separate high-part instruction for the upper bits.
Source Evidence
- Parallel Thread Execution ISA ↗ — NVIDIA Corporation
- User Guide for AMDGPU Backend ↗ — LLVM Project
Verification method: documentation