|
| HWY_BEFORE_NAMESPACE () |
|
template<class D , HWY_IF_V_SIZE_D(D, 32) > |
HWY_API Vec256< TFromD< D > > | hwy::HWY_NAMESPACE::Zero (D d) |
|
template<class D , typename TFrom > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::BitCast (D d, Vec256< TFrom > v) |
|
template<class D , class FromV , HWY_IF_V_SIZE_LE_V(FromV, 8) , HWY_IF_V_SIZE_LE_D(D, 8) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::ResizeBitCast (D d, FromV v) |
|
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename T2 > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Set (D d, const T2 t) |
|
template<class D , HWY_IF_UI8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3, TFromD< D > t4, TFromD< D > t5, TFromD< D > t6, TFromD< D > t7, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >) |
|
template<class D , HWY_IF_UI16_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >) |
|
template<class D , HWY_IF_UI32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D >, TFromD< D >) |
|
template<class D , HWY_IF_T_SIZE_D(D, 8) , HWY_IF_V_SIZE_D(D, 8) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D >) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator+ (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator- (Vec256< T > a, const Vec256< T > b) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::SumsOf8 (const Vec256< uint8_t > v) |
|
HWY_API Vec256< int64_t > | hwy::HWY_NAMESPACE::SumsOf8 (const Vec256< int8_t > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::SaturatedAdd (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::SaturatedSub (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::AverageRound (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Abs (Vec256< T > v) |
|
template<int kBits, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeft (Vec256< T > v) |
|
template<int kBits, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRight (Vec256< T > v) |
|
template<int kBits, typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::RotateRight (const Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftSame (Vec256< T > v, const int bits) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRightSame (Vec256< T > v, const int bits) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Min (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Max (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator* (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MulHigh (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MulFixedPoint15 (Vec256< T > a, const Vec256< T > b) |
|
template<class T , HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) > |
HWY_API Vec256< MakeWide< T > > | hwy::HWY_NAMESPACE::MulEven (Vec256< T > a, const Vec256< T > b) |
|
template<class T , HWY_IF_UI64(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MulEven (Vec256< T > a, const Vec256< T > b) |
|
template<class T , HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) > |
HWY_API Vec256< MakeWide< T > > | hwy::HWY_NAMESPACE::MulOdd (Vec256< T > a, const Vec256< T > b) |
|
template<class T , HWY_IF_UI64(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MulOdd (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Neg (Vec256< T > v) |
|
template<typename T , HWY_IF_FLOAT(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::AbsDiff (const Vec256< T > a, const Vec256< T > b) |
|
template<typename T , HWY_IF_FLOAT(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator/ (Vec256< T > a, const Vec256< T > b) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::MulAdd (Vec256< float > mul, Vec256< float > x, Vec256< float > add) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::NegMulAdd (Vec256< float > mul, Vec256< float > x, Vec256< float > add) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::MulSub (Vec256< float > mul, Vec256< float > x, Vec256< float > sub) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::NegMulSub (Vec256< float > mul, Vec256< float > x, Vec256< float > sub) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Sqrt (Vec256< T > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Round (Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Trunc (Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Ceil (Vec256< float > v) |
|
HWY_API Vec256< float > | hwy::HWY_NAMESPACE::Floor (Vec256< float > v) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::IsNaN (const Vec256< T > v) |
|
template<typename T , HWY_IF_FLOAT(T) > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::IsInf (const Vec256< T > v) |
|
template<typename T , HWY_IF_FLOAT(T) > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::IsFinite (const Vec256< T > v) |
|
template<class DTo , typename TFrom , typename TTo = TFromD<DTo>> |
HWY_API MFromD< DTo > | hwy::HWY_NAMESPACE::RebindMask (DTo, Mask256< TFrom > m) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::TestBit (Vec256< T > v, Vec256< T > bit) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator== (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator!= (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator< (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator> (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator<= (Vec256< T > a, const Vec256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::operator>= (Vec256< T > a, const Vec256< T > b) |
|
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) > |
HWY_API MFromD< D > | hwy::HWY_NAMESPACE::FirstN (D 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::Xor3 (Vec256< T > x1, Vec256< T > x2, Vec256< T > x3) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Or3 (Vec256< T > o1, Vec256< T > o2, Vec256< T > o3) |
|
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_API Mask256< T > | hwy::HWY_NAMESPACE::MaskFromVec (const Vec256< T > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::VecFromMask (D d, Mask256< T > m) |
|
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 Vec256< T > | hwy::HWY_NAMESPACE::IfNegativeThenElse (Vec256< T > v, Vec256< T > yes, Vec256< T > no) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::Not (const Mask256< T > m) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::And (const Mask256< T > a, Mask256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::AndNot (const Mask256< T > a, Mask256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::Or (const Mask256< T > a, Mask256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::Xor (const Mask256< T > a, Mask256< T > b) |
|
template<typename T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::ExclusiveNeither (const Mask256< T > a, Mask256< T > b) |
|
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator<< (Vec256< T > v, const Vec256< T > bits) |
|
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::operator>> (Vec256< T > v, const Vec256< T > bits) |
|
template<typename T , HWY_IF_NOT_T_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<class D , HWY_RVV_IF_EMULATED_D(D) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Load (D d, const TFromD< D > *HWY_RESTRICT p) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MaskedLoad (Mask256< T > m, D d, const T *HWY_RESTRICT aligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::MaskedLoadOr (Vec256< T > v, Mask256< T > m, D d, const T *HWY_RESTRICT aligned) |
|
template<class D , HWY_NEON_IF_EMULATED_D(D) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::LoadU (D d, const TFromD< D > *HWY_RESTRICT p) |
|
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::LoadDup128 (D d, const TFromD< D > *HWY_RESTRICT p) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::Store (Vec256< T > v, D d, T *HWY_RESTRICT aligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::StoreU (Vec256< T > v, D d, T *HWY_RESTRICT p) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::BlendedStore (Vec256< T > v, Mask256< T > m, D d, T *HWY_RESTRICT p) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::Stream (Vec256< T > v, D d, T *HWY_RESTRICT aligned) |
|
template<typename T > |
HWY_API T | hwy::HWY_NAMESPACE::ExtractLane (const Vec256< T > v, size_t i) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::InsertLane (const Vec256< T > v, size_t i, T t) |
|
template<int kBlockIdx, class T > |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::ExtractBlock (Vec256< T > v) |
|
template<int kBlockIdx, class T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::InsertBlock (Vec256< T > v, Vec128< T > blk_to_insert) |
|
template<int kBlockIdx, class T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::BroadcastBlock (Vec256< T > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::LowerHalf (D, Vec256< T > v) |
|
template<typename T > |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::LowerHalf (Vec256< T > v) |
|
template<typename T > |
HWY_API T | hwy::HWY_NAMESPACE::GetLane (const Vec256< T > v) |
|
template<int kBytes, class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftBytes (D d, Vec256< T > v) |
|
template<int kBytes, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftBytes (Vec256< T > v) |
|
template<int kLanes, class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftLeftLanes (D 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, class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRightBytes (D d, Vec256< T > v) |
|
template<int kLanes, class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ShiftRightLanes (D d, const Vec256< T > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec128< T > | hwy::HWY_NAMESPACE::UpperHalf (D, const Vec256< T > v) |
|
template<int kBytes, class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::CombineShiftRightBytes (D d, Vec256< T > hi, Vec256< T > lo) |
|
template<int kLane, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Broadcast (const Vec256< T > v) |
|
template<int kLane, typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::BroadcastLane (const Vec256< T > v) |
|
template<typename T , typename TI > |
HWY_API Vec256< TI > | hwy::HWY_NAMESPACE::TableLookupBytes (const Vec256< T > bytes, Vec256< TI > from) |
|
template<typename T , typename TI , size_t NI> |
HWY_API Vec128< TI, NI > | hwy::HWY_NAMESPACE::TableLookupBytes (Vec256< T > bytes, const Vec128< TI, NI > from) |
|
template<typename T , size_t N, typename TI > |
HWY_API Vec256< TI > | hwy::HWY_NAMESPACE::TableLookupBytes (Vec128< T, N > bytes, const Vec256< TI > from) |
|
template<class V , class VI > |
HWY_API VI | hwy::HWY_NAMESPACE::TableLookupBytesOr0 (V bytes, VI from) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle01 (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle2301 (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle1032 (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle0321 (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle2103 (Vec256< T > v) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Shuffle0123 (Vec256< T > v) |
|
template<typename T , HWY_IF_T_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::detail::ShuffleTwo2301 (Vec256< T > a, const Vec256< T > b) |
|
template<typename T , HWY_IF_T_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::detail::ShuffleTwo1230 (Vec256< T > a, const Vec256< T > b) |
|
template<typename T , HWY_IF_T_SIZE(T, 4) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::detail::ShuffleTwo3012 (Vec256< T > a, const Vec256< T > b) |
|
template<class D , typename T = TFromD<D>, typename TI > |
HWY_API Indices256< T > | hwy::HWY_NAMESPACE::IndicesFromVec (D, Vec256< TI > vec) |
|
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename TI > |
HWY_API Indices256< TFromD< D > > | hwy::HWY_NAMESPACE::SetTableIndices (D d, const TI *idx) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::TableLookupLanes (const Vec256< T > v, Indices256< T > idx) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::TableLookupLanesOr0 (Vec256< T > v, Indices256< T > idx) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::TwoTablesLookupLanes (const Vec256< T > a, const Vec256< T > b, Indices256< T > idx) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse (D d, const Vec256< T > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse2 (D d, Vec256< T > v) |
|
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 8) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse4 (D d, const Vec256< T > v) |
|
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 8) > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Reverse8 (D, Vec256< T >) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::InterleaveLower (Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::InterleaveUpper (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::InterleaveWholeLower (D d, VFromD< D > a, VFromD< D > b) |
|
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::InterleaveWholeUpper (D d, VFromD< D > a, VFromD< D > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Combine (D, Vec128< T > hi, Vec128< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ZeroExtendVector (D d, Vec128< T > lo) |
|
template<size_t kFromVectSize, class DTo , class DFrom , HWY_IF_LANES_LE(kFromVectSize, 8) > |
HWY_INLINE VFromD< DTo > | hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast (hwy::SizeTag< kFromVectSize >, hwy::SizeTag< 32 >, DTo d_to, DFrom d_from, VFromD< DFrom > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatLowerLower (D, Vec256< T > hi, Vec256< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatUpperUpper (D, Vec256< T > hi, Vec256< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatLowerUpper (D, Vec256< T > hi, Vec256< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatUpperLower (D, Vec256< T > hi, Vec256< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatOdd (D d, Vec256< T > hi, Vec256< T > lo) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ConcatEven (D d, 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_API Vec256< T > | hwy::HWY_NAMESPACE::OddEven (Vec256< T > a, const Vec256< T > b) |
|
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::InterleaveEven (D, VFromD< D > a, VFromD< D > b) |
|
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::InterleaveOdd (D, VFromD< D > a, VFromD< D > b) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::OddEvenBlocks (Vec256< T > odd, Vec256< T > even) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec256< T > v) |
|
template<class D , typename T = TFromD<D>> |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::ReverseBlocks (D, const Vec256< T > v) |
|
template<size_t kIdx3210, class V > |
HWY_INLINE V | hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 1 >, hwy::SizeTag< 32 >, V v) |
|
template<size_t kIdx3210, class V > |
HWY_INLINE V | hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 2 >, hwy::SizeTag< 32 >, V v) |
|
template<size_t kIdx3210, class V > |
HWY_INLINE V | hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 4 >, hwy::SizeTag< 32 >, V v) |
|
template<size_t kIdx3210, class V > |
HWY_INLINE V | hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 8 >, hwy::SizeTag< 32 >, V v) |
|
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::SlideUpBlocks (D, VFromD< D > v) |
|
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::SlideDownBlocks (D, VFromD< D > v) |
|
template<class D , HWY_IF_LANES_D(D, 1) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::SlideUpLanes (D, VFromD< D > v, size_t) |
|
template<class D , HWY_IF_LANES_D(D, 1) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Slide1Up (D d, VFromD< D >) |
|
template<class D , HWY_IF_LANES_D(D, 1) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::SlideDownLanes (D, VFromD< D > v, size_t) |
|
template<class D , HWY_IF_LANES_D(D, 1) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::Slide1Down (D d, VFromD< D >) |
|
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename TN , HWY_IF_T_SIZE_D(D, sizeof(TN) *2) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::PromoteTo (D d, Vec128< TN > v) |
|
template<class DW , HWY_IF_V_SIZE_D(DW, 32) , HWY_IF_T_SIZE_ONE_OF_D(DW,(1<< 4)|(1<< 8)) , HWY_IF_NOT_FLOAT_D(DW) , typename TN , HWY_IF_T_SIZE_D(DW, sizeof(TN) *4) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TN) > |
HWY_API Vec256< TFromD< DW > > | hwy::HWY_NAMESPACE::PromoteTo (DW d, Vec64< TN > v) |
|
template<class DW , HWY_IF_V_SIZE_D(DW, 32) , HWY_IF_T_SIZE_D(DW, 8) , HWY_IF_NOT_FLOAT_D(DW) , typename TN , HWY_IF_T_SIZE(TN, 1) > |
HWY_API Vec256< TFromD< DW > > | hwy::HWY_NAMESPACE::PromoteTo (DW d, Vec32< TN > v) |
|
template<class D , class T > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::PromoteUpperTo (D d, Vec256< T > v) |
|
template<class D , HWY_IF_U16_D(D) > |
HWY_API Vec128< uint16_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int32_t > v) |
|
template<class D , HWY_IF_I16_D(D) > |
HWY_API Vec128< int16_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int32_t > v) |
|
template<class D , HWY_IF_U8_D(D) > |
HWY_API Vec64< uint8_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int32_t > v) |
|
template<class D , HWY_IF_U8_D(D) > |
HWY_API Vec128< uint8_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int16_t > v) |
|
template<class D , HWY_IF_I8_D(D) > |
HWY_API Vec64< int8_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int32_t > v) |
|
template<class D , HWY_IF_I8_D(D) > |
HWY_API Vec128< int8_t > | hwy::HWY_NAMESPACE::DemoteTo (D, Vec256< int16_t > v) |
|
template<class D , HWY_IF_I32_D(D) > |
HWY_API Vec128< int32_t > | hwy::HWY_NAMESPACE::DemoteTo (D di, Vec256< double > v) |
|
template<class D , HWY_IF_U32_D(D) > |
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::DemoteTo (D di, Vec256< double > v) |
|
template<class D , HWY_IF_F32_D(D) > |
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::DemoteTo (D df, Vec256< int64_t > v) |
|
template<class D , HWY_IF_F32_D(D) > |
HWY_API Vec128< float > | hwy::HWY_NAMESPACE::DemoteTo (D df, Vec256< uint64_t > v) |
|
template<class D , HWY_IF_F16_D(D) > |
HWY_API Vec128< float16_t > | hwy::HWY_NAMESPACE::DemoteTo (D d16, Vec256< float > v) |
|
HWY_API Vec64< uint8_t > | hwy::HWY_NAMESPACE::U8FromU32 (Vec256< uint32_t > v) |
|
template<class D , HWY_IF_U8_D(D) > |
HWY_API Vec32< uint8_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint64_t > v) |
|
template<class D , HWY_IF_U16_D(D) > |
HWY_API Vec64< uint16_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint64_t > v) |
|
template<class D , HWY_IF_U32_D(D) > |
HWY_API Vec128< uint32_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint64_t > v) |
|
template<class D , HWY_IF_U8_D(D) > |
HWY_API Vec64< uint8_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint32_t > v) |
|
template<class D , HWY_IF_U16_D(D) > |
HWY_API Vec128< uint16_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint32_t > v) |
|
template<class D , HWY_IF_U8_D(D) > |
HWY_API Vec128< uint8_t > | hwy::HWY_NAMESPACE::TruncateTo (D, Vec256< uint16_t > v) |
|
template<class DN , typename V , HWY_IF_V_SIZE_LE_D(DN, 4) , HWY_IF_SIGNED_D(DN) , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_D(DN,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) > |
HWY_API VFromD< DN > | hwy::HWY_NAMESPACE::ReorderDemote2To (DN dn, V a, V b) |
|
template<class DTo , typename TFrom , typename TTo = TFromD<DTo>> |
HWY_API Vec256< TTo > | hwy::HWY_NAMESPACE::ConvertTo (DTo d, const Vec256< TFrom > v) |
|
HWY_API Vec256< int32_t > | hwy::HWY_NAMESPACE::NearestInt (const Vec256< float > v) |
|
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 4)|(1<< 8)) > |
HWY_API MFromD< D > | hwy::HWY_NAMESPACE::LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits) |
|
template<class D , HWY_IF_T_SIZE_D(D, 2) > |
HWY_API MFromD< D > | hwy::HWY_NAMESPACE::Dup128MaskFromMaskBits (D d, unsigned mask_bits) |
|
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE_ONE_OF(T,(1<< 4)|(1<< 8)) > |
HWY_API size_t | hwy::HWY_NAMESPACE::StoreMaskBits (D d, const Mask256< T > mask, uint8_t *bits) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::CountTrue (D d, const Mask256< T > m) |
|
template<class D , typename T = TFromD<D>> |
HWY_API bool | hwy::HWY_NAMESPACE::AllFalse (D d, const Mask256< T > m) |
|
template<class D , typename T = TFromD<D>> |
HWY_API bool | hwy::HWY_NAMESPACE::AllTrue (D d, const Mask256< T > m) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::FindKnownFirstTrue (D d, const Mask256< T > mask) |
|
template<class D , typename T = TFromD<D>> |
HWY_API intptr_t | hwy::HWY_NAMESPACE::FindFirstTrue (D d, const Mask256< T > mask) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::FindKnownLastTrue (D d, const Mask256< T > mask) |
|
template<class D , typename T = TFromD<D>> |
HWY_API intptr_t | hwy::HWY_NAMESPACE::FindLastTrue (D d, const Mask256< T > mask) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressStore (Vec256< T > v, const Mask256< T > mask, D d, T *HWY_RESTRICT unaligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBlendedStore (Vec256< T > v, const Mask256< T > m, D d, T *HWY_RESTRICT unaligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBitsStore (Vec256< T > v, const uint8_t *HWY_RESTRICT bits, D d, T *HWY_RESTRICT unaligned) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::Compress (const Vec256< T > v, const Mask256< T > mask) |
|
template<typename T > |
HWY_API Vec256< T > | hwy::HWY_NAMESPACE::CompressNot (Vec256< T > v, const Mask256< T > mask) |
|
HWY_API Vec256< uint64_t > | hwy::HWY_NAMESPACE::CompressBlocksNot (Vec256< uint64_t > v, Mask256< uint64_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 Vec256< T > | hwy::HWY_NAMESPACE::Expand (const Vec256< T > v, const Mask256< T > mask) |
|
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) > |
HWY_API VFromD< D > | hwy::HWY_NAMESPACE::LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3 (D d, const T *HWY_RESTRICT unaligned, Vec256< T > &A, Vec256< T > &B, Vec256< T > &C) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4 (D d, const T *HWY_RESTRICT unaligned, Vec256< T > &vA, Vec256< T > &vB, Vec256< T > &vC, Vec256< T > &vD) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2 (Vec256< T > i, Vec256< T > j, D d, T *HWY_RESTRICT unaligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3 (Vec256< T > i, Vec256< T > j, Vec256< T > k, D d, T *HWY_RESTRICT unaligned) |
|
template<class D , typename T = TFromD<D>> |
HWY_API void | hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4 (Vec256< T > i, Vec256< T > j, Vec256< T > k, Vec256< T > l, D d, T *HWY_RESTRICT unaligned) |
|
template<class T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::SetAtOrAfterFirst (Mask256< T > mask) |
|
template<class T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::SetBeforeFirst (Mask256< T > mask) |
|
template<class T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::SetOnlyFirst (Mask256< T > mask) |
|
template<class T > |
HWY_API Mask256< T > | hwy::HWY_NAMESPACE::SetAtOrBeforeFirst (Mask256< T > mask) |
|
template<class D32 , typename T16 , typename T32 = TFromD<D32>> |
HWY_API Vec256< T32 > | hwy::HWY_NAMESPACE::WidenMulPairwiseAdd (D32 d32, Vec256< T16 > a, Vec256< T16 > b) |
|
template<class D32 , typename T16 , typename T32 = TFromD<D32>> |
HWY_API Vec256< T32 > | hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (D32 d32, Vec256< T16 > a, Vec256< T16 > b, Vec256< T32 > sum0, Vec256< T32 > &sum1) |
|
template<typename TW > |
HWY_API Vec256< TW > | hwy::HWY_NAMESPACE::RearrangeToOddPlusEven (Vec256< TW > sum0, Vec256< TW > sum1) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Lt128 (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Lt128Upper (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Eq128 (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Eq128Upper (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Ne128 (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Mask256< T > | hwy::HWY_NAMESPACE::Ne128Upper (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Min128 (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Max128 (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Min128Upper (D d, Vec256< T > a, Vec256< T > b) |
|
template<class D , typename T = TFromD<D>> |
HWY_INLINE Vec256< T > | hwy::HWY_NAMESPACE::Max128Upper (D d, Vec256< T > a, Vec256< T > b) |
|
| HWY_AFTER_NAMESPACE () |
|