From 2d621d235d67f8cab4f6a77ada9db0087bc82234 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 28 Nov 2011 13:43:10 +0100 Subject: fix alignment computation in Block and MapBase such that aligned means aligned on 16 bytes and nothing else (transplanted from dcb36e3d49f25566a1733846cd4d6592bf8be0c4 ) --- Eigen/src/Core/Block.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Eigen/src/Core/Block.h') diff --git a/Eigen/src/Core/Block.h b/Eigen/src/Core/Block.h index b7dafd3ee..0c833c2bc 100644 --- a/Eigen/src/Core/Block.h +++ b/Eigen/src/Core/Block.h @@ -94,7 +94,7 @@ struct traits MaskPacketAccessBit = (InnerSize == Dynamic || (InnerSize % packet_traits::size) == 0) && (InnerStrideAtCompileTime == 1) ? PacketAccessBit : 0, - MaskAlignedBit = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && ((OuterStrideAtCompileTime % packet_traits::size) == 0)) ? AlignedBit : 0, + MaskAlignedBit = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * sizeof(Scalar)) % 16) == 0)) ? AlignedBit : 0, FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1) ? LinearAccessBit : 0, FlagsLvalueBit = is_lvalue::value ? LvalueBit : 0, FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0, -- cgit v1.2.3