shithub: opus

Download patch

ref: 522a29057102ab853e5b0bb47602e787cd5ff65a
parent: 4c7602972220f9f59b153c800c86e03b771b781f
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Fri Feb 23 22:41:47 EST 2024

_mm_loadu_si23() needs immintrin.h on MSVC

--- a/celt/x86/x86cpu.h
+++ b/celt/x86/x86cpu.h
@@ -73,6 +73,9 @@
 #   include <string.h>
 #   include <emmintrin.h>
 
+#   ifdef _mm_loadu_si32
+#    undef _mm_loadu_si32
+#   endif
 #   define _mm_loadu_si32 WORKAROUND_mm_loadu_si32
 static inline __m128i WORKAROUND_mm_loadu_si32(void const* mem_addr) {
   int val;
@@ -79,6 +82,9 @@
   memcpy(&val, mem_addr, sizeof(val));
   return _mm_cvtsi32_si128(val);
 }
+#  elif defined(_MSC_VER)
+    /* MSVC needs this for _mm_loadu_si32 */
+#   include <immintrin.h>
 #  endif
 
 #  define OP_CVTEPI8_EPI32_M32(x) \
--