From dca416cace14abdba682d82a212b215e05d1e17a Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Mon, 12 May 2008 08:30:42 +0000 Subject: [PATCH] move arch-specific code to arch/SSE and arch/AltiVec subdirs. rename the noarch PacketMath.h to DummyPacketMath.h --- Eigen/Core | 7 ++++--- Eigen/src/Core/{PacketMath.h => DummyPacketMath.h} | 10 +++------- .../AltiVec/PacketMath.h} | 7 ++----- .../Core/{PacketMath_SSE.h => arch/SSE/PacketMath.h} | 4 ++-- 4 files changed, 11 insertions(+), 17 deletions(-) rename Eigen/src/Core/{PacketMath.h => DummyPacketMath.h} (95%) rename Eigen/src/Core/{PacketMath_Altivec.h => arch/AltiVec/PacketMath.h} (97%) rename Eigen/src/Core/{PacketMath_SSE.h => arch/SSE/PacketMath.h} (98%) diff --git a/Eigen/Core b/Eigen/Core index b2e973a8c..f2a1ad1d8 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -50,11 +50,12 @@ namespace Eigen { #include "src/Core/NumTraits.h" #include "src/Core/MathFunctions.h" -#include "src/Core/PacketMath.h" +#include "src/Core/DummyPacketMath.h" + #if defined EIGEN_VECTORIZE_SSE -#include "src/Core/PacketMath_SSE.h" +#include "src/Core/arch/SSE/PacketMath.h" #elif defined EIGEN_VECTORIZE_ALTIVEC -#include "src/Core/PacketMath_Altivec.h" +#include "src/Core/arch/AltiVec/PacketMath.h" #endif #include "src/Core/Functors.h" diff --git a/Eigen/src/Core/PacketMath.h b/Eigen/src/Core/DummyPacketMath.h similarity index 95% rename from Eigen/src/Core/PacketMath.h rename to Eigen/src/Core/DummyPacketMath.h index 267192482..b7d418a01 100644 --- a/Eigen/src/Core/PacketMath.h +++ b/Eigen/src/Core/DummyPacketMath.h @@ -22,12 +22,8 @@ // License and a copy of the GNU General Public License along with // Eigen. If not, see . -#ifndef EIGEN_PACKET_MATH_H -#define EIGEN_PACKET_MATH_H - -#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD -#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 16 -#endif +#ifndef EIGEN_DUMMY_PACKET_MATH_H +#define EIGEN_DUMMY_PACKET_MATH_H // Default implementation for types not supported by the vectorization. // In practice these functions are provided to make easier the writting @@ -76,5 +72,5 @@ template inline Scalar ei_preduxp(const Scalar* vecs) { return /** \internal \returns the sum of the elements of \a a*/ template inline Scalar ei_predux(const Scalar& a) { return a; } -#endif // EIGEN_PACKET_MATH_H +#endif // EIGEN_DUMMY_PACKET_MATH_H diff --git a/Eigen/src/Core/PacketMath_Altivec.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h similarity index 97% rename from Eigen/src/Core/PacketMath_Altivec.h rename to Eigen/src/Core/arch/AltiVec/PacketMath.h index 4056c1ddb..aec4e9312 100644 --- a/Eigen/src/Core/PacketMath_Altivec.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -26,11 +26,9 @@ #ifndef EIGEN_PACKET_MATH_ALTIVEC_H #define EIGEN_PACKET_MATH_ALTIVEC_H -#ifndef EIGEN_VECTORIZE_ALTIVEC -#error include PacketMath_Altivec without EIGEN_VECTORIZE_ALTIVEC -#endif - +#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD #define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4 +#endif static const vector int v0i = vec_splat_u32(0); static const vector int v16i_ = vec_splat_u32(-16); @@ -108,4 +106,3 @@ inline int ei_pfirst(const vector int a) } #endif // EIGEN_PACKET_MATH_ALTIVEC_H - diff --git a/Eigen/src/Core/PacketMath_SSE.h b/Eigen/src/Core/arch/SSE/PacketMath.h similarity index 98% rename from Eigen/src/Core/PacketMath_SSE.h rename to Eigen/src/Core/arch/SSE/PacketMath.h index dd467f52a..ffd6aebeb 100644 --- a/Eigen/src/Core/PacketMath_SSE.h +++ b/Eigen/src/Core/arch/SSE/PacketMath.h @@ -25,8 +25,8 @@ #ifndef EIGEN_PACKET_MATH_SSE_H #define EIGEN_PACKET_MATH_SSE_H -#ifndef EIGEN_VECTORIZE_SSE -#error include PacketMath_SSE without EIGEN_VECTORIZE_SSE +#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD +#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 16 #endif template<> struct ei_packet_traits { typedef __m128 type; enum {size=4}; };