diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-09-17 23:34:00 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-09-17 23:34:00 +0200 |
commit | 5ba7fe3bee57000a7554b57d981e045586b70831 (patch) | |
tree | 3334a173b363683c0e02902df44737a947950e32 | |
parent | f2737148b0988856de5f97c0738fa6473b707b8a (diff) |
clean the commented asm instructions because now I'm sure
the previous fix is ok
-rw-r--r-- | Eigen/src/Core/arch/SSE/PacketMath.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/Eigen/src/Core/arch/SSE/PacketMath.h b/Eigen/src/Core/arch/SSE/PacketMath.h index 5d9af130d..ddc7b4aaf 100644 --- a/Eigen/src/Core/arch/SSE/PacketMath.h +++ b/Eigen/src/Core/arch/SSE/PacketMath.h @@ -76,17 +76,14 @@ template<> struct ei_unpacket_traits<Packet4i> { typedef int type; enum {size #ifdef __GNUC__ // Sometimes GCC implements _mm_set1_p* using multiple moves, -// that is inefficient :( -// TODO make sure the new solution using the shuffle/unpacklo is ok +// that is inefficient :( (e.g., see ei_gemm_pack_rhs) template<> EIGEN_STRONG_INLINE Packet4f ei_pset1<float>(const float& from) { Packet4f res = _mm_set_ss(from); return _mm_shuffle_ps(res,res,0); - //asm("shufps $0, %[x], %[x]" : [x] "+x" (res) : ); } template<> EIGEN_STRONG_INLINE Packet2d ei_pset1<double>(const double& from) { Packet2d res = _mm_set_sd(from); return _mm_unpacklo_pd(res,res); -// asm("unpcklpd %[x], %[x]" : [x] "+x" (res) : ); } #else template<> EIGEN_STRONG_INLINE Packet4f ei_pset1<float>(const float& from) { return _mm_set1_ps(from); } |