diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2013-06-06 02:53:48 +0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2013-06-06 02:56:07 +0400 |
commit | a092aa8f80be25f62b5b62032d996f26fa188ed8 (patch) | |
tree | f431d6d57c04636beb05305ce4b77349f552059a /celt/pitch.h | |
parent | cd4c8249bc0e091789495a09b8942d28b687273c (diff) |
Adds SSE support (only xcorr_kernel() for now)
There's no CPU detection for it, it only gets enabled by __SSE__
which gcc (other compilers?) defines automatically when supported
by -march=, which means at least all x86-64. For ia32, the user needs to
enable it in the CFLAGS.
Diffstat (limited to 'celt/pitch.h')
-rw-r--r-- | celt/pitch.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/celt/pitch.h b/celt/pitch.h index efc1175c..580ea819 100644 --- a/celt/pitch.h +++ b/celt/pitch.h @@ -36,6 +36,10 @@ #include "modes.h" +#ifdef __SSE__ +#include "x86/pitch_sse.h" +#endif + void pitch_downsample(celt_sig * OPUS_RESTRICT x[], opus_val16 * OPUS_RESTRICT x_lp, int len, int C); @@ -47,6 +51,7 @@ opus_val16 remove_doubling(opus_val16 *x, int maxperiod, int minperiod, /* OPT: This is the kernel you really want to optimize. It gets used a lot by the prefilter and by the PLC. */ +#ifndef OVERRIDE_XCORR_KERNEL static inline void xcorr_kernel(const opus_val16 * x, const opus_val16 * y, opus_val32 sum[4], int len) { int j; @@ -111,6 +116,7 @@ static inline void xcorr_kernel(const opus_val16 * x, const opus_val16 * y, opus sum[3] = MAC16_16(sum[3],tmp,y_1); } } +#endif /* OVERRIDE_XCORR_KERNEL */ #ifdef FIXED_POINT opus_val32 |