Commit 67e59adf authored by Fabian Bauer's avatar Fabian Bauer
Browse files

Del push/pop wmops

parent da62e16d
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -960,7 +960,6 @@ void computeDiffuseness_fixed(
    q_intensity = add( q_factor_intensity[0], min_q_shift2 );
    move16();

    push_wmops( "(IDR) LOOP1 DirACparams computeDiffuseness B <<-|" );
    FOR( i = 0; i < DIRAC_NO_COL_AVG_DIFF; ++i )
    {
        /* Energy slow */
@@ -1070,7 +1069,6 @@ void computeDiffuseness_fixed(

        q_intensity = s_min( q_intensity, q_tmp );
    }
    pop_wmops(); /*push_wmops( "(IDR) LOOP1 DirACparams computeDiffuseness B <<-|" );/*/

    min_q_shift1 = getScaleFactor32( intensity_slow, i_mult( DIRAC_NUM_DIMS, num_freq_bands ) );
    min_q_shift1 = sub( min_q_shift1, idiv1616( add( find_guarded_bits_fx( DIRAC_NUM_DIMS ), 1 ), 2 ) );
+0 −9
Original line number Diff line number Diff line
@@ -7191,7 +7191,6 @@ void ivas_dirac_dec_get_response_fx_29(
    Word16 b, b1, b_2, b1_2;
    // Word16 Q_out = 29;

    push_wmops( "ivas_dirac_dec_get_response_fx_29" );
    index_azimuth = add( azimuth, 180 ) % 360;
    move16();
    index_elevation = add( elevation, 90 );
@@ -7249,14 +7248,9 @@ void ivas_dirac_dec_get_response_fx_29(
    sin_az_fx[2] = L_shl( Mpy_32_32( sin_1_fx, L_sub( cos_2_fx, ONE_IN_Q28 /*1/4 q30*/ ) ), 3 ); /*q30*/
    move32();

    // response_fx[0] = L_shl_sat( 1, Q_out ); // Q_out
    response_fx[0] = 0x20000000;
    move32();

    // q_diff = sub( Q_out, 29 );

    push_wmops( "ivas_dirac_dec_get_response_fx_29_LOOPS" );

    FOR( l = 1; l <= ambisonics_order; l++ )
    {
        Word16 a;
@@ -7303,9 +7297,6 @@ void ivas_dirac_dec_get_response_fx_29(
        response_fx[b] = L_shl( c_fx_better, -1 ); // Q_out
        move32();
    }

    pop_wmops(); /*push_wmops( "ivas_dirac_dec_get_response_fx_29_LOOPS" );*/
    pop_wmops(); /*push_wmops( "ivas_dirac_dec_get_response_fx_29" );*/
    return;
}
#endif /*FIX_1310_SPEEDUP_ivas_dirac_dec_get_response_fx*/
+1 −3
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@

#define SUPPORT_JBM_TRACEFILE                   /* Support for JBM tracefile, which is needed for 3GPP objective/subjective testing, but not relevant for real-world implementations */

//#define WMOPS                                   /* Activate complexity and memory counters */
/*#define WMOPS*/                                   /* Activate complexity and memory counters */
#ifdef WMOPS
/*#define WMOPS_PER_FRAME*/                     /* Output per-frame complexity (writes one float value per frame to the file "wmops_analysis") */
/*#define WMOPS_DETAIL*/                        /* Output detailed complexity printout for every function. Increases runtime overhead */
@@ -173,6 +173,4 @@
#define FIX_1300_ICA_SHIFT_QUANT_IMPROV         /* VA: Fix to 1300 to improve precision of the lag quantizer */
#define FIX_1310_SPEEDUP_ivas_dirac_dec_get_response_fx                 /*FhG: WMOPS tuning, nonbe*/
#define FIX_1310_SPEEDUP_ivas_dirac_dec_output_synthesis_process_slot   /*FhG: WMOPS tuning, nonbe*/


#endif
+2 −16
Original line number Diff line number Diff line
@@ -2231,7 +2231,7 @@ void ivas_dirac_dec_render_sf_fx(
    move16();
    Word16 tmp1;

    push_wmops( "ivas_dirac_dec_render (IDR)" );
    push_wmops( "ivas_dirac_dec_render" );

    /* Initialize aux buffers */
    hDirAC = st_ivas->hDirAC;
@@ -2341,7 +2341,6 @@ void ivas_dirac_dec_render_sf_fx(
    }
    ELSE IF( !( EQ_16( st_ivas->ivas_format, SBA_FORMAT ) || EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ) )
    {
        push_wmops( "(IDR) SBA_FORMAT | SBA_ISM_FORMAT" );
        Word16 outchannels;
        idx_lfe = 0;
        move16();
@@ -2410,7 +2409,6 @@ void ivas_dirac_dec_render_sf_fx(
                }
            }
        }
        pop_wmops(); /*push_wmops( "(IDR) SBA_FORMAT | SBA_ISM_FORMAT" );*/
    }

    size = imult1616( hDirACRend->num_outputs_dir, hSpatParamRendCom->num_freq_bands );
@@ -2708,7 +2706,6 @@ void ivas_dirac_dec_render_sf_fx(
        }
    }

    push_wmops( "(IDR) LOOP1" );
    FOR( slot_idx = 0; slot_idx < hSpatParamRendCom->subframe_nbslots[subframe_idx]; slot_idx++ )
    {
        index_slot = add( slot_idx_start, slot_idx );
@@ -2926,8 +2923,6 @@ void ivas_dirac_dec_render_sf_fx(
                    move16();
                    BREAK;
                default:
                    pop_wmops(); /* push_wmops( "ivas_dirac_dec_render (IDR)" );*/
                    pop_wmops(); /*push_wmops( "(IDR) LOOP1");/*/
                    return;
            }
            q_proto_direct_buffer[slot_idx] = hDirACRend->h_output_synthesis_psd_state.proto_direct_buffer_f_q;
@@ -2937,7 +2932,6 @@ void ivas_dirac_dec_render_sf_fx(
        /*-----------------------------------------------------------------*
         * Compute DirAC parameters at decoder side
         *-----------------------------------------------------------------*/
        push_wmops( "(IDR) LOOP1 DirACparams |" );
        IF( EQ_16( hDirAC->hConfig->dec_param_estim, TRUE ) )
        {
            Copy( &hSpatParamRendCom->azimuth[md_idx][hDirAC->hConfig->enc_param_start_band], &azimuth[hDirAC->hConfig->enc_param_start_band], sub( hSpatParamRendCom->num_freq_bands, hDirAC->hConfig->enc_param_start_band ) );
@@ -2986,11 +2980,8 @@ void ivas_dirac_dec_render_sf_fx(
            hDirACRend->q_buffer_energy[index - 1] = DirAC_mem.reference_power_q;
            move16();

            push_wmops( "(IDR) LOOP1 DirACparams computeDiffuseness <-|" );
            computeDiffuseness_fixed( hDirACRend->buffer_intensity_real_fx, hDirACRend->buffer_energy_fx, num_freq_bands, hSpatParamRendCom->diffuseness_vector_fx[md_idx], hDirACRend->q_buffer_intensity_real, hDirACRend->q_buffer_energy, &hSpatParamRendCom->q_diffuseness_vector );
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 DirACparams computeDiffuseness <-|" );/*/
        }
        pop_wmops(); /* push_wmops( "(IDR) LOOP1 DirACparams |" );*/

        /*-----------------------------------------------------------------*
         * frequency domain decorrelation
@@ -3092,7 +3083,6 @@ void ivas_dirac_dec_render_sf_fx(
        }

        /*Compute PSDs*/
        push_wmops( "(IDR) LOOP1 PSDs |" );
        h_dirac_output_synthesis_params = &( hDirACRend->h_output_synthesis_psd_params );
        h_dirac_output_synthesis_state = &( hDirACRend->h_output_synthesis_psd_state );
        num_channels_dir = hDirACRend->num_outputs_dir;
@@ -3175,7 +3165,6 @@ void ivas_dirac_dec_render_sf_fx(
        }
        ELSE
        {
            push_wmops( "(IDR) LOOP1 PSDs PATH3 <-|" );
            ivas_dirac_dec_output_synthesis_process_slot_fx( reference_power_fx,
                                                             DirAC_mem.reference_power_q,
                                                             p_onset_filter_fx,
@@ -3193,7 +3182,6 @@ void ivas_dirac_dec_render_sf_fx(
                                                             md_idx,
                                                             hodirac_flag,
                                                             hDirAC->hConfig->dec_param_estim );
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 <-|" );/*/
        }

        IF( hDirAC->hConfig->dec_param_estim )
@@ -3264,9 +3252,7 @@ void ivas_dirac_dec_render_sf_fx(
            v_add_fixed( reference_power_fx, reference_power_smooth_fx, reference_power_smooth_fx, hSpatParamRendCom->num_freq_bands, 1 );
            q_reference_power_smooth = sub( q_reference_power_smooth, 1 );
        }
        pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs |" );*/
    }
    pop_wmops(); /*push_wmops( "(IDR) LOOP1" );*/

    minimum_s( q_proto_direct_buffer, hSpatParamRendCom->subframe_nbslots[subframe_idx], &hDirACRend->h_output_synthesis_psd_state.proto_direct_buffer_f_q );
    IF( EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) )
@@ -4092,7 +4078,7 @@ void ivas_dirac_dec_render_sf_fx(
        }
    }

    pop_wmops(); /*push_wmops( "ivas_dirac_dec_render (IDR)" );*/
    pop_wmops();

    return;
}
+2 −43
Original line number Diff line number Diff line
@@ -710,13 +710,11 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
        }
    }

    push_wmops( "(IDR) LOOP1 PSDs PATH3 B <<-|" );
    test();
    IF( dec_param_estim == FALSE && hodirac_flag )
    {
        IF( EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) )
        {
            push_wmops( "(IDR) LOOP1 PSDs PATH3 B1<<<-|" );
            v_multc_fixed( hSpatParamRendCom->energy_ratio1_fx[md_idx], -MAX_32 /*-1 Q31*/, aux_buf, num_freq_bands ); /* 30 + 31 - 31 -> 30 */
            v_addc_fixed( aux_buf, ONE_IN_Q30 /*1 Q30*/, aux_buf, num_freq_bands );                                    /*30*/
            Copy32( hSpatParamRendCom->energy_ratio1_fx[md_idx],
@@ -739,23 +737,19 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
            move16();
            h_dirac_output_synthesis_state->direct_power_factor_q = 30;
            move16();
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B1<<<-|" );/*/
        }
        ELSE
        {
            push_wmops( "(IDR) LOOP1 PSDs PATH3 B2<<<-|" );
            ivas_dirac_dec_compute_gain_factors_fx( num_freq_bands,
                                                    hSpatParamRendCom->diffuseness_vector_fx[md_idx],
                                                    h_dirac_output_synthesis_state->direct_power_factor_fx,
                                                    h_dirac_output_synthesis_state->diffuse_power_factor_fx,
                                                    &h_dirac_output_synthesis_state->direct_power_factor_q,
                                                    &h_dirac_output_synthesis_state->diffuse_power_factor_q );
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B2<<<-|" );*/
        }
    }
    ELSE IF( EQ_16( dec_param_estim, TRUE ) )
    {
        push_wmops( "(IDR) LOOP1 PSDs PATH3 B3<<<-|" );
        /* compute direct responses */
        ivas_dirac_dec_compute_directional_responses_fx( hSpatParamRendCom,
                                                         hDirACRend,
@@ -817,7 +811,7 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                Q_temp_cy_cross_dir_smooth_fx[kk] = h_dirac_output_synthesis_state->q_cy_cross_dir_smooth;
                move16();
            }
            push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 bigloop <<<<-|" );

            FOR( ch_idx = 0; ch_idx < s_min( 4, nchan_transport ); ch_idx++ )
            {
                Word16 k;
@@ -912,8 +906,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                        }
                    }
                    c = Madd_32_16( ONE_IN_Q27 /*1 Q27*/, L_sub( h_dirac_output_synthesis_params->diffuse_compensation_factor_fx, ONE_IN_Q27 /*1 Q27*/ ), 5461 ); /*Diffuseness modellling nrg compensation*/ /* 1.0 / 6.0  = 5461 in Q15*/ /*Q27*/

                    push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 bigloop B <<<<<-|" );
