aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <benoitjacob@google.com>2015-04-07 15:13:55 -0400
committerGravatar Benoit Jacob <benoitjacob@google.com>2015-04-07 15:13:55 -0400
commitd7f51feb0773cc3843ea8c29c605d4eea4bda4ac (patch)
tree21b386ec5001be35f27dc8880f4beae8f6774c42 /Eigen
parent0e9753c8dfffd8e20a445d3f150b8180c0815419 (diff)
bug #992: don't select a 3p GEMM path with non-vectorizable scalar types, this hits unsupported paths in symm/triangular products code
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Core/products/GeneralBlockPanelKernel.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h
index 428527820..2b4c1242f 100644
--- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h
@@ -380,11 +380,12 @@ public:
nr = 4,
// register block size along the M direction (currently, this one cannot be modified)
+ default_mr = (EIGEN_PLAIN_ENUM_MIN(16,NumberOfRegisters)/2/nr)*LhsPacketSize,
#if defined(EIGEN_HAS_SINGLE_INSTRUCTION_MADD) && !defined(EIGEN_VECTORIZE_ALTIVEC) && !defined(EIGEN_VECTORIZE_VSX)
// we assume 16 registers
- mr = 3*LhsPacketSize,
+ mr = Vectorizable ? 3*LhsPacketSize : default_mr,
#else
- mr = (EIGEN_PLAIN_ENUM_MIN(16,NumberOfRegisters)/2/nr)*LhsPacketSize,
+ mr = default_mr,
#endif
LhsProgress = LhsPacketSize,