static inline void mv_pred_direct(AVSContext *h, cavs_vector *pmv_fw,

                                  cavs_vector *col_mv)

{

    cavs_vector *pmv_bw = pmv_fw + MV_BWD_OFFS;

    int den = h->direct_den[col_mv->ref];

    int m = FF_SIGNBIT(col_mv->x);



    pmv_fw->dist = h->dist[1];

    pmv_bw->dist = h->dist[0];

    pmv_fw->ref = 1;

    pmv_bw->ref = 0;

    /* scale the co-located motion vector according to its temporal span */

    pmv_fw->x =     (((den + (den * col_mv->x * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;

    pmv_bw->x = m - (((den + (den * col_mv->x * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);

    m = FF_SIGNBIT(col_mv->y);

    pmv_fw->y =     (((den + (den * col_mv->y * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;

    pmv_bw->y = m - (((den + (den * col_mv->y * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);

}

static inline void mv_pred_direct(AVSContext *h, cavs_vector *pmv_fw,

                                  cavs_vector *col_mv)

{

    cavs_vector *pmv_bw = pmv_fw + MV_BWD_OFFS;

    int den = h->direct_den[col_mv->ref];

    int m = FF_SIGNBIT(col_mv->x);



    pmv_fw->dist = h->dist[1];

    pmv_bw->dist = h->dist[0];

    pmv_fw->ref = 1;

    pmv_bw->ref = 0;

    

    pmv_fw->x =     (((den + (den * col_mv->x * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;

    pmv_bw->x = m - (((den + (den * col_mv->x * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);

    m = FF_SIGNBIT(col_mv->y);

    pmv_fw->y =     (((den + (den * col_mv->y * pmv_fw->dist ^ m) - m - 1) >> 14) ^ m) - m;

    pmv_bw->y = m - (((den + (den * col_mv->y * pmv_bw->dist ^ m) - m - 1) >> 14) ^ m);

}

    int den = h->direct_den[col_mv->ref];
static inline void FUNC_0(AVSContext *VAR_0, cavs_vector *VAR_1,

                                  cavs_vector *VAR_2)

{

    cavs_vector *pmv_bw = VAR_1 + MV_BWD_OFFS;

    int VAR_3 = VAR_0->direct_den[VAR_2->ref];

    int VAR_4 = FF_SIGNBIT(VAR_2->x);



    VAR_1->dist = VAR_0->dist[1];

    pmv_bw->dist = VAR_0->dist[0];

    VAR_1->ref = 1;

    pmv_bw->ref = 0;

    

    VAR_1->x =     (((VAR_3 + (VAR_3 * VAR_2->x * VAR_1->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4) - VAR_4;

    pmv_bw->x = VAR_4 - (((VAR_3 + (VAR_3 * VAR_2->x * pmv_bw->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4);

    VAR_4 = FF_SIGNBIT(VAR_2->y);

    VAR_1->y =     (((VAR_3 + (VAR_3 * VAR_2->y * VAR_1->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4) - VAR_4;

    pmv_bw->y = VAR_4 - (((VAR_3 + (VAR_3 * VAR_2->y * pmv_bw->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4);

}

static inline void FUNC_0(AVSContext *VAR_0, cavs_vector *VAR_1,
cavs_vector *VAR_2)
{ cavs_vector *pmv_bw = VAR_1 + MV_BWD_OFFS; int VAR_3 = VAR_0->direct_den[VAR_2->ref]; int VAR_4 = FF_SIGNBIT(VAR_2->x); VAR_1->dist = VAR_0->dist[1]; pmv_bw->dist = VAR_0->dist[0]; VAR_1->ref = 1; pmv_bw->ref = 0; VAR_1->x =     (((VAR_3 + (VAR_3 * VAR_2->x * VAR_1->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4) - VAR_4; pmv_bw->x = VAR_4 - (((VAR_3 + (VAR_3 * VAR_2->x * pmv_bw->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4); VAR_4 = FF_SIGNBIT(VAR_2->y); VAR_1->y =     (((VAR_3 + (VAR_3 * VAR_2->y * VAR_1->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4) - VAR_4; pmv_bw->y = VAR_4 - (((VAR_3 + (VAR_3 * VAR_2->y * pmv_bw->dist ^ VAR_4) - VAR_4 - 1) >> 14) ^ VAR_4); }