diff --git a/glm/core/intrinsic_common.hpp b/glm/core/intrinsic_common.hpp index c0e94015..982eefc5 100644 --- a/glm/core/intrinsic_common.hpp +++ b/glm/core/intrinsic_common.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/intrinsic_exponential.hpp b/glm/core/intrinsic_exponential.hpp index 35341b96..c35b0237 100644 --- a/glm/core/intrinsic_exponential.hpp +++ b/glm/core/intrinsic_exponential.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/intrinsic_geometric.hpp b/glm/core/intrinsic_geometric.hpp index 8dfda238..157de29e 100644 --- a/glm/core/intrinsic_geometric.hpp +++ b/glm/core/intrinsic_geometric.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/intrinsic_matrix.hpp b/glm/core/intrinsic_matrix.hpp index 49674179..e433486d 100644 --- a/glm/core/intrinsic_matrix.hpp +++ b/glm/core/intrinsic_matrix.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/intrinsic_trigonometric.hpp b/glm/core/intrinsic_trigonometric.hpp index 6594b90f..a8c77c3b 100644 --- a/glm/core/intrinsic_trigonometric.hpp +++ b/glm/core/intrinsic_trigonometric.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/intrinsic_vector_relational.hpp b/glm/core/intrinsic_vector_relational.hpp index 8ca06a8f..201fa6ce 100644 --- a/glm/core/intrinsic_vector_relational.hpp +++ b/glm/core/intrinsic_vector_relational.hpp @@ -31,7 +31,7 @@ #include "setup.hpp" -#if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2) +#if(!(GLM_ARCH & GLM_ARCH_SSE2)) # error "SSE2 instructions not supported or enabled" #else diff --git a/glm/core/setup.hpp b/glm/core/setup.hpp index d9b4f838..522d01c8 100644 --- a/glm/core/setup.hpp +++ b/glm/core/setup.hpp @@ -482,26 +482,26 @@ #if(defined(GLM_FORCE_PURE)) # define GLM_ARCH GLM_ARCH_PURE #elif(defined(GLM_FORCE_AVX2)) -# define GLM_ARCH GLM_ARCH_AVX2 +# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) #elif(defined(GLM_FORCE_AVX)) -# define GLM_ARCH GLM_ARCH_AVX +# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) #elif(defined(GLM_FORCE_SSE4)) -# define GLM_ARCH GLM_ARCH_SSE4 +# define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) #elif(defined(GLM_FORCE_SSE3)) -# define GLM_ARCH GLM_ARCH_SSE3 +# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2) #elif(defined(GLM_FORCE_SSE2)) -# define GLM_ARCH GLM_ARCH_SSE2 +# define GLM_ARCH (GLM_ARCH_SSE2) #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64))) # if(defined(_M_CEE_PURE)) # define GLM_ARCH GLM_ARCH_PURE # elif(GLM_COMPILER >= GLM_COMPILER_VC2010) # if(_MSC_FULL_VER >= 160031118) //160031118: VC2010 SP1 beta full version -# define GLM_ARCH GLM_ARCH_AVX //GLM_ARCH_AVX (Require SP1) +# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)//GLM_ARCH_AVX (Require SP1) # else -# define GLM_ARCH GLM_ARCH_SSE3 +# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # endif # elif(GLM_COMPILER >= GLM_COMPILER_VC2008) -# define GLM_ARCH GLM_ARCH_SSE3 +# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2) # elif(GLM_COMPILER >= GLM_COMPILER_VC2005) # define GLM_ARCH GLM_ARCH_SSE2 # else