From e8cbc503431e9c1f45dedcf187bce8fe806f6367 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Thu, 6 Sep 2012 20:05:11 +0200 Subject: [PATCH] Fixed SSE detection on Visual C++ --- glm/core/intrinsic_common.hpp | 2 +- glm/core/intrinsic_exponential.hpp | 2 +- glm/core/intrinsic_geometric.hpp | 2 +- glm/core/intrinsic_matrix.hpp | 2 +- glm/core/intrinsic_trigonometric.hpp | 2 +- glm/core/intrinsic_vector_relational.hpp | 2 +- glm/core/setup.hpp | 16 ++++++++-------- 7 files changed, 14 insertions(+), 14 deletions(-) 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