#ifdef FIX_1310_SPEEDUP_ivas_dirac_dec_output_synthesis_process_slot
                    FOR( ; k < num_freq_bands; k++ )
                    {
@@ -1064,9 +1056,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                        }
                    }
#endif


                    pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 bigloop B <<<<<-|" );*/
                }
                ELSE
                {
@@ -1142,8 +1131,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                    }
                }
            }
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 bigloop <<<<-|" );/*/

            Word16 temp = MAX_16; /*q0*/
            move16();
            tmp16 = imult1616( num_freq_bands, num_channels_dir );
@@ -1160,8 +1147,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
            }
            free( Q_temp_cy_cross_dir_smooth_fx );
            /*Directional gain (panning)*/
            push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 gainpanning <<<<-|" );

            Word16 temp_q = sub( add( h_dirac_output_synthesis_state->direct_power_factor_q, h_dirac_output_synthesis_state->direct_responses_q ), 31 );
            IF( LT_16( temp_q, h_dirac_output_synthesis_state->q_cy_cross_dir_smooth ) )
            {
@@ -1243,7 +1228,6 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                             num_freq_bands, 0 ); /*Q(h_dirac_output_synthesis_state->q_cy_cross_dir_smooth)*/
            }
#endif
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B3.3 gainpanning <<<<-|" );*/

            /*Diffuse gain*/
            FOR( ch_idx = s_min( 4, nchan_transport ); ch_idx < num_channels_diff; ch_idx++ )
