summaryrefslogtreecommitdiff
path: root/drivers/opus/celt/cpu_support.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/opus/celt/cpu_support.h')
-rw-r--r--drivers/opus/celt/cpu_support.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/drivers/opus/celt/cpu_support.h b/drivers/opus/celt/cpu_support.h
index f682a1d19e..2507e1861e 100644
--- a/drivers/opus/celt/cpu_support.h
+++ b/drivers/opus/celt/cpu_support.h
@@ -31,8 +31,9 @@
#include "opus/opus_types.h"
#include "opus/opus_defines.h"
-#if defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_ASM)
-#include "arm/armcpu.h"
+#if defined(OPUS_HAVE_RTCD) && \
+ (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR))
+#include "opus/celt/arm/armcpu.h"
/* We currently support 4 ARM variants:
* arch[0] -> ARMv4
@@ -42,6 +43,22 @@
*/
#define OPUS_ARCHMASK 3
+#elif (defined(OPUS_X86_MAY_HAVE_SSE) && !defined(OPUS_X86_PRESUME_SSE)) || \
+ (defined(OPUS_X86_MAY_HAVE_SSE2) && !defined(OPUS_X86_PRESUME_SSE2)) || \
+ (defined(OPUS_X86_MAY_HAVE_SSE4_1) && !defined(OPUS_X86_PRESUME_SSE4_1)) || \
+ (defined(OPUS_X86_MAY_HAVE_AVX) && !defined(OPUS_X86_PRESUME_AVX))
+
+#include "opus/celt/x86/x86cpu.h"
+/* We currently support 5 x86 variants:
+ * arch[0] -> non-sse
+ * arch[1] -> sse
+ * arch[2] -> sse2
+ * arch[3] -> sse4.1
+ * arch[4] -> avx
+ */
+#define OPUS_ARCHMASK 7
+int opus_select_arch(void);
+
#else
#define OPUS_ARCHMASK 0
@@ -50,5 +67,4 @@ static OPUS_INLINE int opus_select_arch(void)
return 0;
}
#endif
-
#endif