From: Even Rouault Date: Tue, 20 Jun 2017 16:24:21 +0000 (+0200) Subject: Enable __SSE__ / __SSE2__ with Visual Studio X-Git-Tag: v2.2.0~71^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f06cfadef8e2b1ad9008957cc6bc80a27c53f2eb;p=openjpeg Enable __SSE__ / __SSE2__ with Visual Studio --- diff --git a/src/lib/openjp2/opj_includes.h b/src/lib/openjp2/opj_includes.h index 49aa3322..b33e63ce 100644 --- a/src/lib/openjp2/opj_includes.h +++ b/src/lib/openjp2/opj_includes.h @@ -187,6 +187,32 @@ static INLINE long opj_lrintf(float f) # pragma intrinsic(__emul) #endif +/* Apparently Visual Studio doesn't define __SSE__ / __SSE2__ macros */ +#if defined(_M_X64) +/* Intel 64bit support SSE and SSE2 */ +# ifndef __SSE__ +# define __SSE__ 1 +# endif +# ifndef __SSE2__ +# define __SSE2__ 1 +# endif +#endif + +/* For x86, test the value of the _M_IX86_FP macro. */ +/* See https://msdn.microsoft.com/en-us/library/b0084kay.aspx */ +#if defined(_M_IX86_FP) +# if _M_IX86_FP >= 1 +# ifndef __SSE__ +# define __SSE__ 1 +# endif +# endif +# if _M_IX86_FP >= 2 +# ifndef __SSE2__ +# define __SSE2__ 1 +# endif +# endif +#endif + /* Type to use for bit-fields in internal headers */ typedef unsigned int OPJ_BITFIELD;