diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-04-25 16:54:30 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-04-25 16:54:30 +0200 |
commit | f9d2f3903eea91b79a1f0a4ff96d5df544402dcc (patch) | |
tree | aa76bf43d6485681542dde9ecf3f20d544c84e6b /Eigen/src/Core | |
parent | 6f64b0b4872c58b2b4e4ccc182fb1950dd71a65d (diff) |
Product kernel: skip loop on columns if there is no remaining rows
Diffstat (limited to 'Eigen/src/Core')
-rw-r--r-- | Eigen/src/Core/products/GeneralBlockPanelKernel.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index ebf438d57..cc4a9c485 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -1255,6 +1255,7 @@ void gebp_kernel<LhsScalar,RhsScalar,Index,mr,nr,ConjugateLhs,ConjugateRhs> } } //---------- Process remaining rows, 1 at once ---------- + if(peeled_mc1<rows) { // loop on each panel of the rhs for(Index j2=0; j2<packet_cols4; j2+=nr) @@ -1288,13 +1289,11 @@ void gebp_kernel<LhsScalar,RhsScalar,Index,mr,nr,ConjugateLhs,ConjugateRhs> straits.loadLhsUnaligned(blB+0*SwappedTraits::LhsProgress, A0); straits.loadLhsUnaligned(blB+1*SwappedTraits::LhsProgress, A1); - straits.loadRhsQuad(blA+0*spk, B_0); straits.loadRhsQuad(blA+1*spk, B_1); straits.madd(A0,B_0,C0,B_0); straits.madd(A1,B_1,C1,B_1); - straits.loadLhsUnaligned(blB+2*SwappedTraits::LhsProgress, A0); straits.loadLhsUnaligned(blB+3*SwappedTraits::LhsProgress, A1); straits.loadRhsQuad(blA+2*spk, B_0); |