diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-02-26 20:12:51 -0500 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-02-26 20:12:51 -0500 |
commit | b1f666d007ee4dc22f48dd65f900ee3659dd1f7d (patch) | |
tree | 29c6de6cb4b2bf92a9f54b1f67c7ef5aa2773b24 /test/vectorization_logic.cpp | |
parent | 32115bff1e2b99641e09e0fe182d2d5cc11413ec (diff) |
Fix Map-with-Stride and cover it by new unit tests.
Diffstat (limited to 'test/vectorization_logic.cpp')
-rw-r--r-- | test/vectorization_logic.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/vectorization_logic.cpp b/test/vectorization_logic.cpp index 5d86df7b3..ae9911831 100644 --- a/test/vectorization_logic.cpp +++ b/test/vectorization_logic.cpp @@ -33,6 +33,14 @@ bool test_assign(const Dst&, const Src&, int traversal, int unrolling) && ei_assign_traits<Dst,Src>::Unrolling==unrolling; } +template<typename Dst, typename Src> +bool test_assign(int traversal, int unrolling) +{ + ei_assign_traits<Dst,Src>::debug(); + return ei_assign_traits<Dst,Src>::Traversal==traversal + && ei_assign_traits<Dst,Src>::Unrolling==unrolling; +} + template<typename Xpr> bool test_redux(const Xpr&, int traversal, int unrolling) { @@ -86,6 +94,15 @@ void test_vectorization_logic() VERIFY(test_assign(MatrixXf(10,10),MatrixXf(20,20).block(10,10,2,3), SliceVectorizedTraversal,NoUnrolling)); + VERIFY((test_assign< + Map<Matrix<float,4,8>, Aligned, OuterStride<12> >, + Matrix<float,4,8> + >(InnerVectorizedTraversal,CompleteUnrolling))); + + VERIFY((test_assign< + Map<Matrix<float,4,8>, Aligned, InnerStride<12> >, + Matrix<float,4,8> + >(DefaultTraversal,CompleteUnrolling))); VERIFY(test_redux(VectorXf(10), LinearVectorizedTraversal,NoUnrolling)); |