mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-23 14:53:13 +08:00
Having forward template function declarations in a P10 file causes bad code in certain situations.
This commit is contained in:
parent
f44197fabd
commit
c31ead8a15
@ -2,6 +2,52 @@ namespace Eigen {
|
|||||||
|
|
||||||
namespace internal {
|
namespace internal {
|
||||||
|
|
||||||
|
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accRows>
|
||||||
|
EIGEN_STRONG_INLINE void gemm_extra_col(
|
||||||
|
const DataMapper& res,
|
||||||
|
const Scalar *lhs_base,
|
||||||
|
const Scalar *rhs_base,
|
||||||
|
Index depth,
|
||||||
|
Index strideA,
|
||||||
|
Index offsetA,
|
||||||
|
Index row,
|
||||||
|
Index col,
|
||||||
|
Index remaining_rows,
|
||||||
|
Index remaining_cols,
|
||||||
|
const Packet& pAlpha);
|
||||||
|
|
||||||
|
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accRows>
|
||||||
|
EIGEN_STRONG_INLINE void gemm_extra_row(
|
||||||
|
const DataMapper& res,
|
||||||
|
const Scalar *lhs_base,
|
||||||
|
const Scalar *rhs_base,
|
||||||
|
Index depth,
|
||||||
|
Index strideA,
|
||||||
|
Index offsetA,
|
||||||
|
Index row,
|
||||||
|
Index col,
|
||||||
|
Index cols,
|
||||||
|
Index remaining_rows,
|
||||||
|
const Packet& pAlpha,
|
||||||
|
const Packet& pMask);
|
||||||
|
|
||||||
|
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accCols>
|
||||||
|
EIGEN_STRONG_INLINE void gemm_unrolled_col(
|
||||||
|
const DataMapper& res,
|
||||||
|
const Scalar *lhs_base,
|
||||||
|
const Scalar *rhs_base,
|
||||||
|
Index depth,
|
||||||
|
Index strideA,
|
||||||
|
Index offsetA,
|
||||||
|
Index& row,
|
||||||
|
Index rows,
|
||||||
|
Index col,
|
||||||
|
Index remaining_cols,
|
||||||
|
const Packet& pAlpha);
|
||||||
|
|
||||||
|
template<typename Packet>
|
||||||
|
EIGEN_STRONG_INLINE Packet bmask(const int remaining_rows);
|
||||||
|
|
||||||
const static Packet16uc p16uc_SETCOMPLEX32_FIRST = { 0, 1, 2, 3,
|
const static Packet16uc p16uc_SETCOMPLEX32_FIRST = { 0, 1, 2, 3,
|
||||||
16, 17, 18, 19,
|
16, 17, 18, 19,
|
||||||
4, 5, 6, 7,
|
4, 5, 6, 7,
|
||||||
|
@ -238,52 +238,6 @@ EIGEN_STRONG_INLINE void ploadRhsMMA<double, __vector_pair>(const double *rhs, _
|
|||||||
__builtin_vsx_assemble_pair(&rhsV, (__vector unsigned char)(*(((Packet2d *)rhs) + 1)), (__vector unsigned char)(*((Packet2d *)rhs)));
|
__builtin_vsx_assemble_pair(&rhsV, (__vector unsigned char)(*(((Packet2d *)rhs) + 1)), (__vector unsigned char)(*((Packet2d *)rhs)));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accRows>
|
|
||||||
EIGEN_STRONG_INLINE void gemm_extra_col(
|
|
||||||
const DataMapper& res,
|
|
||||||
const Scalar *lhs_base,
|
|
||||||
const Scalar *rhs_base,
|
|
||||||
Index depth,
|
|
||||||
Index strideA,
|
|
||||||
Index offsetA,
|
|
||||||
Index row,
|
|
||||||
Index col,
|
|
||||||
Index remaining_rows,
|
|
||||||
Index remaining_cols,
|
|
||||||
const Packet& pAlpha);
|
|
||||||
|
|
||||||
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accRows>
|
|
||||||
EIGEN_STRONG_INLINE void gemm_extra_row(
|
|
||||||
const DataMapper& res,
|
|
||||||
const Scalar *lhs_base,
|
|
||||||
const Scalar *rhs_base,
|
|
||||||
Index depth,
|
|
||||||
Index strideA,
|
|
||||||
Index offsetA,
|
|
||||||
Index row,
|
|
||||||
Index col,
|
|
||||||
Index cols,
|
|
||||||
Index remaining_rows,
|
|
||||||
const Packet& pAlpha,
|
|
||||||
const Packet& pMask);
|
|
||||||
|
|
||||||
template<typename Scalar, typename Packet, typename DataMapper, typename Index, const Index accCols>
|
|
||||||
EIGEN_STRONG_INLINE void gemm_unrolled_col(
|
|
||||||
const DataMapper& res,
|
|
||||||
const Scalar *lhs_base,
|
|
||||||
const Scalar *rhs_base,
|
|
||||||
Index depth,
|
|
||||||
Index strideA,
|
|
||||||
Index offsetA,
|
|
||||||
Index& row,
|
|
||||||
Index rows,
|
|
||||||
Index col,
|
|
||||||
Index remaining_cols,
|
|
||||||
const Packet& pAlpha);
|
|
||||||
|
|
||||||
template<typename Packet>
|
|
||||||
EIGEN_STRONG_INLINE Packet bmask(const int remaining_rows);
|
|
||||||
|
|
||||||
#define MICRO_MMA_DST \
|
#define MICRO_MMA_DST \
|
||||||
__vector_quad *accZero0, __vector_quad *accZero1, __vector_quad *accZero2, \
|
__vector_quad *accZero0, __vector_quad *accZero1, __vector_quad *accZero2, \
|
||||||
__vector_quad *accZero3, __vector_quad *accZero4, __vector_quad *accZero5, \
|
__vector_quad *accZero3, __vector_quad *accZero4, __vector_quad *accZero5, \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user