Incorrect shifting in function stereo_dft_dmx_swb_nrg_fx()
# Basic info - Fixed point: - Encoder (fixed): bd5a11ecd43cddcd9465fdc51296e86372bcecd3 - Decoder (fixed): bd5a11ecd43cddcd9465fdc51296e86372bcecd3 # Issue description Static analysis shows that in function `stereo_dft_dmx_swb_nrg_fx()` two instances of shifting occurs that are off. Corresponding part is: ``` FOR( i = 0; i < frame_length / 2; i++ ) { dmx_nrg = L_add( dmx_nrg, L_shr( L_add( L_shl( Madd_32_32( Mpy_32_32( dmx_k0[2 * i], dmx_k0[2 * i] ), dmx_k0[2 * i + 1], dmx_k0[2 * i + 1] ), q0 ), L_shl( Madd_32_32( Mpy_32_32( dmx_k1[2 * i], dmx_k1[2 * i] ), dmx_k1[2 * i + 1], dmx_k1[2 * i + 1] ), q1 ) ), 1 ) ); /*3*q0 - 31*/ } ``` It would seem that shifting by `q0` and `q1` should have been something else. The final value is agreed to be with `2*q_dft` but the current shifts do not respect that.
issue