pavgd (32bit average [(a + b + 1) >> 1]:
/* add (a + b), and compare overflow */
movq mm6, mmc
paddd mmc, mmd
psubd mm6, 0x80000000
psubd mmc, 0x80000000
pcmpgtd mm6, mmc
paddd mmc, 0x80000000
/* add (ab + 1), and compare overflow */
pcmpeqd mm5, mm5
pcmpeqd mmd, mmd
pcmpeqd mm5, mmc
psubd mmc, mmd
/* shift carry in */
por mm6, mm5
pslld mm6, 31
psrld mmc, 1
por mmc, mm6