|
|
@@ -552,23 +552,26 @@
|
|
|
|
|
|
#define GLM_ARCH_PURE 0x0000
|
|
|
#define GLM_ARCH_SSE2 0x0001
|
|
|
-#define GLM_ARCH_SSE3 0x0002// | GLM_ARCH_SSE2
|
|
|
-#define GLM_ARCH_AVX 0x0008// | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
|
|
|
-#define GLM_ARCH_AVX2 0x0010// | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2
|
|
|
+#define GLM_ARCH_SSE3 0x0002
|
|
|
+#define GLM_ARCH_SSE4 0x0004
|
|
|
+#define GLM_ARCH_AVX 0x0008
|
|
|
+#define GLM_ARCH_AVX2 0x0010
|
|
|
|
|
|
#if(defined(GLM_FORCE_PURE))
|
|
|
# define GLM_ARCH GLM_ARCH_PURE
|
|
|
#elif(defined(GLM_FORCE_AVX2))
|
|
|
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
#elif(defined(GLM_FORCE_AVX))
|
|
|
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+#elif(defined(GLM_FORCE_SSE4))
|
|
|
+# define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
#elif(defined(GLM_FORCE_SSE3))
|
|
|
# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
#elif(defined(GLM_FORCE_SSE2))
|
|
|
# define GLM_ARCH (GLM_ARCH_SSE2)
|
|
|
#elif(GLM_COMPILER & GLM_COMPILER_VC)
|
|
|
# if _M_IX86_FP == 2 && defined(__AVX__)
|
|
|
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
# elif _M_IX86_FP == 2
|
|
|
# define GLM_ARCH (GLM_ARCH_SSE2)
|
|
|
# else
|
|
|
@@ -578,9 +581,11 @@
|
|
|
# define GLM_ARCH GLM_ARCH_PURE
|
|
|
#elif(((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__))) || (GLM_COMPILER & GLM_COMPILER_LLVM_GCC))
|
|
|
# if defined(__AVX2__)
|
|
|
-# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
# elif defined(__AVX__)
|
|
|
-# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# elif defined(__SSE4_1__ )
|
|
|
+# define GLM_ARCH (GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
# elif defined(__SSE3__)
|
|
|
# define GLM_ARCH (GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
# elif defined(__SSE2__)
|