Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2013-06-06 02:53:48 +0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2013-06-06 02:56:07 +0400
commita092aa8f80be25f62b5b62032d996f26fa188ed8 (patch)
treef431d6d57c04636beb05305ce4b77349f552059a /celt/pitch.h
parentcd4c8249bc0e091789495a09b8942d28b687273c (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.h6
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