Fix for 3GPP issue 926: Usage of L_shl(), L_shl_o(), L_shl_sat() and L_shr(),...
Fix for 3GPP issue 926: Usage of L_shl(), L_shl_o(), L_shl_sat() and L_shr(), L_shr_o(), L_shr_sat()
link: #926 (closed)
Below cases are addressed:
[x] ivas_mc_paramupmix_fx.c
ps_pred_process_sf(): Saturation was not required, removed.
[x] ivas_spar_md_dec.c
ivas_mat_col_rearrange_fx() ivas_spar_dec_gen_umx_mat_fx(): All instances of computation of hMdDec->mixer_mat_fx are allowing saturation Reason for saturation: For -1 to 1 range, we usually prefer using Q31. On similar lines to accommodate -2 to 2 range we have used Q30. And only for handling one corner case when the value approaches 2 we have used saturation. The MLD difference was low.
[x] ivas_sba_rendering.c
ivas_sba_prototype_renderer_fx(): Saturations were not required, removed.
[x] ivas_spar_com.c
ivas_get_pred_coeffs_enc_fx(): Saturations were completely removed with minor workarounds.
ivas_create_fullr_dmx_mat_fx(): Saturations were removed by limiting the maximum Q to 30.
ivas_get_spar_md_from_dirac_fx(): Saturation was not required, removed.
ivas_dirac_dec_get_response_fx(): Cos, sin and response computation should not be allowed to saturate Saturations were removed from all the places by lowering the Q at some places for intermediate operations where overflow was expected for corner cases.