Sfoglia il codice sorgente

Added AVX512 detection

Christophe Riccio 9 anni fa
parent
commit
cc2f15803e
2 ha cambiato i file con 12 aggiunte e 3 eliminazioni
  1. 9 3
      glm/detail/setup.hpp
  2. 3 0
      readme.md

+ 9 - 3
glm/detail/setup.hpp

@@ -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)

+ 3 - 0
readme.md

@@ -52,6 +52,9 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
 ## Release notes
 
 #### [GLM 0.9.7.3](https://github.com/g-truc/glm/tree/0.9.7) - 2016-XX-XX
+##### Improvements:
+- Added AVX512 detection
+
 ##### Fixes:
 - Fixed CMake policy warning
 - Fixed GCC 6.0 detection