From 5d51a7f12c69138ed2a43df240bdf27a5313f7ce Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Mon, 23 May 2016 15:13:16 -0700 Subject: [PATCH] Don't optimize the processing of the last rows of a matrix matrix product in cases that violate the assumptions made by the optimized code path. --- Eigen/src/Core/products/GeneralBlockPanelKernel.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 5b0473598..e43529cc7 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -1625,9 +1625,14 @@ void gebp_kernel::half SResPacketHalf; + if ((SwappedTraits::LhsProgress % 4) == 0 && + (SwappedTraits::LhsProgress <= 8) && + unpacket_traits::size==4) { - // NOTE The following piece of code wont work for 512 bit registers SAccPacket C0, C1, C2, C3; straits.initAcc(C0); straits.initAcc(C1);