dest[0] = dest[0] + source[0] dest[1] = dest[1] + source[1] dest[2] = dest[2] + source[2] dest[3] = dest[3] + source[3]
The addps instruction adds the 4 source values (second operand) to the 4 values of the destination (an XMM register). The source can be an XMM register or a 32 bit memory location. There is also vaddps on CPUs with AVX instructions which allows using 3 XMM registers or 2 XMM registers and a memory location which can simplify coding and which adds 8 pairs of values if you use YMM registers.
addps xmm0, xmm1 ; add 4 pairs of values from xmm1 to xmm0 ; leave the rest of ymm0 as is addps xmm0, [x] ; add 4 pairs of values from x to xmm0 ; x is an array of floats ; leave the rest of ymm0 as is vaddps xmm3, xmm0, xmm15 ; add 4 pairs of values from xmm0 & xmm15 ; store results in xmm3 vaddps ymm3, ymm0, [x] ; add 8 pairs of values from ymm0 & x ; store results in ymm3 vaddps ymm3, ymm0, [rsi] ; add 8 pairs of values from ymm0 & [rsi] ; rsi contains the address of an array ; store results in ymm3