49 uint32_t twidCoefModifier);
55 uint32_t twidCoefModifier);
60 uint16_t bitRevFactor,
61 uint16_t * pBitRevTab);
167 uint32_t twidCoefModifier)
170 #ifndef ARM_MATH_CM0_FAMILY 175 q31_t C1, C2, C3, out1, out2;
176 uint32_t n1, n2, ic, i0, j, k;
184 q31_t xaya, xbyb, xcyc, xdyd;
204 pSi1 = pSi0 + 2 * n2;
205 pSi2 = pSi1 + 2 * n2;
206 pSi3 = pSi2 + 2 * n2;
260 #ifndef ARM_MATH_BIG_ENDIAN 263 out1 = __SMUAD(C2, R) >> 16u;
265 out2 = __SMUSDX(C2, R);
270 out1 = __SMUSDX(R, C2) >> 16u;
272 out2 = __SMUAD(C2, R);
285 (
q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
297 #ifndef ARM_MATH_BIG_ENDIAN 317 #ifndef ARM_MATH_BIG_ENDIAN 320 out1 = __SMUAD(C1, S) >> 16u;
322 out2 = __SMUSDX(C1, S);
327 out1 = __SMUSDX(S, C1) >> 16u;
329 out2 = __SMUAD(C1, S);
335 ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF);
343 #ifndef ARM_MATH_BIG_ENDIAN 346 out1 = __SMUAD(C3, R) >> 16u;
348 out2 = __SMUSDX(C3, R);
353 out1 = __SMUSDX(R, C3) >> 16u;
355 out2 = __SMUAD(C3, R);
361 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
365 ic = ic + twidCoefModifier;
376 twidCoefModifier <<= 2u;
379 for (k = fftLen / 4u; k > 4u; k >>= 2u)
386 for (j = 0u; j <= (n2 - 1u); j++)
394 ic = ic + twidCoefModifier;
396 pSi0 = pSrc16 + 2 * j;
397 pSi1 = pSi0 + 2 * n2;
398 pSi2 = pSi1 + 2 * n2;
399 pSi3 = pSi2 + 2 * n2;
402 for (i0 = j; i0 < fftLen; i0 += n1)
431 out1 = __SHADD16(R, T);
432 out1 = __SHADD16(out1, 0);
439 #ifndef ARM_MATH_BIG_ENDIAN 442 out1 = __SMUAD(C2, R) >> 16u;
445 out2 = __SMUSDX(C2, R);
450 out1 = __SMUSDX(R, C2) >> 16u;
453 out2 = __SMUAD(C2, R);
465 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
476 #ifndef ARM_MATH_BIG_ENDIAN 486 out1 = __SMUAD(C1, S) >> 16u;
487 out2 = __SMUSDX(C1, S);
499 out1 = __SMUSDX(S, C1) >> 16u;
500 out2 = __SMUAD(C1, S);
507 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
512 #ifndef ARM_MATH_BIG_ENDIAN 514 out1 = __SMUAD(C3, R) >> 16u;
515 out2 = __SMUSDX(C3, R);
519 out1 = __SMUSDX(R, C3) >> 16u;
520 out2 = __SMUAD(C3, R);
527 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
532 twidCoefModifier <<= 2u;
565 R = __QADD16(xaya, xcyc);
568 T = __QADD16(xbyb, xdyd);
576 *
__SIMD32(ptr1)++ = __SHADD16(R, T);
579 T = __QADD16(xbyb, xdyd);
583 *
__SIMD32(ptr1)++ = __SHSUB16(R, T);
586 S = __QSUB16(xaya, xcyc);
590 U = __QSUB16(xbyb, xdyd);
592 #ifndef ARM_MATH_BIG_ENDIAN 630 q15_t R0, R1, S0, S1, T0, T1, U0, U1;
631 q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2;
632 uint32_t n1, n2, ic, i0, i1, i2, i3, j, k;
669 T0 = pSrc16[i0 * 2u] >> 2u;
670 T1 = pSrc16[(i0 * 2u) + 1u] >> 2u;
674 S0 = pSrc16[i2 * 2u] >> 2u;
675 S1 = pSrc16[(i2 * 2u) + 1u] >> 2u;
678 R0 = __SSAT(T0 + S0, 16u);
680 R1 = __SSAT(T1 + S1, 16u);
683 S0 = __SSAT(T0 - S0, 16);
685 S1 = __SSAT(T1 - S1, 16);
690 T0 = pSrc16[i1 * 2u] >> 2u;
691 T1 = pSrc16[(i1 * 2u) + 1u] >> 2u;
695 U0 = pSrc16[i3 * 2u] >> 2u;
696 U1 = pSrc16[(i3 * 2u) + 1] >> 2u;
699 T0 = __SSAT(T0 + U0, 16u);
701 T1 = __SSAT(T1 + U1, 16u);
706 pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u);
707 pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u);
711 R0 = __SSAT(R0 - T0, 16u);
712 R1 = __SSAT(R1 - T1, 16u);
715 Co2 = pCoef16[2u * ic * 2u];
716 Si2 = pCoef16[(2u * ic * 2u) + 1];
719 out1 = (
q15_t) ((Co2 * R0 + Si2 * R1) >> 16u);
721 out2 = (
q15_t) ((-Si2 * R0 + Co2 * R1) >> 16u);
726 T0 = pSrc16[i1 * 2u] >> 2;
727 T1 = pSrc16[(i1 * 2u) + 1] >> 2;
731 pSrc16[i1 * 2u] = out1;
732 pSrc16[(i1 * 2u) + 1] = out2;
737 U0 = pSrc16[i3 * 2u] >> 2;
738 U1 = pSrc16[(i3 * 2u) + 1] >> 2;
740 T0 = __SSAT(T0 - U0, 16);
742 T1 = __SSAT(T1 - U1, 16);
753 Co1 = pCoef16[ic * 2u];
754 Si1 = pCoef16[(ic * 2u) + 1];
757 out1 = (
q15_t) ((Si1 * S1 + Co1 * S0) >> 16);
759 out2 = (
q15_t) ((-Si1 * S0 + Co1 * S1) >> 16);
762 pSrc16[i2 * 2u] = out1;
763 pSrc16[(i2 * 2u) + 1] = out2;
766 Co3 = pCoef16[3u * (ic * 2u)];
767 Si3 = pCoef16[(3u * (ic * 2u)) + 1];
770 out1 = (
q15_t) ((Si3 * R1 + Co3 * R0) >> 16u);
772 out2 = (
q15_t) ((-Si3 * R0 + Co3 * R1) >> 16u);
774 pSrc16[i3 * 2u] = out1;
775 pSrc16[(i3 * 2u) + 1] = out2;
778 ic = ic + twidCoefModifier;
792 twidCoefModifier <<= 2u;
795 for (k = fftLen / 4u; k > 4u; k >>= 2u)
802 for (j = 0u; j <= (n2 - 1u); j++)
805 Co1 = pCoef16[ic * 2u];
806 Si1 = pCoef16[(ic * 2u) + 1u];
807 Co2 = pCoef16[2u * (ic * 2u)];
808 Si2 = pCoef16[(2u * (ic * 2u)) + 1u];
809 Co3 = pCoef16[3u * (ic * 2u)];
810 Si3 = pCoef16[(3u * (ic * 2u)) + 1u];
813 ic = ic + twidCoefModifier;
816 for (i0 = j; i0 < fftLen; i0 += n1)
826 T0 = pSrc16[i0 * 2u];
827 T1 = pSrc16[(i0 * 2u) + 1u];
830 S0 = pSrc16[i2 * 2u];
831 S1 = pSrc16[(i2 * 2u) + 1u];
834 R0 = __SSAT(T0 + S0, 16);
835 R1 = __SSAT(T1 + S1, 16);
838 S0 = __SSAT(T0 - S0, 16);
839 S1 = __SSAT(T1 - S1, 16);
843 T0 = pSrc16[i1 * 2u];
844 T1 = pSrc16[(i1 * 2u) + 1u];
847 U0 = pSrc16[i3 * 2u];
848 U1 = pSrc16[(i3 * 2u) + 1u];
852 T0 = __SSAT(T0 + U0, 16);
853 T1 = __SSAT(T1 + U1, 16);
859 out1 = ((R0 >> 1u) + (T0 >> 1u)) >> 1u;
860 out2 = ((R1 >> 1u) + (T1 >> 1u)) >> 1u;
862 pSrc16[i0 * 2u] = out1;
863 pSrc16[(2u * i0) + 1u] = out2;
866 R0 = (R0 >> 1u) - (T0 >> 1u);
867 R1 = (R1 >> 1u) - (T1 >> 1u);
870 out1 = (
q15_t) ((Co2 * R0 + Si2 * R1) >> 16u);
873 out2 = (
q15_t) ((-Si2 * R0 + Co2 * R1) >> 16u);
877 T0 = pSrc16[i1 * 2u];
878 T1 = pSrc16[(i1 * 2u) + 1u];
883 pSrc16[i1 * 2u] = out1;
884 pSrc16[(i1 * 2u) + 1u] = out2;
889 U0 = pSrc16[i3 * 2u];
890 U1 = pSrc16[(i3 * 2u) + 1u];
893 T0 = __SSAT(T0 - U0, 16);
894 T1 = __SSAT(T1 - U1, 16);
897 R0 = (S0 >> 1u) - (T1 >> 1u);
898 R1 = (S1 >> 1u) + (T0 >> 1u);
901 S0 = (S0 >> 1u) + (T1 >> 1u);
902 S1 = (S1 >> 1u) - (T0 >> 1u);
905 out1 = (
q15_t) ((Co1 * S0 + Si1 * S1) >> 16u);
907 out2 = (
q15_t) ((-Si1 * S0 + Co1 * S1) >> 16u);
911 pSrc16[i2 * 2u] = out1;
912 pSrc16[(i2 * 2u) + 1u] = out2;
915 out1 = (
q15_t) ((Si3 * R1 + Co3 * R0) >> 16u);
917 out2 = (
q15_t) ((-Si3 * R0 + Co3 * R1) >> 16u);
920 pSrc16[i3 * 2u] = out1;
921 pSrc16[(i3 * 2u) + 1u] = out2;
925 twidCoefModifier <<= 2u;
942 for (i0 = 0u; i0 <= (fftLen - n1); i0 += n1)
952 T0 = pSrc16[i0 * 2u];
953 T1 = pSrc16[(i0 * 2u) + 1u];
956 S0 = pSrc16[i2 * 2u];
957 S1 = pSrc16[(i2 * 2u) + 1u];
960 R0 = __SSAT(T0 + S0, 16u);
961 R1 = __SSAT(T1 + S1, 16u);
964 S0 = __SSAT(T0 - S0, 16u);
965 S1 = __SSAT(T1 - S1, 16u);
969 T0 = pSrc16[i1 * 2u];
970 T1 = pSrc16[(i1 * 2u) + 1u];
972 U0 = pSrc16[i3 * 2u];
973 U1 = pSrc16[(i3 * 2u) + 1u];
976 T0 = __SSAT(T0 + U0, 16u);
977 T1 = __SSAT(T1 + U1, 16u);
982 pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u);
983 pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u);
986 R0 = (R0 >> 1u) - (T0 >> 1u);
987 R1 = (R1 >> 1u) - (T1 >> 1u);
989 T0 = pSrc16[i1 * 2u];
990 T1 = pSrc16[(i1 * 2u) + 1u];
995 pSrc16[i1 * 2u] = R0;
996 pSrc16[(i1 * 2u) + 1u] = R1;
999 U0 = pSrc16[i3 * 2u];
1000 U1 = pSrc16[(i3 * 2u) + 1u];
1002 T0 = __SSAT(T0 - U0, 16u);
1003 T1 = __SSAT(T1 - U1, 16u);
1008 pSrc16[i2 * 2u] = (S0 >> 1u) + (T1 >> 1u);
1009 pSrc16[(i2 * 2u) + 1u] = (S1 >> 1u) - (T0 >> 1u);
1014 pSrc16[i3 * 2u] = (S0 >> 1u) - (T1 >> 1u);
1015 pSrc16[(i3 * 2u) + 1u] = (S1 >> 1u) + (T0 >> 1u);
1084 uint32_t twidCoefModifier)
1087 #ifndef ARM_MATH_CM0_FAMILY 1092 q31_t C1, C2, C3, out1, out2;
1093 uint32_t n1, n2, ic, i0, j, k;
1101 q31_t xaya, xbyb, xcyc, xdyd;
1121 pSi1 = pSi0 + 2 * n2;
1122 pSi2 = pSi1 + 2 * n2;
1123 pSi3 = pSi2 + 2 * n2;
1135 T = __SHADD16(T, 0);
1136 T = __SHADD16(T, 0);
1140 S = __SHADD16(S, 0);
1141 S = __SHADD16(S, 0);
1152 T = __SHADD16(T, 0);
1153 T = __SHADD16(T, 0);
1157 U = __SHADD16(U, 0);
1158 U = __SHADD16(U, 0);
1175 #ifndef ARM_MATH_BIG_ENDIAN 1178 out1 = __SMUSD(C2, R) >> 16u;
1180 out2 = __SMUADX(C2, R);
1185 out1 = __SMUADX(C2, R) >> 16u;
1187 out2 = __SMUSD(__QSUB16(0, C2), R);
1194 T = __SHADD16(T, 0);
1195 T = __SHADD16(T, 0);
1200 (
q31_t) ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
1206 U = __SHADD16(U, 0);
1207 U = __SHADD16(U, 0);
1212 #ifndef ARM_MATH_BIG_ENDIAN 1232 #ifndef ARM_MATH_BIG_ENDIAN 1235 out1 = __SMUSD(C1, S) >> 16u;
1237 out2 = __SMUADX(C1, S);
1242 out1 = __SMUADX(C1, S) >> 16u;
1244 out2 = __SMUSD(__QSUB16(0, C1), S);
1250 ((out2) & 0xFFFF0000) | ((out1) & 0x0000FFFF);
1258 #ifndef ARM_MATH_BIG_ENDIAN 1261 out1 = __SMUSD(C3, R) >> 16u;
1263 out2 = __SMUADX(C3, R);
1268 out1 = __SMUADX(C3, R) >> 16u;
1270 out2 = __SMUSD(__QSUB16(0, C3), R);
1276 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
1280 ic = ic + twidCoefModifier;
1291 twidCoefModifier <<= 2u;
1294 for (k = fftLen / 4u; k > 4u; k >>= 2u)
1301 for (j = 0u; j <= (n2 - 1u); j++)
1309 ic = ic + twidCoefModifier;
1311 pSi0 = pSrc16 + 2 * j;
1312 pSi1 = pSi0 + 2 * n2;
1313 pSi2 = pSi1 + 2 * n2;
1314 pSi3 = pSi2 + 2 * n2;
1317 for (i0 = j; i0 < fftLen; i0 += n1)
1346 out1 = __SHADD16(R, T);
1347 out1 = __SHADD16(out1, 0);
1352 R = __SHSUB16(R, T);
1354 #ifndef ARM_MATH_BIG_ENDIAN 1357 out1 = __SMUSD(C2, R) >> 16u;
1360 out2 = __SMUADX(C2, R);
1365 out1 = __SMUADX(R, C2) >> 16u;
1368 out2 = __SMUSD(__QSUB16(0, C2), R);
1380 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
1391 #ifndef ARM_MATH_BIG_ENDIAN 1401 out1 = __SMUSD(C1, S) >> 16u;
1402 out2 = __SMUADX(C1, S);
1414 out1 = __SMUADX(S, C1) >> 16u;
1415 out2 = __SMUSD(__QSUB16(0, C1), S);
1422 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
1427 #ifndef ARM_MATH_BIG_ENDIAN 1429 out1 = __SMUSD(C3, R) >> 16u;
1430 out2 = __SMUADX(C3, R);
1434 out1 = __SMUADX(C3, R) >> 16u;
1435 out2 = __SMUSD(__QSUB16(0, C3), R);
1442 ((out2) & 0xFFFF0000) | (out1 & 0x0000FFFF);
1447 twidCoefModifier <<= 2u;
1479 R = __QADD16(xaya, xcyc);
1482 T = __QADD16(xbyb, xdyd);
1490 *
__SIMD32(ptr1)++ = __SHADD16(R, T);
1493 T = __QADD16(xbyb, xdyd);
1497 *
__SIMD32(ptr1)++ = __SHSUB16(R, T);
1500 S = __QSUB16(xaya, xcyc);
1504 U = __QSUB16(xbyb, xdyd);
1506 #ifndef ARM_MATH_BIG_ENDIAN 1545 q15_t R0, R1, S0, S1, T0, T1, U0, U1;
1546 q15_t Co1, Si1, Co2, Si2, Co3, Si3, out1, out2;
1547 uint32_t n1, n2, ic, i0, i1, i2, i3, j, k;
1584 T0 = pSrc16[i0 * 2u] >> 2u;
1585 T1 = pSrc16[(i0 * 2u) + 1u] >> 2u;
1588 S0 = pSrc16[i2 * 2u] >> 2u;
1589 S1 = pSrc16[(i2 * 2u) + 1u] >> 2u;
1592 R0 = __SSAT(T0 + S0, 16u);
1593 R1 = __SSAT(T1 + S1, 16u);
1595 S0 = __SSAT(T0 - S0, 16u);
1596 S1 = __SSAT(T1 - S1, 16u);
1601 T0 = pSrc16[i1 * 2u] >> 2u;
1602 T1 = pSrc16[(i1 * 2u) + 1u] >> 2u;
1605 U0 = pSrc16[i3 * 2u] >> 2u;
1606 U1 = pSrc16[(i3 * 2u) + 1u] >> 2u;
1609 T0 = __SSAT(T0 + U0, 16u);
1610 T1 = __SSAT(T1 + U1, 16u);
1615 pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u);
1616 pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u);
1619 R0 = __SSAT(R0 - T0, 16u);
1620 R1 = __SSAT(R1 - T1, 16u);
1622 Co2 = pCoef16[2u * ic * 2u];
1623 Si2 = pCoef16[(2u * ic * 2u) + 1u];
1625 out1 = (
q15_t) ((Co2 * R0 - Si2 * R1) >> 16u);
1627 out2 = (
q15_t) ((Si2 * R0 + Co2 * R1) >> 16u);
1632 T0 = pSrc16[i1 * 2u] >> 2u;
1633 T1 = pSrc16[(i1 * 2u) + 1u] >> 2u;
1637 pSrc16[i1 * 2u] = out1;
1638 pSrc16[(i1 * 2u) + 1u] = out2;
1643 U0 = pSrc16[i3 * 2u] >> 2u;
1644 U1 = pSrc16[(i3 * 2u) + 1u] >> 2u;
1647 T0 = __SSAT(T0 - U0, 16u);
1648 T1 = __SSAT(T1 - U1, 16u);
1657 Co1 = pCoef16[ic * 2u];
1658 Si1 = pCoef16[(ic * 2u) + 1u];
1661 out1 = (
q15_t) ((Co1 * S0 - Si1 * S1) >> 16u);
1663 out2 = (
q15_t) ((Si1 * S0 + Co1 * S1) >> 16u);
1665 pSrc16[i2 * 2u] = out1;
1666 pSrc16[(i2 * 2u) + 1u] = out2;
1669 Co3 = pCoef16[3u * ic * 2u];
1670 Si3 = pCoef16[(3u * ic * 2u) + 1u];
1673 out1 = (
q15_t) ((Co3 * R0 - Si3 * R1) >> 16u);
1675 out2 = (
q15_t) ((Si3 * R0 + Co3 * R1) >> 16u);
1677 pSrc16[i3 * 2u] = out1;
1678 pSrc16[(i3 * 2u) + 1u] = out2;
1681 ic = ic + twidCoefModifier;
1696 twidCoefModifier <<= 2u;
1699 for (k = fftLen / 4u; k > 4u; k >>= 2u)
1706 for (j = 0u; j <= (n2 - 1u); j++)
1709 Co1 = pCoef16[ic * 2u];
1710 Si1 = pCoef16[(ic * 2u) + 1u];
1711 Co2 = pCoef16[2u * ic * 2u];
1712 Si2 = pCoef16[2u * ic * 2u + 1u];
1713 Co3 = pCoef16[3u * ic * 2u];
1714 Si3 = pCoef16[(3u * ic * 2u) + 1u];
1717 ic = ic + twidCoefModifier;
1720 for (i0 = j; i0 < fftLen; i0 += n1)
1730 T0 = pSrc16[i0 * 2u];
1731 T1 = pSrc16[(i0 * 2u) + 1u];
1734 S0 = pSrc16[i2 * 2u];
1735 S1 = pSrc16[(i2 * 2u) + 1u];
1739 R0 = __SSAT(T0 + S0, 16u);
1740 R1 = __SSAT(T1 + S1, 16u);
1742 S0 = __SSAT(T0 - S0, 16u);
1743 S1 = __SSAT(T1 - S1, 16u);
1747 T0 = pSrc16[i1 * 2u];
1748 T1 = pSrc16[(i1 * 2u) + 1u];
1751 U0 = pSrc16[i3 * 2u];
1752 U1 = pSrc16[(i3 * 2u) + 1u];
1755 T0 = __SSAT(T0 + U0, 16u);
1756 T1 = __SSAT(T1 + U1, 16u);
1761 pSrc16[i0 * 2u] = ((R0 >> 1u) + (T0 >> 1u)) >> 1u;
1762 pSrc16[(i0 * 2u) + 1u] = ((R1 >> 1u) + (T1 >> 1u)) >> 1u;
1765 R0 = (R0 >> 1u) - (T0 >> 1u);
1766 R1 = (R1 >> 1u) - (T1 >> 1u);
1769 out1 = (
q15_t) ((Co2 * R0 - Si2 * R1) >> 16);
1771 out2 = (
q15_t) ((Si2 * R0 + Co2 * R1) >> 16);
1775 T0 = pSrc16[i1 * 2u];
1776 T1 = pSrc16[(i1 * 2u) + 1u];
1781 pSrc16[i1 * 2u] = out1;
1782 pSrc16[(i1 * 2u) + 1u] = out2;
1786 U0 = pSrc16[i3 * 2u];
1787 U1 = pSrc16[(i3 * 2u) + 1u];
1790 T0 = __SSAT(T0 - U0, 16u);
1791 T1 = __SSAT(T1 - U1, 16u);
1794 R0 = (S0 >> 1u) + (T1 >> 1u);
1795 R1 = (S1 >> 1u) - (T0 >> 1u);
1798 S0 = (S0 >> 1u) - (T1 >> 1u);
1799 S1 = (S1 >> 1u) + (T0 >> 1u);
1802 out1 = (
q15_t) ((Co1 * S0 - Si1 * S1) >> 16u);
1803 out2 = (
q15_t) ((Si1 * S0 + Co1 * S1) >> 16u);
1806 pSrc16[i2 * 2u] = out1;
1807 pSrc16[(i2 * 2u) + 1u] = out2;
1810 out1 = (
q15_t) ((Co3 * R0 - Si3 * R1) >> 16u);
1812 out2 = (
q15_t) ((Si3 * R0 + Co3 * R1) >> 16u);
1815 pSrc16[i3 * 2u] = out1;
1816 pSrc16[(i3 * 2u) + 1u] = out2;
1822 twidCoefModifier <<= 2u;
1840 for (i0 = 0u; i0 <= (fftLen - n1); i0 += n1)
1850 T0 = pSrc16[i0 * 2u];
1851 T1 = pSrc16[(i0 * 2u) + 1u];
1853 S0 = pSrc16[i2 * 2u];
1854 S1 = pSrc16[(i2 * 2u) + 1u];
1857 R0 = __SSAT(T0 + S0, 16u);
1858 R1 = __SSAT(T1 + S1, 16u);
1860 S0 = __SSAT(T0 - S0, 16u);
1861 S1 = __SSAT(T1 - S1, 16u);
1865 T0 = pSrc16[i1 * 2u];
1866 T1 = pSrc16[(i1 * 2u) + 1u];
1868 U0 = pSrc16[i3 * 2u];
1869 U1 = pSrc16[(i3 * 2u) + 1u];
1872 T0 = __SSAT(T0 + U0, 16u);
1873 T1 = __SSAT(T1 + U1, 16u);
1878 pSrc16[i0 * 2u] = (R0 >> 1u) + (T0 >> 1u);
1879 pSrc16[(i0 * 2u) + 1u] = (R1 >> 1u) + (T1 >> 1u);
1882 R0 = (R0 >> 1u) - (T0 >> 1u);
1883 R1 = (R1 >> 1u) - (T1 >> 1u);
1886 T0 = pSrc16[i1 * 2u];
1887 T1 = pSrc16[(i1 * 2u) + 1u];
1892 pSrc16[i1 * 2u] = R0;
1893 pSrc16[(i1 * 2u) + 1u] = R1;
1896 U0 = pSrc16[i3 * 2u];
1897 U1 = pSrc16[(i3 * 2u) + 1u];
1899 T0 = __SSAT(T0 - U0, 16u);
1900 T1 = __SSAT(T1 - U1, 16u);
1905 pSrc16[i2 * 2u] = (S0 >> 1u) - (T1 >> 1u);
1906 pSrc16[(i2 * 2u) + 1u] = (S1 >> 1u) + (T0 >> 1u);
1912 pSrc16[i3 * 2u] = (S0 >> 1u) + (T1 >> 1u);
1913 pSrc16[(i3 * 2u) + 1u] = (S1 >> 1u) - (T0 >> 1u);
void arm_cfft_radix4_q15(const arm_cfft_radix4_instance_q15 *S, q15_t *pSrc)
Processing function for the Q15 CFFT/CIFFT.
void arm_radix4_butterfly_q15(q15_t *pSrc16, uint32_t fftLen, q15_t *pCoef16, uint32_t twidCoefModifier)
Core function for the Q15 CFFT butterfly process.
void arm_bitreversal_q15(q15_t *pSrc, uint32_t fftLen, uint16_t bitRevFactor, uint16_t *pBitRevTab)
int16_t q15_t
16-bit fractional data type in 1.15 format.
uint16_t twidCoefModifier
#define __SIMD32(addr)
definition to read/write two 16 bit values.
#define _SIMD32_OFFSET(addr)
int32_t q31_t
32-bit fractional data type in 1.31 format.
Instance structure for the Q15 CFFT/CIFFT function.
void arm_radix4_butterfly_inverse_q15(q15_t *pSrc16, uint32_t fftLen, q15_t *pCoef16, uint32_t twidCoefModifier)
Core function for the Q15 CIFFT butterfly process.