static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

                                    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

    if (uDest)

    {

        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );



        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );

    }



    asm volatile(

        YSCALEYUV2YV121

        :: "r" (lumSrc + dstW), "r" (dest + dstW),

        "g" (-dstW)

        : "%"REG_a

    );

#else

    int i;

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

    {

        int val= lumSrc[i]>>7;



        if (val&256){

            if (val<0) val=0;

            else       val=255;

        }



        dest[i]= val;

    }



    if (uDest)

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

        {

            int u=chrSrc[i]>>7;

            int v=chrSrc[i + 2048]>>7;



            if ((u|v)&256){

                if (u<0)        u=0;

                else if (u>255) u=255;

                if (v<0)        v=0;

                else if (v>255) v=255;

            }



            uDest[i]= u;

            vDest[i]= v;

        }

#endif

}

static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

                                    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

    if (uDest)

    {

        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );



        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );

    }



    asm volatile(

        YSCALEYUV2YV121

        :: "r" (lumSrc + dstW), "r" (dest + dstW),

        "g" (-dstW)

        : "%"REG_a

    );

#else

    int i;

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

    {

        int val= lumSrc[i]>>7;



        if (val&256){

            if (val<0) val=0;

            else       val=255;

        }



        dest[i]= val;

    }



    if (uDest)

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

        {

            int u=chrSrc[i]>>7;

            int v=chrSrc[i + 2048]>>7;



            if ((u|v)&256){

                if (u<0)        u=0;

                else if (u>255) u=255;

                if (v<0)        v=0;

                else if (v>255) v=255;

            }



            uDest[i]= u;

            vDest[i]= v;

        }

#endif

}

            :: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),             int v=chrSrc[i + 2048]>>7;
static inline void FUNC_0(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,

                                    uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)

{

#ifdef HAVE_MMX

    if (uDest)

    {

        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );



        asm volatile(

            YSCALEYUV2YV121

            :: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),

            "g" (-chrDstW)

            : "%"REG_a

        );

    }



    asm volatile(

        YSCALEYUV2YV121

        :: "r" (lumSrc + dstW), "r" (dest + dstW),

        "g" (-dstW)

        : "%"REG_a

    );

#else

    int VAR_0;

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

    {

        int val= lumSrc[VAR_0]>>7;



        if (val&256){

            if (val<0) val=0;

            else       val=255;

        }



        dest[VAR_0]= val;

    }



    if (uDest)

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

        {

            int u=chrSrc[VAR_0]>>7;

            int v=chrSrc[VAR_0 + 2048]>>7;



            if ((u|v)&256){

                if (u<0)        u=0;

                else if (u>255) u=255;

                if (v<0)        v=0;

                else if (v>255) v=255;

            }



            uDest[VAR_0]= u;

            vDest[VAR_0]= v;

        }

#endif

}

static inline void FUNC_0(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc,
uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW)
{ #ifdef HAVE_MMX
if (uDest)
{ asm volatile(
YSCALEYUV2YV121
:: "r" (chrSrc + chrDstW), "r" (uDest + chrDstW),
"g" (-chrDstW)
: "%"REG_a
); asm volatile(
YSCALEYUV2YV121
:: "r" (chrSrc + 2048 + chrDstW), "r" (vDest + chrDstW),
"g" (-chrDstW)
: "%"REG_a
); } asm volatile(
YSCALEYUV2YV121
:: "r" (lumSrc + dstW), "r" (dest + dstW),
"g" (-dstW)
: "%"REG_a
); #else
int VAR_0; for (VAR_0=0; VAR_0<dstW; VAR_0++) { int val= lumSrc[VAR_0]>>7; if (val&256){ if (val<0) val=0; else       val=255; } dest[VAR_0]= val; } if (uDest)
for (VAR_0=0; VAR_0<chrDstW; VAR_0++) { int u=chrSrc[VAR_0]>>7; int v=chrSrc[VAR_0 + 2048]>>7; if ((u|v)&256){ if (u<0)        u=0; else if (u>255) u=255; if (v<0)        v=0; else if (v>255) v=255; } uDest[VAR_0]= u; vDest[VAR_0]= v; } #endif
}