Fix Map-with-Stride and cover it by new unit tests.
diff --git a/test/vectorization_logic.cpp b/test/vectorization_logic.cpp
index 5d86df7..ae99118 100644
--- a/test/vectorization_logic.cpp
+++ b/test/vectorization_logic.cpp
@@ -33,6 +33,14 @@
&& 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 @@
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));