static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)

{

#ifdef HAVE_MMX

	asm volatile(

		"movq "MANGLE(bm01010101)", %%mm4\n\t"

		"mov %0, %%"REG_a"		\n\t"

		"1:				\n\t"

		"movq (%1, %%"REG_a",4), %%mm0	\n\t"

		"movq 8(%1, %%"REG_a",4), %%mm1	\n\t"

		"psrlw $8, %%mm0		\n\t"

		"psrlw $8, %%mm1		\n\t"

		"packuswb %%mm1, %%mm0		\n\t"

		"movq %%mm0, %%mm1		\n\t"

		"psrlw $8, %%mm0		\n\t"

		"pand %%mm4, %%mm1		\n\t"

		"packuswb %%mm0, %%mm0		\n\t"

		"packuswb %%mm1, %%mm1		\n\t"

		"movd %%mm0, (%3, %%"REG_a")	\n\t"

		"movd %%mm1, (%2, %%"REG_a")	\n\t"

		"add $4, %%"REG_a"		\n\t"

		" js 1b				\n\t"

		: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width)

		: "%"REG_a

	);

#else

	int i;

	for(i=0; i<width; i++)

	{

		dstU[i]= src1[4*i + 1];

		dstV[i]= src1[4*i + 3];

	}

#endif

        assert(src1 == src2);

}

static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)

{

#ifdef HAVE_MMX

	asm volatile(

		"movq "MANGLE(bm01010101)", %%mm4\n\t"

		"mov %0, %%"REG_a"		\n\t"

		"1:				\n\t"

		"movq (%1, %%"REG_a",4), %%mm0	\n\t"

		"movq 8(%1, %%"REG_a",4), %%mm1	\n\t"

		"psrlw $8, %%mm0		\n\t"

		"psrlw $8, %%mm1		\n\t"

		"packuswb %%mm1, %%mm0		\n\t"

		"movq %%mm0, %%mm1		\n\t"

		"psrlw $8, %%mm0		\n\t"

		"pand %%mm4, %%mm1		\n\t"

		"packuswb %%mm0, %%mm0		\n\t"

		"packuswb %%mm1, %%mm1		\n\t"

		"movd %%mm0, (%3, %%"REG_a")	\n\t"

		"movd %%mm1, (%2, %%"REG_a")	\n\t"

		"add $4, %%"REG_a"		\n\t"

		" js 1b				\n\t"

		: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width)

		: "%"REG_a

	);

#else

	int i;

	for(i=0; i<width; i++)

	{

		dstU[i]= src1[4*i + 1];

		dstV[i]= src1[4*i + 3];

	}

#endif

        assert(src1 == src2);

}

		"packuswb %%mm1, %%mm1		\n\t" 	asm volatile( 		: "%"REG_a 	); 	int i; #endif #endif #endif #endif #endif 	int i; #endif #endif #endif #endif 	int i; #endif #endif #endif #endif #endif 	asm volatile( 		"mov %0, %%"REG_a"		\n\t" 		"1:				\n\t" 		"packuswb %%mm1, %%mm0		\n\t" 		" js 1b				\n\t" 		: "%"REG_a 	); 	int i; 	for(i=0; i<width; i++) 	asm volatile( 		"movq "MANGLE(bm01010101)", %%mm4\n\t" 		"mov %0, %%"REG_a"		\n\t" 		"1:				\n\t" 		"movq (%1, %%"REG_a",4), %%mm0	\n\t" 		"movq 8(%1, %%"REG_a",4), %%mm1	\n\t" 		"psrlw $8, %%mm0		\n\t" 		"psrlw $8, %%mm1		\n\t" 		"packuswb %%mm1, %%mm0		\n\t" 		"movq %%mm0, %%mm1		\n\t" 		"psrlw $8, %%mm0		\n\t" 		"pand %%mm4, %%mm1		\n\t" 		"packuswb %%mm0, %%mm0		\n\t" 		"packuswb %%mm1, %%mm1		\n\t" 		"movd %%mm0, (%3, %%"REG_a")	\n\t" 		"movd %%mm1, (%2, %%"REG_a")	\n\t" 		"add $4, %%"REG_a"		\n\t" 		" js 1b				\n\t" 		: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width) 		: "%"REG_a 	); 	int i; 	for(i=0; i<width; i++) 		dstU[i]= src1[4*i + 1]; 		dstV[i]= src1[4*i + 3]; #endif         assert(src1 == src2); 	asm volatile( 		"mov %0, %%"REG_a"		\n\t" 		"1:				\n\t" 		"psrlw $8, %%mm0		\n\t" 		"psrlw $8, %%mm1		\n\t" 		"packuswb %%mm1, %%mm0		\n\t" 		" js 1b				\n\t" 		: "%"REG_a 	); 	int i; 	for(i=0; i<width; i++) 	asm volatile( 		"movq "MANGLE(bm01010101)", %%mm4\n\t" 		"mov %0, %%"REG_a"		\n\t" 		"1:				\n\t" 		"movq (%1, %%"REG_a",4), %%mm0	\n\t" 		"movq 8(%1, %%"REG_a",4), %%mm1	\n\t" 		"pand %%mm4, %%mm1		\n\t" 		"packuswb %%mm1, %%mm0		\n\t" 		"movq %%mm0, %%mm1		\n\t" 		"psrlw $8, %%mm0		\n\t" 		"pand %%mm4, %%mm1		\n\t" 		"packuswb %%mm0, %%mm0		\n\t" 		"packuswb %%mm1, %%mm1		\n\t" 		"movd %%mm0, (%3, %%"REG_a")	\n\t" 		"movd %%mm1, (%2, %%"REG_a")	\n\t" 		"add $4, %%"REG_a"		\n\t" 		" js 1b				\n\t" 		: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width) 		: "%"REG_a 	); 	int i; 	for(i=0; i<width; i++) #endif         assert(src1 == src2); 	int i; 	for(i=0; i<width; i++) 	int i;         assert(src1 == src2); 	for(i=0; i<width; i++) 	asm volatile( 		"1:				\n\t" #endif #endif 		" js 1b				\n\t" 	); 	int i; 	for(i=0; i<width; i++) 	asm volatile( 		"1:				\n\t" 		"movq %%mm0, %%mm1		\n\t" #endif #endif #endif #endif 		"movq %%mm0, %%mm1		\n\t" 		"add $4, %%"REG_a"		\n\t" 		" js 1b				\n\t" 	); 	int i; 	for(i=0; i<width; i++) #endif         assert(src1 == src2); 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i;         assert(src1 == src2); 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i;         assert(src1 == src2); 	for(i=0; i<width; i++) 	int i; 	for(i=0; i<width; i++) 	int i;         assert(src1 == src2); 	for(i=0; i<width; i++) #endif #endif #endif #endif 	int i; 	int i; #endif #endif #endif 	asm volatile( 		"1:				\n\t" 	int i; 	int i; #endif #endif #endif 	asm volatile( 		"1:				\n\t" 	int i; #endif
