dest[0] = dest[0] + source[0] dest[1] = dest[1] + source[1]
The divpd instruction divides the 2 source values (second operand) into the 2 values of the destination (an XMM register). The source can be an XMM register or a 64 bit memory location. There is also vdivpd 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 divides 4 pairs of values if you use YMM registers.
divpd xmm0, xmm1 ; divide 2 pairs of values of xmm0 & xmm1 ; leave the rest of ymm0 as is divpd xmm0, [x] ; divide 2 pairs of values of xmm0 & x ; x is an array of doubles ; leave the rest of ymm0 as is divpd xmm0, [x+8*r9] ; divide 2 pairs of xmm0 and the array x ; r9 contains the first index of x to use ; leave the rest of ymm0 as is vdivpd xmm3, xmm0, xmm15 ; divide 2 pairs of values from xmm0 & xmm15 ; store results in xmm3 vdivpd ymm3, ymm0, [x] ; divide 4 pairs of values from ymm0 & x ; x is a double array ; store results in ymm3 vdivpd ymm3, ymm0, [rsi] ; divide 4 pairs of values from ymm0 & [rsi] ; rsi contains the address of a double array ; store results in ymm3