From d098c4d64c6e2e595b5bb26a6fb111fe979c3364 Mon Sep 17 00:00:00 2001 From: Antonio Sanchez Date: Wed, 10 Mar 2021 16:04:02 -0800 Subject: Disable EIGEN_OPTIMIZATION_BARRIER for PPC clang. Doesn't seem to correctly select the register type, and most types lead to compiler crashes. --- Eigen/src/Core/util/Macros.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Eigen/src/Core/util/Macros.h') diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index e3a5379bb..00f3690d1 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -1117,7 +1117,10 @@ namespace Eigen { // Note that this is restricted to plain types - this will not work // directly for std::complex, Eigen::half, Eigen::bfloat16. For these, // you will need to apply to the underlying POD type. - #if EIGEN_ARCH_PPC + #if EIGEN_ARCH_PPC && EIGEN_COMP_GNUC_STRICT + // This seems to be broken on clang. Packet4f is loaded into a single + // register rather than a vector, zeroing out some entries. Integer + // types also generate a compile error. // General, Altivec, VSX. #define EIGEN_OPTIMIZATION_BARRIER(X) __asm__ ("" : "+r,v,wa" (X)); #elif EIGEN_ARCH_ARM_OR_ARM64 -- cgit v1.2.3