* Fix a couple of issues related to the recent cache friendly products

* Improve the efficiency of matrix*vector in unaligned cases
* Trivial fixes in the destructors of MatrixStorage
* Removed the matrixNorm in test/product.cpp (twice faster and
  that assumed the matrix product was ok while checking that !!)
This commit is contained in:
Gael Guennebaud
2008-07-19 00:09:01 +00:00
parent 62ec1dd616
commit 22a816ade8
9 changed files with 85 additions and 92 deletions

View File

@@ -189,5 +189,14 @@ inline __m128i ei_preduxp(const __m128i* vecs)
return _mm_add_epi32(tmp0, tmp2);
}
#if (defined __GNUC__)
template <> inline __m128 ei_pmadd(const __m128& a, const __m128& b, const __m128& c)
{
__m128 res = b;
asm("mulps %[a], %[b] \n\taddps %[c], %[b]" : [b] "+x" (res) : [a] "x" (a), [c] "x" (c));
return res;
}
#endif
#endif // EIGEN_PACKET_MATH_SSE_H