aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/packetmath.cpp
diff options
context:
space:
mode:
authorGravatar Rasmus Munk Larsen <rmlarsen@google.com>2020-03-27 17:05:39 +0000
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2020-03-27 17:05:39 +0000
commit4fd5d1477b221fc7daf2b7f1c7e4ee4f04ceaced (patch)
tree09bb777aaf76e667272dfe7594fd852904ae5b7f /test/packetmath.cpp
parent393dbd8ee9454f2d43a4cf654eb4fe1988e68cc8 (diff)
Fix packetmath test build for AVX.
Diffstat (limited to 'test/packetmath.cpp')
-rw-r--r--test/packetmath.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/packetmath.cpp b/test/packetmath.cpp
index 96aeb8e29..5d38ce6b4 100644
--- a/test/packetmath.cpp
+++ b/test/packetmath.cpp
@@ -50,17 +50,19 @@ struct test_cast_helper<FromScalar, FromPacket, ToScalar, ToPacket, true> {
template<typename FromPacket, typename ToScalar>
void test_cast() {
+ typedef typename internal::unpacket_traits<FromPacket>::type FromScalar;
+ typedef typename internal::packet_traits<FromScalar> FromPacketTraits;
typedef typename internal::packet_traits<ToScalar>::type Full;
typedef typename internal::unpacket_traits<Full>::half Half;
typedef typename internal::unpacket_traits<typename internal::unpacket_traits<Full>::half>::half Quarter;
static const int PacketSize = internal::unpacket_traits<FromPacket>::size;
static const bool CanCast =
- PacketSize == internal::unpacket_traits<Full>::size ||
+ FromPacketTraits::HasCast &&
+ (PacketSize == internal::unpacket_traits<Full>::size ||
PacketSize == internal::unpacket_traits<Half>::size ||
- PacketSize == internal::unpacket_traits<Quarter>::size;
+ PacketSize == internal::unpacket_traits<Quarter>::size);
- typedef typename internal::unpacket_traits<FromPacket>::type FromScalar;
typedef typename internal::conditional<internal::unpacket_traits<Quarter>::size == PacketSize, Quarter,
typename internal::conditional<internal::unpacket_traits<Half>::size == PacketSize, Half, Full>::type>::type
ToPacket;