Merged 0.9.7 branch, Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG

This commit is contained in:
Christophe Riccio 2016-07-16 00:54:05 +02:00
commit 6271aa1530
8 changed files with 170 additions and 106 deletions

View File

@ -255,7 +255,7 @@
# define GLM_CXX11_STATIC_ASSERT
# endif
#elif(GLM_COMPILER & GLM_COMPILER_LLVM)
#elif(GLM_COMPILER & GLM_COMPILER_CLANG)
# if(__has_feature(cxx_exceptions))
# define GLM_CXX98_EXCEPTIONS
# endif
@ -396,4 +396,4 @@
# define GLM_CXX11_VARIADIC_TEMPLATES
# endif
#endif//(GLM_COMPILER & GLM_COMPILER_LLVM)
#endif//(GLM_COMPILER & GLM_COMPILER_CLANG)

View File

@ -630,7 +630,7 @@ namespace detail
# else
return ::isnan(x) != 0;
# endif
# elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM)) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L
# elif (GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) && (GLM_PLATFORM & GLM_PLATFORM_ANDROID) && __cplusplus < 201103L
return _isnan(x) != 0;
# elif GLM_COMPILER & GLM_COMPILER_CUDA
return isnan(x) != 0;
@ -664,7 +664,7 @@ namespace detail
# else
return ::isinf(x);
# endif
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM)
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID && __cplusplus < 201103L)
return _isinf(x) != 0;
# else

View File

