74 #ifndef ARM_MATH_CM0_FAMILY 77 q31_t inA1, inA2, inA3, inA4;
78 q31_t inB1, inB2, inB3, inB4;
79 q31_t out1, out2, out3, out4;
82 blkCnt = blockSize >> 2u;
99 out1 = ((
q63_t) inA1 * inB1) >> 32;
100 out2 = ((
q63_t) inA2 * inB2) >> 32;
101 out3 = ((
q63_t) inA3 * inB3) >> 32;
102 out4 = ((
q63_t) inA4 * inB4) >> 32;
104 out1 = __SSAT(out1, 31);
105 out2 = __SSAT(out2, 31);
106 out3 = __SSAT(out3, 31);
107 out4 = __SSAT(out4, 31);
109 *pDst++ = out1 << 1u;
110 *pDst++ = out2 << 1u;
111 *pDst++ = out3 << 1u;
112 *pDst++ = out4 << 1u;
120 blkCnt = blockSize % 0x4u;
128 out1 = ((
q63_t) inA1 * inB1) >> 32;
129 out1 = __SSAT(out1, 31);
130 *pDst++ = out1 << 1u;
149 (
q31_t) clip_q63_to_q31(((
q63_t) (*pSrcA++) * (*pSrcB++)) >> 31);
void arm_mult_q31(q31_t *pSrcA, q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector multiplication.
int64_t q63_t
64-bit fractional data type in 1.63 format.
int32_t q31_t
32-bit fractional data type in 1.31 format.