From 46303a2fb1b0a88e237eabbd9f56687136e9907c Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Tue, 11 Jul 2017 16:31:55 +0300 Subject: [PATCH] define common SIMD flags in common header --- include/arch/simd/cglm-intrin.h | 37 +++++++++++++++++++++++---------- include/cglm-common.h | 1 + 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/include/arch/simd/cglm-intrin.h b/include/arch/simd/cglm-intrin.h index c3bc3a2..681fc9b 100644 --- a/include/arch/simd/cglm-intrin.h +++ b/include/arch/simd/cglm-intrin.h @@ -17,20 +17,35 @@ #endif #if defined( __SSE__ ) || defined( __SSE2__ ) - -#include -#include +# include +# include /* float */ -#define _mm_shuffle1_ps(a, z, y, x, w) \ - _mm_shuffle_ps(a, a, _MM_SHUFFLE(z, y, x, w)) +# define _mm_shuffle1_ps(a, z, y, x, w) \ + _mm_shuffle_ps(a, a, _MM_SHUFFLE(z, y, x, w)) -#define _mm_shuffle1_ps1(a, x) \ - _mm_shuffle_ps(a, a, _MM_SHUFFLE(x, x, x, x)) - -#define _mm_shuffle2_ps(a, b, z0, y0, x0, w0, z1, y1, x1, w1) \ - _mm_shuffle1_ps(_mm_shuffle_ps(a, b, _MM_SHUFFLE(z0, y0, x0, w0)), \ - z1, y1, x1, w1) +# define _mm_shuffle1_ps1(a, x) \ + _mm_shuffle_ps(a, a, _MM_SHUFFLE(x, x, x, x)) +# define _mm_shuffle2_ps(a, b, z0, y0, x0, w0, z1, y1, x1, w1) \ + _mm_shuffle1_ps(_mm_shuffle_ps(a, b, _MM_SHUFFLE(z0, y0, x0, w0)), \ + z1, y1, x1, w1) #endif + +/* x86, x64 */ +#if defined( __SSE__ ) || defined( __SSE2__ ) +# define CGLM_SSE_FP 1 +#endif + +#ifdef __AVX__ +# define CGLM_AVX_FP 1 +#endif + +/* ARM Neon */ +#if defined(__ARM_NEON) && defined(__ARM_NEON_FP) +# define CGLM_NEON_FP 1 +#else +# undef CGLM_NEON_FP +#endif + #endif /* cglm_intrin_h */ diff --git a/include/cglm-common.h b/include/cglm-common.h index 7b75e34..6898743 100644 --- a/include/cglm-common.h +++ b/include/cglm-common.h @@ -54,5 +54,6 @@ #define glm__memzero(type, dest, size) glm__memset(type, dest, size, 0) #include "cglm-types.h" +#include "arch/simd/cglm-intrin.h" #endif /* cglm_common_h */