diff options
author | Antonio Sanchez <cantonios@google.com> | 2021-03-10 16:04:02 -0800 |
---|---|---|
committer | Antonio Sanchez <cantonios@google.com> | 2021-03-10 16:05:01 -0800 |
commit | d098c4d64c6e2e595b5bb26a6fb111fe979c3364 (patch) | |
tree | 4ddbfa8a3d9dec33f7075a386fdc8213fcde1958 /Eigen/src/Core/util | |
parent | 543e34ab9dee6004337b7ad912417eb91bf4a0b9 (diff) |
Disable EIGEN_OPTIMIZATION_BARRIER for PPC clang.
Doesn't seem to correctly select the register type, and most types
lead to compiler crashes.
Diffstat (limited to 'Eigen/src/Core/util')
-rw-r--r-- | Eigen/src/Core/util/Macros.h | 5 |
1 files changed, 4 insertions, 1 deletions
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<T>, 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 |