75 #ifndef ARM_MATH_CM0_FAMILY 78 q31_t inA1, inA2, inB1, inB2;
79 q15_t out1, out2, out3, out4;
80 q31_t mul1, mul2, mul3, mul4;
83 blkCnt = blockSize >> 2u;
105 out1 = (
q15_t) __SSAT(mul1 >> 15, 16);
106 out2 = (
q15_t) __SSAT(mul2 >> 15, 16);
107 out3 = (
q15_t) __SSAT(mul3 >> 15, 16);
108 out4 = (
q15_t) __SSAT(mul4 >> 15, 16);
111 #ifndef ARM_MATH_BIG_ENDIAN 113 *
__SIMD32(pDst)++ = __PKHBT(out2, out1, 16);
114 *
__SIMD32(pDst)++ = __PKHBT(out4, out3, 16);
118 *
__SIMD32(pDst)++ = __PKHBT(out2, out1, 16);
119 *
__SIMD32(pDst)++ = __PKHBT(out4, out3, 16);
129 blkCnt = blockSize % 0x4u;
145 *pDst++ = (
q15_t) __SSAT((((
q31_t) (*pSrcA++) * (*pSrcB++)) >> 15), 16);
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_mult_q15(q15_t *pSrcA, q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector multiplication.
int32_t q31_t
32-bit fractional data type in 1.31 format.