/* * file firlib\src\fir_sp_opt_r4.c * brief FIR filtering function in radix 4 vectorized C (single precision IEEE754) * warning radix 4 input and coefficients arrays sizes * author * date */ #include "firlib.h" /* * FIR filtering function in radix 4 vectorized C (single precision IEEE754) * warning radix 4 input and coefficients arrays sizes */ void fir_sp_opt_r4 (const float * restrict xk, \ const float * restrict a, \ float * restrict yk, \ int na, \ int nyk){ int i, j; __float2_t acc1, acc2, acc3, acc4, acc5, acc6, acc7, acc8; __float2_t a10, a32; __float2_t xk10, xk21, xk32, xk43, xk54, xk65; _nassert(na >= 4); _nassert(na % 4 == 0); _nassert(nyk >= 4); _nassert(nyk % 4 == 0); _nassert((int) xk % 8 == 0); _nassert((int) yk % 8 == 0); _nassert((int) a % 8 == 0); for (i=0; i