shithub: opus

Download patch

ref: f5821193e61292280accd10c77fb24bcf6be1fc0
parent: 3e18d9675910313a53f94fd454e32a8990107632
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Tue Nov 21 11:59:28 EST 2023

Using the same condition for enabling rtcd

for cmake, force PRESEUME_SSE4_1 on PRESUME_AVX2

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -485,6 +485,7 @@
     endif()
     if(OPUS_X86_PRESUME_AVX2)
       target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_AVX2)
+      target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE4_1)
       if(NOT MSVC)
         target_compile_options(opus PRIVATE -mavx2 -mfma -mavx)
       endif()
--- a/celt/x86/x86cpu.h
+++ b/celt/x86/x86cpu.h
@@ -52,7 +52,11 @@
 #  define MAY_HAVE_AVX2(name) name ## _c
 # endif
 
-# if defined(OPUS_HAVE_RTCD)
+# if defined(OPUS_HAVE_RTCD) && \
+  ((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_AVX2) && !defined(OPUS_X86_PRESUME_AVX2)))
 int opus_select_arch(void);
 # endif
 
--