mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 02:04:35 +00:00
draft for instruction set management
This commit is contained in:
parent
47f1d6e5cc
commit
568eb9bc34
@ -219,6 +219,37 @@
|
||||
# endif//GLM_MODEL
|
||||
#endif//GLM_MESSAGE
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Compiler instruction set
|
||||
|
||||
#define GLM_INSTRUCTION_SET_PURE 0x00000000 // x86intrin.h
|
||||
#define GLM_INSTRUCTION_SET_MMX 0x00000001 // mmintrin.h (MMX)
|
||||
#define GLM_INSTRUCTION_SET_3DNOW 0x00000001 // mm3dnow.h (3DNOW!)
|
||||
#define GLM_INSTRUCTION_SET_SSE 0x00000001 // xmmintrin.h (SSE + MMX)
|
||||
#define GLM_INSTRUCTION_SET_SSE2 0x00000002 // emmintrin.h (SSE2 + SSE)
|
||||
#define GLM_INSTRUCTION_SET_SSE3 0x00000004 // pmmintrin.h (SSE3 + SSE2 + SSE1)
|
||||
#define GLM_INSTRUCTION_SET_SSSE3 0x00000008 // tmmintrin.h (SSSE3 + SSE3 + SSE2 + SSE1)
|
||||
#define GLM_INSTRUCTION_SET_POPCNT 0x00000800 // popcntintrin.h
|
||||
#define GLM_INSTRUCTION_SET_SSE4A 0x00000020 // ammintrin.h (SSE4A + POPCNT + SSE3 + SSE2 + SSE)
|
||||
#define GLM_INSTRUCTION_SET_SSE4_1 0x00000040 // smmintrin.h (SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE)
|
||||
#define GLM_INSTRUCTION_SET_SSE4_2 0x00000080 // nmmintrin.h (SSE4_2 + SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE)
|
||||
#define GLM_INSTRUCTION_SET_SSE5 0x00000100 // bmmintrin.h (SSE4A + SSE3 + SSE2 + SSE deprecated)
|
||||
#define GLM_INSTRUCTION_SET_AES 0x00000200 // wmmintrin.h (AES + PCLMUL + SSE2 + SSE1)
|
||||
#define GLM_INSTRUCTION_SET_PCLMUL 0x00000400 // wmmintrin.h (AES + PCLMUL + SSE2 + SSE1)
|
||||
#define GLM_INSTRUCTION_SET_AVX 0x00000800 // immintrin.h (AES + PCLMUL + SSE4_2 + SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE)
|
||||
|
||||
#if(defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_GCC))
|
||||
# define GLM_INSTRUCTION_SET
|
||||
#elif(defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_VC))
|
||||
# ifdef(_M_CEE_PURE)
|
||||
# define GLM_INSTRUCTION_SET GLM_INSTRUCTION_SET_PURE
|
||||
# else
|
||||
# define GLM_INSTRUCTION_SET
|
||||
# endif
|
||||
#else
|
||||
# define GLM_INSTRUCTION_SET GLM_INSTRUCTION_SET_PURE
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Swizzle operators
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user