From 88fc293799c851d3c1873e0f98ae0ace0eba88bb Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Wed, 29 Nov 2023 18:17:30 -0500 Subject: Defining __SSEx__ macros when needed for MSVC --- celt/x86/x86_arch_macros.h | 47 ++++++++++++++++++++++++++++++++++++++++++++++ celt_headers.mk | 1 + dnn/x86/nnet_avx2.c | 2 ++ dnn/x86/nnet_sse2.c | 2 ++ dnn/x86/nnet_sse4_1.c | 2 ++ 5 files changed, 54 insertions(+) create mode 100644 celt/x86/x86_arch_macros.h diff --git a/celt/x86/x86_arch_macros.h b/celt/x86/x86_arch_macros.h new file mode 100644 index 00000000..975b443e --- /dev/null +++ b/celt/x86/x86_arch_macros.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2023 Amazon */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER + +# ifdef OPUS_X86_MAY_HAVE_SSE +# ifndef __SSE__ +# define __SSE__ +# endif +# endif + +# ifdef OPUS_X86_MAY_HAVE_SSE2 +# ifndef __SSE2__ +# define __SSE2__ +# endif +# endif + +# ifdef OPUS_X86_MAY_HAVE_SSE4_1 +# ifndef __SSE4_1__ +# define __SSE4_1__ +# endif +# endif + +#endif diff --git a/celt_headers.mk b/celt_headers.mk index 706185da..94a65573 100644 --- a/celt_headers.mk +++ b/celt_headers.mk @@ -50,4 +50,5 @@ celt/mips/pitch_mipsr1.h \ celt/mips/vq_mipsr1.h \ celt/x86/pitch_sse.h \ celt/x86/vq_sse.h \ +celt/x86/x86_arch_macros.h \ celt/x86/x86cpu.h diff --git a/dnn/x86/nnet_avx2.c b/dnn/x86/nnet_avx2.c index f463b324..41037fcc 100644 --- a/dnn/x86/nnet_avx2.c +++ b/dnn/x86/nnet_avx2.c @@ -29,6 +29,8 @@ #include "config.h" #endif +#include "x86/x86_arch_macros.h" + #ifndef __AVX2__ #error nnet_avx2.c is being compiled without AVX2 enabled #endif diff --git a/dnn/x86/nnet_sse2.c b/dnn/x86/nnet_sse2.c index bcee5ccc..447b947c 100644 --- a/dnn/x86/nnet_sse2.c +++ b/dnn/x86/nnet_sse2.c @@ -29,6 +29,8 @@ #include "config.h" #endif +#include "x86/x86_arch_macros.h" + #ifndef __SSE2__ #error nnet_sse2.c is being compiled without SSE2 enabled #endif diff --git a/dnn/x86/nnet_sse4_1.c b/dnn/x86/nnet_sse4_1.c index 4b530b65..224926e5 100644 --- a/dnn/x86/nnet_sse4_1.c +++ b/dnn/x86/nnet_sse4_1.c @@ -29,6 +29,8 @@ #include "config.h" #endif +#include "x86/x86_arch_macros.h" + #ifndef __SSE4_1__ #error nnet_sse4_1.c is being compiled without SSE4.1 enabled #endif -- cgit v1.2.3