diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2021-02-26 09:12:44 -0800 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2021-02-26 09:12:44 -0800 |
commit | e67672024d82ad4fb173d647842e0a8ad2448fa1 (patch) | |
tree | b31c01fb64adaf7d3bd8ea0bafe51338b05ab689 /Eigen/src | |
parent | 5e7d4c33d637866ba4c8eef46e4826ace1bf6402 (diff) | |
parent | 51eba8c3e2567adbce53dfc9e62bddf294220fcc (diff) |
Merge branch 'nan_prop' of https://gitlab.com/rmlarsen1/eigen into nan_prop
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Core/DenseBase.h | 3 | ||||
-rw-r--r-- | Eigen/src/Core/arch/AltiVec/MatrixProduct.h | 17 | ||||
-rw-r--r-- | Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h | 2 |
3 files changed, 16 insertions, 6 deletions
diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h index f28c47877..20cc4821a 100644 --- a/Eigen/src/Core/DenseBase.h +++ b/Eigen/src/Core/DenseBase.h @@ -454,6 +454,7 @@ template<typename Derived> class DenseBase template<int NaNPropagation> EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar maxCoeff() const; + // By default, the fastest version with undefined NaN propagation semantics is // used. // TODO(rmlarsen): Replace with default template argument when we move to @@ -465,8 +466,6 @@ template<typename Derived> class DenseBase return maxCoeff<PropagateFast>(); } - - template<typename IndexType> EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const; template<typename IndexType> EIGEN_DEVICE_FUNC diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h index 89d81e06f..03d474a70 100644 --- a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +++ b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h @@ -12,12 +12,21 @@ #include "MatrixProductCommon.h" -#if __GNUC__ > 10 || __clang_major__ > 11 || \ - (__GNUC__ == 10 && (__GNUC_MINOR__ > 2 || \ - (__GNUC_MINOR__ == 2 && \ - __GNUC_PATCHLEVEL__ >= 1))) +#if EIGEN_COMP_LLVM +#if !defined(EIGEN_ALTIVEC_DISABLE_MMA) && !defined(EIGEN_ALTIVEC_MMA_ONLY) +#ifdef __MMA__ +#define EIGEN_ALTIVEC_MMA_ONLY +#else +#define EIGEN_ALTIVEC_DISABLE_MMA +#endif +#endif +#endif + +#ifdef __has_builtin +#if __has_builtin(__builtin_mma_assemble_acc) #define ALTIVEC_MMA_SUPPORT #endif +#endif #if defined(ALTIVEC_MMA_SUPPORT) && !defined(EIGEN_ALTIVEC_DISABLE_MMA) #include "MatrixProductMMA.h" diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h b/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h index bfee9ee92..37db1a6f1 100644 --- a/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +++ b/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h @@ -12,9 +12,11 @@ #pragma GCC target("cpu=power10") +#ifdef __has_builtin #if !__has_builtin(__builtin_vsx_assemble_pair) #define __builtin_vsx_assemble_pair __builtin_mma_assemble_pair #endif +#endif namespace Eigen { |