__asm__ volatile(\
"xorpd %%xmm0, %%xmm0 \n\t"\
"xorpd %%xmm2, %%xmm2 \n\t"\
"1: \n\t"\
"movupd (%3, %0), %%xmm1 \n\t"\
"movapd %%xmm1, %%xmm3 \n\t"\
"mulpd (%4, %0), %%xmm1 \n\t"\
"mulpd (%5, %0), %%xmm3 \n\t"\
"addpd %%xmm1, %%xmm0 \n\t"\
"addpd %%xmm3, %%xmm2 \n\t"\
"add $16, %0 \n\t"\
" js 1b \n\t"\
"movhlps %%xmm0, %%xmm1 \n\t"\
"movhlps %%xmm2, %%xmm3 \n\t"\
"addpd %%xmm1, %%xmm0 \n\t"\
"addpd %%xmm3, %%xmm2 \n\t"\
"movsd %%xmm0, %1 \n\t"\
"movsd %%xmm2, %2 \n\t"\
"=m" (v2)\
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3")\
);