Some CMSIS-DSP code does not explicitly convert between vectors of
different numbers and types of elements. While some other compilers
default to implicitly converting vectors, gcc does not do this unless
explicitly enabled.
Signed-off-by: Lingkai Dong <lingkai.dong@arm.com>
Signed-off-by: Lingkai Dong <lingkai.dong@arm.com>
Saturation problem in arm_absmax_no_idx_q(7|15|31)
Difference of behavior for absmax_q(7|15|31) between reference and code:
reference is first max found. Code was last max found.
Corrected issues with arm_fir_decimate and arm_fir_interpolate
Corrected issues with real FFTs in the wrapper
Added a customization option for the FIFO class in compute graph.
Added Python tests for the corrected functions.
Table configuration issue with RFFT Fast F32 and F16
The define use to include or exclude the bit reverse table is different
for scalar and MVE versions. The test was not covering both cases.
This commit adds initialisation for the variables that can be used
potentially uninitialised so that GCC does not generate warnings while
building the MVE function implementations.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
According to the C standard q15_t * and const q15_t * are not compatible
types which, among other things, imply that an object of type const
q15_t * can't be modified by writing to a q15_t ** or vice versa.
Programs doing this are undefined.
Because of this rule all programs using the functions read_q15x2_ia,
read_q15x2_da, read_q7x4_ia, or read_q7x4_da for reading data from an
array of constant elements will be undefined. To solve this it is not
enough to change the type of the function since this will give problems
when reading data from an array of non-const elements. To get a defined
solution I needed to switch from functions to macros to allow the
increment to be done in the original type of the pointer.
Added arm_(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c
Added arm_abs(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c
For both functions : Helium and scalar versions.