@@ -1262,8 +1246,7 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
                             &h_dirac_output_synthesis_state->cy_auto_diff_smooth_fx[ch_idx * num_freq_bands_diff],
                             num_freq_bands_diff, 0 ); /*h_dirac_output_synthesis_state->q_cy_auto_diff_smooth*/
            }
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B3 <<-|" );/*/
            pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B <<-|" );/*/

            return;
        }
        ELSE
@@ -1282,9 +1265,7 @@ void ivas_dirac_dec_output_synthesis_process_slot_fx(
            h_dirac_output_synthesis_state->direct_power_factor_q = 31;
            move16();
        }
        pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B3<<<-|" );/*/
    }
    pop_wmops(); /*push_wmops( "(IDR) LOOP1 PSDs PATH3 B <<-|" );/*/

    diff_start_band = 0;
    move16();
@@ -3032,8 +3013,6 @@ void ivas_dirac_dec_compute_directional_responses_fx(
    Word16 dipole_freq_range[2];
    MASA_TRANSPORT_SIGNAL_TYPE transport_signal_type;

    push_wmops( "(IDR PATH3 B3.1)" );

    Q_direct_response_ls = Q31;
    move16();
    exp_direct_response_ls = 0;
@@ -3095,7 +3074,6 @@ void ivas_dirac_dec_compute_directional_responses_fx(
            LT_16( k, MASA_band_grouping_24[masa_band_mapping[add( codingBand, 1 )]] ) &&
            NE_16( k, hDirACRend->h_output_synthesis_psd_params.max_band_decorr ) )
        {
            push_wmops( "(IDR PATH3 B3.1) mvr2r_inc_fixed " );
            /* Panning gains have to be computed only for the first bin of the coding band in MASA, for other bins the previous values can be used */
            IF( NE_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) )
            {
@@ -3107,15 +3085,12 @@ void ivas_dirac_dec_compute_directional_responses_fx(
                             hSpatParamRendCom->num_freq_bands,
                             &hDirACRend->h_output_synthesis_psd_state.direct_responses_fx[k],
                             hSpatParamRendCom->num_freq_bands, num_channels_dir ); /*direct_response_q*/
            pop_wmops();                                                            /*push_wmops( "(IDR PATH3 B3.1) mvr2r_inc_fixed " );*/
        }
        ELSE
        {
            push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING " );
            /* HOA3 PANNING */
            IF( EQ_16( hDirACRend->panningConf, DIRAC_PANNING_HOA3 ) )
            {
                push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF" );
                set32_fx( direct_response_hoa_fx, ONE_IN_Q29, MAX_OUTPUT_CHANNELS );  /*q29*/
                set32_fx( direct_response_dir2_fx, ONE_IN_Q29, MAX_OUTPUT_CHANNELS ); /*q29*/

@@ -3128,21 +3103,17 @@ void ivas_dirac_dec_compute_directional_responses_fx(
                exp_direct_response_dir2 = 0;
                move16();

                push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse" );
                IF( p_Rmat != 0 )
                {
                    push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse_SPLIT_FX" );
                    ivas_dirac_dec_get_response_split_order_fx( azimuth[k], elevation[k], direct_response_hoa_fx, shd_rot_max_order, p_Rmat, &Q_direct_response_hoa );

                    IF( hodirac_flag )
                    {
                        ivas_dirac_dec_get_response_split_order_fx( azimuth2[k], elevation2[k], direct_response_dir2_fx, shd_rot_max_order, p_Rmat, &Q_direct_response_dir2 );
                    }
                    pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse_SPLIT_FX" );*/
                }
                ELSE
                {
                    push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse__FX" );
#ifdef FIX_1310_SPEEDUP_ivas_dirac_dec_get_response_fx
                    ivas_dirac_dec_get_response_fx_29( azimuth[k], elevation[k], direct_response_hoa_fx, hDirACRend->hOutSetup.ambisonics_order );
#else
@@ -3157,9 +3128,7 @@ void ivas_dirac_dec_compute_directional_responses_fx(
                        ivas_dirac_dec_get_response_fx( azimuth2[k], elevation2[k], direct_response_dir2_fx, hDirACRend->hOutSetup.ambisonics_order, Q_direct_response_dir2 );
#endif
                    }
                    pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse__FX" );*/
                }
                pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- getResponse" );*/

                test();
                test();
@@ -3167,19 +3136,16 @@ void ivas_dirac_dec_compute_directional_responses_fx(
                test();
                IF( masa_band_mapping == NULL && EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) )
                {
                    push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- PATH1" );
                    mvr2r_inc_fixed( direct_response_hoa_fx, 1, &hDirACRend->h_output_synthesis_psd_state.direct_responses_fx[k], hSpatParamRendCom->num_freq_bands, num_channels_dir ); /*Q_direct_response_hoa*/

                    IF( hodirac_flag )
                    {
                        mvr2r_inc_fixed( direct_response_dir2_fx, 1, &hDirACRend->h_output_synthesis_psd_state.direct_responses_fx[k + hSpatParamRendCom->num_freq_bands * num_channels_dir], hSpatParamRendCom->num_freq_bands, num_channels_dir ); /*Q_direct_response_dir2*/
                    }
                    pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- PATH1" );*/
                }
                ELSE IF( ( ( EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_GAIN_SHD ) ) && ( masa_band_mapping != NULL ) ) ||
                         EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_PSD_SHD ) || EQ_16( hDirACRend->synthesisConf, DIRAC_SYNTHESIS_MONO ) )
                {
                    push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- PATH2" );
                    /* Synthesize the first direction */
                    IF( GT_16( Q_direct_response_hoa, Q29 ) )
                    {
@@ -3426,17 +3392,14 @@ void ivas_dirac_dec_compute_directional_responses_fx(
                    }

                    mvr2r_inc_fixed( direct_response_fx, 1, &hDirACRend->h_output_synthesis_psd_state.direct_responses_fx[k], hSpatParamRendCom->num_freq_bands, num_channels_dir ); /*q29*/
                    pop_wmops();                                                                                                                                                     /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF -- PATH2" );*/
                }
                ELSE
                {
                    assert( 0 && "Not supported synthesis method!" );
                }
                pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING IF" );*/
            }
            ELSE IF( EQ_16( hDirACRend->panningConf, DIRAC_PANNING_VBAP ) ) /*VBAP*/
            {
                push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING ELSE" );
                /* Synthesize the first direction */
                spreadCoherencePanningVbap_fx( azimuth[k], elevation[k], hSpatParamRendCom->spreadCoherence_fx[md_idx][k],
                                               direct_response_ls_fx, &Q_direct_response_ls, num_channels_dir, hVBAPdata );
@@ -3688,13 +3651,11 @@ void ivas_dirac_dec_compute_directional_responses_fx(

                mvr2r_inc_fixed( direct_response_square_fx, 1, &hDirACRend->h_output_synthesis_psd_state.direct_responses_square_fx[k], hSpatParamRendCom->num_freq_bands, num_channels_dir ); /*direct_response_square_q*/
                mvr2r_inc_fixed( direct_response_fx, 1, &hDirACRend->h_output_synthesis_psd_state.direct_responses_fx[k], hSpatParamRendCom->num_freq_bands, num_channels_dir );               /*direct_response_q*/
                pop_wmops();                                                                                                                                                                   /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING ELSE" );*/
            }
            ELSE
            {
                assert( 0 && "Not supported panning method!" );
            }
            pop_wmops(); /*push_wmops( "(IDR PATH3 B3.1) HOA3 PANNING " );*/
        }
    }

@@ -3703,8 +3664,6 @@ void ivas_dirac_dec_compute_directional_responses_fx(
    hDirACRend->h_output_synthesis_psd_state.direct_responses_square_q = direct_response_square_q;
    move16();


    pop_wmops();
    return;
}