From bc09ecf898f8c29c3dfa57bad2e8265640177567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joonas=20Saraj=C3=A4rvi?= Date: Thu, 4 Feb 2016 19:42:25 +0200 Subject: [PATCH 1/3] setup: detect GCC 6.0 --- glm/detail/setup.hpp | 3 +++ test/core/core_setup_message.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 97d4c976..b700a78d 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -151,6 +151,7 @@ #define GLM_COMPILER_GCC51 0x02000300 #define GLM_COMPILER_GCC52 0x02000400 #define GLM_COMPILER_GCC53 0x02000500 +#define GLM_COMPILER_GCC60 0x02000600 // CUDA #define GLM_COMPILER_CUDA 0x10000000 @@ -312,6 +313,8 @@ # define GLM_COMPILER (GLM_COMPILER_GCC52) # elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3) # define GLM_COMPILER (GLM_COMPILER_GCC53) +# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 0) +# define GLM_COMPILER (GLM_COMPILER_GCC60) # else # define GLM_COMPILER (GLM_COMPILER_GCC) # endif diff --git a/test/core/core_setup_message.cpp b/test/core/core_setup_message.cpp index 6c9a3765..3808dece 100644 --- a/test/core/core_setup_message.cpp +++ b/test/core/core_setup_message.cpp @@ -71,6 +71,9 @@ int test_compiler() case GLM_COMPILER_GCC53: std::printf("GLM_COMPILER_GCC53\n"); break; + case GLM_COMPILER_GCC60: + std::printf("GLM_COMPILER_GCC60\n"); + break; default: std::printf("GCC version not detected\n"); Error += 1; From 407a7598aa0f181f356a595896caa351be6016df Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 15 Feb 2016 20:29:55 +0100 Subject: [PATCH 2/3] Improved new version of GCC detection #477 --- glm/detail/setup.hpp | 6 +++--- readme.md | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index b700a78d..8fc04d2e 100644 --- a/glm/detail/setup.hpp +++ b/glm/detail/setup.hpp @@ -42,11 +42,11 @@ #define GLM_VERSION_MAJOR 0 #define GLM_VERSION_MINOR 9 #define GLM_VERSION_PATCH 7 -#define GLM_VERSION_REVISION 2 +#define GLM_VERSION_REVISION 3 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_VERSION_DISPLAYED)) # define GLM_MESSAGE_VERSION_DISPLAYED -# pragma message ("GLM: version 0.9.7.2") +# pragma message ("GLM: version 0.9.7.3") #endif//GLM_MESSAGE /////////////////////////////////////////////////////////////////////////////////// @@ -313,7 +313,7 @@ # define GLM_COMPILER (GLM_COMPILER_GCC52) # elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3) # define GLM_COMPILER (GLM_COMPILER_GCC53) -# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 0) +# elif (__GNUC__ >= 6) # define GLM_COMPILER (GLM_COMPILER_GCC60) # else # define GLM_COMPILER (GLM_COMPILER_GCC) diff --git a/readme.md b/readme.md index fe558bc7..9e79a01e 100644 --- a/readme.md +++ b/readme.md @@ -54,6 +54,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate) #### [GLM 0.9.7.3](https://github.com/g-truc/glm/tree/0.9.7) - 2016-XX-XX ##### Fixes: - Fixed CMake policy warning +- Fixed GCC 6.0 detection #### [GLM 0.9.7.2](https://github.com/g-truc/glm/releases/tag/0.9.7.2) - 2016-01-03 ##### Fixes: From cc2f15803e2ae116b6db378719758643801a95d2 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 15 Feb 2016 21:11:55 +0100 Subject: [PATCH 3/3] Added AVX512 detection --- glm/detail/setup.hpp | 12 +++++++++--- readme.md | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/glm/detail/setup.hpp b/glm/detail/setup.hpp index 8fc04d2e..adc35a1d 100644 --- a/glm/detail/setup.hpp +++ b/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) diff --git a/readme.md b/readme.md index 9e79a01e..886afbe0 100644 --- a/readme.md +++ b/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