Enable NEON pcmp, plset, and complex psqrt

This commit is contained in:
Arthur 2022-12-22 05:38:34 +00:00 committed by Antonio Sánchez
parent dbf7ae6f9b
commit 311cc0f9cc
3 changed files with 20 additions and 13 deletions

View File

@ -66,6 +66,7 @@ template<> struct packet_traits<std::complex<float> > : default_packet_traits
HasMul = 1,
HasDiv = 1,
HasNegate = 1,
HasSqrt = 1,
HasAbs = 0,
HasAbs2 = 0,
HasMin = 0,
@ -406,6 +407,7 @@ template<> struct packet_traits<std::complex<double> > : default_packet_traits
HasMul = 1,
HasDiv = 1,
HasNegate = 1,
HasSqrt = 1,
HasAbs = 0,
HasAbs2 = 0,
HasMin = 0,

View File

@ -216,7 +216,7 @@ struct gebp_traits <half,half,false,false,Architecture::NEON>
EIGEN_STRONG_INLINE void updateRhs(const RhsScalar*, RhsPacketx4&) const
{}
EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest) const
EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar*, RhsPacket&) const
{
// If LHS is a Packet8h, we cannot correctly mimic a ploadquad of the RHS
// using a single scalar value.

View File

@ -176,6 +176,7 @@ struct packet_traits<float> : default_packet_traits
size = 4,
HasHalfPacket = 1,
HasCmp = 1,
HasAdd = 1,
HasSub = 1,
HasShift = 1,
@ -188,7 +189,7 @@ struct packet_traits<float> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasDiv = 1,
@ -237,7 +238,7 @@ struct packet_traits<int8_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0
};
};
@ -267,7 +268,7 @@ struct packet_traits<uint8_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasSqrt = 1
@ -286,6 +287,7 @@ struct packet_traits<int16_t> : default_packet_traits
size = 8,
HasHalfPacket = 1,
HasCmp = 1,
HasAdd = 1,
HasSub = 1,
HasShift = 1,
@ -298,7 +300,7 @@ struct packet_traits<int16_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0
};
};
@ -315,6 +317,7 @@ struct packet_traits<uint16_t> : default_packet_traits
size = 8,
HasHalfPacket = 1,
HasCmp = 1,
HasAdd = 1,
HasSub = 1,
HasShift = 1,
@ -327,7 +330,7 @@ struct packet_traits<uint16_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasSqrt = 1
};
@ -345,6 +348,7 @@ struct packet_traits<int32_t> : default_packet_traits
size = 4,
HasHalfPacket = 1,
HasCmp = 1,
HasAdd = 1,
HasSub = 1,
HasShift = 1,
@ -357,7 +361,7 @@ struct packet_traits<int32_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0
};
};
@ -374,6 +378,7 @@ struct packet_traits<uint32_t> : default_packet_traits
size = 4,
HasHalfPacket = 1,
HasCmp = 1,
HasAdd = 1,
HasSub = 1,
HasShift = 1,
@ -386,7 +391,7 @@ struct packet_traits<uint32_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasSqrt = 1
@ -418,7 +423,7 @@ struct packet_traits<int64_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0
};
};
@ -448,7 +453,7 @@ struct packet_traits<uint64_t> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0
};
};
@ -3406,7 +3411,7 @@ template<> struct packet_traits<bfloat16> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasDiv = 1,
HasFloor = 1,
@ -3763,7 +3768,7 @@ template<> struct packet_traits<double> : default_packet_traits
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasDiv = 1,
@ -4007,7 +4012,7 @@ struct packet_traits<Eigen::half> : default_packet_traits {
HasMin = 1,
HasMax = 1,
HasConj = 1,
HasSetLinear = 0,
HasSetLinear = 1,
HasBlend = 0,
HasInsert = 1,
HasReduxp = 1,