diff --git a/Eigen/src/Core/AssignEvaluator.h b/Eigen/src/Core/AssignEvaluator.h index d52e9647e..7d1bb5cdd 100644 --- a/Eigen/src/Core/AssignEvaluator.h +++ b/Eigen/src/Core/AssignEvaluator.h @@ -567,8 +567,7 @@ struct copy_using_evaluator_impl::DstIsAligned) , - srcAlignment = copy_using_evaluator_traits::JointAlignment + dstAlignment = alignable ? Aligned : int(copy_using_evaluator_traits::DstIsAligned) }; const Index packetAlignedMask = packetSize - 1; const Index innerSize = dst.innerSize(); @@ -587,7 +586,7 @@ struct copy_using_evaluator_impl(outer, inner, srcEvaluator); + dstEvaluator.template copyPacketByOuterInner(outer, inner, srcEvaluator); } // do the non-vectorizable part of the assignment