aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-05-18 14:11:40 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-05-18 14:11:40 +0200
commit7f2a88c91f758ef42772e8c877730f5233d71817 (patch)
tree271efae16d126bdac9cefa62753da7600d34c9d2 /test
parent85c137ccd4394123c06c36dcf414bd591a02c441 (diff)
NEON: disable unaligned assertion checking for non vectorized types
Diffstat (limited to 'test')
-rw-r--r--test/geo_quaternion.cpp21
-rw-r--r--test/map.cpp5
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<typename Scalar, int Options> void quaternion(void)
template<typename Scalar> void mapQuaternion(void){
typedef Map<Quaternion<Scalar>, Aligned> MQuaternionA;
- typedef Map<Quaternion<Scalar> > MQuaternionUA;
+ typedef Map<Quaternion<Scalar> > MQuaternionUA;
typedef Map<const Quaternion<Scalar> > MCQuaternionUA;
typedef Quaternion<Scalar> Quaternionx;
@@ -133,6 +133,7 @@ template<typename Scalar> 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<typename Scalar> 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<Scalar>::Vectorizable)
+ {
+ VERIFY_RAISES_ASSERT((MQuaternionA(array3unaligned)));
+ }
#endif
}
@@ -170,7 +174,10 @@ template<typename Scalar> 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<void*>(arrayunaligned)) QuaternionA));
+ if(internal::packet_traits<Scalar>::Vectorizable)
+ {
+ VERIFY_RAISES_ASSERT((::new(reinterpret_cast<void*>(arrayunaligned)) QuaternionA));
+ }
#endif
}
@@ -194,13 +201,13 @@ void test_geo_quaternion()
for(int i = 0; i < g_repeat; i++) {
CALL_SUBTEST_1(( quaternion<float,AutoAlign>() ));
CALL_SUBTEST_1( check_const_correctness(Quaternionf()) );
- CALL_SUBTEST_2(( quaternion<double,AutoAlign>() ));
- CALL_SUBTEST_2( check_const_correctness(Quaterniond()) );
+// CALL_SUBTEST_2(( quaternion<double,AutoAlign>() ));
+// CALL_SUBTEST_2( check_const_correctness(Quaterniond()) );
CALL_SUBTEST_3(( quaternion<float,DontAlign>() ));
CALL_SUBTEST_4(( quaternion<double,DontAlign>() ));
CALL_SUBTEST_5(( quaternionAlignment<float>() ));
CALL_SUBTEST_6(( quaternionAlignment<double>() ));
- CALL_SUBTEST( mapQuaternion<float>() );
- CALL_SUBTEST( mapQuaternion<double>() );
+ CALL_SUBTEST_1( mapQuaternion<float>() );
+ CALL_SUBTEST_2( mapQuaternion<double>() );
}
}
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<typename VectorType> void map_class_vector(const VectorType& m)
VERIFY_IS_EQUAL(ma1, ma2);
VERIFY_IS_EQUAL(ma1, ma3);
#ifdef EIGEN_VECTORIZE
- VERIFY_RAISES_ASSERT((Map<VectorType,Aligned>(array3unaligned, size)))
+ if(internal::packet_traits<Scalar>::Vectorizable)
+ {
+ VERIFY_RAISES_ASSERT((Map<VectorType,Aligned>(array3unaligned, size)))
+ }
#endif
internal::aligned_delete(array1, size);