Usage of W_mac_32_32() + ONE_IN_Q30
# Basic info <!--- Add commit SHA used to reproduce--> - Float reference: - Encoder (float): n/a - Decoder (float): n/a - Fixed point: - Encoder (fixed): 8b95a313dc36985a0161518eea33c8307b7be973 - Decoder (fixed): 8b95a313dc36985a0161518eea33c8307b7be973 # Bug description The usage of `W_mac_32_32()` + `ONE_IN_Q30` is apparently causing issues for certain fixed-point compilers. Affectes places: **1) lib_enc/analy_sp_fx.c, line 645:** ``` /* PS[i] = ( Bin_E[i] + 1e-5f + Bin_E[i + L_FFT / 2] + 1e-5f ) / 2.0f; */ PS[i] = W_extract_h( W_add( W_mac_32_32( W_mult_32_32( Bin_E[i], ONE_IN_Q30 ), Bin_E[i + L_FFT / 2], ONE_IN_Q30 ), W_shr( W_shl( add_const, 32 ), sub( 31, *q_Bin_E ) ) ) ); // *q_Bin_E ``` **2) lib_enc/find_tilt_fx.c, line 326** ``` /*hp_bckr = 0.5f * (bckr[max_band-1] + bckr[max_band]);*/ /* estimated noise E in last 2 critical bands */ hp_bckr = W_extract_h( W_mac_32_32( W_mult_32_32( bckr[max_band - 1], ONE_IN_Q30 ), bckr[max_band], ONE_IN_Q30 ) ); // q_bckr ``` We will provide equivalent code in a MR. <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary.-->
issue