mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-15 07:10:37 +08:00
more MSVC fixes (asm comments...)
This commit is contained in:
parent
497d77b08c
commit
718af05517
@ -425,16 +425,11 @@ static void ei_cache_friendly_product(
|
|||||||
for(int i=0; i<l2BlockRows; i+=2*PacketSize)
|
for(int i=0; i<l2BlockRows; i+=2*PacketSize)
|
||||||
{
|
{
|
||||||
PacketType R0, R1, L0, L1, T0, T1;
|
PacketType R0, R1, L0, L1, T0, T1;
|
||||||
asm("#begin sgemm");
|
|
||||||
// asm(".byte 0x66;");
|
|
||||||
|
|
||||||
// We perform "cross products" of vectors to avoid
|
// We perform "cross products" of vectors to avoid
|
||||||
// reductions (horizontal ops) afterwards
|
// reductions (horizontal ops) afterwards
|
||||||
T0 = ei_pload(&res[(j+l2j)*resStride+l2i+i]);
|
T0 = ei_pload(&res[(j+l2j)*resStride+l2i+i]);
|
||||||
T1 = ei_pload(&res[(j+l2j)*resStride+l2i+i+PacketSize]);
|
T1 = ei_pload(&res[(j+l2j)*resStride+l2i+i+PacketSize]);
|
||||||
// uncomment to remove res cache miss
|
|
||||||
// T0 = ei_pload(&res[k]);
|
|
||||||
// T1 = ei_pload(&res[k+PacketSize]);
|
|
||||||
|
|
||||||
R0 = ei_pload(&lb[0*PacketSize]);
|
R0 = ei_pload(&lb[0*PacketSize]);
|
||||||
L0 = ei_pload(&lb[1*PacketSize]);
|
L0 = ei_pload(&lb[1*PacketSize]);
|
||||||
@ -478,10 +473,6 @@ static void ei_cache_friendly_product(
|
|||||||
|
|
||||||
ei_pstore(&res[(j+l2j)*resStride+l2i+i], T0);
|
ei_pstore(&res[(j+l2j)*resStride+l2i+i], T0);
|
||||||
ei_pstore(&res[(j+l2j)*resStride+l2i+i+PacketSize], T1);
|
ei_pstore(&res[(j+l2j)*resStride+l2i+i+PacketSize], T1);
|
||||||
// uncomment to remove res cache miss
|
|
||||||
// ei_pstore(&res[0], T0);
|
|
||||||
// ei_pstore(&res[4/*k+PacketSize*/], T1);
|
|
||||||
asm("#end sgemm");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ static EIGEN_DONT_INLINE void ei_cache_friendly_product_colmajor_times_vector(
|
|||||||
const Scalar* lhs, int lhsStride,
|
const Scalar* lhs, int lhsStride,
|
||||||
const RhsType& rhs,
|
const RhsType& rhs,
|
||||||
Scalar* res)
|
Scalar* res)
|
||||||
{asm("#ei_cache_friendly_product_colmajor_times_vector");
|
{
|
||||||
#ifdef _EIGEN_ACCUMULATE_PACKETS
|
#ifdef _EIGEN_ACCUMULATE_PACKETS
|
||||||
#error _EIGEN_ACCUMULATE_PACKETS has already been defined
|
#error _EIGEN_ACCUMULATE_PACKETS has already been defined
|
||||||
#endif
|
#endif
|
||||||
|
@ -159,6 +159,12 @@ using Eigen::ei_cos;
|
|||||||
#define EIGEN_DEPRECATED
|
#define EIGEN_DEPRECATED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (defined __GNUC__)
|
||||||
|
#define EIGEN_ASM_COMMENT(X) asm("#"X)
|
||||||
|
#else
|
||||||
|
#define EIGEN_ASM_COMMENT(X)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* EIGEN_ALIGN_128 forces data to be 16-byte aligned, EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
|
/* EIGEN_ALIGN_128 forces data to be 16-byte aligned, EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
|
||||||
* so that vectorization doesn't affect binary compatibility.
|
* so that vectorization doesn't affect binary compatibility.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user