(clip_table[(Y + yuvtab_3343[U]) >>13]>>3) | ((clip_table[(Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13]<<3)&0x07E0) | ((clip_table[(Y + yuvtab_40cf[V]) >>13]<<8)&0xF800);
(clip_table[(Y + yuvtab_40cf[U]) >>13]>>3) | ((clip_table[(Y + yuvtab_1a1e[V] + yuvtab_0c92[U]) >>13]<<3)&0x07E0) | ((clip_table[(Y + yuvtab_3343[V]) >>13]<<8)&0xF800);
static inline void yuv2rgb1(uint16_t *buf0, uint16_t *buf1, uint16_t *uvbuf0, uint16_t *uvbuf1,			    uint8_t *dest, int dstw, int yalpha, int uvalpha, int dstbpp){	int yalpha1=yalpha^4095;	int uvalpha1=uvalpha^4095;	int i;	if(fullUVIpol || allwaysIpol)	{		yuv2rgbX(buf0, buf1, uvbuf0, uvbuf1, dest, dstw, yalpha, uvalpha, dstbpp);		return;	}#ifdef HAVE_MMX		if(dstbpp == 32)		{			asm volatile(				YSCALEYUV2RGB1				WRITEBGR32			:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw),			"m" (yalpha1), "m" (uvalpha1)			: "%eax"			);		}		else if(dstbpp==24)		{			asm volatile(				YSCALEYUV2RGB1				WRITEBGR24			:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw),			"m" (yalpha1), "m" (uvalpha1)			: "%eax", "%ebx"			);		}		else if(dstbpp==15)		{			asm volatile(				YSCALEYUV2RGB1		/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */#ifdef DITHER1XBPP				"paddusb b16Dither, %%mm2	\n\t"				"paddusb b16Dither, %%mm4	\n\t"				"paddusb b16Dither, %%mm5	\n\t"#endif				WRITEBGR15			:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw),			"m" (yalpha1), "m" (uvalpha1)			: "%eax"			);		}		else if(dstbpp==16)		{			asm volatile(				YSCALEYUV2RGB1		/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */#ifdef DITHER1XBPP				"paddusb g16Dither, %%mm2	\n\t"				"paddusb b16Dither, %%mm4	\n\t"				"paddusb b16Dither, %%mm5	\n\t"#endif				WRITEBGR16			:: "r" (buf0), "r" (buf1), "r" (uvbuf0), "r" (uvbuf1), "r" (dest), "m" (dstw),			"m" (yalpha1), "m" (uvalpha1)			: "%eax"			);		}#else//FIXME unroll C loop and dont recalculate UV		if(dstbpp==32 || dstbpp==24)		{			for(i=0;i<dstw;i++){				// vertical linear interpolation && yuv2rgb in a single step:				int Y=yuvtab_2568[buf0[i]>>7];				int U=((uvbuf0[i/2]*uvalpha1+uvbuf1[i/2]*uvalpha)>>19);				int V=((uvbuf0[i/2+2048]*uvalpha1+uvbuf1[i/2+2048]*uvalpha)>>19);				dest[0]=clip_table[((Y + yuvtab_3343[U]) >>13)];				dest[1]=clip_table[((Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13)];				dest[2]=clip_table[((Y + yuvtab_40cf[V]) >>13)];				dest+=dstbpp>>3;			}		}		else if(dstbpp==16)		{			for(i=0;i<dstw;i++){				// vertical linear interpolation && yuv2rgb in a single step:				int Y=yuvtab_2568[buf0[i]>>7];				int U=((uvbuf0[i/2]*uvalpha1+uvbuf1[i/2]*uvalpha)>>19);				int V=((uvbuf0[i/2+2048]*uvalpha1+uvbuf1[i/2+2048]*uvalpha)>>19);				((uint16_t*)dest)[0] =					(clip_table[(Y + yuvtab_3343[U]) >>13]>>3) |					((clip_table[(Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13]<<3)&0x07E0) |					((clip_table[(Y + yuvtab_40cf[V]) >>13]<<8)&0xF800);				dest+=2;			}		}		else if(dstbpp==15)		{			for(i=0;i<dstw;i++){				// vertical linear interpolation && yuv2rgb in a single step:				int Y=yuvtab_2568[buf0[i]>>7];				int U=((uvbuf0[i/2]*uvalpha1+uvbuf1[i/2]*uvalpha)>>19);				int V=((uvbuf0[i/2+2048]*uvalpha1+uvbuf1[i/2+2048]*uvalpha)>>19);				((uint16_t*)dest)[0] =					(clip_table[(Y + yuvtab_3343[U]) >>13]>>3) |					((clip_table[(Y + yuvtab_0c92[V] + yuvtab_1a1e[U]) >>13]<<2)&0x03E0) |					((clip_table[(Y + yuvtab_40cf[V]) >>13]<<7)&0x7C00);				dest+=2;			}		}#endif}