static void ff_acelp_interpolatef_mips(float *out, const float *in,

                           const float *filter_coeffs, int precision,

                           int frac_pos, int filter_length, int length)

{

    int n, i;

    int prec = precision * 4;

    int fc_offset = precision - frac_pos;

    float in_val_p, in_val_m, fc_val_p, fc_val_m;



    for (n = 0; n < length; n++) {

        /**

        * four pointers are defined in order to minimize number of

        * computations done in inner loop

        */

        const float *p_in_p = &in[n];

        const float *p_in_m = &in[n-1];

        const float *p_filter_coeffs_p = &filter_coeffs[frac_pos];

        const float *p_filter_coeffs_m = filter_coeffs + fc_offset;

        float v = 0;



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

            __asm__ volatile (

                "lwc1   %[in_val_p],           0(%[p_in_p])                    \n\t"

                "lwc1   %[fc_val_p],           0(%[p_filter_coeffs_p])         \n\t"

                "lwc1   %[in_val_m],           0(%[p_in_m])                    \n\t"

                "lwc1   %[fc_val_m],           0(%[p_filter_coeffs_m])         \n\t"

                "addiu  %[p_in_p],             %[p_in_p],              4       \n\t"

                "madd.s %[v],%[v],             %[in_val_p],%[fc_val_p]         \n\t"

                "addiu  %[p_in_m],             %[p_in_m],              -4      \n\t"

                "addu   %[p_filter_coeffs_p],  %[p_filter_coeffs_p],   %[prec] \n\t"

                "addu   %[p_filter_coeffs_m],  %[p_filter_coeffs_m],   %[prec] \n\t"

                "madd.s %[v],%[v],%[in_val_m], %[fc_val_m]                     \n\t"



                : [v] "=&f" (v),[p_in_p] "+r" (p_in_p), [p_in_m] "+r" (p_in_m),

                  [p_filter_coeffs_p] "+r" (p_filter_coeffs_p),

                  [in_val_p] "=&f" (in_val_p), [in_val_m] "=&f" (in_val_m),

                  [fc_val_p] "=&f" (fc_val_p), [fc_val_m] "=&f" (fc_val_m),

                  [p_filter_coeffs_m] "+r" (p_filter_coeffs_m)

                : [prec] "r" (prec)

                : "memory"

            );

        }

        out[n] = v;

    }

}

static void ff_acelp_interpolatef_mips(float *out, const float *in,

                           const float *filter_coeffs, int precision,

                           int frac_pos, int filter_length, int length)

{

    int n, i;

    int prec = precision * 4;

    int fc_offset = precision - frac_pos;

    float in_val_p, in_val_m, fc_val_p, fc_val_m;



    for (n = 0; n < length; n++) {

        







        const float *p_in_p = &in[n];

        const float *p_in_m = &in[n-1];

        const float *p_filter_coeffs_p = &filter_coeffs[frac_pos];

        const float *p_filter_coeffs_m = filter_coeffs + fc_offset;

        float v = 0;



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

            __asm__ volatile (

                "lwc1   %[in_val_p],           0(%[p_in_p])                    \n\t"

                "lwc1   %[fc_val_p],           0(%[p_filter_coeffs_p])         \n\t"

                "lwc1   %[in_val_m],           0(%[p_in_m])                    \n\t"

                "lwc1   %[fc_val_m],           0(%[p_filter_coeffs_m])         \n\t"

                "addiu  %[p_in_p],             %[p_in_p],              4       \n\t"

                "madd.s %[v],%[v],             %[in_val_p],%[fc_val_p]         \n\t"

                "addiu  %[p_in_m],             %[p_in_m],              -4      \n\t"

                "addu   %[p_filter_coeffs_p],  %[p_filter_coeffs_p],   %[prec] \n\t"

                "addu   %[p_filter_coeffs_m],  %[p_filter_coeffs_m],   %[prec] \n\t"

                "madd.s %[v],%[v],%[in_val_m], %[fc_val_m]                     \n\t"



                : [v] "=&f" (v),[p_in_p] "+r" (p_in_p), [p_in_m] "+r" (p_in_m),

                  [p_filter_coeffs_p] "+r" (p_filter_coeffs_p),

                  [in_val_p] "=&f" (in_val_p), [in_val_m] "=&f" (in_val_m),

                  [fc_val_p] "=&f" (fc_val_p), [fc_val_m] "=&f" (fc_val_m),

                  [p_filter_coeffs_m] "+r" (p_filter_coeffs_m)

                : [prec] "r" (prec)

                : "memory"

            );

        }

        out[n] = v;

    }

}

                : [v] "=&f" (v),[p_in_p] "+r" (p_in_p), [p_in_m] "+r" (p_in_m),
