Fix NVHPC warnings in Visitor.h and Memory.h

libeigen/eigen!2370

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
This commit is contained in:
Rasmus Munk Larsen
2026-03-31 15:09:37 -07:00
parent 7fcbed7acb
commit b54640df19
2 changed files with 8 additions and 9 deletions

View File

@@ -46,9 +46,8 @@ struct visitor_impl<Visitor, Derived, UnrollCount, Vectorize, false, ShortCircui
static constexpr bool CanVectorize(int K) {
constexpr int InnerSizeAtCompileTime = RowMajor ? ColsAtCompileTime : RowsAtCompileTime;
if (InnerSizeAtCompileTime <= 0) return false;
if (InnerSizeAtCompileTime < PacketSize) return false;
return Vectorize && (InnerSizeAtCompileTime - (K % InnerSizeAtCompileTime) >= PacketSize);
return Vectorize && InnerSizeAtCompileTime >= PacketSize &&
(InnerSizeAtCompileTime - (K % (InnerSizeAtCompileTime > 0 ? InnerSizeAtCompileTime : 1)) >= PacketSize);
}
template <int K = 0, bool Empty = (K == UnrollCount), std::enable_if_t<Empty, bool> = true>

View File

@@ -893,12 +893,12 @@ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void* eigen_aligned_alloca_helper(void* pt
#endif
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size) \
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF( \
bool(((Size) != Eigen::Dynamic) && \
(((EIGEN_MAX_ALIGN_BYTES >= 16) && ((sizeof(Scalar) * (Size)) % (EIGEN_MAX_ALIGN_BYTES) == 0)) || \
((EIGEN_MAX_ALIGN_BYTES >= 32) && ((sizeof(Scalar) * (Size)) % (EIGEN_MAX_ALIGN_BYTES / 2) == 0)) || \
((EIGEN_MAX_ALIGN_BYTES >= 64) && ((sizeof(Scalar) * (Size)) % (EIGEN_MAX_ALIGN_BYTES / 4) == 0)))))
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size) \
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF( \
bool(((Size) != Eigen::Dynamic) && \
(((EIGEN_MAX_ALIGN_BYTES >= 16) && ((sizeof(Scalar) * size_t(Size)) % (EIGEN_MAX_ALIGN_BYTES) == 0)) || \
((EIGEN_MAX_ALIGN_BYTES >= 32) && ((sizeof(Scalar) * size_t(Size)) % (EIGEN_MAX_ALIGN_BYTES / 2) == 0)) || \
((EIGEN_MAX_ALIGN_BYTES >= 64) && ((sizeof(Scalar) * size_t(Size)) % (EIGEN_MAX_ALIGN_BYTES / 4) == 0)))))
#endif