int pix_abs16x16_mmx(UINT8 *blk1, UINT8 *blk2, int lx, int h) { const UINT8 *p1, *p2;  h >>= 1; p1 = blk1; p2 = blk2; pxor_r2r(mm7, mm7);  pxor_r2r(mm6, mm6);  do { sad_add(p1, p2); sad_add(p1 + 8, p2 + 8); p1 += lx; p2 += lx; sad_add(p1, p2); sad_add(p1 + 8, p2 + 8); p1 += lx; p2 += lx; } while (--h); return sad_end(); }
PIX_SAD(mmx)
int pix_abs16x16_mmx(UINT8 *blk1, UINT8 *blk2, int lx, int h){    const UINT8 *p1, *p2;    h >>= 1;    p1 = blk1;    p2 = blk2;    pxor_r2r(mm7, mm7); /* mm7 is accumulator */    pxor_r2r(mm6, mm6); /* mm7 is zero constant */    do {        sad_add(p1, p2);        sad_add(p1 + 8, p2 + 8);        p1 += lx;        p2 += lx;        sad_add(p1, p2);        sad_add(p1 + 8, p2 + 8);        p1 += lx;        p2 += lx;    } while (--h);    return sad_end();}