mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-28 06:44:10 +08:00
Add support for CastXML on ARM aarch64
CastXML simulates the preprocessors of other compilers, but actually parses the translation unit with an internal Clang compiler. Use the same `vld1q_u64` workaround that we do for Clang. Fixes: #1979
This commit is contained in:
parent
6f0f6f792e
commit
880fa43b2b
@ -18,7 +18,7 @@ namespace internal {
|
||||
inline uint32x4_t p4ui_CONJ_XOR()
|
||||
{
|
||||
// See bug 1325, clang fails to call vld1q_u64.
|
||||
#if EIGEN_COMP_CLANG
|
||||
#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML
|
||||
uint32x4_t ret = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
|
||||
return ret;
|
||||
#else
|
||||
@ -434,7 +434,7 @@ EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet2cf, 2>& kernel)
|
||||
#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
|
||||
|
||||
// See bug 1325, clang fails to call vld1q_u64.
|
||||
#if EIGEN_COMP_CLANG
|
||||
#if EIGEN_COMP_CLANG || EIGEN_COMP_CASTXML
|
||||
static uint64x2_t p2ul_CONJ_XOR = {0x0, 0x8000000000000000};
|
||||
#else
|
||||
const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 };
|
||||
|
@ -72,6 +72,12 @@
|
||||
#define EIGEN_COMP_CLANG 0
|
||||
#endif
|
||||
|
||||
/// \internal EIGEN_COMP_CASTXML set to 1 if being preprocessed by CastXML
|
||||
#if defined(__castxml__)
|
||||
#define EIGEN_COMP_CASTXML 1
|
||||
#else
|
||||
#define EIGEN_COMP_CASTXML 0
|
||||
#endif
|
||||
|
||||
/// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm
|
||||
#if defined(__llvm__)
|
||||
|
Loading…
x
Reference in New Issue
Block a user