70 #ifndef ARM_MATH_CM0_FAMILY 86 uint32_t i, blkCnt, j, tapCnt;
97 blkCnt = blockSize / 2;
98 blkCntN2 = blockSize - (2 * blkCnt);
104 *pStateCurnt++ = *pSrc++;
105 *pStateCurnt++ = *pSrc++;
123 ptr2 = pCoeffs + (S->
L - j);
127 tapCnt = phaseLen >> 2u;
141 acc0 += (
q63_t) x0 *c0;
142 acc1 += (
q63_t) x1 *c0;
152 acc0 += (
q63_t) x1 *c0;
153 acc1 += (
q63_t) x0 *c0;
157 c0 = *(ptr2 + S->
L * 2);
163 acc0 += (
q63_t) x0 *c0;
164 acc1 += (
q63_t) x1 *c0;
167 c0 = *(ptr2 + S->
L * 3);
173 acc0 += (
q63_t) x1 *c0;
174 acc1 += (
q63_t) x0 *c0;
187 tapCnt = phaseLen % 0x4u;
199 acc0 += (
q63_t) x0 *c0;
200 acc1 += (
q63_t) x1 *c0;
213 *pDst = (
q15_t) (__SSAT((acc0 >> 15), 16));
214 *(pDst + S->
L) = (
q15_t) (__SSAT((acc1 >> 15), 16));
243 *pStateCurnt++ = *pSrc++;
259 ptr2 = pCoeffs + (S->
L - j);
263 tapCnt = phaseLen >> 2;
279 sum0 += (
q63_t) x0 *c0;
291 sum0 += (
q63_t) x0 *c0;
303 sum0 += (
q63_t) x0 *c0;
315 sum0 += (
q63_t) x0 *c0;
322 tapCnt = phaseLen & 0x3u;
336 sum0 += (
q63_t) x0 *c0;
343 *pDst++ = (
q15_t) (__SSAT((sum0 >> 15), 16));
367 i = ((uint32_t) phaseLen - 1u) >> 2u;
372 #ifndef UNALIGNED_SUPPORT_DISABLE 379 *pStateCurnt++ = *pState++;
380 *pStateCurnt++ = *pState++;
381 *pStateCurnt++ = *pState++;
382 *pStateCurnt++ = *pState++;
390 i = ((uint32_t) phaseLen - 1u) % 0x04u;
394 *pStateCurnt++ = *pState++;
417 uint32_t i, blkCnt, tapCnt;
423 pStateCurnt = S->
pState + (phaseLen - 1u);
432 *pStateCurnt++ = *pSrc++;
446 ptr2 = pCoeffs + (i - 1u);
449 tapCnt = (uint32_t) phaseLen;
463 sum += ((
q31_t) x0 * c0);
470 *pDst++ = (
q15_t) (__SSAT((sum >> 15), 16));
491 i = (uint32_t) phaseLen - 1u;
495 *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.
#define __SIMD32(addr)
definition to read/write two 16 bit values.
void arm_fir_interpolate_q15(const arm_fir_interpolate_instance_q15 *S, q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR interpolator.
Instance structure for the Q15 FIR interpolator.
int32_t q31_t
32-bit fractional data type in 1.31 format.