<<<    Index    >>>
9-14
PROGRAMMING WITH THE STREAMING SIMD EXTENSIONS
The ANDNPS (Bit-wise packed logical AND NOT for single-precision, floating-point) instruc-
tion returns a bitwise AND NOT between the two operands.
The ORPS (Bit-wise packed logical OR for single-precision, floating-point) instruction returns
a bitwise OR between the two operands.
The XORPS (Bit-wise packed logical XOR for single-precision, floating-point) instruction
returns a bitwise XOR between the two operands.
9.3.6.Additional SIMD Integer Instructions
Similar to the conversion instructions discussed in Section 9.3.4., “Conversion Instructions”,
these SIMD Integer instructions also behave identically to original MMX™ instructions, in the
presence of x87-FP instructions.
The PAVGB/PAVGW (Average unsigned source sub-operands, without incurring a loss in preci-
sion) instructions add the unsigned data elements of the source operand to the unsigned data
elements of the destination register. The results of the add are then each independently shifted
right by one bit position. The high order bits of each element are filled with the carry bits of the
sums. To prevent cumulative round-off errors, an averaging is performed. The low order bit of
each final shifted result is set to 1 if at least one of the two least significant bits of the interme-
diate unshifted shifted sum is 1.
The PEXTRW (Extract 16-bit word from MMX™ register) instruction moves the word in an
MMX™ register selected by the two least significant bits of the immediate operand to the lower
half of a 32-bit integer register; the upper word in the integer register is cleared.
The PINSRW (Insert 16-bit word into MMX™ register) instruction moves the lower word in a
32-bit integer register or 16-bit word from memory into one of the four word locations in an
MMX™ register, selected by the two least significant bits of the immediate operand.
The PMAXUB/PMAXSW (Maximum of packed unsigned integer bytes or signed integer
words) instructions return the maximum of each pair of packed elements into the destination
register.
The PMINUB/PMINSW (Minimum of packed unsigned integer bytes or signed integer words)
instructions return the minimum of each pair of packed data elements into the destination
register.
The PMOVMSKB (Move Byte Mask from MMX™ register) instruction returns an 8-bit mask
formed of the most significant bits of each byte of its source operand in an MMX™ register to
an IA integer register. 
The PMULHUW (Unsigned high packed integer word multiply in MMX™ register) instruction
performs an unsigned multiply on each word field of the two source MMX™ registers, returning
the high word of each result to an MMX™ register.
The PSADBW (Sum of absolute differences) instruction computes the absolute difference for
each pair of sub-operand byte sources, and then accumulates the eight differences into a single
16-bit result.
<<<    Index    >>>