#include "../dsputil.h"#include "gcc_fixes.h"#include "dsputil_altivec.h"

Go to the source code of this file.
Defines | |
| #define | BF(pre, pim, qre, qim, pre1, pim1, qre1, qim1) |
| #define | MUL16(a, b) ((a) * (b)) |
| #define | CMUL(pre, pim, are, aim, bre, bim) |
Functions | |
| void | ff_fft_calc_altivec (FFTContext *s, FFTComplex *z) |
| #define BF | ( | pre, | |||
| pim, | |||||
| qre, | |||||
| qim, | |||||
| pre1, | |||||
| pim1, | |||||
| qre1, | |||||
| qim1 | ) |
Value:
{\
FFTSample ax, ay, bx, by;\
bx=pre1;\
by=pim1;\
ax=qre1;\
ay=qim1;\
pre = (bx + ax);\
pim = (by + ay);\
qre = (bx - ax);\
qim = (by - ay);\
}
Definition at line 32 of file fft_altivec.c.
| #define CMUL | ( | pre, | |||
| pim, | |||||
| are, | |||||
| aim, | |||||
| bre, | |||||
| bim | ) |
| void ff_fft_calc_altivec | ( | FFTContext * | s, | |
| FFTComplex * | z | |||
| ) |
Do a complex FFT with the parameters defined in ff_fft_init(). The input data must be permuted before with s->revtab table. No 1.0/sqrt(n) normalization is done. AltiVec-enabled This code assumes that the 'z' pointer is 16 bytes-aligned It also assumes all FFTComplex are 8 bytes-aligned pair of float The code is exactly the same as the SSE version, except that successive MUL + ADD/SUB have been merged into fused multiply-add ('vec_madd' in altivec)
Definition at line 63 of file fft_altivec.c.
References a, a1, b, BF, c, c1, c2, CMUL, FFTContext::exptab, exptab, FFTContext::exptab1, FFTComplex::im, FFTContext::inverse, FFTContext::nbits, POWERPC_PERF_DECLARE, POWERPC_PERF_START_COUNT, POWERPC_PERF_STOP_COUNT, r, FFTComplex::re, and t1.
Referenced by ff_fft_init().
1.5.5