HADDPD
Usage: HADDPD dest,src Modifies flags: None
Add horizontally packed DP FP numbers from 'src' to 'dest' stores the result in 'dest'.
Packed Double-FP Horizontal Add
HADDPD xmm1,xmm2/mem128 ; 66 0F 7C /r [Pent4]
HADDPD adds the double-precision floating-point values in the high and low quadwords of the 'dest' operand and stores the result in the low quadword of the 'dest' operand. Adds the double-precision floating-point values in the high and low quadwords of the 'src' operand and stores the result in the high quadword of the 'dest' operand.
When the source operand is a memory operand, it must be aligned on a 16-byte boundary or a general-protection exception (#GP) will be generated.
xmm1[63-0] = xmm1[63-0] + xmm1[127-64];
xmm1[127-64] = xmm2/m128[63-0] + xmm2/m128[127-64];
EXAMPLE:
haddpd xmm1 Label