diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index dfc92c346..c29e4efc2 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -50,7 +50,7 @@ struct ei_gebp_kernel const int peeled_kc = (depth/4)*4; Scalar* unpackedB = const_cast(blockB - strideB * nr * PacketSize); - + // loops on each micro vertical panel of rhs (depth x nr) for(int j2=0; j2(Blocking::Max_kc,depth); // cache block size along the K direction int mc = std::min(Blocking::Max_mc,rows); // cache block size along the M direction - Scalar* blockA = ei_aligned_stack_new(Scalar, kc*mc*8); + Scalar* blockA = ei_aligned_stack_new(Scalar, kc*mc); std::size_t sizeB = kc*Blocking::PacketSize*Blocking::nr + kc*cols; Scalar* allocatedBlockB = ei_aligned_stack_new(Scalar, sizeB); Scalar* blockB = allocatedBlockB + kc*Blocking::PacketSize*Blocking::nr; diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h index d4920d213..c7b95d334 100644 --- a/Eigen/src/Core/util/Memory.h +++ b/Eigen/src/Core/util/Memory.h @@ -232,7 +232,7 @@ inline static Integer ei_first_aligned(const Scalar* array, Integer size) enum { PacketSize = ei_packet_traits::size, PacketAlignedMask = PacketSize-1 }; - + if(PacketSize==1) { // Either there is no vectorization, or a packet consists of exactly 1 scalar so that all elements