|
|
@@ -270,7 +270,17 @@ namespace simd_mat4
|
|
|
detail::fvec4SIMD const & r
|
|
|
)
|
|
|
{
|
|
|
-
|
|
|
+ __m128 Shu0 = _mm_shuffle_ps(r.Data, r.Data, _MM_SHUFFLE(0, 0, 0, 0));
|
|
|
+ __m128 Shu1 = _mm_shuffle_ps(r.Data, r.Data, _MM_SHUFFLE(1, 1, 1, 1));
|
|
|
+ __m128 Shu2 = _mm_shuffle_ps(r.Data, r.Data, _MM_SHUFFLE(2, 2, 2, 2));
|
|
|
+ __m128 Shu3 = _mm_shuffle_ps(r.Data, r.Data, _MM_SHUFFLE(3, 3, 3, 3));
|
|
|
+
|
|
|
+ detail::fmat4x4SIMD result(detail::fmat4x4SIMD::null);
|
|
|
+ result[0].Data = _mm_mul_ps(c.Data, Shu0);
|
|
|
+ result[1].Data = _mm_mul_ps(c.Data, Shu1);
|
|
|
+ result[2].Data = _mm_mul_ps(c.Data, Shu2);
|
|
|
+ result[3].Data = _mm_mul_ps(c.Data, Shu3);
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
inline detail::fmat4x4SIMD transpose(detail::fmat4x4SIMD const & m)
|