diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-04-18 21:14:40 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-04-18 21:14:40 +0200 |
commit | 2606abed535744fcaa41b923c71338a06b8ed3fa (patch) | |
tree | cafa7c6567e2982d1395e2db63b692f34cdb1e1d /test/dynalloc.cpp | |
parent | a7d20038df1dc160e282e824052ff5bcf5ba2c9a (diff) |
Fix 128bit packet size assumptions in unit tests.
Diffstat (limited to 'test/dynalloc.cpp')
-rw-r--r-- | test/dynalloc.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/test/dynalloc.cpp b/test/dynalloc.cpp index 8bbda1c94..c98cc80f0 100644 --- a/test/dynalloc.cpp +++ b/test/dynalloc.cpp @@ -10,11 +10,13 @@ #include "main.h" #if EIGEN_ALIGN -#define ALIGNMENT 16 +#define ALIGNMENT EIGEN_ALIGN_BYTES #else #define ALIGNMENT 1 #endif +typedef Matrix<float,8,1> Vector8f; + void check_handmade_aligned_malloc() { for(int i = 1; i < 1000; i++) @@ -68,7 +70,7 @@ struct MyStruct { EIGEN_MAKE_ALIGNED_OPERATOR_NEW char dummychar; - Vector4f avec; + Vector8f avec; }; class MyClassA @@ -76,15 +78,19 @@ class MyClassA public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW char dummychar; - Vector4f avec; + Vector8f avec; }; template<typename T> void check_dynaligned() { - T* obj = new T; - VERIFY(T::NeedsToAlign==1); - VERIFY(size_t(obj)%ALIGNMENT==0); - delete obj; + // TODO have to be updated once we support multiple alignment values + if(T::SizeAtCompileTime % ALIGNMENT == 0) + { + T* obj = new T; + VERIFY(T::NeedsToAlign==1); + VERIFY(size_t(obj)%ALIGNMENT==0); + delete obj; + } } void test_dynalloc() @@ -102,6 +108,7 @@ void test_dynalloc() CALL_SUBTEST(check_dynaligned<Matrix4f>() ); CALL_SUBTEST(check_dynaligned<Vector4d>() ); CALL_SUBTEST(check_dynaligned<Vector4i>() ); + CALL_SUBTEST(check_dynaligned<Vector8f>() ); } // check static allocation, who knows ? |