3-506
INSTRUCTION SET REFERENCE
PMADDWD—Packed Multiply and Add (Continued)
Intel C/C++ Compiler Intrinsic Equivalent
Pre-4.0 Intel C/C++ Compiler intrinsic:
__m64 _m_pmaddwd(__m64 m1, __m64 m2)
Version 4.0 and later Intel C/C++ Compiler intrinsic:
__m64 _mm_madd_pi16(__m64 m1, __m64 m2)
Multiply four 16-bit values in m1 by four 16-bit values in m2 producing four 32-bit intermediate
results, which are then summed by pairs to produce two 32-bit results.
Flags Affected
None.
Protected Mode Exceptions
#GP(0)
If a memory operand effective address is outside the CS, DS, ES, FS, or
GS segment limit.
#SS(0)
If a memory operand effective address is outside the SS segment limit.
#UD
If EM in CR0 is set.
#NM
If TS in CR0 is set.
#MF
If there is a pending FPU exception.
#PF(fault-code)If a page fault occurs.
#AC(0)
If alignment checking is enabled and an unaligned memory reference is
made while the current privilege level is 3.
Real-Address Mode Exceptions
#GP
If any part of the operand lies outside of the effective address space from
0 to FFFFH.
#UD
If EM in CR0 is set.
#NM
If TS in CR0 is set.
#MF
If there is a pending FPU exception.