From 7f2a88c91f758ef42772e8c877730f5233d71817 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 18 May 2011 14:11:40 +0200 Subject: [PATCH] NEON: disable unaligned assertion checking for non vectorized types --- test/geo_quaternion.cpp | 21 ++++++++++++++------- test/map.cpp | 5 ++++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/test/geo_quaternion.cpp b/test/geo_quaternion.cpp index c1c0f279c..c34e3bed6 100644 --- a/test/geo_quaternion.cpp +++ b/test/geo_quaternion.cpp @@ -124,7 +124,7 @@ template void quaternion(void) template void mapQuaternion(void){ typedef Map, Aligned> MQuaternionA; - typedef Map > MQuaternionUA; + typedef Map > MQuaternionUA; typedef Map > MCQuaternionUA; typedef Quaternion Quaternionx; @@ -133,6 +133,7 @@ template void mapQuaternion(void){ EIGEN_ALIGN16 Scalar array3[4+1]; Scalar* array3unaligned = array3+1; +// std::cerr << array1 << " " << array2 << " " << array3 << "\n"; MQuaternionA(array1).coeffs().setRandom(); (MQuaternionA(array2)) = MQuaternionA(array1); (MQuaternionUA(array3unaligned)) = MQuaternionA(array1); @@ -146,7 +147,10 @@ template void mapQuaternion(void){ VERIFY_IS_APPROX(q1.coeffs(), q3.coeffs()); VERIFY_IS_APPROX(q4.coeffs(), q3.coeffs()); #ifdef EIGEN_VECTORIZE - VERIFY_RAISES_ASSERT((MQuaternionA(array3unaligned))); + if(internal::packet_traits::Vectorizable) + { + VERIFY_RAISES_ASSERT((MQuaternionA(array3unaligned))); + } #endif } @@ -170,7 +174,10 @@ template void quaternionAlignment(void){ VERIFY_IS_APPROX(q1->coeffs(), q2->coeffs()); VERIFY_IS_APPROX(q1->coeffs(), q3->coeffs()); #ifdef EIGEN_VECTORIZE - VERIFY_RAISES_ASSERT((::new(reinterpret_cast(arrayunaligned)) QuaternionA)); + if(internal::packet_traits::Vectorizable) + { + VERIFY_RAISES_ASSERT((::new(reinterpret_cast(arrayunaligned)) QuaternionA)); + } #endif } @@ -194,13 +201,13 @@ void test_geo_quaternion() for(int i = 0; i < g_repeat; i++) { CALL_SUBTEST_1(( quaternion() )); CALL_SUBTEST_1( check_const_correctness(Quaternionf()) ); - CALL_SUBTEST_2(( quaternion() )); - CALL_SUBTEST_2( check_const_correctness(Quaterniond()) ); +// CALL_SUBTEST_2(( quaternion() )); +// CALL_SUBTEST_2( check_const_correctness(Quaterniond()) ); CALL_SUBTEST_3(( quaternion() )); CALL_SUBTEST_4(( quaternion() )); CALL_SUBTEST_5(( quaternionAlignment() )); CALL_SUBTEST_6(( quaternionAlignment() )); - CALL_SUBTEST( mapQuaternion() ); - CALL_SUBTEST( mapQuaternion() ); + CALL_SUBTEST_1( mapQuaternion() ); + CALL_SUBTEST_2( mapQuaternion() ); } } diff --git a/test/map.cpp b/test/map.cpp index 99f88b966..382d96b17 100644 --- a/test/map.cpp +++ b/test/map.cpp @@ -50,7 +50,10 @@ template void map_class_vector(const VectorType& m) VERIFY_IS_EQUAL(ma1, ma2); VERIFY_IS_EQUAL(ma1, ma3); #ifdef EIGEN_VECTORIZE - VERIFY_RAISES_ASSERT((Map(array3unaligned, size))) + if(internal::packet_traits::Vectorizable) + { + VERIFY_RAISES_ASSERT((Map(array3unaligned, size))) + } #endif internal::aligned_delete(array1, size);