78 #ifndef UNALIGNED_SUPPORT_DISABLE 97 uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->
M;
102 pStateCurnt = S->
pState + (numTaps - 1u);
106 blkCnt = outBlockSize / 2;
107 blkCntN3 = outBlockSize - (2 * blkCnt);
117 *pStateCurnt++ = *pSrc++;
135 tapCnt = numTaps >> 2;
150 acc0 = __SMLAD(x0, c0, acc0);
152 acc1 = __SMLAD(x1, c0, acc1);
163 acc0 = __SMLAD(x0, c0, acc0);
165 acc1 = __SMLAD(x1, c0, acc1);
172 tapCnt = numTaps % 0x4u;
185 acc0 = __SMLAD(x0, c0, acc0);
186 acc1 = __SMLAD(x1, c0, acc1);
194 pState = pState + S->
M * 2;
198 *pDst++ = (
q15_t) (__SSAT((acc0 >> 15), 16));
199 *pDst++ = (
q15_t) (__SSAT((acc1 >> 15), 16));
214 *pStateCurnt++ = *pSrc++;
228 tapCnt = numTaps >> 2;
244 sum0 = __SMLAD(x0, c0, sum0);
250 sum0 = __SMLAD(x0, c1, sum0);
257 tapCnt = numTaps % 0x4u;
268 sum0 = __SMLAD(x0, c0, sum0);
276 pState = pState + S->
M;
280 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
293 i = (numTaps - 1u) >> 2u;
305 i = (numTaps - 1u) % 0x04u;
310 *pStateCurnt++ = *pState++;
337 uint32_t i, blkCnt, tapCnt, outBlockSize = blockSize / S->
M;
342 pStateCurnt = S->
pState + (numTaps - 1u);
346 blkCnt = outBlockSize / 2;
347 blkCntN3 = outBlockSize - (2 * blkCnt);
356 *pStateCurnt++ = *pSrc++;
374 tapCnt = numTaps >> 2;
429 tapCnt = numTaps % 0x4u;
450 pState = pState + S->
M * 2;
455 *pDst++ = (
q15_t) (__SSAT((acc0 >> 15), 16));
456 *pDst++ = (
q15_t) (__SSAT((acc1 >> 15), 16));
470 *pStateCurnt++ = *pSrc++;
484 tapCnt = numTaps >> 2;
531 tapCnt = numTaps % 0x4u;
550 pState = pState + S->
M;
554 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
567 i = (numTaps - 1u) >> 2u;
572 *pStateCurnt++ = *pState++;
573 *pStateCurnt++ = *pState++;
574 *pStateCurnt++ = *pState++;
575 *pStateCurnt++ = *pState++;
581 i = (numTaps - 1u) % 0x04u;
586 *pStateCurnt++ = *pState++;
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_fast_q15(const arm_fir_decimate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.