mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-06 14:14:46 +08:00
BF16 for scalar_cmp_with_cast_op
This commit is contained in:
parent
8731452b97
commit
116c5235ac
@ -58,6 +58,9 @@ struct default_packet_traits
|
|||||||
HasConj = 1,
|
HasConj = 1,
|
||||||
HasSetLinear = 1,
|
HasSetLinear = 1,
|
||||||
HasBlend = 0,
|
HasBlend = 0,
|
||||||
|
// This flag is used to indicate whether packet comparison is supported.
|
||||||
|
// pcmp_eq, pcmp_lt and pcmp_le should be defined for it to be true.
|
||||||
|
HasCmp = 0,
|
||||||
|
|
||||||
HasDiv = 0,
|
HasDiv = 0,
|
||||||
HasSqrt = 0,
|
HasSqrt = 0,
|
||||||
|
@ -63,6 +63,7 @@ template<> struct packet_traits<float> : default_packet_traits
|
|||||||
size = 8,
|
size = 8,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasSin = EIGEN_FAST_MATH,
|
HasSin = EIGEN_FAST_MATH,
|
||||||
HasCos = EIGEN_FAST_MATH,
|
HasCos = EIGEN_FAST_MATH,
|
||||||
@ -93,6 +94,7 @@ template<> struct packet_traits<double> : default_packet_traits
|
|||||||
size=4,
|
size=4,
|
||||||
HasHalfPacket = 1,
|
HasHalfPacket = 1,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasExp = 1,
|
HasExp = 1,
|
||||||
HasSqrt = 1,
|
HasSqrt = 1,
|
||||||
|
@ -103,6 +103,7 @@ template<> struct packet_traits<float> : default_packet_traits
|
|||||||
HasTanh = EIGEN_FAST_MATH,
|
HasTanh = EIGEN_FAST_MATH,
|
||||||
HasErf = EIGEN_FAST_MATH,
|
HasErf = EIGEN_FAST_MATH,
|
||||||
#endif
|
#endif
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1
|
HasDiv = 1
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -119,6 +120,7 @@ template<> struct packet_traits<double> : default_packet_traits
|
|||||||
HasSqrt = EIGEN_FAST_MATH,
|
HasSqrt = EIGEN_FAST_MATH,
|
||||||
HasRsqrt = EIGEN_FAST_MATH,
|
HasRsqrt = EIGEN_FAST_MATH,
|
||||||
#endif
|
#endif
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1
|
HasDiv = 1
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1656,6 +1658,7 @@ struct packet_traits<bfloat16> : default_packet_traits {
|
|||||||
HasTanh = EIGEN_FAST_MATH,
|
HasTanh = EIGEN_FAST_MATH,
|
||||||
HasErf = EIGEN_FAST_MATH,
|
HasErf = EIGEN_FAST_MATH,
|
||||||
#endif
|
#endif
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1
|
HasDiv = 1
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -94,6 +94,7 @@ struct packet_traits<float> : default_packet_traits {
|
|||||||
size = 4,
|
size = 4,
|
||||||
HasHalfPacket = 0,
|
HasHalfPacket = 0,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasSin = EIGEN_FAST_MATH,
|
HasSin = EIGEN_FAST_MATH,
|
||||||
HasCos = EIGEN_FAST_MATH,
|
HasCos = EIGEN_FAST_MATH,
|
||||||
@ -128,6 +129,7 @@ struct packet_traits<double> : default_packet_traits {
|
|||||||
size=2,
|
size=2,
|
||||||
HasHalfPacket = 0,
|
HasHalfPacket = 0,
|
||||||
|
|
||||||
|
HasCmp = 1,
|
||||||
HasDiv = 1,
|
HasDiv = 1,
|
||||||
HasExp = 1,
|
HasExp = 1,
|
||||||
HasSqrt = 1,
|
HasSqrt = 1,
|
||||||
|
@ -260,7 +260,7 @@ template<typename LhsScalar, typename RhsScalar, ComparisonName cmp>
|
|||||||
struct functor_traits<scalar_cmp_with_cast_op<LhsScalar,RhsScalar, cmp> > {
|
struct functor_traits<scalar_cmp_with_cast_op<LhsScalar,RhsScalar, cmp> > {
|
||||||
enum {
|
enum {
|
||||||
Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
|
Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
|
||||||
PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && internal::is_same<LhsScalar, float>::value
|
PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasCmp
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user