@ -84,7 +84,7 @@ namespace glm
// atan
template <typename genType>
GLM_FUNC_QUALIFIER genType atan(genType const & y, genType const & x)
GLM_FUNC_QUALIFIER genType atan(genType y, genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'atan' only accept floating-point input");
@ -136,8 +136,8 @@ namespace glm
# if GLM_HAS_CXX11_STL
using std::asinh;
# else
template <typename genType>
GLM_FUNC_QUALIFIER genType asinh(genType const & x)
template <typename genType>
GLM_FUNC_QUALIFIER genType asinh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'asinh' only accept floating-point input");
@ -156,7 +156,7 @@ namespace glm
using std::acosh;
# else
template <typename genType>
GLM_FUNC_QUALIFIER genType acosh(genType const & x)
GLM_FUNC_QUALIFIER genType acosh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'acosh' only accept floating-point input");
@ -177,7 +177,7 @@ namespace glm
using std::atanh;
# else
template <typename genType>
GLM_FUNC_QUALIFIER genType atanh(genType const & x)
GLM_FUNC_QUALIFIER genType atanh(genType x)
{
GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559, "'atanh' only accept floating-point input");

View File

@ -28,7 +28,7 @@
# pragma message("GLM: CUDA compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_VC
# pragma message("GLM: Visual C++ compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_LLVM
# elif GLM_COMPILER & GLM_COMPILER_CLANG
# pragma message("GLM: Clang compiler detected")
# elif GLM_COMPILER & GLM_COMPILER_INTEL
# pragma message("GLM: Intel Compiler detected")
@ -134,14 +134,14 @@
#elif defined(GLM_FORCE_CXX98)
# define GLM_LANG GLM_LANG_CXX98
#else
# if GLM_COMPILER & GLM_COMPILER_LLVM
# if __cplusplus >= 201402L // GLM_COMPILER_LLVM34 + -std=c++14
# if GLM_COMPILER & GLM_COMPILER_CLANG
# if __cplusplus >= 201402L // GLM_COMPILER_CLANG34 + -std=c++14
# define GLM_LANG GLM_LANG_CXX14
# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_LLVM33 + -std=c++1y
# elif __has_feature(cxx_decltype_auto) && __has_feature(cxx_aggregate_nsdmi) // GLM_COMPILER_CLANG33 + -std=c++1y
# define GLM_LANG GLM_LANG_CXX1Y
# elif __cplusplus >= 201103L // GLM_COMPILER_LLVM33 + -std=c++11
# elif __cplusplus >= 201103L // GLM_COMPILER_CLANG33 + -std=c++11
# define GLM_LANG GLM_LANG_CXX11
# elif __has_feature(cxx_static_assert) // GLM_COMPILER_LLVM29 + -std=c++11
# elif __has_feature(cxx_static_assert) // GLM_COMPILER_CLANG29 + -std=c++11
# define GLM_LANG GLM_LANG_CXX0X
# elif __cplusplus >= 199711L
# define GLM_LANG GLM_LANG_CXX98
@ -263,15 +263,8 @@
// http://gcc.gnu.org/projects/cxx0x.html
// http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
#if GLM_PLATFORM == GLM_PLATFORM_ANDROID || GLM_PLATFORM == GLM_PLATFORM_CYGWIN
# define GLM_HAS_CXX11_STL 0
#elif GLM_COMPILER & GLM_COMPILER_LLVM
# if __has_include(<__config>) // libc++
# include <__config>
//# else // libstdc++
//# include <bits/c++config.h>
# endif
# if defined(_LIBCPP_VERSION)// || defined(__GLIBCXX__)
#if GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_APPLE_CLANG)
# if defined(_LIBCPP_VERSION) && GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_CXX11_STL 1
# else
# define GLM_HAS_CXX11_STL 0
@ -284,7 +277,7 @@
#endif
// N1720
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_STATIC_ASSERT 1
@ -303,11 +296,11 @@
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2012)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC43)) || \
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_LLVM) && (GLM_COMPILER >= GLM_COMPILER_LLVM30)))
((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG) && (GLM_COMPILER >= GLM_COMPILER_CLANG30)))
#endif
// N2235
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_CONSTEXPR __has_feature(cxx_constexpr)
# define GLM_HAS_CONSTEXPR_PARTIAL GLM_HAS_CONSTEXPR
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
@ -320,7 +313,7 @@
#endif
// N2672
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_INITIALIZER_LISTS 1
@ -332,7 +325,7 @@
#endif
// N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)
#elif GLM_LANG & (GLM_LANG_CXX11_FLAG | GLM_LANG_CXXMS_FLAG)
# define GLM_HAS_UNRESTRICTED_UNIONS 1
@ -344,7 +337,7 @@
#endif
// N2346
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_DEFAULTED_FUNCTIONS 1
@ -357,7 +350,7 @@
#endif
// N2118
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_RVALUE_REFERENCES 1
@ -369,7 +362,7 @@
#endif
// N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1
@ -382,7 +375,7 @@
#endif
// N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_TEMPLATE_ALIASES 1
@ -395,7 +388,7 @@
#endif
// N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
#if GLM_COMPILER & GLM_COMPILER_LLVM
#if GLM_COMPILER & GLM_COMPILER_CLANG
# define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)
#elif GLM_LANG & GLM_LANG_CXX11_FLAG
# define GLM_HAS_RANGE_FOR 1
@ -450,8 +443,8 @@
# else
# define GLM_HAS_OPENMP 0
# endif
# elif GLM_COMPILER & GLM_COMPILER_LLVM
# if GLM_COMPILER >= GLM_COMPILER_LLVM38
# elif GLM_COMPILER & GLM_COMPILER_CLANG
# if GLM_COMPILER >= GLM_COMPILER_CLANG38
# define GLM_HAS_OPENMP 31
# else
# define GLM_HAS_OPENMP 0
@ -510,7 +503,7 @@
# if GLM_COMPILER & GLM_COMPILER_VC
# define GLM_INLINE __forceinline
# define GLM_NEVER_INLINE __declspec((noinline))
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM)
# elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
# define GLM_INLINE inline __attribute__((__always_inline__))
# define GLM_NEVER_INLINE __attribute__((__noinline__))
# elif GLM_COMPILER & GLM_COMPILER_CUDA
@ -590,15 +583,15 @@
# else
# define GLM_VECTOR_CALL
# endif
#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)
#elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_CUDA | GLM_COMPILER_INTEL)
# define GLM_DEPRECATED __attribute__((__deprecated__))
# define GLM_ALIGN(x) __attribute__((aligned(x)))
# define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
# define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
# define GLM_RESTRICT_FUNC __restrict__
# define GLM_RESTRICT __restrict__
# if GLM_COMPILER & GLM_COMPILER_LLVM
# if GLM_COMPILER >= GLM_COMPILER_LLVM37
# if GLM_COMPILER & GLM_COMPILER_CLANG
# if GLM_COMPILER >= GLM_COMPILER_CLANG37
# define GLM_VECTOR_CALL __vectorcall
# else
# define GLM_VECTOR_CALL

