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) \
--
⑨