From b776458ccbd0b8dbde56d0d2dd0a683c6b4b0692 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Thu, 27 Mar 2014 10:02:24 -0700 Subject: [PATCH] Vectorized the packing of a row-major matrix used as the left hand side argument in a matrix-matrix product. --- .../Core/products/GeneralBlockPanelKernel.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index d17752489..eeeb5290f 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -954,9 +954,22 @@ EIGEN_DONT_INLINE void gemm_pack_lhs kernel; + for (int p = 0; p < PacketSize; ++p) { + kernel.packet[p] = ploadu(&lhs(i+p+m, k)); + } + ptranspose(kernel); + for (int p = 0; p < PacketSize; ++p) { + pstore(blockA+count+m+Pack1*p, cj.pconj(kernel.packet[p])); + } + } + count += PacketSize*Pack1; + } + for(; k