View File

@ -24,16 +24,20 @@ namespace glm
/// @addtogroup gtc_reciprocal
/// @{
/// Secant function.
/// Secant function.
/// hypotenuse / adjacent or 1 / cos(x)
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType sec(genType angle);
/// Cosecant function.
/// Cosecant function.
/// hypotenuse / opposite or 1 / sin(x)
///
/// @tparam genType Floating-point scalar or vector types.
@ -42,91 +46,111 @@ namespace glm
template <typename genType>
GLM_FUNC_DECL genType csc(genType angle);
/// Cotangent function.
/// Cotangent function.
/// adjacent / opposite or 1 / tan(x)
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType cot(genType angle);
/// Inverse secant function.
/// Inverse secant function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType asec(genType x);
/// Inverse cosecant function.
/// Inverse cosecant function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType acsc(genType x);
/// Inverse cotangent function.
/// Inverse cotangent function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType acot(genType x);
/// Secant hyperbolic function.
/// Secant hyperbolic function.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
<<<<<<< HEAD
template <typename genType>
=======
template <typename genType>
>>>>>>> 0.9.7
GLM_FUNC_DECL genType sech(genType angle);
/// Cosecant hyperbolic function.
/// Cosecant hyperbolic function.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
template <typename genType>
template <typename genType>
GLM_FUNC_DECL genType csch(genType angle);
/// Cotangent hyperbolic function.
/// Cotangent hyperbolic function.
///
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
template <typename genType>
template <typename genType>
GLM_FUNC_DECL genType coth(genType angle);
/// Inverse secant hyperbolic function.
/// Inverse secant hyperbolic function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
template <typename genType>
template <typename genType>
GLM_FUNC_DECL genType asech(genType x);
/// Inverse cosecant hyperbolic function.
/// Inverse cosecant hyperbolic function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
template <typename genType>
template <typename genType>
GLM_FUNC_DECL genType acsch(genType x);
/// Inverse cotangent hyperbolic function.
/// Inverse cotangent hyperbolic function.
///
/// @return Return an angle expressed in radians.
/// @tparam genType Floating-point scalar or vector types.
///
/// @see gtc_reciprocal
template <typename genType>
template <typename genType>
GLM_FUNC_DECL genType acoth(genType x);
/// @}

View File

