From 5c543e65f8aa29825c3a824b7137d4f58eb6bf2c Mon Sep 17 00:00:00 2001 From: Groove Date: Thu, 12 Jul 2018 21:03:14 +0200 Subject: [PATCH] Fixed build --- glm/detail/func_common.inl | 2 +- glm/detail/func_exponential.inl | 2 +- glm/detail/func_geometric.inl | 2 +- glm/detail/func_integer.inl | 2 +- glm/detail/func_matrix.inl | 2 +- glm/detail/func_packing.inl | 2 +- glm/detail/func_trigonometric.inl | 2 +- glm/detail/func_vector_relational.inl | 2 +- glm/detail/type_mat4x4.inl | 2 +- glm/detail/type_vec4_simd.inl | 8 ++++++-- test/core/core_type_vec4.cpp | 17 +++++++++++++++++ 11 files changed, 32 insertions(+), 11 deletions(-) diff --git a/glm/detail/func_common.inl b/glm/detail/func_common.inl index 9d6d04a6..9fc529c7 100644 --- a/glm/detail/func_common.inl +++ b/glm/detail/func_common.inl @@ -781,6 +781,6 @@ namespace detail } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_common_simd.inl" #endif diff --git a/glm/detail/func_exponential.inl b/glm/detail/func_exponential.inl index 473e784e..cf32348a 100644 --- a/glm/detail/func_exponential.inl +++ b/glm/detail/func_exponential.inl @@ -146,7 +146,7 @@ namespace detail } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_exponential_simd.inl" #endif diff --git a/glm/detail/func_geometric.inl b/glm/detail/func_geometric.inl index 67255d45..ff0e48ca 100644 --- a/glm/detail/func_geometric.inl +++ b/glm/detail/func_geometric.inl @@ -242,6 +242,6 @@ namespace detail } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_geometric_simd.inl" #endif diff --git a/glm/detail/func_integer.inl b/glm/detail/func_integer.inl index e1602385..582e74fa 100644 --- a/glm/detail/func_integer.inl +++ b/glm/detail/func_integer.inl @@ -372,7 +372,7 @@ namespace detail } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_integer_simd.inl" #endif diff --git a/glm/detail/func_matrix.inl b/glm/detail/func_matrix.inl index d823d76b..45a6562e 100644 --- a/glm/detail/func_matrix.inl +++ b/glm/detail/func_matrix.inl @@ -395,7 +395,7 @@ namespace detail } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_matrix_simd.inl" #endif diff --git a/glm/detail/func_packing.inl b/glm/detail/func_packing.inl index 7c22eb9e..83282ac8 100644 --- a/glm/detail/func_packing.inl +++ b/glm/detail/func_packing.inl @@ -184,7 +184,7 @@ namespace glm } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_packing_simd.inl" #endif diff --git a/glm/detail/func_trigonometric.inl b/glm/detail/func_trigonometric.inl index 66b213a8..67bafef4 100644 --- a/glm/detail/func_trigonometric.inl +++ b/glm/detail/func_trigonometric.inl @@ -194,7 +194,7 @@ namespace glm } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_trigonometric_simd.inl" #endif diff --git a/glm/detail/func_vector_relational.inl b/glm/detail/func_vector_relational.inl index cab02c3a..5c5f929f 100644 --- a/glm/detail/func_vector_relational.inl +++ b/glm/detail/func_vector_relational.inl @@ -100,6 +100,6 @@ namespace glm } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_UNRESTRICTED_UNIONS +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "func_vector_relational_simd.inl" #endif diff --git a/glm/detail/type_mat4x4.inl b/glm/detail/type_mat4x4.inl index 5c66ede2..f40bca1a 100644 --- a/glm/detail/type_mat4x4.inl +++ b/glm/detail/type_mat4x4.inl @@ -704,6 +704,6 @@ namespace glm } }//namespace glm -#if GLM_ARCH != GLM_ARCH_PURE +#if GLM_ARCH != GLM_ARCH_PURE && GLM_HAS_ANONYMOUS_STRUCT # include "type_mat4x4_simd.inl" #endif diff --git a/glm/detail/type_vec4_simd.inl b/glm/detail/type_vec4_simd.inl index 9ce66c03..e08e845b 100644 --- a/glm/detail/type_vec4_simd.inl +++ b/glm/detail/type_vec4_simd.inl @@ -316,7 +316,9 @@ namespace detail { static bool call(vec<4, int32, Q> const& v1, vec<4, int32, Q> const& v2) { - return _mm_movemask_epi8(_mm_cmpeq_epi32(v1.data, v2.data)) != 0; + //return _mm_movemask_epi8(_mm_cmpeq_epi32(v1.data, v2.data)) != 0; + __m128i neq = _mm_xor_si128(v1.data, v2.data); + return _mm_test_all_zeros(neq, neq) == 0; } }; @@ -334,7 +336,9 @@ namespace detail { static bool call(vec<4, int32, Q> const& v1, vec<4, int32, Q> const& v2) { - return _mm_movemask_epi8(_mm_cmpneq_epi32(v1.data, v2.data)) != 0; + //return _mm_movemask_epi8(_mm_cmpneq_epi32(v1.data, v2.data)) != 0; + __m128i neq = _mm_xor_si128(v1.data, v2.data); + return _mm_test_all_zeros(neq, neq) != 0; } }; }//namespace detail diff --git a/test/core/core_type_vec4.cpp b/test/core/core_type_vec4.cpp index 36e35953..b126b61a 100644 --- a/test/core/core_type_vec4.cpp +++ b/test/core/core_type_vec4.cpp @@ -757,11 +757,28 @@ static int test_constexpr() return 0; } +/* +static int test_simd_gen() +{ + int Error = 0; + + int const C = static_cast(std::clock()); + int const D = static_cast(std::clock()); + + glm::ivec4 const A(C); + glm::ivec4 const B(D); + Error += A != B ? 0 : 1; + + return Error; +} +*/ int main() { int Error = 0; + //Error += test_simd_gen(); + /* { glm::ivec4 const a1(2);