int len= -(stride<<h);
int len= -(stride*h);
static inline void sad8_4_mmx(uint8_t *blk1, uint8_t *blk2, int stride, int h){    int len= -(stride<<h);    asm volatile(        ".balign 16			\n\t"        "1:				\n\t"        "movq (%1, %%eax), %%mm0	\n\t"        "movq (%2, %%eax), %%mm1	\n\t"        "movq %%mm0, %%mm4		\n\t"        "movq %%mm1, %%mm2		\n\t"        "punpcklbw %%mm7, %%mm0		\n\t"        "punpcklbw %%mm7, %%mm1		\n\t"        "punpckhbw %%mm7, %%mm4		\n\t"        "punpckhbw %%mm7, %%mm2		\n\t"        "paddw %%mm1, %%mm0		\n\t"        "paddw %%mm2, %%mm4		\n\t"        "movq 1(%1, %%eax), %%mm2	\n\t"        "movq 1(%2, %%eax), %%mm3	\n\t"        "movq %%mm2, %%mm1		\n\t"        "punpcklbw %%mm7, %%mm2		\n\t"        "punpckhbw %%mm7, %%mm1		\n\t"        "paddw %%mm0, %%mm2		\n\t"        "paddw %%mm4, %%mm1		\n\t"        "movq %%mm3, %%mm4		\n\t"        "punpcklbw %%mm7, %%mm3		\n\t"        "punpckhbw %%mm7, %%mm4		\n\t"        "paddw %%mm3, %%mm2		\n\t"        "paddw %%mm4, %%mm1		\n\t"        "movq (%3, %%eax), %%mm3	\n\t"        "movq (%3, %%eax), %%mm4	\n\t"        "paddw %%mm5, %%mm2		\n\t"        "paddw %%mm5, %%mm1		\n\t"        "psrlw $2, %%mm2		\n\t"        "psrlw $2, %%mm1		\n\t"        "packuswb %%mm1, %%mm2		\n\t"        "psubusb %%mm2, %%mm3		\n\t"        "psubusb %%mm4, %%mm2		\n\t"        "por %%mm3, %%mm2		\n\t"        "movq %%mm2, %%mm0		\n\t"        "punpcklbw %%mm7, %%mm0		\n\t"        "punpckhbw %%mm7, %%mm2		\n\t"        "paddw %%mm2, %%mm0		\n\t"        "paddw %%mm0, %%mm6		\n\t"        "addl %4, %%eax			\n\t"        " js 1b				\n\t"        : "+a" (len)        : "r" (blk1 - len), "r" (blk1 -len + stride), "r" (blk2 - len), "r" (stride)    );}