@ -103,7 +103,14 @@
#define GLM_COMPILER_GCC51 0x02000300
#define GLM_COMPILER_GCC52 0x02000400
#define GLM_COMPILER_GCC53 0x02000500
#define GLM_COMPILER_GCC60 0x02000600
#define GLM_COMPILER_GCC54 0x02000600
#define GLM_COMPILER_GCC60 0x02000700
#define GLM_COMPILER_GCC61 0x02000800
#define GLM_COMPILER_GCC62 0x02000900
#define GLM_COMPILER_GCC70 0x02000A00
#define GLM_COMPILER_GCC71 0x02000B00
#define GLM_COMPILER_GCC72 0x02000C00
#define GLM_COMPILER_GCC80 0x02000D00
// CUDA
#define GLM_COMPILER_CUDA 0x10000000
@ -115,17 +122,18 @@
#define GLM_COMPILER_CUDA65 0x10000090
#define GLM_COMPILER_CUDA70 0x100000A0
#define GLM_COMPILER_CUDA75 0x100000B0
#define GLM_COMPILER_CUDA80 0x100000C0
// LLVM
#define GLM_COMPILER_LLVM 0x20000000
#define GLM_COMPILER_LLVM32 0x20000030
#define GLM_COMPILER_LLVM33 0x20000040
#define GLM_COMPILER_LLVM34 0x20000050
#define GLM_COMPILER_LLVM35 0x20000060
#define GLM_COMPILER_LLVM36 0x20000070
#define GLM_COMPILER_LLVM37 0x20000080
#define GLM_COMPILER_LLVM38 0x20000090
#define GLM_COMPILER_LLVM39 0x200000A0
// Clang
#define GLM_COMPILER_CLANG 0x20000000
#define GLM_COMPILER_CLANG32 0x20000030
#define GLM_COMPILER_CLANG33 0x20000040
#define GLM_COMPILER_CLANG34 0x20000050
#define GLM_COMPILER_CLANG35 0x20000060
#define GLM_COMPILER_CLANG36 0x20000070
#define GLM_COMPILER_CLANG37 0x20000080
#define GLM_COMPILER_CLANG38 0x20000090
#define GLM_COMPILER_CLANG39 0x200000A0
// Build model
#define GLM_MODEL_32 0x00000010
@ -167,43 +175,43 @@
#elif defined(__clang__)
# if GLM_PLATFORM & GLM_PLATFORM_APPLE
# if __clang_major__ == 5 && __clang_minor__ == 0
# define GLM_COMPILER GLM_COMPILER_LLVM33
# define GLM_COMPILER GLM_COMPILER_CLANG33
# elif __clang_major__ == 5 && __clang_minor__ == 1
# define GLM_COMPILER GLM_COMPILER_LLVM34
# define GLM_COMPILER GLM_COMPILER_CLANG34
# elif __clang_major__ == 6 && __clang_minor__ == 0
# define GLM_COMPILER GLM_COMPILER_LLVM35
# define GLM_COMPILER GLM_COMPILER_CLANG35
# elif __clang_major__ == 6 && __clang_minor__ >= 1
# define GLM_COMPILER GLM_COMPILER_LLVM36
# define GLM_COMPILER GLM_COMPILER_CLANG36
# elif __clang_major__ >= 7
# define GLM_COMPILER GLM_COMPILER_LLVM37
# define GLM_COMPILER GLM_COMPILER_CLANG37
# else
# define GLM_COMPILER GLM_COMPILER_LLVM
# define GLM_COMPILER GLM_COMPILER_CLANG
# endif
# else
# if __clang_major__ == 3 && __clang_minor__ == 0
# define GLM_COMPILER GLM_COMPILER_LLVM30
# define GLM_COMPILER GLM_COMPILER_CLANG30
# elif __clang_major__ == 3 && __clang_minor__ == 1
# define GLM_COMPILER GLM_COMPILER_LLVM31
# define GLM_COMPILER GLM_COMPILER_CLANG31
# elif __clang_major__ == 3 && __clang_minor__ == 2
# define GLM_COMPILER GLM_COMPILER_LLVM32
# define GLM_COMPILER GLM_COMPILER_CLANG32
# elif __clang_major__ == 3 && __clang_minor__ == 3
# define GLM_COMPILER GLM_COMPILER_LLVM33
# define GLM_COMPILER GLM_COMPILER_CLANG33
# elif __clang_major__ == 3 && __clang_minor__ == 4
# define GLM_COMPILER GLM_COMPILER_LLVM34
# define GLM_COMPILER GLM_COMPILER_CLANG34
# elif __clang_major__ == 3 && __clang_minor__ == 5
# define GLM_COMPILER GLM_COMPILER_LLVM35
# define GLM_COMPILER GLM_COMPILER_CLANG35
# elif __clang_major__ == 3 && __clang_minor__ == 6
# define GLM_COMPILER GLM_COMPILER_LLVM36
# define GLM_COMPILER GLM_COMPILER_CLANG36
# elif __clang_major__ == 3 && __clang_minor__ == 7
# define GLM_COMPILER GLM_COMPILER_LLVM37
# define GLM_COMPILER GLM_COMPILER_CLANG37
# elif __clang_major__ == 3 && __clang_minor__ == 8
# define GLM_COMPILER GLM_COMPILER_LLVM38
# define GLM_COMPILER GLM_COMPILER_CLANG38
# elif __clang_major__ == 3 && __clang_minor__ >= 9
# define GLM_COMPILER GLM_COMPILER_LLVM39
# define GLM_COMPILER GLM_COMPILER_CLANG39
# elif __clang_major__ >= 4
# define GLM_COMPILER GLM_COMPILER_LLVM39
# define GLM_COMPILER GLM_COMPILER_CLANG39
# else
# define GLM_COMPILER GLM_COMPILER_LLVM
# define GLM_COMPILER GLM_COMPILER_CLANG
# endif
# endif
@ -247,10 +255,24 @@
# define GLM_COMPILER (GLM_COMPILER_GCC51)
# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 2)
# define GLM_COMPILER (GLM_COMPILER_GCC52)
# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 3)
# elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 3)
# define GLM_COMPILER (GLM_COMPILER_GCC53)
# elif (__GNUC__ >= 6)
# elif (__GNUC__ == 5) && (__GNUC_MINOR__ >= 4)
# define GLM_COMPILER (GLM_COMPILER_GCC54)
# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 0)
# define GLM_COMPILER (GLM_COMPILER_GCC60)
# elif (__GNUC__ == 6) && (__GNUC_MINOR__ == 1)
# define GLM_COMPILER (GLM_COMPILER_GCC61)
# elif (__GNUC__ == 6) && (__GNUC_MINOR__ >= 2)
# define GLM_COMPILER (GLM_COMPILER_GCC62)
# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 0)
# define GLM_COMPILER (GLM_COMPILER_GCC70)
# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 1)
# define GLM_COMPILER (GLM_COMPILER_GCC71)
# elif (__GNUC__ == 7) && (__GNUC_MINOR__ == 2)
# define GLM_COMPILER (GLM_COMPILER_GCC72)
# elif (__GNUC__ >= 8)
# define GLM_COMPILER (GLM_COMPILER_GCC80)
# else
# define GLM_COMPILER (GLM_COMPILER_GCC)
# endif
@ -321,7 +343,7 @@
# define GLM_ARCH (GLM_ARCH_SSE3)
#elif defined(GLM_FORCE_SSE2)
# define GLM_ARCH (GLM_ARCH_SSE2)
#elif (GLM_COMPILER & (GLM_COMPILER_LLVM | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
#elif (GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_LINUX))
// This is Skylake set of instruction set
# if defined(__AVX512BW__) && defined(__AVX512F__) && defined(__AVX512CD__) && defined(__AVX512VL__) && defined(__AVX512DQ__)
# define GLM_ARCH (GLM_ARCH_AVX512)

