|
|
@@ -202,7 +202,7 @@
|
|
|
# define GLM_COMPILER GLM_COMPILER_INTEL13
|
|
|
# elif __INTEL_COMPILER == 1400
|
|
|
# define GLM_COMPILER GLM_COMPILER_INTEL14
|
|
|
-# elif __INTEL_COMPILER >= 1500
|
|
|
+# elif __INTEL_COMPILER == 1500
|
|
|
# define GLM_COMPILER GLM_COMPILER_INTEL15
|
|
|
# elif __INTEL_COMPILER >= 1600
|
|
|
# define GLM_COMPILER GLM_COMPILER_INTEL16
|
|
|
@@ -374,7 +374,7 @@
|
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
|
// Platform
|
|
|
|
|
|
-// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2
|
|
|
+// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2 GLM_FORCE_AVX2
|
|
|
|
|
|
#define GLM_ARCH_PURE 0x0000
|
|
|
#define GLM_ARCH_ARM 0x0001
|
|
|
@@ -384,9 +384,12 @@
|
|
|
#define GLM_ARCH_SSE4 0x0010
|
|
|
#define GLM_ARCH_AVX 0x0020
|
|
|
#define GLM_ARCH_AVX2 0x0040
|
|
|
+#define GLM_ARCH_AVX512 0x0080 // Skylake set
|
|
|
|
|
|
#if defined(GLM_FORCE_PURE)
|
|
|
# define GLM_ARCH GLM_ARCH_PURE
|
|
|
+#elif defined(GLM_FORCE_AVX512)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX512 | GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
#elif defined(GLM_FORCE_AVX2)
|
|
|
# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
#elif defined(GLM_FORCE_AVX)
|
|
|
@@ -398,7 +401,10 @@
|
|
|
#elif defined(GLM_FORCE_SSE2)
|
|
|
# define GLM_ARCH (GLM_ARCH_SSE2)
|
|
|
#elif (GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
|
|
|
-# if defined(__AVX2__)
|
|
|
+// This is Skylake set of instruction set
|
|
|
+# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512CD__) && defined(__AVX512VL__) && defined(__AVX512DQ__)
|
|
|
+# define GLM_ARCH (GLM_ARCH_AVX512 | GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
+# elif defined(__AVX2__)
|
|
|
# define GLM_ARCH (GLM_ARCH_AVX2 | GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|
|
|
# elif defined(__AVX__)
|
|
|
# define GLM_ARCH (GLM_ARCH_AVX | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
|