Browse Source

Fixed SSE detection on Visual C++

Christophe Riccio 13 years ago
parent
commit
e8cbc50343

+ 1 - 1
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
 

+ 1 - 1
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
 

+ 1 - 1
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
 

+ 1 - 1
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
 

+ 1 - 1
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
 

+ 1 - 1
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
 

+ 8 - 8
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