View File

@ -78,6 +78,7 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
- Added MIPS CPUs detection
- Added PowerPC CPUs detection
- Use Cuda built-in function for abs function implementation with Cuda compiler
- Factorized GLM_COMPILER_LLVM and GLM_COMPILER_APPLE_CLANG into GLM_COMPILER_CLANG
##### Fixes:
- Fixed GTX_extended_min_max filename typo #386
@ -96,11 +97,14 @@ glm::mat4 camera(float Translate, glm::vec2 const & Rotate)
#### [GLM 0.9.7.6](https://github.com/g-truc/glm/tree/0.9.7) - 2016-0X-XX
##### Improvements:
- Added pkg-config file #509
- Updated list of compiler versions detected
- Improved C++ 11 STL detection #523
##### Fixes:
- Fixed STL for C++11 detection on ICC #510
- Fixed missing vec1 overload to length2 and distance2 functions #431
- Fixed long long warnings when using C++98 on GCC and Clang #482
- Fixed scalar reciprocal functions (GTC_reciprocal) #520
#### [GLM 0.9.7.5](https://github.com/g-truc/glm/releases/tag/0.9.7.5) - 2016-05-24
##### Improvements:

View File

@ -62,9 +62,30 @@ int test_compiler()
case GLM_COMPILER_GCC53:
std::printf("GLM_COMPILER_GCC53\n");
break;
case GLM_COMPILER_GCC54:
std::printf("GLM_COMPILER_GCC54\n");
break;
case GLM_COMPILER_GCC60:
std::printf("GLM_COMPILER_GCC60\n");
break;
case GLM_COMPILER_GCC61:
std::printf("GLM_COMPILER_GCC61\n");
break;
case GLM_COMPILER_GCC62:
std::printf("GLM_COMPILER_GCC62\n");
break;
case GLM_COMPILER_GCC70:
std::printf("GLM_COMPILER_GCC70\n");
break;
case GLM_COMPILER_GCC71:
std::printf("GLM_COMPILER_GCC71\n");
break;
case GLM_COMPILER_GCC72:
std::printf("GLM_COMPILER_GCC72\n");
break;
case GLM_COMPILER_GCC80:
std::printf("GLM_COMPILER_GCC80\n");
break;
default:
std::printf("GCC version not detected\n");
Error += 1;
@ -75,33 +96,33 @@ int test_compiler()
{
std::printf("GLM_COMPILER_CUDA\n");
}
else if(GLM_COMPILER & GLM_COMPILER_LLVM)
else if(GLM_COMPILER & GLM_COMPILER_CLANG)
{
switch(GLM_COMPILER)
{
case GLM_COMPILER_LLVM32:
std::printf("GLM_COMPILER_LLVM32\n");
case GLM_COMPILER_CLANG32:
std::printf("GLM_COMPILER_CLANG32\n");
break;
case GLM_COMPILER_LLVM33:
std::printf("GLM_COMPILER_LLVM33\n");
case GLM_COMPILER_CLANG33:
std::printf("GLM_COMPILER_CLANG33\n");
break;
case GLM_COMPILER_LLVM34:
std::printf("GLM_COMPILER_LLVM34\n");
case GLM_COMPILER_CLANG34:
std::printf("GLM_COMPILER_CLANG34\n");
break;
case GLM_COMPILER_LLVM35:
std::printf("GLM_COMPILER_LLVM35\n");
case GLM_COMPILER_CLANG35:
std::printf("GLM_COMPILER_CLANG35\n");
break;
case GLM_COMPILER_LLVM36:
std::printf("GLM_COMPILER_LLVM36\n");
case GLM_COMPILER_CLANG36:
std::printf("GLM_COMPILER_CLANG36\n");
break;
case GLM_COMPILER_LLVM37:
std::printf("GLM_COMPILER_LLVM37\n");
case GLM_COMPILER_CLANG37:
std::printf("GLM_COMPILER_CLANG37\n");
break;
case GLM_COMPILER_LLVM38:
std::printf("GLM_COMPILER_LLVM38\n");
case GLM_COMPILER_CLANG38:
std::printf("GLM_COMPILER_CLANG38\n");
break;
case GLM_COMPILER_LLVM39:
std::printf("GLM_COMPILER_LLVM39\n");
case GLM_COMPILER_CLANG39:
std::printf("GLM_COMPILER_CLANG39\n");
break;
default:
std::printf("LLVM version not detected\n");