"punpcklbw %%mm7, %%mm7				\n\t" "punpcklbw %%mm7, %%mm7				\n\t" "punpcklbw %%mm7, %%mm7				\n\t"  "movq (%0), %%mm0				\n\t" "movq %%mm0, %%mm1				\n\t"
static inline void dering(uint8_t src[], int stride, int QP){//FIXME#ifdef HAVE_MMX2X	asm volatile(		"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		"pcmpeq %%mm6, %%mm6				\n\t"		"pxor %%mm7, %%mm7				\n\t"#define FIND_MIN_MAX(addr)\		"movq (" #addr "), %%mm0,			\n\t"\		"pminub %%mm0, %%mm6				\n\t"\		"pmaxub %%mm0, %%mm7				\n\t"FIND_MIN_MAX(%0)FIND_MIN_MAX(%%eax)FIND_MIN_MAX(%%eax, %1)FIND_MIN_MAX(%%eax, %1, 2)FIND_MIN_MAX(%0, %1, 4)FIND_MIN_MAX(%%ebx)FIND_MIN_MAX(%%ebx, %1)FIND_MIN_MAX(%%ebx, %1, 2)FIND_MIN_MAX(%0, %1, 8)FIND_MIN_MAX(%%ebx, %1, 2)		"movq %%mm6, %%mm4				\n\t"		"psrlq $32, %%mm6				\n\t"		"pminub %%mm4, %%mm6				\n\t"		"movq %%mm6, %%mm4				\n\t"		"psrlq $16, %%mm6				\n\t"		"pminub %%mm4, %%mm6				\n\t"		"movq %%mm6, %%mm4				\n\t"		"psrlq $8, %%mm6				\n\t"		"pminub %%mm4, %%mm6				\n\t" // min of pixels		"movq %%mm7, %%mm4				\n\t"		"psrlq $32, %%mm7				\n\t"		"pmaxub %%mm4, %%mm7				\n\t"		"movq %%mm7, %%mm4				\n\t"		"psrlq $16, %%mm7				\n\t"		"pmaxub %%mm4, %%mm7				\n\t"		"movq %%mm7, %%mm4				\n\t"		"psrlq $8, %%mm7				\n\t"		"pmaxub %%mm4, %%mm7				\n\t" // max of pixels		PAVGB(%%mm6, %%mm7)				      // (max + min)/2		: : "r" (src), "r" (stride), "r" (QP)		: "%eax", "%ebx"	);#else//FIXME#endif}