static void FUNC_0(float *VAR_0, const float *VAR_1,

                           const float *VAR_2, int VAR_3,

                           int VAR_4, int VAR_5, int VAR_6)

{

    int VAR_7, VAR_8;

    int VAR_9 = VAR_3 * 4;

    int VAR_10 = VAR_3 - VAR_4;

    float VAR_11, VAR_12, VAR_13, VAR_14;



    for (VAR_7 = 0; VAR_7 < VAR_6; VAR_7++) {

        







        const float *VAR_15 = &VAR_1[VAR_7];

        const float *VAR_16 = &VAR_1[VAR_7-1];

        const float *VAR_17 = &VAR_2[VAR_4];

        const float *VAR_18 = VAR_2 + VAR_10;

        float VAR_19 = 0;



        for (VAR_8 = 0; VAR_8 < VAR_5;VAR_8++) {

            __asm__ volatile (

                "lwc1   %[VAR_11],           0(%[VAR_15])                    \VAR_7\t"

                "lwc1   %[VAR_13],           0(%[VAR_17])         \VAR_7\t"

                "lwc1   %[VAR_12],           0(%[VAR_16])                    \VAR_7\t"

                "lwc1   %[VAR_14],           0(%[VAR_18])         \VAR_7\t"

                "addiu  %[VAR_15],             %[VAR_15],              4       \VAR_7\t"

                "madd.s %[VAR_19],%[VAR_19],             %[VAR_11],%[VAR_13]         \VAR_7\t"

                "addiu  %[VAR_16],             %[VAR_16],              -4      \VAR_7\t"

                "addu   %[VAR_17],  %[VAR_17],   %[VAR_9] \VAR_7\t"

                "addu   %[VAR_18],  %[VAR_18],   %[VAR_9] \VAR_7\t"

                "madd.s %[VAR_19],%[VAR_19],%[VAR_12], %[VAR_14]                     \VAR_7\t"



                : [VAR_19] "=&f" (VAR_19),[VAR_15] "+r" (VAR_15), [VAR_16] "+r" (VAR_16),

                  [VAR_17] "+r" (VAR_17),

                  [VAR_11] "=&f" (VAR_11), [VAR_12] "=&f" (VAR_12),

                  [VAR_13] "=&f" (VAR_13), [VAR_14] "=&f" (VAR_14),

                  [VAR_18] "+r" (VAR_18)

                : [VAR_9] "r" (VAR_9)

                : "memory"

            );

        }

        VAR_0[VAR_7] = VAR_19;

    }

}

static void FUNC_0(float *VAR_0, const float *VAR_1,
const float *VAR_2, int VAR_3,
int VAR_4, int VAR_5, int VAR_6)
{ int VAR_7, VAR_8; int VAR_9 = VAR_3 * 4; int VAR_10 = VAR_3 - VAR_4; float VAR_11, VAR_12, VAR_13, VAR_14; for (VAR_7 = 0; VAR_7 < VAR_6; VAR_7++) { const float *VAR_15 = &VAR_1[VAR_7]; const float *VAR_16 = &VAR_1[VAR_7-1]; const float *VAR_17 = &VAR_2[VAR_4]; const float *VAR_18 = VAR_2 + VAR_10; float VAR_19 = 0; for (VAR_8 = 0; VAR_8 < VAR_5;VAR_8++) { __asm__ volatile (
"lwc1   %[VAR_11],           0(%[VAR_15])                    \VAR_7\t"
"lwc1   %[VAR_13],           0(%[VAR_17])         \VAR_7\t"
"lwc1   %[VAR_12],           0(%[VAR_16])                    \VAR_7\t"
"lwc1   %[VAR_14],           0(%[VAR_18])         \VAR_7\t"
"addiu  %[VAR_15],             %[VAR_15],              4       \VAR_7\t"
"madd.s %[VAR_19],%[VAR_19],             %[VAR_11],%[VAR_13]         \VAR_7\t"
"addiu  %[VAR_16],             %[VAR_16],              -4      \VAR_7\t"
"addu   %[VAR_17],  %[VAR_17],   %[VAR_9] \VAR_7\t"
"addu   %[VAR_18],  %[VAR_18],   %[VAR_9] \VAR_7\t"
"madd.s %[VAR_19],%[VAR_19],%[VAR_12], %[VAR_14]                     \VAR_7\t"
: [VAR_19] "=&f" (VAR_19),[VAR_15] "+r" (VAR_15), [VAR_16] "+r" (VAR_16),
[VAR_17] "+r" (VAR_17),
[VAR_11] "=&f" (VAR_11), [VAR_12] "=&f" (VAR_12),
[VAR_13] "=&f" (VAR_13), [VAR_14] "=&f" (VAR_14),
[VAR_18] "+r" (VAR_18)
: [VAR_9] "r" (VAR_9)
: "memory"
); } VAR_0[VAR_7] = VAR_19; } }