fix a strict aliasing issue with gcc 4.3

This commit is contained in:
Gael Guennebaud 2010-07-20 22:43:55 +02:00
parent b5f2b7d087
commit 35f0bc70d8

View File

@ -309,12 +309,9 @@ template<> EIGEN_STRONG_INLINE void ei_prefetch<std::complex<double> >(const std
template<> EIGEN_STRONG_INLINE std::complex<double> ei_pfirst<Packet1cd>(const Packet1cd& a)
{
// EIGEN_ALIGN16 double res[2];
// _mm_store_pd(res, a.v);
// return *(std::complex<double>*)res;
EIGEN_ALIGN16 std::complex<double> res;
ei_pstore(&res, a);
return res;
EIGEN_ALIGN16 double res[2];
_mm_store_pd(res, a.v);
return *(std::complex<double>*)res;
}
template<> EIGEN_STRONG_INLINE Packet1cd ei_preverse(const Packet1cd& a) { return a; }