73 #ifndef ARM_MATH_CM0_FAMILY 75 #ifndef UNALIGNED_SUPPORT_DISABLE 94 uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->
M;
99 pStateCurnt = S->
pState + (numTaps - 1u);
103 blkCnt = outBlockSize / 2;
104 blkCntN3 = outBlockSize - (2 * blkCnt);
114 *pStateCurnt++ = *pSrc++;
132 tapCnt = numTaps >> 2;
147 acc0 = __SMLALD(x0, c0, acc0);
149 acc1 = __SMLALD(x1, c0, acc1);
160 acc0 = __SMLALD(x0, c0, acc0);
162 acc1 = __SMLALD(x1, c0, acc1);
169 tapCnt = numTaps % 0x4u;
182 acc0 = __SMLALD(x0, c0, acc0);
183 acc1 = __SMLALD(x1, c0, acc1);
191 pState = pState + S->
M * 2;
195 *pDst++ = (
q15_t) (__SSAT((acc0 >> 15), 16));
196 *pDst++ = (
q15_t) (__SSAT((acc1 >> 15), 16));
211 *pStateCurnt++ = *pSrc++;
225 tapCnt = numTaps >> 2;
241 sum0 = __SMLALD(x0, c0, sum0);
247 sum0 = __SMLALD(x0, c1, sum0);
254 tapCnt = numTaps % 0x4u;
265 sum0 = __SMLALD(x0, c0, sum0);
273 pState = pState + S->
M;
277 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
290 i = (numTaps - 1u) >> 2u;
302 i = (numTaps - 1u) % 0x04u;
307 *pStateCurnt++ = *pState++;
334 uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->
M;
339 pStateCurnt = S->
pState + (numTaps - 1u);
343 blkCnt = outBlockSize / 2;
344 blkCntN3 = outBlockSize - (2 * blkCnt);
353 *pStateCurnt++ = *pSrc++;
371 tapCnt = numTaps >> 2;
426 tapCnt = numTaps % 0x4u;
447 pState = pState + S->
M * 2;
452 *pDst++ = (
q15_t) (__SSAT((acc0 >> 15), 16));
453 *pDst++ = (
q15_t) (__SSAT((acc1 >> 15), 16));
466 *pStateCurnt++ = *pSrc++;
480 tapCnt = numTaps >> 2;
527 tapCnt = numTaps % 0x4u;
546 pState = pState + S->
M;
550 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
563 i = (numTaps - 1u) >> 2u;
568 *pStateCurnt++ = *pState++;
569 *pStateCurnt++ = *pState++;
570 *pStateCurnt++ = *pState++;
571 *pStateCurnt++ = *pState++;
577 i = (numTaps - 1u) % 0x04u;
582 *pStateCurnt++ = *pState++;
609 uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->
M;
617 pStateCurnt = S->
pState + (numTaps - 1u);
620 blkCnt = outBlockSize;
629 *pStateCurnt++ = *pSrc++;
653 sum0 += (
q31_t) x0 *c0;
661 pState = pState + S->
M;
665 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
683 *pStateCurnt++ = *pState++;
int64_t q63_t
64-bit fractional data type in 1.63 format.
int16_t q15_t
16-bit fractional data type in 1.15 format.
Instance structure for the Q15 FIR decimator.
#define __SIMD32(addr)
definition to read/write two 16 bit values.
int32_t q31_t
32-bit fractional data type in 1.31 format.
void arm_fir_decimate_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator.