"psubusb "MANGLE(pQPb)", %%mm4			\n\t"
"movq "MANGLE(pQPb)", %%mm0			\n\t" "paddusb %%mm0, %%mm0				\n\t" "psubusb %%mm0, %%mm4				\n\t"
static inline void RENAME(vertX1Filter)(uint8_t *src, int stride, int QP){#if defined (HAVE_MMX2) || defined (HAVE_3DNOW)	src+= stride*3;	asm volatile(		"pxor %%mm7, %%mm7				\n\t" // 0//		"movq "MANGLE(b80)", %%mm6			\n\t" // MIN_SIGNED_BYTE		"leal (%0, %1), %%eax				\n\t"		"leal (%%eax, %1, 4), %%ebx			\n\t"//	0	1	2	3	4	5	6	7	8	9//	%0	eax	eax+%1	eax+2%1	%0+4%1	ebx	ebx+%1	ebx+2%1	%0+8%1	ebx+4%1		"movq (%%eax, %1, 2), %%mm0			\n\t" // line 3		"movq (%0, %1, 4), %%mm1			\n\t" // line 4		"movq %%mm1, %%mm2				\n\t" // line 4		"psubusb %%mm0, %%mm1				\n\t"		"psubusb %%mm2, %%mm0				\n\t"		"por %%mm1, %%mm0				\n\t" // |l2 - l3|		"movq (%%ebx), %%mm3				\n\t" // line 5		"movq (%%ebx, %1), %%mm4				\n\t" // line 6		"movq %%mm3, %%mm5				\n\t" // line 5		"psubusb %%mm4, %%mm3				\n\t"		"psubusb %%mm5, %%mm4				\n\t"		"por %%mm4, %%mm3				\n\t" // |l5 - l6|		PAVGB(%%mm3, %%mm0)				      // (|l2 - l3| + |l5 - l6|)/2		"movq %%mm2, %%mm1				\n\t" // line 4		"psubusb %%mm5, %%mm2				\n\t"		"movq %%mm2, %%mm4				\n\t"		"pcmpeqb %%mm7, %%mm2				\n\t" // (l4 - l5) <= 0 ? -1 : 0		"psubusb %%mm1, %%mm5				\n\t"		"por %%mm5, %%mm4				\n\t" // |l4 - l5|		"psubusb %%mm0, %%mm4		\n\t" //d = MAX(0, |l4-l5| - (|l2-l3| + |l5-l6|)/2)		"movq %%mm4, %%mm3				\n\t" // d		"psubusb "MANGLE(pQPb)", %%mm4			\n\t"		"pcmpeqb %%mm7, %%mm4				\n\t" // d <= QP ? -1 : 0		"psubusb "MANGLE(b01)", %%mm3			\n\t"		"pand %%mm4, %%mm3				\n\t" // d <= QP ? d : 0		PAVGB(%%mm7, %%mm3)				      // d/2		"movq %%mm3, %%mm1				\n\t" // d/2		PAVGB(%%mm7, %%mm3)				      // d/4		PAVGB(%%mm1, %%mm3)				      // 3*d/8		"movq (%0, %1, 4), %%mm0			\n\t" // line 4		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l4-1 : l4		"psubusb %%mm3, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%0, %1, 4)			\n\t" // line 4		"movq (%%ebx), %%mm0				\n\t" // line 5		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l5-1 : l5		"paddusb %%mm3, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%%ebx)				\n\t" // line 5		PAVGB(%%mm7, %%mm1)				      // d/4		"movq (%%eax, %1, 2), %%mm0			\n\t" // line 3		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l4-1 : l4		"psubusb %%mm1, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%%eax, %1, 2)			\n\t" // line 3		"movq (%%ebx, %1), %%mm0			\n\t" // line 6		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l5-1 : l5		"paddusb %%mm1, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%%ebx, %1)			\n\t" // line 6		PAVGB(%%mm7, %%mm1)				      // d/8		"movq (%%eax, %1), %%mm0			\n\t" // line 2		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l2-1 : l2		"psubusb %%mm1, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%%eax, %1)			\n\t" // line 2		"movq (%%ebx, %1, 2), %%mm0			\n\t" // line 7		"pxor %%mm2, %%mm0				\n\t" //(l4 - l5) <= 0 ? -l7-1 : l7		"paddusb %%mm1, %%mm0				\n\t"		"pxor %%mm2, %%mm0				\n\t"		"movq %%mm0, (%%ebx, %1, 2)			\n\t" // line 7		:		: "r" (src), "r" (stride)		: "%eax", "%ebx"	);#else 	const int l1= stride;	const int l2= stride + l1;	const int l3= stride + l2;	const int l4= stride + l3;	const int l5= stride + l4;	const int l6= stride + l5;	const int l7= stride + l6;//	const int l8= stride + l7;//	const int l9= stride + l8;	int x;	src+= stride*3;	for(x=0; x<BLOCK_SIZE; x++)	{		int a= src[l3] - src[l4];		int b= src[l4] - src[l5];		int c= src[l5] - src[l6];		int d= ABS(b) - ((ABS(a) + ABS(c))>>1);		d= MAX(d, 0);		if(d < QP)		{			int v = d * SIGN(-b);			src[l2] +=v>>3;			src[l3] +=v>>2;			src[l4] +=(3*v)>>3;			src[l5] -=(3*v)>>3;			src[l6] -=v>>2;			src[l7] -=v>>3;		}		src++;	}	/* 	const int l1= stride;	const int l2= stride + l1;	const int l3= stride + l2;	const int l4= stride + l3;	const int l5= stride + l4;	const int l6= stride + l5;	const int l7= stride + l6;	const int l8= stride + l7;	const int l9= stride + l8;	for(int x=0; x<BLOCK_SIZE; x++)	{		int v2= src[l2];		int v3= src[l3];		int v4= src[l4];		int v5= src[l5];		int v6= src[l6];		int v7= src[l7];		if(ABS(v4-v5)<QP &&  ABS(v4-v5) - (ABS(v3-v4) + ABS(v5-v6))>0 )		{			src[l3] = (6*v2 + 4*v3 + 3*v4 + 2*v5 + v6         )/16;			src[l4] = (3*v2 + 3*v3 + 4*v4 + 3*v5 + 2*v6 + v7  )/16;			src[l5] = (1*v2 + 2*v3 + 3*v4 + 4*v5 + 3*v6 + 3*v7)/16;			src[l6] = (       1*v3 + 2*v4 + 3*v5 + 4*v6 + 6*v7)/16;		}		src++;	}*/#endif}