if(abs((int)src[x + stride] - (int)src[x + (stride<<3)]) > 2*QP) isOk2=false;
if(abs((int)src[x + stride] - (int)src[x + (stride<<3)]) > 2*QP) isOk2=0;
static inline bool isVertMinMaxOk(uint8_t src[], int stride, int QP){#ifdef HAVE_MMX	int isOk;	asm volatile(//		"int $3 \n\t"		"movq (%1, %2), %%mm0				\n\t"		"movq (%1, %2, 8), %%mm1			\n\t"		"movq %%mm0, %%mm2				\n\t"		"psubusb %%mm1, %%mm0				\n\t"		"psubusb %%mm2, %%mm1				\n\t"		"por %%mm1, %%mm0				\n\t" // ABS Diff		"movq pQPb, %%mm7				\n\t" // QP,..., QP		"paddusb %%mm7, %%mm7				\n\t" // 2QP ... 2QP		"psubusb %%mm7, %%mm0				\n\t" // Diff <= 2QP -> 0		"pcmpeqd b00, %%mm0				\n\t"		"psrlq $16, %%mm0				\n\t"		"pcmpeqd bFF, %%mm0				\n\t"//		"movd %%mm0, (%1, %2, 4)\n\t"		"movd %%mm0, %0					\n\t"		: "=r" (isOk)		: "r" (src), "r" (stride)		);	return isOk;#else	int isOk2= true;	for(int x=0; x<BLOCK_SIZE; x++)	{		if(abs((int)src[x + stride] - (int)src[x + (stride<<3)]) > 2*QP) isOk2=false;	}/*	if(isOk && !isOk2 || !isOk && isOk2)	{		printf("\nasm:%d  c:%d QP:%d\n", isOk, isOk2, QP);		for(int y=0; y<9; y++)		{			for(int x=0; x<8; x++)			{				printf("%d ", src[x + y*stride]);			}			printf("\n");		}	} */	return isOk2;#endif}