mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
we were already aligning to 16 byte boundary fixed-size objects that are multiple of 16 bytes;
now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes. That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all? Also, improvements in test_unalignedassert.
This commit is contained in:
@@ -99,10 +99,10 @@ template<typename Scalar> void packetmath()
|
||||
const int PacketSize = ei_packet_traits<Scalar>::size;
|
||||
|
||||
const int size = PacketSize*4;
|
||||
EIGEN_ALIGN_128 Scalar data1[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN_128 Scalar data2[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN_128 Packet packets[PacketSize*2];
|
||||
EIGEN_ALIGN_128 Scalar ref[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Scalar data1[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Scalar data2[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Packet packets[PacketSize*2];
|
||||
EIGEN_ALIGN16 Scalar ref[ei_packet_traits<Scalar>::size*4];
|
||||
for (int i=0; i<size; ++i)
|
||||
{
|
||||
data1[i] = ei_random<Scalar>();
|
||||
@@ -202,9 +202,9 @@ template<typename Scalar> void packetmath_real()
|
||||
const int PacketSize = ei_packet_traits<Scalar>::size;
|
||||
|
||||
const int size = PacketSize*4;
|
||||
EIGEN_ALIGN_128 Scalar data1[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN_128 Scalar data2[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN_128 Scalar ref[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Scalar data1[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Scalar data2[ei_packet_traits<Scalar>::size*4];
|
||||
EIGEN_ALIGN16 Scalar ref[ei_packet_traits<Scalar>::size*4];
|
||||
|
||||
for (int i=0; i<size; ++i)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user