Reverted the definition of the EIGEN_ALIGN to its former meaning (i.e. a boolean)

Created a new EIGEN_ALIGN_BYTES define to encode how the data should be aligned
Fixed a few remaining alignment issues exposed when the Eigen code is compiled with avx enabled.
Created a new EIGEN_ALIGN_DEFAULT define, which is set to the minimum alignment value required for the chosen instruction set. Use this value instead of EIGEN_ALIGN32 to preserve the existing alignment on SSE/Altivec/Neon.
This commit is contained in:
Benoit Steiner
2014-02-18 18:06:44 -08:00
parent 64a85800bd
commit 7ed9441ea4
13 changed files with 61 additions and 53 deletions

View File

@@ -66,9 +66,9 @@ template<typename Scalar> void parametrizedline_alignment()
typedef ParametrizedLine<Scalar,4,AutoAlign> Line4a;
typedef ParametrizedLine<Scalar,4,DontAlign> Line4u;
EIGEN_ALIGN16 Scalar array1[8];
EIGEN_ALIGN16 Scalar array2[8];
EIGEN_ALIGN16 Scalar array3[8+1];
EIGEN_ALIGN_DEFAULT Scalar array1[8];
EIGEN_ALIGN_DEFAULT Scalar array2[8];
EIGEN_ALIGN_DEFAULT Scalar array3[8+1];
Scalar* array3u = array3+1;
Line4a *p1 = ::new(reinterpret_cast<void*>(array1)) Line4a;