static inline void FUNC_0(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)

{

#ifdef HAVE_MMX

	asm volatile(

		"movq "MANGLE(bm01010101)", %%mm4\n\t"

		"mov %0, %%"REG_a"		\n\t"

		"1:				\n\t"

		"movq (%1, %%"REG_a",4), %%mm0	\n\t"

		"movq 8(%1, %%"REG_a",4), %%mm1	\n\t"

		"psrlw $8, %%mm0		\n\t"

		"psrlw $8, %%mm1		\n\t"

		"packuswb %%mm1, %%mm0		\n\t"

		"movq %%mm0, %%mm1		\n\t"

		"psrlw $8, %%mm0		\n\t"

		"pand %%mm4, %%mm1		\n\t"

		"packuswb %%mm0, %%mm0		\n\t"

		"packuswb %%mm1, %%mm1		\n\t"

		"movd %%mm0, (%3, %%"REG_a")	\n\t"

		"movd %%mm1, (%2, %%"REG_a")	\n\t"

		"add $4, %%"REG_a"		\n\t"

		" js 1b				\n\t"

		: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width)

		: "%"REG_a

	);

#else

	int VAR_0;

	for(VAR_0=0; VAR_0<width; VAR_0++)

	{

		dstU[VAR_0]= src1[4*VAR_0 + 1];

		dstV[VAR_0]= src1[4*VAR_0 + 3];

	}

#endif

        assert(src1 == src2);

}

static inline void FUNC_0(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width)
{ #ifdef HAVE_MMX
asm volatile(
"movq "MANGLE(bm01010101)", %%mm4\n\t"
"mov %0, %%"REG_a"		\n\t"
"1:				\n\t"
"movq (%1, %%"REG_a",4), %%mm0	\n\t"
"movq 8(%1, %%"REG_a",4), %%mm1	\n\t"
"psrlw $8, %%mm0		\n\t"
"psrlw $8, %%mm1		\n\t"
"packuswb %%mm1, %%mm0		\n\t"
"movq %%mm0, %%mm1		\n\t"
"psrlw $8, %%mm0		\n\t"
"pand %%mm4, %%mm1		\n\t"
"packuswb %%mm0, %%mm0		\n\t"
"packuswb %%mm1, %%mm1		\n\t"
"movd %%mm0, (%3, %%"REG_a")	\n\t"
"movd %%mm1, (%2, %%"REG_a")	\n\t"
"add $4, %%"REG_a"		\n\t"
" js 1b				\n\t"
: : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r" (dstV+width)
: "%"REG_a
); #else
int VAR_0; for(VAR_0=0; VAR_0<width; VAR_0++) { dstU[VAR_0]= src1[4*VAR_0 + 1]; dstV[VAR_0]= src1[4*VAR_0 + 3]; } #endif
assert(src1 == src2); }