PSUBD
/ VPSUBDSubtract 32-bit elements
Compute each 32-bit result independently, keeping the low 32 bits.
| Form | Bits | Requires | Encoding |
|---|---|---|---|
PSUBD xmm1, xmm2 | 128 | SSE2 | 66 0F FA /r |
VPSUBD xmm1, xmm2, xmm3 | 128 | AVX | VEX.L0.66.0F.WIG FA /r |
VPSUBD ymm1, ymm2, ymm3 | 256 | AVX2 | VEX.L1.66.0F.WIG FA /r |
Operation#
Pseudo-C · selected form
dst[i] = (a[i] - b[i]) mod 2^32What to watch for
- Each element operates independently; arithmetic does not propagate carry between elements.
Corresponding intrinsics#
__m128i _mm_sub_epi32(__m128i a, __m128i b)Documented mapping
PSUBD xmm, xmm
Architectural details#
- Flags
- RFLAGS unchanged.
- Destination
- Writes the low 128 bits; upper vector-register bits are preserved.
- Encoding
66 0F FA /r- Operands
xmm1read / write · 128 bits (4 × 32) · unsignedxmm2read · 128 bits (4 × 32) · unsigned
- Coverage
- Selected register-only 128/256-bit legacy and VEX forms. Memory, MMX, EVEX/AVX-512 and scalar floating-point forms are outside this selection.
Exception information & execution requirements
#NM#UD
Feature availability, operating-system vector-state enablement and applicable floating-point exception controls still apply.
Feature availability alone does not guarantee execution: OS state and execution-level controls also apply. Use the linked architecture documentation for the full exception conditions.
Sources & provenance#
Technical fields are imported from pinned upstream files. Explanations and explorer behavior are maintained separately.
Intel · PSUBB-PSUBW-PSUBD-Subtract-Packed-Integers.xml
- Revision
4ebe7f0ac1bd00f46244c49bb72c503ce368def7- SHA-256
8946094aebc5be36629d4ac7e39375255da13f18c4788c1249cb99e06ad0aa1d- Terms
- Intel SDM terms; see License.md
Intel · intrinsics.xml
- Revision
4ebe7f0ac1bd00f46244c49bb72c503ce368def7- SHA-256
6762a50652a35ef663fd532ed83b789d19bbc2ac7e94b1771f19d666d96c2c30- Terms
- Intel SDM terms; see License.md