|
|
|
@ -632,12 +632,13 @@ |
|
|
|
|
// User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_SSE3 GLM_FORCE_AVX GLM_FORCE_AVX2
|
|
|
|
|
|
|
|
|
|
#define GLM_ARCH_PURE 0x0000 |
|
|
|
|
#define GLM_ARCH_X86 0x0001 |
|
|
|
|
#define GLM_ARCH_SSE2 0x0002 |
|
|
|
|
#define GLM_ARCH_SSE3 0x0004 |
|
|
|
|
#define GLM_ARCH_SSE4 0x0008 |
|
|
|
|
#define GLM_ARCH_AVX 0x0010 |
|
|
|
|
#define GLM_ARCH_AVX2 0x0020 |
|
|
|
|
#define GLM_ARCH_ARM 0x0001 |
|
|
|
|
#define GLM_ARCH_X86 0x0002 |
|
|
|
|
#define GLM_ARCH_SSE2 0x0004 |
|
|
|
|
#define GLM_ARCH_SSE3 0x0008 |
|
|
|
|
#define GLM_ARCH_SSE4 0x0010 |
|
|
|
|
#define GLM_ARCH_AVX 0x0020 |
|
|
|
|
#define GLM_ARCH_AVX2 0x0040 |
|
|
|
|
|
|
|
|
|
#if defined(GLM_FORCE_PURE) |
|
|
|
|
# define GLM_ARCH GLM_ARCH_PURE |
|
|
|
@ -664,7 +665,9 @@ |
|
|
|
|
# define GLM_ARCH GLM_ARCH_PURE |
|
|
|
|
# endif |
|
|
|
|
#elif (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS)) |
|
|
|
|
# if defined(__AVX2__) |
|
|
|
|
# if defined(_M_ARM_FP) |
|
|
|
|
# define GLM_ARCH (GLM_ARCH_ARM) |
|
|
|
|
# elif defined(__AVX2__) |
|
|
|
|
# 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_SSE4 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2) |
|
|
|
@ -725,6 +728,8 @@ |
|
|
|
|
# define GLM_MESSAGE_ARCH_DISPLAYED |
|
|
|
|
# if(GLM_ARCH == GLM_ARCH_PURE) |
|
|
|
|
# pragma message("GLM: Platform independent code") |
|
|
|
|
# elif(GLM_ARCH & GLM_ARCH_ARM) |
|
|
|
|
# pragma message("GLM: ARM instruction set") |
|
|
|
|
# elif(GLM_ARCH & GLM_ARCH_AVX2) |
|
|
|
|
# pragma message("GLM: AVX2 instruction set") |
|
|
|
|
# elif(GLM_ARCH & GLM_ARCH_AVX) |
|
|
|
|