aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/AltiVec/Complex.h
diff options
context:
space:
mode:
authorGravatar Konstantinos Margaritis <markos@freevec.org>2016-07-10 07:05:10 -0300
committerGravatar Konstantinos Margaritis <markos@freevec.org>2016-07-10 07:05:10 -0300
commit9f7caa7e7dcd195922133e129ce8ef296ff48d13 (patch)
treee1d4654d63533a0feb15e465cb478f3641b17cf5 /Eigen/src/Core/arch/AltiVec/Complex.h
parentbe107e387b9b161d9a7f7875f0b8aaee7d407287 (diff)
minor fixes for big endian altivec/vsx
Diffstat (limited to 'Eigen/src/Core/arch/AltiVec/Complex.h')
-rw-r--r--Eigen/src/Core/arch/AltiVec/Complex.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/Eigen/src/Core/arch/AltiVec/Complex.h b/Eigen/src/Core/arch/AltiVec/Complex.h
index ca8eee3ca..45213f791 100644
--- a/Eigen/src/Core/arch/AltiVec/Complex.h
+++ b/Eigen/src/Core/arch/AltiVec/Complex.h
@@ -53,8 +53,10 @@ template<> struct packet_traits<std::complex<float> > : default_packet_traits
HasAbs2 = 0,
HasMin = 0,
HasMax = 0,
- HasSetLinear = 0,
- HasBlend = 1
+#ifdef __VSX__
+ HasBlend = 1,
+#endif
+ HasSetLinear = 0
};
};
@@ -260,11 +262,13 @@ EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet2cf,2>& kernel)
kernel.packet[0].v = tmp;
}
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket, const Packet2cf& elsePacket) {
Packet2cf result;
result.v = reinterpret_cast<Packet4f>(pblend<Packet2d>(ifPacket, reinterpret_cast<Packet2d>(thenPacket.v), reinterpret_cast<Packet2d>(elsePacket.v)));
return result;
}
+#endif
//---------- double ----------
#ifdef __VSX__