|
| HWY_BEFORE_NAMESPACE () |
|
template<typename T , typename FromT > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::BitCast (Full256< T > d, Vec256< FromT > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Zero (Full256< T >) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Zero (Full256< float >) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::Set (Full256< uint8_t >, const uint8_t t) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::Set (Full256< uint16_t >, const uint16_t t) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::Set (Full256< uint32_t >, const uint32_t t) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::Set (Full256< uint64_t >, const uint64_t t) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::Set (Full256< int8_t >, const int8_t t) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Set (Full256< int16_t >, const int16_t t) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Set (Full256< int32_t >, const int32_t t) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::Set (Full256< int64_t >, const int64_t t) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Set (Full256< float >, const float t) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Undefined (Full256< T > d) |
|
template<typename T , typename T2 > |
Vec256< T > | hwy::HWY_NAMESPACE::Iota (const Full256< T > d, const T2 first) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::operator+ (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::operator+ (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::operator- (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::operator- (Vec256< uint16_t > a, Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::operator- (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::operator- (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::operator- (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::operator- (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::operator- (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::SumsOf8 (const Vec256< uint8_t > v) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::SaturatedAdd (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::SaturatedAdd (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::SaturatedAdd (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::SaturatedAdd (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::SaturatedSub (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::SaturatedSub (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::SaturatedSub (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::SaturatedSub (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::AverageRound (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::AverageRound (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::Abs (const Vec256< int8_t > v) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Abs (const Vec256< int16_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Abs (const Vec256< int32_t > v) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::Abs (const Vec256< int64_t > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Abs (const Vec256< float > v) |
|
template<int kBits> |
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::ShiftLeft (const Vec256< uint16_t > v) |
|
template<int kBits> |
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< uint16_t > v) |
|
template<int kBits> |
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::ShiftLeft (const Vec256< uint32_t > v) |
|
template<int kBits> |
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< uint32_t > v) |
|
template<int kBits> |
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::ShiftLeft (const Vec256< int16_t > v) |
|
template<int kBits> |
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< int16_t > v) |
|
template<int kBits> |
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::ShiftLeft (const Vec256< int32_t > v) |
|
template<int kBits> |
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< int32_t > v) |
|
template<int kBits, typename T , HWY_IF_LANE_SIZE(T, 1) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeft (const Vec256< T > v) |
|
template<int kBits> |
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< uint8_t > v) |
|
template<int kBits> |
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::ShiftRight (const Vec256< int8_t > v) |
|
template<int kBits, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::RotateRight (const Vec256< T > v) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec256< uint16_t > v, const int bits) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::ShiftRightSame (const Vec256< uint16_t > v, const int bits) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec256< uint32_t > v, const int bits) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::ShiftRightSame (const Vec256< uint32_t > v, const int bits) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec256< int16_t > v, const int bits) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::ShiftRightSame (const Vec256< int16_t > v, const int bits) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec256< int32_t > v, const int bits) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::ShiftRightSame (const Vec256< int32_t > v, const int bits) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 1) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec256< T > v, const int bits) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::ShiftRightSame (Vec256< uint8_t > v, const int bits) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::ShiftRightSame (Vec256< int8_t > v, const int bits) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::Min (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::Min (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::Min (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::Min (const Vec256< uint64_t > a, const Vec256< uint64_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::Min (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Min (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Min (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::Min (const Vec256< int64_t > a, const Vec256< int64_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Min (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::Max (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::Max (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::Max (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::Max (const Vec256< uint64_t > a, const Vec256< uint64_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::Max (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Max (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Max (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::Max (const Vec256< int64_t > a, const Vec256< int64_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Max (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::operator* (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::operator* (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::operator* (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::operator* (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::MulHigh (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::MulHigh (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::MulFixedPoint15 (Vec256< int16_t >, Vec256< int16_t >) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::MulEven (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::MulEven (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
template<typename T , HWY_IF_FLOAT(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Neg (const Vec256< T > v) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::Neg (const Vec256< int8_t > v) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Neg (const Vec256< int16_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Neg (const Vec256< int32_t > v) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::Neg (const Vec256< int64_t > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::operator* (Vec256< float > a, Vec256< float > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::operator/ (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::AbsDiff (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::MulAdd (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > add) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::NegMulAdd (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > add) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::MulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::NegMulSub (const Vec256< float > mul, const Vec256< float > x, const Vec256< float > sub) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Sqrt (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Round (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Trunc (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Ceil (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Floor (const Vec256< float > v) |
|
template<typename TFrom , typename TTo > |
HWY_API Mask256< TTo > | hwy::HWY_NAMESPACE::RebindMask (Full256< TTo >, Mask256< TFrom > m) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::TestBit (Vec256< T > v, Vec256< T > bit) |
|
HWY_API Mask256< uint8_t > | hwy::HWY_NAMESPACE::operator== (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Mask256< uint16_t > | hwy::HWY_NAMESPACE::operator== (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Mask256< uint32_t > | hwy::HWY_NAMESPACE::operator== (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Mask256< int8_t > | hwy::HWY_NAMESPACE::operator== (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Mask256< int16_t > | hwy::HWY_NAMESPACE::operator== (Vec256< int16_t > a, Vec256< int16_t > b) |
|
HWY_API Mask256< int32_t > | hwy::HWY_NAMESPACE::operator== (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Mask256< float > | hwy::HWY_NAMESPACE::operator== (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Mask256< uint8_t > | hwy::HWY_NAMESPACE::operator!= (const Vec256< uint8_t > a, const Vec256< uint8_t > b) |
|
HWY_API Mask256< uint16_t > | hwy::HWY_NAMESPACE::operator!= (const Vec256< uint16_t > a, const Vec256< uint16_t > b) |
|
HWY_API Mask256< uint32_t > | hwy::HWY_NAMESPACE::operator!= (const Vec256< uint32_t > a, const Vec256< uint32_t > b) |
|
HWY_API Mask256< int8_t > | hwy::HWY_NAMESPACE::operator!= (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Mask256< int16_t > | hwy::HWY_NAMESPACE::operator!= (Vec256< int16_t > a, Vec256< int16_t > b) |
|
HWY_API Mask256< int32_t > | hwy::HWY_NAMESPACE::operator!= (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Mask256< float > | hwy::HWY_NAMESPACE::operator!= (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Mask256< int8_t > | hwy::HWY_NAMESPACE::operator> (const Vec256< int8_t > a, const Vec256< int8_t > b) |
|
HWY_API Mask256< int16_t > | hwy::HWY_NAMESPACE::operator> (const Vec256< int16_t > a, const Vec256< int16_t > b) |
|
HWY_API Mask256< int32_t > | hwy::HWY_NAMESPACE::operator> (const Vec256< int32_t > a, const Vec256< int32_t > b) |
|
HWY_API Mask256< int64_t > | hwy::HWY_NAMESPACE::operator> (const Vec256< int64_t > a, const Vec256< int64_t > b) |
|
template<typename T , HWY_IF_UNSIGNED(T) > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator> (Vec256< T > a, Vec256< T > b) |
|
HWY_API Mask256< float > | hwy::HWY_NAMESPACE::operator> (const Vec256< float > a, const Vec256< float > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator< (const Vec256< T > a, const Vec256< T > b) |
|
HWY_API Mask256< float > | hwy::HWY_NAMESPACE::operator<= (const Vec256< float > a, const Vec256< float > b) |
|
HWY_API Mask256< float > | hwy::HWY_NAMESPACE::operator>= (const Vec256< float > a, const Vec256< float > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::FirstN (const Full256< T > d, size_t num) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Not (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::And (Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::AndNot (Vec256< T > not_mask, Vec256< T > mask) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Or (Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Xor (Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::OrAnd (Vec256< T > o, Vec256< T > a1, Vec256< T > a2) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::IfVecThenElse (Vec256< T > mask, Vec256< T > yes, Vec256< T > no) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator& (const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator| (const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator^ (const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::CopySign (const Vec256< T > magn, const Vec256< T > sign) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::CopySignToAbs (const Vec256< T > abs, const Vec256< T > sign) |
|
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 1) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec256< T > v) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec256< int8_t > v) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::MaskFromVec (const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::VecFromMask (Full256< T >, Mask256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::IfThenElse (Mask256< T > mask, Vec256< T > yes, Vec256< T > no) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::IfThenElseZero (Mask256< T > mask, Vec256< T > yes) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::IfThenZeroElse (Mask256< T > mask, Vec256< T > no) |
|
template<typename T > |
HWY_API | hwy::HWY_NAMESPACE::Vec256< T IfNegativeThenElse(Vec256< T > v, Vec256< T > yes, Vec256< T > no) { HWY_ASSERT(0);}template< typename T, HWY_IF_FLOAT(T)>HWY_API Vec256< T > ZeroIfNegative(Vec256< T > v) { const Full256< T > d;const auto zero=Zero(d);return IfThenElse(Mask256< T >{(v > zero).raw}, v, zero);}template< typename T >HWY_API Mask256< T > Not(const Mask256< T > m) { return MaskFromVec(Not(VecFromMask(Full256< T >), m)));}template< typename T >HWY_API Mask256< T > And(const Mask256< T > a, Mask256< T > b) { const Full256< T > d;return MaskFromVec(And(VecFromMask(d, a), VecFromMask(d, b)));}template< typename T >HWY_API Mask256< T > AndNot(const Mask256< T > a, Mask256< T > b) { const Full256< T > d;return MaskFromVec(AndNot(VecFromMask(d, a), VecFromMask(d, b)));}template< typename T >HWY_API Mask256< T > Or(const Mask256< T > a, Mask256< T > b) { const Full256< T > d;return MaskFromVec(Or(VecFromMask(d, a), VecFromMask(d, b)));}template< typename T >HWY_API Mask256< T > Xor(const Mask256< T > a, Mask256< T > b) { const Full256< T > d;return MaskFromVec(Xor(VecFromMask(d, a), VecFromMask(d, b)));}template< typename T, HWY_IF_LANE_SIZE(T, 2)>HWY_API Vec256< T > operator<<(Vec256< T > v, const Vec256< T > bits) { const Full256< T > d;Mask256< T > mask;auto test=BitCast(RebindToSigned< decltype(d)>), bits);test=ShiftLeft< 12 >test);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 8 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 4 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 2 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));return IfThenElse(mask, ShiftLeft< 1 >v), v);}template< typename T, HWY_IF_LANE_SIZE(T, 4)>HWY_API Vec256< T > operator<<(Vec256< T > v, const Vec256< T > bits) { const Full256< T > d;Mask256< T > mask;auto test=BitCast(RebindToSigned< decltype(d)>), bits);test=ShiftLeft< 27 >test);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 16 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 8 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 4 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));test=ShiftLeft< 1 >test);v=IfThenElse(mask, ShiftLeft< 2 >v), v);mask=RebindMask(d, MaskFromVec(BroadcastSignBit(test)));return IfThenElse(mask, ShiftLeft< 1 >v), v);}template< typename T, HWY_IF_LANE_SIZE(T, 2)>HWY_API Vec256< T > operator> (Vec256< T > v, const Vec256< T > bits) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator>> (Vec256< T > v, const Vec256< T > bits) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Load (Full256< T >, const T *HWY_RESTRICT aligned) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MaskedLoad (Mask256< T > m, Full256< T > d, const T *HWY_RESTRICT aligned) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::LoadU (Full256< T > d, const T *HWY_RESTRICT p) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::LoadDup128 (Full256< T > d, const T *HWY_RESTRICT p) |
|
template<typename T > |
HWY_API void | hwy::HWY_NAMESPACE::Store (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned) |
|
template<typename T > |
HWY_API void | hwy::HWY_NAMESPACE::StoreU (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT p) |
|
template<typename T > |
HWY_API void | hwy::HWY_NAMESPACE::BlendedStore (Vec256< T > v, Mask256< T > m, Full256< T > d, T *HWY_RESTRICT p) |
|
template<typename T > |
HWY_API void | hwy::HWY_NAMESPACE::Stream (Vec256< T > v, Full256< T >, T *HWY_RESTRICT aligned) |
|
template<typename T , typename Offset > |
HWY_API void | hwy::HWY_NAMESPACE::ScatterOffset (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT base, const Vec256< Offset > offset) |
|
template<typename T , typename Index > |
HWY_API void | hwy::HWY_NAMESPACE::ScatterIndex (Vec256< T > v, Full256< T > d, T *HWY_RESTRICT base, const Vec256< Index > index) |
|
template<typename T , typename Offset > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::GatherOffset (const Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Offset > offset) |
|
template<typename T , typename Index > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::GatherIndex (const Full256< T > d, const T *HWY_RESTRICT base, const Vec256< Index > index) |
|
HWY_API uint8_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< uint8_t > v) |
|
HWY_API int8_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< int8_t > v) |
|
HWY_API uint16_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< uint16_t > v) |
|
HWY_API int16_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< int16_t > v) |
|
HWY_API uint32_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< uint32_t > v) |
|
HWY_API int32_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< int32_t > v) |
|
HWY_API uint64_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< uint64_t > v) |
|
HWY_API int64_t | hwy::HWY_NAMESPACE::GetLane (const Vec256< int64_t > v) |
|
HWY_API float | hwy::HWY_NAMESPACE::GetLane (const Vec256< float > v) |
|
template<typename T > |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::LowerHalf (Full128< T >, Vec256< T > v) |
|
template<typename T > |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::LowerHalf (Vec256< T > v) |
|
template<int kBytes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftBytes (Full256< T >, Vec256< T > v) |
|
template<int kBytes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftBytes (Vec256< T > v) |
|
template<int kLanes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftLanes (Full256< T > d, const Vec256< T > v) |
|
template<int kLanes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftLanes (const Vec256< T > v) |
|
template<int kBytes, typename T > |
HWY_API __i8x16 | hwy::HWY_NAMESPACE::detail::ShrBytes (const Vec256< T > v) |
|
template<int kBytes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRightBytes (Full256< T >, Vec256< T > v) |
|
template<int kLanes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRightLanes (Full256< T > d, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec128< T, 8/sizeof(T)> | hwy::HWY_NAMESPACE::UpperHalf (Full128< T >, const Vec256< T > v) |
|
HWY_API Vec128< float, 2 > | hwy::HWY_NAMESPACE::UpperHalf (Full128< float >, const Vec128< float > v) |
|
template<int kBytes, typename T , class V = Vec256<T>> |
HWY_API V | hwy::HWY_NAMESPACE::CombineShiftRightBytes (Full256< T >, V hi, V lo) |
|
template<int kLane> |
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< uint16_t > v) |
|
template<int kLane> |
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< uint32_t > v) |
|
template<int kLane> |
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< int16_t > v) |
|
template<int kLane> |
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< int32_t > v) |
|
template<int kLane> |
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< float > v) |
|
template<typename T , typename TI > |
HWY_API Vec256< TI > | hwy::HWY_NAMESPACE::TableLookupBytes (const Vec256< T > bytes, const Vec256< TI > from) |
|
template<typename T , typename TI > |
HWY_API Vec256< TI > | hwy::HWY_NAMESPACE::TableLookupBytesOr0 (const Vec256< T > bytes, const Vec256< TI > from) |
|
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::Shuffle2301 (const Vec128< uint32_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::Shuffle2301 (const Vec128< int32_t > v) |
|
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::Shuffle2301 (const Vec128< float > v) |
|
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< uint32_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< int32_t > v) |
|
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< float > v) |
|
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< uint32_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< int32_t > v) |
|
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< float > v) |
|
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< uint32_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< int32_t > v) |
|
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< float > v) |
|
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< uint32_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< int32_t > v) |
|
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< float > v) |
|
template<typename T , typename TI > |
HWY_API Indices256< T > | hwy::HWY_NAMESPACE::IndicesFromVec (Full256< T > d, Vec256< TI > vec) |
|
template<typename T , typename TI > |
HWY_API Indices256< T > | hwy::HWY_NAMESPACE::SetTableIndices (Full256< T > d, const TI *idx) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::TableLookupLanes (Vec256< T > v, Indices256< T > idx) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 8) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse (Full256< T >, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse2 (Full256< T > d, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse4 (Full256< T > d, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse8 (Full256< T > d, const Vec256< T > v) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< uint8_t > a, Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< uint16_t > a, Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< uint32_t > a, Vec256< uint32_t > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< uint64_t > a, Vec256< uint64_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< int8_t > a, Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< int16_t > a, Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< int32_t > a, Vec256< int32_t > b) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< int64_t > a, Vec256< int64_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< float > a, Vec256< float > b) |
|
template<typename T , class V = Vec256<T>> |
HWY_API V | hwy::HWY_NAMESPACE::InterleaveLower (Full256< T >, V a, V b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< uint8_t > a, Vec256< uint8_t > b) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< uint16_t > a, Vec256< uint16_t > b) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< uint32_t > a, Vec256< uint32_t > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< uint64_t > a, Vec256< uint64_t > b) |
|
HWY_API Vec256< int8_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< int8_t > a, Vec256< int8_t > b) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< int16_t > a, Vec256< int16_t > b) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< int32_t > a, Vec256< int32_t > b) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< int64_t > a, Vec256< int64_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec256< float > a, Vec256< float > b) |
|
template<typename T , class V = Vec256<T>> |
HWY_API V | hwy::HWY_NAMESPACE::InterleaveUpper (Full256< T >, V a, V b) |
|
template<typename T , class DW = RepartitionToWide<Full256<T>>> |
HWY_API VFromD< DW > | hwy::HWY_NAMESPACE::ZipLower (Vec256< T > a, Vec256< T > b) |
|
template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>> |
HWY_API VFromD< DW > | hwy::HWY_NAMESPACE::ZipLower (DW dw, Vec256< T > a, Vec256< T > b) |
|
template<typename T , class D = Full256<T>, class DW = RepartitionToWide<D>> |
HWY_API VFromD< DW > | hwy::HWY_NAMESPACE::ZipUpper (DW dw, Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Combine (Full256< T > d, Vec128< T > hi_half, Vec128< T > lo_half) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ZeroExtendVector (Full256< T > d, Vec128< T > lo) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatLowerLower (Full256< T >, const Vec256< T > hi, const Vec256< T > lo) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatUpperUpper (Full256< T >, const Vec256< T > hi, const Vec256< T > lo) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatLowerUpper (Full256< T > d, const Vec256< T > hi, const Vec256< T > lo) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatUpperLower (Full256< T > d, const Vec256< T > hi, const Vec256< T > lo) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatOdd (Full256< T >, Vec256< T > hi, Vec256< T > lo) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatEven (Full256< T >, Vec256< T > hi, Vec256< T > lo) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::DupEven (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::DupOdd (Vec256< T > v) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::OddEven (hwy::SizeTag< 1 >, const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::OddEven (hwy::SizeTag< 2 >, const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::OddEven (hwy::SizeTag< 4 >, const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::OddEven (hwy::SizeTag< 8 >, const Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::OddEven (const Vec256< T > a, const Vec256< T > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::OddEven (const Vec256< float > a, const Vec256< float > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::OddEvenBlocks (Vec256< T >, Vec256< T > even) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ReverseBlocks (Full256< T >, const Vec256< T > v) |
|
HWY_API Vec256< uint16_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< uint16_t >, const Vec128< uint8_t > v) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< uint32_t >, const Vec128< uint8_t > v) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int16_t >, const Vec128< uint8_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int32_t >, const Vec128< uint8_t > v) |
|
HWY_API Vec256< uint32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< uint32_t >, const Vec128< uint16_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int32_t >, const Vec128< uint16_t > v) |
|
HWY_API Vec256< int16_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int16_t >, const Vec128< int8_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int32_t >, const Vec128< int8_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::PromoteTo (Full256< int32_t >, const Vec128< int16_t > v) |
|
HWY_API Vec256< double > | hwy::HWY_NAMESPACE::PromoteTo (Full256< double >, const Vec128< int32_t > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::PromoteTo (Full256< float >, const Vec128< float16_t > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::PromoteTo (Full256< float > df32, const Vec128< bfloat16_t > v) |
|
HWY_API Vec128< uint16_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< uint16_t >, const Vec256< int32_t > v) |
|
HWY_API Vec128< int16_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< int16_t >, const Vec256< int32_t > v) |
|
HWY_API Vec128< uint8_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< uint8_t >, const Vec256< int32_t > v) |
|
HWY_API Vec128< uint8_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< uint8_t >, const Vec256< int16_t > v) |
|
HWY_API Vec128< int8_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< int8_t >, const Vec256< int32_t > v) |
|
HWY_API Vec128< int8_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< int8_t >, const Vec256< int16_t > v) |
|
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< int32_t >, const Vec256< double > v) |
|
HWY_API Vec128< float16_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< float16_t >, const Vec256< float > v) |
|
HWY_API Vec128< bfloat16_t > | hwy::HWY_NAMESPACE::DemoteTo (Full128< bfloat16_t > dbf16, const Vec256< float > v) |
|
HWY_API Vec128< bfloat16_t > | hwy::HWY_NAMESPACE::ReorderDemote2To (Full128< bfloat16_t > dbf16, Vec256< float > a, Vec256< float > b) |
|
HWY_API Vec256< uint8_t > | hwy::HWY_NAMESPACE::U8FromU32 (const Vec256< uint32_t > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ConvertTo (Full256< float >, const Vec256< int32_t > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::ConvertTo (Full256< int32_t >, const Vec256< float > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::NearestInt (const Vec256< float > v) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 1) > |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::detail::LoadMaskBits (Full256< T > d, uint64_t bits) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::LoadMaskBits (Full256< T > d, const uint8_t *HWY_RESTRICT bits) |
|
template<typename T > |
HWY_INLINE uint64_t | hwy::HWY_NAMESPACE::detail::BitsFromMask (hwy::SizeTag< 1 >, const Mask128< T > mask) |
|
template<typename T > |
HWY_INLINE uint64_t | hwy::HWY_NAMESPACE::detail::BitsFromMask (hwy::SizeTag< 2 >, const Mask256< T > mask) |
|
template<typename T > |
HWY_INLINE uint64_t | hwy::HWY_NAMESPACE::detail::BitsFromMask (hwy::SizeTag< 4 >, const Mask256< T > mask) |
|
template<size_t N> |
constexpr __i8x16 | hwy::HWY_NAMESPACE::detail::BytesAbove () |
|
template<typename T > |
HWY_INLINE uint64_t | hwy::HWY_NAMESPACE::detail::BitsFromMask (const Mask256< T > mask) |
|
template<typename T > |
HWY_INLINE size_t | hwy::HWY_NAMESPACE::detail::CountTrue (hwy::SizeTag< 1 >, const Mask128< T > mask) |
|
template<typename T > |
HWY_INLINE size_t | hwy::HWY_NAMESPACE::detail::CountTrue (hwy::SizeTag< 2 >, const Mask128< T > mask) |
|
template<typename T > |
HWY_INLINE size_t | hwy::HWY_NAMESPACE::detail::CountTrue (hwy::SizeTag< 4 >, const Mask128< T > mask) |
|
template<typename T > |
HWY_API size_t | hwy::HWY_NAMESPACE::StoreMaskBits (const Full256< T >, const Mask256< T > mask, uint8_t *bits) |
|
template<typename T > |
HWY_API size_t | hwy::HWY_NAMESPACE::CountTrue (const Full256< T >, const Mask128< T > m) |
|
template<typename T > |
HWY_API bool | hwy::HWY_NAMESPACE::AllFalse (const Full256< T > d, const Mask128< T > m) |
|
template<typename T > |
HWY_INLINE bool | hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 1 >, const Mask128< T > m) |
|
template<typename T > |
HWY_INLINE bool | hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 2 >, const Mask128< T > m) |
|
template<typename T > |
HWY_INLINE bool | hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 4 >, const Mask128< T > m) |
|
template<typename T > |
HWY_API bool | hwy::HWY_NAMESPACE::AllTrue (const Full256< T >, const Mask128< T > m) |
|
template<typename T > |
HWY_API intptr_t | hwy::HWY_NAMESPACE::FindFirstTrue (const Full256< T >, const Mask256< T > mask) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::Idx16x8FromBits (const uint64_t mask_bits) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::Idx32x4FromBits (const uint64_t mask_bits) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::Compress (hwy::SizeTag< 2 >, Vec256< T > v, const uint64_t mask_bits) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::Compress (hwy::SizeTag< 4 >, Vec256< T > v, const uint64_t mask_bits) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Compress (Vec256< T > v, const Mask256< T > mask) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::CompressBits (Vec256< T > v, const uint8_t *HWY_RESTRICT bits) |
|
template<typename T > |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressStore (Vec256< T > v, const Mask256< T > mask, Full256< T > d, T *HWY_RESTRICT unaligned) |
|
template<typename T > |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBlendedStore (Vec256< T > v, Mask256< T > m, Full256< T > d, T *HWY_RESTRICT unaligned) |
|
template<typename T > |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBitsStore (Vec256< T > v, const uint8_t *HWY_RESTRICT bits, Full256< T > d, T *HWY_RESTRICT unaligned) |
|
HWY_API void | hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec256< uint8_t > a, const Vec256< uint8_t > b, const Vec256< uint8_t > c, Full256< uint8_t > d, uint8_t *HWY_RESTRICT unaligned) |
|
HWY_API void | hwy::HWY_NAMESPACE::StoreInterleaved4 (const Vec256< uint8_t > v0, const Vec256< uint8_t > v1, const Vec256< uint8_t > v2, const Vec256< uint8_t > v3, Full256< uint8_t > d8, uint8_t *HWY_RESTRICT unaligned) |
|
HWY_INLINE Vec256< uint64_t > | hwy::HWY_NAMESPACE::MulEven (const Vec256< uint64_t > a, const Vec256< uint64_t > b) |
|
HWY_INLINE Vec256< uint64_t > | hwy::HWY_NAMESPACE::MulOdd (const Vec256< uint64_t > a, const Vec256< uint64_t > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Full256< float > df32, Vec256< bfloat16_t > a, Vec256< bfloat16_t > b, const Vec256< float > sum0, Vec256< float > &sum1) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 2) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 2 >, Vec256< T > v) |
|
template<typename T , HWY_IF_LANE_SIZE(T, 2) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 2 >, Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::SumOfLanes (Full256< T >, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MinOfLanes (Full256< T >, const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MaxOfLanes (Full256< T >, const Vec256< T > v) |
|
template<typename T > |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Lt128 (Full256< T > d, Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Min128 (Full256< T > d, Vec256< T > a, Vec256< T > b) |
|
template<typename T > |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Max128 (Full256< T > d, Vec256< T > a, Vec256< T > b) |
|
| HWY_AFTER_NAMESPACE () |
|