block[i + 4*0]= z0 + z3; block[i + 4*1]= z1 + z2; block[i + 4*2]= z1 - z2; block[i + 4*3]= z0 - z3; }  for(i=0; i<4; i++){ const int z0=  block[0 + 4*i]     +  block[2 + 4*i]; const int z1=  block[0 + 4*i]     -  block[2 + 4*i]; const int z2= (block[1 + 4*i]>>1) -  block[3 + 4*i]; const int z3=  block[1 + 4*i]     + (block[3 + 4*i]>>1);  dst[0 + i*stride]= cm[ dst[0 + i*stride] + ((z0 + z3) >> 6) ]; dst[1 + i*stride]= cm[ dst[1 + i*stride] + ((z1 + z2) >> 6) ]; dst[2 + i*stride]= cm[ dst[2 + i*stride] + ((z1 - z2) >> 6) ]; dst[3 + i*stride]= cm[ dst[3 + i*stride] + ((z0 - z3) >> 6) ]; } #else
static void h264_add_idct_c(uint8_t *dst, DCTELEM *block, int stride){    int i;    uint8_t *cm = cropTbl + MAX_NEG_CROP;    block[0] += 32;#if 1    for(i=0; i<4; i++){        const int z0=  block[i + 4*0]     +  block[i + 4*2];        const int z1=  block[i + 4*0]     -  block[i + 4*2];        const int z2= (block[i + 4*1]>>1) -  block[i + 4*3];        const int z3=  block[i + 4*1]     + (block[i + 4*3]>>1);        block[i + 4*0]= z0 + z3;        block[i + 4*1]= z1 + z2;        block[i + 4*2]= z1 - z2;        block[i + 4*3]= z0 - z3;    }    for(i=0; i<4; i++){        const int z0=  block[0 + 4*i]     +  block[2 + 4*i];        const int z1=  block[0 + 4*i]     -  block[2 + 4*i];        const int z2= (block[1 + 4*i]>>1) -  block[3 + 4*i];        const int z3=  block[1 + 4*i]     + (block[3 + 4*i]>>1);        dst[0 + i*stride]= cm[ dst[0 + i*stride] + ((z0 + z3) >> 6) ];        dst[1 + i*stride]= cm[ dst[1 + i*stride] + ((z1 + z2) >> 6) ];        dst[2 + i*stride]= cm[ dst[2 + i*stride] + ((z1 - z2) >> 6) ];        dst[3 + i*stride]= cm[ dst[3 + i*stride] + ((z0 - z3) >> 6) ];    }#else    for(i=0; i<4; i++){        const int z0=  block[0 + 4*i]     +  block[2 + 4*i];        const int z1=  block[0 + 4*i]     -  block[2 + 4*i];        const int z2= (block[1 + 4*i]>>1) -  block[3 + 4*i];        const int z3=  block[1 + 4*i]     + (block[3 + 4*i]>>1);        block[0 + 4*i]= z0 + z3;        block[1 + 4*i]= z1 + z2;        block[2 + 4*i]= z1 - z2;        block[3 + 4*i]= z0 - z3;    }    for(i=0; i<4; i++){        const int z0=  block[i + 4*0]     +  block[i + 4*2];        const int z1=  block[i + 4*0]     -  block[i + 4*2];        const int z2= (block[i + 4*1]>>1) -  block[i + 4*3];        const int z3=  block[i + 4*1]     + (block[i + 4*3]>>1);        dst[i + 0*stride]= cm[ dst[i + 0*stride] + ((z0 + z3) >> 6) ];        dst[i + 1*stride]= cm[ dst[i + 1*stride] + ((z1 + z2) >> 6) ];        dst[i + 2*stride]= cm[ dst[i + 2*stride] + ((z1 - z2) >> 6) ];        dst[i + 3*stride]= cm[ dst[i + 3*stride] + ((z0 - z3) >> 6) ];    }#endif}