mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-15 07:10:37 +08:00
Use aligned loads in Matrix-Vector product where possible. Fixes bug #689
This commit is contained in:
parent
e14f529dac
commit
7fae9b358d
@ -293,7 +293,7 @@ EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,ColMajor,Co
|
|||||||
// process aligned result's coeffs
|
// process aligned result's coeffs
|
||||||
if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
|
if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
|
||||||
for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
|
for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
|
||||||
pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
|
pstore(&res[i], pcj.pmadd(pload<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
|
||||||
else
|
else
|
||||||
for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
|
for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
|
||||||
pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
|
pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
|
||||||
|
Loading…
Reference in New Issue
Block a user