static av_always_inline void idct_internal(uint8_t *dst, DCTELEM *block, int stride, int block_stride, int shift, int add){

    int i;

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    block[0] += 1<<(shift-1);



    for(i=0; i<4; i++){

        const int z0=  block[0 + block_stride*i]     +  block[2 + block_stride*i];

        const int z1=  block[0 + block_stride*i]     -  block[2 + block_stride*i];

        const int z2= (block[1 + block_stride*i]>>1) -  block[3 + block_stride*i];

        const int z3=  block[1 + block_stride*i]     + (block[3 + block_stride*i]>>1);



        block[0 + block_stride*i]= z0 + z3;

        block[1 + block_stride*i]= z1 + z2;

        block[2 + block_stride*i]= z1 - z2;

        block[3 + block_stride*i]= z0 - z3;

    }



    for(i=0; i<4; i++){

        const int z0=  block[i + block_stride*0]     +  block[i + block_stride*2];

        const int z1=  block[i + block_stride*0]     -  block[i + block_stride*2];

        const int z2= (block[i + block_stride*1]>>1) -  block[i + block_stride*3];

        const int z3=  block[i + block_stride*1]     + (block[i + block_stride*3]>>1);



        dst[i + 0*stride]= cm[ add*dst[i + 0*stride] + ((z0 + z3) >> shift) ];

        dst[i + 1*stride]= cm[ add*dst[i + 1*stride] + ((z1 + z2) >> shift) ];

        dst[i + 2*stride]= cm[ add*dst[i + 2*stride] + ((z1 - z2) >> shift) ];

        dst[i + 3*stride]= cm[ add*dst[i + 3*stride] + ((z0 - z3) >> shift) ];

    }

}

static av_always_inline void idct_internal(uint8_t *dst, DCTELEM *block, int stride, int block_stride, int shift, int add){

    int i;

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    block[0] += 1<<(shift-1);



    for(i=0; i<4; i++){

        const int z0=  block[0 + block_stride*i]     +  block[2 + block_stride*i];

        const int z1=  block[0 + block_stride*i]     -  block[2 + block_stride*i];

        const int z2= (block[1 + block_stride*i]>>1) -  block[3 + block_stride*i];

        const int z3=  block[1 + block_stride*i]     + (block[3 + block_stride*i]>>1);



        block[0 + block_stride*i]= z0 + z3;

        block[1 + block_stride*i]= z1 + z2;

        block[2 + block_stride*i]= z1 - z2;

        block[3 + block_stride*i]= z0 - z3;

    }



    for(i=0; i<4; i++){

        const int z0=  block[i + block_stride*0]     +  block[i + block_stride*2];

        const int z1=  block[i + block_stride*0]     -  block[i + block_stride*2];

        const int z2= (block[i + block_stride*1]>>1) -  block[i + block_stride*3];

        const int z3=  block[i + block_stride*1]     + (block[i + block_stride*3]>>1);



        dst[i + 0*stride]= cm[ add*dst[i + 0*stride] + ((z0 + z3) >> shift) ];

        dst[i + 1*stride]= cm[ add*dst[i + 1*stride] + ((z1 + z2) >> shift) ];

        dst[i + 2*stride]= cm[ add*dst[i + 2*stride] + ((z1 - z2) >> shift) ];

        dst[i + 3*stride]= cm[ add*dst[i + 3*stride] + ((z0 - z3) >> shift) ];

    }

}

