movdqu dest, xmm0		// XMM0: destination (low)
movdqu sec,  xmm2		// XMM2: secondary (low)
movdqa xmm0, xmm1		// XMM1: destination (high)
movdqa xmm2, xmm3		// XMM2: secondary (high)
movdqa xmm0, xmm7		// XMM7: destination (copy)
punpcklbw xmm0,xmm0
psrlw xmm0, #8
punpckhbw xmm1,xmm1
psrlw xmm1, #8
punpcklbw xmm2,xmm2
psrlw xmm2, #8
punpckhbw xmm3,xmm3
psrlw xmm3, #8
psubw xmm2, xmm0
psubw xmm3, xmm1
pmullw xmm0, xmm4
pmullw xmm1, xmm4
pshufb xmm5, xmm0
pshufb xmm6, xmm1
por xmm0, xmm1		// destination frame original data is now lost
paddb xmm1, xmm7
movdqu xmm7, dest
