Prechádzať zdrojové kódy

Specialized SIMD == and != operators

Christophe Riccio 9 rokov pred
rodič
commit
9c6de96669
1 zmenil súbory, kde vykonal 18 pridanie a 0 odobranie
  1. 18 0
      glm/detail/type_vec4_simd.inl

+ 18 - 0
glm/detail/type_vec4_simd.inl

@@ -204,6 +204,24 @@ namespace detail
 		}
 	};
 #	endif
+
+	template <precision P>
+	struct compute_vec4_equal<float, P, false, 32>
+	{
+		static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+		{
+			return _mm_movemask_ps(_mm_cmpeq_ps(v1.data, v2.data)) != 0;
+		}
+	};
+
+	template <precision P>
+	struct compute_vec4_nequal<float, P, false, 32>
+	{
+		static bool call(tvec4<float, P> const & v1, tvec4<float, P> const & v2)
+		{
+			return _mm_movemask_ps(_mm_cmpneq_ps(v1.data, v2.data)) != 0;
+		}
+	};
 }//namespace detail
 
 #	if !GLM_HAS_DEFAULTED_FUNCTIONS