static av_always_inline void FUNC_0(uint8_t *dst, DCTELEM *block, int stride, int block_stride, int shift, int add){

    int VAR_0;

    uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;



    block[0] += 1<<(shift-1);



    for(VAR_0=0; VAR_0<4; VAR_0++){

        const int VAR_5=  block[0 + block_stride*VAR_0]     +  block[2 + block_stride*VAR_0];

        const int VAR_5=  block[0 + block_stride*VAR_0]     -  block[2 + block_stride*VAR_0];

        const int VAR_5= (block[1 + block_stride*VAR_0]>>1) -  block[3 + block_stride*VAR_0];

        const int VAR_5=  block[1 + block_stride*VAR_0]     + (block[3 + block_stride*VAR_0]>>1);



        block[0 + block_stride*VAR_0]= VAR_5 + VAR_5;

        block[1 + block_stride*VAR_0]= VAR_5 + VAR_5;

        block[2 + block_stride*VAR_0]= VAR_5 - VAR_5;

        block[3 + block_stride*VAR_0]= VAR_5 - VAR_5;

    }



    for(VAR_0=0; VAR_0<4; VAR_0++){

        const int VAR_5=  block[VAR_0 + block_stride*0]     +  block[VAR_0 + block_stride*2];

        const int VAR_5=  block[VAR_0 + block_stride*0]     -  block[VAR_0 + block_stride*2];

        const int VAR_5= (block[VAR_0 + block_stride*1]>>1) -  block[VAR_0 + block_stride*3];

        const int VAR_5=  block[VAR_0 + block_stride*1]     + (block[VAR_0 + block_stride*3]>>1);



        dst[VAR_0 + 0*stride]= cm[ add*dst[VAR_0 + 0*stride] + ((VAR_5 + VAR_5) >> shift) ];

        dst[VAR_0 + 1*stride]= cm[ add*dst[VAR_0 + 1*stride] + ((VAR_5 + VAR_5) >> shift) ];

        dst[VAR_0 + 2*stride]= cm[ add*dst[VAR_0 + 2*stride] + ((VAR_5 - VAR_5) >> shift) ];

        dst[VAR_0 + 3*stride]= cm[ add*dst[VAR_0 + 3*stride] + ((VAR_5 - VAR_5) >> shift) ];

    }

}

static av_always_inline void FUNC_0(uint8_t *dst, DCTELEM *block, int stride, int block_stride, int shift, int add){ int VAR_0; uint8_t *cm = ff_cropTbl + MAX_NEG_CROP; block[0] += 1<<(shift-1); for(VAR_0=0; VAR_0<4; VAR_0++){ const int VAR_5=  block[0 + block_stride*VAR_0]     +  block[2 + block_stride*VAR_0]; const int VAR_5=  block[0 + block_stride*VAR_0]     -  block[2 + block_stride*VAR_0]; const int VAR_5= (block[1 + block_stride*VAR_0]>>1) -  block[3 + block_stride*VAR_0]; const int VAR_5=  block[1 + block_stride*VAR_0]     + (block[3 + block_stride*VAR_0]>>1); block[0 + block_stride*VAR_0]= VAR_5 + VAR_5; block[1 + block_stride*VAR_0]= VAR_5 + VAR_5; block[2 + block_stride*VAR_0]= VAR_5 - VAR_5; block[3 + block_stride*VAR_0]= VAR_5 - VAR_5; } for(VAR_0=0; VAR_0<4; VAR_0++){ const int VAR_5=  block[VAR_0 + block_stride*0]     +  block[VAR_0 + block_stride*2]; const int VAR_5=  block[VAR_0 + block_stride*0]     -  block[VAR_0 + block_stride*2]; const int VAR_5= (block[VAR_0 + block_stride*1]>>1) -  block[VAR_0 + block_stride*3]; const int VAR_5=  block[VAR_0 + block_stride*1]     + (block[VAR_0 + block_stride*3]>>1); dst[VAR_0 + 0*stride]= cm[ add*dst[VAR_0 + 0*stride] + ((VAR_5 + VAR_5) >> shift) ]; dst[VAR_0 + 1*stride]= cm[ add*dst[VAR_0 + 1*stride] + ((VAR_5 + VAR_5) >> shift) ]; dst[VAR_0 + 2*stride]= cm[ add*dst[VAR_0 + 2*stride] + ((VAR_5 - VAR_5) >> shift) ]; dst[VAR_0 + 3*stride]= cm[ add*dst[VAR_0 + 3*stride] + ((VAR_5 - VAR_5) >> shift) ]; } }