Grok 12.0.1
Namespaces | Classes | Typedefs | Functions | Variables
hwy::HWY_NAMESPACE Namespace Reference

Namespaces

namespace  detail
 
namespace  impl
 
namespace  internal
 
namespace  timer
 

Classes

class  CachedXoshiro
 
struct  CompressIsPartition
 
struct  DFromV_t
 
struct  Dot
 
class  ForDemoteVectors
 
class  ForExtendableVectors
 
class  ForGEVectors
 
class  ForHalfVectors
 
class  ForMaxPow2
 
class  ForPartialVectors
 
class  ForPromoteVectors
 
class  ForShrinkableVectors
 
struct  Indices1
 
struct  Indices128
 
struct  Indices256
 
struct  Indices512
 
class  Mask1
 
struct  Mask128
 
struct  Mask256
 
struct  Mask512
 
struct  Pack16
 
struct  Pack16< 1 >
 
struct  Pack16< 10 >
 
struct  Pack16< 11 >
 
struct  Pack16< 12 >
 
struct  Pack16< 13 >
 
struct  Pack16< 14 >
 
struct  Pack16< 15 >
 
struct  Pack16< 16 >
 
struct  Pack16< 2 >
 
struct  Pack16< 3 >
 
struct  Pack16< 4 >
 
struct  Pack16< 5 >
 
struct  Pack16< 6 >
 
struct  Pack16< 7 >
 
struct  Pack16< 8 >
 
struct  Pack16< 9 >
 
struct  Pack8
 
struct  Pack8< 1 >
 
struct  Pack8< 2 >
 
struct  Pack8< 3 >
 
struct  Pack8< 4 >
 
struct  Pack8< 5 >
 
struct  Pack8< 6 >
 
struct  Pack8< 7 >
 
struct  Pack8< 8 >
 
struct  Result
 
struct  SharedState
 
struct  Simd
 
struct  UnrollerUnit
 
struct  UnrollerUnit2D
 
struct  Vec1
 
class  Vec128
 
class  Vec256
 
class  Vec512
 
class  VectorXoshiro
 
class  Xorshift128Plus
 

Typedefs

template<typename T >
using OtherOrder = detail::OrderDescending<T>
 
template<typename T >
using SortTag = ScalableTag<T, -1>
 
template<typename T >
using Vec64 = Vec128<T, 8 / sizeof(T)>
 
template<typename T >
using Vec32 = Vec128<T, 4 / sizeof(T)>
 
template<typename T >
using Vec16 = Vec128<T, 2 / sizeof(T)>
 
template<typename T >
using Mask64 = Mask128<T, 8 / sizeof(T)>
 
template<class V >
using DFromV = Simd<typename V::PrivateT, V::kPrivateN, 0>
 
template<class M >
using DFromM = Simd<typename M::PrivateT, M::kPrivateN, 0>
 
template<class V >
using TFromV = typename V::PrivateT
 
template<class D >
using VFromD = decltype(Set(D(), TFromD<D>()))
 
template<class D >
using MFromD = decltype(MaskFromVec(VFromD<D>()))
 
using VBF16 = VFromD<ScalableTag<bfloat16_t>>
 
template<class D >
using Vec2 = decltype(Create2(D(), Zero(D()), Zero(D())))
 
template<class D >
using Vec3 = decltype(Create3(D(), Zero(D()), Zero(D()), Zero(D())))
 
template<class D >
using Vec4 = decltype(Create4(D(), Zero(D()), Zero(D()), Zero(D()), Zero(D())))
 
template<typename T >
using Full128 = Simd<T, 16 / sizeof(T), 0>
 
template<class V >
using LaneType = decltype(GetLane(V()))
 
template<class D >
using Vec = decltype(Zero(D()))
 
template<class D >
using Mask = decltype(MaskFromVec(Zero(D())))
 
template<class D >
using IndicesFromD = decltype(IndicesFromVec(D(), Zero(RebindToUnsigned<D>())))
 
template<typename T >
using Sisd = Simd<T, 1, 0>
 
template<class V >
using VecArg = V
 
template<typename T , int kPow2 = 0>
using ScalableTag = typename detail::ScalableTagChecker<T, kPow2>::type
 
template<typename T , size_t kLimit, int kPow2 = 0>
using CappedTag = typename detail::CappedTagChecker<T, kLimit, kPow2>::type
 
template<typename T , size_t kLimit, int kPow2 = 0>
using CappedTagIfFixed = CappedTag<T, kLimit, kPow2>
 
template<typename T , size_t kNumLanes>
using FixedTag = typename detail::FixedTagChecker<T, kNumLanes>::type
 
template<typename T >
using Full16 = Simd<T, 2 / sizeof(T), 0>
 
template<typename T >
using Full32 = Simd<T, 4 / sizeof(T), 0>
 
template<typename T >
using Full64 = Simd<T, 8 / sizeof(T), 0>
 
template<class D >
using TFromD = typename D::T
 
template<class T , class D >
using Rebind = typename D::template Rebind<T>
 
template<class D >
using RebindToSigned = Rebind<MakeSigned<TFromD<D>>, D>
 
template<class D >
using RebindToUnsigned = Rebind<MakeUnsigned<TFromD<D>>, D>
 
template<class D >
using RebindToFloat = Rebind<MakeFloat<TFromD<D>>, D>
 
template<class T , class D >
using Repartition = typename D::template Repartition<T>
 
template<class D >
using RepartitionToWide = Repartition<MakeWide<TFromD<D>>, D>
 
template<class D >
using RepartitionToNarrow = Repartition<MakeNarrow<TFromD<D>>, D>
 
template<class D >
using RepartitionToWideX2 = RepartitionToWide<RepartitionToWide<D>>
 
template<class D >
using RepartitionToWideX3 = RepartitionToWide<RepartitionToWideX2<D>>
 
template<class D >
using Half = typename D::Half
 
template<class D >
using Twice = typename D::Twice
 
template<class D >
using BlockDFromD
 
template<typename T >
using Full256 = Simd<T, 32 / sizeof(T), 0>
 
using Shift64Count = unsigned int
 
using GatherIndex64 = long long int
 
template<typename T >
using Full512 = Simd<T, 64 / sizeof(T), 0>
 
using Shift16Count = unsigned int
 
using Shift3264Count = unsigned int
 
template<class Test >
using ForGE128Vectors = ForGEVectors<128, Test>
 
template<class Test >
using ForPartialFixedOrFullScalableVectors
 

Functions

template<class D , typename T = TFromD<D>>
void Fill (D d, T value, size_t count, T *HWY_RESTRICT to)
 
template<class D , typename T = TFromD<D>>
void Copy (D d, const T *HWY_RESTRICT from, size_t count, T *HWY_RESTRICT to)
 
template<class D , class Func , typename T = TFromD<D>>
T * CopyIf (D d, const T *HWY_RESTRICT from, size_t count, T *HWY_RESTRICT to, const Func &func)
 
template<class D , typename T = TFromD<D>>
size_t Find (D d, T value, const T *HWY_RESTRICT in, size_t count)
 
template<class D , class Func , typename T = TFromD<D>>
size_t FindIf (D d, const T *HWY_RESTRICT in, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Generate (D d, T *HWY_RESTRICT out, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Foreach (D d, const T *HWY_RESTRICT in, const size_t count, const Vec< D > no, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform (D d, T *HWY_RESTRICT inout, size_t count, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform1 (D d, T *HWY_RESTRICT inout, size_t count, const T *HWY_RESTRICT in1, const Func &func)
 
template<class D , class Func , typename T = TFromD<D>>
void Transform2 (D d, T *HWY_RESTRICT inout, size_t count, const T *HWY_RESTRICT in1, const T *HWY_RESTRICT in2, const Func &func)
 
template<class D , typename T = TFromD<D>>
void Replace (D d, T *HWY_RESTRICT inout, size_t count, T new_t, T old_t)
 
template<class D , class Func , typename T = TFromD<D>>
void ReplaceIf (D d, T *HWY_RESTRICT inout, size_t count, T new_t, const Func &func)
 
template<class D , class V >
HWY_INLINEAcos (D d, V x)
 Highway SIMD version of std::acos(x).
 
template<class D , class V >
HWY_NOINLINECallAcos (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAcosh (D d, V x)
 Highway SIMD version of std::acosh(x).
 
template<class D , class V >
HWY_NOINLINECallAcosh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAsin (D d, V x)
 Highway SIMD version of std::asin(x).
 
template<class D , class V >
HWY_NOINLINECallAsin (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAsinh (D d, V x)
 Highway SIMD version of std::asinh(x).
 
template<class D , class V >
HWY_NOINLINECallAsinh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAtan (D d, V x)
 Highway SIMD version of std::atan(x).
 
template<class D , class V >
HWY_NOINLINECallAtan (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEAtanh (D d, V x)
 Highway SIMD version of std::atanh(x).
 
template<class D , class V >
HWY_NOINLINECallAtanh (const D d, VecArg< V > x)
 
template<class D , class V = VFromD<D>, class M = MFromD<D>, typename T = TFromD<D>>
HWY_INLINEAtan2 (const D d, V y, V x)
 Highway SIMD version of std::atan2(x).
 
template<class D , class V >
HWY_NOINLINECallAtan2 (const D d, VecArg< V > y, VecArg< V > x)
 
template<class D , class V >
HWY_INLINECos (D d, V x)
 Highway SIMD version of std::cos(x).
 
template<class D , class V >
HWY_NOINLINECallCos (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEExp (D d, V x)
 Highway SIMD version of std::exp(x).
 
template<class D , class V >
HWY_NOINLINECallExp (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINEExpm1 (D d, V x)
 Highway SIMD version of std::expm1(x).
 
template<class D , class V >
HWY_NOINLINECallExpm1 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog (D d, V x)
 Highway SIMD version of std::log(x).
 
template<class D , class V >
HWY_NOINLINECallLog (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog10 (D d, V x)
 Highway SIMD version of std::log10(x).
 
template<class D , class V >
HWY_NOINLINECallLog10 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog1p (D d, V x)
 Highway SIMD version of std::log1p(x).
 
template<class D , class V >
HWY_NOINLINECallLog1p (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINELog2 (D d, V x)
 Highway SIMD version of std::log2(x).
 
template<class D , class V >
HWY_NOINLINECallLog2 (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINESin (D d, V x)
 Highway SIMD version of std::sin(x).
 
template<class D , class V >
HWY_NOINLINECallSin (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINESinh (D d, V x)
 Highway SIMD version of std::sinh(x).
 
template<class D , class V >
HWY_NOINLINECallSinh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINETanh (D d, V x)
 Highway SIMD version of std::tanh(x).
 
template<class D , class V >
HWY_NOINLINECallTanh (const D d, VecArg< V > x)
 
template<class D , class V >
HWY_INLINE void SinCos (D d, V x, V &s, V &c)
 Highway SIMD version of SinCos.
 
template<class D , class V >
HWY_NOINLINECallSinCos (const D d, VecArg< V > x, VecArg< V > &s, VecArg< V > &c)
 
template<typename TA , typename TB >
TA AddScalar (TA a, TB b)
 
template<size_t kOuter, size_t kInner, typename T , bool kAdd>
HWY_NOINLINE void MatVecAddImpl (const T *HWY_RESTRICT mat, const T *HWY_RESTRICT vec, const T *HWY_RESTRICT add, T *HWY_RESTRICT out, hwy::ThreadPool &pool)
 
template<size_t kOuter, size_t kInner, typename T >
HWY_NOINLINE void MatVecAdd (const T *HWY_RESTRICT mat, const T *HWY_RESTRICT vec, const T *HWY_RESTRICT add, T *HWY_RESTRICT out, hwy::ThreadPool &pool)
 
template<size_t kOuter, size_t kInner, typename T >
HWY_NOINLINE void MatVec (const T *HWY_RESTRICT mat, const T *HWY_RESTRICT vec, T *HWY_RESTRICT out, hwy::ThreadPool &pool)
 
template<class D , class VU64 , HWY_IF_NOT_FLOAT_D(D) >
Vec< D > RandomValues (D d, VU64 &s0, VU64 &s1, const VU64 mask)
 
template<class DF , class VU64 , HWY_IF_FLOAT_D(DF) >
Vec< DF > RandomValues (DF df, VU64 &s0, VU64 &s1, const VU64 mask)
 
template<class DU64 >
Vec< DU64 > MaskForDist (DU64 du64, const Dist dist, size_t sizeof_t)
 
template<typename T >
InputStats< T > GenerateInput (const Dist dist, T *v, size_t num)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void CallHeapPartialSort (KeyType *HWY_RESTRICT keys, const size_t num_keys, const size_t k)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void CallHeapSelect (KeyType *HWY_RESTRICT keys, const size_t num_keys, const size_t k)
 
template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void CallHeapSort (KeyType *HWY_RESTRICT keys, const size_t num_keys)
 
template<class Order , typename KeyType >
void Run (Algo algo, KeyType *HWY_RESTRICT inout, size_t num, SharedState &shared, size_t, size_t k=0)
 
template<class Traits , typename LaneType >
bool VerifyPartialSort (Traits st, const InputStats< LaneType > &input_stats, const LaneType *out, const size_t num_lanes, const size_t k, const char *caller)
 
template<class Traits , typename LaneType >
bool VerifySort (Traits st, const InputStats< LaneType > &input_stats, const LaneType *out, size_t num_lanes, const char *caller)
 
template<class Traits , typename LaneType >
bool VerifySelect (Traits st, const InputStats< LaneType > &input_stats, const LaneType *out, const size_t num_lanes, const size_t k, const char *caller)
 
template<class D , class Traits , typename T >
void Sort (D d, Traits st, T *HWY_RESTRICT keys, const size_t num, T *HWY_RESTRICT buf)
 
template<class D , class Traits , typename T >
void Select (D d, Traits st, T *HWY_RESTRICT keys, const size_t num, const size_t k, T *HWY_RESTRICT buf)
 
template<class D , class Traits , typename T >
void PartialSort (D d, Traits st, T *HWY_RESTRICT keys, size_t num, size_t k, T *HWY_RESTRICT buf)
 
template<class D , class Traits , typename T >
HWY_API void Sort (D d, Traits st, T *HWY_RESTRICT keys, const size_t num)
 
template<class D , class Traits , typename T >
HWY_API void PartialSort (D d, Traits st, T *HWY_RESTRICT keys, const size_t num, const size_t k)
 
template<class D , class Traits , typename T >
HWY_API void Select (D d, Traits st, T *HWY_RESTRICT keys, const size_t num, const size_t k)
 
template<typename T >
void VQSortStatic (T *HWY_RESTRICT keys, const size_t num, SortAscending)
 
template<typename T >
void VQSortStatic (T *HWY_RESTRICT keys, const size_t num, SortDescending)
 
template<typename T >
void VQPartialSortStatic (T *HWY_RESTRICT keys, const size_t num, const size_t k, SortAscending)
 
template<typename T >
void VQPartialSortStatic (T *HWY_RESTRICT keys, const size_t num, const size_t k, SortDescending)
 
template<typename T >
void VQSelectStatic (T *HWY_RESTRICT keys, const size_t num, const size_t k, SortAscending)
 
template<typename T >
void VQSelectStatic (T *HWY_RESTRICT keys, const size_t num, const size_t k, SortDescending)
 
template<class FUNC , typename IN_T , typename OUT_T >
void Unroller (FUNC &f, IN_T *HWY_RESTRICT x, OUT_T *HWY_RESTRICT y, const ptrdiff_t n)
 
template<class FUNC , typename IN0_T , typename IN1_T , typename OUT_T >
void Unroller (FUNC &HWY_RESTRICT f, IN0_T *HWY_RESTRICT x0, IN1_T *HWY_RESTRICT x1, OUT_T *HWY_RESTRICT y, const ptrdiff_t n)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T >
HWY_INLINE Vec128< TFromD< D > > Set (D, T t)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T >
HWY_API Vec128< TFromD< D >, MaxLanes(D())> Set (D, T t)
 
template<class D >
HWY_API VFromD< D > Zero (D d)
 
template<class D >
HWY_API VFromD< D > Undefined (D)
 
template<class D , HWY_IF_UI8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > 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 > 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 > 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 > Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D >)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > 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)
 
template<class D , typename T2 >
HWY_API VFromD< D > Iota (D d, const T2 first)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > Combine (D, Vec64< uint8_t > hi, Vec64< uint8_t > lo)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > Combine (D, Vec64< uint16_t > hi, Vec64< uint16_t > lo)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > Combine (D, Vec64< uint32_t > hi, Vec64< uint32_t > lo)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > Combine (D, Vec64< uint64_t > hi, Vec64< uint64_t > lo)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > Combine (D, Vec64< int8_t > hi, Vec64< int8_t > lo)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > Combine (D, Vec64< int16_t > hi, Vec64< int16_t > lo)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > Combine (D, Vec64< int32_t > hi, Vec64< int32_t > lo)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > Combine (D, Vec64< int64_t > hi, Vec64< int64_t > lo)
 
template<class D , class DH = Half<D>, HWY_NEON_IF_EMULATED_D(D) >
HWY_API VFromD< D > Combine (D d, VFromD< DH > hi, VFromD< DH > lo)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > Combine (D, Vec64< float > hi, Vec64< float > lo)
 
template<class D , class FromT >
HWY_API VFromD< D > BitCast (D d, Vec128< FromT, Repartition< FromT, D >().MaxLanes()> 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 > ResizeBitCast (D d, FromV v)
 
template<class V >
HWY_API TFromV< V > GetLane (const V v)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 1 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 2 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 4 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 8 > v, size_t i)
 
template<typename T >
HWY_APIExtractLane (const Vec128< T, 16 > v, size_t i)
 
template<typename T >
HWY_API Vec128< T, 1 > InsertLane (const Vec128< T, 1 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 2 > InsertLane (const Vec128< T, 2 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 4 > InsertLane (const Vec128< T, 4 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 8 > InsertLane (const Vec128< T, 8 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 16 > InsertLane (const Vec128< T, 16 > v, size_t i, T t)
 
HWY_API Vec128< uint64_t > SumsOf8 (const Vec128< uint8_t > v)
 
HWY_API Vec64< uint64_t > SumsOf8 (const Vec64< uint8_t > v)
 
HWY_API Vec128< int64_t > SumsOf8 (const Vec128< int8_t > v)
 
HWY_API Vec64< int64_t > SumsOf8 (const Vec64< int8_t > v)
 
template<size_t N>
HWY_API Vec128< float16_t, N > Neg (const Vec128< float16_t, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, N > Neg (const Vec128< bfloat16_t, N > v)
 
HWY_API Vec64< int64_t > Neg (const Vec64< int64_t > v)
 
HWY_API Vec128< int64_t > Neg (const Vec128< int64_t > v)
 
template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > RotateRight (const Vec128< T, N > v)
 
HWY_API Vec128< uint8_t > operator<< (Vec128< uint8_t > v, Vec128< uint8_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > operator<< (Vec128< uint8_t, N > v, Vec128< uint8_t, N > bits)
 
HWY_API Vec128< uint16_t > operator<< (Vec128< uint16_t > v, Vec128< uint16_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > operator<< (Vec128< uint16_t, N > v, Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint32_t > operator<< (Vec128< uint32_t > v, Vec128< uint32_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > operator<< (Vec128< uint32_t, N > v, Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint64_t > operator<< (Vec128< uint64_t > v, Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > operator<< (Vec64< uint64_t > v, Vec64< uint64_t > bits)
 
HWY_API Vec128< int8_t > operator<< (Vec128< int8_t > v, Vec128< int8_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > operator<< (Vec128< int8_t, N > v, Vec128< int8_t, N > bits)
 
HWY_API Vec128< int16_t > operator<< (Vec128< int16_t > v, Vec128< int16_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > operator<< (Vec128< int16_t, N > v, Vec128< int16_t, N > bits)
 
HWY_API Vec128< int32_t > operator<< (Vec128< int32_t > v, Vec128< int32_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > operator<< (Vec128< int32_t, N > v, Vec128< int32_t, N > bits)
 
HWY_API Vec128< int64_t > operator<< (Vec128< int64_t > v, Vec128< int64_t > bits)
 
HWY_API Vec64< int64_t > operator<< (Vec64< int64_t > v, Vec64< int64_t > bits)
 
HWY_API Vec128< uint8_t > operator>> (Vec128< uint8_t > v, Vec128< uint8_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > operator>> (Vec128< uint8_t, N > v, Vec128< uint8_t, N > bits)
 
HWY_API Vec128< uint16_t > operator>> (Vec128< uint16_t > v, Vec128< uint16_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > operator>> (Vec128< uint16_t, N > v, Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint32_t > operator>> (Vec128< uint32_t > v, Vec128< uint32_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > operator>> (Vec128< uint32_t, N > v, Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint64_t > operator>> (Vec128< uint64_t > v, Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > operator>> (Vec64< uint64_t > v, Vec64< uint64_t > bits)
 
HWY_API Vec128< int8_t > operator>> (Vec128< int8_t > v, Vec128< int8_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > operator>> (Vec128< int8_t, N > v, Vec128< int8_t, N > bits)
 
HWY_API Vec128< int16_t > operator>> (Vec128< int16_t > v, Vec128< int16_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > operator>> (Vec128< int16_t, N > v, Vec128< int16_t, N > bits)
 
HWY_API Vec128< int32_t > operator>> (Vec128< int32_t > v, Vec128< int32_t > bits)
 
template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > operator>> (Vec128< int32_t, N > v, Vec128< int32_t, N > bits)
 
HWY_API Vec128< int64_t > operator>> (Vec128< int64_t > v, Vec128< int64_t > bits)
 
HWY_API Vec64< int64_t > operator>> (Vec64< int64_t > v, Vec64< int64_t > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftSame (const Vec128< T, N > v, int bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ShiftRightSame (const Vec128< T, N > v, int bits)
 
HWY_API Vec128< int8_t > MulHigh (Vec128< int8_t > a, Vec128< int8_t > b)
 
HWY_API Vec128< uint8_t > MulHigh (Vec128< uint8_t > a, Vec128< uint8_t > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > MulHigh (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > MulHigh (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
HWY_API Vec128< int16_t > MulHigh (Vec128< int16_t > a, Vec128< int16_t > b)
 
HWY_API Vec128< uint16_t > MulHigh (Vec128< uint16_t > a, Vec128< uint16_t > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > MulHigh (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > MulHigh (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
HWY_API Vec128< int32_t > MulHigh (Vec128< int32_t > a, Vec128< int32_t > b)
 
HWY_API Vec128< uint32_t > MulHigh (Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > MulHigh (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > MulHigh (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > MulHigh (Vec128< T > a, Vec128< T > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec64< T > MulHigh (Vec64< T > a, Vec64< T > b)
 
HWY_API Vec128< int16_t > MulFixedPoint15 (Vec128< int16_t > a, Vec128< int16_t > b)
 
template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > MulFixedPoint15 (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > operator/ (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Vec128< T, N > MulAdd (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > add)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Vec128< T, N > NegMulAdd (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > add)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > MulAdd (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > add)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > NegMulAdd (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > add)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > MulSub (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > sub)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > NegMulSub (Vec128< T, N > mul, Vec128< T, N > x, Vec128< T, N > sub)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Sqrt (const Vec128< T, N > v)
 
template<typename T >
HWY_API Vec128< T > Not (const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N > Not (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > And (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > AndNot (const Vec128< T, N > not_mask, const Vec128< T, N > mask)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Or (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Xor (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Xor3 (Vec128< T, N > x1, Vec128< T, N > x2, Vec128< T, N > x3)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Or3 (Vec128< T, N > o1, Vec128< T, N > o2, Vec128< T, N > o3)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > OrAnd (Vec128< T, N > o, Vec128< T, N > a1, Vec128< T, N > a2)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfVecThenElse (Vec128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<class V >
HWY_APIBitwiseIfThenElse (V mask, V yes, V no)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator& (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator| (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator^ (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > AbsDiff (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > AbsDiff (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > PopulationCount (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CopySign (Vec128< T, N > magn, Vec128< T, N > sign)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CopySignToAbs (Vec128< T, N > abs, Vec128< T, N > sign)
 
template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > BroadcastSignBit (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > MaskFromVec (const Vec128< T, N > v)
 
template<class D >
HWY_API VFromD< D > VecFromMask (D d, const MFromD< D > m)
 
template<typename TFrom , size_t NFrom, class DTo >
HWY_API MFromD< DTo > RebindMask (DTo, Mask128< TFrom, NFrom > m)
 
template<class V , HWY_NEON_IF_EMULATED_IF_THEN_ELSE(V) >
HWY_APIIfThenElse (MFromD< DFromV< V > > mask, V yes, V no)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > IfThenElseZero (Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > IfThenZeroElse (Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfNegativeThenElse (Vec128< T, N > v, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Not (const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > And (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > AndNot (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Or (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > Xor (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > ExclusiveNeither (const Mask128< T, N > a, Mask128< T, N > b)
 
HWY_API Vec64< uint32_t > Shuffle2301 (const Vec64< uint32_t > v)
 
HWY_API Vec64< int32_t > Shuffle2301 (const Vec64< int32_t > v)
 
HWY_API Vec64< float > Shuffle2301 (const Vec64< float > v)
 
HWY_API Vec128< uint32_t > Shuffle2301 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle2301 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle2301 (const Vec128< float > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator> (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator>= (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D >
HWY_API MFromD< D > FirstN (D d, size_t num)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > TestBit (Vec128< uint64_t, N > v, Vec128< uint64_t, N > bit)
 
template<size_t N>
HWY_API Mask128< int64_t, N > TestBit (Vec128< int64_t, N > v, Vec128< int64_t, N > bit)
 
HWY_API Vec128< int64_t > Abs (const Vec128< int64_t > v)
 
HWY_API Vec64< int64_t > Abs (const Vec64< int64_t > v)
 
HWY_API Vec128< int64_t > SaturatedAbs (const Vec128< int64_t > v)
 
HWY_API Vec64< int64_t > SaturatedAbs (const Vec64< int64_t > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > Min (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Min (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > Max (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Max (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > LoadU (D, const uint8_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > LoadU (D, const uint16_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > LoadU (D, const uint32_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > LoadU (D, const uint64_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > LoadU (D, const int8_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > LoadU (D, const int16_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > LoadU (D, const int32_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > LoadU (D, const int64_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > LoadU (D, const float *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > LoadU (D, const uint8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > LoadU (D, const uint16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > LoadU (D, const uint32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API Vec64< uint64_t > LoadU (D, const uint64_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > LoadU (D, const int8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > LoadU (D, const int16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > LoadU (D, const int32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API Vec64< int64_t > LoadU (D, const int64_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > LoadU (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > LoadU (D, const uint32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > LoadU (D, const int32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > LoadU (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_T_SIZE_LE_D(D, 2) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API VFromD< D > LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > LoadU (D, const uint16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > LoadU (D, const int16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > LoadU (D, const uint8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > LoadU (D, const int8_t *HWY_RESTRICT p)
 
template<class D , HWY_NEON_IF_EMULATED_D(D) >
HWY_API VFromD< D > LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API VFromD< D > Load (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT aligned)
 
template<class D >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > LoadDup128 (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API void StoreU (Vec128< uint8_t > v, D, uint8_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API void StoreU (Vec128< uint16_t > v, D, uint16_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API void StoreU (Vec128< uint32_t > v, D, uint32_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API void StoreU (Vec128< uint64_t > v, D, uint64_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API void StoreU (Vec128< int8_t > v, D, int8_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API void StoreU (Vec128< int16_t > v, D, int16_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API void StoreU (Vec128< int32_t > v, D, int32_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API void StoreU (Vec128< int64_t > v, D, int64_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void StoreU (Vec128< float > v, D, float *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API void StoreU (Vec64< uint8_t > v, D, uint8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API void StoreU (Vec64< uint16_t > v, D, uint16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API void StoreU (Vec64< uint32_t > v, D, uint32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API void StoreU (Vec64< uint64_t > v, D, uint64_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API void StoreU (Vec64< int8_t > v, D, int8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API void StoreU (Vec64< int16_t > v, D, int16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API void StoreU (Vec64< int32_t > v, D, int32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API void StoreU (Vec64< int64_t > v, D, int64_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API void StoreU (Vec64< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API void StoreU (Vec32< uint32_t > v, D, uint32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API void StoreU (Vec32< int32_t > v, D, int32_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API void StoreU (Vec32< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_T_SIZE_LE_D(D, 2) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API void StoreU (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U16_D(D) >
HWY_API void StoreU (Vec16< uint16_t > v, D, uint16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_I16_D(D) >
HWY_API void StoreU (Vec16< int16_t > v, D, int16_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void StoreU (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 1) , HWY_IF_U8_D(D) >
HWY_API void StoreU (Vec128< uint8_t, 1 > v, D, uint8_t *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 1) , HWY_IF_I8_D(D) >
HWY_API void StoreU (Vec128< int8_t, 1 > v, D, int8_t *HWY_RESTRICT p)
 
template<class D , HWY_NEON_IF_EMULATED_D(D) >
HWY_API void StoreU (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API void Store (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT aligned)
 
template<class D >
HWY_API void BlendedStore (VFromD< D > v, MFromD< D > m, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API void Stream (const VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > ConvertTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< RebindToSigned< D > > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > ConvertTo (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< RebindToUnsigned< D > > v)
 
template<class D , HWY_IF_SIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D( D,(1<< 4)|((HWY_ARCH_ARM_A64 &&HWY_HAVE_FLOAT16) ?(1<< 2) :0)|(HWY_HAVE_FLOAT64 ?(1<< 8) :0)) >
HWY_API VFromD< D > ConvertTo (D di, VFromD< RebindToFloat< D > > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > PromoteTo (D, Vec64< uint8_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > PromoteTo (D, Vec32< uint8_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > PromoteTo (D, Vec64< uint16_t > v)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > PromoteTo (D, Vec64< uint32_t > v)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > PromoteTo (D d, Vec64< uint8_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > PromoteTo (D d, Vec32< uint8_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > PromoteTo (D d, Vec64< uint16_t > v)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > PromoteTo (D d, Vec64< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< uint8_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< uint16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< uint32_t, D > > v)
 
template<class D , class V , HWY_IF_UI64_D(D) , HWY_IF_LANES_D(D, HWY_MAX_LANES_V(V)) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > PromoteTo (D d, V v)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > PromoteTo (D, Vec64< int8_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > PromoteTo (D, Vec32< int8_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > PromoteTo (D, Vec64< int16_t > v)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > PromoteTo (D, Vec64< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< int8_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< int16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< int32_t, D > > v)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D di64, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_UI64_D(D) >
HWY_API VFromD< D > PromoteInRangeTo (D d64, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > DemoteTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > DemoteTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > DemoteTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > DemoteTo (D, Vec128< int16_t > v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec32< int8_t > DemoteTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > DemoteTo (D, Vec128< int16_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > DemoteTo (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > DemoteTo (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > DemoteTo (D, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D, VFromD< Rebind< int32_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D, VFromD< Rebind< int16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D, VFromD< Rebind< uint32_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D, VFromD< Rebind< uint16_t, D > > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > DemoteTo (D, Vec128< int64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > DemoteTo (D, Vec128< int64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > DemoteTo (D, Vec128< uint64_t > v)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) , HWY_IF_SIGNED_D(D) >
HWY_API VFromD< D > DemoteTo (D d, Vec128< int64_t > v)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) , HWY_IF_UNSIGNED_D(D) >
HWY_API VFromD< D > DemoteTo (D d, Vec128< uint64_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > DemoteTo (D, Vec64< int64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > DemoteTo (D, Vec64< int64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > DemoteTo (D, Vec64< uint64_t > v)
 
template<class D , HWY_IF_SIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > DemoteTo (D d, Vec64< int64_t > v)
 
template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_UNSIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > DemoteTo (D d, Vec64< uint64_t > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D df32, VFromD< Rebind< int64_t, D > > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D df32, VFromD< Rebind< uint64_t, D > > v)
 
HWY_API Vec32< uint8_t > U8FromU32 (Vec128< uint32_t > v)
 
template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint8_t, N > U8FromU32 (Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Trunc (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Round (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Ceil (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Floor (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > NearestInt (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > IsNaN (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N/2 > LowerHalf (Vec128< T, N > v)
 
HWY_API Vec64< uint8_t > LowerHalf (Vec128< uint8_t > v)
 
HWY_API Vec64< uint16_t > LowerHalf (Vec128< uint16_t > v)
 
HWY_API Vec64< uint32_t > LowerHalf (Vec128< uint32_t > v)
 
HWY_API Vec64< uint64_t > LowerHalf (Vec128< uint64_t > v)
 
HWY_API Vec64< int8_t > LowerHalf (Vec128< int8_t > v)
 
HWY_API Vec64< int16_t > LowerHalf (Vec128< int16_t > v)
 
HWY_API Vec64< int32_t > LowerHalf (Vec128< int32_t > v)
 
HWY_API Vec64< int64_t > LowerHalf (Vec128< int64_t > v)
 
HWY_API Vec64< float > LowerHalf (Vec128< float > v)
 
template<class V , HWY_NEON_IF_EMULATED_D(DFromV< V >) , HWY_IF_V_SIZE_V(V, 16) >
HWY_API VFromD< Half< DFromV< V > > > LowerHalf (V v)
 
template<class DH >
HWY_API VFromD< DH > LowerHalf (DH, VFromD< Twice< DH > > v)
 
template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec128< T > CombineShiftRightBytes (D d, Vec128< T > hi, Vec128< T > lo)
 
template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec64< T > CombineShiftRightBytes (D d, Vec64< T > hi, Vec64< T > lo)
 
template<int kBytes, class D >
HWY_API VFromD< D > ShiftLeftBytes (D d, VFromD< D > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftBytes (Vec128< T, N > v)
 
template<int kLanes, class D >
HWY_API VFromD< D > ShiftLeftLanes (D d, VFromD< D > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeftLanes (Vec128< T, N > v)
 
template<int kBytes, class D >
HWY_API VFromD< D > ShiftRightBytes (D d, VFromD< D > v)
 
template<int kLanes, class D >
HWY_API VFromD< D > ShiftRightLanes (D d, VFromD< D > v)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 4) >
HWY_API VFromD< D > CombineShiftRightBytes (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > UpperHalf (D, Vec128< uint8_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > UpperHalf (D, Vec128< uint16_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > UpperHalf (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API Vec64< uint64_t > UpperHalf (D, Vec128< uint64_t > v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > UpperHalf (D, Vec128< int8_t > v)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > UpperHalf (D, Vec128< int16_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > UpperHalf (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API Vec64< int64_t > UpperHalf (D, Vec128< int64_t > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec64< float > UpperHalf (D, Vec128< float > v)
 
template<class D , HWY_NEON_IF_EMULATED_D(D) , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > UpperHalf (D dh, VFromD< Twice< D > > v)
 
template<class DH , HWY_IF_V_SIZE_LE_D(DH, 4) >
HWY_API VFromD< DH > UpperHalf (DH dh, VFromD< Twice< DH > > v)
 
template<int kLane, typename T >
HWY_API Vec128< T, 1 > Broadcast (Vec128< T, 1 > v)
 
template<int kLane>
HWY_API Vec128< uint8_t > Broadcast (Vec128< uint8_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint8_t, N > Broadcast (Vec128< uint8_t, N > v)
 
template<int kLane>
HWY_API Vec128< uint16_t > Broadcast (Vec128< uint16_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint16_t, N > Broadcast (Vec128< uint16_t, N > v)
 
template<int kLane>
HWY_API Vec128< uint32_t > Broadcast (Vec128< uint32_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint32_t, N > Broadcast (Vec128< uint32_t, N > v)
 
template<int kLane>
HWY_API Vec128< uint64_t > Broadcast (Vec128< uint64_t > v)
 
template<int kLane>
HWY_API Vec128< int8_t > Broadcast (Vec128< int8_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int8_t, N > Broadcast (Vec128< int8_t, N > v)
 
template<int kLane>
HWY_API Vec128< int16_t > Broadcast (Vec128< int16_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int16_t, N > Broadcast (Vec128< int16_t, N > v)
 
template<int kLane>
HWY_API Vec128< int32_t > Broadcast (Vec128< int32_t > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int32_t, N > Broadcast (Vec128< int32_t, N > v)
 
template<int kLane>
HWY_API Vec128< int64_t > Broadcast (Vec128< int64_t > v)
 
template<int kLane>
HWY_API Vec128< float > Broadcast (Vec128< float > v)
 
template<int kLane, size_t N, HWY_IF_V_SIZE_LE(float, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > Broadcast (Vec128< float, N > v)
 
template<int kLane, typename V , HWY_NEON_IF_EMULATED_D(DFromV< V >) , HWY_IF_LANES_GT_D(DFromV< V >, 1) >
HWY_APIBroadcast (V v)
 
template<class D , typename TI , HWY_IF_T_SIZE_D(D, 1) >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> IndicesFromVec (D d, Vec128< TI, MaxLanes(D())> vec)
 
template<class D , typename TI >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> SetTableIndices (D d, const TI *idx)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > TableLookupLanes (Vec128< T, N > v, Indices128< T, N > idx)
 
template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 4) >
HWY_API Vec128< T, N > TwoTablesLookupLanes (Vec128< T, N > a, Vec128< T, N > b, Indices128< T, N > idx)
 
template<typename T >
HWY_API Vec64< T > TwoTablesLookupLanes (Vec64< T > a, Vec64< T > b, Indices128< T, 8/sizeof(T)> idx)
 
template<typename T >
HWY_API Vec128< T > TwoTablesLookupLanes (Vec128< T > a, Vec128< T > b, Indices128< T, 16/sizeof(T)> idx)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Reverse2 (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > Reverse2 (D d, Vec128< T > v)
 
template<class D , HWY_IF_T_SIZE_D(D, 8) >
HWY_API VFromD< D > Reverse2 (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Reverse4 (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > Reverse4 (D d, Vec128< T > v)
 
template<class D , HWY_IF_T_SIZE_D(D, 4) >
HWY_API VFromD< D > Reverse4 (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Reverse8 (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > Reverse8 (D d, Vec128< T > v)
 
template<class D , HWY_IF_T_SIZE_D(D, 2) >
HWY_API VFromD< D > Reverse8 (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 1) >
HWY_API Vec128< T, 1 > Reverse (D, Vec128< T, 1 > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 2) >
HWY_API Vec128< T, 2 > Reverse (D d, Vec128< T, 2 > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 4) >
HWY_API Vec128< T, 4 > Reverse (D d, Vec128< T, 4 > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 8) >
HWY_API Vec128< T, 8 > Reverse (D d, Vec128< T, 8 > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 16) >
HWY_API Vec128< T > Reverse (D d, Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle1032 (Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle01 (Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle0321 (Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle2103 (Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T > Shuffle0123 (Vec128< T > v)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > InterleaveLower (Vec128< T > a, Vec128< T > b)
 
template<size_t N, HWY_IF_V_SIZE_GT(float16_t, N, 4) >
HWY_API Vec128< float16_t, N > InterleaveLower (Vec128< float16_t, N > a, Vec128< float16_t, N > b)
 
template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 4) >
HWY_API Vec128< T, N > InterleaveLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D >
HWY_API VFromD< D > InterleaveLower (D, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > InterleaveUpper (D, VFromD< D > a, VFromD< D > b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipLower (V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (DW dw, V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipUpper (DW dw, V a, V b)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > SlideUpLanes (D, VFromD< D > v, size_t)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > SlideUpLanes (D d, VFromD< D > v, size_t amt)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > SlideDownLanes (D, VFromD< D > v, size_t)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > SlideDownLanes (D d, VFromD< D > v, size_t amt)
 
template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_D(DI32, 16) >
HWY_API VFromD< DI32 > SatWidenMulAccumFixedPoint (DI32, VFromD< Rebind< int16_t, DI32 > > a, VFromD< Rebind< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
template<class D32 , HWY_IF_F32_D(D32) , class V16 = VFromD<Repartition<bfloat16_t, D32>>>
HWY_API VFromD< D32 > ReorderWidenMulAccumulate (D32 df32, V16 a, V16 b, const VFromD< D32 > sum0, VFromD< D32 > &sum1)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > ReorderWidenMulAccumulate (D, Vec128< int16_t > a, Vec128< int16_t > b, const Vec128< int32_t > sum0, Vec128< int32_t > &sum1)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > ReorderWidenMulAccumulate (D d32, Vec64< int16_t > a, Vec64< int16_t > b, const Vec64< int32_t > sum0, Vec64< int32_t > &sum1)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > ReorderWidenMulAccumulate (D d32, Vec32< int16_t > a, Vec32< int16_t > b, const Vec32< int32_t > sum0, Vec32< int32_t > &sum1)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > ReorderWidenMulAccumulate (D, Vec128< uint16_t > a, Vec128< uint16_t > b, const Vec128< uint32_t > sum0, Vec128< uint32_t > &sum1)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > ReorderWidenMulAccumulate (D d32, Vec64< uint16_t > a, Vec64< uint16_t > b, const Vec64< uint32_t > sum0, Vec64< uint32_t > &sum1)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > ReorderWidenMulAccumulate (D du32, Vec32< uint16_t > a, Vec32< uint16_t > b, const Vec32< uint32_t > sum0, Vec32< uint32_t > &sum1)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > Combine (D d, VFromD< Half< D > > hi, VFromD< Half< D > > lo)
 
template<size_t N>
HWY_API Vec128< float, N > RearrangeToOddPlusEven (Vec128< float, N > sum0, Vec128< float, N > sum1)
 
HWY_API Vec128< int32_t > RearrangeToOddPlusEven (Vec128< int32_t > sum0, Vec128< int32_t > sum1)
 
HWY_API Vec64< int32_t > RearrangeToOddPlusEven (Vec64< int32_t > sum0, Vec64< int32_t > sum1)
 
HWY_API Vec32< int32_t > RearrangeToOddPlusEven (Vec32< int32_t > sum0, Vec32< int32_t > sum1)
 
HWY_API Vec128< uint32_t > RearrangeToOddPlusEven (Vec128< uint32_t > sum0, Vec128< uint32_t > sum1)
 
HWY_API Vec64< uint32_t > RearrangeToOddPlusEven (Vec64< uint32_t > sum0, Vec64< uint32_t > sum1)
 
HWY_API Vec32< uint32_t > RearrangeToOddPlusEven (Vec32< uint32_t > sum0, Vec32< uint32_t > sum1)
 
template<class D32 , HWY_IF_F32_D(D32) >
HWY_API VFromD< D32 > WidenMulPairwiseAdd (D32 df32, VFromD< Repartition< bfloat16_t, D32 > > a, VFromD< Repartition< bfloat16_t, D32 > > b)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > WidenMulPairwiseAdd (D, Vec128< int16_t > a, Vec128< int16_t > b)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > WidenMulPairwiseAdd (D d32, Vec64< int16_t > a, Vec64< int16_t > b)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > WidenMulPairwiseAdd (D d32, Vec32< int16_t > a, Vec32< int16_t > b)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > WidenMulPairwiseAdd (D, Vec128< uint16_t > a, Vec128< uint16_t > b)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > WidenMulPairwiseAdd (D d32, Vec64< uint16_t > a, Vec64< uint16_t > b)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > WidenMulPairwiseAdd (D d32, Vec32< uint16_t > a, Vec32< uint16_t > b)
 
template<class D >
HWY_API VFromD< D > ZeroExtendVector (D d, VFromD< Half< D > > lo)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > ConcatLowerLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > ConcatUpperUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > ConcatLowerUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_API VFromD< D > ConcatUpperLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > ConcatOdd (D, VFromD< D > hi, VFromD< D > lo)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec32< T > ConcatOdd (D d, Vec32< T > hi, Vec32< T > lo)
 
template<class D , HWY_IF_LANES_D(D, 2) , typename T = TFromD<D>>
HWY_API Vec128< T, 2 > ConcatOdd (D d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > ConcatEven (D, VFromD< D > hi, VFromD< D > lo)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec32< T > ConcatEven (D d, Vec32< T > hi, Vec32< T > lo)
 
template<class D , HWY_IF_LANES_D(D, 2) , typename T = TFromD<D>>
HWY_API Vec128< T, 2 > ConcatEven (D d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > DupEven (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > DupOdd (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > OddEven (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< D > 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 > InterleaveOdd (D, VFromD< D > a, VFromD< D > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > OddEvenBlocks (Vec128< T, N >, Vec128< T, N > even)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > SwapAdjacentBlocks (Vec128< T, N > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > ReverseBlocks (D, VFromD< D > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > ReorderDemote2To (D d32, Vec128< int64_t > a, Vec128< int64_t > b)
 
template<class D , HWY_IF_I32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ReorderDemote2To (D d32, VFromD< Repartition< int64_t, D > > a, VFromD< Repartition< int64_t, D > > b)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > ReorderDemote2To (D d32, Vec128< int64_t > a, Vec128< int64_t > b)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > ReorderDemote2To (D d32, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D , HWY_IF_U32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ReorderDemote2To (D d32, VFromD< Repartition< uint64_t, D > > a, VFromD< Repartition< uint64_t, D > > b)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > ReorderDemote2To (D d16, Vec128< int32_t > a, Vec128< int32_t > b)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > ReorderDemote2To (D, Vec64< int32_t > a, Vec64< int32_t > b)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec32< int16_t > ReorderDemote2To (D, Vec32< int32_t > a, Vec32< int32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > ReorderDemote2To (D d16, Vec128< int32_t > a, Vec128< int32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > ReorderDemote2To (D, Vec64< int32_t > a, Vec64< int32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > ReorderDemote2To (D, Vec32< int32_t > a, Vec32< int32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > ReorderDemote2To (D d16, Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > ReorderDemote2To (D, Vec64< uint32_t > a, Vec64< uint32_t > b)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > ReorderDemote2To (D, Vec32< uint32_t > a, Vec32< uint32_t > b)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > ReorderDemote2To (D d8, Vec128< int16_t > a, Vec128< int16_t > b)
 
template<class D , HWY_IF_I8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ReorderDemote2To (D d8, VFromD< Repartition< int16_t, D > > a, VFromD< Repartition< int16_t, D > > b)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > ReorderDemote2To (D d8, Vec128< int16_t > a, Vec128< int16_t > b)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > ReorderDemote2To (D d8, Vec128< uint16_t > a, Vec128< uint16_t > b)
 
template<class D , HWY_IF_U8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ReorderDemote2To (D d8, VFromD< Repartition< uint16_t, D > > a, VFromD< Repartition< uint16_t, D > > b)
 
template<class D , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > OrderedDemote2To (D d, V a, V b)
 
HWY_API Vec128< uint8_t > AESRound (Vec128< uint8_t > state, Vec128< uint8_t > round_key)
 
HWY_API Vec128< uint8_t > AESLastRound (Vec128< uint8_t > state, Vec128< uint8_t > round_key)
 
HWY_API Vec128< uint8_t > AESInvMixColumns (Vec128< uint8_t > state)
 
HWY_API Vec128< uint8_t > AESRoundInv (Vec128< uint8_t > state, Vec128< uint8_t > round_key)
 
HWY_API Vec128< uint8_t > AESLastRoundInv (Vec128< uint8_t > state, Vec128< uint8_t > round_key)
 
HWY_API Vec128< uint64_t > CLMulLower (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
HWY_API Vec128< uint64_t > CLMulUpper (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, VFromD< Rebind< bfloat16_t, D > > v)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_UNSIGNED(TFrom) , HWY_IF_UNSIGNED(TTo) , hwy::EnableIf<(sizeof(TTo)< sizeof(TFrom))> * = nullptr>
HWY_API Vec128< TTo, 1 > TruncateTo (DTo, Vec128< TFrom, 1 > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec16< uint8_t > TruncateTo (D, Vec128< uint64_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > TruncateTo (D, Vec128< uint64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > TruncateTo (D, Vec128< uint64_t > v)
 
template<class D , HWY_IF_U8_D(D) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > TruncateTo (D, VFromD< Rebind< uint32_t, D > > v)
 
template<class D , HWY_IF_U8_D(D) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > TruncateTo (D, VFromD< Rebind< uint16_t, D > > v)
 
HWY_API Vec128< int16_t > MulEven (Vec128< int8_t > a, Vec128< int8_t > b)
 
HWY_API Vec128< uint16_t > MulEven (Vec128< uint8_t > a, Vec128< uint8_t > b)
 
HWY_API Vec128< int32_t > MulEven (Vec128< int16_t > a, Vec128< int16_t > b)
 
HWY_API Vec128< uint32_t > MulEven (Vec128< uint16_t > a, Vec128< uint16_t > b)
 
HWY_API Vec128< int64_t > MulEven (Vec128< int32_t > a, Vec128< int32_t > b)
 
HWY_API Vec128< uint64_t > MulEven (Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<size_t N>
HWY_API Vec128< int16_t,(N+1)/2 > MulEven (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > MulEven (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t,(N+1)/2 > MulEven (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t,(N+1)/2 > MulEven (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > MulEven (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > MulEven (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_INLINE Vec128< T > MulEven (Vec128< T > a, Vec128< T > b)
 
HWY_API Vec128< int16_t > MulOdd (Vec128< int8_t > a, Vec128< int8_t > b)
 
HWY_API Vec128< uint16_t > MulOdd (Vec128< uint8_t > a, Vec128< uint8_t > b)
 
HWY_API Vec128< int32_t > MulOdd (Vec128< int16_t > a, Vec128< int16_t > b)
 
HWY_API Vec128< uint32_t > MulOdd (Vec128< uint16_t > a, Vec128< uint16_t > b)
 
HWY_API Vec128< int64_t > MulOdd (Vec128< int32_t > a, Vec128< int32_t > b)
 
HWY_API Vec128< uint64_t > MulOdd (Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<size_t N>
HWY_API Vec128< int16_t,(N+1)/2 > MulOdd (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > MulOdd (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t,(N+1)/2 > MulOdd (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t,(N+1)/2 > MulOdd (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > MulOdd (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > MulOdd (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_INLINE Vec128< T > MulOdd (Vec128< T > a, Vec128< T > b)
 
template<typename T , typename TI >
HWY_API Vec128< TI > TableLookupBytes (Vec128< T > bytes, Vec128< TI > from)
 
template<typename T , typename TI , size_t NI, HWY_IF_V_SIZE_LE(TI, NI, 8) >
HWY_API Vec128< TI, NI > TableLookupBytes (Vec128< T > bytes, Vec128< TI, NI > from)
 
template<typename T , size_t N, typename TI , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< TI > TableLookupBytes (Vec128< T, N > bytes, Vec128< TI > from)
 
template<typename T , size_t N, typename TI , size_t NI, HWY_IF_V_SIZE_LE(T, N, 8) , HWY_IF_V_SIZE_LE(TI, NI, 8) >
HWY_API Vec128< TI, NI > TableLookupBytes (Vec128< T, N > bytes, Vec128< TI, NI > from)
 
template<class V , class VI >
HWY_API VI TableLookupBytesOr0 (V bytes, VI from)
 
template<uint8_t kRcon>
HWY_API Vec128< uint8_t > AESKeyGenAssist (Vec128< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > ReduceSum (D, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D >
HWY_API MFromD< D > Dup128MaskFromMaskBits (D d, unsigned mask_bits)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CountTrue (D, Mask128< T > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API size_t CountTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API size_t FindKnownFirstTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API intptr_t FindFirstTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API size_t FindKnownLastTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API intptr_t FindLastTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API size_t StoreMaskBits (D d, MFromD< D > mask, uint8_t *bits)
 
template<class D >
HWY_API bool AllFalse (D d, MFromD< D > m)
 
template<class D , typename T = TFromD<D>>
HWY_API bool AllTrue (D d, Mask128< T > m)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool AllTrue (D d, MFromD< D > m)
 
template<typename T >
HWY_API Vec128< T, 1 > Compress (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T, N > Compress (Vec128< T, N > v, Mask128< T, N > mask)
 
template<typename T >
HWY_API Vec128< T, 1 > CompressNot (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > CompressNot (Vec128< T > v, Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > CompressNot (Vec128< T, N > v, Mask128< T, N > mask)
 
HWY_API Vec128< uint64_t > CompressBlocksNot (Vec128< uint64_t > v, Mask128< uint64_t >)
 
template<typename T , size_t N, HWY_IF_NOT_T_SIZE(T, 1) >
HWY_INLINE Vec128< T, N > CompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t CompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t CompressBlendedStore (VFromD< D > v, MFromD< D > m, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t CompressBitsStore (VFromD< D > v, const uint8_t *HWY_RESTRICT bits, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void LoadInterleaved2 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1)
 
template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void LoadInterleaved3 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2)
 
template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void LoadInterleaved4 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2, VFromD< D > &v3)
 
template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void StoreInterleaved2 (VFromD< D > v0, VFromD< D > v1, D d, T *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, T *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void StoreInterleaved4 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, VFromD< D > v3, D d, T *HWY_RESTRICT unaligned)
 
template<class T >
HWY_API Mask128< T, 1 > SetAtOrAfterFirst (Mask128< T, 1 > mask)
 
template<class T >
HWY_API Mask128< T, 2 > SetAtOrAfterFirst (Mask128< T, 2 > mask)
 
template<class T , size_t N, HWY_IF_LANES_GT(N, 2) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Mask128< T, N > SetAtOrAfterFirst (Mask128< T, N > mask)
 
template<class T , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Mask128< T > SetAtOrAfterFirst (Mask128< T > mask)
 
template<class T , size_t N>
HWY_API Mask128< T, N > SetBeforeFirst (Mask128< T, N > mask)
 
template<class T >
HWY_API Mask128< T, 1 > SetOnlyFirst (Mask128< T, 1 > mask)
 
template<class T >
HWY_API Mask128< T, 2 > SetOnlyFirst (Mask128< T, 2 > mask)
 
template<class T , size_t N, HWY_IF_LANES_GT(N, 2) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Mask128< T, N > SetOnlyFirst (Mask128< T, N > mask)
 
template<class T , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Mask128< T > SetOnlyFirst (Mask128< T > mask)
 
template<class T >
HWY_API Mask128< T, 1 > SetAtOrBeforeFirst (Mask128< T, 1 >)
 
template<class T , size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Mask128< T, N > SetAtOrBeforeFirst (Mask128< T, N > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Lt128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Lt128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Eq128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Eq128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Ne128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > Ne128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Min128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Max128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Min128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_INLINE VFromD< D > Max128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class V , HWY_IF_UI64_D(DFromV< V >) >
HWY_APILeadingZeroCount (V v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIHighestSetBitIndex (V v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, 1) >
HWY_APITrailingZeroCount (V v)
 
template<class D , HWY_SVE_IF_EMULATED_D(D) >
svbool_t FirstN (D, size_t count)
 
template<class D >
HWY_API svbool_t MaskFalse (const D)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API svuint16_t Set (D d, bfloat16_t arg)
 
template<class D >
VFromD< D > Zero (D d)
 
template<class D , class FromV >
HWY_API VFromD< D > BitCast (D d, FromV v)
 
template<class D , HWY_SVE_IF_EMULATED_D(D) >
VFromD< D > Undefined (D d)
 
template<class D , class FromV >
HWY_API VFromD< D > ResizeBitCast (D d, FromV v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API svint8_t Dup128VecFromValues (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 > t8, TFromD< D > t9, TFromD< D > t10, TFromD< D > t11, TFromD< D > t12, TFromD< D > t13, TFromD< D > t14, TFromD< D > t15)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API svuint8_t Dup128VecFromValues (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 > t8, TFromD< D > t9, TFromD< D > t10, TFromD< D > t11, TFromD< D > t12, TFromD< D > t13, TFromD< D > t14, TFromD< D > t15)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API svint16_t Dup128VecFromValues (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)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API svuint16_t Dup128VecFromValues (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)
 
template<class D , HWY_IF_F16_D(D) >
HWY_API svfloat16_t Dup128VecFromValues (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)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API VBF16 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)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API svint32_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API svuint32_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API svfloat32_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API svint64_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API svuint64_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1)
 
template<class D , HWY_IF_F64_D(D) >
HWY_API svfloat64_t Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIAnd (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIOr (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIXor (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIAndNot (const V a, const V b)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIXor3 (const V x1, const V x2, const V x3)
 
template<class V >
HWY_APIOr3 (V o1, V o2, V o3)
 
template<class V >
HWY_APIOrAnd (const V o, const V a1, const V a2)
 
HWY_API VBF16 Neg (VBF16 v)
 
HWY_API svuint64_t SumsOf8 (const svuint8_t v)
 
HWY_API svint64_t SumsOf8 (const svint8_t v)
 
HWY_API svint16_t MulFixedPoint15 (svint16_t a, svint16_t b)
 
template<class D , typename MFrom >
HWY_API svbool_t RebindMask (const D, const MFrom mask)
 
HWY_API svbool_t Not (svbool_t m)
 
HWY_API svbool_t And (svbool_t a, svbool_t b)
 
HWY_API svbool_t AndNot (svbool_t a, svbool_t b)
 
HWY_API svbool_t Or (svbool_t a, svbool_t b)
 
HWY_API svbool_t Xor (svbool_t a, svbool_t b)
 
HWY_API svbool_t ExclusiveNeither (svbool_t a, svbool_t b)
 
template<class D >
HWY_API bool AllFalse (D d, svbool_t m)
 
template<class D >
HWY_API bool AllTrue (D d, svbool_t m)
 
template<class D >
HWY_API intptr_t FindFirstTrue (D d, svbool_t m)
 
template<class D >
HWY_API size_t FindKnownFirstTrue (D d, svbool_t m)
 
template<class V , class D = DFromV<V>, HWY_SVE_IF_EMULATED_D(D) >
HWY_APIIfThenElse (const svbool_t mask, V yes, V no)
 
template<class V , class D = DFromV<V>, HWY_SVE_IF_NOT_EMULATED_D(D) >
HWY_APIIfThenElseZero (const svbool_t mask, const V yes)
 
template<class V , class D = DFromV<V>, HWY_SVE_IF_NOT_EMULATED_D(D) >
HWY_APIIfThenZeroElse (const svbool_t mask, const V no)
 
HWY_API svbool_t SetBeforeFirst (svbool_t m)
 
HWY_API svbool_t SetAtOrBeforeFirst (svbool_t m)
 
HWY_API svbool_t SetOnlyFirst (svbool_t m)
 
HWY_API svbool_t SetAtOrAfterFirst (svbool_t m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, sizeof(TFromD< DFrom >) *2) >
HWY_API svbool_t PromoteMaskTo (DTo, DFrom, svbool_t m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, 1) , HWY_IF_T_SIZE_D(DFrom, 2) >
HWY_API svbool_t DemoteMaskTo (DTo, DFrom, svbool_t m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >)/4) >
HWY_API svbool_t DemoteMaskTo (DTo d_to, DFrom d_from, svbool_t m)
 
template<class D >
HWY_API svbool_t LowerHalfOfMask (D, svbool_t m)
 
template<class V , class M >
HWY_APIMaskedMinOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedMaxOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedAddOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedSubOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedMulOr (V no, M m, V a, V b)
 
template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V( V,(hwy::IsSame< TFromV< V >, hwy::float16_t >() ?(1<< 2) :0)|(1<< 4)|(1<< 8)) >
HWY_APIMaskedDivOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedSatAddOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIMaskedSatSubOr (V no, M m, V a, V b)
 
template<class V >
HWY_API svbool_t Gt (const V a, const V b)
 
template<class V >
HWY_API svbool_t Ge (const V a, const V b)
 
template<class V >
HWY_API svbool_t TestBit (const V a, const V bit)
 
template<class V >
HWY_API svbool_t MaskFromVec (const V v)
 
template<class D >
HWY_API VFromD< D > VecFromMask (const D d, svbool_t mask)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API svbool_t IsNegative (V v)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIIfVecThenElse (const V mask, const V yes, const V no)
 
template<class V >
HWY_APICopySign (const V magn, const V sign)
 
template<class V >
HWY_APICopySignToAbs (const V abs, const V sign)
 
template<class V >
HWY_API svbool_t IsNaN (const V v)
 
template<class V >
HWY_API svbool_t IsInf (const V v)
 
template<class V >
HWY_API svbool_t IsFinite (const V v)
 
template<class D , HWY_SVE_IF_EMULATED_D(D) >
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_SVE_IF_EMULATED_D(D) >
HWY_API void BlendedStore (VFromD< D > v, MFromD< D > m, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API VFromD< D > LoadDup128 (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class V , class D >
HWY_API void Store (const V v, D d, TFromD< D > *HWY_RESTRICT p)
 
 HWY_SVE_FOREACH_UIF3264 (HWY_SVE_MASKED_SCATTER_INDEX, MaskedScatterIndex, st1_scatter) template< class D > HWY_API void ScatterIndex(VFromD< D > v
 
 HWY_SVE_FOREACH_UIF3264 (HWY_SVE_MASKED_GATHER_INDEX, MaskedGatherIndex, ld1_gather) template< class D > HWY_API VFromD< D > MaskedGatherIndexOr(VFromD< D > no
 
template<class D >
HWY_API VFromD< D > GatherIndex (D d, const TFromD< D > *HWY_RESTRICT p, VFromD< RebindToSigned< D > > indices)
 
template<size_t N, int kPow2>
HWY_API svuint32_t PromoteTo (Simd< uint32_t, N, kPow2 > dto, svuint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint32_t PromoteTo (Simd< int32_t, N, kPow2 > dto, svint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svuint64_t PromoteTo (Simd< uint64_t, N, kPow2 > dto, svuint16_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint64_t PromoteTo (Simd< int64_t, N, kPow2 > dto, svint16_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svuint64_t PromoteTo (Simd< uint64_t, N, kPow2 > dto, svuint8_t vfrom)
 
template<size_t N, int kPow2>
HWY_API svint64_t PromoteTo (Simd< int64_t, N, kPow2 > dto, svint8_t vfrom)
 
template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_LANES_GT(sizeof(TFromD< D >), sizeof(TFromV< V >)) >
HWY_API VFromD< D > PromoteTo (D di, V v)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N, kPow2 >, const svfloat16_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svfloat16_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat64_t PromoteTo (Simd< float64_t, N, kPow2 >, const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svint64_t PromoteTo (Simd< int64_t, N, kPow2 >, const svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint64_t PromoteTo (Simd< uint64_t, N, kPow2 >, const svfloat32_t v)
 
template<class D , class V , typename TD = TFromD<D>, typename TV = TFromV<V>, hwy::EnableIf< IsInteger< TD >() &&IsInteger< TV >() &&(IsSigned< TD >()==IsSigned< TV >())> * = nullptr>
HWY_API VFromD< D > PromoteUpperTo (D d, V v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svint16_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N, kPow2 > dn, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svint32_t v)
 
HWY_API svuint8_t U8FromU32 (const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svuint16_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N, kPow2 > dn, const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t TruncateTo (Simd< uint8_t, N, kPow2 >, const svuint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t TruncateTo (Simd< uint16_t, N, kPow2 >, const svuint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint32_t TruncateTo (Simd< uint32_t, N, kPow2 >, const svuint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t TruncateTo (Simd< uint8_t, N, kPow2 >, const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t TruncateTo (Simd< uint16_t, N, kPow2 >, const svuint32_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t TruncateTo (Simd< uint8_t, N, kPow2 >, const svuint16_t v)
 
template<size_t N, int kPow2>
HWY_API svint8_t DemoteTo (Simd< int8_t, N, kPow2 > dn, const svint16_t v)
 
template<size_t N, int kPow2>
HWY_API svint16_t DemoteTo (Simd< int16_t, N, kPow2 > dn, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svint8_t DemoteTo (Simd< int8_t, N, kPow2 > dn, const svint32_t v)
 
template<size_t N, int kPow2>
HWY_API svint32_t DemoteTo (Simd< int32_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svint16_t DemoteTo (Simd< int16_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svint8_t DemoteTo (Simd< int8_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint32_t DemoteTo (Simd< uint32_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint32_t DemoteTo (Simd< uint32_t, N, kPow2 > dn, const svuint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint16_t DemoteTo (Simd< uint16_t, N, kPow2 > dn, const svuint64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint8_t DemoteTo (Simd< uint8_t, N, kPow2 > dn, const svuint64_t v)
 
template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_LE_D(D, sizeof(TFromV< V >) - 1) >
HWY_API VFromD< D > DemoteTo (D dn, V v)
 
template<class D >
HWY_API VFromD< D > ConcatOdd (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_API VFromD< D > ConcatEven (D d, VFromD< D > hi, VFromD< D > lo)
 
template<size_t N, int kPow2>
HWY_API svfloat16_t DemoteTo (Simd< float16_t, N, kPow2 > d, const svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat16_t DemoteTo (Simd< float16_t, N, kPow2 > d, const svfloat64_t v)
 
template<size_t N, int kPow2>
HWY_API VBF16 DemoteTo (Simd< bfloat16_t, N, kPow2 > dbf16, svfloat32_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t DemoteTo (Simd< float32_t, N, kPow2 > d, const svfloat64_t v)
 
template<size_t N, int kPow2>
HWY_API svint32_t DemoteTo (Simd< int32_t, N, kPow2 > d, const svfloat64_t v)
 
template<size_t N, int kPow2>
HWY_API svuint32_t DemoteTo (Simd< uint32_t, N, kPow2 > d, const svfloat64_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t DemoteTo (Simd< float, N, kPow2 > d, const svint64_t v)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t DemoteTo (Simd< float, N, kPow2 > d, const svuint64_t v)
 
template<class VF , class DI = RebindToSigned<DFromV<VF>>>
HWY_API VFromD< DI > NearestInt (VF v)
 
template<class D , typename T2 , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > Iota (const D d, T2 first)
 
template<class D , class V >
HWY_APIInterleaveLower (D d, const V a, const V b)
 
template<class V >
HWY_APIInterleaveLower (const V a, const V b)
 
template<class D , class V = VFromD<D>, hwy::EnableIf< detail::IsFull(D())> * = nullptr>
HWY_APIInterleaveUpper (D d, const V a, const V b)
 
template<class D >
HWY_API VFromD< D > InterleaveWholeLower (D, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > InterleaveWholeUpper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , class V >
HWY_APIConcatUpperLower (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatLowerLower (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatLowerUpper (const D d, const V hi, const V lo)
 
template<class D , class V >
HWY_APIConcatUpperUpper (const D d, const V hi, const V lo)
 
template<class D , class V2 >
HWY_API VFromD< D > Combine (const D d, const V2 hi, const V2 lo)
 
template<class D , class V >
HWY_APIZeroExtendVector (const D d, const V lo)
 
template<class D2 , class V >
HWY_APILowerHalf (D2, const V v)
 
template<class V >
HWY_APILowerHalf (const V v)
 
template<class DH , class V >
HWY_APIUpperHalf (const DH dh, const V v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > ReduceSum (D d, VFromD< D > v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > ReduceMin (D d, VFromD< D > v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > ReduceMax (D d, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > SumOfLanes (D d, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > MinOfLanes (D d, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > MaxOfLanes (D d, VFromD< D > v)
 
template<class V >
HWY_API TFromV< V > ExtractLane (V v, size_t i)
 
template<class V >
HWY_APIInsertLane (const V v, size_t i, TFromV< V > t)
 
template<class V >
HWY_APIDupEven (const V v)
 
template<class V >
HWY_APIDupOdd (const V v)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APIOddEven (const V odd, const V even)
 
template<class D >
HWY_API VFromD< D > InterleaveEven (D, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > InterleaveOdd (D, VFromD< D > a, VFromD< D > b)
 
template<class V >
HWY_APIOddEvenBlocks (const V odd, const V even)
 
template<class D , class VI >
HWY_API VFromD< RebindToUnsigned< D > > IndicesFromVec (D d, VI vec)
 
template<class D , typename TI >
HWY_API VFromD< RebindToUnsigned< D > > SetTableIndices (D d, const TI *idx)
 
template<class D >
HWY_API VFromD< D > TwoTablesLookupLanes (D d, VFromD< D > a, VFromD< D > b, VFromD< RebindToUnsigned< D > > idx)
 
template<class V >
HWY_APITwoTablesLookupLanes (V a, V b, VFromD< RebindToUnsigned< DFromV< V > > > idx)
 
template<class V >
HWY_APISwapAdjacentBlocks (const V v)
 
template<class D , class V >
HWY_APIReverse (D d, V v)
 
template<class D >
HWY_API VFromD< D > SlideUpLanes (D d, VFromD< D > v, size_t amt)
 
template<class D >
HWY_API VFromD< D > Slide1Up (D d, VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > SlideDownLanes (D d, VFromD< D > v, size_t amt)
 
template<class D >
HWY_API VFromD< D > Slide1Down (D d, VFromD< D > v)
 
template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_APICompress (V v, svbool_t mask)
 
HWY_API svfloat16_t Compress (svfloat16_t v, svbool_t mask16)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)) >
HWY_APICompressNot (V v, const svbool_t mask)
 
HWY_API svuint64_t CompressBlocksNot (svuint64_t v, svbool_t mask)
 
template<class V , class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t CompressStore (const V v, const svbool_t mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t CompressBlendedStore (const V v, const svbool_t mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D >
HWY_API size_t FindKnownLastTrue (D d, svbool_t m)
 
template<class D >
HWY_API intptr_t FindLastTrue (D d, svbool_t m)
 
template<size_t kBytes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightBytes (const D d, const V hi, const V lo)
 
template<class V >
HWY_APIShuffle2301 (const V v)
 
template<class V >
HWY_APIShuffle2103 (const V v)
 
template<class V >
HWY_APIShuffle0321 (const V v)
 
template<class V >
HWY_APIShuffle1032 (const V v)
 
template<class V >
HWY_APIShuffle01 (const V v)
 
template<class V >
HWY_APIShuffle0123 (const V v)
 
template<class D , class V = VFromD<D>>
HWY_APIReverseBlocks (D d, V v)
 
template<class V , class VI >
HWY_API VI TableLookupBytes (const V v, const VI idx)
 
template<int kLane, class V >
HWY_APIBroadcast (const V v)
 
template<int kLane, class V >
HWY_APIBroadcastLane (const V v)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APIShiftLeftLanes (D d, const V v)
 
template<size_t kLanes, class V >
HWY_APIShiftLeftLanes (const V v)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APIShiftRightLanes (D d, V v)
 
template<int kBytes, class D , class V = VFromD<D>>
HWY_APIShiftLeftBytes (const D d, const V v)
 
template<int kBytes, class V >
HWY_APIShiftLeftBytes (const V v)
 
template<int kBytes, class D , class V = VFromD<D>>
HWY_APIShiftRightBytes (const D d, const V v)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipLower (DW dw, V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > ZipLower (const V a, const V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > ZipUpper (DW dw, V a, V b)
 
template<class V , HWY_IF_LANES_GT_D(DFromV< V >, 1) , HWY_IF_FLOAT_V(V) >
HWY_APIMulAddSub (V mul, V x, V sub_or_add)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t PromoteTo (Simd< float32_t, N, kPow2 > df32, VBF16 v)
 
template<size_t N, int kPow2>
HWY_API VBF16 ReorderDemote2To (Simd< bfloat16_t, N, kPow2 > dbf16, svfloat32_t a, svfloat32_t b)
 
template<size_t N, int kPow2>
HWY_API svint16_t ReorderDemote2To (Simd< int16_t, N, kPow2 > d16, svint32_t a, svint32_t b)
 
template<size_t N, int kPow2>
HWY_API svuint16_t ReorderDemote2To (Simd< uint16_t, N, kPow2 > d16, svint32_t a, svint32_t b)
 
template<size_t N, int kPow2>
HWY_API svuint16_t ReorderDemote2To (Simd< uint16_t, N, kPow2 > d16, svuint32_t a, svuint32_t b)
 
template<size_t N, int kPow2>
HWY_API svint8_t ReorderDemote2To (Simd< int8_t, N, kPow2 > d8, svint16_t a, svint16_t b)
 
template<size_t N, int kPow2>
HWY_API svuint8_t ReorderDemote2To (Simd< uint8_t, N, kPow2 > d8, svint16_t a, svint16_t b)
 
template<size_t N, int kPow2>
HWY_API svuint8_t ReorderDemote2To (Simd< uint8_t, N, kPow2 > d8, svuint16_t a, svuint16_t b)
 
template<size_t N, int kPow2>
HWY_API svint32_t ReorderDemote2To (Simd< int32_t, N, kPow2 > d32, svint64_t a, svint64_t b)
 
template<size_t N, int kPow2>
HWY_API svuint32_t ReorderDemote2To (Simd< uint32_t, N, kPow2 > d32, svint64_t a, svint64_t b)
 
template<size_t N, int kPow2>
HWY_API svuint32_t ReorderDemote2To (Simd< uint32_t, N, kPow2 > d32, svuint64_t a, svuint64_t b)
 
template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_D(D, sizeof(TFromV< V >)/2) >
HWY_API VFromD< D > ReorderDemote2To (D dn, V a, V b)
 
template<size_t N, int kPow2>
HWY_API VBF16 OrderedDemote2To (Simd< bfloat16_t, N, kPow2 > dbf16, svfloat32_t a, svfloat32_t b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_APIDiv (V a, V b)
 
template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIMaskedDivOr (V no, M m, V a, V b)
 
template<class V >
HWY_APIMod (V a, V b)
 
template<class V , class M >
HWY_APIMaskedModOr (V no, M m, V a, V b)
 
template<class V >
HWY_APIBroadcastSignBit (const V v)
 
template<class V >
HWY_APIIfNegativeThenElse (V v, V yes, V no)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) >
HWY_INLINE svbool_t LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API MFromD< D > Dup128MaskFromMaskBits (D d, unsigned mask_bits)
 
template<class D , HWY_IF_T_SIZE_D(D, 2) >
HWY_API MFromD< D > Dup128MaskFromMaskBits (D d, unsigned mask_bits)
 
template<class D >
HWY_API size_t StoreMaskBits (D d, svbool_t m, uint8_t *bits)
 
template<class V , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_INLINECompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIExpand (V v, svbool_t mask)
 
template<class D >
HWY_API VFromD< D > LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>, HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< DW > MulEven (const V a, const V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>, HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< DW > MulOdd (const V a, const V b)
 
HWY_API svint64_t MulEven (const svint64_t a, const svint64_t b)
 
HWY_API svuint64_t MulEven (const svuint64_t a, const svuint64_t b)
 
HWY_API svint64_t MulOdd (const svint64_t a, const svint64_t b)
 
HWY_API svuint64_t MulOdd (const svuint64_t a, const svuint64_t b)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t WidenMulPairwiseAdd (Simd< float, N, kPow2 > df32, VBF16 a, VBF16 b)
 
template<size_t N, int kPow2>
HWY_API svint32_t WidenMulPairwiseAdd (Simd< int32_t, N, kPow2 > d32, svint16_t a, svint16_t b)
 
template<size_t N, int kPow2>
HWY_API svuint32_t WidenMulPairwiseAdd (Simd< uint32_t, N, kPow2 > d32, svuint16_t a, svuint16_t b)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SatWidenMulAccumFixedPoint (DI32, VFromD< Rebind< int16_t, DI32 > > a, VFromD< Rebind< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
template<size_t N, int kPow2>
HWY_API svfloat32_t ReorderWidenMulAccumulate (Simd< float, N, kPow2 > df32, VBF16 a, VBF16 b, const svfloat32_t sum0, svfloat32_t &sum1)
 
template<size_t N, int kPow2>
HWY_API svint32_t ReorderWidenMulAccumulate (Simd< int32_t, N, kPow2 > d32, svint16_t a, svint16_t b, const svint32_t sum0, svint32_t &sum1)
 
template<size_t N, int kPow2>
HWY_API svuint32_t ReorderWidenMulAccumulate (Simd< uint32_t, N, kPow2 > d32, svuint16_t a, svuint16_t b, const svuint32_t sum0, svuint32_t &sum1)
 
template<class VW >
HWY_API VW RearrangeToOddPlusEven (const VW sum0, const VW sum1)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SumOfMulQuadAccumulate (DI32, svint8_t a, svint8_t b, svint32_t sum)
 
template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API VFromD< DU32 > SumOfMulQuadAccumulate (DU32, svuint8_t a, svuint8_t b, svuint32_t sum)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SumOfMulQuadAccumulate (DI32 di32, svuint8_t a_u, svint8_t b_i, svint32_t sum)
 
template<class DI64 , HWY_IF_I64_D(DI64) >
HWY_API VFromD< DI64 > SumOfMulQuadAccumulate (DI64, svint16_t a, svint16_t b, svint64_t sum)
 
template<class DU64 , HWY_IF_U64_D(DU64) >
HWY_API VFromD< DU64 > SumOfMulQuadAccumulate (DU64, svuint16_t a, svuint16_t b, svuint64_t sum)
 
template<class D >
HWY_INLINE svbool_t Lt128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Lt128Upper (D d, svuint64_t a, svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Eq128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Ne128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Eq128Upper (D d, svuint64_t a, svuint64_t b)
 
template<class D >
HWY_INLINE svbool_t Ne128Upper (D d, svuint64_t a, svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Min128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Max128 (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Min128Upper (D d, const svuint64_t a, const svuint64_t b)
 
template<class D >
HWY_INLINE svuint64_t Max128Upper (D d, const svuint64_t a, const svuint64_t b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APITrailingZeroCount (V v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API Vec128< TFromD< D >, HWY_MAX_LANES_D(D)> Zero (D)
 
template<class D , class VFrom >
HWY_API VFromD< D > BitCast (D, VFrom v)
 
template<class D , class VFrom >
HWY_API VFromD< D > ResizeBitCast (D d, VFrom v)
 
template<class D , typename T2 >
HWY_API VFromD< D > Set (D d, const T2 t)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Dup128VecFromValues (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 > t8, TFromD< D > t9, TFromD< D > t10, TFromD< D > t11, TFromD< D > t12, TFromD< D > t13, TFromD< D > t14, TFromD< D > t15)
 
template<class D , HWY_IF_T_SIZE_D(D, 4) >
HWY_API VFromD< D > Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3)
 
template<class D , HWY_IF_T_SIZE_D(D, 8) >
HWY_API VFromD< D > Dup128VecFromValues (D, TFromD< D > t0, TFromD< D > t1)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Not (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > And (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > AndNot (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Or (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Xor (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > BroadcastSignBit (Vec128< T, N > v)
 
template<class DTo , class MFrom >
HWY_API MFromD< DTo > RebindMask (DTo, MFrom mask)
 
template<class D >
VFromD< D > VecFromMask (D, MFromD< D > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenElse (Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenElseZero (Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > IfThenZeroElse (Mask128< T, N > mask, Vec128< T, N > no)
 
template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > ShiftLeft (Vec128< T, N > v)
 
template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > ShiftRight (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator<< (Vec128< T, N > v, Vec128< T, N > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator>> (Vec128< T, N > v, Vec128< T, N > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator- (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator+ (Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+7)/8 > SumsOf8 (Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t,(N+7)/8 > SumsOf8 (Vec128< int8_t, N > v)
 
template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > SaturatedAdd (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > SaturatedSub (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > AverageRound (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Abs (Vec128< T, N > a)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Min (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Max (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Neg (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > operator* (Vec128< T, N > a, Vec128< T, N > b)
 
template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > MulHigh (Vec128< T, N > a, Vec128< T, N > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T, 1 > MulHigh (Vec128< T, 1 > a, Vec128< T, 1 > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > MulFixedPoint15 (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > MulEven (Vec128< T, N > a, Vec128< T, N > b)
 
template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > MulOdd (Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > ApproximateReciprocal (Vec128< float, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > AbsDiff (Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > ApproximateReciprocalSqrt (Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Sqrt (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Round (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Trunc (Vec128< T, N > v)
 
template<typename Float , size_t N>
Vec128< Float, N > Ceil (Vec128< Float, N > v)
 
template<typename Float , size_t N>
Vec128< Float, N > Floor (Vec128< Float, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator== (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator!= (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > TestBit (Vec128< T, N > v, Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator< (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > operator<= (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D >
HWY_API MFromD< D > Lt128 (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API MFromD< D > Lt128Upper (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API MFromD< D > Eq128 (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API Mask128< uint64_t > Ne128 (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API MFromD< D > Eq128Upper (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API MFromD< D > Ne128Upper (D, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D >
HWY_API VFromD< D > Min128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > Max128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > Min128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > Max128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API VFromD< D > LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API VFromD< D > LoadN (D d, const TFromD< D > *HWY_RESTRICT p, size_t max_lanes_to_load)
 
template<class D >
HWY_API VFromD< D > LoadNOr (VFromD< D > no, D d, const TFromD< D > *HWY_RESTRICT p, size_t max_lanes_to_load)
 
template<class D >
HWY_API void StoreU (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D >
HWY_API void StoreN (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p, size_t max_lanes_to_store)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved2 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved3 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved4 (D d, const T *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2, VFromD< D > &v3)
 
template<class D >
HWY_API void StoreInterleaved2 (VFromD< D > v0, VFromD< D > v1, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D >
HWY_API void StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D >
HWY_API void StoreInterleaved4 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, VFromD< D > v3, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class DTo , typename TFrom , HWY_IF_NOT_SPECIAL_FLOAT(TFrom) >
HWY_API VFromD< DTo > PromoteTo (DTo d, Vec128< TFrom, HWY_MAX_LANES_D(DTo)> from)
 
template<class D64 , HWY_IF_UI64_D(D64) >
HWY_API VFromD< D64 > PromoteInRangeTo (D64 d64, VFromD< Rebind< float, D64 > > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D d, VFromD< Rebind< double, D > > from)
 
template<class DTo , typename TFrom , size_t N, HWY_IF_SIGNED(TFrom) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DTo >) >
HWY_API VFromD< DTo > DemoteTo (DTo, Vec128< TFrom, N > from)
 
template<class DBF16 , HWY_IF_BF16_D(DBF16) , class VF32 >
HWY_API VFromD< DBF16 > ReorderDemote2To (DBF16 dbf16, VF32 a, VF32 b)
 
template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > ReorderDemote2To (DN dn, V a, V b)
 
template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > OrderedDemote2To (DN dn, V a, V b)
 
template<class DN , HWY_IF_SPECIAL_FLOAT_D(DN) , class V , HWY_IF_F32_D(DFromV< V >) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > OrderedDemote2To (DN dn, V a, V b)
 
template<class D , HWY_IF_F32_D(D) , size_t N>
HWY_API VFromD< D > PromoteTo (D, Vec128< bfloat16_t, N > v)
 
template<class D , HWY_IF_BF16_D(D) , size_t N>
HWY_API VFromD< D > DemoteTo (D, Vec128< float, N > v)
 
template<class D32 , HWY_IF_UI32_D(D32) >
HWY_API VFromD< D32 > DemoteInRangeTo (D32 d32, VFromD< Rebind< double, D32 > > v)
 
template<class DTo , typename TFrom >
HWY_API VFromD< DTo > ConvertTo (DTo d, Vec128< TFrom, HWY_MAX_LANES_D(DTo)> from)
 
template<class DI , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(DI) , HWY_IF_T_SIZE_ONE_OF_D(DI,(1<< 4)|(1<< 8)) >
HWY_API VFromD< DI > ConvertInRangeTo (DI di, VFromD< RebindToFloat< DI > > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > U8FromU32 (Vec128< uint32_t, N > v)
 
template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > TruncateTo (D, Vec128< uint64_t, N > v)
 
template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > TruncateTo (D, Vec128< uint32_t, N > v)
 
template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > TruncateTo (D, Vec128< uint16_t, N > v)
 
template<class DN , HWY_IF_UNSIGNED_D(DN) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > OrderedTruncate2To (DN dn, V a, V b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > LowerHalf (Vec128< T, N > v)
 
template<class D >
HWY_API VFromD< D > LowerHalf (D, VFromD< Twice< D > > v)
 
template<class D >
HWY_API VFromD< D > UpperHalf (D d, VFromD< Twice< D > > v)
 
template<class D , class VH = VFromD<Half<D>>>
HWY_API VFromD< D > Combine (D d, VH hi_half, VH lo_half)
 
template<class D >
HWY_API VFromD< D > ConcatLowerLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_API VFromD< D > ConcatUpperUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_API VFromD< D > ConcatLowerUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D >
HWY_EMU128_CONCAT_INLINE VFromD< D > ConcatOdd (D d, VFromD< D > hi, VFromD< D > lo)
 
template<int kBytes, class D >
HWY_API VFromD< D > CombineShiftRightBytes (D d, VFromD< D > hi, VFromD< D > lo)
 
template<int kLanes, class D , typename T = TFromD<D>>
HWY_API VFromD< D > ShiftLeftLanes (D d, VFromD< D > v)
 
template<typename T , size_t N>
HWY_APIGetLane (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > InsertLane (Vec128< T, N > v, size_t i, T t)
 
template<typename T , size_t N>
HWY_APIExtractLane (Vec128< T, N > v, size_t i)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > DupEven (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > DupOdd (Vec128< T, N > v)
 
template<class D , typename TI , size_t N>
HWY_API Indices128< TFromD< D >, N > IndicesFromVec (D d, Vec128< TI, N > vec)
 
template<class D , typename TI >
HWY_API Indices128< TFromD< D >, HWY_MAX_LANES_D(D)> SetTableIndices (D d, const TI *idx)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > TwoTablesLookupLanes (Vec128< T, N > a, Vec128< T, N > b, Indices128< T, N > idx)
 
template<class D >
HWY_API VFromD< D > ReverseBlocks (D, VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse (D d, VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse2 (D d, VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse4 (D d, VFromD< D > v)
 
template<class D >
HWY_API VFromD< D > Reverse8 (D d, VFromD< D > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Shuffle2301 (Vec128< T, N > v)
 
template<int kLane, typename T , size_t N>
HWY_API Vec128< T, N > Broadcast (Vec128< T, N > v)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (Vec128< T, N > v, Vec128< TI, NI > indices)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytesOr0 (Vec128< T, N > v, Vec128< TI, NI > indices)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > InterleaveLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D >
HWY_API VFromD< D > InterleaveUpper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D >
HWY_API bool AllTrue (D d, MFromD< D > mask)
 
template<class D >
HWY_API MFromD< D > LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D >
HWY_API size_t CountTrue (D d, MFromD< D > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Compress (Vec128< T, N > v, Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Expand (Vec128< T, N > v, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CompressNot (Vec128< T, N > v, Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > CompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<class T , size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Mask128< T, N > SetAtOrAfterFirst (Mask128< T, N > mask)
 
template<class T , size_t N>
HWY_API Mask128< T, N > SetOnlyFirst (Mask128< T, N > mask)
 
template<class T , size_t N>
HWY_API Mask128< T, N > SetAtOrBeforeFirst (Mask128< T, N > mask)
 
template<class D , HWY_IF_F32_D(D) , class VBF16 >
HWY_API VFromD< D > WidenMulPairwiseAdd (D df32, VBF16 a, VBF16 b)
 
template<class D , HWY_IF_I32_D(D) , class VI16 >
HWY_API VFromD< D > WidenMulPairwiseAdd (D d32, VI16 a, VI16 b)
 
template<class D , HWY_IF_U32_D(D) , class VU16 >
HWY_API VFromD< D > WidenMulPairwiseAdd (D du32, VU16 a, VU16 b)
 
template<class D , HWY_IF_F32_D(D) , size_t N, class VBF16 >
HWY_API VFromD< D > ReorderWidenMulAccumulate (D df32, VBF16 a, VBF16 b, const Vec128< float, N > sum0, Vec128< float, N > &sum1)
 
template<class D , HWY_IF_I32_D(D) , size_t N, class VI16 >
HWY_API VFromD< D > ReorderWidenMulAccumulate (D d32, VI16 a, VI16 b, const Vec128< int32_t, N > sum0, Vec128< int32_t, N > &sum1)
 
template<class D , HWY_IF_U32_D(D) , size_t N, class VU16 >
HWY_API VFromD< D > ReorderWidenMulAccumulate (D du32, VU16 a, VU16 b, const Vec128< uint32_t, N > sum0, Vec128< uint32_t, N > &sum1)
 
template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_APIReduceSum (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_APIReduceMin (D d, VFromD< D > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_APIReduceMax (D d, VFromD< D > v)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > MulEven (Vec128< T > a, Vec128< T > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > MulOdd (Vec128< T > a, Vec128< T > b)
 
template<class V >
HWY_APIClamp (const V v, const V lo, const V hi)
 
template<class D >
HWY_API Vec< D > SignBit (D d)
 
template<class D >
HWY_API Vec< D > NaN (D d)
 
template<class D >
HWY_API Vec< D > Inf (D d)
 
template<class DTo , class DFrom >
HWY_API VFromD< DTo > ZeroExtendResizeBitCast (DTo d_to, DFrom d_from, VFromD< DFrom > v)
 
template<class D , typename T = TFromD<D>>
HWY_API void SafeFillN (const size_t num, const T value, D d, T *HWY_RESTRICT to)
 
template<class D , typename T = TFromD<D>>
HWY_API void SafeCopyN (const size_t num, D d, const T *HWY_RESTRICT from, T *HWY_RESTRICT to)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API Mask< DFromV< V > > IsNegative (V v)
 
template<class D >
HWY_API Mask< D > MaskFalse (D d)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIIfNegativeThenElseZero (V v, V yes)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIIfNegativeThenZeroElse (V v, V no)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIZeroIfNegative (V v)
 
template<class DTo , class DFrom >
HWY_API Mask< DTo > PromoteMaskTo (DTo d_to, DFrom d_from, Mask< DFrom > m)
 
template<class DTo , class DFrom >
HWY_API Mask< DTo > DemoteMaskTo (DTo d_to, DFrom d_from, Mask< DFrom > m)
 
template<class D >
HWY_API Mask< D > LowerHalfOfMask (D d, Mask< Twice< D > > m)
 
template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIRotateLeft (V v)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIRol (V a, V b)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIRor (V a, V b)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIRotateLeftSame (V v, int bits)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIRotateRightSame (V v, int bits)
 
template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIAddSub (V a, V b)
 
template<class V , class M >
HWY_APIMaskedDivOr (V no, M m, V a, V b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIIfNegativeThenNegOrUndefIfZero (V mask, V v)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_SIGNED_V(V) >
HWY_APISaturatedNeg (V v)
 
template<class V , HWY_IF_I32(TFromV< V >) >
HWY_APISaturatedNeg (V v)
 
template<class V , HWY_IF_SIGNED_V(V) >
HWY_APISaturatedAbs (V v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > ReduceMin (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > ReduceMax (D d, VFromD< D > v)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_API MFromD< DFromV< V > > IsEitherNaN (V a, V b)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > IsInf (const V v)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > IsFinite (const V v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void LoadInterleaved2 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1)
 
template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 16) >
HWY_API void LoadInterleaved3 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2)
 
template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void LoadInterleaved3 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2)
 
template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 16) >
HWY_API void LoadInterleaved4 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &v0, VFromD< D > &v1, VFromD< D > &v2, VFromD< D > &v3)
 
template<class D , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void StoreInterleaved2 (VFromD< D > v0, VFromD< D > v1, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API void StoreInterleaved2 (V part0, V part1, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void StoreInterleaved3 (VFromD< D > part0, VFromD< D > part1, VFromD< D > part2, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API void StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void StoreInterleaved4 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, VFromD< D > v3, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) >
HWY_API void StoreInterleaved4 (VFromD< D > part0, VFromD< D > part1, VFromD< D > part2, VFromD< D > part3, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreN (VFromD< D > v, D d, T *HWY_RESTRICT p, size_t max_lanes_to_store)
 
template<class D , typename T = TFromD<D>>
HWY_API void ScatterOffset (VFromD< D > v, D d, T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offset)
 
template<class D , typename T = TFromD<D>>
HWY_API void ScatterIndex (VFromD< D > v, D d, T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D d, T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > GatherOffset (D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offset)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > GatherIndex (D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > MaskedGatherIndex (MFromD< D > m, D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > MaskedGatherIndexOr (VFromD< D > no, MFromD< D > m, D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API void ScatterIndexN (VFromD< D > v, D d, T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index, const size_t max_lanes_to_store)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > GatherIndexN (D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index, const size_t max_lanes_to_load)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIAbsDiff (V a, V b)
 
template<class V , HWY_IF_UI8_D(DFromV< V >) , HWY_IF_V_SIZE_GT_D(DFromV< V >,(HWY_TARGET==HWY_SCALAR ? 0 :4)) >
HWY_API Vec< RepartitionToWideX3< DFromV< V > > > SumsOf8AbsDiff (V a, V b)
 
template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_APISaturatedAdd (V a, V b)
 
template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_APISaturatedSub (V a, V b)
 
template<class DN , HWY_IF_SIGNED_D(DN) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_U2I_DEMOTE_FROM_LANE_SIZE_V(V) , class V2 = VFromD<Rebind<TFromV<V>, DN>>, hwy::EnableIf<(sizeof(TFromD< DN >)< sizeof(TFromV< V >))> * = nullptr, HWY_IF_LANES_D(DFromV< V >, HWY_MAX_LANES_D(DFromV< V2 >)) >
HWY_API VFromD< DN > DemoteTo (DN dn, V v)
 
template<class D , class V >
HWY_API VFromD< D > PromoteLowerTo (D d, V v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, VFromD< Rebind< float16_t, D > > v)
 
template<class D , HWY_IF_F16_D(D) >
HWY_API VFromD< D > DemoteTo (D df16, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > OrderedDemote2To (D dbf16, VFromD< Repartition< float, D > > a, VFromD< Repartition< float, D > > b)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dbf16, VFromD< Repartition< float, D > > a, VFromD< Repartition< float, D > > b)
 
template<class D , HWY_IF_UI64_D(D) , class V , HWY_IF_F32(TFromV< V >) >
HWY_API VFromD< D > PromoteInRangeLowerTo (D d, V v)
 
template<class D , HWY_IF_UI64_D(D) , class V , HWY_IF_F32(TFromV< V >) >
HWY_API VFromD< D > PromoteInRangeEvenTo (D d, V v)
 
template<class V >
HWY_API VFromD< RepartitionToWideX2< DFromV< V > > > SumsOf4 (V v)
 
template<class V , class D = DFromV<V>, HWY_IF_U8_D(D) , HWY_IF_V_SIZE_GT_D(D, 8) , HWY_IF_POPCNT(D) >
HWY_APIPopulationCount (V v)
 
template<class V , class D = DFromV<V>, HWY_IF_U16_D(D) >
HWY_APIPopulationCount (V v)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_LE_V(V, HWY_MAX_BYTES/2) >
HWY_APIoperator* (const V a, const V b)
 
template<class V , HWY_IF_T_SIZE_V(V, 8) , HWY_IF_V_SIZE_V(V, 8) , HWY_IF_NOT_FLOAT_V(V) >
HWY_APIoperator* (V x, V y)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIMulAdd (V mul, V x, V add)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APINegMulAdd (V mul, V x, V add)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIMulSub (V mul, V x, V sub)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APINegMulSub (V mul, V x, V sub)
 
template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIMulAddSub (V mul, V x, V sub_or_add)
 
template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > operator/ (Vec1< T > a, Vec1< T > b)
 
template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > operator% (Vec1< T > a, Vec1< T > b)
 
template<class DI16 , class VU8 , class VI8 , class VU8_2 = Vec<Repartition<uint8_t, DI16>>, HWY_IF_I16_D(DI16) , HWY_IF_U8_D(DFromV< VU8 >) , HWY_IF_I8_D(DFromV< VI8 >) , HWY_IF_LANES_D(DFromV< VU8 >, HWY_MAX_LANES_V(VI8)) , HWY_IF_LANES_D(DFromV< VU8 >, HWY_MAX_LANES_V(VU8_2)) >
HWY_API Vec< DI16 > SatWidenMulPairwiseAdd (DI16 di16, VU8 a, VI8 b)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SatWidenMulPairwiseAccumulate (DI32 di32, VFromD< Repartition< int16_t, DI32 > > a, VFromD< Repartition< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SumOfMulQuadAccumulate (DI32 di32, VFromD< Repartition< int8_t, DI32 > > a, VFromD< Repartition< int8_t, DI32 > > b, VFromD< DI32 > sum)
 
template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API VFromD< DU32 > SumOfMulQuadAccumulate (DU32 du32, VFromD< Repartition< uint8_t, DU32 > > a, VFromD< Repartition< uint8_t, DU32 > > b, VFromD< DU32 > sum)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > SumOfMulQuadAccumulate (DI32 di32, VFromD< Repartition< uint8_t, DI32 > > a_u, VFromD< Repartition< int8_t, DI32 > > b_i, VFromD< DI32 > sum)
 
template<class V , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t CompressBitsStore (V v, const uint8_t *HWY_RESTRICT bits, D d, T *unaligned)
 
template<class V , class M , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t CompressStore (V v, M mask, D d, T *HWY_RESTRICT unaligned)
 
template<class V , class M , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t CompressBlendedStore (V v, M mask, D d, T *HWY_RESTRICT unaligned)
 
template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APICompress (V v, const M mask)
 
template<class V , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APICompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APICompressNot (V v, M mask)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N > Expand (Vec128< T, N > v, Mask128< T, N > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > Expand (Vec128< T > v, Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec128< T, N > Expand (Vec128< T, N > v, Mask128< T, N > mask)
 
template<typename T >
HWY_API Vec128< T, 1 > Expand (Vec128< T, 1 > v, Mask128< T, 1 > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , HWY_IF_T_SIZE_V(V, 2) >
HWY_APIReverseLaneBytes (V v)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIReverseBits (V v)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)|(1<< 8)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIReverseBits (V v)
 
template<size_t kIdx3, size_t kIdx2, size_t kIdx1, size_t kIdx0, class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIPer4LaneBlockShuffle (V v)
 
template<class D >
HWY_API size_t Blocks (D d)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIInsertBlock (V, V blk_to_insert)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIExtractBlock (V v)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIBroadcastBlock (V v)
 
template<int kLane, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIBroadcastLane (V v)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > Slide1Up (D d, VFromD< D >)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > Slide1Down (D d, VFromD< D >)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > SlideUpBlocks (D, VFromD< D > v)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > SlideDownBlocks (D, VFromD< D > v)
 
template<class D >
HWY_API Mask< D > SlideMask1Up (D d, Mask< D > m)
 
template<class D >
HWY_API Mask< D > SlideMask1Down (D d, Mask< D > m)
 
template<class D >
HWY_API Mask< D > SlideMaskUpLanes (D d, Mask< D > m, size_t amt)
 
template<class D >
HWY_API Mask< D > SlideMaskDownLanes (D d, Mask< D > m, size_t amt)
 
template<class V >
HWY_APIAdd (V a, V b)
 
template<class V >
HWY_APISub (V a, V b)
 
template<class V >
HWY_APIMul (V a, V b)
 
template<class V >
HWY_APIDiv (V a, V b)
 
template<class V >
Shl (V a, V b)
 
template<class V >
Shr (V a, V b)
 
template<class V >
HWY_API auto Eq (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Ne (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Lt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Gt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Ge (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto Le (V a, V b) -> decltype(a==b)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T, HWY_MAX_LANES_D(D)> Zero (D)
 
template<class D , HWY_IF_NOT_SPECIAL_FLOAT(TFromD< D >) >
HWY_API VFromD< D > Set (D, TFromD< D > t)
 
template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > Neg (Vec128< T, N > v)
 
template<class T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > Abs (Vec128< T, N > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > Load (D, const T *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API VFromD< D > Load (D d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > VecFromMask (Mask128< T, N > v)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > ShiftLeftSame (Vec128< T, N > v, const int bits)
 
template<typename T , size_t N, HWY_IF_UNSIGNED(T) >
HWY_API Vec128< T, N > ShiftRightSame (Vec128< T, N > v, const int bits)
 
template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > ShiftLeft (Vec128< T, N > v)
 
template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > ShiftRight (Vec128< T, N > v)
 
template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > Shuffle1032 (Vec128< T > v)
 
template<class T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > Shuffle01 (Vec128< T > v)
 
template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > Shuffle0321 (Vec128< T > v)
 
template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > Shuffle2103 (Vec128< T > v)
 
template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > Shuffle0123 (Vec128< T > v)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator!= (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator!= (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator!= (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > operator!= (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator!= (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator!= (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator!= (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, N > operator!= (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator!= (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator!= (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_INLINE Mask128< T, N > operator> (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > operator>= (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Mask128< T, N > operator< (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Mask128< T, N > operator<= (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > LoadU (D, const T *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API VFromD< D > LoadU (D d, const T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > LoadDup128 (D d, const T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > LoadN (D d, const T *HWY_RESTRICT p, size_t max_lanes_to_load)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > LoadNOr (VFromD< D > no, D d, const T *HWY_RESTRICT p, size_t max_lanes_to_load)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D d, const T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, MFromD< D > m, D d, const T *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API void Store (Vec128< T > v, D, T *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API void StoreU (Vec128< T > v, D, T *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API void Store (VFromD< D > v, D d, T *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API void StoreU (VFromD< D > v, D d, T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > operator+ (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > operator- (Vec128< T, N > a, Vec128< T, N > b)
 
template<class V , HWY_IF_U8(TFromV< V >) >
HWY_API VFromD< RepartitionToWideX3< DFromV< V > > > SumsOf8 (V v)
 
template<typename T , size_t N, HWY_IF_UNSIGNED(T) , HWY_IF_T_SIZE_ONE_OF(T, 0x6) >
HWY_API Vec128< T, N > AverageRound (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > operator* (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , HWY_PPC_IF_MULHIGH_8_16_32_NOT_USING_VEC_MULH(T) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, 1 > MulHigh (Vec128< T, 1 > a, Vec128< T, 1 > b)
 
template<typename T , size_t N, HWY_PPC_IF_MULHIGH_8_16_32_NOT_USING_VEC_MULH(T) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< T, N > MulHigh (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > Rol (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > Ror (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > RotateLeftSame (Vec128< T, N > v, int bits)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > RotateRightSame (Vec128< T, N > v, int bits)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > ApproximateReciprocal (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > Min (Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > Max (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > LowerHalf (D, VFromD< Twice< D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > UpperHalf (D d, VFromD< Twice< D > > v)
 
template<int kBytes, class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > CombineShiftRightBytes (D, Vec128< T > hi, Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T, 1 > TableLookupLanes (Vec128< T, 1 > v, Indices128< T, 1 >)
 
template<typename T >
HWY_API Vec128< T > TwoTablesLookupLanes (Vec128< T > a, Vec128< T > b, Indices128< T > idx)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 4) >
HWY_API Vec64< T > Reverse (D, Vec64< T > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec32< T > Reverse (D d, Vec32< T > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec16< T > Reverse (D d, Vec16< T > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 1) >
HWY_API Vec128< T, 1 > Reverse2 (D, Vec128< T, 1 > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > InterleaveUpper (D, Vec128< T > a, Vec128< T > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , class VH = VFromD<Half<D>>>
HWY_API VFromD< D > Combine (D d, VH hi_half, VH lo_half)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > ConcatLowerLower (D d, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > ConcatUpperUpper (D d, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > ConcatLowerUpper (D d, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > ConcatUpperLower (D, Vec128< T > hi, Vec128< T > lo)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ConcatUpperLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_UNSIGNED(FromT) , hwy::EnableIf<(sizeof(FromT) >=sizeof(TFromD< D >) *2)> * = nullptr, HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > TruncateTo (D, Vec128< FromT, 1 > v)
 
template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_UNSIGNED(FromT) , HWY_IF_T_SIZE(FromT, sizeof(TFromD< D >) *2) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > TruncateTo (D, Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > ConcatOdd (D d, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec64< T > ConcatOdd (D, Vec64< T > hi, Vec64< T > lo)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > ConcatEven (D d, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec64< T > ConcatEven (D, Vec64< T > hi, Vec64< T > lo)
 
template<class D , HWY_IF_UNSIGNED_D(D) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > OrderedTruncate2To (D d, V a, V b)
 
template<typename T >
HWY_API Vec128< T, 1 > DupEven (Vec128< T, 1 > v)
 
template<typename T >
HWY_API Vec128< T, 2 > DupEven (Vec128< T, 2 > v)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > DupEven (Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_INLINE Vec128< T, N > OddEven (Vec128< T, N > a, Vec128< T, N > b)
 
HWY_API Vec16< int16_t > MulFixedPoint15 (Vec16< int16_t > a, Vec16< int16_t > b)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > operator<< (Vec128< T, N > v, Vec128< T, N > bits)
 
template<class D32 , HWY_IF_F32_D(D32) , class V16 = VFromD<Repartition<bfloat16_t, D32>>>
HWY_API VFromD< D32 > WidenMulPairwiseAdd (D32 df32, V16 a, V16 b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > RearrangeToOddPlusEven (Vec128< int32_t, N > sum0, Vec128< int32_t, N >)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > RearrangeToOddPlusEven (Vec128< uint32_t, N > sum0, Vec128< uint32_t, N >)
 
template<class D , typename FromT , HWY_IF_T_SIZE_D(D, 2 *sizeof(FromT)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) , HWY_IF_UNSIGNED(FromT) >
HWY_API VFromD< D > PromoteTo (D, Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v)
 
template<class D , typename FromT , HWY_IF_T_SIZE_D(D, 8) , HWY_IF_NOT_FLOAT_D(D) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(FromT) , HWY_IF_T_SIZE_ONE_OF(FromT,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > PromoteTo (D d64, Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v)
 
template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D df64, VFromD< Rebind< int32_t, D > > v)
 
template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D df64, VFromD< Rebind< uint32_t, D > > v)
 
template<class D , typename FromT , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_T_SIZE_D(D, 2 *sizeof(FromT)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) , HWY_IF_UNSIGNED(FromT) >
HWY_API VFromD< D > PromoteUpperTo (D d, Vec128< FromT > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df32, Vec128< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df32, Vec128< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, Vec128< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df64, Vec128< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df64, Vec128< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , class V >
HWY_API VFromD< D > PromoteUpperTo (D d, V v)
 
template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_SIGNED(FromT) , HWY_IF_T_SIZE(FromT, sizeof(TFromD< D >) *2) >
HWY_API VFromD< D > DemoteTo (D, Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > DemoteTo (D df16, VFromD< Rebind< double, D > > 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 > ReorderDemote2To (DN dn, V a, V b)
 
template<class D , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > OrderedDemote2To (D d, V a, V b)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > DemoteTo (D, Vec64< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > DemoteTo (D d, Vec128< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > DemoteTo (D di32, Vec64< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > DemoteTo (D di32, Vec128< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > DemoteTo (D du32, Vec64< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > DemoteTo (D du32, Vec128< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > DemoteTo (D df32, Vec64< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > DemoteTo (D df32, Vec128< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > DemoteTo (D df32, Vec64< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > DemoteTo (D df32, Vec128< uint64_t > v)
 
template<class D , typename FromT , HWY_IF_F32_D(D) , HWY_IF_UI32(FromT) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ConvertTo (D df32, Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v)
 
template<class D , typename FromT , HWY_IF_F32_D(D) , HWY_IF_UI32(FromT) , HWY_IF_V_SIZE_D(D, 16) >
HWY_API VFromD< D > ConvertTo (D df32, Vec128< FromT > v)
 
template<class D , HWY_IF_I32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > ConvertTo (D di32, Vec128< float, Rebind< float, D >().MaxLanes()> v)
 
template<class D , HWY_IF_I64_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec128< double, Rebind< double, D >().MaxLanes()> v)
 
template<size_t N>
HWY_API Vec128< double, N > Round (Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Trunc (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Ceil (Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > Floor (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > IsInf (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, N > IsFinite (Vec128< T, N > v)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API size_t StoreMaskBits (D, MFromD< D > mask, uint8_t *bits)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) >
HWY_API bool AllFalse (D d, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownFirstTrue (D d, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindFirstTrue (D d, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownLastTrue (D d, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindLastTrue (D d, MFromD< D > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > Compress (Vec128< T > v, Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_NOT_T_SIZE(T, 1) >
HWY_API Vec128< T, N > CompressBits (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_UI64_D(D) >
HWY_API VFromD< D > SumOfLanes (D, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > SumOfLanes (D du16, Vec32< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > SumOfLanes (D du16, Vec64< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > SumOfLanes (D du16, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I16_D(D) >
HWY_API Vec32< int16_t > SumOfLanes (D di16, Vec32< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > SumOfLanes (D di16, Vec64< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > SumOfLanes (D di16, Vec128< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > SumOfLanes (D du8, Vec32< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U8_D(D) >
HWY_API Vec16< uint8_t > SumOfLanes (D du8, Vec16< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > SumOfLanes (D du8, Vec64< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > SumOfLanes (D du8, Vec128< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I8_D(D) >
HWY_API Vec32< int8_t > SumOfLanes (D di8, Vec32< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_I8_D(D) >
HWY_API Vec16< int8_t > SumOfLanes (D di8, Vec16< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > SumOfLanes (D di8, Vec64< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > SumOfLanes (D di8, Vec128< int8_t > v)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Lt128 (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Eq128 (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Ne128 (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Lt128Upper (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Eq128Upper (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > Ne128Upper (D d, V a, V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMin128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMax128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMin128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIMax128Upper (D d, const V a, const V b)
 
template<typename T , size_t N, int kPow2>
constexpr size_t MLenFromD (Simd< T, N, kPow2 >)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API size_t Lanes (D)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API size_t CappedLanes (D, size_t cap)
 
template<size_t N, int kPow2>
decltype(Set(Simd< int16_t, N, kPow2 >(), 0)) Set (Simd< hwy::bfloat16_t, N, kPow2 > d, hwy::bfloat16_t arg)
 
template<size_t N, int kPow2>
decltype(Set(Simd< uint16_t, N, kPow2 >(), 0)) Set (Simd< hwy::float16_t, N, kPow2 > d, hwy::float16_t arg)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_APINot (const V v)
 
template<class V >
HWY_APIAndNot (const V not_a, const V b)
 
template<class V >
HWY_APIXor3 (V x1, V x2, V x3)
 
template<class VU8 , HWY_IF_U8_D(DFromV< VU8 >) >
HWY_API VFromD< Repartition< uint64_t, DFromV< VU8 > > > SumsOf8 (const VU8 v)
 
template<class VI8 , HWY_IF_I8_D(DFromV< VI8 >) >
HWY_API VFromD< Repartition< int64_t, DFromV< VI8 > > > SumsOf8 (const VI8 v)
 
template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIRotateRight (const V v)
 
template<class V >
HWY_API auto TestBit (const V a, const V bit) -> decltype(Eq(a, bit))
 
template<class M , class V >
HWY_APIIfThenElseZero (const M mask, const V yes)
 
template<class V >
HWY_API MFromD< DFromV< V > > MaskFromVec (const V v)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API MFromD< DFromV< V > > IsNegative (V v)
 
template<class D >
HWY_API MFromD< D > MaskFalse (D d)
 
template<class D , typename MFrom >
HWY_API MFromD< D > RebindMask (const D, const MFrom mask)
 
template<class D , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > VecFromMask (const D d, MFromD< D > mask)
 
template<class V >
HWY_APIIfVecThenElse (const V mask, const V yes, const V no)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_GT_D(DTo, sizeof(TFromD< DFrom >)) , hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DFrom > >()> * = nullptr>
HWY_API MFromD< DTo > PromoteMaskTo (DTo, DFrom, MFromD< DFrom > m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >) - 1) , hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DFrom > >()> * = nullptr>
HWY_API MFromD< DTo > DemoteMaskTo (DTo, DFrom, MFromD< DFrom > m)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > Load (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > no, MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > LoadN (D d, const TFromD< D > *HWY_RESTRICT p, size_t num_lanes)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > LoadNOr (VFromD< D > v, D d, const TFromD< D > *HWY_RESTRICT p, size_t num_lanes)
 
template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API void Store (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class V , class D >
HWY_API void StoreU (const V v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class V , class D , typename T >
HWY_API void Stream (const V v, D d, T *HWY_RESTRICT aligned)
 
template<class D >
HWY_API void ScatterIndex (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D >
HWY_API VFromD< D > MaskedGatherIndex (MFromD< D > m, D d, const TFromD< D > *base, VFromD< RebindToSigned< D > > indices)
 
template<size_t N>
HWY_API auto PromoteTo (Simd< int64_t, N, -1 > d, VFromD< Rebind< int16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API auto PromoteTo (Simd< uint64_t, N, -1 > d, VFromD< Rebind< uint16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int16_t, N, kPow2 > d, VFromD< Rebind< uint8_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int32_t, N, kPow2 > d, VFromD< Rebind< uint8_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int32_t, N, kPow2 > d, VFromD< Rebind< uint16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int64_t, N, kPow2 > d, VFromD< Rebind< uint32_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int64_t, N, kPow2 > d, VFromD< Rebind< uint16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< int64_t, N, kPow2 > d, VFromD< Rebind< uint8_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N, int kPow2>
HWY_API auto PromoteTo (Simd< float32_t, N, kPow2 > d, VFromD< Rebind< hwy::bfloat16_t, decltype(d)> > v) -> VFromD< decltype(d)>
 
template<size_t N>
HWY_API vuint8mf8_t DemoteTo (Simd< uint8_t, N, -3 > d, const vint32mf2_t v)
 
template<size_t N>
HWY_API vuint8mf4_t DemoteTo (Simd< uint8_t, N, -2 > d, const vint32m1_t v)
 
template<size_t N>
HWY_API vuint8mf2_t DemoteTo (Simd< uint8_t, N, -1 > d, const vint32m2_t v)
 
template<size_t N>
HWY_API vuint8m1_t DemoteTo (Simd< uint8_t, N, 0 > d, const vint32m4_t v)
 
template<size_t N>
HWY_API vuint8m2_t DemoteTo (Simd< uint8_t, N, 1 > d, const vint32m8_t v)
 
template<size_t N>
HWY_API vuint8mf8_t DemoteTo (Simd< uint8_t, N, -3 > d, const vuint32mf2_t v)
 
template<size_t N>
HWY_API vuint8mf4_t DemoteTo (Simd< uint8_t, N, -2 > d, const vuint32m1_t v)
 
template<size_t N>
HWY_API vuint8mf2_t DemoteTo (Simd< uint8_t, N, -1 > d, const vuint32m2_t v)
 
template<size_t N>
HWY_API vuint8m1_t DemoteTo (Simd< uint8_t, N, 0 > d, const vuint32m4_t v)
 
template<size_t N>
HWY_API vuint8m2_t DemoteTo (Simd< uint8_t, N, 1 > d, const vuint32m8_t v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint8_t, N, kPow2 > > DemoteTo (Simd< uint8_t, N, kPow2 > d, VFromD< Simd< int64_t, N, kPow2+3 > > v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint8_t, N, kPow2 > > DemoteTo (Simd< uint8_t, N, kPow2 > d, VFromD< Simd< uint64_t, N, kPow2+3 > > v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > DemoteTo (Simd< uint16_t, N, kPow2 > d, VFromD< Simd< int64_t, N, kPow2+2 > > v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > DemoteTo (Simd< uint16_t, N, kPow2 > d, VFromD< Simd< uint64_t, N, kPow2+2 > > v)
 
HWY_API vuint8mf8_t U8FromU32 (const vuint32mf2_t v)
 
HWY_API vuint8mf4_t U8FromU32 (const vuint32m1_t v)
 
HWY_API vuint8mf2_t U8FromU32 (const vuint32m2_t v)
 
HWY_API vuint8m1_t U8FromU32 (const vuint32m4_t v)
 
HWY_API vuint8m2_t U8FromU32 (const vuint32m8_t v)
 
template<size_t N>
HWY_API vuint8mf8_t TruncateTo (Simd< uint8_t, N, -3 > d, const VFromD< Simd< uint64_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint8mf4_t TruncateTo (Simd< uint8_t, N, -2 > d, const VFromD< Simd< uint64_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint8mf2_t TruncateTo (Simd< uint8_t, N, -1 > d, const VFromD< Simd< uint64_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint8m1_t TruncateTo (Simd< uint8_t, N, 0 > d, const VFromD< Simd< uint64_t, N, 3 > > v)
 
template<size_t N>
HWY_API vuint16mf4_t TruncateTo (Simd< uint16_t, N, -3 > d, const VFromD< Simd< uint64_t, N, -1 > > v)
 
template<size_t N>
HWY_API vuint16mf4_t TruncateTo (Simd< uint16_t, N, -2 > d, const VFromD< Simd< uint64_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint16mf2_t TruncateTo (Simd< uint16_t, N, -1 > d, const VFromD< Simd< uint64_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint16m1_t TruncateTo (Simd< uint16_t, N, 0 > d, const VFromD< Simd< uint64_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint16m2_t TruncateTo (Simd< uint16_t, N, 1 > d, const VFromD< Simd< uint64_t, N, 3 > > v)
 
template<size_t N>
HWY_API vuint32mf2_t TruncateTo (Simd< uint32_t, N, -2 > d, const VFromD< Simd< uint64_t, N, -1 > > v)
 
template<size_t N>
HWY_API vuint32mf2_t TruncateTo (Simd< uint32_t, N, -1 > d, const VFromD< Simd< uint64_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint32m1_t TruncateTo (Simd< uint32_t, N, 0 > d, const VFromD< Simd< uint64_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint32m2_t TruncateTo (Simd< uint32_t, N, 1 > d, const VFromD< Simd< uint64_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint32m4_t TruncateTo (Simd< uint32_t, N, 2 > d, const VFromD< Simd< uint64_t, N, 3 > > v)
 
template<size_t N>
HWY_API vuint8mf8_t TruncateTo (Simd< uint8_t, N, -3 > d, const VFromD< Simd< uint32_t, N, -1 > > v)
 
template<size_t N>
HWY_API vuint8mf4_t TruncateTo (Simd< uint8_t, N, -2 > d, const VFromD< Simd< uint32_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint8mf2_t TruncateTo (Simd< uint8_t, N, -1 > d, const VFromD< Simd< uint32_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint8m1_t TruncateTo (Simd< uint8_t, N, 0 > d, const VFromD< Simd< uint32_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint8m2_t TruncateTo (Simd< uint8_t, N, 1 > d, const VFromD< Simd< uint32_t, N, 3 > > v)
 
template<size_t N>
HWY_API vuint16mf4_t TruncateTo (Simd< uint16_t, N, -3 > d, const VFromD< Simd< uint32_t, N, -2 > > v)
 
template<size_t N>
HWY_API vuint16mf4_t TruncateTo (Simd< uint16_t, N, -2 > d, const VFromD< Simd< uint32_t, N, -1 > > v)
 
template<size_t N>
HWY_API vuint16mf2_t TruncateTo (Simd< uint16_t, N, -1 > d, const VFromD< Simd< uint32_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint16m1_t TruncateTo (Simd< uint16_t, N, 0 > d, const VFromD< Simd< uint32_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint16m2_t TruncateTo (Simd< uint16_t, N, 1 > d, const VFromD< Simd< uint32_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint16m4_t TruncateTo (Simd< uint16_t, N, 2 > d, const VFromD< Simd< uint32_t, N, 3 > > v)
 
template<size_t N>
HWY_API vuint8mf8_t TruncateTo (Simd< uint8_t, N, -3 > d, const VFromD< Simd< uint16_t, N, -2 > > v)
 
template<size_t N>
HWY_API vuint8mf4_t TruncateTo (Simd< uint8_t, N, -2 > d, const VFromD< Simd< uint16_t, N, -1 > > v)
 
template<size_t N>
HWY_API vuint8mf2_t TruncateTo (Simd< uint8_t, N, -1 > d, const VFromD< Simd< uint16_t, N, 0 > > v)
 
template<size_t N>
HWY_API vuint8m1_t TruncateTo (Simd< uint8_t, N, 0 > d, const VFromD< Simd< uint16_t, N, 1 > > v)
 
template<size_t N>
HWY_API vuint8m2_t TruncateTo (Simd< uint8_t, N, 1 > d, const VFromD< Simd< uint16_t, N, 2 > > v)
 
template<size_t N>
HWY_API vuint8m4_t TruncateTo (Simd< uint8_t, N, 2 > d, const VFromD< Simd< uint16_t, N, 3 > > v)
 
template<size_t N>
HWY_API vint8mf8_t DemoteTo (Simd< int8_t, N, -3 > d, const vint32mf2_t v)
 
template<size_t N>
HWY_API vint8mf4_t DemoteTo (Simd< int8_t, N, -2 > d, const vint32m1_t v)
 
template<size_t N>
HWY_API vint8mf2_t DemoteTo (Simd< int8_t, N, -1 > d, const vint32m2_t v)
 
template<size_t N>
HWY_API vint8m1_t DemoteTo (Simd< int8_t, N, 0 > d, const vint32m4_t v)
 
template<size_t N>
HWY_API vint8m2_t DemoteTo (Simd< int8_t, N, 1 > d, const vint32m8_t v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< int8_t, N, kPow2 > > DemoteTo (Simd< int8_t, N, kPow2 > d, VFromD< Simd< int64_t, N, kPow2+3 > > v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< int16_t, N, kPow2 > > DemoteTo (Simd< int16_t, N, kPow2 > d, VFromD< Simd< int64_t, N, kPow2+2 > > v)
 
template<size_t N>
HWY_API vint32mf2_t DemoteTo (Simd< int32_t, N, -2 > d, const vfloat64m1_t v)
 
template<size_t N>
HWY_API vint32mf2_t DemoteTo (Simd< int32_t, N, -1 > d, const vfloat64m1_t v)
 
template<size_t N>
HWY_API vint32m1_t DemoteTo (Simd< int32_t, N, 0 > d, const vfloat64m2_t v)
 
template<size_t N>
HWY_API vint32m2_t DemoteTo (Simd< int32_t, N, 1 > d, const vfloat64m4_t v)
 
template<size_t N>
HWY_API vint32m4_t DemoteTo (Simd< int32_t, N, 2 > d, const vfloat64m8_t v)
 
template<size_t N>
HWY_API vuint32mf2_t DemoteTo (Simd< uint32_t, N, -2 > d, const vfloat64m1_t v)
 
template<size_t N>
HWY_API vuint32mf2_t DemoteTo (Simd< uint32_t, N, -1 > d, const vfloat64m1_t v)
 
template<size_t N>
HWY_API vuint32m1_t DemoteTo (Simd< uint32_t, N, 0 > d, const vfloat64m2_t v)
 
template<size_t N>
HWY_API vuint32m2_t DemoteTo (Simd< uint32_t, N, 1 > d, const vfloat64m4_t v)
 
template<size_t N>
HWY_API vuint32m4_t DemoteTo (Simd< uint32_t, N, 2 > d, const vfloat64m8_t v)
 
template<size_t N>
HWY_API vfloat32mf2_t DemoteTo (Simd< float, N, -2 > d, const vint64m1_t v)
 
template<size_t N>
HWY_API vfloat32mf2_t DemoteTo (Simd< float, N, -1 > d, const vint64m1_t v)
 
template<size_t N>
HWY_API vfloat32m1_t DemoteTo (Simd< float, N, 0 > d, const vint64m2_t v)
 
template<size_t N>
HWY_API vfloat32m2_t DemoteTo (Simd< float, N, 1 > d, const vint64m4_t v)
 
template<size_t N>
HWY_API vfloat32m4_t DemoteTo (Simd< float, N, 2 > d, const vint64m8_t v)
 
template<size_t N>
HWY_API vfloat32mf2_t DemoteTo (Simd< float, N, -2 > d, const vuint64m1_t v)
 
template<size_t N>
HWY_API vfloat32mf2_t DemoteTo (Simd< float, N, -1 > d, const vuint64m1_t v)
 
template<size_t N>
HWY_API vfloat32m1_t DemoteTo (Simd< float, N, 0 > d, const vuint64m2_t v)
 
template<size_t N>
HWY_API vfloat32m2_t DemoteTo (Simd< float, N, 1 > d, const vuint64m4_t v)
 
template<size_t N>
HWY_API vfloat32m4_t DemoteTo (Simd< float, N, 2 > d, const vuint64m8_t v)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< hwy::bfloat16_t, N, kPow2 > > DemoteTo (Simd< hwy::bfloat16_t, N, kPow2 > d, VFromD< Simd< float, N, kPow2+1 > > v)
 
template<class D2 , class V >
HWY_API VFromD< D2 > Combine (D2 d2, const V hi, const V lo)
 
template<class D2 , class V >
HWY_API VFromD< D2 > ZeroExtendVector (D2 d2, const V lo)
 
template<class DH , hwy::EnableIf< detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API VFromD< DH > LowerHalf (const DH, const VFromD< Twice< DH > > v)
 
template<class DH , class V , hwy::EnableIf<!detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_APILowerHalf (const DH, const V v)
 
template<class V >
HWY_API VFromD< Half< DFromV< V > > > LowerHalf (const V v)
 
template<class DH >
HWY_API VFromD< DH > UpperHalf (const DH d2, const VFromD< Twice< DH > > v)
 
template<class V , typename T , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_APIInsertLane (const V v, size_t i, T t)
 
template<class V >
HWY_APIOddEven (const V a, const V b)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > Reverse (D d, VFromD< D > v)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 2)|(1<< 4)|(1<< 8)) >
HWY_API VFromD< D > Reverse (D, VFromD< D > v)
 
template<class DTo , class VFrom >
HWY_API VFromD< DTo > ResizeBitCast (DTo, VFrom v)
 
template<class D , class V = VFromD<D>, HWY_IF_T_SIZE_D(D, 8) >
HWY_APIReverse2 (D, const V v)
 
template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_APIExpand (V v, const M mask)
 
template<class V , class M , HWY_IF_T_SIZE_V(V, 1) , class D = DFromV<V>, HWY_IF_POW2_LE_D(D, 2) >
HWY_APIExpand (V v, const M mask)
 
template<class V , class M >
HWY_APICompressNot (V v, const M mask)
 
template<class V , class M >
HWY_APICompressBlocksNot (V v, const M mask)
 
template<class V , class M , class D >
HWY_API size_t CompressStore (const V v, const M mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class M , class D >
HWY_API size_t CompressBlendedStore (const V v, const M mask, const D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > ConcatOdd (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > ConcatEven (D d, VFromD< D > hi, VFromD< D > lo)
 
template<size_t kLanes, class D , class V = VFromD<D>>
HWY_APICombineShiftRightLanes (const D d, const V hi, V lo)
 
template<class VT , class VI >
HWY_API VI TableLookupBytes (const VT vt, const VI vi)
 
template<class VT , class VI >
HWY_API VI TableLookupBytesOr0 (const VT vt, const VI idx)
 
template<class D , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > TwoTablesLookupLanes (D d, VFromD< D > a, VFromD< D > b, VFromD< RebindToUnsigned< D > > idx)
 
template<int kLane, class V , class D = DFromV<V>, HWY_IF_T_SIZE_D(D, 1) , HWY_IF_POW2_LE_D(D, 2) >
HWY_APIBroadcast (const V v)
 
template<int kBlockIdx, class V >
HWY_APIInsertBlock (V v, VFromD< BlockDFromD< DFromV< V > > > blk_to_insert)
 
template<int kBlockIdx, class V >
HWY_API VFromD< BlockDFromD< DFromV< V > > > ExtractBlock (V v)
 
template<size_t kLanes, typename T , size_t N, int kPow2, class V = VFromD<Simd<T, N, kPow2>>>
HWY_APIShiftRightLanes (const Simd< T, N, kPow2 > d, V v)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< D > 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 > InterleaveWholeUpper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , class V , HWY_RVV_IF_GE128_D(D) >
HWY_APIInterleaveLower (D d, const V a, const V b)
 
template<class D , typename T = TFromD<D>, HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API void StoreInterleaved2 (VFromD< D > v0, VFromD< D > v1, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreInterleaved4 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, VFromD< D > v3, D d, T *HWY_RESTRICT unaligned)
 
template<class V >
decltype(MaskFromVec(v)) HWY_APIRound (const V v)
 
template<class V >
HWY_APITrunc (const V v)
 
template<class V >
HWY_APICeil (const V v)
 
template<class V >
HWY_APIFloor (const V v)
 
template<class V >
HWY_API MFromD< DFromV< V > > IsNaN (const V v)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > MulEven (const V a, const V b)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > MulOdd (const V a, const V b)
 
template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_INLINEMulEven (const V a, const V b)
 
template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_INLINEMulOdd (const V a, const V b)
 
template<size_t N, int kPow2>
HWY_API VFromD< Simd< hwy::bfloat16_t, N, kPow2 > > ReorderDemote2To (Simd< hwy::bfloat16_t, N, kPow2 > dbf16, VFromD< RepartitionToWide< decltype(dbf16)> > a, VFromD< RepartitionToWide< decltype(dbf16)> > b)
 
template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , HWY_IF_POW2_LE_D(DN, 2) , class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , class V2 = VFromD<Repartition<TFromV<V>, DN>>, hwy::EnableIf< DFromV< V >().Pow2()==DFromV< V2 >().Pow2()> * = nullptr>
HWY_API VFromD< DN > ReorderDemote2To (DN dn, V a, V b)
 
template<class DN , HWY_IF_SPECIAL_FLOAT_D(DN) , HWY_IF_POW2_LE_D(DN, 2) , class V , HWY_IF_F32_D(DFromV< V >) , class V2 = VFromD<Repartition<TFromV<V>, DN>>, hwy::EnableIf< DFromV< V >().Pow2()==DFromV< V2 >().Pow2()> * = nullptr>
HWY_API VFromD< DN > OrderedDemote2To (DN dn, V a, V b)
 
template<size_t N, int kPow2, class VN , class VW >
HWY_API VW ReorderWidenMulAccumulate (Simd< float, N, kPow2 > d32, VN a, VN b, const VW sum0, VW &sum1)
 
template<size_t N, int kPow2, class VN , class VW >
HWY_API VW ReorderWidenMulAccumulate (Simd< int32_t, N, kPow2 > d32, VN a, VN b, const VW sum0, VW &sum1)
 
template<size_t N, int kPow2, class VN , class VW >
HWY_API VW ReorderWidenMulAccumulate (Simd< uint32_t, N, kPow2 > d32, VN a, VN b, const VW sum0, VW &sum1)
 
template<class VW , HWY_IF_SIGNED_V(VW) >
HWY_API VW RearrangeToOddPlusEven (const VW sum0, const VW sum1)
 
HWY_API vint32m8_t RearrangeToOddPlusEven (vint32m8_t sum0, vint32m8_t sum1)
 
HWY_API vuint32m8_t RearrangeToOddPlusEven (vuint32m8_t sum0, vuint32m8_t sum1)
 
template<class D >
HWY_INLINE MFromD< D > Lt128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Lt128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Eq128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Eq128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Ne128 (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class D >
HWY_INLINE MFromD< D > Ne128Upper (D d, const VFromD< D > a, const VFromD< D > b)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Vec1< TTo > BitCast (DTo, Vec1< TFrom > v)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > Zero (D)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename T2 >
HWY_API Vec1< T > Set (D, const T2 t)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > Undefined (D d)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename T2 >
HWY_API Vec1< T > Iota (const D, const T2 first)
 
template<typename T >
HWY_API Vec1< T > Not (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > And (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator& (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > AndNot (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Or (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator| (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Xor (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > operator^ (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > Xor3 (Vec1< T > x1, Vec1< T > x2, Vec1< T > x3)
 
template<typename T >
HWY_API Vec1< T > Or3 (Vec1< T > o1, Vec1< T > o2, Vec1< T > o3)
 
template<typename T >
HWY_API Vec1< T > OrAnd (const Vec1< T > o, const Vec1< T > a1, const Vec1< T > a2)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Mask1< TTo > RebindMask (DTo, Mask1< TFrom > m)
 
template<typename T >
HWY_API Mask1< T > MaskFromVec (const Vec1< T > v)
 
template<typename T >
Vec1< T > VecFromMask (const Mask1< T > mask)
 
template<class D , typename T = TFromD<D>>
Vec1< T > VecFromMask (D, const Mask1< T > mask)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Mask1< T > FirstN (D, size_t n)
 
template<typename T >
HWY_API Vec1< T > IfVecThenElse (Vec1< T > mask, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > CopySign (const Vec1< T > magn, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > CopySignToAbs (const Vec1< T > abs, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > BroadcastSignBit (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > PopulationCount (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > IfThenElse (const Mask1< T > mask, const Vec1< T > yes, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > IfThenElseZero (const Mask1< T > mask, const Vec1< T > yes)
 
template<typename T >
HWY_API Vec1< T > IfThenZeroElse (const Mask1< T > mask, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > IfNegativeThenElse (Vec1< T > v, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Mask1< T > Not (const Mask1< T > m)
 
template<typename T >
HWY_API Mask1< T > And (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > AndNot (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > Or (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > Xor (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > ExclusiveNeither (const Mask1< T > a, Mask1< T > b)
 
template<class T >
HWY_API Mask1< T > SetAtOrAfterFirst (Mask1< T > mask)
 
template<class T >
HWY_API Mask1< T > SetBeforeFirst (Mask1< T > mask)
 
template<class T >
HWY_API Mask1< T > SetOnlyFirst (Mask1< T > mask)
 
template<class T >
HWY_API Mask1< T > SetAtOrBeforeFirst (Mask1< T >)
 
template<class D >
HWY_API MFromD< D > LowerHalfOfMask (D, MFromD< D > m)
 
template<int kBits, typename T >
HWY_API Vec1< T > ShiftLeft (const Vec1< T > v)
 
template<int kBits, typename T >
HWY_API Vec1< T > ShiftRight (const Vec1< T > v)
 
template<int kBits, typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > RotateRight (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > ShiftLeftSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > ShiftRightSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > operator<< (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > operator>> (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > operator+ (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > operator+ (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > operator+ (const Vec1< double > a, const Vec1< double > b)
 
template<typename T >
HWY_API Vec1< T > operator- (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > operator- (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > operator- (const Vec1< double > a, const Vec1< double > b)
 
HWY_API Vec1< int64_t > SumsOf8 (const Vec1< int8_t > v)
 
HWY_API Vec1< uint64_t > SumsOf8 (const Vec1< uint8_t > v)
 
template<class T >
HWY_API Vec1< MakeWide< T > > SumsOf2 (const Vec1< T > v)
 
HWY_API Vec1< uint8_t > SaturatedAdd (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > SaturatedAdd (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > SaturatedAdd (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > SaturatedAdd (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > SaturatedSub (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > SaturatedSub (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > SaturatedSub (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > SaturatedSub (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > AverageRound (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > AverageRound (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
template<typename T >
HWY_API Vec1< T > Abs (const Vec1< T > a)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > Min (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > Max (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_FLOAT_OR_SPECIAL(T) >
HWY_API Vec1< T > Neg (const Vec1< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > operator* (const Vec1< T > a, const Vec1< 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 Vec1< T > MulHigh (const Vec1< T > a, const Vec1< T > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec1< T > MulHigh (const Vec1< T > a, const Vec1< T > b)
 
HWY_API Vec1< int16_t > MulFixedPoint15 (Vec1< int16_t > a, Vec1< int16_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 Vec1< MakeWide< T > > MulEven (const Vec1< T > a, const Vec1< T > b)
 
HWY_API Vec1< float > ApproximateReciprocal (const Vec1< float > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > AbsDiff (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > MulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > NegMulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > MulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > NegMulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
HWY_API Vec1< float > ApproximateReciprocalSqrt (const Vec1< float > v)
 
HWY_API Vec1< float > Sqrt (Vec1< float > v)
 
HWY_API Vec1< double > Sqrt (Vec1< double > v)
 
template<typename T >
HWY_API Vec1< T > Round (const Vec1< T > v)
 
HWY_API Vec1< int32_t > NearestInt (const Vec1< float > v)
 
template<typename T >
HWY_API Vec1< T > Trunc (const Vec1< T > v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
Ceiling (const V v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
Floor (const V v)
 
HWY_API Vec1< float > Ceil (const Vec1< float > v)
 
HWY_API Vec1< double > Ceil (const Vec1< double > v)
 
HWY_API Vec1< float > Floor (const Vec1< float > v)
 
HWY_API Vec1< double > Floor (const Vec1< double > v)
 
template<typename T >
HWY_API Mask1< T > operator== (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator!= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > TestBit (const Vec1< T > v, const Vec1< T > bit)
 
template<typename T >
HWY_API Mask1< T > operator< (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator> (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator<= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > operator>= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > IsNaN (const Vec1< T > v)
 
HWY_API Mask1< float > IsInf (const Vec1< float > v)
 
HWY_API Mask1< double > IsInf (const Vec1< double > v)
 
HWY_API Mask1< float > IsFinite (const Vec1< float > v)
 
HWY_API Mask1< double > IsFinite (const Vec1< double > v)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > Load (D, const T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > MaskedLoad (Mask1< T > m, D d, const T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > MaskedLoadOr (Vec1< T > v, Mask1< T > m, D d, const T *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > LoadU (D d, const T *HWY_RESTRICT p)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > LoadDup128 (D d, const T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void Store (const Vec1< T > v, D, T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreU (const Vec1< T > v, D d, T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API void BlendedStore (const Vec1< T > v, Mask1< T > m, D d, T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved2 (D d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved3 (D d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2)
 
template<class D , typename T = TFromD<D>>
HWY_API void LoadInterleaved4 (D d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2, Vec1< T > &v3)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreInterleaved2 (const Vec1< T > v0, const Vec1< T > v1, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreInterleaved3 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreInterleaved4 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, const Vec1< T > v3, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void Stream (const Vec1< T > v, D d, T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API void ScatterOffset (Vec1< T > v, D d, T *base, Vec1< TI > offset)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API void ScatterIndex (Vec1< T > v, D d, T *HWY_RESTRICT base, Vec1< TI > index)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API void MaskedScatterIndex (Vec1< T > v, Mask1< T > m, D d, T *HWY_RESTRICT base, Vec1< TI > index)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > GatherOffset (D d, const T *base, Vec1< MakeSigned< T > > offset)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > GatherIndex (D d, const T *HWY_RESTRICT base, Vec1< MakeSigned< T > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > MaskedGatherIndex (Mask1< T > m, D d, const T *HWY_RESTRICT base, Vec1< MakeSigned< T > > index)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > MaskedGatherIndexOr (Vec1< T > no, Mask1< T > m, D d, const T *HWY_RESTRICT base, Vec1< MakeSigned< T > > index)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Vec1< TTo > PromoteTo (DTo, Vec1< TFrom > from)
 
template<class DTo , HWY_IF_UI64_D(DTo) >
HWY_API VFromD< DTo > PromoteInRangeTo (DTo, Vec1< float > from)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > DemoteTo (D, Vec1< double > from)
 
template<class D , HWY_IF_UI32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec1< double > from)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_SIGNED(TFrom) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DTo >) >
HWY_API Vec1< TTo > DemoteTo (DTo, Vec1< TFrom > from)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > PromoteTo (D, const Vec1< float16_t > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > PromoteTo (D d, const Vec1< bfloat16_t > v)
 
template<class DTo , typename TFrom >
HWY_API VFromD< DTo > PromoteEvenTo (DTo d_to, Vec1< TFrom > v)
 
template<class D , HWY_IF_F16_D(D) >
HWY_API Vec1< float16_tDemoteTo (D, const Vec1< float > v)
 
template<class D , HWY_IF_BF16_D(D) >
HWY_API Vec1< bfloat16_tDemoteTo (D d, const Vec1< float > v)
 
template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_FLOAT(TFrom) >
HWY_API Vec1< TTo > ConvertTo (DTo, Vec1< TFrom > from)
 
HWY_API Vec1< uint8_t > U8FromU32 (const Vec1< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > TruncateTo (D, Vec1< uint64_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec1< uint16_t > TruncateTo (D, Vec1< uint64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec1< uint32_t > TruncateTo (D, Vec1< uint64_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > TruncateTo (D, Vec1< uint32_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec1< uint16_t > TruncateTo (D, Vec1< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > TruncateTo (D, Vec1< uint16_t > v)
 
template<typename T >
HWY_API Vec1< T > LowerHalf (Vec1< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > LowerHalf (D, Vec1< T > v)
 
template<typename T >
HWY_APIGetLane (const Vec1< T > v)
 
template<typename T >
HWY_APIExtractLane (const Vec1< T > v, size_t i)
 
template<typename T >
HWY_API Vec1< T > InsertLane (Vec1< T > v, size_t i, T t)
 
template<typename T >
HWY_API Vec1< T > DupEven (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > OddEven (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > OddEvenBlocks (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > SwapAdjacentBlocks (Vec1< T > v)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices1< T > IndicesFromVec (D, Vec1< TI > vec)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename TI >
HWY_API Indices1< T > SetTableIndices (D d, const TI *idx)
 
template<typename T >
HWY_API Vec1< T > TableLookupLanes (const Vec1< T > v, const Indices1< T >)
 
template<typename T >
HWY_API Vec1< T > TwoTablesLookupLanes (const Vec1< T > a, const Vec1< T > b, const Indices1< T > idx)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > ReverseBlocks (D, const Vec1< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > Reverse (D, const Vec1< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > Reverse2 (D, const Vec1< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > Reverse4 (D, const Vec1< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > Reverse8 (D, const Vec1< T > v)
 
HWY_API Vec1< uint16_t > ReverseLaneBytes (Vec1< uint16_t > v)
 
HWY_API Vec1< uint32_t > ReverseLaneBytes (Vec1< uint32_t > v)
 
HWY_API Vec1< uint64_t > ReverseLaneBytes (Vec1< uint64_t > v)
 
template<class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)|(1<< 8)) >
HWY_APIReverseLaneBytes (V v)
 
template<int kLane, typename T >
HWY_API Vec1< T > Broadcast (const Vec1< T > v)
 
template<typename T , typename TI >
HWY_API Vec1< TI > TableLookupBytes (const Vec1< T > in, const Vec1< TI > indices)
 
template<typename T , typename TI >
HWY_API Vec1< TI > TableLookupBytesOr0 (const Vec1< T > in, const Vec1< TI > indices)
 
HWY_API Vec1< uint16_t > ZipLower (Vec1< uint8_t > a, Vec1< uint8_t > b)
 
HWY_API Vec1< uint32_t > ZipLower (Vec1< uint16_t > a, Vec1< uint16_t > b)
 
HWY_API Vec1< uint64_t > ZipLower (Vec1< uint32_t > a, Vec1< uint32_t > b)
 
HWY_API Vec1< int16_t > ZipLower (Vec1< int8_t > a, Vec1< int8_t > b)
 
HWY_API Vec1< int32_t > ZipLower (Vec1< int16_t > a, Vec1< int16_t > b)
 
HWY_API Vec1< int64_t > ZipLower (Vec1< int32_t > a, Vec1< int32_t > b)
 
template<class DW , typename TW = TFromD<DW>, typename TN = MakeNarrow<TW>>
HWY_API Vec1< TW > ZipLower (DW, Vec1< TN > a, Vec1< TN > b)
 
template<class D , typename T = TFromD<D>>
HWY_API bool AllFalse (D, const Mask1< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API bool AllTrue (D, const Mask1< T > mask)
 
template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Mask1< T > LoadMaskBits (D, const uint8_t *HWY_RESTRICT bits)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t StoreMaskBits (D d, const Mask1< T > mask, uint8_t *bits)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CountTrue (D, const Mask1< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindFirstTrue (D, const Mask1< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownFirstTrue (D, const Mask1< T >)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindLastTrue (D, const Mask1< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownLastTrue (D, const Mask1< T >)
 
template<typename T >
HWY_API Vec1< T > Compress (Vec1< T > v, const Mask1< T >)
 
template<typename T >
HWY_API Vec1< T > CompressNot (Vec1< T > v, const Mask1< T >)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CompressStore (Vec1< T > v, const Mask1< T > mask, D d, T *HWY_RESTRICT unaligned)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CompressBlendedStore (Vec1< T > v, const Mask1< T > mask, D d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec1< T > CompressBits (Vec1< T > v, const uint8_t *HWY_RESTRICT)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CompressBitsStore (Vec1< T > v, const uint8_t *HWY_RESTRICT bits, D d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec1< T > Expand (Vec1< T > v, const Mask1< T > mask)
 
template<class D32 , HWY_IF_F32_D(D32) >
HWY_API Vec1< float > WidenMulPairwiseAdd (D32, Vec1< bfloat16_t > a, Vec1< bfloat16_t > b)
 
template<class D32 , HWY_IF_I32_D(D32) >
HWY_API Vec1< int32_t > WidenMulPairwiseAdd (D32, Vec1< int16_t > a, Vec1< int16_t > b)
 
template<class DI16 , HWY_IF_I16_D(DI16) >
HWY_API Vec1< int16_t > SatWidenMulPairwiseAdd (DI16, Vec1< uint8_t > a, Vec1< int8_t > b)
 
template<class D32 , HWY_IF_F32_D(D32) >
HWY_API Vec1< float > ReorderWidenMulAccumulate (D32, Vec1< bfloat16_t > a, Vec1< bfloat16_t > b, const Vec1< float > sum0, Vec1< float > &)
 
template<class D32 , HWY_IF_I32_D(D32) >
HWY_API Vec1< int32_t > ReorderWidenMulAccumulate (D32, Vec1< int16_t > a, Vec1< int16_t > b, const Vec1< int32_t > sum0, Vec1< int32_t > &)
 
template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API Vec1< uint32_t > ReorderWidenMulAccumulate (DU32, Vec1< uint16_t > a, Vec1< uint16_t > b, const Vec1< uint32_t > sum0, Vec1< uint32_t > &)
 
template<typename TW >
HWY_API Vec1< TW > RearrangeToOddPlusEven (Vec1< TW > sum0, Vec1< TW >)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t MaxLanes (D)
 
template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t Lanes (D)
 
template<class D , typename T >
HWY_API bool IsAligned (D d, T *ptr)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API Vec128< TFromD< D >, HWY_MAX_LANES_D(D)> Zero (D)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Set (D, TFromD< D > t)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > operator+ (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator+ (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator+ (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > operator+ (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > operator+ (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator+ (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator+ (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator+ (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > operator+ (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator+ (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > operator- (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator- (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator- (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > operator- (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > operator- (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator- (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator- (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator- (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > operator- (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator- (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > SaturatedAdd (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > SaturatedAdd (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > SaturatedAdd (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > SaturatedAdd (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > SaturatedSub (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > SaturatedSub (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > SaturatedSub (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > SaturatedSub (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > AverageRound (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > AverageRound (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Abs (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Abs (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Abs (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Abs (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Abs (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Abs (const Vec128< double, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > ShiftLeft (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > ShiftRight (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > ShiftLeft (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > ShiftLeft (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > ShiftRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > ShiftRight (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > ShiftLeft (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > ShiftRight (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > ShiftLeft (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > ShiftLeft (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > ShiftRight (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > ShiftRight (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint8_t, N > ShiftRight (const Vec128< uint8_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int8_t, N > ShiftRight (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > ShiftLeftSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > ShiftRightSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > ShiftLeftSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > ShiftRightSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > ShiftLeftSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > ShiftRightSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > ShiftLeftSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > ShiftRightSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, N > ShiftLeftSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, N > ShiftRightSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, N > ShiftLeftSame (const Vec128< int64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, N > ShiftRightSame (const Vec128< int64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > ShiftRightSame (Vec128< uint8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int8_t, N > ShiftRightSame (Vec128< int8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > Min (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > Min (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > Min (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Min (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Min (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Min (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Min (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Min (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > Max (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > Max (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > Max (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Max (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Max (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Max (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Max (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Max (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator* (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator* (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator* (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator* (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > MulHigh (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > MulHigh (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > MulHigh (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > MulHigh (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > MulHigh (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > MulHigh (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<class T , size_t N, HWY_IF_UI32(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > MulOdd (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > Neg (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > Neg (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > Neg (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > Neg (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > operator* (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator* (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > operator/ (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > operator/ (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ApproximateReciprocal (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > Sqrt (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Sqrt (const Vec128< double, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > ApproximateReciprocalSqrt (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Trunc (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Ceil (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > Floor (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > IsInf (const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > IsFinite (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator== (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator== (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator== (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > operator== (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator== (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator== (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator== (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, N > operator== (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator== (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator== (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator> (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator> (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator> (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, N > operator> (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator> (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator> (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator> (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > operator> (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator> (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator> (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > operator>= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > operator>= (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, N > operator>= (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, N > operator>= (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, N > operator>= (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, N > operator>= (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, N > operator>= (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, N > operator>= (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, N > operator>= (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, N > operator>= (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > FirstN (D d, size_t num)
 
template<size_t N>
HWY_API Vec128< int8_t, N > BroadcastSignBit (const Vec128< int8_t, N > v)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > operator<< (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > operator>> (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > operator>> (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void Store (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec64< T > UpperHalf (D, const Vec128< T > v)
 
template<int kLane, typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > Broadcast (const Vec128< T, N > v)
 
template<class D , typename TI , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> IndicesFromVec (D d, Vec128< TI, MaxLanes(D())> vec)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename TI >
HWY_API Indices128< TFromD< D >, HWY_MAX_LANES_D(D)> SetTableIndices (D d, const TI *idx)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > InterleaveLower (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > InterleaveLower (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > InterleaveLower (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > InterleaveLower (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > InterleaveLower (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > InterleaveLower (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > InterleaveLower (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > InterleaveLower (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > InterleaveLower (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > InterleaveLower (Vec128< double, N > a, Vec128< double, N > b)
 
template<class T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > InterleaveLower (Vec128< T, N > a, Vec128< T, N > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > ZeroExtendVector (D d, VFromD< Half< D > > lo)
 
template<size_t N>
HWY_API Vec128< float, N > OddEven (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > InterleaveEven (D, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > InterleaveOdd (D, VFromD< D > a, VFromD< D > b)
 
template<class D , class V , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_UI64_D(D) , HWY_IF_LANES_D(D, HWY_MAX_LANES_V(V)) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > PromoteTo (D d, V v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, VFromD< Rebind< bfloat16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< uint8_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< uint16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< uint32_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< int8_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< int16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D, VFromD< Repartition< int32_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df32, VFromD< Repartition< float16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D df32, VFromD< Repartition< bfloat16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteUpperTo (D dd, VFromD< Repartition< float, D > > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D du8, VFromD< Rebind< uint16_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D df32, VFromD< Rebind< int64_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D df32, VFromD< Rebind< uint64_t, D > > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, VFromD< Repartition< uint32_t, D > > a, VFromD< Repartition< uint32_t, D > > b)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > ReorderDemote2To (D dn, Vec64< int16_t > a, Vec64< int16_t > b)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > ReorderDemote2To (D dn, Vec64< int16_t > a, Vec64< int16_t > b)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec128< uint16_t > a, Vec128< uint16_t > b)
 
template<typename From , class DTo , HWY_IF_LANES_D(DTo, 1) >
HWY_API VFromD< DTo > TruncateTo (DTo, Vec128< From, 1 > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 4) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) >
HWY_API VFromD< D > ReorderDemote2To (D dn, VFromD< Repartition< int64_t, D > > a, VFromD< Repartition< int64_t, D > > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > ReorderDemote2To (D dn, Vec128< int64_t > a, Vec128< int64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > ReorderDemote2To (D dn, Vec128< int64_t > a, Vec128< int64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > ReorderDemote2To (D dn, Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< Rebind< int32_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< Rebind< uint32_t, D > > v)
 
template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D dd, VFromD< Rebind< int64_t, D > > v)
 
template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D dd, VFromD< Rebind< uint64_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< Rebind< float, D > > v)
 
template<class DI , HWY_IF_I64_D(DI) >
HWY_API VFromD< DI > ConvertTo (DI di, VFromD< Rebind< double, DI > > v)
 
template<class DU , HWY_IF_U64_D(DU) >
HWY_API VFromD< DU > ConvertTo (DU du, VFromD< Rebind< double, DU > > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N/8 > SumsOf8 (const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N/8 > SumsOf8 (const Vec128< int8_t, N > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API size_t CountTrue (D d, MFromD< D > m)
 
template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool AllFalse (D d, const MFromD< D > m)
 
template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool AllTrue (D d, const MFromD< D > m)
 
template<class D32 , HWY_IF_I32_D(D32) , HWY_IF_V_SIZE_LE_D(D32, 16) , class V16 = VFromD<RepartitionToNarrow<D32>>>
HWY_API VFromD< D32 > WidenMulPairwiseAdd (D32, V16 a, V16 b)
 
template<class DU32 , HWY_IF_U32_D(DU32) , HWY_IF_V_SIZE_LE_D(DU32, 16) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > WidenMulPairwiseAdd (DU32 du32, VU16 a, VU16 b)
 
template<class D32 , HWY_IF_I32_D(D32) , HWY_IF_V_SIZE_LE_D(D32, 16) , class V16 = VFromD<RepartitionToNarrow<D32>>>
HWY_API VFromD< D32 > ReorderWidenMulAccumulate (D32 d, V16 a, V16 b, const VFromD< D32 > sum0, VFromD< D32 > &)
 
template<class DU32 , HWY_IF_U32_D(DU32) , HWY_IF_V_SIZE_LE_D(DU32, 16) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > ReorderWidenMulAccumulate (DU32 d, VU16 a, VU16 b, const VFromD< DU32 > sum0, VFromD< DU32 > &)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > Lt128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > Eq128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > Ne128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API Vec256< TFromD< D > > Zero (D d)
 
template<class D , typename TFrom >
HWY_API VFromD< D > BitCast (D d, Vec256< TFrom > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename T2 >
HWY_API VFromD< D > Set (D d, const T2 t)
 
template<typename T >
HWY_API Vec256< T > operator+ (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator- (Vec256< T > a, const Vec256< T > b)
 
HWY_API Vec256< uint64_t > SumsOf8 (const Vec256< uint8_t > v)
 
HWY_API Vec256< int64_t > SumsOf8 (const Vec256< int8_t > v)
 
template<typename T >
HWY_API Vec256< T > SaturatedAdd (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > SaturatedSub (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > AverageRound (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Abs (Vec256< T > v)
 
template<int kBits, typename T >
HWY_API Vec256< T > ShiftLeft (Vec256< T > v)
 
template<int kBits, typename T >
HWY_API Vec256< T > ShiftRight (Vec256< T > v)
 
template<int kBits, typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > RotateRight (const Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > ShiftLeftSame (Vec256< T > v, const int bits)
 
template<typename T >
HWY_API Vec256< T > ShiftRightSame (Vec256< T > v, const int bits)
 
template<typename T >
HWY_API Vec256< T > Min (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Max (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator* (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > MulHigh (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > 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 > > MulEven (Vec256< T > a, const Vec256< T > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec256< T > 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 > > MulOdd (Vec256< T > a, const Vec256< T > b)
 
template<class T , HWY_IF_UI64(T) >
HWY_API Vec256< T > MulOdd (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Neg (Vec256< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > AbsDiff (const Vec256< T > a, const Vec256< T > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > operator/ (Vec256< T > a, const Vec256< T > b)
 
HWY_API Vec256< float > ApproximateReciprocal (const Vec256< float > v)
 
HWY_API Vec256< float > MulAdd (Vec256< float > mul, Vec256< float > x, Vec256< float > add)
 
HWY_API Vec256< float > NegMulAdd (Vec256< float > mul, Vec256< float > x, Vec256< float > add)
 
HWY_API Vec256< float > MulSub (Vec256< float > mul, Vec256< float > x, Vec256< float > sub)
 
HWY_API Vec256< float > NegMulSub (Vec256< float > mul, Vec256< float > x, Vec256< float > sub)
 
template<typename T >
HWY_API Vec256< T > Sqrt (Vec256< T > v)
 
HWY_API Vec256< float > ApproximateReciprocalSqrt (const Vec256< float > v)
 
HWY_API Vec256< float > Round (Vec256< float > v)
 
HWY_API Vec256< float > Trunc (Vec256< float > v)
 
HWY_API Vec256< float > Ceil (Vec256< float > v)
 
HWY_API Vec256< float > Floor (Vec256< float > v)
 
template<typename T >
HWY_API Mask256< T > IsNaN (const Vec256< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > IsInf (const Vec256< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > IsFinite (const Vec256< T > v)
 
template<class DTo , typename TFrom , typename TTo = TFromD<DTo>>
HWY_API MFromD< DTo > RebindMask (DTo, Mask256< TFrom > m)
 
template<typename T >
HWY_API Mask256< T > TestBit (Vec256< T > v, Vec256< T > bit)
 
template<typename T >
HWY_API Mask256< T > operator== (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator!= (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator< (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator> (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator<= (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Mask256< T > operator>= (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Not (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > And (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > AndNot (Vec256< T > not_mask, Vec256< T > mask)
 
template<typename T >
HWY_API Vec256< T > Or (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Xor (Vec256< T > a, Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > Xor3 (Vec256< T > x1, Vec256< T > x2, Vec256< T > x3)
 
template<typename T >
HWY_API Vec256< T > Or3 (Vec256< T > o1, Vec256< T > o2, Vec256< T > o3)
 
template<typename T >
HWY_API Vec256< T > OrAnd (Vec256< T > o, Vec256< T > a1, Vec256< T > a2)
 
template<typename T >
HWY_API Vec256< T > IfVecThenElse (Vec256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T > operator& (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator| (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > operator^ (const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > CopySign (const Vec256< T > magn, const Vec256< T > sign)
 
template<typename T >
HWY_API Vec256< T > CopySignToAbs (const Vec256< T > abs, const Vec256< T > sign)
 
template<typename T >
HWY_API Mask256< T > MaskFromVec (const Vec256< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > VecFromMask (D d, Mask256< T > m)
 
template<typename T >
HWY_API Vec256< T > IfThenElse (Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T > IfThenElseZero (Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_API Vec256< T > IfThenZeroElse (Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_API Vec256< T > IfNegativeThenElse (Vec256< T > v, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_API Mask256< T > Not (const Mask256< T > m)
 
template<typename T >
HWY_API Mask256< T > And (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > AndNot (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > Or (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > Xor (const Mask256< T > a, Mask256< T > b)
 
template<typename T >
HWY_API Mask256< T > ExclusiveNeither (const Mask256< T > a, Mask256< T > b)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > operator<< (Vec256< T > v, const Vec256< T > bits)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > operator>> (Vec256< T > v, const Vec256< T > bits)
 
template<typename T , HWY_IF_NOT_T_SIZE(T, 1) >
HWY_API Vec256< T > BroadcastSignBit (const Vec256< T > v)
 
HWY_API Vec256< int8_t > BroadcastSignBit (const Vec256< int8_t > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > MaskedLoad (Mask256< T > m, D d, const T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > MaskedLoadOr (Vec256< T > v, Mask256< T > m, D d, const T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void Store (Vec256< T > v, D d, T *HWY_RESTRICT aligned)
 
template<class D , typename T = TFromD<D>>
HWY_API void StoreU (Vec256< T > v, D d, T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API void BlendedStore (Vec256< T > v, Mask256< T > m, D d, T *HWY_RESTRICT p)
 
template<class D , typename T = TFromD<D>>
HWY_API void Stream (Vec256< T > v, D d, T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_APIExtractLane (const Vec256< T > v, size_t i)
 
template<typename T >
HWY_API Vec256< T > InsertLane (const Vec256< T > v, size_t i, T t)
 
template<int kBlockIdx, class T >
HWY_API Vec128< T > ExtractBlock (Vec256< T > v)
 
template<int kBlockIdx, class T >
HWY_API Vec256< T > InsertBlock (Vec256< T > v, Vec128< T > blk_to_insert)
 
template<int kBlockIdx, class T >
HWY_API Vec256< T > BroadcastBlock (Vec256< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > LowerHalf (D, Vec256< T > v)
 
template<typename T >
HWY_API Vec128< T > LowerHalf (Vec256< T > v)
 
template<typename T >
HWY_APIGetLane (const Vec256< T > v)
 
template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > ShiftLeftBytes (D d, Vec256< T > v)
 
template<int kBytes, typename T >
HWY_API Vec256< T > ShiftLeftBytes (Vec256< T > v)
 
template<int kLanes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > ShiftLeftLanes (D d, const Vec256< T > v)
 
template<int kLanes, typename T >
HWY_API Vec256< T > ShiftLeftLanes (const Vec256< T > v)
 
template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > ShiftRightBytes (D d, Vec256< T > v)
 
template<int kLanes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > ShiftRightLanes (D d, const Vec256< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > UpperHalf (D, const Vec256< T > v)
 
template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > CombineShiftRightBytes (D d, Vec256< T > hi, Vec256< T > lo)
 
template<int kLane, typename T >
HWY_API Vec256< T > Broadcast (const Vec256< T > v)
 
template<int kLane, typename T >
HWY_API Vec256< T > BroadcastLane (const Vec256< T > v)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytes (const Vec256< T > bytes, Vec256< TI > from)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (Vec256< T > bytes, const Vec128< TI, NI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec256< TI > TableLookupBytes (Vec128< T, N > bytes, const Vec256< TI > from)
 
template<typename T >
HWY_API Vec256< T > Shuffle01 (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Shuffle2301 (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Shuffle1032 (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Shuffle0321 (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Shuffle2103 (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > Shuffle0123 (Vec256< T > v)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices256< T > IndicesFromVec (D, Vec256< TI > vec)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename TI >
HWY_API Indices256< TFromD< D > > SetTableIndices (D d, const TI *idx)
 
template<typename T >
HWY_API Vec256< T > TableLookupLanes (const Vec256< T > v, Indices256< T > idx)
 
template<typename T >
HWY_API Vec256< T > TableLookupLanesOr0 (Vec256< T > v, Indices256< T > idx)
 
template<typename T >
HWY_API Vec256< T > TwoTablesLookupLanes (const Vec256< T > a, const Vec256< T > b, Indices256< T > idx)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > Reverse (D d, const Vec256< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > Reverse2 (D d, Vec256< T > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 8) >
HWY_API Vec256< T > Reverse4 (D d, const Vec256< T > v)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 8) >
HWY_API Vec256< T > Reverse8 (D, Vec256< T >)
 
template<typename T >
HWY_API Vec256< T > InterleaveLower (Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > InterleaveUpper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > Combine (D, Vec128< T > hi, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ZeroExtendVector (D d, Vec128< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatLowerLower (D, Vec256< T > hi, Vec256< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatUpperUpper (D, Vec256< T > hi, Vec256< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatLowerUpper (D, Vec256< T > hi, Vec256< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatUpperLower (D, Vec256< T > hi, Vec256< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatOdd (D d, Vec256< T > hi, Vec256< T > lo)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ConcatEven (D d, Vec256< T > hi, Vec256< T > lo)
 
template<typename T >
HWY_API Vec256< T > DupEven (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > DupOdd (Vec256< T > v)
 
template<typename T >
HWY_API Vec256< T > OddEven (Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_API Vec256< T > OddEvenBlocks (Vec256< T > odd, Vec256< T > even)
 
template<typename T >
HWY_API Vec256< T > SwapAdjacentBlocks (Vec256< T > v)
 
template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > ReverseBlocks (D, const Vec256< T > v)
 
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 > 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 > > 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 > > PromoteTo (DW d, Vec32< TN > v)
 
template<class D , class T >
HWY_API VFromD< D > PromoteUpperTo (D d, Vec256< T > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > DemoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > DemoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > DemoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > DemoteTo (D, Vec256< int16_t > v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > DemoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > DemoteTo (D, Vec256< int16_t > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > DemoteTo (D di, Vec256< double > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > DemoteTo (D di, Vec256< double > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > DemoteTo (D df, Vec256< int64_t > v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > DemoteTo (D df, Vec256< uint64_t > v)
 
template<class D , HWY_IF_F16_D(D) >
HWY_API Vec128< float16_tDemoteTo (D d16, Vec256< float > v)
 
HWY_API Vec64< uint8_t > U8FromU32 (Vec256< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > TruncateTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > TruncateTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > TruncateTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > TruncateTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > TruncateTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > TruncateTo (D, Vec256< uint16_t > v)
 
template<class DTo , typename TFrom , typename TTo = TFromD<DTo>>
HWY_API Vec256< TTo > ConvertTo (DTo d, const Vec256< TFrom > v)
 
HWY_API Vec256< int32_t > 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 > LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE_ONE_OF(T,(1<< 4)|(1<< 8)) >
HWY_API size_t StoreMaskBits (D d, const Mask256< T > mask, uint8_t *bits)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t CountTrue (D d, const Mask256< T > m)
 
template<class D , typename T = TFromD<D>>
HWY_API bool AllFalse (D d, const Mask256< T > m)
 
template<class D , typename T = TFromD<D>>
HWY_API bool AllTrue (D d, const Mask256< T > m)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownFirstTrue (D d, const Mask256< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindFirstTrue (D d, const Mask256< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t FindKnownLastTrue (D d, const Mask256< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t FindLastTrue (D d, const Mask256< T > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API size_t 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 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 CompressBitsStore (Vec256< T > v, const uint8_t *HWY_RESTRICT bits, D d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec256< T > Compress (const Vec256< T > v, const Mask256< T > mask)
 
template<typename T >
HWY_API Vec256< T > CompressNot (Vec256< T > v, const Mask256< T > mask)
 
HWY_API Vec256< uint64_t > CompressBlocksNot (Vec256< uint64_t > v, Mask256< uint64_t > mask)
 
template<typename T >
HWY_API Vec256< T > CompressBits (Vec256< T > v, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API Vec256< T > Expand (const Vec256< T > v, const Mask256< T > mask)
 
template<class T >
HWY_API Mask256< T > SetAtOrAfterFirst (Mask256< T > mask)
 
template<class T >
HWY_API Mask256< T > SetBeforeFirst (Mask256< T > mask)
 
template<class T >
HWY_API Mask256< T > SetOnlyFirst (Mask256< T > mask)
 
template<class T >
HWY_API Mask256< T > SetAtOrBeforeFirst (Mask256< T > mask)
 
template<class D32 , typename T16 , typename T32 = TFromD<D32>>
HWY_API Vec256< T32 > WidenMulPairwiseAdd (D32 d32, Vec256< T16 > a, Vec256< T16 > b)
 
template<class D32 , typename T16 , typename T32 = TFromD<D32>>
HWY_API Vec256< T32 > ReorderWidenMulAccumulate (D32 d32, Vec256< T16 > a, Vec256< T16 > b, Vec256< T32 > sum0, Vec256< T32 > &sum1)
 
template<typename TW >
HWY_API Vec256< TW > RearrangeToOddPlusEven (Vec256< TW > sum0, Vec256< TW > sum1)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Lt128 (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Lt128Upper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Eq128 (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Eq128Upper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Ne128 (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > Ne128Upper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > Min128 (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > Max128 (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > Min128Upper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > Max128Upper (D d, Vec256< T > a, Vec256< T > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float, HWY_MAX_LANES_D(D)> Zero (D)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double, HWY_MAX_LANES_D(D)> Zero (D)
 
template<class D , typename FromT , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > BitCast (D d, Vec128< FromT, Repartition< FromT, D >().MaxLanes()> v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > Set (D, float t)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > Set (D, double t)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > Undefined (D)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_APIGetLane (const Vec128< T, N > v)
 
template<size_t N>
HWY_API float GetLane (const Vec128< float, N > v)
 
template<size_t N>
HWY_API double GetLane (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > And (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > And (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > AndNot (Vec128< float, N > not_mask, Vec128< float, N > mask)
 
template<size_t N>
HWY_API Vec128< double, N > AndNot (Vec128< double, N > not_mask, Vec128< double, N > mask)
 
template<size_t N>
HWY_API Vec128< float, N > Or (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Or (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > Xor (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > Xor (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > PopulationCount (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Neg (const Vec128< T, N > v)
 
template<class V , HWY_IF_FLOAT(TFromV< V >) >
HWY_APIAbs (V v)
 
template<size_t N>
HWY_API Mask128< float, N > MaskFromVec (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, N > MaskFromVec (const Vec128< double, N > v)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_GT_D(DTo, sizeof(TFromD< DFrom >)) , class DFrom_2 = Rebind<TFromD<DFrom>, DTo>, hwy::EnableIf< IsSame< MFromD< DFrom >, MFromD< DFrom_2 > >()> * = nullptr>
HWY_API MFromD< DTo > PromoteMaskTo (DTo, DFrom, MFromD< DFrom > m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >) - 1) , class DFrom_2 = Rebind<TFromD<DFrom>, DTo>, hwy::EnableIf< IsSame< MFromD< DFrom >, MFromD< DFrom_2 > >()> * = nullptr>
HWY_API MFromD< DTo > DemoteMaskTo (DTo, DFrom, MFromD< DFrom > m)
 
template<class D , HWY_IF_LANES_D(D, 2) >
HWY_API MFromD< D > CombineMasks (D, MFromD< Half< D > > hi, MFromD< Half< D > > lo)
 
template<class D >
HWY_API MFromD< D > LowerHalfOfMask (D d, MFromD< Twice< D > > m)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API MFromD< D > UpperHalfOfMask (D, MFromD< Twice< D > > m)
 
template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, sizeof(TFromD< DFrom >)/2) , class DTo_2 = Repartition<TFromD<DTo>, DFrom>, hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DTo_2 > >()> * = nullptr>
HWY_API MFromD< DTo > OrderedDemote2MasksTo (DTo d_to, DFrom, MFromD< DFrom > a, MFromD< DFrom > b)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > SlideMask1Up (D d, MFromD< D > m)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > SlideMask1Down (D d, MFromD< D > m)
 
template<class D >
HWY_API MFromD< D > SlideMaskUpLanes (D d, MFromD< D > m, size_t amt)
 
template<class D >
HWY_API MFromD< D > SlideMaskDownLanes (D d, MFromD< D > m, size_t amt)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > VecFromMask (const Mask128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > VecFromMask (const Mask128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, N > VecFromMask (const Mask128< double, N > v)
 
template<typename TFrom , size_t NFrom, class DTo , HWY_IF_V_SIZE_LE_D(DTo, 16) >
HWY_API MFromD< DTo > RebindMask (DTo, Mask128< TFrom, NFrom > m)
 
template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > IfThenElse (Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<class V , class D = DFromV<V>, HWY_X86_IF_EMULATED_D(D) >
HWY_APIIfThenElse (MFromD< D > mask, V yes, V no)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenElse (Mask128< float, N > mask, Vec128< float, N > yes, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenElse (Mask128< double, N > mask, Vec128< double, N > yes, Vec128< double, N > no)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenElseZero (Mask128< float, N > mask, Vec128< float, N > yes)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenElseZero (Mask128< double, N > mask, Vec128< double, N > yes)
 
template<class V , class D = DFromV<V>, HWY_IF_SPECIAL_FLOAT_D(D) >
HWY_APIIfThenElseZero (MFromD< D > mask, V yes)
 
template<size_t N>
HWY_API Vec128< float, N > IfThenZeroElse (Mask128< float, N > mask, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, N > IfThenZeroElse (Mask128< double, N > mask, Vec128< double, N > no)
 
template<class V , class D = DFromV<V>, HWY_IF_SPECIAL_FLOAT_D(D) >
HWY_APIIfThenZeroElse (MFromD< D > mask, V no)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > Load (D, const TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > Load (D, const float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > Load (D, const double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > LoadU (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > Load (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API Vec64< double > Load (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > Load (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void Store (Vec128< float > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void Store (Vec128< double > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void StoreU (Vec128< double > v, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API void Store (Vec64< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API void Store (Vec64< double > v, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API void Store (Vec32< float > v, D, float *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< float, N > Shuffle2301 (const Vec128< float, N > v)
 
HWY_API Vec128< uint32_t > Shuffle1032 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle1032 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle1032 (const Vec128< float > v)
 
HWY_API Vec128< uint64_t > Shuffle01 (const Vec128< uint64_t > v)
 
HWY_API Vec128< int64_t > Shuffle01 (const Vec128< int64_t > v)
 
HWY_API Vec128< double > Shuffle01 (const Vec128< double > v)
 
HWY_API Vec128< uint32_t > Shuffle0321 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle0321 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle0321 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > Shuffle2103 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle2103 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle2103 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > Shuffle0123 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > Shuffle0123 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > Shuffle0123 (const Vec128< float > v)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Mask128< T, N > operator== (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Mask128< T, N > operator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<class D , class M = MFromD<D>, HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_APIFirstN (D d, size_t num)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > MaskedLoad (MFromD< D > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, MFromD< D > m, D, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, MFromD< D > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, MFromD< D > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void BlendedStore (VFromD< D > v, MFromD< D > m, D, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void BlendedStore (VFromD< D > v, MFromD< D > m, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void BlendedStore (VFromD< D > v, MFromD< D > m, D, double *HWY_RESTRICT p)
 
template<size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > AddSub (Vec128< float, N > a, Vec128< float, N > b)
 
HWY_API Vec128< double > AddSub (Vec128< double > a, Vec128< double > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N/8 > SumsOf8AbsDiff (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWideX3< DFromV< V > > > SumsOf8AbsDiff (V a, V b)
 
template<int kAOffset, int kBOffset, size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > SumsOfAdjQuadAbsDiff (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<int kAOffset, int kBOffset, class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > SumsOfAdjQuadAbsDiff (V a, V b)
 
template<int kIdx3, int kIdx2, int kIdx1, int kIdx0, size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > SumsOfShuffledQuadAbsDiff (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<int kIdx3, int kIdx2, int kIdx1, int kIdx0, class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > SumsOfShuffledQuadAbsDiff (V a, V b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > SaturatedAdd (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > SaturatedAdd (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > SaturatedSub (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > SaturatedSub (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 4)) , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIMulHigh (V a, V b)
 
template<class V , HWY_IF_U8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > MulEven (V a, V b)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > MulOdd (V a, V b)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > RotateRight (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > RotateRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > RotateRight (const Vec128< uint64_t, N > v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 4)|(1<< 8)) >
HWY_APIRotateLeftSame (V v, int bits)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 4)|(1<< 8)) >
HWY_APIRotateRightSame (V v, int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > BroadcastSignBit (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > BroadcastSignBit (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, N > BroadcastSignBit (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, N > IfNegativeThenElse (const Vec128< int8_t, N > v, const Vec128< int8_t, N > yes, const Vec128< int8_t, N > no)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec128< T, N > IfNegativeThenElse (Vec128< T, N > v, Vec128< T, N > yes, Vec128< T, N > no)
 
template<size_t N>
HWY_API Vec128< int8_t, N > IfNegativeThenNegOrUndefIfZero (Vec128< int8_t, N > mask, Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, N > IfNegativeThenNegOrUndefIfZero (Vec128< int16_t, N > mask, Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, N > IfNegativeThenNegOrUndefIfZero (Vec128< int32_t, N > mask, Vec128< int32_t, N > v)
 
HWY_API Vec128< float, 1 > operator* (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
HWY_API Vec64< double > operator* (const Vec64< double > a, const Vec64< double > b)
 
HWY_API Vec128< float, 1 > operator/ (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
HWY_API Vec64< double > operator/ (const Vec64< double > a, const Vec64< double > b)
 
HWY_API Vec128< float, 1 > ApproximateReciprocal (const Vec128< float, 1 > v)
 
HWY_API Vec128< double > ApproximateReciprocal (Vec128< double > v)
 
HWY_API Vec64< double > ApproximateReciprocal (Vec64< double > v)
 
template<typename T , size_t N, HWY_IF_U8(T) >
HWY_API Vec128< T, N > MaskedMinOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_U8(T) >
HWY_API Vec128< T, N > MaskedMaxOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_UI8(T) >
HWY_API Vec128< T, N > MaskedAddOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_UI8(T) >
HWY_API Vec128< T, N > MaskedSubOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > MaskedMulOr (Vec128< float, N > no, Mask128< float, N > m, Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > MaskedMulOr (Vec128< double, N > no, Mask128< double, N > m, Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > MaskedDivOr (Vec128< float, N > no, Mask128< float, N > m, Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, N > MaskedDivOr (Vec128< double, N > no, Mask128< double, N > m, Vec128< double, N > a, Vec128< double, N > b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIMaskedDivOr (V no, MFromD< DFromV< V > > m, V a, V b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIMaskedModOr (V no, MFromD< DFromV< V > > m, V a, V b)
 
template<typename T , size_t N, HWY_IF_I8(T) >
HWY_API Vec128< T, N > MaskedSatAddOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_I8(T) >
HWY_API Vec128< T, N > MaskedSatSubOr (Vec128< T, N > no, Mask128< T, N > m, Vec128< T, N > a, Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > MulAdd (Vec128< float, N > mul, Vec128< float, N > x, Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< double, N > MulAdd (Vec128< double, N > mul, Vec128< double, N > x, Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< float, N > NegMulAdd (Vec128< float, N > mul, Vec128< float, N > x, Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< double, N > NegMulAdd (Vec128< double, N > mul, Vec128< double, N > x, Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< float, N > MulSub (Vec128< float, N > mul, Vec128< float, N > x, Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< double, N > MulSub (Vec128< double, N > mul, Vec128< double, N > x, Vec128< double, N > sub)
 
template<size_t N>
HWY_API Vec128< float, N > NegMulSub (Vec128< float, N > mul, Vec128< float, N > x, Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< double, N > NegMulSub (Vec128< double, N > mul, Vec128< double, N > x, Vec128< double, N > sub)
 
template<size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > MulAddSub (Vec128< float, N > mul, Vec128< float, N > x, Vec128< float, N > sub_or_add)
 
HWY_API Vec128< double > MulAddSub (Vec128< double > mul, Vec128< double > x, Vec128< double > sub_or_add)
 
HWY_API Vec128< float, 1 > Sqrt (Vec128< float, 1 > v)
 
HWY_API Vec64< double > Sqrt (Vec64< double > v)
 
HWY_API Vec128< float, 1 > ApproximateReciprocalSqrt (Vec128< float, 1 > v)
 
HWY_API Vec64< double > ApproximateReciprocalSqrt (Vec64< double > v)
 
HWY_API Vec128< double > ApproximateReciprocalSqrt (Vec128< double > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API void Stream (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void Stream (VFromD< D > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void Stream (VFromD< D > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void ScatterOffset (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offset)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void ScatterIndex (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D d, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > GatherOffset (D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offsets)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename T = TFromD<D>>
HWY_API VFromD< D > GatherIndex (D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename T = TFromD<D>>
HWY_API VFromD< D > MaskedGatherIndexOr (VFromD< D > no, MFromD< D > m, D d, const T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D >
HWY_API VFromD< D > MaskedGatherIndex (MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > ShiftLeftBytes (D d, VFromD< D > v)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > ShiftRightBytes (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > UpperHalf (D, Vec128< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API Vec64< double > UpperHalf (D, Vec128< double > v)
 
template<int kLane, size_t N>
HWY_API Vec128< float, N > Broadcast (const Vec128< float, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< double, N > Broadcast (const Vec128< double, N > v)
 
template<class D , typename T = TFromD<D>, typename TI , size_t kN, HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE(T, 1) >
HWY_API Indices128< T, kN > IndicesFromVec (D d, Vec128< TI, kN > vec)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > TableLookupLanes (Vec128< T, N > v, Indices128< T, N > idx)
 
template<size_t N, HWY_IF_V_SIZE_GT(float, N, 4) >
HWY_API Vec128< float, N > TableLookupLanes (Vec128< float, N > v, Indices128< float, N > idx)
 
template<typename T , HWY_IF_UI64(T) >
HWY_API Vec128< T > TableLookupLanes (Vec128< T > v, Indices128< T > idx)
 
HWY_API Vec128< double > TableLookupLanes (Vec128< double > v, Indices128< double > idx)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 2) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > Reverse (D d, const VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > InterleaveUpper (D, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_T_SIZE_ONE_OF_D( D,(HWY_TARGET<=HWY_AVX3 ?((1<< 1)|(1<< 2)) :0)|(1<< 4)|(1<< 8)) >
HWY_API void StoreN (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p, size_t max_lanes_to_store)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API VFromD< D > ZeroExtendVector (D d, VFromD< Half< D > > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > ConcatUpperLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > ConcatUpperLower (D d, Vec128< float > hi, Vec128< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > ConcatUpperLower (D, Vec128< double > hi, Vec128< double > lo)
 
template<typename V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_GT_V(V, 2) >
HWY_APIDupEven (V v)
 
template<typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec64< T > DupEven (const Vec64< T > v)
 
template<class V , HWY_IF_T_SIZE_V(V, 2) >
HWY_APIDupEven (const V v)
 
HWY_API Vec128< float > DupEven (Vec128< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, 1 > DupOdd (Vec128< T, 1 > v)
 
template<typename V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_GT_V(V, 1) >
HWY_APIDupOdd (V v)
 
template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_LANES_LE(N, 4) >
HWY_API Vec128< T, N > DupOdd (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, N > DupOdd (Vec128< float, N > v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > TwoTablesLookupLanes (Vec128< T > a, Vec128< T > b, Indices128< T > idx)
 
HWY_API Vec128< float > TwoTablesLookupLanes (Vec128< float > a, Vec128< float > b, Indices128< float > idx)
 
HWY_API Vec128< double > TwoTablesLookupLanes (Vec128< double > a, Vec128< double > b, Indices128< double > idx)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > operator>> (Vec128< uint16_t, N > in, const Vec128< uint16_t, N > bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > operator>> (Vec128< uint8_t, N > in, const Vec128< uint8_t, N > bits)
 
HWY_API Vec128< uint8_t, 1 > operator>> (const Vec128< uint8_t, 1 > in, const Vec128< uint8_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > operator>> (const Vec128< uint32_t, N > in, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint32_t, 1 > operator>> (const Vec128< uint32_t, 1 > in, const Vec128< uint32_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int16_t, N > operator>> (Vec128< int16_t, N > v, Vec128< int16_t, N > bits)
 
template<size_t N>
HWY_API Vec128< int8_t, N > operator>> (Vec128< int8_t, N > v, Vec128< int8_t, N > bits)
 
HWY_API Vec128< int8_t, 1 > operator>> (Vec128< int8_t, 1 > v, Vec128< int8_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int32_t, N > operator>> (Vec128< int32_t, N > v, Vec128< int32_t, N > bits)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator>> (Vec128< int64_t, N > v, Vec128< int64_t, N > bits)
 
template<class V , HWY_IF_UI64(TFromV< V >) , HWY_IF_V_SIZE_GT_V(V,(HWY_ARCH_X86_64 ? 16 :8)) >
HWY_APIMulEven (V a, V b)
 
template<class V , HWY_IF_UI64(TFromV< V >) , HWY_IF_V_SIZE_GT_V(V,(HWY_ARCH_X86_64 ? 16 :8)) >
HWY_APIMulOdd (V a, V b)
 
template<class DU32 , HWY_IF_U32_D(DU32) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > WidenMulPairwiseAdd (DU32 du32, VU16 a, VU16 b)
 
template<class DI16 , HWY_IF_I16_D(DI16) , HWY_IF_V_SIZE_LE_D(DI16, 16) >
HWY_API VFromD< DI16 > SatWidenMulPairwiseAdd (DI16, VFromD< Repartition< uint8_t, DI16 > > a, VFromD< Repartition< int8_t, DI16 > > b)
 
template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_LE_D(DI32, 16) >
HWY_API VFromD< DI32 > SatWidenMulPairwiseAccumulate (DI32, VFromD< Repartition< int16_t, DI32 > > a, VFromD< Repartition< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
template<class DU32 , HWY_IF_U32_D(DU32) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > ReorderWidenMulAccumulate (DU32 d, VU16 a, VU16 b, const VFromD< DU32 > sum0, VFromD< DU32 > &)
 
template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_LE_D(DI32, 16) >
HWY_API VFromD< DI32 > SumOfMulQuadAccumulate (DI32, VFromD< Repartition< uint8_t, DI32 > > a_u, VFromD< Repartition< int8_t, DI32 > > b_i, VFromD< DI32 > sum)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec32< int32_t > a, Vec32< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec64< int32_t > a, Vec64< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec128< int32_t > a, Vec128< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec128< uint32_t > a, Vec128< uint32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec64< int16_t > a, Vec64< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec128< int16_t > a, Vec128< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec128< uint16_t > a, Vec128< uint16_t > b)
 
template<class D , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_V_SIZE_LE_D(D, 16) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > OrderedDemote2To (D d, V a, V b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > DemoteInRangeTo (D, VFromD< Rebind< double, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteInRangeTo (D, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D d, Vec128< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< Rebind< int64_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, VFromD< Rebind< uint64_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ConvertInRangeTo (D, VFromD< RebindToFloat< D > > v)
 
template<class D , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ConvertTo (D di, VFromD< RebindToFloat< D > > v)
 
template<class DI , HWY_IF_I64_D(DI) >
HWY_API VFromD< DI > ConvertTo (DI di, VFromD< RebindToFloat< DI > > v)
 
template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > ConvertInRangeTo (DU, VFromD< RebindToFloat< DU > > v)
 
template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > ConvertTo (DU, VFromD< RebindToFloat< DU > > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Ceil (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N > Floor (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Mask128< float, N > IsNaN (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, N > IsNaN (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, N > IsEitherNaN (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, N > IsEitherNaN (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< float, N > IsInf (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, N > IsInf (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, N > IsFinite (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, N > IsFinite (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > CLMulLower (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > CLMulUpper (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N, HWY_IF_V_SIZE_GT(float, N, 4) >
HWY_API Vec128< float, N > Compress (Vec128< float, N > v, Mask128< float, N > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned)
 
template<class T , size_t N>
HWY_API Mask128< T, N > SetAtOrAfterFirst (Mask128< T, N > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > MinOfLanes (D, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > MaxOfLanes (D d, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > MinOfLanes (D d, Vec64< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > MinOfLanes (D d, Vec128< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > MaxOfLanes (D d, Vec64< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > MaxOfLanes (D d, Vec128< uint8_t > v)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Lt128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Eq128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Ne128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Lt128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Eq128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > Ne128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > Min128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > Max128 (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > Min128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > Max128Upper (D d, VFromD< D > a, VFromD< D > b)
 
template<class V , HWY_IF_UI32(TFromV< V >) , HWY_IF_V_SIZE_LE_D(DFromV< V >, 16) >
HWY_APILeadingZeroCount (V v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , typename FromT >
HWY_API VFromD< D > BitCast (D d, Vec256< FromT > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec256< TFromD< D > > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API Vec256< bfloat16_tZero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API Vec256< float16_tZero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > Set (D, float t)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > Set (D, double t)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API Vec256< bfloat16_tUndefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API Vec256< float16_tUndefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > Undefined (D)
 
HWY_API Vec256< float > And (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > And (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< float > AndNot (Vec256< float > not_mask, Vec256< float > mask)
 
HWY_API Vec256< double > AndNot (Vec256< double > not_mask, Vec256< double > mask)
 
HWY_API Vec256< float > Or (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > Or (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< float > Xor (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > Xor (Vec256< double > a, Vec256< double > b)
 
template<typename T >
HWY_API Vec256< T > PopulationCount (Vec256< T > v)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > IfThenElse (Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
HWY_API Vec256< float > IfThenElse (Mask256< float > mask, Vec256< float > yes, Vec256< float > no)
 
HWY_API Vec256< double > IfThenElse (Mask256< double > mask, Vec256< double > yes, Vec256< double > no)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > IfThenElseZero (Mask256< T > mask, Vec256< T > yes)
 
HWY_API Vec256< float > IfThenElseZero (Mask256< float > mask, Vec256< float > yes)
 
HWY_API Vec256< double > IfThenElseZero (Mask256< double > mask, Vec256< double > yes)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > IfThenZeroElse (Mask256< T > mask, Vec256< T > no)
 
HWY_API Vec256< float > IfThenZeroElse (Mask256< float > mask, Vec256< float > no)
 
HWY_API Vec256< double > IfThenZeroElse (Mask256< double > mask, Vec256< double > no)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask256< T > operator== (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Mask256< float > operator== (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator== (Vec256< double > a, Vec256< double > b)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask256< T > operator!= (const Vec256< T > a, const Vec256< T > b)
 
HWY_API Mask256< float > operator!= (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator!= (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< int8_t > operator> (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator> (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator> (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Mask256< int64_t > operator> (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Mask256< uint8_t > operator> (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Mask256< uint16_t > operator> (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Mask256< uint32_t > operator> (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
HWY_API Mask256< uint64_t > operator> (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Mask256< float > operator> (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator> (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< float > operator>= (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > operator>= (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< int8_t > operator>= (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Mask256< int16_t > operator>= (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Mask256< int32_t > operator>= (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Mask256< int64_t > operator>= (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Mask256< uint8_t > operator>= (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Mask256< uint16_t > operator>= (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Mask256< uint32_t > operator>= (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Mask256< uint64_t > operator>= (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Mask256< T > MaskFromVec (const Vec256< T > v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > VecFromMask (const Mask256< T > v)
 
HWY_API Vec256< float > VecFromMask (const Mask256< float > v)
 
HWY_API Vec256< double > VecFromMask (const Mask256< double > v)
 
HWY_API Vec256< uint8_t > Min (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > Min (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > Min (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > Min (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > Min (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > Min (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > Min (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > Min (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > Min (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > Min (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< uint8_t > Max (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > Max (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > Max (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > Max (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > Max (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > Max (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > Max (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > Max (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > Max (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > Max (const Vec256< double > a, const Vec256< double > b)
 
HWY_API Vec256< uint8_t > operator+ (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > operator+ (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator+ (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > operator+ (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > operator+ (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > operator+ (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator+ (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > operator+ (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Vec256< float > operator+ (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > operator+ (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< uint8_t > operator- (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > operator- (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator- (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > operator- (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > operator- (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > operator- (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator- (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > operator- (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Vec256< float > operator- (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > operator- (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< float > AddSub (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > AddSub (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< uint64_t > SumsOf8AbsDiff (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
template<int kAOffset, int kBOffset>
static Vec256< uint16_t > SumsOfAdjQuadAbsDiff (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
template<int kIdx3, int kIdx2, int kIdx1, int kIdx0>
static Vec256< uint16_t > SumsOfShuffledQuadAbsDiff (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint8_t > SaturatedAdd (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > SaturatedAdd (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > SaturatedAdd (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > SaturatedAdd (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > SaturatedAdd (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > SaturatedAdd (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Vec256< uint8_t > SaturatedSub (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > SaturatedSub (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > SaturatedSub (Vec256< int8_t > a, Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > SaturatedSub (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > SaturatedSub (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > SaturatedSub (Vec256< int64_t > a, Vec256< int64_t > b)
 
HWY_API Vec256< uint8_t > AverageRound (Vec256< uint8_t > a, Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > AverageRound (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< int8_t > Abs (Vec256< int8_t > v)
 
HWY_API Vec256< int16_t > Abs (const Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > Abs (const Vec256< int32_t > v)
 
HWY_API Vec256< int64_t > Abs (const Vec256< int64_t > v)
 
HWY_API Vec256< uint16_t > operator* (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > operator* (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
HWY_API Vec256< int16_t > operator* (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > operator* (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< uint16_t > MulHigh (Vec256< uint16_t > a, Vec256< uint16_t > b)
 
HWY_API Vec256< int16_t > MulHigh (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int16_t > MulFixedPoint15 (Vec256< int16_t > a, Vec256< int16_t > b)
 
HWY_API Vec256< int64_t > MulEven (Vec256< int32_t > a, Vec256< int32_t > b)
 
HWY_API Vec256< uint64_t > MulEven (Vec256< uint32_t > a, Vec256< uint32_t > b)
 
template<int kBits>
HWY_API Vec256< uint16_t > ShiftLeft (Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > ShiftLeft (Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > ShiftLeft (Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftLeft (Vec256< int16_t > v)
 
template<int kBits>
HWY_API Vec256< int32_t > ShiftLeft (Vec256< int32_t > v)
 
template<int kBits>
HWY_API Vec256< int64_t > ShiftLeft (Vec256< int64_t > v)
 
template<int kBits>
HWY_API Vec256< uint16_t > ShiftRight (Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > ShiftRight (Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > ShiftRight (Vec256< uint64_t > v)
 
template<int kBits>
HWY_API Vec256< int16_t > ShiftRight (Vec256< int16_t > v)
 
template<int kBits>
HWY_API Vec256< int32_t > ShiftRight (Vec256< int32_t > v)
 
template<int kBits>
HWY_API Vec256< uint16_t > RotateRight (const Vec256< uint16_t > v)
 
template<int kBits>
HWY_API Vec256< uint32_t > RotateRight (const Vec256< uint32_t > v)
 
template<int kBits>
HWY_API Vec256< uint64_t > RotateRight (const Vec256< uint64_t > v)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec256< T > Rol (Vec256< T > a, Vec256< T > b)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec256< T > Ror (Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< int16_t > BroadcastSignBit (const Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > BroadcastSignBit (const Vec256< int32_t > v)
 
HWY_API Vec256< int64_t > BroadcastSignBit (const Vec256< int64_t > v)
 
template<int kBits>
HWY_API Vec256< int64_t > ShiftRight (const Vec256< int64_t > v)
 
HWY_API Vec256< int8_t > IfNegativeThenElse (Vec256< int8_t > v, Vec256< int8_t > yes, Vec256< int8_t > no)
 
template<typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec256< T > IfNegativeThenElse (Vec256< T > v, Vec256< T > yes, Vec256< T > no)
 
HWY_API Vec256< int8_t > IfNegativeThenNegOrUndefIfZero (Vec256< int8_t > mask, Vec256< int8_t > v)
 
HWY_API Vec256< int16_t > IfNegativeThenNegOrUndefIfZero (Vec256< int16_t > mask, Vec256< int16_t > v)
 
HWY_API Vec256< int32_t > IfNegativeThenNegOrUndefIfZero (Vec256< int32_t > mask, Vec256< int32_t > v)
 
HWY_API Vec256< uint16_t > ShiftLeftSame (const Vec256< uint16_t > v, const int bits)
 
HWY_API Vec256< uint32_t > ShiftLeftSame (const Vec256< uint32_t > v, const int bits)
 
HWY_API Vec256< uint64_t > ShiftLeftSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftLeftSame (const Vec256< int16_t > v, const int bits)
 
HWY_API Vec256< int32_t > ShiftLeftSame (const Vec256< int32_t > v, const int bits)
 
HWY_API Vec256< int64_t > ShiftLeftSame (const Vec256< int64_t > v, const int bits)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > ShiftLeftSame (const Vec256< T > v, const int bits)
 
HWY_API Vec256< uint16_t > ShiftRightSame (const Vec256< uint16_t > v, const int bits)
 
HWY_API Vec256< uint32_t > ShiftRightSame (const Vec256< uint32_t > v, const int bits)
 
HWY_API Vec256< uint64_t > ShiftRightSame (const Vec256< uint64_t > v, const int bits)
 
HWY_API Vec256< uint8_t > ShiftRightSame (Vec256< uint8_t > v, const int bits)
 
HWY_API Vec256< int16_t > ShiftRightSame (const Vec256< int16_t > v, const int bits)
 
HWY_API Vec256< int32_t > ShiftRightSame (const Vec256< int32_t > v, const int bits)
 
HWY_API Vec256< int64_t > ShiftRightSame (const Vec256< int64_t > v, const int bits)
 
HWY_API Vec256< int8_t > ShiftRightSame (Vec256< int8_t > v, const int bits)
 
HWY_API Vec256< float > operator* (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > operator* (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< float > operator/ (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > operator/ (Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< double > ApproximateReciprocal (Vec256< double > v)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec256< T > MaskedMinOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec256< T > MaskedMaxOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec256< T > MaskedAddOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec256< T > MaskedSubOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< float > MaskedMulOr (Vec256< float > no, Mask256< float > m, Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > MaskedMulOr (Vec256< double > no, Mask256< double > m, Vec256< double > a, Vec256< double > b)
 
HWY_API Vec256< float > MaskedDivOr (Vec256< float > no, Mask256< float > m, Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > MaskedDivOr (Vec256< double > no, Mask256< double > m, Vec256< double > a, Vec256< double > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec256< T > MaskedSatAddOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec256< T > MaskedSatSubOr (Vec256< T > no, Mask256< T > m, Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< double > MulAdd (Vec256< double > mul, Vec256< double > x, Vec256< double > add)
 
HWY_API Vec256< double > NegMulAdd (Vec256< double > mul, Vec256< double > x, Vec256< double > add)
 
HWY_API Vec256< double > MulSub (Vec256< double > mul, Vec256< double > x, Vec256< double > sub)
 
HWY_API Vec256< double > NegMulSub (Vec256< double > mul, Vec256< double > x, Vec256< double > sub)
 
HWY_API Vec256< float > MulAddSub (Vec256< float > mul, Vec256< float > x, Vec256< float > sub_or_add)
 
HWY_API Vec256< double > MulAddSub (Vec256< double > mul, Vec256< double > x, Vec256< double > sub_or_add)
 
HWY_API Vec256< float > Sqrt (Vec256< float > v)
 
HWY_API Vec256< double > Sqrt (Vec256< double > v)
 
HWY_API Vec256< double > ApproximateReciprocalSqrt (Vec256< double > v)
 
HWY_API Vec256< double > Round (Vec256< double > v)
 
HWY_API Vec256< double > Trunc (Vec256< double > v)
 
HWY_API Vec256< double > Ceil (Vec256< double > v)
 
HWY_API Vec256< double > Floor (Vec256< double > v)
 
HWY_API Mask256< float > IsNaN (Vec256< float > v)
 
HWY_API Mask256< double > IsNaN (Vec256< double > v)
 
HWY_API Mask256< float > IsEitherNaN (Vec256< float > a, Vec256< float > b)
 
HWY_API Mask256< double > IsEitherNaN (Vec256< double > a, Vec256< double > b)
 
HWY_API Mask256< float > IsInf (Vec256< float > v)
 
HWY_API Mask256< double > IsInf (Vec256< double > v)
 
HWY_API Mask256< float > IsFinite (Vec256< float > v)
 
HWY_API Mask256< double > IsFinite (Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > Load (D, const float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > Load (D, const double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > LoadU (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > LoadU (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > MaskedLoad (Mask256< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > MaskedLoad (Mask256< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > MaskedLoadOr (VFromD< D > v, Mask256< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > MaskedLoadOr (VFromD< D > v, Mask256< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > LoadDup128 (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > LoadDup128 (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > LoadDup128 (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void Store (Vec256< float > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void Store (Vec256< double > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void StoreU (Vec256< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void StoreU (Vec256< double > v, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void BlendedStore (Vec256< float > v, Mask256< float > m, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void BlendedStore (Vec256< double > v, Mask256< double > m, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void Stream (Vec256< float > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void Stream (Vec256< double > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, Vec256< int32_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI64_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, Vec256< int64_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, float *HWY_RESTRICT base, const Vec256< int32_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, double *HWY_RESTRICT base, const Vec256< int64_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void ScatterIndex (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void ScatterIndex (VFromD< D > v, D, float *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void ScatterIndex (VFromD< D > v, D, double *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, float *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, double *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > GatherIndex (D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > MaskedGatherIndexOr (VFromD< D > no, MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > LowerHalf (D, VFromD< Twice< D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_BF16_D(D) >
HWY_API Vec128< bfloat16_tLowerHalf (D, Vec256< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F16_D(D) >
HWY_API Vec128< float16_tLowerHalf (D, Vec256< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > LowerHalf (D, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > LowerHalf (D, Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > UpperHalf (D, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > UpperHalf (D, Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > ZeroExtendVector (D, Vec128< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ZeroExtendVector (D, Vec128< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > Combine (D d, VFromD< Half< D > > hi, VFromD< Half< D > > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > Combine (D d, Vec128< float > hi, Vec128< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > Combine (D d, Vec128< double > hi, Vec128< double > lo)
 
template<int kLane, typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec256< T > Broadcast (const Vec256< T > v)
 
template<int kLane>
HWY_API Vec256< float > Broadcast (Vec256< float > v)
 
template<int kLane>
HWY_API Vec256< double > Broadcast (const Vec256< double > v)
 
template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > Shuffle2301 (const Vec256< T > v)
 
HWY_API Vec256< float > Shuffle2301 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle1032 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle1032 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle1032 (const Vec256< float > v)
 
HWY_API Vec256< uint64_t > Shuffle01 (const Vec256< uint64_t > v)
 
HWY_API Vec256< int64_t > Shuffle01 (const Vec256< int64_t > v)
 
HWY_API Vec256< double > Shuffle01 (const Vec256< double > v)
 
HWY_API Vec256< uint32_t > Shuffle0321 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle0321 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle0321 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle2103 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle2103 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle2103 (const Vec256< float > v)
 
HWY_API Vec256< uint32_t > Shuffle0123 (const Vec256< uint32_t > v)
 
HWY_API Vec256< int32_t > Shuffle0123 (const Vec256< int32_t > v)
 
HWY_API Vec256< float > Shuffle0123 (const Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) , typename TI >
HWY_API Indices256< TFromD< D > > IndicesFromVec (D, Vec256< TI > vec)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > TableLookupLanes (Vec256< T > v, Indices256< T > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec256< T > TableLookupLanes (Vec256< T > v, Indices256< T > idx)
 
HWY_API Vec256< float > TableLookupLanes (const Vec256< float > v, const Indices256< float > idx)
 
HWY_API Vec256< double > TableLookupLanes (const Vec256< double > v, const Indices256< double > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > TwoTablesLookupLanes (Vec256< T > a, Vec256< T > b, Indices256< T > idx)
 
HWY_API Vec256< float > TwoTablesLookupLanes (Vec256< float > a, Vec256< float > b, Indices256< float > idx)
 
HWY_API Vec256< double > TwoTablesLookupLanes (Vec256< double > a, Vec256< double > b, Indices256< double > idx)
 
HWY_API Vec256< double > SwapAdjacentBlocks (Vec256< double > v)
 
HWY_API Vec256< float > SwapAdjacentBlocks (Vec256< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > InterleaveLower (Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< float > InterleaveLower (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > InterleaveLower (Vec256< double > a, Vec256< double > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > ConcatLowerLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > ConcatLowerLower (D d, Vec256< float > hi, Vec256< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatLowerLower (D d, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > ConcatLowerUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > ConcatLowerUpper (D, Vec256< float > hi, Vec256< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatLowerUpper (D, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > ConcatUpperLower (D, Vec256< float > hi, Vec256< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatUpperLower (D, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > ConcatUpperUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > ConcatUpperUpper (D, Vec256< float > hi, Vec256< float > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatUpperUpper (D, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatOdd (D d, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > ConcatEven (D d, Vec256< double > hi, Vec256< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > InterleaveWholeLower (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > InterleaveWholeUpper (D d, VFromD< D > a, VFromD< D > b)
 
template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > DupEven (Vec256< T > v)
 
HWY_API Vec256< float > DupEven (Vec256< float > v)
 
template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > DupOdd (Vec256< T > v)
 
HWY_API Vec256< float > DupOdd (Vec256< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_INLINE Vec256< T > OddEven (Vec256< T > a, Vec256< T > b)
 
HWY_API Vec256< float > OddEven (Vec256< float > a, Vec256< float > b)
 
HWY_API Vec256< double > OddEven (Vec256< double > a, Vec256< double > b)
 
template<typename T , HWY_IF_NOT_FLOAT3264(T) >
Vec256< T > OddEvenBlocks (Vec256< T > odd, Vec256< T > even)
 
HWY_API Vec256< float > OddEvenBlocks (Vec256< float > odd, Vec256< float > even)
 
HWY_API Vec256< double > OddEvenBlocks (Vec256< double > odd, Vec256< double > even)
 
template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Slide1Up (D d, VFromD< D > v)
 
template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > Slide1Down (D d, VFromD< D > v)
 
template<typename T >
HWY_API Vec256< T > operator<< (Vec256< T > v, Vec256< T > bits)
 
HWY_API Vec256< uint16_t > operator>> (Vec256< uint16_t > v, Vec256< uint16_t > bits)
 
HWY_API Vec256< uint8_t > operator>> (Vec256< uint8_t > v, Vec256< uint8_t > bits)
 
HWY_API Vec256< uint32_t > operator>> (Vec256< uint32_t > v, Vec256< uint32_t > bits)
 
HWY_API Vec256< uint64_t > operator>> (Vec256< uint64_t > v, Vec256< uint64_t > bits)
 
HWY_API Vec256< int16_t > operator>> (Vec256< int16_t > v, Vec256< int16_t > bits)
 
HWY_API Vec256< int8_t > operator>> (Vec256< int8_t > v, Vec256< int8_t > bits)
 
HWY_API Vec256< int32_t > operator>> (Vec256< int32_t > v, Vec256< int32_t > bits)
 
HWY_API Vec256< int64_t > operator>> (Vec256< int64_t > v, Vec256< int64_t > bits)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > WidenMulPairwiseAdd (D, Vec256< int16_t > a, Vec256< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ReorderWidenMulAccumulate (D d, Vec256< int16_t > a, Vec256< int16_t > b, const VFromD< D > sum0, VFromD< D > &)
 
HWY_API Vec256< int32_t > RearrangeToOddPlusEven (const Vec256< int32_t > sum0, Vec256< int32_t >)
 
HWY_API Vec256< uint32_t > RearrangeToOddPlusEven (const Vec256< uint32_t > sum0, Vec256< uint32_t >)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > PromoteTo (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< uint8_t, 8 > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec64< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec32< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< int8_t, 8 > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec128< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec64< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec32< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D dn, Vec256< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec256< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D dn, Vec256< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec256< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > DemoteTo (D df16, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec256< int32_t > a, Vec256< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec256< uint32_t > a, Vec256< uint32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec256< int16_t > a, Vec256< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec256< uint16_t > a, Vec256< uint16_t > b)
 
template<class D , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)|((HWY_TARGET > HWY_AVX3) ?(1<< 8) :0)) >
HWY_API VFromD< D > OrderedDemote2To (D d, V a, V b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > DemoteInRangeTo (D, Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D, Vec256< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec256< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec256< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ConvertInRangeTo (D, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > ConvertInRangeTo (D, Vec256< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, Vec128< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, Vec128< bfloat16_t > v)
 
HWY_API Vec256< uint8_t > AESRound (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
HWY_API Vec256< uint8_t > AESLastRound (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
HWY_API Vec256< uint8_t > AESRoundInv (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
HWY_API Vec256< uint8_t > AESLastRoundInv (Vec256< uint8_t > state, Vec256< uint8_t > round_key)
 
template<class V , HWY_IF_V_SIZE_GT_V(V, 16) , HWY_IF_U8_D(DFromV< V >) >
HWY_APIAESInvMixColumns (V state)
 
template<uint8_t kRcon>
HWY_API Vec256< uint8_t > AESKeyGenAssist (Vec256< uint8_t > v)
 
HWY_API Vec256< uint64_t > CLMulLower (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
HWY_API Vec256< uint64_t > CLMulUpper (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec256< T > Compress (Vec256< T > v, Mask256< T > mask)
 
HWY_API Vec256< float > Compress (Vec256< float > v, Mask256< float > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec256< T > CompressNot (Vec256< T > v, Mask256< T > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > Expand (Vec256< T > v, Mask256< T > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , typename FromT >
HWY_API VFromD< D > BitCast (D d, Vec512< FromT > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > Set (D, float t)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > Set (D, double t)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_tZero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_tZero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_tUndefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_tUndefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > Undefined (D)
 
template<typename T >
HWY_API Vec512< T > Not (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > And (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > And (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > And (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > AndNot (const Vec512< T > not_mask, const Vec512< T > mask)
 
HWY_API Vec512< float > AndNot (const Vec512< float > not_mask, const Vec512< float > mask)
 
HWY_API Vec512< double > AndNot (const Vec512< double > not_mask, const Vec512< double > mask)
 
template<typename T >
HWY_API Vec512< T > Or (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > Or (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Or (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > Xor (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > Xor (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > Xor (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > Xor3 (Vec512< T > x1, Vec512< T > x2, Vec512< T > x3)
 
template<typename T >
HWY_API Vec512< T > Or3 (Vec512< T > o1, Vec512< T > o2, Vec512< T > o3)
 
template<typename T >
HWY_API Vec512< T > OrAnd (Vec512< T > o, Vec512< T > a1, Vec512< T > a2)
 
template<typename T >
HWY_API Vec512< T > IfVecThenElse (Vec512< T > mask, Vec512< T > yes, Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > operator& (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > operator| (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > operator^ (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > PopulationCount (Vec512< T > v)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > IfThenElse (const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
HWY_API Vec512< float > IfThenElse (Mask512< float > mask, Vec512< float > yes, Vec512< float > no)
 
HWY_API Vec512< double > IfThenElse (Mask512< double > mask, Vec512< double > yes, Vec512< double > no)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > IfThenElseZero (const Mask512< T > mask, const Vec512< T > yes)
 
HWY_API Vec512< float > IfThenElseZero (Mask512< float > mask, Vec512< float > yes)
 
HWY_API Vec512< double > IfThenElseZero (Mask512< double > mask, Vec512< double > yes)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > IfThenZeroElse (const Mask512< T > mask, const Vec512< T > no)
 
HWY_API Vec512< float > IfThenZeroElse (Mask512< float > mask, Vec512< float > no)
 
HWY_API Vec512< double > IfThenZeroElse (Mask512< double > mask, Vec512< double > no)
 
template<typename T >
HWY_API Vec512< T > IfNegativeThenElse (Vec512< T > v, Vec512< T > yes, Vec512< T > no)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) , HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec512< T > IfNegativeThenNegOrUndefIfZero (Vec512< T > mask, Vec512< T > v)
 
HWY_API Vec512< uint8_t > operator+ (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > operator+ (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator+ (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > operator+ (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > operator+ (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > operator+ (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator+ (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > operator+ (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > operator+ (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > operator+ (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint8_t > operator- (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > operator- (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator- (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > operator- (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > operator- (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > operator- (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator- (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > operator- (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > operator- (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > operator- (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint64_t > SumsOf8 (const Vec512< uint8_t > v)
 
HWY_API Vec512< uint64_t > SumsOf8AbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
template<int kIdx3, int kIdx2, int kIdx1, int kIdx0>
static Vec512< uint16_t > SumsOfShuffledQuadAbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint8_t > SaturatedAdd (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > SaturatedAdd (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > SaturatedAdd (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > SaturatedAdd (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > SaturatedSub (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > SaturatedSub (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > SaturatedSub (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > SaturatedSub (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > AverageRound (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > AverageRound (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > Abs (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > Abs (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > Abs (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > Abs (const Vec512< int64_t > v)
 
template<int kBits>
HWY_API Vec512< uint16_t > ShiftLeft (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > ShiftLeft (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > ShiftLeft (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > ShiftLeft (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > ShiftLeft (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > ShiftLeft (const Vec512< int64_t > v)
 
template<int kBits, class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIShiftLeft (const V v)
 
template<int kBits>
HWY_API Vec512< uint16_t > ShiftRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > ShiftRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > ShiftRight (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > ShiftRight (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > ShiftRight (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > ShiftRight (const Vec512< int64_t > v)
 
template<int kBits, class V , HWY_IF_U8_D(DFromV< V >) >
HWY_APIShiftRight (const V v)
 
template<int kBits>
HWY_API Vec512< uint16_t > RotateRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > RotateRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > RotateRight (const Vec512< uint64_t > v)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > Rol (Vec512< T > a, Vec512< T > b)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > Ror (Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< uint16_t > ShiftLeftSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > ShiftLeftSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > ShiftLeftSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< int16_t > ShiftLeftSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > ShiftLeftSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > ShiftLeftSame (const Vec512< int64_t > v, const int bits)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > ShiftLeftSame (const Vec512< T > v, const int bits)
 
HWY_API Vec512< uint16_t > ShiftRightSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > ShiftRightSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > ShiftRightSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< uint8_t > ShiftRightSame (Vec512< uint8_t > v, const int bits)
 
HWY_API Vec512< int16_t > ShiftRightSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > ShiftRightSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > ShiftRightSame (const Vec512< int64_t > v, const int bits)
 
HWY_API Vec512< int8_t > ShiftRightSame (Vec512< int8_t > v, const int bits)
 
HWY_API Vec512< uint8_t > Min (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > Min (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > Min (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > Min (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > Min (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > Min (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > Min (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > Min (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > Min (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > Min (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint8_t > Max (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > Max (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > Max (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > Max (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > Max (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > Max (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > Max (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > Max (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > Max (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > Max (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint16_t > operator* (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > operator* (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > operator* (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec256< uint64_t > operator* (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > operator* (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
HWY_API Vec512< int16_t > operator* (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > operator* (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > operator* (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec256< int64_t > operator* (Vec256< int64_t > a, Vec256< int64_t > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > operator* (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
HWY_API Vec512< uint16_t > MulHigh (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int16_t > MulHigh (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int16_t > MulFixedPoint15 (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int64_t > MulEven (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint64_t > MulEven (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<typename T , HWY_IF_FLOAT_OR_SPECIAL(T) >
HWY_API Vec512< T > Neg (const Vec512< T > v)
 
HWY_API Vec512< float > operator* (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > operator* (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > operator/ (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > operator/ (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > ApproximateReciprocal (const Vec512< float > v)
 
HWY_API Vec512< double > ApproximateReciprocal (Vec512< double > v)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > MaskedMinOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > MaskedMaxOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > MaskedAddOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > MaskedSubOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > MaskedMulOr (Vec512< float > no, Mask512< float > m, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > MaskedMulOr (Vec512< double > no, Mask512< double > m, Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > MaskedDivOr (Vec512< float > no, Mask512< float > m, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > MaskedDivOr (Vec512< double > no, Mask512< double > m, Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > MaskedSatAddOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > MaskedSatSubOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > MulAdd (Vec512< float > mul, Vec512< float > x, Vec512< float > add)
 
HWY_API Vec512< double > MulAdd (Vec512< double > mul, Vec512< double > x, Vec512< double > add)
 
HWY_API Vec512< float > NegMulAdd (Vec512< float > mul, Vec512< float > x, Vec512< float > add)
 
HWY_API Vec512< double > NegMulAdd (Vec512< double > mul, Vec512< double > x, Vec512< double > add)
 
HWY_API Vec512< float > MulSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub)
 
HWY_API Vec512< double > MulSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub)
 
HWY_API Vec512< float > NegMulSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub)
 
HWY_API Vec512< double > NegMulSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub)
 
HWY_API Vec512< float > MulAddSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub_or_add)
 
HWY_API Vec512< double > MulAddSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub_or_add)
 
HWY_API Vec512< float > Sqrt (const Vec512< float > v)
 
HWY_API Vec512< double > Sqrt (const Vec512< double > v)
 
HWY_API Vec512< float > ApproximateReciprocalSqrt (Vec512< float > v)
 
HWY_API Vec512< double > ApproximateReciprocalSqrt (Vec512< double > v)
 
HWY_API Vec512< float > Round (Vec512< float > v)
 
HWY_API Vec512< double > Round (Vec512< double > v)
 
HWY_API Vec512< float > Trunc (Vec512< float > v)
 
HWY_API Vec512< double > Trunc (Vec512< double > v)
 
HWY_API Vec512< float > Ceil (Vec512< float > v)
 
HWY_API Vec512< double > Ceil (Vec512< double > v)
 
HWY_API Vec512< float > Floor (Vec512< float > v)
 
HWY_API Vec512< double > Floor (Vec512< double > v)
 
template<class DTo , typename TFrom >
HWY_API MFromD< DTo > RebindMask (DTo, Mask512< TFrom > m)
 
template<typename T >
HWY_API Mask512< T > TestBit (const Vec512< T > v, const Vec512< T > bit)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > operator== (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > operator== (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator== (Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > operator!= (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > operator!= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator!= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > operator> (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > operator> (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > operator> (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > operator> (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > operator> (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > operator> (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > operator> (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > operator> (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Mask512< float > operator> (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator> (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > operator>= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > operator>= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > operator>= (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > operator>= (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > operator>= (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > operator>= (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > operator>= (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > operator>= (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > operator>= (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > operator>= (Vec512< int64_t > a, Vec512< int64_t > b)
 
template<typename T >
HWY_API Mask512< T > operator< (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Mask512< T > operator<= (Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Mask512< T > MaskFromVec (Vec512< T > v)
 
HWY_API Vec512< uint8_t > VecFromMask (Mask512< uint8_t > v)
 
HWY_API Vec512< int8_t > VecFromMask (Mask512< int8_t > v)
 
HWY_API Vec512< uint16_t > VecFromMask (Mask512< uint16_t > v)
 
HWY_API Vec512< int16_t > VecFromMask (Mask512< int16_t > v)
 
HWY_API Vec512< uint32_t > VecFromMask (Mask512< uint32_t > v)
 
HWY_API Vec512< int32_t > VecFromMask (Mask512< int32_t > v)
 
HWY_API Vec512< float > VecFromMask (Mask512< float > v)
 
HWY_API Vec512< uint64_t > VecFromMask (Mask512< uint64_t > v)
 
HWY_API Vec512< int64_t > VecFromMask (Mask512< int64_t > v)
 
HWY_API Vec512< double > VecFromMask (Mask512< double > v)
 
template<typename T >
HWY_API Mask512< T > Not (Mask512< T > m)
 
template<typename T >
HWY_API Mask512< T > And (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > AndNot (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > Or (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > Xor (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > ExclusiveNeither (Mask512< T > a, Mask512< T > b)
 
HWY_API Vec512< int8_t > BroadcastSignBit (Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > BroadcastSignBit (Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > BroadcastSignBit (Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > BroadcastSignBit (Vec512< int64_t > v)
 
HWY_API Mask512< float > IsNaN (Vec512< float > v)
 
HWY_API Mask512< double > IsNaN (Vec512< double > v)
 
HWY_API Mask512< float > IsEitherNaN (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > IsEitherNaN (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > IsInf (Vec512< float > v)
 
HWY_API Mask512< double > IsInf (Vec512< double > v)
 
HWY_API Mask512< float > IsFinite (Vec512< float > v)
 
HWY_API Mask512< double > IsFinite (Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > Load (D, const float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > Load (D, const double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) >
HWY_API Vec512< float > LoadU (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > LoadU (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > MaskedLoad (Mask512< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > MaskedLoad (Mask512< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, Mask512< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > MaskedLoadOr (VFromD< D > v, Mask512< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > LoadDup128 (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > LoadDup128 (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void Store (Vec512< float > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void Store (VFromD< D > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void StoreU (Vec512< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void StoreU (Vec512< double > v, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void BlendedStore (Vec512< float > v, Mask512< float > m, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void BlendedStore (Vec512< double > v, Mask512< double > m, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, float *HWY_RESTRICT base, Vec512< int32_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void ScatterOffset (VFromD< D > v, D, double *HWY_RESTRICT base, Vec512< int64_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void ScatterIndex (VFromD< D > v, D, float *HWY_RESTRICT base, Vec512< int32_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void ScatterIndex (VFromD< D > v, D, double *HWY_RESTRICT base, Vec512< int64_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, float *HWY_RESTRICT base, Vec512< int32_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, double *HWY_RESTRICT base, Vec512< int64_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > LowerHalf (D, Vec512< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > LowerHalf (D, Vec512< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > LowerHalf (D, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > LowerHalf (D, Vec512< double > v)
 
template<typename T >
HWY_API Vec256< T > LowerHalf (Vec512< T > v)
 
template<typename T >
HWY_APIExtractLane (const Vec512< T > v, size_t i)
 
template<int kBlockIdx, class T , hwy::EnableIf<(kBlockIdx<=1)> * = nullptr>
HWY_API Vec128< T > ExtractBlock (Vec512< T > v)
 
template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< float > ExtractBlock (Vec512< float > v)
 
template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< double > ExtractBlock (Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > InsertLane (const Vec512< T > v, size_t i, T t)
 
template<int kBlockIdx, class T >
HWY_API Vec512< T > InsertBlock (Vec512< T > v, Vec128< T > blk_to_insert)
 
template<typename T >
HWY_APIGetLane (const Vec512< T > v)
 
template<int kLane, typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec512< T > Broadcast (const Vec512< T > v)
 
template<int kLane>
HWY_API Vec512< float > Broadcast (const Vec512< float > v)
 
template<int kLane>
HWY_API Vec512< double > Broadcast (const Vec512< double > v)
 
template<int kBlockIdx, class T >
HWY_API Vec512< T > BroadcastBlock (Vec512< T > v)
 
template<int kBlockIdx>
HWY_API Vec512< float > BroadcastBlock (Vec512< float > v)
 
template<int kBlockIdx>
HWY_API Vec512< double > BroadcastBlock (Vec512< double > v)
 
template<int kLaneIdx, class T >
HWY_API Vec512< T > BroadcastLane (Vec512< T > v)
 
template<typename T , HWY_IF_UI32(T) >
HWY_API Vec512< T > Shuffle2301 (const Vec512< T > v)
 
HWY_API Vec512< float > Shuffle2301 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle1032 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle1032 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle1032 (const Vec512< float > v)
 
HWY_API Vec512< uint64_t > Shuffle01 (const Vec512< uint64_t > v)
 
HWY_API Vec512< int64_t > Shuffle01 (const Vec512< int64_t > v)
 
HWY_API Vec512< double > Shuffle01 (const Vec512< double > v)
 
HWY_API Vec512< uint32_t > Shuffle0321 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle0321 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle0321 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle2103 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle2103 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle2103 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > Shuffle0123 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > Shuffle0123 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > Shuffle0123 (const Vec512< float > v)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices512< T > IndicesFromVec (D, Vec512< TI > vec)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , typename TI >
HWY_API Indices512< TFromD< D > > SetTableIndices (D d, const TI *idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec512< T > TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
HWY_API Vec512< float > TableLookupLanes (Vec512< float > v, Indices512< float > idx)
 
HWY_API Vec512< double > TableLookupLanes (Vec512< double > v, Indices512< double > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > TwoTablesLookupLanes (Vec512< T > a, Vec512< T > b, Indices512< T > idx)
 
HWY_API Vec512< float > TwoTablesLookupLanes (Vec512< float > a, Vec512< float > b, Indices512< float > idx)
 
HWY_API Vec512< double > TwoTablesLookupLanes (Vec512< double > a, Vec512< double > b, Indices512< double > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > InterleaveLower (Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > InterleaveLower (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > InterleaveLower (Vec512< double > a, Vec512< double > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > ConcatLowerLower (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > ConcatUpperUpper (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > ConcatLowerUpper (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > ConcatUpperLower (D, Vec512< double > hi, Vec512< double > lo)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > DupEven (Vec512< T > v)
 
HWY_API Vec512< float > DupEven (Vec512< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > DupOdd (Vec512< T > v)
 
HWY_API Vec512< float > DupOdd (Vec512< float > v)
 
template<typename T >
HWY_API Vec512< T > OddEven (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > OddEvenBlocks (Vec512< T > odd, Vec512< T > even)
 
HWY_API Vec512< float > OddEvenBlocks (Vec512< float > odd, Vec512< float > even)
 
HWY_API Vec512< double > OddEvenBlocks (Vec512< double > odd, Vec512< double > even)
 
template<typename T >
HWY_API Vec512< T > SwapAdjacentBlocks (Vec512< T > v)
 
HWY_API Vec512< float > SwapAdjacentBlocks (Vec512< float > v)
 
HWY_API Vec512< double > SwapAdjacentBlocks (Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > ReverseBlocks (D d, VFromD< D > v)
 
template<typename T , typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec512< T > bytes, Vec512< TI > indices)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > TableLookupBytes (Vec512< T > bytes, Vec128< TI, NI > from)
 
template<typename T , typename TI >
HWY_API Vec256< TI > TableLookupBytes (Vec512< T > bytes, Vec256< TI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec128< T, N > bytes, Vec512< TI > from)
 
template<typename T , typename TI >
HWY_API Vec512< TI > TableLookupBytes (Vec256< T > bytes, Vec512< TI > from)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec64< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec64< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > PromoteTo (D df32, Vec256< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > PromoteTo (D, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec512< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > DemoteTo (D dn, Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec512< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > DemoteTo (D dn, Vec512< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec512< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > DemoteTo (D df16, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec512< int32_t > a, Vec512< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D, Vec512< int16_t > a, Vec512< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec512< uint16_t > a, Vec512< uint16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec512< int64_t > a, Vec512< int64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > ReorderDemote2To (D dn, Vec512< uint64_t > a, Vec512< uint64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > DemoteTo (D, Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > DemoteInRangeTo (D, Vec512< double > v)
 
HWY_API Vec128< uint8_t > U8FromU32 (const Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D d, const Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D, const Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > TruncateTo (D, const Vec512< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec512< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec512< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > ConvertTo (D, Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ConvertInRangeTo (D, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > ConvertInRangeTo (D, Vec512< double > v)
 
HWY_API Vec512< int32_t > NearestInt (const Vec512< float > v)
 
HWY_API Vec512< uint8_t > AESRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > AESLastRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > AESRoundInv (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > AESLastRoundInv (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
template<uint8_t kRcon>
HWY_API Vec512< uint8_t > AESKeyGenAssist (Vec512< uint8_t > v)
 
HWY_API Vec512< uint64_t > CLMulLower (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
HWY_API Vec512< uint64_t > CLMulUpper (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
template<int kAOffset, int kBOffset>
static Vec512< uint16_t > SumsOfAdjQuadAbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< int32_t > SaturatedAdd (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > SaturatedAdd (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< int32_t > SaturatedSub (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > SaturatedSub (Vec512< int64_t > a, Vec512< int64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t FindKnownFirstTrue (D, MFromD< D > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t FindKnownLastTrue (D, MFromD< D > mask)
 
template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_APICompress (V v, const M mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > Compress (Vec512< T > v, Mask512< T > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > Expand (Vec512< T > v, const Mask512< T > mask)
 
template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 8) >
HWY_APICompressNot (V v, const M mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > CompressNot (Vec512< T > v, Mask512< T > mask)
 
template<class V , class M , HWY_IF_V_SIZE_GT_D(DFromV< V >, 16) >
HWY_APICompressBlocksNot (V v, M mask)
 
template<class V >
HWY_APICompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_NOT_FLOAT_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 4)|(1<< 8)) >
HWY_API size_t CompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D >
HWY_API size_t CompressBitsStore (VFromD< D > v, const uint8_t *HWY_RESTRICT bits, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class T >
HWY_API Mask512< T > SetAtOrAfterFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > SetBeforeFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > SetAtOrBeforeFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > SetOnlyFirst (Mask512< T > mask)
 
HWY_API Vec512< uint16_t > operator<< (Vec512< uint16_t > v, Vec512< uint16_t > bits)
 
HWY_API Vec512< uint8_t > operator<< (Vec512< uint8_t > v, Vec512< uint8_t > bits)
 
HWY_API Vec512< uint32_t > operator<< (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > operator<< (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > operator<< (const Vec512< T > v, const Vec512< T > bits)
 
HWY_API Vec512< uint16_t > operator>> (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint8_t > operator>> (Vec512< uint8_t > v, Vec512< uint8_t > bits)
 
HWY_API Vec512< uint32_t > operator>> (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > operator>> (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
HWY_API Vec512< int16_t > operator>> (const Vec512< int16_t > v, const Vec512< int16_t > bits)
 
HWY_API Vec512< int8_t > operator>> (Vec512< int8_t > v, Vec512< int8_t > bits)
 
HWY_API Vec512< int32_t > operator>> (const Vec512< int32_t > v, const Vec512< int32_t > bits)
 
HWY_API Vec512< int64_t > operator>> (const Vec512< int64_t > v, const Vec512< int64_t > bits)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > WidenMulPairwiseAdd (D, Vec512< int16_t > a, Vec512< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > ReorderWidenMulAccumulate (D d, Vec512< int16_t > a, Vec512< int16_t > b, const VFromD< D > sum0, VFromD< D > &)
 
HWY_API Vec512< int32_t > RearrangeToOddPlusEven (const Vec512< int32_t > sum0, Vec512< int32_t >)
 
HWY_API Vec512< uint32_t > RearrangeToOddPlusEven (const Vec512< uint32_t > sum0, Vec512< uint32_t >)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_APIHighestSetBitIndex (V v)
 
template<class D , class V = VFromD<D>>
HWY_API void Print (const D d, const char *caption, V v, size_t lane_u=0, size_t max_lanes=7)
 
template<class D , HWY_IF_FLOAT_D(D) >
HWY_INLINE Vec< D > PositiveIota (D d)
 
template<class D , typename First , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
VFromD< D > IotaForSpecial (D d, First first)
 
template<class D , typename First , HWY_IF_F16_D(D) , HWY_IF_LANES_GT_D(D, 1) , HWY_IF_POW2_GT_D(D, -1) >
VFromD< D > IotaForSpecial (D d, First first)
 
template<class D , typename First , HWY_IF_SPECIAL_FLOAT_D(D) , HWY_IF_LANES_D(D, 1) >
VFromD< D > IotaForSpecial (D d, First first)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE void AssertVecEqual (D d, const T *expected, Vec< D > actual, const char *filename, const int line)
 
template<class D , typename T = TFromD<D>>
HWY_INLINE void AssertVecEqual (D d, Vec< D > expected, Vec< D > actual, const char *filename, int line)
 
template<class D >
HWY_NOINLINE void AssertMaskEqual (D d, VecArg< Mask< D > > a, VecArg< Mask< D > > b, const char *filename, int line)
 
template<class D >
HWY_INLINE Mask< D > MaskTrue (const D d)
 
template<class Func >
void ForSignedTypes (const Func &func)
 
template<class Func >
void ForUnsignedTypes (const Func &func)
 
template<class Func >
void ForIntegerTypes (const Func &func)
 
template<class Func >
void ForFloat16Types (const Func &func)
 
template<class Func >
void ForFloat64Types (const Func &func)
 
template<class Func >
void ForFloat16TypesDynamic (const Func &func)
 
template<class Func >
void ForFloat64TypesDynamic (const Func &func)
 
template<class Func >
void ForFloat3264Types (const Func &func)
 
template<class Func >
void ForFloatTypes (const Func &func)
 
template<class Func >
void ForFloatTypesDynamic (const Func &func)
 
template<class Func >
void ForAllTypes (const Func &func)
 
template<class Func >
void ForSpecialTypes (const Func &func)
 
template<class Func >
void ForAllTypesAndSpecial (const Func &func)
 
template<class Func >
void ForUI8 (const Func &func)
 
template<class Func >
void ForUI16 (const Func &func)
 
template<class Func >
void ForUIF16 (const Func &func)
 
template<class Func >
void ForUI32 (const Func &func)
 
template<class Func >
void ForUIF32 (const Func &func)
 
template<class Func >
void ForUI64 (const Func &func)
 
template<class Func >
void ForUIF64 (const Func &func)
 
template<class Func >
void ForUI3264 (const Func &func)
 
template<class Func >
void ForUIF3264 (const Func &func)
 
template<class Func >
void ForU816 (const Func &func)
 
template<class Func >
void ForI816 (const Func &func)
 
template<class Func >
void ForU163264 (const Func &func)
 
template<class Func >
void ForUI163264 (const Func &func)
 
template<class Func >
void ForUIF163264 (const Func &func)
 
constexpr size_t AdjustedReps (size_t max_reps)
 
constexpr size_t AdjustedLog2Reps (size_t max_pow2)
 

Variables

d
 
D TFromD< D > *HWY_RESTRICT p
 
D TFromD< D > *HWY_RESTRICT VFromD< RebindToSigned< D > > indices
 
svbool_t m
 

Typedef Documentation

◆ BlockDFromD

template<class D >
using hwy::HWY_NAMESPACE::BlockDFromD
Initial value:
Simd<TFromD<D>, HWY_MIN(16 / sizeof(TFromD<D>), HWY_MAX_LANES_D(D)), 0>
#define HWY_MIN(a, b)
Definition base.h:176
#define HWY_MAX_LANES_D(D)
Definition ops/shared-inl.h:432

◆ CappedTag

template<typename T , size_t kLimit, int kPow2 = 0>
using hwy::HWY_NAMESPACE::CappedTag = typename detail::CappedTagChecker<T, kLimit, kPow2>::type

◆ CappedTagIfFixed

template<typename T , size_t kLimit, int kPow2 = 0>
using hwy::HWY_NAMESPACE::CappedTagIfFixed = CappedTag<T, kLimit, kPow2>

◆ DFromM

template<class M >
using hwy::HWY_NAMESPACE::DFromM = Simd<typename M::PrivateT, M::kPrivateN, 0>

◆ DFromV

template<class V >
using hwy::HWY_NAMESPACE::DFromV = Simd<typename V::PrivateT, V::kPrivateN, 0>

◆ FixedTag

template<typename T , size_t kNumLanes>
using hwy::HWY_NAMESPACE::FixedTag = typename detail::FixedTagChecker<T, kNumLanes>::type

◆ ForGE128Vectors

template<class Test >
using hwy::HWY_NAMESPACE::ForGE128Vectors = ForGEVectors<128, Test>

◆ ForPartialFixedOrFullScalableVectors

Initial value:
ForGEVectors<HWY_MAX_BYTES * 8, Test>

◆ Full128

template<typename T >
using hwy::HWY_NAMESPACE::Full128 = Simd<T, 16 / sizeof(T), 0>

◆ Full16

template<typename T >
using hwy::HWY_NAMESPACE::Full16 = Simd<T, 2 / sizeof(T), 0>

◆ Full256

template<typename T >
using hwy::HWY_NAMESPACE::Full256 = Simd<T, 32 / sizeof(T), 0>

◆ Full32

template<typename T >
using hwy::HWY_NAMESPACE::Full32 = Simd<T, 4 / sizeof(T), 0>

◆ Full512

template<typename T >
using hwy::HWY_NAMESPACE::Full512 = Simd<T, 64 / sizeof(T), 0>

◆ Full64

template<typename T >
using hwy::HWY_NAMESPACE::Full64 = Simd<T, 8 / sizeof(T), 0>

◆ GatherIndex64

using hwy::HWY_NAMESPACE::GatherIndex64 = long long int

◆ Half

template<class D >
using hwy::HWY_NAMESPACE::Half = typename D::Half

◆ IndicesFromD

template<class D >
using hwy::HWY_NAMESPACE::IndicesFromD = decltype(IndicesFromVec(D(), Zero(RebindToUnsigned<D>())))

◆ LaneType

template<class V >
using hwy::HWY_NAMESPACE::LaneType = decltype(GetLane(V()))

◆ Mask

template<class D >
using hwy::HWY_NAMESPACE::Mask = decltype(MaskFromVec(Zero(D())))

◆ Mask64

template<typename T >
using hwy::HWY_NAMESPACE::Mask64 = Mask128<T, 8 / sizeof(T)>

◆ MFromD

template<class D >
using hwy::HWY_NAMESPACE::MFromD = decltype(MaskFromVec(VFromD<D>()))

◆ OtherOrder

template<typename T >
using hwy::HWY_NAMESPACE::OtherOrder = detail::OrderDescending<T>

◆ Rebind

template<class T , class D >
using hwy::HWY_NAMESPACE::Rebind = typename D::template Rebind<T>

◆ RebindToFloat

template<class D >
using hwy::HWY_NAMESPACE::RebindToFloat = Rebind<MakeFloat<TFromD<D>>, D>

◆ RebindToSigned

template<class D >
using hwy::HWY_NAMESPACE::RebindToSigned = Rebind<MakeSigned<TFromD<D>>, D>

◆ RebindToUnsigned

template<class D >
using hwy::HWY_NAMESPACE::RebindToUnsigned = Rebind<MakeUnsigned<TFromD<D>>, D>

◆ Repartition

template<class T , class D >
using hwy::HWY_NAMESPACE::Repartition = typename D::template Repartition<T>

◆ RepartitionToNarrow

◆ RepartitionToWide

◆ RepartitionToWideX2

◆ RepartitionToWideX3

◆ ScalableTag

template<typename T , int kPow2 = 0>
using hwy::HWY_NAMESPACE::ScalableTag = typename detail::ScalableTagChecker<T, kPow2>::type

◆ Shift16Count

using hwy::HWY_NAMESPACE::Shift16Count = unsigned int

◆ Shift3264Count

using hwy::HWY_NAMESPACE::Shift3264Count = unsigned int

◆ Shift64Count

using hwy::HWY_NAMESPACE::Shift64Count = unsigned int

◆ Sisd

template<typename T >
using hwy::HWY_NAMESPACE::Sisd = Simd<T, 1, 0>

◆ SortTag

template<typename T >
using hwy::HWY_NAMESPACE::SortTag = ScalableTag<T, -1>

◆ TFromD

template<class D >
using hwy::HWY_NAMESPACE::TFromD = typename D::T

◆ TFromV

template<class V >
using hwy::HWY_NAMESPACE::TFromV = typename V::PrivateT

◆ Twice

template<class D >
using hwy::HWY_NAMESPACE::Twice = typename D::Twice

◆ VBF16

◆ Vec

template<class D >
using hwy::HWY_NAMESPACE::Vec = decltype(Zero(D()))

◆ Vec16

template<typename T >
using hwy::HWY_NAMESPACE::Vec16 = Vec128<T, 2 / sizeof(T)>

◆ Vec2

template<class D >
using hwy::HWY_NAMESPACE::Vec2 = decltype(Create2(D(), Zero(D()), Zero(D())))

◆ Vec3

template<class D >
using hwy::HWY_NAMESPACE::Vec3 = decltype(Create3(D(), Zero(D()), Zero(D()), Zero(D())))

◆ Vec32

template<typename T >
using hwy::HWY_NAMESPACE::Vec32 = Vec128<T, 4 / sizeof(T)>

◆ Vec4

template<class D >
using hwy::HWY_NAMESPACE::Vec4 = decltype(Create4(D(), Zero(D()), Zero(D()), Zero(D()), Zero(D())))

◆ Vec64

template<typename T >
using hwy::HWY_NAMESPACE::Vec64 = Vec128<T, 8 / sizeof(T)>

◆ VecArg

template<class V >
using hwy::HWY_NAMESPACE::VecArg = V

◆ VFromD

template<class D >
using hwy::HWY_NAMESPACE::VFromD = decltype(Set(D(), TFromD<D>()))

Function Documentation

◆ Abs() [1/21]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< double, N > v)

◆ Abs() [2/21]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< float, N > v)

◆ Abs() [3/21]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int16_t, N > v)

◆ Abs() [4/21]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int32_t, N > v)

◆ Abs() [5/21]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec128< int64_t > v)

◆ Abs() [6/21]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int64_t, N > v)

◆ Abs() [7/21]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Abs ( const Vec128< int8_t, N > v)

◆ Abs() [8/21]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Abs ( const Vec1< T > a)

◆ Abs() [9/21]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int16_t > v)

◆ Abs() [10/21]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int32_t > v)

◆ Abs() [11/21]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec256< int64_t > v)

◆ Abs() [12/21]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int16_t > v)

◆ Abs() [13/21]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int32_t > v)

◆ Abs() [14/21]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int64_t > v)

◆ Abs() [15/21]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Abs ( const Vec512< int8_t > v)

◆ Abs() [16/21]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::Abs ( const Vec64< int64_t > v)

◆ Abs() [17/21]

template<class V , HWY_IF_FLOAT(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::Abs ( V v)

References BitCast(), d, and Set().

◆ Abs() [18/21]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Abs ( Vec128< T, N > a)

◆ Abs() [19/21]

template<class T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Abs ( Vec128< T, N > v)

References Max(), and Neg().

◆ Abs() [20/21]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Abs ( Vec256< int8_t > v)

◆ Abs() [21/21]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Abs ( Vec256< T > v)

◆ AbsDiff() [1/6]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::AbsDiff ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

References Max(), and Min().

Referenced by SumsOf8AbsDiff().

◆ AbsDiff() [2/6]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::AbsDiff ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

References Or(), and SaturatedSub().

◆ AbsDiff() [3/6]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::AbsDiff ( const Vec1< T > a,
const Vec1< T > b )

References Abs().

◆ AbsDiff() [4/6]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::AbsDiff ( const Vec256< T > a,
const Vec256< T > b )

References Abs().

◆ AbsDiff() [5/6]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::AbsDiff ( V a,
V b )

References Max(), Min(), and Sub().

◆ AbsDiff() [6/6]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AbsDiff ( Vec128< T, N > a,
Vec128< T, N > b )

References Abs().

◆ Acos()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Acos ( D d,
V x )

Highway SIMD version of std::acos(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: [-1, +1]

Returns
arc cosine of 'x'

References Add(), And(), d, Ge(), IfThenElse(), Lt(), Mul(), NegMulAdd(), Or(), Set(), SignBit(), Sqrt(), Sub(), Xor(), and Zero().

Referenced by CallAcos().

◆ Acosh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Acosh ( D d,
V x )

Highway SIMD version of std::acosh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[1, +FLT_MAX], float64[1, +DBL_MAX]

Returns
hyperbolic arc cosine of 'x'

References Add(), d, Div(), Eq(), Gt(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), hwy::HWY_NAMESPACE::impl::Log(), Mul(), MulAdd(), MulSub(), Set(), Sqrt(), and Sub().

Referenced by CallAcosh().

◆ Add()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Add ( V a,
V b )

◆ AddScalar()

template<typename TA , typename TB >
TA hwy::HWY_NAMESPACE::AddScalar ( TA a,
TB b )

Referenced by MatVecAddImpl().

◆ AddSub() [1/5]

template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_API V hwy::HWY_NAMESPACE::AddSub ( V a,
V b )

◆ AddSub() [2/5]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::AddSub ( Vec128< double > a,
Vec128< double > b )

◆ AddSub() [3/5]

template<size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::AddSub ( Vec128< float, N > a,
Vec128< float, N > b )

◆ AddSub() [4/5]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::AddSub ( Vec256< double > a,
Vec256< double > b )

◆ AddSub() [5/5]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::AddSub ( Vec256< float > a,
Vec256< float > b )

◆ AdjustedLog2Reps()

constexpr size_t hwy::HWY_NAMESPACE::AdjustedLog2Reps ( size_t max_pow2)
constexpr

References HWY_MIN.

◆ AdjustedReps()

constexpr size_t hwy::HWY_NAMESPACE::AdjustedReps ( size_t max_reps)
constexpr

References HWY_MAX.

◆ AESInvMixColumns() [1/2]

template<class V , HWY_IF_V_SIZE_GT_V(V, 16) , HWY_IF_U8_D(DFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::AESInvMixColumns ( V state)

◆ AESInvMixColumns() [2/2]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESInvMixColumns ( Vec128< uint8_t > state)

◆ AESKeyGenAssist() [1/3]

template<uint8_t kRcon>
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESKeyGenAssist ( Vec128< uint8_t > v)

◆ AESKeyGenAssist() [2/3]

template<uint8_t kRcon>
HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESKeyGenAssist ( Vec256< uint8_t > v)

◆ AESKeyGenAssist() [3/3]

template<uint8_t kRcon>
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESKeyGenAssist ( Vec512< uint8_t > v)

◆ AESLastRound() [1/3]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESLastRound ( Vec128< uint8_t > state,
Vec128< uint8_t > round_key )

◆ AESLastRound() [2/3]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESLastRound ( Vec256< uint8_t > state,
Vec256< uint8_t > round_key )

◆ AESLastRound() [3/3]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRound ( Vec512< uint8_t > state,
Vec512< uint8_t > round_key )

◆ AESLastRoundInv() [1/3]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESLastRoundInv ( Vec128< uint8_t > state,
Vec128< uint8_t > round_key )

◆ AESLastRoundInv() [2/3]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESLastRoundInv ( Vec256< uint8_t > state,
Vec256< uint8_t > round_key )

◆ AESLastRoundInv() [3/3]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRoundInv ( Vec512< uint8_t > state,
Vec512< uint8_t > round_key )

◆ AESRound() [1/3]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESRound ( Vec128< uint8_t > state,
Vec128< uint8_t > round_key )

◆ AESRound() [2/3]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESRound ( Vec256< uint8_t > state,
Vec256< uint8_t > round_key )

◆ AESRound() [3/3]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRound ( Vec512< uint8_t > state,
Vec512< uint8_t > round_key )

◆ AESRoundInv() [1/3]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::AESRoundInv ( Vec128< uint8_t > state,
Vec128< uint8_t > round_key )

◆ AESRoundInv() [2/3]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AESRoundInv ( Vec256< uint8_t > state,
Vec256< uint8_t > round_key )

◆ AESRoundInv() [3/3]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRoundInv ( Vec512< uint8_t > state,
Vec512< uint8_t > round_key )

◆ AllFalse() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D d,
const Mask256< T > m )

References AllFalse(), d, and m.

◆ AllFalse() [2/6]

template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D d,
const MFromD< D > m )

◆ AllFalse() [3/6]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D d,
MFromD< D > m )

◆ AllFalse() [4/6]

template<class D , HWY_IF_V_SIZE_D(D, 16) >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D d,
MFromD< D > mask )

References d, RebindMask(), VecFromMask(), and Zero().

◆ AllFalse() [5/6]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D d,
svbool_t m )

◆ AllFalse() [6/6]

template<class D , typename T = TFromD<D>>
HWY_API bool hwy::HWY_NAMESPACE::AllFalse ( D ,
const Mask1< T > mask )

◆ AllTrue() [1/7]

template<class D , typename T = TFromD<D>>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
const Mask256< T > m )

References AllTrue(), d, and m.

◆ AllTrue() [2/7]

template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
const MFromD< D > m )

◆ AllTrue() [3/7]

template<class D , typename T = TFromD<D>>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
Mask128< T > m )

◆ AllTrue() [4/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
MFromD< D > m )

◆ AllTrue() [5/7]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
MFromD< D > mask )

References d, and MaxLanes().

◆ AllTrue() [6/7]

template<class D >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D d,
svbool_t m )

References CountTrue(), d, Lanes(), and m.

◆ AllTrue() [7/7]

template<class D , typename T = TFromD<D>>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue ( D ,
const Mask1< T > mask )

◆ And() [1/17]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::And ( const Mask128< T, N > a,
Mask128< T, N > b )

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [2/17]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::And ( const Mask1< T > a,
Mask1< T > b )

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [3/17]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::And ( const Mask256< T > a,
Mask256< T > b )

References And(), d, MaskFromVec(), and VecFromMask().

◆ And() [4/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::And ( const V a,
const V b )

References And(), and BitCast().

◆ And() [5/17]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::And ( const Vec128< T, N > a,
const Vec128< T, N > b )

References BitCast(), and d.

Referenced by Acos(), And(), And(), And(), And(), And(), AndNot(), AndNot(), Asin(), Asinh(), Atan(), Atanh(), ConvertTo(), CopyIf(), DemoteTo(), DemoteTo(), DemoteTo(), Eq128(), Eq128(), Eq128(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), Exp(), Expm1(), Find(), FindIf(), FindKnownLastTrue(), LeadingZeroCount(), hwy::HWY_NAMESPACE::impl::Log(), LowerHalfOfMask(), MaskedGatherIndexOr(), MulEven(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), operator&(), operator&(), operator&(), operator&(), operator<<(), operator>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), OrAnd(), OrAnd(), OrAnd(), OrAnd(), OrAnd(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), PopulationCount(), PromoteTo(), RandomValues(), RandomValues(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateBF16(), Rol(), Ror(), SaturatedSub(), SatWidenMulPairwiseAccumulate(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), SlideMask1Down(), SlideMask1Up(), SumOfMulQuadAccumulate(), SumOfMulQuadAccumulate(), SumsOf8(), Tanh(), TestBit(), TestBit(), TwoTablesLookupLanes(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), and WidenMulPairwiseAdd().

◆ And() [6/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::And ( const Vec1< T > a,
const Vec1< T > b )

References BitCast().

◆ And() [7/17]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::And ( const Vec512< double > a,
const Vec512< double > b )

◆ And() [8/17]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::And ( const Vec512< float > a,
const Vec512< float > b )

◆ And() [9/17]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::And ( const Vec512< T > a,
const Vec512< T > b )

References BitCast(), and d.

◆ And() [10/17]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::And ( Mask512< T > a,
Mask512< T > b )

◆ And() [11/17]

HWY_API svbool_t hwy::HWY_NAMESPACE::And ( svbool_t a,
svbool_t b )

◆ And() [12/17]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::And ( Vec128< double, N > a,
Vec128< double, N > b )

◆ And() [13/17]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::And ( Vec128< float, N > a,
Vec128< float, N > b )

◆ And() [14/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::And ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ And() [15/17]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::And ( Vec256< double > a,
Vec256< double > b )

◆ And() [16/17]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::And ( Vec256< float > a,
Vec256< float > b )

◆ And() [17/17]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::And ( Vec256< T > a,
Vec256< T > b )

◆ AndNot() [1/18]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::AndNot ( const Mask128< T, N > a,
Mask128< T, N > b )

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [2/18]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::AndNot ( const Mask1< T > a,
Mask1< T > b )

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [3/18]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::AndNot ( const Mask256< T > a,
Mask256< T > b )

References AndNot(), d, MaskFromVec(), and VecFromMask().

◆ AndNot() [4/18]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::AndNot ( const V a,
const V b )

References AndNot(), and BitCast().

◆ AndNot() [5/18]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::AndNot ( const V not_a,
const V b )

References And(), and Not().

◆ AndNot() [6/18]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AndNot ( const Vec128< T, N > not_mask,
const Vec128< T, N > mask )

◆ AndNot() [7/18]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::AndNot ( const Vec1< T > a,
const Vec1< T > b )

References BitCast().

◆ AndNot() [8/18]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::AndNot ( const Vec512< double > not_mask,
const Vec512< double > mask )

◆ AndNot() [9/18]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::AndNot ( const Vec512< float > not_mask,
const Vec512< float > mask )

◆ AndNot() [10/18]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::AndNot ( const Vec512< T > not_mask,
const Vec512< T > mask )

References BitCast(), and d.

◆ AndNot() [11/18]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::AndNot ( Mask512< T > a,
Mask512< T > b )

◆ AndNot() [12/18]

HWY_API svbool_t hwy::HWY_NAMESPACE::AndNot ( svbool_t a,
svbool_t b )

◆ AndNot() [13/18]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::AndNot ( Vec128< double, N > not_mask,
Vec128< double, N > mask )

◆ AndNot() [14/18]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::AndNot ( Vec128< float, N > not_mask,
Vec128< float, N > mask )

◆ AndNot() [15/18]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AndNot ( Vec128< T, N > a,
Vec128< T, N > b )

References And(), and Not().

◆ AndNot() [16/18]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::AndNot ( Vec256< double > not_mask,
Vec256< double > mask )

◆ AndNot() [17/18]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::AndNot ( Vec256< float > not_mask,
Vec256< float > mask )

◆ AndNot() [18/18]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::AndNot ( Vec256< T > not_mask,
Vec256< T > mask )

◆ ApproximateReciprocal() [1/11]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec128< float, 1 > v)

◆ ApproximateReciprocal() [2/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec128< T, N > v)

References Set().

◆ ApproximateReciprocal() [3/11]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec1< float > v)

◆ ApproximateReciprocal() [4/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec256< float > v)

References Set().

◆ ApproximateReciprocal() [5/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocal ( const Vec512< float > v)

◆ ApproximateReciprocal() [6/11]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec128< double > v)

◆ ApproximateReciprocal() [7/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec128< float, N > v)

◆ ApproximateReciprocal() [8/11]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec128< T, N > v)

◆ ApproximateReciprocal() [9/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec256< double > v)

◆ ApproximateReciprocal() [10/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec512< double > v)

◆ ApproximateReciprocal() [11/11]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::ApproximateReciprocal ( Vec64< double > v)

◆ ApproximateReciprocalSqrt() [1/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec128< T, N > v)

References Set(), and Sqrt().

◆ ApproximateReciprocalSqrt() [2/10]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec1< float > v)

◆ ApproximateReciprocalSqrt() [3/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( const Vec256< float > v)

References Set(), and Sqrt().

◆ ApproximateReciprocalSqrt() [4/10]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec128< double > v)

◆ ApproximateReciprocalSqrt() [5/10]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec128< float, 1 > v)

◆ ApproximateReciprocalSqrt() [6/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec128< float, N > v)

◆ ApproximateReciprocalSqrt() [7/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec256< double > v)

◆ ApproximateReciprocalSqrt() [8/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec512< double > v)

◆ ApproximateReciprocalSqrt() [9/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec512< float > v)

◆ ApproximateReciprocalSqrt() [10/10]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt ( Vec64< double > v)

◆ Asin()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Asin ( D d,
V x )

Highway SIMD version of std::asin(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: [-1, +1]

Returns
arc sine of 'x'

References And(), d, IfThenElse(), Lt(), Mul(), MulAdd(), NegMulAdd(), Or(), Set(), SignBit(), Sqrt(), and Xor().

Referenced by CallAsin().

◆ Asinh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Asinh ( D d,
V x )

Highway SIMD version of std::asinh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
hyperbolic arc sine of 'x'

References Add(), And(), d, Div(), Eq(), Gt(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), hwy::HWY_NAMESPACE::impl::Log(), Lt(), Mul(), MulAdd(), Or(), Set(), SignBit(), Sqrt(), Sub(), and Xor().

Referenced by CallAsinh().

◆ AssertMaskEqual()

template<class D >
HWY_NOINLINE void hwy::HWY_NAMESPACE::AssertMaskEqual ( D d,
VecArg< Mask< D > > a,
VecArg< Mask< D > > b,
const char * filename,
int line )

◆ AssertVecEqual() [1/2]

template<class D , typename T = TFromD<D>>
HWY_INLINE void hwy::HWY_NAMESPACE::AssertVecEqual ( D d,
const T * expected,
Vec< D > actual,
const char * filename,
const int line )

◆ AssertVecEqual() [2/2]

template<class D , typename T = TFromD<D>>
HWY_INLINE void hwy::HWY_NAMESPACE::AssertVecEqual ( D d,
Vec< D > expected,
Vec< D > actual,
const char * filename,
int line )

◆ Atan()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Atan ( D d,
V x )

Highway SIMD version of std::atan(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
arc tangent of 'x'

References And(), d, Div(), Gt(), IfThenElse(), Or(), Set(), SignBit(), Sub(), and Xor().

Referenced by Atan2(), and CallAtan().

◆ Atan2()

template<class D , class V = VFromD<D>, class M = MFromD<D>, typename T = TFromD<D>>
HWY_INLINE V hwy::HWY_NAMESPACE::Atan2 ( const D d,
V y,
V x )

Highway SIMD version of std::atan2(x).

Valid Lane Types: float32, float64 Correctly handles negative zero, infinities, and NaN.

Returns
atan2 of 'y', 'x'

References Add(), Atan(), CopySign(), CopySignToAbs(), d, Div(), Eq(), IfThenElse(), IfThenElseZero(), IsInf(), IsNaN(), Lt(), Mul(), NaN(), Or(), Set(), and Zero().

Referenced by CallAtan2().

◆ Atanh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Atanh ( D d,
V x )

Highway SIMD version of std::atanh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: (-1, +1)

Returns
hyperbolic arc tangent of 'x'

References Add(), And(), d, Div(), Log1p(), Mul(), Set(), SignBit(), Sub(), and Xor().

Referenced by CallAtanh().

◆ AverageRound() [1/11]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::AverageRound ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ AverageRound() [2/11]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::AverageRound ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ AverageRound() [3/11]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec1< uint16_t > a,
const Vec1< uint16_t > b )

◆ AverageRound() [4/11]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( const Vec1< uint8_t > a,
const Vec1< uint8_t > b )

◆ AverageRound() [5/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AverageRound ( Vec128< T, N > a,
Vec128< T, N > b )

◆ AverageRound() [6/11]

template<typename T , size_t N, HWY_IF_UNSIGNED(T) , HWY_IF_T_SIZE_ONE_OF(T, 0x6) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::AverageRound ( Vec128< T, N > a,
Vec128< T, N > b )

◆ AverageRound() [7/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::AverageRound ( Vec256< T > a,
const Vec256< T > b )

◆ AverageRound() [8/11]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ AverageRound() [9/11]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ AverageRound() [10/11]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::AverageRound ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ AverageRound() [11/11]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AverageRound ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ BitCast() [1/8]

template<class D , class FromV >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
FromV v )

◆ BitCast() [2/8]

template<class D , class FromT >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
Vec128< FromT, Repartition< FromT, D >().MaxLanes()> v )

References hwy::HWY_NAMESPACE::detail::BitCastFromByte(), hwy::HWY_NAMESPACE::detail::BitCastToByte(), and d.

Referenced by Abs(), AESKeyGenAssist(), AESKeyGenAssist(), AESKeyGenAssist(), And(), And(), And(), And(), And(), AndNot(), AndNot(), AndNot(), hwy::HWY_NAMESPACE::detail::AVX2ShrU8Vec128(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastToByte(), hwy::HWY_NAMESPACE::detail::BitsFromBool(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BlendedStore(), Broadcast(), Broadcast(), Broadcast(), BroadcastBlock(), BroadcastSignBit(), Combine(), Combine(), Combine(), CombineShiftRightBytes(), CombineShiftRightBytes(), CombineShiftRightBytes(), CombineShiftRightBytes(), hwy::HWY_NAMESPACE::detail::CombineShiftRightI32Lanes(), hwy::HWY_NAMESPACE::detail::CombineShiftRightI64Lanes(), Compress(), Compress(), hwy::HWY_NAMESPACE::detail::Compress(), hwy::HWY_NAMESPACE::detail::CompressBits(), CompressBlendedStore(), hwy::HWY_NAMESPACE::detail::CompressNot(), hwy::HWY_NAMESPACE::detail::CompressNotBits(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatEven(), ConcatEven(), hwy::HWY_NAMESPACE::detail::ConcatEven(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerUpper(), ConcatOdd(), ConcatOdd(), ConcatOdd(), hwy::HWY_NAMESPACE::detail::ConcatOdd(), ConcatUpperLower(), ConcatUpperLower(), ConcatUpperUpper(), ConcatUpperUpper(), ConcatUpperUpper(), ConvertTo(), ConvertTo(), ConvertTo(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::DemoteFromU64Saturate(), DemoteMaskTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), Dup128MaskFromMaskBits(), Dup128VecFromValues(), DupEven(), DupEven(), DupEven(), DupEven(), DupOdd(), DupOdd(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), Expand(), Expand(), Expand(), Expand(), hwy::HWY_NAMESPACE::detail::Ext(), ExtractBlock(), hwy::HWY_NAMESPACE::detail::F32ExpLzcntMinMaxBitCast(), FindFirstTrue(), FindKnownFirstTrue(), FindKnownLastTrue(), FindLastTrue(), hwy::HWY_NAMESPACE::detail::FirstNPerBlock(), hwy::HWY_NAMESPACE::detail::FixConversionOverflow(), hwy::HWY_NAMESPACE::detail::GetLane(), HighestSetBitIndex(), hwy::HWY_NAMESPACE::detail::I128Subtract(), hwy::HWY_NAMESPACE::detail::I32RangeU32ToF32BiasedExp(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfThenElse(), IfThenElse(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), IfVecThenElse(), IfVecThenElse(), hwy::HWY_NAMESPACE::detail::IndicesFromBits128(), hwy::HWY_NAMESPACE::detail::IndicesFromNotBits128(), IndicesFromVec(), IndicesFromVec(), IndicesFromVec(), Inf(), hwy::HWY_NAMESPACE::detail::InsertBlock(), InsertBlock(), hwy::HWY_NAMESPACE::detail::InsertLane(), hwy::HWY_NAMESPACE::detail::IntDiv(), hwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv(), InterleaveLower(), InterleaveLower(), InterleaveLower(), hwy::HWY_NAMESPACE::detail::InterleaveLowerBlocks(), InterleaveUpper(), hwy::HWY_NAMESPACE::detail::InterleaveUpperBlocks(), hwy::HWY_NAMESPACE::detail::InterleaveWhole(), hwy::HWY_NAMESPACE::detail::Iota0(), hwy::HWY_NAMESPACE::detail::IsEven(), IsFinite(), IsFinite(), IsFinite(), IsFinite(), IsFinite(), IsFinite(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), IsNegative(), hwy::HWY_NAMESPACE::detail::IsOdd(), hwy::HWY_NAMESPACE::detail::LargerSortValue(), LeadingZeroCount(), Load(), Load(), LoadDup128(), LoadInterleaved3(), LoadInterleaved4(), LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadMaskBits128(), LoadN(), LoadN(), LoadNOr(), LoadU(), hwy::HWY_NAMESPACE::impl::Log(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), LowerHalf(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16AsU16(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedLoad(), MaskedLoadOr(), MaskedScatterIndex(), MaskFromVec(), MaskFromVec(), MaskFromVec(), Max(), Max(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), Min(), hwy::HWY_NAMESPACE::detail::MinU(), MulEven(), MulFixedPoint15(), MulHigh(), MulOdd(), MulOdd(), NaN(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), Neg(), Neg(), Neg(), NegMulSub(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), Not(), Not(), Not(), Not(), Not(), OddEven(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), OddEven(), OddEven(), OddEvenBlocks(), OddEvenBlocks(), operator*(), operator*(), operator+(), operator-(), operator<<(), operator<<(), operator<<(), operator>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), Or(), Or(), Or(), Or(), Or(), Or3(), OrAnd(), OrderedDemote2To(), OrderedDemote2To(), OrderedTruncate2To(), hwy::HWY_NAMESPACE::Pack8< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Pack(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), hwy::HWY_NAMESPACE::detail::PopulationCount(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), hwy::HWY_NAMESPACE::detail::PromoteEvenTo(), hwy::HWY_NAMESPACE::detail::PromoteEvenTo(), hwy::HWY_NAMESPACE::detail::PromoteEvenTo(), PromoteInRangeTo(), PromoteMaskTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteUpperTo(), PromoteUpperTo(), PromoteUpperTo(), RandomValues(), RandomValues(), RearrangeToOddPlusEven(), hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks(), hwy::HWY_NAMESPACE::detail::ReorderDemote2From64To32Combine(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateBF16(), ResizeBitCast(), ResizeBitCast(), Reverse(), Reverse(), Reverse(), Reverse2(), Reverse2(), Reverse4(), Reverse4(), Reverse8(), Reverse8(), ReverseBits(), ReverseBlocks(), ReverseBlocks(), ReverseLaneBytes(), Rol(), Rol(), Ror(), Ror(), RotateLeftSame(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRightSame(), hwy::HWY_NAMESPACE::detail::RoundF32ForDemoteToBF16(), hwy::HWY_NAMESPACE::detail::RoundF32ForDemoteToBF16(), SatWidenMulPairwiseAdd(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), hwy::HWY_NAMESPACE::detail::Set64(), hwy::HWY_NAMESPACE::detail::Set64(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), ShiftLeftBytes(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftLeftLanes(), ShiftLeftSame(), ShiftLeftSame(), ShiftLeftSame(), ShiftRight(), ShiftRight(), ShiftRightBytes(), ShiftRightBytes(), ShiftRightLanes(), ShiftRightLanes(), ShiftRightLanes(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shr(), Shuffle01(), Shuffle0321(), Shuffle1032(), Shuffle1032(), hwy::HWY_NAMESPACE::detail::Shuffle128(), Shuffle2103(), hwy::HWY_NAMESPACE::detail::ShuffleTwo1230(), hwy::HWY_NAMESPACE::detail::ShuffleTwo2301(), hwy::HWY_NAMESPACE::detail::ShuffleTwo3012(), SignBit(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), hwy::HWY_NAMESPACE::detail::SlideDownLanes(), hwy::HWY_NAMESPACE::detail::SlideUpLanes(), hwy::HWY_NAMESPACE::detail::SmallerSortValue(), hwy::HWY_NAMESPACE::detail::Splice(), hwy::HWY_NAMESPACE::detail::SSE2Mul128(), Store(), Store(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved4(), StoreInterleaved4(), hwy::HWY_NAMESPACE::detail::StoreN(), StoreU(), Stream(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfMulQuadAccumulate(), SumOfMulQuadAccumulate(), SumOfMulQuadAccumulate(), hwy::HWY_NAMESPACE::detail::SumOfU32OrU64LanesAsU128(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), SumsOf8(), SumsOf8(), SumsOf8(), SumsOf8(), SumsOf8(), SumsOf8(), SumsOf8AbsDiff(), SumsOfAdjQuadAbsDiff(), SumsOfAdjQuadAbsDiff(), SumsOfShuffledQuadAbsDiff(), SwapAdjacentBlocks(), SwapAdjacentBlocks(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytesOr0(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), hwy::HWY_NAMESPACE::detail::U64ToF64VecFast(), U8FromU32(), U8FromU32(), hwy::HWY_NAMESPACE::detail::UI8ReverseBitsStep(), hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp(), Undefined(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), UpperHalf(), UpperHalf(), UpperHalf(), VecFromMask(), VecFromMask(), VecFromMask(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), Xor(), Xor(), Xor(), Xor(), Xor(), Xor3(), Xor3(), Zero(), hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast(), hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast(), ZeroExtendVector(), ZipLower(), ZipLower(), ZipLower(), and ZipUpper().

◆ BitCast() [3/8]

template<class D , typename FromT , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
Vec128< FromT, Repartition< FromT, D >().MaxLanes()> v )

◆ BitCast() [4/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , typename FromT >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
Vec256< FromT > v )

◆ BitCast() [5/8]

template<class D , typename TFrom >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
Vec256< TFrom > v )

◆ BitCast() [6/8]

template<class D , HWY_IF_V_SIZE_D(D, 64) , typename FromT >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D d,
Vec512< FromT > v )

◆ BitCast() [7/8]

template<class D , class VFrom >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast ( D ,
VFrom v )

References hwy::CopySameSize().

◆ BitCast() [8/8]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Vec1< TTo > hwy::HWY_NAMESPACE::BitCast ( DTo ,
Vec1< TFrom > v )

◆ BitwiseIfThenElse()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::BitwiseIfThenElse ( V mask,
V yes,
V no )

◆ BlendedStore() [1/11]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( const Vec1< T > v,
Mask1< T > m,
D d,
T *HWY_RESTRICT p )

References d, m, p, and StoreU().

◆ BlendedStore() [2/11]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< double > v,
Mask256< double > m,
D ,
double *HWY_RESTRICT p )

◆ BlendedStore() [3/11]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec256< float > v,
Mask256< float > m,
D ,
float *HWY_RESTRICT p )

◆ BlendedStore() [4/11]

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 )

References d, IfThenElse(), LoadU(), m, p, and StoreU().

◆ BlendedStore() [5/11]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec512< double > v,
Mask512< double > m,
D ,
double *HWY_RESTRICT p )

◆ BlendedStore() [6/11]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( Vec512< float > v,
Mask512< float > m,
D ,
float *HWY_RESTRICT p )

◆ BlendedStore() [7/11]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( VFromD< D > v,
MFromD< D > m,
D d,
TFromD< D > *HWY_RESTRICT p )

◆ BlendedStore() [8/11]

template<class D , HWY_SVE_IF_EMULATED_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( VFromD< D > v,
MFromD< D > m,
D d,
TFromD< D > *HWY_RESTRICT p )

◆ BlendedStore() [9/11]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( VFromD< D > v,
MFromD< D > m,
D ,
double *HWY_RESTRICT p )

References BlendedStore(), m, and p.

◆ BlendedStore() [10/11]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( VFromD< D > v,
MFromD< D > m,
D ,
float *HWY_RESTRICT p )

References BlendedStore(), m, and p.

◆ BlendedStore() [11/11]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore ( VFromD< D > v,
MFromD< D > m,
D d,
TFromD< D > *HWY_RESTRICT p )

References BlendedStore(), m, and p.

◆ Blocks()

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::Blocks ( D d)

References d, and Lanes().

◆ Broadcast() [1/32]

template<int kLane, class V >
HWY_API V hwy::HWY_NAMESPACE::Broadcast ( const V v)

◆ Broadcast() [2/32]

template<int kLane, class V , class D = DFromV<V>, HWY_IF_T_SIZE_D(D, 1) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API V hwy::HWY_NAMESPACE::Broadcast ( const V v)

References Broadcast(), d, and HWY_DASSERT.

◆ Broadcast() [3/32]

template<int kLane, size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< double, N > v)

◆ Broadcast() [4/32]

template<int kLane, size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< float, N > v)

◆ Broadcast() [5/32]

template<int kLane, typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Broadcast ( const Vec128< T, N > v)

◆ Broadcast() [6/32]

template<int kLane, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Broadcast ( const Vec1< T > v)

◆ Broadcast() [7/32]

template<int kLane>
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< double > v)

◆ Broadcast() [8/32]

template<int kLane, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< T > v)

◆ Broadcast() [9/32]

template<int kLane, typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Broadcast ( const Vec256< T > v)

References BitCast(), and d.

◆ Broadcast() [10/32]

template<int kLane>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< double > v)

◆ Broadcast() [11/32]

template<int kLane>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< float > v)

◆ Broadcast() [12/32]

template<int kLane, typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Broadcast ( const Vec512< T > v)

References BitCast(), and d.

◆ Broadcast() [13/32]

template<int kLane, typename V , HWY_NEON_IF_EMULATED_D(DFromV< V >) , HWY_IF_LANES_GT_D(DFromV< V >, 1) >
HWY_API V hwy::HWY_NAMESPACE::Broadcast ( V v)

References BitCast(), and d.

◆ Broadcast() [14/32]

template<int kLane>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Broadcast ( Vec128< float > v)

◆ Broadcast() [15/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(float, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< float, N > v)

◆ Broadcast() [16/32]

template<int kLane>
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int16_t > v)

◆ Broadcast() [17/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int16_t, N > v)

◆ Broadcast() [18/32]

template<int kLane>
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int32_t > v)

◆ Broadcast() [19/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int32_t, N > v)

◆ Broadcast() [20/32]

template<int kLane>
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int64_t > v)

◆ Broadcast() [21/32]

template<int kLane>
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int8_t > v)

◆ Broadcast() [22/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< int8_t, N > v)

◆ Broadcast() [23/32]

template<int kLane, typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Broadcast ( Vec128< T, 1 > v)

Referenced by Broadcast(), Broadcast(), and Broadcast().

◆ Broadcast() [24/32]

template<int kLane, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< T, N > v)

◆ Broadcast() [25/32]

template<int kLane>
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint16_t > v)

◆ Broadcast() [26/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint16_t, N > v)

◆ Broadcast() [27/32]

template<int kLane>
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint32_t > v)

◆ Broadcast() [28/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint32_t, N > v)

◆ Broadcast() [29/32]

template<int kLane>
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint64_t > v)

◆ Broadcast() [30/32]

template<int kLane>
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint8_t > v)

◆ Broadcast() [31/32]

template<int kLane, size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) , HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Broadcast ( Vec128< uint8_t, N > v)

◆ Broadcast() [32/32]

template<int kLane>
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Broadcast ( Vec256< float > v)

◆ BroadcastBlock() [1/5]

template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_API V hwy::HWY_NAMESPACE::BroadcastBlock ( V v)

◆ BroadcastBlock() [2/5]

template<int kBlockIdx, class T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::BroadcastBlock ( Vec256< T > v)

◆ BroadcastBlock() [3/5]

template<int kBlockIdx>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::BroadcastBlock ( Vec512< double > v)

◆ BroadcastBlock() [4/5]

template<int kBlockIdx>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::BroadcastBlock ( Vec512< float > v)

◆ BroadcastBlock() [5/5]

template<int kBlockIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BroadcastBlock ( Vec512< T > v)

References BitCast(), and d.

◆ BroadcastLane() [1/4]

template<int kLane, class V >
HWY_API V hwy::HWY_NAMESPACE::BroadcastLane ( const V v)

References HWY_MAX_LANES_V.

◆ BroadcastLane() [2/4]

template<int kLane, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::BroadcastLane ( const Vec256< T > v)

◆ BroadcastLane() [3/4]

template<int kLane, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_API V hwy::HWY_NAMESPACE::BroadcastLane ( V v)

◆ BroadcastLane() [4/4]

template<int kLaneIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BroadcastLane ( Vec512< T > v)

◆ BroadcastSignBit() [1/17]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::BroadcastSignBit ( const V v)

References ShiftRight().

◆ BroadcastSignBit() [2/17]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int16_t, N > v)

References BroadcastSignBit().

◆ BroadcastSignBit() [3/17]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int32_t, N > v)

References BroadcastSignBit().

◆ BroadcastSignBit() [4/17]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int64_t, N > v)

◆ BroadcastSignBit() [5/17]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< int8_t, N > v)

References d, VecFromMask(), and Zero().

◆ BroadcastSignBit() [6/17]

template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec128< T, N > v)

◆ BroadcastSignBit() [7/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec1< T > v)

◆ BroadcastSignBit() [8/17]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int16_t > v)

◆ BroadcastSignBit() [9/17]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int32_t > v)

◆ BroadcastSignBit() [10/17]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int64_t > v)

◆ BroadcastSignBit() [11/17]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< int8_t > v)

References d, VecFromMask(), and Zero().

◆ BroadcastSignBit() [12/17]

template<typename T , HWY_IF_NOT_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::BroadcastSignBit ( const Vec256< T > v)

References ShiftRight().

◆ BroadcastSignBit() [13/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec128< T, N > v)

◆ BroadcastSignBit() [14/17]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec512< int16_t > v)

◆ BroadcastSignBit() [15/17]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec512< int32_t > v)

◆ BroadcastSignBit() [16/17]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec512< int64_t > v)

◆ BroadcastSignBit() [17/17]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit ( Vec512< int8_t > v)

◆ CallAcos()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAcos ( const D d,
VecArg< V > x )

References Acos(), and d.

◆ CallAcosh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAcosh ( const D d,
VecArg< V > x )

References Acosh(), and d.

◆ CallAsin()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAsin ( const D d,
VecArg< V > x )

References Asin(), and d.

◆ CallAsinh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAsinh ( const D d,
VecArg< V > x )

References Asinh(), and d.

◆ CallAtan()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAtan ( const D d,
VecArg< V > x )

References Atan(), and d.

◆ CallAtan2()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAtan2 ( const D d,
VecArg< V > y,
VecArg< V > x )

References Atan2(), and d.

◆ CallAtanh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallAtanh ( const D d,
VecArg< V > x )

References Atanh(), and d.

◆ CallCos()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallCos ( const D d,
VecArg< V > x )

References Cos(), and d.

◆ CallExp()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallExp ( const D d,
VecArg< V > x )

References d, and Exp().

◆ CallExpm1()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallExpm1 ( const D d,
VecArg< V > x )

References d, and Expm1().

◆ CallHeapPartialSort()

template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapPartialSort ( KeyType *HWY_RESTRICT keys,
const size_t num_keys,
const size_t k )

◆ CallHeapSelect()

template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapSelect ( KeyType *HWY_RESTRICT keys,
const size_t num_keys,
const size_t k )

◆ CallHeapSort()

template<class Order , typename KeyType , HWY_IF_NOT_T_SIZE(KeyType, 16) >
void hwy::HWY_NAMESPACE::CallHeapSort ( KeyType *HWY_RESTRICT keys,
const size_t num_keys )

◆ CallLog()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog ( const D d,
VecArg< V > x )

References d, and Log().

◆ CallLog10()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog10 ( const D d,
VecArg< V > x )

References d, and Log10().

◆ CallLog1p()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog1p ( const D d,
VecArg< V > x )

References d, and Log1p().

◆ CallLog2()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallLog2 ( const D d,
VecArg< V > x )

References d, and Log2().

◆ CallSin()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallSin ( const D d,
VecArg< V > x )

References d, and Sin().

◆ CallSinCos()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallSinCos ( const D d,
VecArg< V > x,
VecArg< V > & s,
VecArg< V > & c )

References d, and SinCos().

◆ CallSinh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallSinh ( const D d,
VecArg< V > x )

References d, and Sinh().

◆ CallTanh()

template<class D , class V >
HWY_NOINLINE V hwy::HWY_NAMESPACE::CallTanh ( const D d,
VecArg< V > x )

References d, and Tanh().

◆ CappedLanes()

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API size_t hwy::HWY_NAMESPACE::CappedLanes ( D ,
size_t cap )

References CappedLanes().

Referenced by CappedLanes().

◆ Ceil() [1/12]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Ceil ( const V v)

References Ceil(), and Round().

◆ Ceil() [2/12]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Ceil ( const Vec128< double, N > v)

◆ Ceil() [3/12]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Ceil ( const Vec128< float, N > v)

◆ Ceil() [4/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Ceil ( const Vec128< T, N > v)

◆ Ceil() [5/12]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Ceil ( const Vec1< double > v)

◆ Ceil() [6/12]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Ceil ( const Vec1< float > v)

◆ Ceil() [7/12]

template<typename Float , size_t N>
Vec128< Float, N > hwy::HWY_NAMESPACE::Ceil ( Vec128< Float, N > v)

◆ Ceil() [8/12]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Ceil ( Vec128< T, N > v)

◆ Ceil() [9/12]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Ceil ( Vec256< double > v)

◆ Ceil() [10/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Ceil ( Vec256< float > v)

◆ Ceil() [11/12]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Ceil ( Vec512< double > v)

◆ Ceil() [12/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Ceil ( Vec512< float > v)

◆ Ceiling()

template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
V hwy::HWY_NAMESPACE::Ceiling ( const V v)

References hwy::CopySameSize().

◆ Clamp()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Clamp ( const V v,
const V lo,
const V hi )

◆ CLMulLower() [1/4]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::CLMulLower ( Vec128< uint64_t > a,
Vec128< uint64_t > b )

References GetLane().

Referenced by CLMulLower(), CLMulLower(), and CLMulLower().

◆ CLMulLower() [2/4]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::CLMulLower ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ CLMulLower() [3/4]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CLMulLower ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ CLMulLower() [4/4]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulLower ( Vec512< uint64_t > va,
Vec512< uint64_t > vb )

◆ CLMulUpper() [1/4]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper ( Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ CLMulUpper() [2/4]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::CLMulUpper ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ CLMulUpper() [3/4]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ CLMulUpper() [4/4]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper ( Vec512< uint64_t > va,
Vec512< uint64_t > vb )

◆ Combine() [1/19]

template<class D , class V2 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( const D d,
const V2 hi,
const V2 lo )

References ConcatLowerLower(), and d.

◆ Combine() [2/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Combine ( D d,
Vec128< double > hi,
Vec128< double > lo )

◆ Combine() [3/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Combine ( D d,
Vec128< float > hi,
Vec128< float > lo )

◆ Combine() [4/19]

template<class D , class DH = Half<D>, HWY_NEON_IF_EMULATED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( D d,
VFromD< DH > hi,
VFromD< DH > lo )

References BitCast(), Combine(), and d.

◆ Combine() [5/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( D d,
VFromD< Half< D > > hi,
VFromD< Half< D > > lo )

◆ Combine() [6/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( D d,
VFromD< Half< D > > hi,
VFromD< Half< D > > lo )

References BitCast(), d, and ZeroExtendVector().

◆ Combine() [7/19]

template<class D , class VH = VFromD<Half<D>>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( D d,
VH hi_half,
VH lo_half )

References hwy::CopyBytes(), d, and MaxLanes().

◆ Combine() [8/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , class VH = VFromD<Half<D>>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine ( D d,
VH hi_half,
VH lo_half )

References BitCast(), d, and InterleaveLower().

◆ Combine() [9/19]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Combine ( D ,
Vec128< T > hi,
Vec128< T > lo )

◆ Combine() [10/19]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< float > hi,
Vec64< float > lo )

◆ Combine() [11/19]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< int16_t > hi,
Vec64< int16_t > lo )

◆ Combine() [12/19]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< int32_t > hi,
Vec64< int32_t > lo )

◆ Combine() [13/19]

template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< int64_t > hi,
Vec64< int64_t > lo )

◆ Combine() [14/19]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< int8_t > hi,
Vec64< int8_t > lo )

◆ Combine() [15/19]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< uint16_t > hi,
Vec64< uint16_t > lo )

◆ Combine() [16/19]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< uint32_t > hi,
Vec64< uint32_t > lo )

◆ Combine() [17/19]

template<class D , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< uint64_t > hi,
Vec64< uint64_t > lo )

◆ Combine() [18/19]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::Combine ( D ,
Vec64< uint8_t > hi,
Vec64< uint8_t > lo )

◆ Combine() [19/19]

template<class D2 , class V >
HWY_API VFromD< D2 > hwy::HWY_NAMESPACE::Combine ( D2 d2,
const V hi,
const V lo )

◆ CombineMasks()

template<class D , HWY_IF_LANES_D(D, 2) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::CombineMasks ( D ,
MFromD< Half< D > > hi,
MFromD< Half< D > > lo )

Referenced by OrderedDemote2MasksTo().

◆ CombineShiftRightBytes() [1/7]

template<size_t kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightBytes ( const D d,
const V hi,
const V lo )

◆ CombineShiftRightBytes() [2/7]

template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( D d,
Vec128< T > hi,
Vec128< T > lo )

◆ CombineShiftRightBytes() [3/7]

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 )

◆ CombineShiftRightBytes() [4/7]

template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec64< T > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( D d,
Vec64< T > hi,
Vec64< T > lo )

References BitCast(), and d.

◆ CombineShiftRightBytes() [5/7]

template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ CombineShiftRightBytes() [6/7]

template<int kBytes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( D d,
VFromD< D > hi,
VFromD< D > lo )

References hwy::CopyBytes(), d, and HWY_RESTRICT.

◆ CombineShiftRightBytes() [7/7]

template<int kBytes, class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::CombineShiftRightBytes ( D ,
Vec128< T > hi,
Vec128< T > lo )

◆ CombineShiftRightLanes()

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::CombineShiftRightLanes ( const D d,
const V hi,
V lo )

◆ Compress() [1/14]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Compress ( const Vec256< T > v,
const Mask256< T > mask )

References CompressStore(), d, and Load().

◆ Compress() [2/14]

HWY_API svfloat16_t hwy::HWY_NAMESPACE::Compress ( svfloat16_t v,
svbool_t mask16 )

References BitCast(), and Compress().

◆ Compress() [3/14]

template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_API V hwy::HWY_NAMESPACE::Compress ( V v,
const M mask )

◆ Compress() [4/14]

template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API V hwy::HWY_NAMESPACE::Compress ( V v,
const M mask )

◆ Compress() [5/14]

template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_API V hwy::HWY_NAMESPACE::Compress ( V v,
svbool_t mask )

◆ Compress() [6/14]

template<size_t N, HWY_IF_V_SIZE_GT(float, N, 4) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Compress ( Vec128< float, N > v,
Mask128< float, N > mask )

◆ Compress() [7/14]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Compress ( Vec128< T > v,
Mask128< T > mask )

◆ Compress() [8/14]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Compress ( Vec128< T, 1 > v,
Mask128< T, 1 >  )

◆ Compress() [9/14]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Compress ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ Compress() [10/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Compress ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ Compress() [11/14]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Compress ( Vec1< T > v,
const Mask1< T >  )

◆ Compress() [12/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Compress ( Vec256< float > v,
Mask256< float > mask )

◆ Compress() [13/14]

template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Compress ( Vec256< T > v,
Mask256< T > mask )

◆ Compress() [14/14]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Compress ( Vec512< T > v,
Mask512< T > mask )

◆ CompressBits() [1/8]

template<class V , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_INLINE V hwy::HWY_NAMESPACE::CompressBits ( V v,
const uint8_t *HWY_RESTRICT bits )

References Compress(), and LoadMaskBits().

◆ CompressBits() [2/8]

template<class V , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_API V hwy::HWY_NAMESPACE::CompressBits ( V v,
const uint8_t *HWY_RESTRICT bits )

◆ CompressBits() [3/8]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::CompressBits ( V v,
const uint8_t *HWY_RESTRICT bits )

References Compress(), and LoadMaskBits().

◆ CompressBits() [4/8]

template<typename T , size_t N, HWY_IF_NOT_T_SIZE(T, 1) >
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::CompressBits ( Vec128< T, N > v,
const uint8_t *HWY_RESTRICT bits )

◆ CompressBits() [5/8]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressBits ( Vec128< T, N > v,
const uint8_t *HWY_RESTRICT bits )

References Compress(), and LoadMaskBits().

◆ CompressBits() [6/8]

template<typename T , size_t N, HWY_IF_NOT_T_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressBits ( Vec128< T, N > v,
const uint8_t *HWY_RESTRICT bits )

◆ CompressBits() [7/8]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressBits ( Vec1< T > v,
const uint8_t * HWY_RESTRICT )

◆ CompressBits() [8/8]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CompressBits ( Vec256< T > v,
const uint8_t *HWY_RESTRICT bits )

References Compress(), LoadMaskBits(), and m.

◆ CompressBitsStore() [1/5]

template<class V , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( V v,
const uint8_t *HWY_RESTRICT bits,
D d,
T * unaligned )

◆ CompressBitsStore() [2/5]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( Vec1< T > v,
const uint8_t *HWY_RESTRICT bits,
D d,
T *HWY_RESTRICT unaligned )

◆ CompressBitsStore() [3/5]

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 )

References CompressStore(), d, LoadMaskBits(), and m.

◆ CompressBitsStore() [4/5]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( VFromD< D > v,
const uint8_t *HWY_RESTRICT bits,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ CompressBitsStore() [5/5]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore ( VFromD< D > v,
const uint8_t *HWY_RESTRICT bits,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

References CompressStore(), d, and LoadMaskBits().

◆ CompressBlendedStore() [1/6]

template<class V , class M , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( const V v,
const M mask,
const D d,
TFromD< D > *HWY_RESTRICT unaligned )

References CompressBlendedStore(), d, and StoreN().

◆ CompressBlendedStore() [2/6]

template<class V , class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( const V v,
const svbool_t mask,
const D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ CompressBlendedStore() [3/6]

template<class V , class M , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( V v,
M mask,
D d,
T *HWY_RESTRICT unaligned )

◆ CompressBlendedStore() [4/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( Vec1< T > v,
const Mask1< T > mask,
D d,
T *HWY_RESTRICT unaligned )

◆ CompressBlendedStore() [5/6]

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 )

◆ CompressBlendedStore() [6/6]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore ( VFromD< D > v,
MFromD< D > m,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ CompressBlocksNot() [1/5]

HWY_API svuint64_t hwy::HWY_NAMESPACE::CompressBlocksNot ( svuint64_t v,
svbool_t mask )

◆ CompressBlocksNot() [2/5]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::CompressBlocksNot ( V v,
const M mask )

References CompressBlocksNot().

◆ CompressBlocksNot() [3/5]

template<class V , class M , HWY_IF_V_SIZE_GT_D(DFromV< V >, 16) >
HWY_API V hwy::HWY_NAMESPACE::CompressBlocksNot ( V v,
M mask )

References CompressNot().

◆ CompressBlocksNot() [4/5]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot ( Vec128< uint64_t > v,
Mask128< uint64_t >  )

Referenced by CompressBlocksNot().

◆ CompressBlocksNot() [5/5]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot ( Vec256< uint64_t > v,
Mask256< uint64_t > mask )

◆ CompressNot() [1/12]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( V v,
const M mask )

References Not().

◆ CompressNot() [2/12]

template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 8) >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( V v,
const M mask )

References Compress(), and Not().

◆ CompressNot() [3/12]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)) >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( V v,
const svbool_t mask )

◆ CompressNot() [4/12]

template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_API V hwy::HWY_NAMESPACE::CompressNot ( V v,
M mask )

References Compress(), and Not().

◆ CompressNot() [5/12]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T > v,
Mask128< T > mask )

◆ CompressNot() [6/12]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, 1 > v,
Mask128< T, 1 >  )

◆ CompressNot() [7/12]

template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ CompressNot() [8/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CompressNot ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ CompressNot() [9/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressNot ( Vec1< T > v,
const Mask1< T >  )

◆ CompressNot() [10/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CompressNot ( Vec256< T > v,
const Mask256< T > mask )

References Compress(), and Not().

◆ CompressNot() [11/12]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CompressNot ( Vec256< T > v,
Mask256< T > mask )

◆ CompressNot() [12/12]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressNot ( Vec512< T > v,
Mask512< T > mask )

◆ CompressStore() [1/7]

template<class V , class M , class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( const V v,
const M mask,
const D d,
TFromD< D > *HWY_RESTRICT unaligned )

References CompressStore(), d, and StoreU().

◆ CompressStore() [2/7]

template<class V , class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( const V v,
const svbool_t mask,
const D d,
TFromD< D > *HWY_RESTRICT unaligned )

References Compress(), CountTrue(), d, and StoreU().

◆ CompressStore() [3/7]

template<class V , class M , class D , typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( V v,
M mask,
D d,
T *HWY_RESTRICT unaligned )

◆ CompressStore() [4/7]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( Vec1< T > v,
const Mask1< T > mask,
D d,
T *HWY_RESTRICT unaligned )

References Compress(), CountTrue(), d, and StoreU().

◆ CompressStore() [5/7]

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 )

◆ CompressStore() [6/7]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( VFromD< D > v,
MFromD< D > mask,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ CompressStore() [7/7]

template<class D , HWY_IF_NOT_FLOAT_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 4)|(1<< 8)) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore ( VFromD< D > v,
MFromD< D > mask,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ ConcatEven() [1/9]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatEven ( D d,
Vec128< T > hi,
Vec128< T > lo )

◆ ConcatEven() [2/9]

template<class D , HWY_IF_LANES_D(D, 2) , typename T = TFromD<D>>
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatEven ( D d,
Vec128< T, 2 > hi,
Vec128< T, 2 > lo )

References d, and InterleaveLower().

◆ ConcatEven() [3/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatEven ( D d,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatEven() [4/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatEven ( D d,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatEven() [5/9]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatEven ( D d,
Vec32< T > hi,
Vec32< T > lo )

◆ ConcatEven() [6/9]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatEven ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatEven() [7/9]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatEven ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), Combine(), and d.

◆ ConcatEven() [8/9]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatEven ( D ,
Vec64< T > hi,
Vec64< T > lo )

◆ ConcatEven() [9/9]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatEven ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatLowerLower() [1/9]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatLowerLower ( const D d,
const V hi,
const V lo )

◆ ConcatLowerLower() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
Vec128< T > hi,
Vec128< T > lo )

References BitCast(), d, and InterleaveLower().

◆ ConcatLowerLower() [3/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatLowerLower() [4/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
Vec256< float > hi,
Vec256< float > lo )

◆ ConcatLowerLower() [5/9]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatLowerLower() [6/9]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

References hwy::CopyBytes(), d, and MaxLanes().

◆ ConcatLowerLower() [7/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), d, and LowerHalf().

◆ ConcatLowerLower() [8/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatLowerLower ( D ,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatLowerLower() [9/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerLower ( D ,
Vec512< double > hi,
Vec512< double > lo )

◆ ConcatLowerUpper() [1/9]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatLowerUpper ( const D d,
const V hi,
const V lo )

◆ ConcatLowerUpper() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D d,
Vec128< T > hi,
Vec128< T > lo )

References d.

◆ ConcatLowerUpper() [3/9]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatLowerUpper() [4/9]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

References hwy::CopyBytes(), d, and MaxLanes().

◆ ConcatLowerUpper() [5/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), and d.

◆ ConcatLowerUpper() [6/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D ,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatLowerUpper() [7/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D ,
Vec256< float > hi,
Vec256< float > lo )

◆ ConcatLowerUpper() [8/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D ,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatLowerUpper() [9/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerUpper ( D ,
Vec512< double > hi,
Vec512< double > lo )

◆ ConcatOdd() [1/10]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
Vec128< T > hi,
Vec128< T > lo )

◆ ConcatOdd() [2/10]

template<class D , HWY_IF_LANES_D(D, 2) , typename T = TFromD<D>>
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
Vec128< T, 2 > hi,
Vec128< T, 2 > lo )

References d, and InterleaveUpper().

◆ ConcatOdd() [3/10]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatOdd() [4/10]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatOdd() [5/10]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
Vec32< T > hi,
Vec32< T > lo )

◆ ConcatOdd() [6/10]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatOdd() [7/10]

template<class D >
HWY_EMU128_CONCAT_INLINE VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
VFromD< D > hi,
VFromD< D > lo )

References d, and MaxLanes().

◆ ConcatOdd() [8/10]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), Combine(), and d.

◆ ConcatOdd() [9/10]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatOdd ( D ,
Vec64< T > hi,
Vec64< T > lo )

◆ ConcatOdd() [10/10]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatUpperLower() [1/11]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatUpperLower ( const D d,
const V hi,
const V lo )

◆ ConcatUpperLower() [2/11]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatUpperLower ( D d,
Vec128< float > hi,
Vec128< float > lo )

◆ ConcatUpperLower() [3/11]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatUpperLower() [4/11]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

References Combine(), d, LowerHalf(), and UpperHalf().

◆ ConcatUpperLower() [5/11]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperLower ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), ConcatUpperLower(), and d.

◆ ConcatUpperLower() [6/11]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( D ,
Vec128< double > hi,
Vec128< double > lo )

◆ ConcatUpperLower() [7/11]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperLower ( D d,
Vec128< T > hi,
Vec128< T > lo )

◆ ConcatUpperLower() [8/11]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( D ,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatUpperLower() [9/11]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatUpperLower ( D ,
Vec256< float > hi,
Vec256< float > lo )

◆ ConcatUpperLower() [10/11]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatUpperLower ( D ,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatUpperLower() [11/11]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperLower ( D ,
Vec512< double > hi,
Vec512< double > lo )

◆ ConcatUpperUpper() [1/9]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ConcatUpperUpper ( const D d,
const V hi,
const V lo )

◆ ConcatUpperUpper() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D d,
Vec128< T > hi,
Vec128< T > lo )

References BitCast(), d, and InterleaveUpper().

◆ ConcatUpperUpper() [3/9]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

◆ ConcatUpperUpper() [4/9]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

References hwy::CopyBytes(), d, and MaxLanes().

◆ ConcatUpperUpper() [5/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D d,
VFromD< D > hi,
VFromD< D > lo )

References BitCast(), and d.

◆ ConcatUpperUpper() [6/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D ,
Vec256< double > hi,
Vec256< double > lo )

◆ ConcatUpperUpper() [7/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D ,
Vec256< float > hi,
Vec256< float > lo )

◆ ConcatUpperUpper() [8/9]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D ,
Vec256< T > hi,
Vec256< T > lo )

◆ ConcatUpperUpper() [9/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperUpper ( D ,
Vec512< double > hi,
Vec512< double > lo )

◆ ConvertInRangeTo() [1/7]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo ( D ,
Vec256< double > v )

◆ ConvertInRangeTo() [2/7]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo ( D ,
Vec256< float > v )

◆ ConvertInRangeTo() [3/7]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo ( D ,
Vec512< double > v )

◆ ConvertInRangeTo() [4/7]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo ( D ,
Vec512< float > v )

◆ ConvertInRangeTo() [5/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo ( D ,
VFromD< RebindToFloat< D > > v )

References ConvertInRangeTo().

◆ ConvertInRangeTo() [6/7]

template<class DI , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(DI) , HWY_IF_T_SIZE_ONE_OF_D(DI,(1<< 4)|(1<< 8)) >
HWY_API VFromD< DI > hwy::HWY_NAMESPACE::ConvertInRangeTo ( DI di,
VFromD< RebindToFloat< DI > > v )

◆ ConvertInRangeTo() [7/7]

template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > hwy::HWY_NAMESPACE::ConvertInRangeTo ( DU ,
VFromD< RebindToFloat< DU > > v )

References ConvertInRangeTo().

◆ ConvertTo() [1/32]

template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D dd,
VFromD< Rebind< int64_t, D > > v )

References BitCast(), OddEven(), and Set().

◆ ConvertTo() [2/32]

template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D dd,
VFromD< Rebind< uint64_t, D > > v )

◆ ConvertTo() [3/32]

template<class D , typename FromT , HWY_IF_F32_D(D) , HWY_IF_UI32(FromT) , HWY_IF_V_SIZE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D df32,
Vec128< FromT > v )

◆ ConvertTo() [4/32]

template<class D , typename FromT , HWY_IF_F32_D(D) , HWY_IF_UI32(FromT) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D df32,
Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v )

References DemoteTo(), and PromoteTo().

◆ ConvertTo() [5/32]

template<class D , HWY_IF_SIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D( D,(1<< 4)|((HWY_ARCH_ARM_A64 &&HWY_HAVE_FLOAT16) ?(1<< 2) :0)|(HWY_HAVE_FLOAT64 ?(1<< 8) :0)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D di,
VFromD< RebindToFloat< D > > v )

◆ ConvertTo() [6/32]

template<class D , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D di,
VFromD< RebindToFloat< D > > v )

References ConvertInRangeTo(), and ConvertTo().

◆ ConvertTo() [7/32]

template<class D , HWY_IF_I32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D di32,
Vec128< float, Rebind< float, D >().MaxLanes()> v )

References DemoteTo(), and PromoteTo().

◆ ConvertTo() [8/32]

template<class D , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec128< double, Rebind< double, D >().MaxLanes()> v )

◆ ConvertTo() [9/32]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec128< int32_t > v )

◆ ConvertTo() [10/32]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec128< uint32_t > v )

◆ ConvertTo() [11/32]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec256< int32_t > v )

◆ ConvertTo() [12/32]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec256< int64_t > v )

◆ ConvertTo() [13/32]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec256< uint32_t > v )

◆ ConvertTo() [14/32]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec256< uint64_t > v )

◆ ConvertTo() [15/32]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec512< int32_t > v )

◆ ConvertTo() [16/32]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec512< int64_t > v )

◆ ConvertTo() [17/32]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec512< uint32_t > v )

◆ ConvertTo() [18/32]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
Vec512< uint64_t > v )

◆ ConvertTo() [19/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< Rebind< float, D > > v )

◆ ConvertTo() [20/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< Rebind< int32_t, D > > v )

◆ ConvertTo() [21/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< Rebind< int64_t, D > > v )

References ConvertTo().

◆ ConvertTo() [22/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< Rebind< uint32_t, D > > v )

◆ ConvertTo() [23/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< Rebind< uint64_t, D > > v )

References ConvertTo().

◆ ConvertTo() [24/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< RebindToSigned< D > > v )

◆ ConvertTo() [25/32]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo ( D ,
VFromD< RebindToUnsigned< D > > v )

◆ ConvertTo() [26/32]

template<class DI , HWY_IF_I64_D(DI) >
HWY_API VFromD< DI > hwy::HWY_NAMESPACE::ConvertTo ( DI di,
VFromD< Rebind< double, DI > > v )

◆ ConvertTo() [27/32]

template<class DI , HWY_IF_I64_D(DI) >
HWY_API VFromD< DI > hwy::HWY_NAMESPACE::ConvertTo ( DI di,
VFromD< RebindToFloat< DI > > v )

References ConvertInRangeTo(), and ConvertTo().

◆ ConvertTo() [28/32]

template<class DTo , typename TFrom , typename TTo = TFromD<DTo>>
HWY_API Vec256< TTo > hwy::HWY_NAMESPACE::ConvertTo ( DTo d,
const Vec256< TFrom > v )

◆ ConvertTo() [29/32]

template<class DTo , typename TFrom >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::ConvertTo ( DTo d,
Vec128< TFrom, HWY_MAX_LANES_D(DTo)> from )

◆ ConvertTo() [30/32]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_FLOAT(TFrom) >
HWY_API Vec1< TTo > hwy::HWY_NAMESPACE::ConvertTo ( DTo ,
Vec1< TFrom > from )

◆ ConvertTo() [31/32]

template<class DU , HWY_IF_U64_D(DU) >
HWY_API VFromD< DU > hwy::HWY_NAMESPACE::ConvertTo ( DU du,
VFromD< Rebind< double, DU > > v )

◆ ConvertTo() [32/32]

template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > hwy::HWY_NAMESPACE::ConvertTo ( DU ,
VFromD< RebindToFloat< DU > > v )

References ConvertTo(), and MaskFromVec().

◆ Copy()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Copy ( D d,
const T *HWY_RESTRICT from,
size_t count,
T *HWY_RESTRICT to )

◆ CopyIf()

template<class D , class Func , typename T = TFromD<D>>
T * hwy::HWY_NAMESPACE::CopyIf ( D d,
const T *HWY_RESTRICT from,
size_t count,
T *HWY_RESTRICT to,
const Func & func )

◆ CopySign() [1/4]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::CopySign ( const V magn,
const V sign )

References BitwiseIfThenElse(), d, and SignBit().

◆ CopySign() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySign ( const Vec1< T > magn,
const Vec1< T > sign )

References BitwiseIfThenElse(), d, and SignBit().

◆ CopySign() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CopySign ( const Vec256< T > magn,
const Vec256< T > sign )

References BitwiseIfThenElse(), d, and SignBit().

◆ CopySign() [4/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CopySign ( Vec128< T, N > magn,
Vec128< T, N > sign )

References BitwiseIfThenElse(), d, and SignBit().

Referenced by Atan2(), CopySignToAbs(), Round(), and Trunc().

◆ CopySignToAbs() [1/4]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::CopySignToAbs ( const V abs,
const V sign )

References CopySign(), d, OrAnd(), and SignBit().

◆ CopySignToAbs() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec1< T > abs,
const Vec1< T > sign )

References d, OrAnd(), and SignBit().

◆ CopySignToAbs() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::CopySignToAbs ( const Vec256< T > abs,
const Vec256< T > sign )

References d, OrAnd(), and SignBit().

◆ CopySignToAbs() [4/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::CopySignToAbs ( Vec128< T, N > abs,
Vec128< T, N > sign )

References d, OrAnd(), and SignBit().

Referenced by Atan2(), Round(), Round(), and Trunc().

◆ Cos()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Cos ( D d,
V x )

Highway SIMD version of std::cos(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: [-39000, +39000]

Returns
cosine of 'x'

References Abs(), Add(), d, Mul(), Set(), Xor(), and Zero().

Referenced by CallCos().

◆ CountTrue() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D d,
const Mask256< T > m )

References CountTrue(), d, and m.

◆ CountTrue() [2/6]

template<class D , typename T = TFromD<D>, HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D d,
MFromD< D > m )

◆ CountTrue() [3/6]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D d,
MFromD< D > mask )

◆ CountTrue() [4/6]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D d,
MFromD< D > mask )

References d, and MaxLanes().

◆ CountTrue() [5/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D ,
const Mask1< T > mask )

◆ CountTrue() [6/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue ( D ,
Mask128< T > mask )

◆ DemoteInRangeTo() [1/4]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteInRangeTo ( D ,
Vec256< double > v )

◆ DemoteInRangeTo() [2/4]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteInRangeTo ( D ,
Vec512< double > v )

◆ DemoteInRangeTo() [3/4]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteInRangeTo ( D ,
VFromD< Rebind< double, D > > v )

References DemoteInRangeTo().

◆ DemoteInRangeTo() [4/4]

template<class D32 , HWY_IF_UI32_D(D32) >
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::DemoteInRangeTo ( D32 d32,
VFromD< Rebind< double, D32 > > v )

References MaxLanes().

Referenced by DemoteInRangeTo().

◆ DemoteMaskTo() [1/5]

template<class DTo , class DFrom >
HWY_API Mask< DTo > hwy::HWY_NAMESPACE::DemoteMaskTo ( DTo d_to,
DFrom d_from,
Mask< DFrom > m )

◆ DemoteMaskTo() [2/5]

template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >)/4) >
HWY_API svbool_t hwy::HWY_NAMESPACE::DemoteMaskTo ( DTo d_to,
DFrom d_from,
svbool_t m )

References DemoteMaskTo(), and m.

◆ DemoteMaskTo() [3/5]

template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >) - 1) , hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DFrom > >()> * = nullptr>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::DemoteMaskTo ( DTo ,
DFrom ,
MFromD< DFrom > m )

References m.

◆ DemoteMaskTo() [4/5]

template<class DTo , class DFrom , HWY_IF_T_SIZE_LE_D(DTo, sizeof(TFromD< DFrom >) - 1) , class DFrom_2 = Rebind<TFromD<DFrom>, DTo>, hwy::EnableIf< IsSame< MFromD< DFrom >, MFromD< DFrom_2 > >()> * = nullptr>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::DemoteMaskTo ( DTo ,
DFrom ,
MFromD< DFrom > m )

References m.

◆ DemoteMaskTo() [5/5]

template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, 1) , HWY_IF_T_SIZE_D(DFrom, 2) >
HWY_API svbool_t hwy::HWY_NAMESPACE::DemoteMaskTo ( DTo ,
DFrom ,
svbool_t m )

References m.

Referenced by DemoteMaskTo().

◆ DemoteTo() [1/146]

template<class D , HWY_IF_BF16_D(D) >
HWY_API Vec1< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo ( D d,
const Vec1< float > v )

◆ DemoteTo() [2/146]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec128< double > v )

◆ DemoteTo() [3/146]

template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) , HWY_IF_SIGNED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec128< int64_t > v )

References d, and DemoteTo().

◆ DemoteTo() [4/146]

template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) , HWY_IF_UNSIGNED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec128< uint64_t > v )

References d, and DemoteTo().

◆ DemoteTo() [5/146]

template<class D , HWY_IF_SIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec64< int64_t > v )

References d, and DemoteTo().

◆ DemoteTo() [6/146]

template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_UNSIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec64< uint64_t > v )

References d, and DemoteTo().

◆ DemoteTo() [7/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
VFromD< Rebind< double, D > > from )

◆ DemoteTo() [8/146]

template<class D , HWY_IF_F16_D(D) >
HWY_API Vec128< float16_t > hwy::HWY_NAMESPACE::DemoteTo ( D d16,
Vec256< float > v )

◆ DemoteTo() [9/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::DemoteTo ( D df,
Vec256< int64_t > v )

◆ DemoteTo() [10/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::DemoteTo ( D df,
Vec256< uint64_t > v )

◆ DemoteTo() [11/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df16,
Vec256< float > v )

References BitCast().

◆ DemoteTo() [12/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df16,
Vec512< float > v )

◆ DemoteTo() [13/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df16,
VFromD< Rebind< double, D > > v )

◆ DemoteTo() [14/146]

template<class D , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df16,
VFromD< Rebind< float, D > > v )

◆ DemoteTo() [15/146]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
Vec128< int64_t > v )

◆ DemoteTo() [16/146]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
Vec128< uint64_t > v )

◆ DemoteTo() [17/146]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
Vec64< int64_t > v )

◆ DemoteTo() [18/146]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
Vec64< uint64_t > v )

◆ DemoteTo() [19/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
VFromD< Rebind< int64_t, D > > v )

◆ DemoteTo() [20/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
VFromD< Rebind< int64_t, D > > v )

◆ DemoteTo() [21/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
VFromD< Rebind< uint64_t, D > > v )

◆ DemoteTo() [22/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D df32,
VFromD< Rebind< uint64_t, D > > v )

◆ DemoteTo() [23/146]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( D di,
Vec256< double > v )

◆ DemoteTo() [24/146]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D di,
Vec256< double > v )

◆ DemoteTo() [25/146]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( D di32,
Vec128< double > v )

◆ DemoteTo() [26/146]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( D di32,
Vec64< double > v )

References ConvertTo(), and DemoteTo().

◆ DemoteTo() [27/146]

template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_LE_D(D, sizeof(TFromV< V >) - 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
V v )

◆ DemoteTo() [28/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
Vec256< uint16_t > v )

References BitCast(), d, DemoteTo(), Min(), and Set().

◆ DemoteTo() [29/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
Vec256< uint32_t > v )

References BitCast(), d, DemoteTo(), Min(), and Set().

◆ DemoteTo() [30/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
Vec512< uint16_t > v )

References BitCast(), d, DemoteTo(), Min(), and Set().

◆ DemoteTo() [31/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
Vec512< uint32_t > v )

References BitCast(), d, DemoteTo(), Min(), and Set().

◆ DemoteTo() [32/146]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D du32,
Vec128< double > v )

◆ DemoteTo() [33/146]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D du32,
Vec64< double > v )

References ConvertTo(), and DemoteTo().

◆ DemoteTo() [34/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D du8,
VFromD< Rebind< uint16_t, D > > v )

References BitCast(), DemoteTo(), Min(), and Set().

◆ DemoteTo() [35/146]

template<class D , HWY_IF_F16_D(D) >
HWY_API Vec1< float16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
const Vec1< float > v )

◆ DemoteTo() [36/146]

template<class D , HWY_IF_BF16_D(D) , size_t N>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< float, N > v )

◆ DemoteTo() [37/146]

template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_SIGNED(FromT) , HWY_IF_T_SIZE(FromT, sizeof(TFromD< D >) *2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D d,
Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v )

◆ DemoteTo() [38/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int16_t > v )

◆ DemoteTo() [39/146]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int16_t > v )

◆ DemoteTo() [40/146]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int32_t > v )

◆ DemoteTo() [41/146]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int32_t > v )

◆ DemoteTo() [42/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int32_t > v )

◆ DemoteTo() [43/146]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec32< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int32_t > v )

◆ DemoteTo() [44/146]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int64_t > v )

◆ DemoteTo() [45/146]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< int64_t > v )

◆ DemoteTo() [46/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< uint16_t > v )

◆ DemoteTo() [47/146]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< uint32_t > v )

◆ DemoteTo() [48/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< uint32_t > v )

◆ DemoteTo() [49/146]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec128< uint64_t > v )

◆ DemoteTo() [50/146]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec1< double > from )

◆ DemoteTo() [51/146]

template<class D , HWY_IF_UI32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec1< double > from )

◆ DemoteTo() [52/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< double > v )

◆ DemoteTo() [53/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int16_t > v )

◆ DemoteTo() [54/146]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int16_t > v )

◆ DemoteTo() [55/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int16_t > v )

◆ DemoteTo() [56/146]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int32_t > v )

◆ DemoteTo() [57/146]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int32_t > v )

◆ DemoteTo() [58/146]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int32_t > v )

◆ DemoteTo() [59/146]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int32_t > v )

◆ DemoteTo() [60/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int32_t > v )

◆ DemoteTo() [61/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< int64_t > v )

◆ DemoteTo() [62/146]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec256< uint64_t > v )

◆ DemoteTo() [63/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec512< double > v )

◆ DemoteTo() [64/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec512< int16_t > v )

◆ DemoteTo() [65/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec512< int32_t > v )

◆ DemoteTo() [66/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec512< int64_t > v )

◆ DemoteTo() [67/146]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec512< uint64_t > v )

◆ DemoteTo() [68/146]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec64< double > v )

◆ DemoteTo() [69/146]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec64< int64_t > v )

◆ DemoteTo() [70/146]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec64< int64_t > v )

◆ DemoteTo() [71/146]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::DemoteTo ( D ,
Vec64< uint64_t > v )

◆ DemoteTo() [72/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
VFromD< Rebind< int16_t, D > > v )

◆ DemoteTo() [73/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D ,
VFromD< Rebind< int32_t, D > > v )

◆ DemoteTo() [74/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D du8,
VFromD< Rebind< uint16_t, D > > v )

◆ DemoteTo() [75/146]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo ( D dn,
VFromD< Rebind< uint32_t, D > > v )

◆ DemoteTo() [76/146]

template<class DN , HWY_IF_SIGNED_D(DN) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_U2I_DEMOTE_FROM_LANE_SIZE_V(V) , class V2 = VFromD<Rebind<TFromV<V>, DN>>, hwy::EnableIf<(sizeof(TFromD< DN >)< sizeof(TFromV< V >))> * = nullptr, HWY_IF_LANES_D(DFromV< V >, HWY_MAX_LANES_D(DFromV< V2 >)) >
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::DemoteTo ( DN dn,
V v )

◆ DemoteTo() [77/146]

template<class DTo , typename TFrom , size_t N, HWY_IF_SIGNED(TFrom) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DTo >) >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::DemoteTo ( DTo ,
Vec128< TFrom, N > from )

◆ DemoteTo() [78/146]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_SIGNED(TFrom) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DTo >) >
HWY_API Vec1< TTo > hwy::HWY_NAMESPACE::DemoteTo ( DTo ,
Vec1< TFrom > from )

◆ DemoteTo() [79/146]

template<size_t N, int kPow2>
HWY_API VBF16 hwy::HWY_NAMESPACE::DemoteTo ( Simd< bfloat16_t, N, kPow2 > dbf16,
svfloat32_t v )

◆ DemoteTo() [80/146]

template<size_t N>
HWY_API vfloat32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, -1 > d,
const vint64m1_t v )

References d, and Lanes().

◆ DemoteTo() [81/146]

template<size_t N>
HWY_API vfloat32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, -1 > d,
const vuint64m1_t v )

References d, and Lanes().

◆ DemoteTo() [82/146]

template<size_t N>
HWY_API vfloat32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, -2 > d,
const vint64m1_t v )

References d, and Lanes().

◆ DemoteTo() [83/146]

template<size_t N>
HWY_API vfloat32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, -2 > d,
const vuint64m1_t v )

References d, and Lanes().

◆ DemoteTo() [84/146]

template<size_t N>
HWY_API vfloat32m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 0 > d,
const vint64m2_t v )

References d, and Lanes().

◆ DemoteTo() [85/146]

template<size_t N>
HWY_API vfloat32m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 0 > d,
const vuint64m2_t v )

References d, and Lanes().

◆ DemoteTo() [86/146]

template<size_t N>
HWY_API vfloat32m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 1 > d,
const vint64m4_t v )

References d, and Lanes().

◆ DemoteTo() [87/146]

template<size_t N>
HWY_API vfloat32m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 1 > d,
const vuint64m4_t v )

References d, and Lanes().

◆ DemoteTo() [88/146]

template<size_t N>
HWY_API vfloat32m4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 2 > d,
const vint64m8_t v )

References d, and Lanes().

◆ DemoteTo() [89/146]

template<size_t N>
HWY_API vfloat32m4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, 2 > d,
const vuint64m8_t v )

References d, and Lanes().

◆ DemoteTo() [90/146]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, kPow2 > d,
const svint64_t v )

References d.

◆ DemoteTo() [91/146]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float, N, kPow2 > d,
const svuint64_t v )

References d.

◆ DemoteTo() [92/146]

template<size_t N, int kPow2>
HWY_API svfloat16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float16_t, N, kPow2 > d,
const svfloat32_t v )

References d.

◆ DemoteTo() [93/146]

template<size_t N, int kPow2>
HWY_API svfloat16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float16_t, N, kPow2 > d,
const svfloat64_t v )

References d.

◆ DemoteTo() [94/146]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< float32_t, N, kPow2 > d,
const svfloat64_t v )

References d.

◆ DemoteTo() [95/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< hwy::bfloat16_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< hwy::bfloat16_t, N, kPow2 > d,
VFromD< Simd< float, N, kPow2+1 > > v )

◆ DemoteTo() [96/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< int16_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, kPow2 > d,
VFromD< Simd< int64_t, N, kPow2+2 > > v )

References d, and DemoteTo().

◆ DemoteTo() [97/146]

template<size_t N, int kPow2>
HWY_API svint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, kPow2 > dn,
const svint32_t v )

References BitCast().

◆ DemoteTo() [98/146]

template<size_t N, int kPow2>
HWY_API svint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int16_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [99/146]

template<size_t N>
HWY_API vint32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, -1 > d,
const vfloat64m1_t v )

References d, and Lanes().

◆ DemoteTo() [100/146]

template<size_t N>
HWY_API vint32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, -2 > d,
const vfloat64m1_t v )

References d, and Lanes().

◆ DemoteTo() [101/146]

template<size_t N>
HWY_API vint32m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 0 > d,
const vfloat64m2_t v )

References d, and Lanes().

◆ DemoteTo() [102/146]

template<size_t N>
HWY_API vint32m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 1 > d,
const vfloat64m4_t v )

References d, and Lanes().

◆ DemoteTo() [103/146]

template<size_t N>
HWY_API vint32m4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, 2 > d,
const vfloat64m8_t v )

References d, and Lanes().

◆ DemoteTo() [104/146]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, kPow2 > d,
const svfloat64_t v )

References d.

◆ DemoteTo() [105/146]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int32_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [106/146]

template<size_t N>
HWY_API vint8mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -1 > d,
const vint32m2_t v )

References d, and DemoteTo().

◆ DemoteTo() [107/146]

template<size_t N>
HWY_API vint8mf4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -2 > d,
const vint32m1_t v )

References d, and DemoteTo().

◆ DemoteTo() [108/146]

template<size_t N>
HWY_API vint8mf8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, -3 > d,
const vint32mf2_t v )

References d, and DemoteTo().

◆ DemoteTo() [109/146]

template<size_t N>
HWY_API vint8m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 0 > d,
const vint32m4_t v )

References d, and DemoteTo().

◆ DemoteTo() [110/146]

template<size_t N>
HWY_API vint8m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, 1 > d,
const vint32m8_t v )

References d, and DemoteTo().

◆ DemoteTo() [111/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< int8_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 > d,
VFromD< Simd< int64_t, N, kPow2+3 > > v )

References d, and DemoteTo().

◆ DemoteTo() [112/146]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 > dn,
const svint16_t v )

References BitCast().

◆ DemoteTo() [113/146]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 > dn,
const svint32_t v )

References BitCast().

◆ DemoteTo() [114/146]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< int8_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [115/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > d,
VFromD< Simd< int64_t, N, kPow2+2 > > v )

References d, and DemoteTo().

◆ DemoteTo() [116/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint16_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > d,
VFromD< Simd< uint64_t, N, kPow2+2 > > v )

References d, and DemoteTo().

◆ DemoteTo() [117/146]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > dn,
const svint32_t v )

References BitCast().

◆ DemoteTo() [118/146]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [119/146]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > dn,
const svuint32_t v )

References BitCast().

◆ DemoteTo() [120/146]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint16_t, N, kPow2 > dn,
const svuint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [121/146]

template<size_t N>
HWY_API vuint32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, -1 > d,
const vfloat64m1_t v )

References d, and Lanes().

◆ DemoteTo() [122/146]

template<size_t N>
HWY_API vuint32mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, -2 > d,
const vfloat64m1_t v )

References d, and Lanes().

◆ DemoteTo() [123/146]

template<size_t N>
HWY_API vuint32m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, 0 > d,
const vfloat64m2_t v )

References d, and Lanes().

◆ DemoteTo() [124/146]

template<size_t N>
HWY_API vuint32m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, 1 > d,
const vfloat64m4_t v )

References d, and Lanes().

◆ DemoteTo() [125/146]

template<size_t N>
HWY_API vuint32m4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, 2 > d,
const vfloat64m8_t v )

References d, and Lanes().

◆ DemoteTo() [126/146]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, kPow2 > d,
const svfloat64_t v )

References d.

◆ DemoteTo() [127/146]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [128/146]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint32_t, N, kPow2 > dn,
const svuint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [129/146]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -1 > d,
const vint32m2_t v )

◆ DemoteTo() [130/146]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -1 > d,
const vuint32m2_t v )

◆ DemoteTo() [131/146]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -2 > d,
const vint32m1_t v )

◆ DemoteTo() [132/146]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -2 > d,
const vuint32m1_t v )

◆ DemoteTo() [133/146]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -3 > d,
const vint32mf2_t v )

◆ DemoteTo() [134/146]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, -3 > d,
const vuint32mf2_t v )

◆ DemoteTo() [135/146]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 > d,
const vint32m4_t v )

◆ DemoteTo() [136/146]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 0 > d,
const vuint32m4_t v )

◆ DemoteTo() [137/146]

template<size_t N>
HWY_API vuint8m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 1 > d,
const vint32m8_t v )

◆ DemoteTo() [138/146]

template<size_t N>
HWY_API vuint8m2_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, 1 > d,
const vuint32m8_t v )

◆ DemoteTo() [139/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint8_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > d,
VFromD< Simd< int64_t, N, kPow2+3 > > v )

References d, and DemoteTo().

◆ DemoteTo() [140/146]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< uint8_t, N, kPow2 > > hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > d,
VFromD< Simd< uint64_t, N, kPow2+3 > > v )

References d, and DemoteTo().

◆ DemoteTo() [141/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svint16_t v )

References BitCast().

◆ DemoteTo() [142/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svint32_t v )

References BitCast().

◆ DemoteTo() [143/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svint64_t v )

References BitCast(), and TruncateTo().

◆ DemoteTo() [144/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svuint16_t v )

References BitCast().

◆ DemoteTo() [145/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svuint32_t v )

References U8FromU32().

◆ DemoteTo() [146/146]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::DemoteTo ( Simd< uint8_t, N, kPow2 > dn,
const svuint64_t v )

References BitCast(), and TruncateTo().

◆ Div() [1/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API V hwy::HWY_NAMESPACE::Div ( V a,
V b )

◆ Div() [2/2]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Div ( V a,
V b )

◆ Dup128MaskFromMaskBits() [1/3]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Dup128MaskFromMaskBits ( D d,
unsigned mask_bits )

◆ Dup128MaskFromMaskBits() [2/3]

template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Dup128MaskFromMaskBits ( D d,
unsigned mask_bits )

References BitCast(), d, MaxLanes(), Set(), and TestBit().

◆ Dup128MaskFromMaskBits() [3/3]

template<class D , HWY_IF_T_SIZE_D(D, 2) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Dup128MaskFromMaskBits ( D d,
unsigned mask_bits )

References BitCast(), d, MaxLanes(), Set(), and TestBit().

◆ Dup128VecFromValues() [1/20]

template<class D , HWY_IF_BF16_D(D) >
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 )

References BitCast(), d, and Dup128VecFromValues().

◆ Dup128VecFromValues() [2/20]

template<class D , HWY_IF_BF16_D(D) >
HWY_API VBF16 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 )

References BitCast(), d, and Dup128VecFromValues().

◆ Dup128VecFromValues() [3/20]

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 > t8,
TFromD< D > t9,
TFromD< D > t10,
TFromD< D > t11,
TFromD< D > t12,
TFromD< D > t13,
TFromD< D > t14,
TFromD< D > t15 )

◆ Dup128VecFromValues() [4/20]

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 > t4,
TFromD< D > t5,
TFromD< D > t6,
TFromD< D > t7 )

References d, ResizeBitCast(), and Set().

◆ Dup128VecFromValues() [5/20]

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 > t2,
TFromD< D > t3 )

References d, ResizeBitCast(), and Set().

◆ Dup128VecFromValues() [6/20]

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 > t1 )

References d, and Set().

◆ Dup128VecFromValues() [7/20]

template<class D , HWY_IF_I64_D(D) >
HWY_API svint64_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1 )

◆ Dup128VecFromValues() [8/20]

template<class D , HWY_IF_U64_D(D) >
HWY_API svuint64_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1 )

◆ Dup128VecFromValues() [9/20]

template<class D , HWY_IF_F64_D(D) >
HWY_API svfloat64_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1 )

◆ Dup128VecFromValues() [10/20]

template<class D , HWY_IF_T_SIZE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1 )

◆ Dup128VecFromValues() [11/20]

template<class D , HWY_IF_I32_D(D) >
HWY_API svint32_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1,
TFromD< D > t2,
TFromD< D > t3 )

◆ Dup128VecFromValues() [12/20]

template<class D , HWY_IF_U32_D(D) >
HWY_API svuint32_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1,
TFromD< D > t2,
TFromD< D > t3 )

◆ Dup128VecFromValues() [13/20]

template<class D , HWY_IF_F32_D(D) >
HWY_API svfloat32_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( D ,
TFromD< D > t0,
TFromD< D > t1,
TFromD< D > t2,
TFromD< D > t3 )

◆ Dup128VecFromValues() [14/20]

template<class D , HWY_IF_T_SIZE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues ( D d,
TFromD< D > t0,
TFromD< D > t1,
TFromD< D > t2,
TFromD< D > t3 )

◆ Dup128VecFromValues() [15/20]

template<class D , HWY_IF_I16_D(D) >
HWY_API svint16_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( 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 )

◆ Dup128VecFromValues() [16/20]

template<class D , HWY_IF_U16_D(D) >
HWY_API svuint16_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( 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 )

◆ Dup128VecFromValues() [17/20]

template<class D , HWY_IF_F16_D(D) >
HWY_API svfloat16_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( 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 )

◆ Dup128VecFromValues() [18/20]

template<class D , HWY_IF_I8_D(D) >
HWY_API svint8_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( 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 > t8,
TFromD< D > t9,
TFromD< D > t10,
TFromD< D > t11,
TFromD< D > t12,
TFromD< D > t13,
TFromD< D > t14,
TFromD< D > t15 )

◆ Dup128VecFromValues() [19/20]

template<class D , HWY_IF_U8_D(D) >
HWY_API svuint8_t hwy::HWY_NAMESPACE::Dup128VecFromValues ( 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 > t8,
TFromD< D > t9,
TFromD< D > t10,
TFromD< D > t11,
TFromD< D > t12,
TFromD< D > t13,
TFromD< D > t14,
TFromD< D > t15 )

◆ Dup128VecFromValues() [20/20]

template<class D , HWY_IF_T_SIZE_D(D, 1) >
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 > t8,
TFromD< D > t9,
TFromD< D > t10,
TFromD< D > t11,
TFromD< D > t12,
TFromD< D > t13,
TFromD< D > t14,
TFromD< D > t15 )

◆ DupEven() [1/16]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::DupEven ( const V v)

◆ DupEven() [2/16]

template<class V , HWY_IF_T_SIZE_V(V, 2) >
HWY_API V hwy::HWY_NAMESPACE::DupEven ( const V v)

◆ DupEven() [3/16]

template<typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::DupEven ( const Vec64< T > v)

References BitCast(), d, and DupEven().

◆ DupEven() [4/16]

template<typename V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_GT_V(V, 2) >
HWY_API V hwy::HWY_NAMESPACE::DupEven ( V v)

◆ DupEven() [5/16]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::DupEven ( Vec128< float > v)

◆ DupEven() [6/16]

template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::DupEven ( Vec128< T > v)

◆ DupEven() [7/16]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, 1 > v)

◆ DupEven() [8/16]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, 2 > v)

References InterleaveLower().

◆ DupEven() [9/16]

template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, N > v)

◆ DupEven() [10/16]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupEven ( Vec128< T, N > v)

◆ DupEven() [11/16]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::DupEven ( Vec1< T > v)

◆ DupEven() [12/16]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::DupEven ( Vec256< float > v)

◆ DupEven() [13/16]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupEven ( Vec256< T > v)

◆ DupEven() [14/16]

template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupEven ( Vec256< T > v)

◆ DupEven() [15/16]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupEven ( Vec512< float > v)

◆ DupEven() [16/16]

template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupEven ( Vec512< T > v)

◆ DupOdd() [1/12]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::DupOdd ( const V v)

◆ DupOdd() [2/12]

template<typename V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_GT_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::DupOdd ( V v)

◆ DupOdd() [3/12]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< float, N > v)

◆ DupOdd() [4/12]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, 1 > v)

References DupOdd().

◆ DupOdd() [5/12]

template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, N > v)

◆ DupOdd() [6/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, N > v)

◆ DupOdd() [7/12]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_LANES_LE(N, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::DupOdd ( Vec128< T, N > v)

References BitCast(), d, and DupOdd().

◆ DupOdd() [8/12]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::DupOdd ( Vec256< float > v)

◆ DupOdd() [9/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupOdd ( Vec256< T > v)

◆ DupOdd() [10/12]

template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::DupOdd ( Vec256< T > v)

◆ DupOdd() [11/12]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupOdd ( Vec512< float > v)

◆ DupOdd() [12/12]

template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupOdd ( Vec512< T > v)

◆ Eq()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Eq ( V a,
V b ) -> decltype(a == b)

◆ Eq128() [1/8]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Eq128 ( D d,
const svuint64_t a,
const svuint64_t b )

◆ Eq128() [2/8]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Eq128() [3/8]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D d,
V a,
V b )

◆ Eq128() [4/8]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Eq128 ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Eq128() [5/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D d,
VFromD< D > a,
VFromD< D > b )

References And(), d, Eq(), MaskFromVec(), Reverse2(), and VecFromMask().

Referenced by Eq128(), Eq128(), and Eq128().

◆ Eq128() [6/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Eq128() [7/8]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, Eq128(), and MaskFromVec().

◆ Eq128() [8/8]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128 ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ Eq128Upper() [1/7]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Eq128Upper() [2/7]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Eq128Upper ( D d,
svuint64_t a,
svuint64_t b )

References d, and Eq().

◆ Eq128Upper() [3/7]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper ( D d,
V a,
V b )

◆ Eq128Upper() [4/7]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Eq128Upper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Eq128Upper() [5/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Eq128Upper() [6/7]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, Eq128Upper(), and MaskFromVec().

◆ Eq128Upper() [7/7]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ ExclusiveNeither() [1/5]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::ExclusiveNeither ( const Mask128< T, N > a,
Mask128< T, N > b )

◆ ExclusiveNeither() [2/5]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::ExclusiveNeither ( const Mask1< T > a,
Mask1< T > b )

◆ ExclusiveNeither() [3/5]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::ExclusiveNeither ( const Mask256< T > a,
Mask256< T > b )

◆ ExclusiveNeither() [4/5]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::ExclusiveNeither ( Mask512< T > a,
Mask512< T > b )

◆ ExclusiveNeither() [5/5]

HWY_API svbool_t hwy::HWY_NAMESPACE::ExclusiveNeither ( svbool_t a,
svbool_t b )

References HWY_SVE_PTRUE.

◆ Exp()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Exp ( D d,
V x )

Highway SIMD version of std::exp(x).

Valid Lane Types: float32, float64 Max Error: ULP = 1 Valid Range: float32[-FLT_MAX, +104], float64[-DBL_MAX, +706]

Returns
e^x

References Add(), And(), d, Ge(), IfThenElseZero(), MulAdd(), Or(), and Set().

Referenced by CallExp().

◆ Expand() [1/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Expand ( const Vec256< T > v,
const Mask256< T > mask )

◆ Expand() [2/12]

template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::Expand ( V v,
const M mask )

References d, Expand(), RebindMask(), and Zero().

◆ Expand() [3/12]

template<class V , class M , HWY_IF_T_SIZE_V(V, 1) , class D = DFromV<V>, HWY_IF_POW2_LE_D(D, 2) >
HWY_API V hwy::HWY_NAMESPACE::Expand ( V v,
const M mask )

References d, Expand(), RebindMask(), and Zero().

◆ Expand() [4/12]

template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::Expand ( V v,
svbool_t mask )

◆ Expand() [5/12]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Expand ( Vec128< T > v,
Mask128< T > mask )

◆ Expand() [6/12]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Expand ( Vec128< T, 1 > v,
Mask128< T, 1 > mask )

References IfThenElseZero().

◆ Expand() [7/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Expand ( Vec128< T, N > v,
const Mask128< T, N > mask )

◆ Expand() [8/12]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Expand ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ Expand() [9/12]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Expand ( Vec128< T, N > v,
Mask128< T, N > mask )

◆ Expand() [10/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Expand ( Vec1< T > v,
const Mask1< T > mask )

References IfThenElseZero().

◆ Expand() [11/12]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Expand ( Vec256< T > v,
Mask256< T > mask )

◆ Expand() [12/12]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Expand ( Vec512< T > v,
const Mask512< T > mask )

◆ Expm1()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Expm1 ( D d,
V x )

Highway SIMD version of std::expm1(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-FLT_MAX, +104], float64[-DBL_MAX, +706]

Returns
e^x - 1

References Abs(), Add(), And(), d, IfThenElse(), Lt(), MulAdd(), Or(), Set(), and Sub().

Referenced by CallExpm1(), Sinh(), and Tanh().

◆ ExtractBlock() [1/6]

template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_API V hwy::HWY_NAMESPACE::ExtractBlock ( V v)

Referenced by ExtractBlock().

◆ ExtractBlock() [2/6]

template<int kBlockIdx, class V >
HWY_API VFromD< BlockDFromD< DFromV< V > > > hwy::HWY_NAMESPACE::ExtractBlock ( V v)

References d, ExtractBlock(), and ResizeBitCast().

◆ ExtractBlock() [3/6]

template<int kBlockIdx, class T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ExtractBlock ( Vec256< T > v)

◆ ExtractBlock() [4/6]

template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< double > hwy::HWY_NAMESPACE::ExtractBlock ( Vec512< double > v)

◆ ExtractBlock() [5/6]

template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ExtractBlock ( Vec512< float > v)

◆ ExtractBlock() [6/6]

template<int kBlockIdx, class T , hwy::EnableIf<(kBlockIdx<=1)> * = nullptr>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ExtractBlock ( Vec512< T > v)

References BitCast(), and d.

◆ ExtractLane() [1/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 1 > v,
size_t i )

◆ ExtractLane() [2/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 16 > v,
size_t i )

References Store().

◆ ExtractLane() [3/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 2 > v,
size_t i )

References Store().

◆ ExtractLane() [4/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 4 > v,
size_t i )

References Store().

◆ ExtractLane() [5/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec128< T, 8 > v,
size_t i )

References Store().

◆ ExtractLane() [6/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec1< T > v,
size_t i )

◆ ExtractLane() [7/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec256< T > v,
size_t i )

References Store().

◆ ExtractLane() [8/10]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( const Vec512< T > v,
size_t i )

◆ ExtractLane() [9/10]

template<class V >
HWY_API TFromV< V > hwy::HWY_NAMESPACE::ExtractLane ( V v,
size_t i )

References FirstN().

◆ ExtractLane() [10/10]

template<typename T , size_t N>
HWY_API T hwy::HWY_NAMESPACE::ExtractLane ( Vec128< T, N > v,
size_t i )

◆ Fill()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Fill ( D d,
T value,
size_t count,
T *HWY_RESTRICT to )

◆ Find()

template<class D , typename T = TFromD<D>>
size_t hwy::HWY_NAMESPACE::Find ( D d,
T value,
const T *HWY_RESTRICT in,
size_t count )

◆ FindFirstTrue() [1/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( D d,
const Mask256< T > mask )

◆ FindFirstTrue() [2/5]

template<class D >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( D d,
MFromD< D > mask )

◆ FindFirstTrue() [3/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( D d,
MFromD< D > mask )

◆ FindFirstTrue() [4/5]

template<class D >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( D d,
svbool_t m )

◆ FindFirstTrue() [5/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue ( D ,
const Mask1< T > mask )

◆ FindIf()

template<class D , class Func , typename T = TFromD<D>>
size_t hwy::HWY_NAMESPACE::FindIf ( D d,
const T *HWY_RESTRICT in,
size_t count,
const Func & func )

◆ FindKnownFirstTrue() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D d,
const Mask256< T > mask )

◆ FindKnownFirstTrue() [2/6]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D d,
MFromD< D > mask )

◆ FindKnownFirstTrue() [3/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D d,
MFromD< D > mask )

◆ FindKnownFirstTrue() [4/6]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D d,
svbool_t m )

◆ FindKnownFirstTrue() [5/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D ,
const Mask1< T >  )

◆ FindKnownFirstTrue() [6/6]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue ( D ,
MFromD< D > mask )

◆ FindKnownLastTrue() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D d,
const Mask256< T > mask )

◆ FindKnownLastTrue() [2/6]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D d,
MFromD< D > mask )

◆ FindKnownLastTrue() [3/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D d,
MFromD< D > mask )

◆ FindKnownLastTrue() [4/6]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D d,
svbool_t m )

◆ FindKnownLastTrue() [5/6]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D ,
const Mask1< T >  )

◆ FindKnownLastTrue() [6/6]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue ( D ,
MFromD< D > mask )

◆ FindLastTrue() [1/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue ( D d,
const Mask256< T > mask )

◆ FindLastTrue() [2/5]

template<class D >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue ( D d,
MFromD< D > mask )

◆ FindLastTrue() [3/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue ( D d,
MFromD< D > mask )

◆ FindLastTrue() [4/5]

template<class D >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue ( D d,
svbool_t m )

References AllFalse(), d, FindKnownLastTrue(), and m.

◆ FindLastTrue() [5/5]

template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue ( D ,
const Mask1< T > mask )

◆ FirstN() [1/5]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::FirstN ( D d,
size_t num )

◆ FirstN() [2/5]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::FirstN ( D d,
size_t num )

References d, Iota(), RebindMask(), and Set().

◆ FirstN() [3/5]

template<class D , class M = MFromD<D>, HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API M hwy::HWY_NAMESPACE::FirstN ( D d,
size_t num )

◆ FirstN() [4/5]

template<class D , HWY_SVE_IF_EMULATED_D(D) >
svbool_t hwy::HWY_NAMESPACE::FirstN ( D ,
size_t count )

References FirstN().

◆ FirstN() [5/5]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Mask1< T > hwy::HWY_NAMESPACE::FirstN ( D ,
size_t n )

◆ Floor() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Floor ( const V v)

References Floor(), and Round().

◆ Floor() [2/13]

template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
V hwy::HWY_NAMESPACE::Floor ( const V v)

References hwy::CopySameSize().

◆ Floor() [3/13]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Floor ( const Vec128< double, N > v)

◆ Floor() [4/13]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Floor ( const Vec128< float, N > v)

◆ Floor() [5/13]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Floor ( const Vec128< T, N > v)

◆ Floor() [6/13]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Floor ( const Vec1< double > v)

◆ Floor() [7/13]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Floor ( const Vec1< float > v)

◆ Floor() [8/13]

template<typename Float , size_t N>
Vec128< Float, N > hwy::HWY_NAMESPACE::Floor ( Vec128< Float, N > v)

◆ Floor() [9/13]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Floor ( Vec128< T, N > v)

◆ Floor() [10/13]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Floor ( Vec256< double > v)

◆ Floor() [11/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Floor ( Vec256< float > v)

◆ Floor() [12/13]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Floor ( Vec512< double > v)

◆ Floor() [13/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Floor ( Vec512< float > v)

◆ ForAllTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForAllTypes ( const Func & func)

◆ ForAllTypesAndSpecial()

template<class Func >
void hwy::HWY_NAMESPACE::ForAllTypesAndSpecial ( const Func & func)

References ForAllTypes(), and ForSpecialTypes().

◆ Foreach()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Foreach ( D d,
const T *HWY_RESTRICT in,
const size_t count,
const Vec< D > no,
const Func & func )

◆ ForFloat16Types()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloat16Types ( const Func & func)

Referenced by ForFloatTypes(), and ForUIF16().

◆ ForFloat16TypesDynamic()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloat16TypesDynamic ( const Func & func)

References hwy::HaveFloat16().

Referenced by ForFloatTypesDynamic().

◆ ForFloat3264Types()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloat3264Types ( const Func & func)

References ForFloat64Types().

Referenced by ForFloatTypes().

◆ ForFloat64Types()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloat64Types ( const Func & func)

Referenced by ForFloat3264Types(), and ForUIF64().

◆ ForFloat64TypesDynamic()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloat64TypesDynamic ( const Func & func)

References hwy::HaveFloat64().

Referenced by ForFloatTypesDynamic().

◆ ForFloatTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloatTypes ( const Func & func)

References ForFloat16Types(), and ForFloat3264Types().

Referenced by ForAllTypes().

◆ ForFloatTypesDynamic()

template<class Func >
void hwy::HWY_NAMESPACE::ForFloatTypesDynamic ( const Func & func)

◆ ForI816()

template<class Func >
void hwy::HWY_NAMESPACE::ForI816 ( const Func & func)

◆ ForIntegerTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForIntegerTypes ( const Func & func)

References ForSignedTypes(), and ForUnsignedTypes().

Referenced by ForAllTypes().

◆ ForSignedTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForSignedTypes ( const Func & func)

Referenced by ForIntegerTypes().

◆ ForSpecialTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForSpecialTypes ( const Func & func)

Referenced by ForAllTypesAndSpecial().

◆ ForU163264()

template<class Func >
void hwy::HWY_NAMESPACE::ForU163264 ( const Func & func)

◆ ForU816()

template<class Func >
void hwy::HWY_NAMESPACE::ForU816 ( const Func & func)

◆ ForUI16()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI16 ( const Func & func)

Referenced by ForUI163264(), and ForUIF16().

◆ ForUI163264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI163264 ( const Func & func)

References ForUI16(), and ForUI3264().

◆ ForUI32()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI32 ( const Func & func)

Referenced by ForUI3264(), and ForUIF32().

◆ ForUI3264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI3264 ( const Func & func)

References ForUI32(), and ForUI64().

Referenced by ForUI163264().

◆ ForUI64()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI64 ( const Func & func)

Referenced by ForUI3264(), and ForUIF64().

◆ ForUI8()

template<class Func >
void hwy::HWY_NAMESPACE::ForUI8 ( const Func & func)

◆ ForUIF16()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF16 ( const Func & func)

References ForFloat16Types(), and ForUI16().

Referenced by ForUIF163264().

◆ ForUIF163264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF163264 ( const Func & func)

References ForUIF16(), and ForUIF3264().

◆ ForUIF32()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF32 ( const Func & func)

References ForUI32().

Referenced by ForUIF3264().

◆ ForUIF3264()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF3264 ( const Func & func)

References ForUIF32(), and ForUIF64().

Referenced by ForUIF163264().

◆ ForUIF64()

template<class Func >
void hwy::HWY_NAMESPACE::ForUIF64 ( const Func & func)

References ForFloat64Types(), and ForUI64().

Referenced by ForUIF3264().

◆ ForUnsignedTypes()

template<class Func >
void hwy::HWY_NAMESPACE::ForUnsignedTypes ( const Func & func)

Referenced by ForIntegerTypes().

◆ GatherIndex() [1/5]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherIndex ( D d,
const T *HWY_RESTRICT base,
Vec1< MakeSigned< T > > index )

References d, HWY_DASSERT, and Load().

◆ GatherIndex() [2/5]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex ( D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ GatherIndex() [3/5]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex ( D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ GatherIndex() [4/5]

template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex ( D d,
const TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ GatherIndex() [5/5]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex ( D d,
const TFromD< D > *HWY_RESTRICT p,
VFromD< RebindToSigned< D > > indices )

◆ GatherIndexN()

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndexN ( D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index,
const size_t max_lanes_to_load )

References d, FirstN(), and MaskedGatherIndex().

◆ GatherOffset() [1/3]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherOffset ( D d,
const T * base,
Vec1< MakeSigned< T > > offset )

References d, HWY_DASSERT, and Load().

◆ GatherOffset() [2/3]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherOffset ( D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > offset )

References d, HWY_ALIGN, HWY_DASSERT, Load(), MaxLanes(), and Store().

Referenced by GatherOffset().

◆ GatherOffset() [3/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherOffset ( D d,
const TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > offsets )

◆ Ge() [1/2]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::Ge ( const V a,
const V b )

◆ Ge() [2/2]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ge ( V a,
V b ) -> decltype(a == b)

◆ Generate()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Generate ( D d,
T *HWY_RESTRICT out,
size_t count,
const Func & func )

◆ GenerateInput()

template<typename T >
InputStats< T > hwy::HWY_NAMESPACE::GenerateInput ( const Dist dist,
T * v,
size_t num )

◆ GetLane() [1/8]

template<class V >
HWY_API TFromV< V > hwy::HWY_NAMESPACE::GetLane ( const V v)

◆ GetLane() [2/8]

template<size_t N>
HWY_API double hwy::HWY_NAMESPACE::GetLane ( const Vec128< double, N > v)

◆ GetLane() [3/8]

template<size_t N>
HWY_API float hwy::HWY_NAMESPACE::GetLane ( const Vec128< float, N > v)

◆ GetLane() [4/8]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec128< T, N > v)

◆ GetLane() [5/8]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec1< T > v)

◆ GetLane() [6/8]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec256< T > v)

References GetLane(), and LowerHalf().

◆ GetLane() [7/8]

template<typename T >
HWY_API T hwy::HWY_NAMESPACE::GetLane ( const Vec512< T > v)

References GetLane(), and LowerHalf().

◆ GetLane() [8/8]

template<typename T , size_t N>
HWY_API T hwy::HWY_NAMESPACE::GetLane ( Vec128< T, N > v)

◆ Gt() [1/2]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::Gt ( const V a,
const V b )

◆ Gt() [2/2]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Gt ( V a,
V b ) -> decltype(a == b)

◆ HighestSetBitIndex() [1/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::HighestSetBitIndex ( V v)

References BitCast(), d, LeadingZeroCount(), and Set().

◆ HighestSetBitIndex() [2/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API V hwy::HWY_NAMESPACE::HighestSetBitIndex ( V v)

◆ HWY_SVE_FOREACH_UIF3264() [1/2]

hwy::HWY_NAMESPACE::HWY_SVE_FOREACH_UIF3264 ( HWY_SVE_MASKED_GATHER_INDEX ,
MaskedGatherIndex ,
ld1_gather  )

◆ HWY_SVE_FOREACH_UIF3264() [2/2]

hwy::HWY_NAMESPACE::HWY_SVE_FOREACH_UIF3264 ( HWY_SVE_MASKED_SCATTER_INDEX ,
MaskedScatterIndex ,
st1_scatter  )

◆ IfNegativeThenElse() [1/9]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( const Vec128< int8_t, N > v,
const Vec128< int8_t, N > yes,
const Vec128< int8_t, N > no )

◆ IfNegativeThenElse() [2/9]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfNegativeThenElse ( V v,
V yes,
V no )

References IfThenElse(), and IsNegative().

◆ IfNegativeThenElse() [3/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec128< T, N > v,
Vec128< T, N > yes,
Vec128< T, N > no )

◆ IfNegativeThenElse() [4/9]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec128< T, N > v,
Vec128< T, N > yes,
Vec128< T, N > no )

◆ IfNegativeThenElse() [5/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec1< T > v,
Vec1< T > yes,
Vec1< T > no )

References BitCast(), and d.

◆ IfNegativeThenElse() [6/9]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec256< int8_t > v,
Vec256< int8_t > yes,
Vec256< int8_t > no )

References IfThenElse(), and MaskFromVec().

◆ IfNegativeThenElse() [7/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec256< T > v,
Vec256< T > yes,
Vec256< T > no )

◆ IfNegativeThenElse() [8/9]

template<typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec256< T > v,
Vec256< T > yes,
Vec256< T > no )

◆ IfNegativeThenElse() [9/9]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenElse ( Vec512< T > v,
Vec512< T > yes,
Vec512< T > no )

References IfThenElse(), and MaskFromVec().

◆ IfNegativeThenElseZero()

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::IfNegativeThenElseZero ( V v,
V yes )

References IfThenElseZero(), and IsNegative().

◆ IfNegativeThenNegOrUndefIfZero() [1/8]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( V mask,
V v )

◆ IfNegativeThenNegOrUndefIfZero() [2/8]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec128< int16_t, N > mask,
Vec128< int16_t, N > v )

◆ IfNegativeThenNegOrUndefIfZero() [3/8]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec128< int32_t, N > mask,
Vec128< int32_t, N > v )

◆ IfNegativeThenNegOrUndefIfZero() [4/8]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec128< int8_t, N > mask,
Vec128< int8_t, N > v )

◆ IfNegativeThenNegOrUndefIfZero() [5/8]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec256< int16_t > mask,
Vec256< int16_t > v )

◆ IfNegativeThenNegOrUndefIfZero() [6/8]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec256< int32_t > mask,
Vec256< int32_t > v )

◆ IfNegativeThenNegOrUndefIfZero() [7/8]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec256< int8_t > mask,
Vec256< int8_t > v )

◆ IfNegativeThenNegOrUndefIfZero() [8/8]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) , HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero ( Vec512< T > mask,
Vec512< T > v )

References d, MaskedSubOr(), MaskFromVec(), and Zero().

◆ IfNegativeThenZeroElse()

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::IfNegativeThenZeroElse ( V v,
V no )

References IfThenZeroElse(), and IsNegative().

Referenced by ZeroIfNegative().

◆ IfThenElse() [1/15]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElse ( const Mask1< T > mask,
const Vec1< T > yes,
const Vec1< T > no )

◆ IfThenElse() [2/15]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElse ( const Mask512< T > mask,
const Vec512< T > yes,
const Vec512< T > no )

◆ IfThenElse() [3/15]

template<class V , class D = DFromV<V>, HWY_SVE_IF_EMULATED_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenElse ( const svbool_t mask,
V yes,
V no )

References BitCast(), IfThenElse(), and RebindMask().

◆ IfThenElse() [4/15]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< double, N > mask,
Vec128< double, N > yes,
Vec128< double, N > no )

◆ IfThenElse() [5/15]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< float, N > mask,
Vec128< float, N > yes,
Vec128< float, N > no )

◆ IfThenElse() [6/15]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< T, N > mask,
Vec128< T, N > yes,
Vec128< T, N > no )

References d, IfVecThenElse(), and VecFromMask().

◆ IfThenElse() [7/15]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElse ( Mask128< T, N > mask,
Vec128< T, N > yes,
Vec128< T, N > no )

◆ IfThenElse() [8/15]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< double > mask,
Vec256< double > yes,
Vec256< double > no )

◆ IfThenElse() [9/15]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< float > mask,
Vec256< float > yes,
Vec256< float > no )

◆ IfThenElse() [10/15]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< T > mask,
Vec256< T > yes,
Vec256< T > no )

◆ IfThenElse() [11/15]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElse ( Mask256< T > mask,
Vec256< T > yes,
Vec256< T > no )

◆ IfThenElse() [12/15]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElse ( Mask512< double > mask,
Vec512< double > yes,
Vec512< double > no )

◆ IfThenElse() [13/15]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElse ( Mask512< float > mask,
Vec512< float > yes,
Vec512< float > no )

◆ IfThenElse() [14/15]

template<class V , class D = DFromV<V>, HWY_X86_IF_EMULATED_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenElse ( MFromD< D > mask,
V yes,
V no )

References BitCast(), IfThenElse(), and RebindMask().

◆ IfThenElse() [15/15]

template<class V , HWY_NEON_IF_EMULATED_IF_THEN_ELSE(V) >
HWY_API V hwy::HWY_NAMESPACE::IfThenElse ( MFromD< DFromV< V > > mask,
V yes,
V no )

References BitCast(), d, IfThenElse(), and RebindMask().

Referenced by Abs(), Abs(), Acos(), Acosh(), Asin(), Asinh(), Atan(), Atan2(), BlendedStore(), BlendedStore(), Ceil(), Ceil(), CombineShiftRightBytes(), CombineShiftRightLanes(), ConcatUpperLower(), ConcatUpperLower(), ConcatUpperUpper(), ConvertTo(), Expm1(), Floor(), Floor(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfThenElse(), IfThenElse(), IfThenElse(), IfThenElse(), IfThenElseZero(), IfThenElseZero(), IfThenZeroElse(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), InsertBlock(), InsertLane(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLaneUsingBroadcastAndBlend(), LeadingZeroCount(), LoadNOr(), hwy::HWY_NAMESPACE::impl::Log(), Log1p(), Lt128(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), MaskedAddOr(), MaskedDivOr(), MaskedDivOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedMaxOr(), MaskedMinOr(), MaskedModOr(), MaskedModOr(), MaskedMulOr(), MaskedSatAddOr(), MaskedSatSubOr(), MaskedSubOr(), Max(), Max(), Max(), Max(), Max128(), Max128(), Max128Upper(), Max128Upper(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), Min(), Min(), Min(), Min128(), Min128(), Min128Upper(), Min128Upper(), hwy::HWY_NAMESPACE::detail::MinU(), OddEven(), OddEven(), OddEven(), OddEven(), OddEvenBlocks(), operator<<(), operator>>(), operator>>(), operator>>(), PromoteTo(), Replace(), ReplaceIf(), Round(), Round(), SaturatedAbs(), SaturatedAbs(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), ShiftLeftLanes(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), Tanh(), Trunc(), Trunc(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), and TwoTablesLookupLanes().

◆ IfThenElseZero() [1/15]

template<class M , class V >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( const M mask,
const V yes )

References IfThenElse(), and Zero().

◆ IfThenElseZero() [2/15]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask1< T > mask,
const Vec1< T > yes )

◆ IfThenElseZero() [3/15]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElseZero ( const Mask512< T > mask,
const Vec512< T > yes )

◆ IfThenElseZero() [4/15]

template<class V , class D = DFromV<V>, HWY_SVE_IF_NOT_EMULATED_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( const svbool_t mask,
const V yes )

References IfThenElse(), and Zero().

◆ IfThenElseZero() [5/15]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< double, N > mask,
Vec128< double, N > yes )

◆ IfThenElseZero() [6/15]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< float, N > mask,
Vec128< float, N > yes )

◆ IfThenElseZero() [7/15]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< T, N > mask,
Vec128< T, N > yes )

◆ IfThenElseZero() [8/15]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask128< T, N > mask,
Vec128< T, N > yes )

References d, IfVecThenElse(), VecFromMask(), and Zero().

◆ IfThenElseZero() [9/15]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< double > mask,
Vec256< double > yes )

◆ IfThenElseZero() [10/15]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< float > mask,
Vec256< float > yes )

◆ IfThenElseZero() [11/15]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< T > mask,
Vec256< T > yes )

References VecFromMask().

◆ IfThenElseZero() [12/15]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask256< T > mask,
Vec256< T > yes )

◆ IfThenElseZero() [13/15]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask512< double > mask,
Vec512< double > yes )

◆ IfThenElseZero() [14/15]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElseZero ( Mask512< float > mask,
Vec512< float > yes )

◆ IfThenElseZero() [15/15]

template<class V , class D = DFromV<V>, HWY_IF_SPECIAL_FLOAT_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenElseZero ( MFromD< D > mask,
V yes )

◆ IfThenZeroElse() [1/14]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask1< T > mask,
const Vec1< T > no )

◆ IfThenZeroElse() [2/14]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( const Mask512< T > mask,
const Vec512< T > no )

◆ IfThenZeroElse() [3/14]

template<class V , class D = DFromV<V>, HWY_SVE_IF_NOT_EMULATED_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenZeroElse ( const svbool_t mask,
const V no )

References IfThenElse(), and Zero().

◆ IfThenZeroElse() [4/14]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< double, N > mask,
Vec128< double, N > no )

◆ IfThenZeroElse() [5/14]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< float, N > mask,
Vec128< float, N > no )

◆ IfThenZeroElse() [6/14]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< T, N > mask,
Vec128< T, N > no )

◆ IfThenZeroElse() [7/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask128< T, N > mask,
Vec128< T, N > no )

References d, IfVecThenElse(), VecFromMask(), and Zero().

◆ IfThenZeroElse() [8/14]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< double > mask,
Vec256< double > no )

◆ IfThenZeroElse() [9/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< float > mask,
Vec256< float > no )

◆ IfThenZeroElse() [10/14]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< T > mask,
Vec256< T > no )

References AndNot(), and VecFromMask().

◆ IfThenZeroElse() [11/14]

template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask256< T > mask,
Vec256< T > no )

◆ IfThenZeroElse() [12/14]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask512< double > mask,
Vec512< double > no )

◆ IfThenZeroElse() [13/14]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenZeroElse ( Mask512< float > mask,
Vec512< float > no )

◆ IfThenZeroElse() [14/14]

template<class V , class D = DFromV<V>, HWY_IF_SPECIAL_FLOAT_D(D) >
HWY_API V hwy::HWY_NAMESPACE::IfThenZeroElse ( MFromD< D > mask,
V no )

◆ IfVecThenElse() [1/6]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::IfVecThenElse ( const V mask,
const V yes,
const V no )

References BitCast(), d, and IfVecThenElse().

◆ IfVecThenElse() [2/6]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::IfVecThenElse ( const V mask,
const V yes,
const V no )

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [3/6]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec128< T, N > mask,
Vec128< T, N > yes,
Vec128< T, N > no )

◆ IfVecThenElse() [4/6]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec1< T > mask,
Vec1< T > yes,
Vec1< T > no )

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [5/6]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec256< T > mask,
Vec256< T > yes,
Vec256< T > no )

References IfThenElse(), and MaskFromVec().

◆ IfVecThenElse() [6/6]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfVecThenElse ( Vec512< T > mask,
Vec512< T > yes,
Vec512< T > no )

References BitCast(), d, IfThenElse(), and MaskFromVec().

◆ IndicesFromVec() [1/9]

template<class D , typename T = TFromD<D>, typename TI , size_t kN, HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE(T, 1) >
HWY_API Indices128< T, kN > hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
Vec128< TI, kN > vec )

◆ IndicesFromVec() [2/9]

template<class D , typename TI , HWY_IF_T_SIZE_D(D, 1) >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
Vec128< TI, MaxLanes(D())> vec )

◆ IndicesFromVec() [3/9]

template<class D , typename TI , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
Vec128< TI, MaxLanes(D())> vec )

◆ IndicesFromVec() [4/9]

template<class D , typename TI , size_t N>
HWY_API Indices128< TFromD< D >, N > hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
Vec128< TI, N > vec )

◆ IndicesFromVec() [5/9]

template<class D , class VI >
HWY_API VFromD< RebindToUnsigned< D > > hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
VI vec )

◆ IndicesFromVec() [6/9]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::IndicesFromVec ( D ,
Vec1< TI > vec )

◆ IndicesFromVec() [7/9]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices256< T > hwy::HWY_NAMESPACE::IndicesFromVec ( D ,
Vec256< TI > vec )

◆ IndicesFromVec() [8/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) , typename TI >
HWY_API Indices256< TFromD< D > > hwy::HWY_NAMESPACE::IndicesFromVec ( D d,
Vec256< TI > vec )

◆ IndicesFromVec() [9/9]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::IndicesFromVec ( D ,
Vec512< TI > vec )

◆ Inf()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::Inf ( D d)

◆ InsertBlock() [1/4]

template<int kBlockIdx, class V >
HWY_API V hwy::HWY_NAMESPACE::InsertBlock ( V v,
VFromD< BlockDFromD< DFromV< V > > > blk_to_insert )

◆ InsertBlock() [2/4]

template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_API V hwy::HWY_NAMESPACE::InsertBlock ( V ,
V blk_to_insert )

Referenced by InsertBlock().

◆ InsertBlock() [3/4]

template<int kBlockIdx, class T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InsertBlock ( Vec256< T > v,
Vec128< T > blk_to_insert )

◆ InsertBlock() [4/4]

template<int kBlockIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertBlock ( Vec512< T > v,
Vec128< T > blk_to_insert )

◆ InsertLane() [1/11]

template<class V , typename T , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::InsertLane ( const V v,
size_t i,
T t )

◆ InsertLane() [2/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::InsertLane ( const V v,
size_t i,
TFromV< V > t )

References d, IfThenElse(), Iota(), RebindMask(), and Set().

◆ InsertLane() [3/11]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 1 > v,
size_t i,
T t )

References HWY_DASSERT, and Set().

◆ InsertLane() [4/11]

template<typename T >
HWY_API Vec128< T, 16 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 16 > v,
size_t i,
T t )

References d, Load(), and Store().

◆ InsertLane() [5/11]

template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 2 > v,
size_t i,
T t )

References d, Load(), and Store().

◆ InsertLane() [6/11]

template<typename T >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 4 > v,
size_t i,
T t )

References d, Load(), and Store().

◆ InsertLane() [7/11]

template<typename T >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::InsertLane ( const Vec128< T, 8 > v,
size_t i,
T t )

References d, Load(), and Store().

◆ InsertLane() [8/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InsertLane ( const Vec256< T > v,
size_t i,
T t )

References d, Load(), and Store().

◆ InsertLane() [9/11]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertLane ( const Vec512< T > v,
size_t i,
T t )

◆ InsertLane() [10/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InsertLane ( Vec128< T, N > v,
size_t i,
T t )

◆ InsertLane() [11/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::InsertLane ( Vec1< T > v,
size_t i,
T t )

◆ InterleaveEven() [1/3]

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 d,
VFromD< D > a,
VFromD< D > b )

References InterleaveLower().

Referenced by MulHigh().

◆ InterleaveEven() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveEven ( D ,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveEven() [3/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveEven ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveLower() [1/26]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( const V a,
const V b )

References InterleaveLower().

◆ InterleaveLower() [2/26]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( D d,
const V a,
const V b )

References BitCast(), and d.

◆ InterleaveLower() [3/26]

template<class D , class V , HWY_RVV_IF_GE128_D(D) >
HWY_API V hwy::HWY_NAMESPACE::InterleaveLower ( D d,
const V a,
const V b )

References d, and InterleaveLower().

◆ InterleaveLower() [4/26]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveLower ( D ,
VFromD< D > a,
VFromD< D > b )

References InterleaveLower().

◆ InterleaveLower() [5/26]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< double, N > a,
Vec128< double, N > b )

◆ InterleaveLower() [6/26]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< float, N > a,
Vec128< float, N > b )

◆ InterleaveLower() [7/26]

template<size_t N, HWY_IF_V_SIZE_GT(float16_t, N, 4) >
HWY_API Vec128< float16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< float16_t, N > a,
Vec128< float16_t, N > b )

References BitCast(), d, and InterleaveLower().

◆ InterleaveLower() [8/26]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ InterleaveLower() [9/26]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ InterleaveLower() [10/26]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ InterleaveLower() [11/26]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

◆ InterleaveLower() [12/26]

template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< T > a,
Vec128< T > b )

◆ InterleaveLower() [13/26]

template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< T, N > a,
Vec128< T, N > b )

◆ InterleaveLower() [14/26]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< T, N > a,
Vec128< T, N > b )

◆ InterleaveLower() [15/26]

template<class T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), d, and InterleaveLower().

◆ InterleaveLower() [16/26]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ InterleaveLower() [17/26]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

◆ InterleaveLower() [18/26]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ InterleaveLower() [19/26]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::InterleaveLower ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ InterleaveLower() [20/26]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< double > a,
Vec256< double > b )

◆ InterleaveLower() [21/26]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< float > a,
Vec256< float > b )

◆ InterleaveLower() [22/26]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< T > a,
Vec256< T > b )

◆ InterleaveLower() [23/26]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InterleaveLower ( Vec256< T > a,
Vec256< T > b )

◆ InterleaveLower() [24/26]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::InterleaveLower ( Vec512< double > a,
Vec512< double > b )

◆ InterleaveLower() [25/26]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::InterleaveLower ( Vec512< float > a,
Vec512< float > b )

◆ InterleaveLower() [26/26]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InterleaveLower ( Vec512< T > a,
Vec512< T > b )

◆ InterleaveOdd() [1/3]

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 d,
VFromD< D > a,
VFromD< D > b )

References d, and InterleaveUpper().

Referenced by MulHigh().

◆ InterleaveOdd() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveOdd ( D ,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveOdd() [3/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveOdd ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveUpper() [1/6]

template<class D , class V = VFromD<D>, hwy::EnableIf< detail::IsFull(D())> * = nullptr>
HWY_API V hwy::HWY_NAMESPACE::InterleaveUpper ( D d,
const V a,
const V b )

References BitCast(), and d.

◆ InterleaveUpper() [2/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::InterleaveUpper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ InterleaveUpper() [3/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveUpper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, and MaxLanes().

◆ InterleaveUpper() [4/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::InterleaveUpper ( D ,
Vec128< T > a,
Vec128< T > b )

◆ InterleaveUpper() [5/6]

template<class D , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveUpper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveUpper() [6/6]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveUpper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveWholeLower() [1/3]

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 )

◆ InterleaveWholeLower() [2/3]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeLower ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveWholeLower() [3/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeLower ( D ,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveWholeUpper() [1/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeUpper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ InterleaveWholeUpper() [2/3]

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 )

◆ InterleaveWholeUpper() [3/3]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeUpper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Iota() [1/3]

template<class D , typename T2 , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Iota ( const D d,
T2 first )

◆ Iota() [2/3]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Iota ( const D ,
const T2 first )

◆ Iota() [3/3]

template<class D , typename T2 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Iota ( D d,
const T2 first )

◆ IotaForSpecial() [1/3]

template<class D , typename First , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
VFromD< D > hwy::HWY_NAMESPACE::IotaForSpecial ( D d,
First first )

References d, and Iota().

◆ IotaForSpecial() [2/3]

template<class D , typename First , HWY_IF_F16_D(D) , HWY_IF_LANES_GT_D(D, 1) , HWY_IF_POW2_GT_D(D, -1) >
VFromD< D > hwy::HWY_NAMESPACE::IotaForSpecial ( D d,
First first )

References Combine(), d, DemoteTo(), Iota(), and Lanes().

◆ IotaForSpecial() [3/3]

template<class D , typename First , HWY_IF_SPECIAL_FLOAT_D(D) , HWY_IF_LANES_D(D, 1) >
VFromD< D > hwy::HWY_NAMESPACE::IotaForSpecial ( D d,
First first )

References d, DemoteTo(), and Set().

◆ IsAligned()

template<class D , typename T >
HWY_API bool hwy::HWY_NAMESPACE::IsAligned ( D d,
T * ptr )

References d, and Lanes().

◆ IsEitherNaN() [1/7]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::IsEitherNaN ( V a,
V b )

References IsNaN(), and Or().

Referenced by IsEitherNaN(), and IsEitherNaN().

◆ IsEitherNaN() [2/7]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec128< double, N > a,
Vec128< double, N > b )

◆ IsEitherNaN() [3/7]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec128< float, N > a,
Vec128< float, N > b )

◆ IsEitherNaN() [4/7]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec256< double > a,
Vec256< double > b )

◆ IsEitherNaN() [5/7]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec256< float > a,
Vec256< float > b )

◆ IsEitherNaN() [6/7]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec512< double > a,
Vec512< double > b )

◆ IsEitherNaN() [7/7]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsEitherNaN ( Vec512< float > a,
Vec512< float > b )

◆ IsFinite() [1/13]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsFinite ( const V v)

◆ IsFinite() [2/13]

template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsFinite ( const V v)

◆ IsFinite() [3/13]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< double, N > v)

◆ IsFinite() [4/13]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< float, N > v)

◆ IsFinite() [5/13]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsFinite ( const Vec128< T, N > v)

◆ IsFinite() [6/13]

HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsFinite ( const Vec1< double > v)

◆ IsFinite() [7/13]

HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsFinite ( const Vec1< float > v)

◆ IsFinite() [8/13]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsFinite ( const Vec256< T > v)

◆ IsFinite() [9/13]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsFinite ( Vec128< T, N > v)

References Add(), BitCast(), d, Lt(), RebindMask(), and Set().

◆ IsFinite() [10/13]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsFinite ( Vec256< double > v)

◆ IsFinite() [11/13]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsFinite ( Vec256< float > v)

◆ IsFinite() [12/13]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsFinite ( Vec512< double > v)

◆ IsFinite() [13/13]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsFinite ( Vec512< float > v)

◆ IsInf() [1/13]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsInf ( const V v)

References Add(), BitCast(), d, Eq(), RebindMask(), and Set().

Referenced by Atan2(), DemoteTo(), IsInf(), and IsInf().

◆ IsInf() [2/13]

template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsInf ( const V v)

References Add(), BitCast(), d, Eq(), RebindMask(), and Set().

◆ IsInf() [3/13]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< double, N > v)

◆ IsInf() [4/13]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< float, N > v)

◆ IsInf() [5/13]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsInf ( const Vec128< T, N > v)

References Add(), BitCast(), d, Eq(), RebindMask(), and Set().

◆ IsInf() [6/13]

HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsInf ( const Vec1< double > v)

References BitCast(), d, RebindMask(), and Set().

◆ IsInf() [7/13]

HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsInf ( const Vec1< float > v)

References BitCast(), d, RebindMask(), and Set().

◆ IsInf() [8/13]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsInf ( const Vec256< T > v)

References Add(), BitCast(), d, Eq(), RebindMask(), and Set().

◆ IsInf() [9/13]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsInf ( Vec128< T, N > v)

References Add(), BitCast(), d, Eq(), RebindMask(), and Set().

◆ IsInf() [10/13]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsInf ( Vec256< double > v)

◆ IsInf() [11/13]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsInf ( Vec256< float > v)

◆ IsInf() [12/13]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsInf ( Vec512< double > v)

◆ IsInf() [13/13]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsInf ( Vec512< float > v)

◆ IsNaN() [1/11]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsNaN ( const V v)

References Ne().

◆ IsNaN() [2/11]

template<class V >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::IsNaN ( const V v)

References IsNaN(), and Ne().

◆ IsNaN() [3/11]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< double, N > v)

◆ IsNaN() [4/11]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< float, N > v)

◆ IsNaN() [5/11]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::IsNaN ( const Vec128< T, N > v)

◆ IsNaN() [6/11]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::IsNaN ( const Vec1< T > v)

◆ IsNaN() [7/11]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::IsNaN ( const Vec256< T > v)

◆ IsNaN() [8/11]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::IsNaN ( Vec256< double > v)

◆ IsNaN() [9/11]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::IsNaN ( Vec256< float > v)

◆ IsNaN() [10/11]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsNaN ( Vec512< double > v)

◆ IsNaN() [11/11]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsNaN ( Vec512< float > v)

◆ IsNegative() [1/3]

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API svbool_t hwy::HWY_NAMESPACE::IsNegative ( V v)

◆ IsNegative() [2/3]

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API Mask< DFromV< V > > hwy::HWY_NAMESPACE::IsNegative ( V v)

◆ IsNegative() [3/3]

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::IsNegative ( V v)

References BitCast(), and d.

◆ Lanes() [1/2]

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API size_t hwy::HWY_NAMESPACE::Lanes ( D )

References Lanes().

Referenced by hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::ActualLanes(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::ActualLanes(), AllTrue(), AssertMaskEqual(), AssertVecEqual(), AssertVecEqual(), Blocks(), Combine(), CompressBitsStore(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatLowerUpper(), ConcatOdd(), ConcatUpperLower(), Copy(), CopyIf(), hwy::HWY_NAMESPACE::detail::CountAndReplaceNaN(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), hwy::HWY_NAMESPACE::detail::ForeachCappedR< T, kMul, kMinArg, Test, kPow2 >::Do(), hwy::HWY_NAMESPACE::detail::EmuCompress(), Expand(), hwy::HWY_NAMESPACE::detail::ExpandLoop(), ExtractLane(), Fill(), Find(), FindIf(), Foreach(), Generate(), GenerateInput(), hwy::HWY_NAMESPACE::Xorshift128Plus::GenerateSeeds(), grk::HWY_NAMESPACE::hwy_decompress_v_final_memcpy_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_even_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_odd_mcols_53(), grk::HWY_NAMESPACE::hwy_num_lanes(), IndicesFromVec(), IndicesFromVec(), InterleaveWholeUpper(), IotaForSpecial(), IsAligned(), Lanes(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), LoadInterleaved2(), LoadN(), LoadNOr(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::MakeMask(), MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::detail::MaskLowerHalf(), MaskTrue(), MatVecAddImpl(), skeleton::HWY_NAMESPACE::MulAddLoop(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::VectorXoshiro::operator()(), hwy::HWY_NAMESPACE::VectorXoshiro::operator()(), hwy::HWY_NAMESPACE::ForMaxPow2< Test >::operator()(), hwy::HWY_NAMESPACE::ForExtendableVectors< Test, kPow2 >::operator()(), hwy::HWY_NAMESPACE::ForPromoteVectors< Test, kPow2 >::operator()(), hwy::HWY_NAMESPACE::ForDemoteVectors< Test, kPow2 >::operator()(), OrderedDemote2To(), OrderedTruncate2To(), hwy::HWY_NAMESPACE::Pack16< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 8 >::Pack(), PartialSort(), Print(), ReorderDemote2To(), Replace(), ReplaceIf(), Reverse(), Reverse(), Select(), SlideDownLanes(), Sort(), Store(), StoreMaskBits(), StoreN(), StoreN(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), TableLookupBytes(), Transform(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::transform(), grk::HWY_NAMESPACE::DecompressDcShiftRev::transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::DecompressIrrev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), Transform1(), Transform2(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TwoTablesLookupLanes(), U8FromU32(), U8FromU32(), U8FromU32(), U8FromU32(), U8FromU32(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 8 >::Unpack(), UpperHalf(), UpperHalf(), and hwy::HWY_NAMESPACE::VectorXoshiro::VectorXoshiro().

◆ Lanes() [2/2]

template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::Lanes ( D )
constexpr

References HWY_MAX_LANES_D.

◆ Le()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Le ( V a,
V b ) -> decltype(a == b)

◆ LeadingZeroCount() [1/2]

template<class V , HWY_IF_UI64_D(DFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::LeadingZeroCount ( V v)

◆ LeadingZeroCount() [2/2]

template<class V , HWY_IF_UI32(TFromV< V >) , HWY_IF_V_SIZE_LE_D(DFromV< V >, 16) >
HWY_API V hwy::HWY_NAMESPACE::LeadingZeroCount ( V v)

References LeadingZeroCount().

◆ Load() [1/15]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load ( D d,
const T *HWY_RESTRICT p )

References BitCast(), hwy::CopyBytes(), d, p, and Set().

◆ Load() [2/15]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load ( D d,
const TFromD< D > *HWY_RESTRICT p )

References d, LoadU(), and p.

Referenced by AESKeyGenAssist(), AssertMaskEqual(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), CLMulLower(), CLMulUpper(), Compress(), Compress(), Compress(), CompressBits(), CompressBitsStore(), CompressBlendedStore(), CompressNot(), CompressNot(), ConcatEven(), ConcatOdd(), DemoteTo(), DemoteTo(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), Expand(), GatherIndex(), GatherIndex(), GatherOffset(), GatherOffset(), GenerateInput(), grk::HWY_NAMESPACE::hwy_decompress_v_final_memcpy_53(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IndicesForExpandFromBits(), hwy::HWY_NAMESPACE::detail::IndicesFromBits128(), hwy::HWY_NAMESPACE::detail::IndicesFromNotBits128(), InsertLane(), InsertLane(), InsertLane(), InsertLane(), InsertLane(), InterleaveWholeLower(), InterleaveWholeUpper(), Load(), hwy::HWY_NAMESPACE::detail::Load8Bytes(), LoadDup128(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved4(), hwy::HWY_NAMESPACE::detail::LoadMaskBits(), LoadU(), LoadU(), hwy::HWY_NAMESPACE::detail::LookupAndConcatHalves(), hwy::HWY_NAMESPACE::detail::LookupAndConcatQuarters(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MatVecAddImpl(), skeleton::HWY_NAMESPACE::MulAddLoop(), MulEven(), MulOdd(), hwy::HWY_NAMESPACE::VectorXoshiro::Next(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), hwy::HWY_NAMESPACE::VectorXoshiro::operator()(), hwy::HWY_NAMESPACE::VectorXoshiro::operator()(), hwy::HWY_NAMESPACE::detail::Shl(), StoreInterleaved3(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::transform(), grk::HWY_NAMESPACE::DecompressDcShiftRev::transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::DecompressIrrev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), TruncateTo(), TruncateTo(), TruncateTo(), and TruncateTo().

◆ Load() [3/15]

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 )

◆ Load() [4/15]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > hwy::HWY_NAMESPACE::Load ( D ,
const double *HWY_RESTRICT aligned )

◆ Load() [5/15]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Load ( D ,
const double *HWY_RESTRICT aligned )

◆ Load() [6/15]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load ( D ,
const double *HWY_RESTRICT aligned )

◆ Load() [7/15]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API Vec64< double > hwy::HWY_NAMESPACE::Load ( D ,
const double *HWY_RESTRICT p )

References p.

◆ Load() [8/15]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Load ( D ,
const float *HWY_RESTRICT aligned )

◆ Load() [9/15]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Load ( D ,
const float *HWY_RESTRICT aligned )

◆ Load() [10/15]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Load ( D ,
const float *HWY_RESTRICT aligned )

◆ Load() [11/15]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::Load ( D ,
const float *HWY_RESTRICT p )

References p.

◆ Load() [12/15]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > hwy::HWY_NAMESPACE::Load ( D ,
const float *HWY_RESTRICT p )

References p.

◆ Load() [13/15]

template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Load ( D ,
const T *HWY_RESTRICT aligned )

◆ Load() [14/15]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Load ( D ,
const T *HWY_RESTRICT aligned )

References hwy::CopySameSize().

◆ Load() [15/15]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load ( D d,
const TFromD< D > *HWY_RESTRICT aligned )

◆ LoadDup128() [1/9]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadDup128 ( D d,
const T *HWY_RESTRICT aligned )

References d, and Load().

◆ LoadDup128() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 ( D d,
const T *HWY_RESTRICT p )

References d, LoadU(), and p.

◆ LoadDup128() [3/9]

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 )

References d, LoadU(), and p.

Referenced by hwy::HWY_NAMESPACE::detail::LoadMaskBits().

◆ LoadDup128() [4/9]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 ( D d,
const TFromD< D > *HWY_RESTRICT p )

References d, LoadU(), and p.

◆ LoadDup128() [5/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 ( D d,
const TFromD< D > *HWY_RESTRICT p )

References BitCast(), d, LoadU(), and p.

◆ LoadDup128() [6/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::LoadDup128 ( D ,
const double *HWY_RESTRICT p )

References LoadU(), and p.

◆ LoadDup128() [7/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 ( D ,
const double *HWY_RESTRICT p )

References p.

◆ LoadDup128() [8/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::LoadDup128 ( D ,
const float *HWY_RESTRICT p )

References LoadU(), and p.

◆ LoadDup128() [9/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 ( D ,
const float *HWY_RESTRICT p )

References p.

◆ LoadExpand() [1/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadExpand ( MFromD< D > mask,
D d,
const TFromD< D > *HWY_RESTRICT unaligned )

References d, Expand(), and LoadU().

◆ LoadExpand() [2/3]

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 )

References d, Expand(), and LoadU().

◆ LoadExpand() [3/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadExpand ( MFromD< D > mask,
D d,
const TFromD< D > *HWY_RESTRICT unaligned )

◆ LoadInterleaved2() [1/4]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( D d,
const T *HWY_RESTRICT unaligned,
Vec1< T > & v0,
Vec1< T > & v1 )

References d, and LoadU().

◆ LoadInterleaved2() [2/4]

template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1 )

◆ LoadInterleaved2() [3/4]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1 )

References d, Load(), and MaxLanes().

◆ LoadInterleaved2() [4/4]

template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 ( D d,
const TFromD< D > *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1 )

References ConcatEven(), ConcatOdd(), d, Lanes(), and LoadU().

◆ LoadInterleaved3() [1/5]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( D d,
const T *HWY_RESTRICT unaligned,
Vec1< T > & v0,
Vec1< T > & v1,
Vec1< T > & v2 )

References d, and LoadU().

◆ LoadInterleaved3() [2/5]

template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2 )

◆ LoadInterleaved3() [3/5]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2 )

References d, Load(), and MaxLanes().

◆ LoadInterleaved3() [4/5]

template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( D d,
const TFromD< D > *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2 )

◆ LoadInterleaved3() [5/5]

template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 ( D d,
const TFromD< D > *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2 )

◆ LoadInterleaved4() [1/4]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( D d,
const T *HWY_RESTRICT unaligned,
Vec1< T > & v0,
Vec1< T > & v1,
Vec1< T > & v2,
Vec1< T > & v3 )

References d, and LoadU().

◆ LoadInterleaved4() [2/4]

template<class D , HWY_IF_LOAD_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2,
VFromD< D > & v3 )

◆ LoadInterleaved4() [3/4]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( D d,
const T *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2,
VFromD< D > & v3 )

References d, Load(), and MaxLanes().

◆ LoadInterleaved4() [4/4]

template<class D , HWY_IF_LANES_PER_BLOCK_D(D, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 ( D d,
const TFromD< D > *HWY_RESTRICT unaligned,
VFromD< D > & v0,
VFromD< D > & v1,
VFromD< D > & v2,
VFromD< D > & v3 )

◆ LoadMaskBits() [1/5]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::LoadMaskBits ( D d,
const uint8_t *HWY_RESTRICT bits )

◆ LoadMaskBits() [2/5]

template<class D , HWY_IF_T_SIZE_D(D, 1) >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::LoadMaskBits ( D d,
const uint8_t *HWY_RESTRICT bits )

References BitCast(), d, Iota(), and TestBit().

◆ LoadMaskBits() [3/5]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::LoadMaskBits ( D d,
const uint8_t *HWY_RESTRICT bits )

References d, m, and MaxLanes().

◆ LoadMaskBits() [4/5]

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 )

References d, and LoadMaskBits().

◆ LoadMaskBits() [5/5]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Mask1< T > hwy::HWY_NAMESPACE::LoadMaskBits ( D ,
const uint8_t *HWY_RESTRICT bits )

◆ LoadN() [1/3]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadN ( D d,
const T *HWY_RESTRICT p,
size_t max_lanes_to_load )

◆ LoadN() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadN ( D d,
const TFromD< D > *HWY_RESTRICT p,
size_t max_lanes_to_load )

◆ LoadN() [3/3]

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadN ( D d,
const TFromD< D > *HWY_RESTRICT p,
size_t num_lanes )

◆ LoadNOr() [1/3]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadNOr ( VFromD< D > no,
D d,
const T *HWY_RESTRICT p,
size_t max_lanes_to_load )

◆ LoadNOr() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadNOr ( VFromD< D > no,
D d,
const TFromD< D > *HWY_RESTRICT p,
size_t max_lanes_to_load )

References hwy::CopyBytes(), d, HWY_MIN, Lanes(), and p.

Referenced by Foreach(), and LoadNOr().

◆ LoadNOr() [3/3]

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadNOr ( VFromD< D > v,
D d,
const TFromD< D > *HWY_RESTRICT p,
size_t num_lanes )

◆ LoadU() [1/37]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D d,
const T *HWY_RESTRICT p )

References d, Load(), and p.

◆ LoadU() [2/37]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadU ( D d,
const T *HWY_RESTRICT p )

References d, Load(), and p.

◆ LoadU() [3/37]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_T_SIZE_LE_D(D, 2) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D d,
const TFromD< D > *HWY_RESTRICT p )

References BitCast(), d, LoadU(), and p.

◆ LoadU() [4/37]

template<class D , HWY_IF_LANES_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D d,
const TFromD< D > *HWY_RESTRICT p )

References BitCast(), d, LoadU(), and p.

◆ LoadU() [5/37]

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 )

◆ LoadU() [6/37]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D d,
const TFromD< D > *HWY_RESTRICT p )

References d, Load(), and p.

◆ LoadU() [7/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > hwy::HWY_NAMESPACE::LoadU ( D ,
const double *HWY_RESTRICT p )

References p.

◆ LoadU() [8/37]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::LoadU ( D ,
const double *HWY_RESTRICT p )

References p.

◆ LoadU() [9/37]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D ,
const double *HWY_RESTRICT p )

References p.

◆ LoadU() [10/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::LoadU ( D ,
const float *HWY_RESTRICT p )

References p.

◆ LoadU() [11/37]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API Vec32< float > hwy::HWY_NAMESPACE::LoadU ( D ,
const float *HWY_RESTRICT p )

References p.

◆ LoadU() [12/37]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::LoadU ( D ,
const float *HWY_RESTRICT p )

References p.

◆ LoadU() [13/37]

template<class D , HWY_IF_V_SIZE_D(D, 64) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadU ( D ,
const float *HWY_RESTRICT p )

References p.

◆ LoadU() [14/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::LoadU ( D ,
const float *HWY_RESTRICT unaligned )

◆ LoadU() [15/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int16_t *HWY_RESTRICT p )

References p.

◆ LoadU() [16/37]

template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D ,
const int16_t *HWY_RESTRICT p )

References p.

◆ LoadU() [17/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int16_t *HWY_RESTRICT unaligned )

◆ LoadU() [18/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int32_t *HWY_RESTRICT p )

References p.

◆ LoadU() [19/37]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int32_t *HWY_RESTRICT p )

References p.

◆ LoadU() [20/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int32_t *HWY_RESTRICT unaligned )

◆ LoadU() [21/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int64_t *HWY_RESTRICT p )

References p.

◆ LoadU() [22/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int64_t *HWY_RESTRICT unaligned )

◆ LoadU() [23/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int8_t *HWY_RESTRICT p )

References p.

◆ LoadU() [24/37]

template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D ,
const int8_t *HWY_RESTRICT p )

References p.

◆ LoadU() [25/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const int8_t *HWY_RESTRICT unaligned )

◆ LoadU() [26/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LoadU ( D ,
const T *HWY_RESTRICT p )

References HWY_RESTRICT, and p.

◆ LoadU() [27/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint16_t *HWY_RESTRICT p )

References p.

◆ LoadU() [28/37]

template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint16_t *HWY_RESTRICT p )

References p.

◆ LoadU() [29/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint16_t *HWY_RESTRICT unaligned )

◆ LoadU() [30/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint32_t *HWY_RESTRICT p )

References p.

◆ LoadU() [31/37]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint32_t *HWY_RESTRICT p )

References p.

◆ LoadU() [32/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint32_t *HWY_RESTRICT unaligned )

◆ LoadU() [33/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint64_t *HWY_RESTRICT p )

References p.

◆ LoadU() [34/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint64_t *HWY_RESTRICT unaligned )

◆ LoadU() [35/37]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint8_t *HWY_RESTRICT p )

References p.

◆ LoadU() [36/37]

template<class D , HWY_IF_LANES_D(D, 1) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint8_t *HWY_RESTRICT p )

References p.

◆ LoadU() [37/37]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::LoadU ( D ,
const uint8_t *HWY_RESTRICT unaligned )

Referenced by BlendedStore(), BlendedStore(), CompressBitsStore(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), Copy(), CopyIf(), hwy::HWY_NAMESPACE::detail::CountAndReplaceNaN(), Expand(), Expand(), Expand(), Expand(), hwy::HWY_NAMESPACE::detail::ExpandLoop(), Find(), FindIf(), Foreach(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_even_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_odd_mcols_53(), hwy::HWY_NAMESPACE::detail::IndicesForExpandFromBits(), Load(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load0Impl(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load1Impl(), LoadDup128(), LoadDup128(), LoadDup128(), LoadDup128(), LoadExpand(), hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::LoadImpl(), LoadInterleaved2(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved4(), LoadN(), LoadNOr(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), LoadU(), MaskedLoad(), MaskedLoadOr(), MatVecAddImpl(), hwy::HWY_NAMESPACE::Pack16< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 8 >::Pack(), Replace(), ReplaceIf(), SetTableIndices(), Transform(), Transform1(), Transform2(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), and hwy::HWY_NAMESPACE::Pack8< 8 >::Unpack().

◆ Log()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log ( D d,
V x )

Highway SIMD version of std::log(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
natural logarithm of 'x'

References d, and hwy::HWY_NAMESPACE::impl::Log().

Referenced by CallLog(), Log10(), and Log2().

◆ Log10()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log10 ( D d,
V x )

Highway SIMD version of std::log10(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
base 10 logarithm of 'x'

References d, Log(), Mul(), and Set().

Referenced by CallLog10().

◆ Log1p()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log1p ( D d,
V x )

Highway SIMD version of std::log1p(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32[0, +FLT_MAX], float64[0, +DBL_MAX]

Returns
log(1 + x)

References Add(), d, Div(), Eq(), IfThenElse(), IfThenZeroElse(), Mul(), Set(), and Sub().

Referenced by Atanh(), and CallLog1p().

◆ Log2()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Log2 ( D d,
V x )

Highway SIMD version of std::log2(x).

Valid Lane Types: float32, float64 Max Error: ULP = 2 Valid Range: float32(0, +FLT_MAX], float64(0, +DBL_MAX]

Returns
base 2 logarithm of 'x'

References d, Log(), Mul(), and Set().

Referenced by CallLog2().

◆ LowerHalf() [1/34]

template<class DH , class V , hwy::EnableIf<!detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( const DH ,
const V v )

◆ LowerHalf() [2/34]

template<class DH , hwy::EnableIf< detail::IsSupportedLMUL(DH())> * = nullptr>
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::LowerHalf ( const DH ,
const VFromD< Twice< DH > > v )

◆ LowerHalf() [3/34]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( const V v)

◆ LowerHalf() [4/34]

template<class V >
HWY_API VFromD< Half< DFromV< V > > > hwy::HWY_NAMESPACE::LowerHalf ( const V v)

References LowerHalf().

◆ LowerHalf() [5/34]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec1< T > v )

◆ LowerHalf() [6/34]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_BF16_D(D) >
HWY_API Vec128< bfloat16_t > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec256< bfloat16_t > v )

◆ LowerHalf() [7/34]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec256< double > v )

◆ LowerHalf() [8/34]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec256< float > v )

◆ LowerHalf() [9/34]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F16_D(D) >
HWY_API Vec128< float16_t > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec256< float16_t > v )

◆ LowerHalf() [10/34]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec256< T > v )

◆ LowerHalf() [11/34]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec512< bfloat16_t > v )

◆ LowerHalf() [12/34]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec512< double > v )

◆ LowerHalf() [13/34]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec512< float > v )

◆ LowerHalf() [14/34]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
Vec512< float16_t > v )

◆ LowerHalf() [15/34]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
VFromD< Twice< D > > v )

References LowerHalf().

◆ LowerHalf() [16/34]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
VFromD< Twice< D > > v )

◆ LowerHalf() [17/34]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf ( D ,
VFromD< Twice< D > > v )

◆ LowerHalf() [18/34]

template<class D2 , class V >
HWY_API V hwy::HWY_NAMESPACE::LowerHalf ( D2 ,
const V v )

◆ LowerHalf() [19/34]

template<class DH >
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::LowerHalf ( DH ,
VFromD< Twice< DH > > v )

References LowerHalf().

◆ LowerHalf() [20/34]

template<class V , HWY_NEON_IF_EMULATED_D(DFromV< V >) , HWY_IF_V_SIZE_V(V, 16) >
HWY_API VFromD< Half< DFromV< V > > > hwy::HWY_NAMESPACE::LowerHalf ( V v)

References BitCast(), and LowerHalf().

◆ LowerHalf() [21/34]

HWY_API Vec64< float > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< float > v)

◆ LowerHalf() [22/34]

HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< int16_t > v)

◆ LowerHalf() [23/34]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< int32_t > v)

◆ LowerHalf() [24/34]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< int64_t > v)

◆ LowerHalf() [25/34]

HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< int8_t > v)

◆ LowerHalf() [26/34]

template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< T, N > v)

References hwy::HWY_NAMESPACE::Vec128< T, N >::raw.

Referenced by AESInvMixColumns(), AESKeyGenAssist(), AESKeyGenAssist(), AESLastRound(), AESLastRound(), AESLastRoundInv(), AESLastRoundInv(), AESRound(), AESRound(), AESRoundInv(), AESRoundInv(), hwy::HWY_NAMESPACE::detail::BroadcastLane(), hwy::HWY_NAMESPACE::detail::BroadcastLane(), hwy::HWY_NAMESPACE::detail::BroadcastLane(), CLMulLower(), CLMulUpper(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerLower(), ConcatUpperLower(), DemoteTo(), DemoteTo(), DemoteTo(), hwy::HWY_NAMESPACE::detail::DemoteToF32WithRoundToOdd(), Div(), Expand(), Expand(), Expand(), GetLane(), GetLane(), hwy::HWY_NAMESPACE::detail::InterleaveLowerBlocks(), hwy::HWY_NAMESPACE::detail::InterleaveUpperBlocks(), hwy::HWY_NAMESPACE::detail::LookupAndConcatQuarters(), LowerHalf(), LowerHalf(), LowerHalf(), LowerHalf(), LowerHalf(), LowerHalfOfMask(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16AsU16(), MinOfLanes(), PromoteInRangeEvenTo(), PromoteInRangeLowerTo(), PromoteLowerTo(), PromoteTo(), PromoteTo(), PromoteTo(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), ReorderDemote2To(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateI16(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateU16(), SetOnlyFirst(), SumOfLanes(), SumOfLanes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), U8FromU32(), UpperHalf(), UpperHalf(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), and WidenMulPairwiseAdd().

◆ LowerHalf() [27/34]

template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< T, N > v)

◆ LowerHalf() [28/34]

HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< uint16_t > v)

◆ LowerHalf() [29/34]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< uint32_t > v)

◆ LowerHalf() [30/34]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< uint64_t > v)

◆ LowerHalf() [31/34]

HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::LowerHalf ( Vec128< uint8_t > v)

◆ LowerHalf() [32/34]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec1< T > v)

◆ LowerHalf() [33/34]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec256< T > v)

◆ LowerHalf() [34/34]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf ( Vec512< T > v)

References LowerHalf().

◆ LowerHalfOfMask() [1/4]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::LowerHalfOfMask ( D d,
Mask< Twice< D > > m )

References d, LowerHalf(), m, MaskFromVec(), and VecFromMask().

◆ LowerHalfOfMask() [2/4]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::LowerHalfOfMask ( D d,
MFromD< Twice< D > > m )

References And(), d, m, and MaxLanes().

◆ LowerHalfOfMask() [3/4]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::LowerHalfOfMask ( D ,
MFromD< D > m )

References m.

◆ LowerHalfOfMask() [4/4]

template<class D >
HWY_API svbool_t hwy::HWY_NAMESPACE::LowerHalfOfMask ( D ,
svbool_t m )

References m.

◆ Lt()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Lt ( V a,
V b ) -> decltype(a == b)

◆ Lt128() [1/8]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Lt128 ( D d,
const svuint64_t a,
const svuint64_t b )

◆ Lt128() [2/8]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Lt128() [3/8]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D d,
V a,
V b )

◆ Lt128() [4/8]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Lt128 ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Lt128() [5/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Lt128() [6/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Lt128() [7/8]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, Lt128(), and MaskFromVec().

◆ Lt128() [8/8]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128 ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ Lt128Upper() [1/7]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Lt128Upper() [2/7]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Lt128Upper ( D d,
svuint64_t a,
svuint64_t b )

References d, and Lt().

◆ Lt128Upper() [3/7]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( D d,
V a,
V b )

◆ Lt128Upper() [4/7]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Lt128Upper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Lt128Upper() [5/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Lt128Upper() [6/7]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, Lt128Upper(), and MaskFromVec().

◆ Lt128Upper() [7/7]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ MaskedAddOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedAddOr ( V no,
M m,
V a,
V b )

◆ MaskedAddOr() [2/4]

template<typename T , size_t N, HWY_IF_UI8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedAddOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedAddOr() [3/4]

template<typename T , HWY_IF_UI8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedAddOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedAddOr() [4/4]

template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedAddOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskedDivOr() [1/10]

template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V( V,(hwy::IsSame< TFromV< V >, hwy::float16_t >() ?(1<< 2) :0)|(1<< 4)|(1<< 8)) >
HWY_API V hwy::HWY_NAMESPACE::MaskedDivOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedDivOr(), MaskedDivOr(), and MaskedDivOr().

◆ MaskedDivOr() [2/10]

template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MaskedDivOr ( V no,
M m,
V a,
V b )

References Div(), IfThenElse(), and m.

◆ MaskedDivOr() [3/10]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedDivOr ( V no,
M m,
V a,
V b )

References Div(), IfThenElse(), and m.

◆ MaskedDivOr() [4/10]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MaskedDivOr ( V no,
MFromD< DFromV< V > > m,
V a,
V b )

References Div(), IfThenElse(), m, and MaskedDivOr().

◆ MaskedDivOr() [5/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec128< double, N > no,
Mask128< double, N > m,
Vec128< double, N > a,
Vec128< double, N > b )

◆ MaskedDivOr() [6/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec128< float, N > no,
Mask128< float, N > m,
Vec128< float, N > a,
Vec128< float, N > b )

◆ MaskedDivOr() [7/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec256< double > no,
Mask256< double > m,
Vec256< double > a,
Vec256< double > b )

◆ MaskedDivOr() [8/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec256< float > no,
Mask256< float > m,
Vec256< float > a,
Vec256< float > b )

◆ MaskedDivOr() [9/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec512< double > no,
Mask512< double > m,
Vec512< double > a,
Vec512< double > b )

◆ MaskedDivOr() [10/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedDivOr ( Vec512< float > no,
Mask512< float > m,
Vec512< float > a,
Vec512< float > b )

◆ MaskedGatherIndex() [1/4]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedGatherIndex ( Mask1< T > m,
D d,
const T *HWY_RESTRICT base,
Vec1< MakeSigned< T > > index )

References d, HWY_DASSERT, m, and MaskedLoad().

◆ MaskedGatherIndex() [2/4]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndex ( MFromD< D > m,
D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ MaskedGatherIndex() [3/4]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndex ( MFromD< D > m,
D d,
const TFromD< D > * base,
VFromD< RebindToSigned< D > > indices )

References d, indices, m, MaskedGatherIndexOr(), and Zero().

◆ MaskedGatherIndex() [4/4]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndex ( MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ MaskedGatherIndexOr() [1/4]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedGatherIndexOr ( Vec1< T > no,
Mask1< T > m,
D d,
const T *HWY_RESTRICT base,
Vec1< MakeSigned< T > > index )

◆ MaskedGatherIndexOr() [2/4]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndexOr ( VFromD< D > no,
MFromD< D > m,
D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ MaskedGatherIndexOr() [3/4]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndexOr ( VFromD< D > no,
MFromD< D > m,
D d,
const T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ MaskedGatherIndexOr() [4/4]

template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndexOr ( VFromD< D > no,
MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ MaskedLoad() [1/12]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedLoad ( Mask1< T > m,
D d,
const T *HWY_RESTRICT aligned )

References d, IfThenElseZero(), Load(), and m.

◆ MaskedLoad() [2/12]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< double > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [3/12]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::MaskedLoad ( Mask256< float > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [4/12]

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 )

References d, IfThenElseZero(), Load(), and m.

◆ MaskedLoad() [5/12]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< double > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [6/12]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedLoad ( Mask512< float > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [7/12]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D d,
const T *HWY_RESTRICT p )

References d, IfThenElseZero(), LoadU(), m, and p.

◆ MaskedLoad() [8/12]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT aligned )

◆ MaskedLoad() [9/12]

template<class D , HWY_SVE_IF_EMULATED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT p )

◆ MaskedLoad() [10/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [11/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoad() [12/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad ( MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [1/12]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedLoadOr ( Vec1< T > v,
Mask1< T > m,
D d,
const T *HWY_RESTRICT aligned )

References d, IfThenElse(), Load(), and m.

◆ MaskedLoadOr() [2/12]

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 )

References d, IfThenElse(), Load(), and m.

◆ MaskedLoadOr() [3/12]

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > no,
MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT p )

◆ MaskedLoadOr() [4/12]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
Mask256< double > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [5/12]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
Mask256< float > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [6/12]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
Mask512< double > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [7/12]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
Mask512< float > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [8/12]

template<class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
MFromD< D > m,
D d,
const T *HWY_RESTRICT p )

References d, IfThenElse(), LoadU(), m, and p.

◆ MaskedLoadOr() [9/12]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT aligned )

References d, IfThenElse(), Load(), and m.

Referenced by MaskedGatherIndexOr(), and MaskedLoadOr().

◆ MaskedLoadOr() [10/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
MFromD< D > m,
D ,
const double *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [11/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
MFromD< D > m,
D ,
const float *HWY_RESTRICT p )

References m, and p.

◆ MaskedLoadOr() [12/12]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr ( VFromD< D > v,
MFromD< D > m,
D d,
const TFromD< D > *HWY_RESTRICT p )

References m, and p.

◆ MaskedMaxOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedMaxOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedMaxOr().

◆ MaskedMaxOr() [2/4]

template<typename T , size_t N, HWY_IF_U8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedMaxOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedMaxOr() [3/4]

template<typename T , HWY_IF_U8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedMaxOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedMaxOr() [4/4]

template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedMaxOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskedMinOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedMinOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedMinOr().

◆ MaskedMinOr() [2/4]

template<typename T , size_t N, HWY_IF_U8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedMinOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedMinOr() [3/4]

template<typename T , HWY_IF_U8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedMinOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedMinOr() [4/4]

template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedMinOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskedModOr() [1/2]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedModOr ( V no,
M m,
V a,
V b )

References IfThenElse(), m, and Mod().

Referenced by MaskedModOr().

◆ MaskedModOr() [2/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MaskedModOr ( V no,
MFromD< DFromV< V > > m,
V a,
V b )

References IfThenElse(), m, MaskedModOr(), and Mod().

◆ MaskedMulOr() [1/7]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedMulOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedMulOr(), and MaskedMulOr().

◆ MaskedMulOr() [2/7]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec128< double, N > no,
Mask128< double, N > m,
Vec128< double, N > a,
Vec128< double, N > b )

◆ MaskedMulOr() [3/7]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec128< float, N > no,
Mask128< float, N > m,
Vec128< float, N > a,
Vec128< float, N > b )

◆ MaskedMulOr() [4/7]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec256< double > no,
Mask256< double > m,
Vec256< double > a,
Vec256< double > b )

◆ MaskedMulOr() [5/7]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec256< float > no,
Mask256< float > m,
Vec256< float > a,
Vec256< float > b )

◆ MaskedMulOr() [6/7]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec512< double > no,
Mask512< double > m,
Vec512< double > a,
Vec512< double > b )

◆ MaskedMulOr() [7/7]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedMulOr ( Vec512< float > no,
Mask512< float > m,
Vec512< float > a,
Vec512< float > b )

◆ MaskedSatAddOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedSatAddOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedSatAddOr().

◆ MaskedSatAddOr() [2/4]

template<typename T , size_t N, HWY_IF_I8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedSatAddOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedSatAddOr() [3/4]

template<typename T , HWY_IF_I8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedSatAddOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedSatAddOr() [4/4]

template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSatAddOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskedSatSubOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedSatSubOr ( V no,
M m,
V a,
V b )

References IfThenElse(), and m.

Referenced by MaskedSatSubOr().

◆ MaskedSatSubOr() [2/4]

template<typename T , size_t N, HWY_IF_I8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedSatSubOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedSatSubOr() [3/4]

template<typename T , HWY_IF_I8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedSatSubOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedSatSubOr() [4/4]

template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSatSubOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskedScatterIndex() [1/8]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( Vec1< T > v,
Mask1< T > m,
D d,
T *HWY_RESTRICT base,
Vec1< TI > index )

◆ MaskedScatterIndex() [2/8]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D d,
T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ MaskedScatterIndex() [3/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D d,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References d, m, and MaskedScatterIndex().

◆ MaskedScatterIndex() [4/8]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D ,
double *HWY_RESTRICT base,
Vec512< int64_t > index )

◆ MaskedScatterIndex() [5/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D ,
double *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References m.

◆ MaskedScatterIndex() [6/8]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D ,
float *HWY_RESTRICT base,
Vec512< int32_t > index )

◆ MaskedScatterIndex() [7/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D ,
float *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References m.

◆ MaskedScatterIndex() [8/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex ( VFromD< D > v,
MFromD< D > m,
D ,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References m.

◆ MaskedSubOr() [1/4]

template<class V , class M >
HWY_API V hwy::HWY_NAMESPACE::MaskedSubOr ( V no,
M m,
V a,
V b )

◆ MaskedSubOr() [2/4]

template<typename T , size_t N, HWY_IF_UI8(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MaskedSubOr ( Vec128< T, N > no,
Mask128< T, N > m,
Vec128< T, N > a,
Vec128< T, N > b )

◆ MaskedSubOr() [3/4]

template<typename T , HWY_IF_UI8(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MaskedSubOr ( Vec256< T > no,
Mask256< T > m,
Vec256< T > a,
Vec256< T > b )

◆ MaskedSubOr() [4/4]

template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSubOr ( Vec512< T > no,
Mask512< T > m,
Vec512< T > a,
Vec512< T > b )

◆ MaskFalse() [1/3]

template<class D >
HWY_API svbool_t hwy::HWY_NAMESPACE::MaskFalse ( const D )

◆ MaskFalse() [2/3]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::MaskFalse ( D d)

References d, MaskFromVec(), and Zero().

◆ MaskFalse() [3/3]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::MaskFalse ( D d)

References d, MaskFromVec(), and Zero().

◆ MaskForDist()

template<class DU64 >
Vec< DU64 > hwy::HWY_NAMESPACE::MaskForDist ( DU64 du64,
const Dist dist,
size_t sizeof_t )

◆ MaskFromVec() [1/9]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::MaskFromVec ( const V v)

◆ MaskFromVec() [2/9]

template<class V >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::MaskFromVec ( const V v)

◆ MaskFromVec() [3/9]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< double, N > v)

◆ MaskFromVec() [4/9]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< float, N > v)

◆ MaskFromVec() [5/9]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec128< T, N > v)

References BitCast().

Referenced by Abs(), Abs(), And(), And(), And(), AndNot(), AndNot(), AndNot(), ConvertTo(), DemoteMaskTo(), Eq128(), Eq128(), Eq128(), Eq128Upper(), Eq128Upper(), ExclusiveNeither(), ExclusiveNeither(), ExclusiveNeither(), Expand(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenNegOrUndefIfZero(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), IfVecThenElse(), hwy::HWY_NAMESPACE::detail::InsertLaneUsingBroadcastAndBlend(), IsNegative(), LowerHalfOfMask(), Lt128(), Lt128(), Lt128(), Lt128Upper(), Lt128Upper(), MaskFalse(), MaskFromVec(), MaskFromVec(), MaskFromVec(), Max(), Min(), Ne128(), Ne128(), Ne128(), Ne128Upper(), Ne128Upper(), Not(), Not(), Not(), OddEven(), OddEven(), operator<<(), operator>(), operator>>(), Or(), Or(), Or(), PromoteMaskTo(), SaturatedAbs(), SaturatedAbs(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrBeforeFirst(), SetAtOrBeforeFirst(), SetAtOrBeforeFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SlideMask1Down(), SlideMask1Up(), SlideMaskDownLanes(), SlideMaskUpLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), Xor(), Xor(), and Xor().

◆ MaskFromVec() [6/9]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec1< T > v)

References hwy::CopySameSize().

◆ MaskFromVec() [7/9]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec256< T > v)

◆ MaskFromVec() [8/9]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::MaskFromVec ( const Vec256< T > v)

◆ MaskFromVec() [9/9]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::MaskFromVec ( Vec512< T > v)

◆ MaskTrue()

template<class D >
HWY_INLINE Mask< D > hwy::HWY_NAMESPACE::MaskTrue ( const D d)

References d, FirstN(), and Lanes().

◆ MatVec()

template<size_t kOuter, size_t kInner, typename T >
HWY_NOINLINE void hwy::HWY_NAMESPACE::MatVec ( const T *HWY_RESTRICT mat,
const T *HWY_RESTRICT vec,
T *HWY_RESTRICT out,
hwy::ThreadPool & pool )

◆ MatVecAdd()

template<size_t kOuter, size_t kInner, typename T >
HWY_NOINLINE void hwy::HWY_NAMESPACE::MatVecAdd ( const T *HWY_RESTRICT mat,
const T *HWY_RESTRICT vec,
const T *HWY_RESTRICT add,
T *HWY_RESTRICT out,
hwy::ThreadPool & pool )

◆ MatVecAddImpl()

template<size_t kOuter, size_t kInner, typename T , bool kAdd>
HWY_NOINLINE void hwy::HWY_NAMESPACE::MatVecAddImpl ( const T *HWY_RESTRICT mat,
const T *HWY_RESTRICT vec,
const T *HWY_RESTRICT add,
T *HWY_RESTRICT out,
hwy::ThreadPool & pool )

◆ Max() [1/34]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Max ( const Vec1< T > a,
const Vec1< T > b )

◆ Max() [2/34]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Max ( const Vec256< double > a,
const Vec256< double > b )

◆ Max() [3/34]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Max ( const Vec256< float > a,
const Vec256< float > b )

◆ Max() [4/34]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int16_t > a,
const Vec256< int16_t > b )

◆ Max() [5/34]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int32_t > a,
const Vec256< int32_t > b )

◆ Max() [6/34]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int64_t > a,
const Vec256< int64_t > b )

◆ Max() [7/34]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Max ( const Vec256< int8_t > a,
const Vec256< int8_t > b )

◆ Max() [8/34]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint16_t > a,
const Vec256< uint16_t > b )

◆ Max() [9/34]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint32_t > a,
const Vec256< uint32_t > b )

◆ Max() [10/34]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint64_t > a,
const Vec256< uint64_t > b )

◆ Max() [11/34]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::Max ( const Vec256< uint8_t > a,
const Vec256< uint8_t > b )

◆ Max() [12/34]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Max ( Vec128< double, N > a,
Vec128< double, N > b )

◆ Max() [13/34]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Max ( Vec128< float, N > a,
Vec128< float, N > b )

◆ Max() [14/34]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ Max() [15/34]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ Max() [16/34]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ Max() [17/34]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

◆ Max() [18/34]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Max ( Vec128< T, N > a,
Vec128< T, N > b )

◆ Max() [19/34]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Max ( Vec128< T, N > a,
Vec128< T, N > b )

◆ Max() [20/34]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ Max() [21/34]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

◆ Max() [22/34]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ Max() [23/34]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Max ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ Max() [24/34]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Max ( Vec256< T > a,
const Vec256< T > b )

◆ Max() [25/34]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Max ( Vec512< double > a,
Vec512< double > b )

◆ Max() [26/34]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Max ( Vec512< float > a,
Vec512< float > b )

◆ Max() [27/34]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Max ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ Max() [28/34]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Max ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ Max() [29/34]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Max ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ Max() [30/34]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Max ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ Max() [31/34]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Max ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ Max() [32/34]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Max ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ Max() [33/34]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Max ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ Max() [34/34]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Max ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ Max128() [1/6]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Max128 ( D d,
const svuint64_t a,
const svuint64_t b )

◆ Max128() [2/6]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Max128 ( D d,
const V a,
const V b )

◆ Max128() [3/6]

template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Max128 ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Max128() [4/6]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Max128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128().

Referenced by Max128(), and Max128().

◆ Max128() [5/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Max128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128().

◆ Max128() [6/6]

template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Max128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfVecThenElse(), and Max128().

◆ Max128Upper() [1/6]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Max128Upper ( D d,
const svuint64_t a,
const svuint64_t b )

References d, IfThenElse(), and Lt128Upper().

◆ Max128Upper() [2/6]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Max128Upper ( D d,
const V a,
const V b )

◆ Max128Upper() [3/6]

template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Max128Upper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Max128Upper() [4/6]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Max128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128Upper().

Referenced by Max128Upper(), and Max128Upper().

◆ Max128Upper() [5/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Max128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128Upper().

◆ Max128Upper() [6/6]

template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Max128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfVecThenElse(), and Max128Upper().

◆ MaxLanes()

template<class D >
HWY_INLINE HWY_MAYBE_UNUSED constexpr size_t hwy::HWY_NAMESPACE::MaxLanes ( D )
constexpr

References HWY_MAX_LANES_D.

Referenced by AllTrue(), Combine(), Compress(), CompressBits(), CompressBitsStore(), CompressBlendedStore(), CompressStore(), ConcatLowerLower(), ConcatLowerUpper(), ConcatOdd(), ConcatUpperUpper(), ConvertInRangeTo(), CountTrue(), DemoteInRangeTo(), DemoteTo(), Dup128MaskFromMaskBits(), hwy::HWY_NAMESPACE::detail::ExpandLoop(), FirstN(), GatherIndex(), GatherOffset(), IndicesFromVec(), InterleaveUpper(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved4(), LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), LowerHalfOfMask(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedScatterIndex(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), Print(), PromoteInRangeTo(), PromoteTo(), ReduceMax(), ReduceMin(), ReduceSum(), Reverse(), Reverse(), Reverse2(), Reverse4(), Reverse8(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), ScatterIndex(), ScatterOffset(), Set(), Set(), SetAtOrBeforeFirst(), ShiftRightBytes(), SlideMask1Down(), SlideMask1Up(), SlideMaskDownLanes(), SlideMaskUpLanes(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved4(), StoreInterleaved4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), TableLookupBytes(), UpperHalf(), and ZeroExtendVector().

◆ MaxOfLanes() [1/4]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MaxOfLanes ( D d,
Vec128< uint16_t > v )

References d, MaxOfLanes(), MinOfLanes(), and Set().

◆ MaxOfLanes() [2/4]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::MaxOfLanes ( D d,
Vec128< uint8_t > v )

References d, m, MaxOfLanes(), MinOfLanes(), and Set().

◆ MaxOfLanes() [3/4]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::MaxOfLanes ( D d,
Vec64< uint8_t > v )

References d, m, MaxOfLanes(), MinOfLanes(), and Set().

◆ MaxOfLanes() [4/4]

template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaxOfLanes ( D d,
VFromD< D > v )

References d, ReduceMax(), and Set().

Referenced by MaxOfLanes(), MaxOfLanes(), and MaxOfLanes().

◆ Min() [1/34]

template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Min ( const Vec1< T > a,
const Vec1< T > b )

◆ Min() [2/34]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Min ( const Vec256< double > a,
const Vec256< double > b )

◆ Min() [3/34]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Min ( const Vec256< float > a,
const Vec256< float > b )

◆ Min() [4/34]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int16_t > a,
const Vec256< int16_t > b )

◆ Min() [5/34]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int32_t > a,
const Vec256< int32_t > b )

◆ Min() [6/34]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int64_t > a,
const Vec256< int64_t > b )

◆ Min() [7/34]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::Min ( const Vec256< int8_t > a,
const Vec256< int8_t > b )

◆ Min() [8/34]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint16_t > a,
const Vec256< uint16_t > b )

◆ Min() [9/34]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint32_t > a,
const Vec256< uint32_t > b )

◆ Min() [10/34]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint64_t > a,
const Vec256< uint64_t > b )

◆ Min() [11/34]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::Min ( const Vec256< uint8_t > a,
const Vec256< uint8_t > b )

◆ Min() [12/34]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Min ( Vec128< double, N > a,
Vec128< double, N > b )

◆ Min() [13/34]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Min ( Vec128< float, N > a,
Vec128< float, N > b )

◆ Min() [14/34]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ Min() [15/34]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ Min() [16/34]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ Min() [17/34]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

◆ Min() [18/34]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Min ( Vec128< T, N > a,
Vec128< T, N > b )

◆ Min() [19/34]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Min ( Vec128< T, N > a,
Vec128< T, N > b )

◆ Min() [20/34]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ Min() [21/34]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

◆ Min() [22/34]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ Min() [23/34]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::Min ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ Min() [24/34]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Min ( Vec256< T > a,
const Vec256< T > b )

◆ Min() [25/34]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Min ( Vec512< double > a,
Vec512< double > b )

◆ Min() [26/34]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Min ( Vec512< float > a,
Vec512< float > b )

◆ Min() [27/34]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Min ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ Min() [28/34]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Min ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ Min() [29/34]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Min ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ Min() [30/34]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Min ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ Min() [31/34]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Min ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ Min() [32/34]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Min ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ Min() [33/34]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Min ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ Min() [34/34]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Min ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ Min128() [1/6]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Min128 ( D d,
const svuint64_t a,
const svuint64_t b )

◆ Min128() [2/6]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Min128 ( D d,
const V a,
const V b )

◆ Min128() [3/6]

template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Min128 ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Min128() [4/6]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Min128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128().

Referenced by Min128(), and Min128().

◆ Min128() [5/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Min128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128().

◆ Min128() [6/6]

template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Min128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfVecThenElse(), and Min128().

◆ Min128Upper() [1/6]

template<class D >
HWY_INLINE svuint64_t hwy::HWY_NAMESPACE::Min128Upper ( D d,
const svuint64_t a,
const svuint64_t b )

References d, IfThenElse(), and Lt128Upper().

◆ Min128Upper() [2/6]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::Min128Upper ( D d,
const V a,
const V b )

◆ Min128Upper() [3/6]

template<class D , typename T = TFromD<D>>
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::Min128Upper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Min128Upper() [4/6]

template<class D >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::Min128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128Upper().

Referenced by Min128Upper(), and Min128Upper().

◆ Min128Upper() [5/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Min128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfThenElse(), and Lt128Upper().

◆ Min128Upper() [6/6]

template<class D , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Min128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, IfVecThenElse(), and Min128Upper().

◆ MinOfLanes() [1/4]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::MinOfLanes ( D d,
Vec128< uint8_t > v )

◆ MinOfLanes() [2/4]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::MinOfLanes ( D d,
Vec64< uint8_t > v )

References d, MinOfLanes(), PromoteTo(), and TruncateTo().

◆ MinOfLanes() [3/4]

template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MinOfLanes ( D d,
VFromD< D > v )

◆ MinOfLanes() [4/4]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MinOfLanes ( D ,
Vec128< uint16_t > v )

◆ MLenFromD()

template<typename T , size_t N, int kPow2>
constexpr size_t hwy::HWY_NAMESPACE::MLenFromD ( Simd< T, N, kPow2 > )
constexpr

◆ Mod()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Mod ( V a,
V b )

References Div(), and NegMulAdd().

Referenced by MaskedModOr(), and MaskedModOr().

◆ Mul()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Mul ( V a,
V b )

◆ MulAdd() [1/10]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulAdd ( const Vec1< T > mul,
const Vec1< T > x,
const Vec1< T > add )

◆ MulAdd() [2/10]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MulAdd ( V mul,
V x,
V add )

References Add(), and Mul().

◆ MulAdd() [3/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MulAdd ( Vec128< double, N > mul,
Vec128< double, N > x,
Vec128< double, N > add )

◆ MulAdd() [4/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MulAdd ( Vec128< float, N > mul,
Vec128< float, N > x,
Vec128< float, N > add )

◆ MulAdd() [5/10]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulAdd ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > add )

References hwy::HWY_NAMESPACE::detail::MulAdd().

Referenced by Acosh(), Asin(), Asinh(), hwy::HWY_NAMESPACE::impl::AtanImpl< float >::AtanPoly(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), ConvertTo(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosReduce(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), hwy::HWY_NAMESPACE::impl::Estrin(), Exp(), Expm1(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpPoly(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpReduce(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), MatVecAddImpl(), MulAdd(), MulAdd(), MulAdd(), skeleton::HWY_NAMESPACE::MulAddLoop(), MulAddSub(), MulSub(), NegMulSub(), NegMulSub(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateBF16(), Sin(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), and WidenMulPairwiseAdd().

◆ MulAdd() [6/10]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulAdd ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > add )

◆ MulAdd() [7/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MulAdd ( Vec256< double > mul,
Vec256< double > x,
Vec256< double > add )

◆ MulAdd() [8/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MulAdd ( Vec256< float > mul,
Vec256< float > x,
Vec256< float > add )

◆ MulAdd() [9/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAdd ( Vec512< double > mul,
Vec512< double > x,
Vec512< double > add )

◆ MulAdd() [10/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAdd ( Vec512< float > mul,
Vec512< float > x,
Vec512< float > add )

◆ MulAddSub() [1/8]

template<class V , HWY_IF_LANES_GT_D(DFromV< V >, 1) , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MulAddSub ( V mul,
V x,
V sub_or_add )

References AddSub(), d, MulAdd(), and Set().

Referenced by MulAddSub(), and MulAddSub().

◆ MulAddSub() [2/8]

template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_API V hwy::HWY_NAMESPACE::MulAddSub ( V mul,
V x,
V sub_or_add )

References MulSub().

◆ MulAddSub() [3/8]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::MulAddSub ( Vec128< double > mul,
Vec128< double > x,
Vec128< double > sub_or_add )

◆ MulAddSub() [4/8]

template<size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MulAddSub ( Vec128< float, N > mul,
Vec128< float, N > x,
Vec128< float, N > sub_or_add )

◆ MulAddSub() [5/8]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MulAddSub ( Vec256< double > mul,
Vec256< double > x,
Vec256< double > sub_or_add )

◆ MulAddSub() [6/8]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MulAddSub ( Vec256< float > mul,
Vec256< float > x,
Vec256< float > sub_or_add )

◆ MulAddSub() [7/8]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAddSub ( Vec512< double > mul,
Vec512< double > x,
Vec512< double > sub_or_add )

◆ MulAddSub() [8/8]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAddSub ( Vec512< float > mul,
Vec512< float > x,
Vec512< float > sub_or_add )

◆ MulEven() [1/29]

HWY_API svint64_t hwy::HWY_NAMESPACE::MulEven ( const svint64_t a,
const svint64_t b )

◆ MulEven() [2/29]

HWY_API svuint64_t hwy::HWY_NAMESPACE::MulEven ( const svuint64_t a,
const svuint64_t b )

◆ MulEven() [3/29]

template<class V , class DW = RepartitionToWide<DFromV<V>>, HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulEven ( const V a,
const V b )

◆ MulEven() [4/29]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulEven ( const V a,
const V b )

References BitCast(), MulEven(), MulHigh(), and OddEven().

◆ MulEven() [5/29]

template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_INLINE V hwy::HWY_NAMESPACE::MulEven ( const V a,
const V b )

References MulEven(), MulHigh(), and OddEven().

◆ MulEven() [6/29]

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 Vec1< MakeWide< T > > hwy::HWY_NAMESPACE::MulEven ( const Vec1< T > a,
const Vec1< T > b )

◆ MulEven() [7/29]

template<class V , HWY_IF_U8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > hwy::HWY_NAMESPACE::MulEven ( V a,
V b )

References And(), d, MulEven(), ResizeBitCast(), and Set().

◆ MulEven() [8/29]

template<class V , HWY_IF_UI64(TFromV< V >) , HWY_IF_V_SIZE_GT_V(V,(HWY_ARCH_X86_64 ? 16 :8)) >
HWY_API V hwy::HWY_NAMESPACE::MulEven ( V a,
V b )

References InterleaveLower(), and MulEven().

◆ MulEven() [9/29]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< int16_t > a,
Vec128< int16_t > b )

References ConcatEven(), and d.

◆ MulEven() [10/29]

template<size_t N>
HWY_API Vec128< int32_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [11/29]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< int32_t > a,
Vec128< int32_t > b )

References ConcatEven(), and d.

◆ MulEven() [12/29]

template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [13/29]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< int8_t > a,
Vec128< int8_t > b )

◆ MulEven() [14/29]

template<size_t N>
HWY_API Vec128< int16_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [15/29]

template<class T , HWY_IF_UI64(T) >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::MulEven ( Vec128< T > a,
Vec128< T > b )

◆ MulEven() [16/29]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::MulEven ( Vec128< T > a,
Vec128< T > b )

References GetLane(), Load(), and hwy::Mul128().

◆ MulEven() [17/29]

template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< T, N > a,
Vec128< T, N > b )

◆ MulEven() [18/29]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint16_t > a,
Vec128< uint16_t > b )

References ConcatEven(), and d.

◆ MulEven() [19/29]

template<size_t N>
HWY_API Vec128< uint32_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [20/29]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint32_t > a,
Vec128< uint32_t > b )

References ConcatEven(), and d.

◆ MulEven() [21/29]

template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [22/29]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint8_t > a,
Vec128< uint8_t > b )

References ConcatEven(), and d.

◆ MulEven() [23/29]

template<size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

References ConcatEven(), and d.

◆ MulEven() [24/29]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ MulEven() [25/29]

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 )

◆ MulEven() [26/29]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MulEven ( Vec256< T > a,
const Vec256< T > b )

◆ MulEven() [27/29]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec256< uint32_t > a,
Vec256< uint32_t > b )

◆ MulEven() [28/29]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MulEven ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ MulEven() [29/29]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ MulFixedPoint15() [1/9]

HWY_API svint16_t hwy::HWY_NAMESPACE::MulFixedPoint15 ( svint16_t a,
svint16_t b )

References Add(), BitCast(), d, Mul(), and MulHigh().

◆ MulFixedPoint15() [2/9]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t > a,
Vec128< int16_t > b )

◆ MulFixedPoint15() [3/9]

template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ MulFixedPoint15() [4/9]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ MulFixedPoint15() [5/9]

HWY_API Vec16< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec16< int16_t > a,
Vec16< int16_t > b )

References MulEven(), ResizeBitCast(), and Set().

◆ MulFixedPoint15() [6/9]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec1< int16_t > a,
Vec1< int16_t > b )

◆ MulFixedPoint15() [7/9]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ MulFixedPoint15() [8/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec256< T > a,
const Vec256< T > b )

◆ MulFixedPoint15() [9/9]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ MulHigh() [1/32]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ MulHigh() [2/32]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ MulHigh() [3/32]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ MulHigh() [4/32]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ MulHigh() [5/32]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ MulHigh() [6/32]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::MulHigh ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ MulHigh() [7/32]

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 Vec1< T > hwy::HWY_NAMESPACE::MulHigh ( const Vec1< T > a,
const Vec1< T > b )

◆ MulHigh() [8/32]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulHigh ( const Vec1< T > a,
const Vec1< T > b )

◆ MulHigh() [9/32]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 4)) , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_API V hwy::HWY_NAMESPACE::MulHigh ( V a,
V b )

◆ MulHigh() [10/32]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int16_t > a,
Vec128< int16_t > b )

◆ MulHigh() [11/32]

template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ MulHigh() [12/32]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int32_t > a,
Vec128< int32_t > b )

◆ MulHigh() [13/32]

template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ MulHigh() [14/32]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int8_t > a,
Vec128< int8_t > b )

◆ MulHigh() [15/32]

template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

◆ MulHigh() [16/32]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::MulHigh ( Vec128< T > a,
Vec128< T > b )

◆ MulHigh() [17/32]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::MulHigh ( Vec128< T, 1 > a,
Vec128< T, 1 > b )

References GetLane(), hwy::Mul128(), and Set().

◆ MulHigh() [18/32]

HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::MulHigh ( Vec128< T, 1 > a,
Vec128< T, 1 > b )

References d, MulEven(), and ResizeBitCast().

◆ MulHigh() [19/32]

template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< T, N > a,
Vec128< T, N > b )

◆ MulHigh() [20/32]

HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< T, N > a,
Vec128< T, N > b )

◆ MulHigh() [21/32]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint16_t > a,
Vec128< uint16_t > b )

◆ MulHigh() [22/32]

template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ MulHigh() [23/32]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint32_t > a,
Vec128< uint32_t > b )

◆ MulHigh() [24/32]

template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

◆ MulHigh() [25/32]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint8_t > a,
Vec128< uint8_t > b )

◆ MulHigh() [26/32]

template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::MulHigh ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ MulHigh() [27/32]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ MulHigh() [28/32]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MulHigh ( Vec256< T > a,
const Vec256< T > b )

◆ MulHigh() [29/32]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ MulHigh() [30/32]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ MulHigh() [31/32]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::MulHigh ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ MulHigh() [32/32]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::MulHigh ( Vec64< T > a,
Vec64< T > b )

References GetLane(), hwy::Mul128(), and Set().

◆ MulOdd() [1/25]

HWY_API svint64_t hwy::HWY_NAMESPACE::MulOdd ( const svint64_t a,
const svint64_t b )

◆ MulOdd() [2/25]

HWY_API svuint64_t hwy::HWY_NAMESPACE::MulOdd ( const svuint64_t a,
const svuint64_t b )

◆ MulOdd() [3/25]

template<class V , class DW = RepartitionToWide<DFromV<V>>, HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulOdd ( const V a,
const V b )

◆ MulOdd() [4/25]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)) , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::MulOdd ( const V a,
const V b )

References BitCast(), MulHigh(), MulOdd(), and OddEven().

◆ MulOdd() [5/25]

template<class V , HWY_IF_T_SIZE_V(V, 8) >
HWY_INLINE V hwy::HWY_NAMESPACE::MulOdd ( const V a,
const V b )

References MulHigh(), MulOdd(), and OddEven().

◆ MulOdd() [6/25]

template<class T , size_t N, HWY_IF_UI32(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( const Vec128< T, N > a,
const Vec128< T, N > b )

References BitCast(), and d.

◆ MulOdd() [7/25]

template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > hwy::HWY_NAMESPACE::MulOdd ( V a,
V b )

References d, MulOdd(), and ResizeBitCast().

◆ MulOdd() [8/25]

template<class V , HWY_IF_UI64(TFromV< V >) , HWY_IF_V_SIZE_GT_V(V,(HWY_ARCH_X86_64 ? 16 :8)) >
HWY_API V hwy::HWY_NAMESPACE::MulOdd ( V a,
V b )

References MulOdd().

◆ MulOdd() [9/25]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int16_t > a,
Vec128< int16_t > b )

References ConcatOdd(), and d.

◆ MulOdd() [10/25]

template<size_t N>
HWY_API Vec128< int32_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [11/25]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int32_t > a,
Vec128< int32_t > b )

References ConcatOdd(), and d.

◆ MulOdd() [12/25]

template<size_t N>
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [13/25]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int8_t > a,
Vec128< int8_t > b )

References ConcatOdd(), and d.

Referenced by MulHigh(), MulOdd(), MulOdd(), and MulOdd().

◆ MulOdd() [14/25]

template<size_t N>
HWY_API Vec128< int16_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [15/25]

template<class T , HWY_IF_UI64(T) >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::MulOdd ( Vec128< T > a,
Vec128< T > b )

◆ MulOdd() [16/25]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::MulOdd ( Vec128< T > a,
Vec128< T > b )

◆ MulOdd() [17/25]

template<class T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< MakeWide< T >,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< T, N > a,
Vec128< T, N > b )

◆ MulOdd() [18/25]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint16_t > a,
Vec128< uint16_t > b )

References ConcatOdd(), and d.

◆ MulOdd() [19/25]

template<size_t N>
HWY_API Vec128< uint32_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [20/25]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint32_t > a,
Vec128< uint32_t > b )

References ConcatOdd(), and d.

◆ MulOdd() [21/25]

template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [22/25]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint8_t > a,
Vec128< uint8_t > b )

References ConcatOdd(), and d.

◆ MulOdd() [23/25]

template<size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulOdd ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

References ConcatOdd(), and d.

◆ MulOdd() [24/25]

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 )

◆ MulOdd() [25/25]

template<class T , HWY_IF_UI64(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::MulOdd ( Vec256< T > a,
const Vec256< T > b )

◆ MulSub() [1/9]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulSub ( const Vec1< T > mul,
const Vec1< T > x,
const Vec1< T > sub )

◆ MulSub() [2/9]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::MulSub ( V mul,
V x,
V sub )

References Mul(), and Sub().

◆ MulSub() [3/9]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::MulSub ( Vec128< double, N > mul,
Vec128< double, N > x,
Vec128< double, N > sub )

◆ MulSub() [4/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::MulSub ( Vec128< float, N > mul,
Vec128< float, N > x,
Vec128< float, N > sub )

◆ MulSub() [5/9]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::MulSub ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > sub )

◆ MulSub() [6/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::MulSub ( Vec256< double > mul,
Vec256< double > x,
Vec256< double > sub )

◆ MulSub() [7/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::MulSub ( Vec256< float > mul,
Vec256< float > x,
Vec256< float > sub )

◆ MulSub() [8/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulSub ( Vec512< double > mul,
Vec512< double > x,
Vec512< double > sub )

◆ MulSub() [9/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulSub ( Vec512< float > mul,
Vec512< float > x,
Vec512< float > sub )

◆ NaN()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::NaN ( D d)

References BitCast(), d, hwy::LimitsMax(), and Set().

Referenced by Atan2(), PartialSort(), Select(), and Sort().

◆ Ne()

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ne ( V a,
V b ) -> decltype(a == b)

◆ Ne128() [1/8]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Ne128 ( D d,
const svuint64_t a,
const svuint64_t b )

◆ Ne128() [2/8]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Ne128 ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Ne128() [3/8]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128 ( D d,
V a,
V b )

◆ Ne128() [4/8]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Ne128 ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Ne128() [5/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Ne128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, MaskFromVec(), Ne(), Or(), Reverse2(), and VecFromMask().

Referenced by Ne128(), Ne128(), and Ne128().

◆ Ne128() [6/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Ne128 ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Ne128() [7/8]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128 ( D d,
VFromD< D > a,
VFromD< D > b )

References d, MaskFromVec(), and Ne128().

◆ Ne128() [8/8]

template<class D >
HWY_API Mask128< uint64_t > hwy::HWY_NAMESPACE::Ne128 ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ Ne128Upper() [1/7]

template<class D >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper ( D d,
const VFromD< D > a,
const VFromD< D > b )

◆ Ne128Upper() [2/7]

template<class D >
HWY_INLINE svbool_t hwy::HWY_NAMESPACE::Ne128Upper ( D d,
svuint64_t a,
svuint64_t b )

References d, and Ne().

◆ Ne128Upper() [3/7]

template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper ( D d,
V a,
V b )

◆ Ne128Upper() [4/7]

template<class D , typename T = TFromD<D>>
HWY_INLINE Mask256< T > hwy::HWY_NAMESPACE::Ne128Upper ( D d,
Vec256< T > a,
Vec256< T > b )

◆ Ne128Upper() [5/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

◆ Ne128Upper() [6/7]

template<class D , HWY_IF_U64_D(D) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper ( D d,
VFromD< D > a,
VFromD< D > b )

References d, MaskFromVec(), and Ne128Upper().

◆ Ne128Upper() [7/7]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper ( D ,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ NearestInt() [1/5]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::NearestInt ( const Vec128< float, N > v)

◆ NearestInt() [2/5]

HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec1< float > v)

◆ NearestInt() [3/5]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec256< float > v)

References ConvertTo(), and Round().

◆ NearestInt() [4/5]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::NearestInt ( const Vec512< float > v)

◆ NearestInt() [5/5]

template<class VF , class DI = RebindToSigned<DFromV<VF>>>
HWY_API VFromD< DI > hwy::HWY_NAMESPACE::NearestInt ( VF v)

References ConvertTo(), and Round().

◆ Neg() [1/15]

template<size_t N>
HWY_API Vec128< bfloat16_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< bfloat16_t, N > v)

References BitCast(), d, and Neg().

◆ Neg() [2/15]

template<size_t N>
HWY_API Vec128< float16_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< float16_t, N > v)

◆ Neg() [3/15]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int16_t, N > v)

◆ Neg() [4/15]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int32_t, N > v)

◆ Neg() [5/15]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Neg ( const Vec128< int64_t > v)

◆ Neg() [6/15]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int64_t, N > v)

◆ Neg() [7/15]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< int8_t, N > v)

◆ Neg() [8/15]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::Neg ( const Vec128< T, N > v)

◆ Neg() [9/15]

template<typename T , HWY_IF_FLOAT_OR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Neg ( const Vec1< T > v)

References SignBit(), and Xor().

◆ Neg() [10/15]

template<typename T , HWY_IF_FLOAT_OR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Neg ( const Vec512< T > v)

References d, SignBit(), and Xor().

◆ Neg() [11/15]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::Neg ( const Vec64< int64_t > v)

◆ Neg() [12/15]

HWY_API VBF16 hwy::HWY_NAMESPACE::Neg ( VBF16 v)

References BitCast(), d, Set(), and Xor().

◆ Neg() [13/15]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Neg ( Vec128< T, N > v)

◆ Neg() [14/15]

template<typename T , size_t N, HWY_IF_SIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Neg ( Vec128< T, N > v)

References d, and Zero().

◆ Neg() [15/15]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Neg ( Vec256< T > v)

◆ NegMulAdd() [1/10]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulAdd ( const Vec1< T > mul,
const Vec1< T > x,
const Vec1< T > add )

◆ NegMulAdd() [2/10]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::NegMulAdd ( V mul,
V x,
V add )

References Mul(), and Sub().

◆ NegMulAdd() [3/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::NegMulAdd ( Vec128< double, N > mul,
Vec128< double, N > x,
Vec128< double, N > add )

◆ NegMulAdd() [4/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::NegMulAdd ( Vec128< float, N > mul,
Vec128< float, N > x,
Vec128< float, N > add )

◆ NegMulAdd() [5/10]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::NegMulAdd ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > add )

◆ NegMulAdd() [6/10]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::NegMulAdd ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > add )

◆ NegMulAdd() [7/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::NegMulAdd ( Vec256< double > mul,
Vec256< double > x,
Vec256< double > add )

◆ NegMulAdd() [8/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::NegMulAdd ( Vec256< float > mul,
Vec256< float > x,
Vec256< float > add )

◆ NegMulAdd() [9/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulAdd ( Vec512< double > mul,
Vec512< double > x,
Vec512< double > add )

◆ NegMulAdd() [10/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulAdd ( Vec512< float > mul,
Vec512< float > x,
Vec512< float > add )

◆ NegMulSub() [1/9]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulSub ( const Vec1< T > mul,
const Vec1< T > x,
const Vec1< T > sub )

References Neg().

◆ NegMulSub() [2/9]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::NegMulSub ( V mul,
V x,
V sub )

References BitCast(), d, MulAdd(), and Neg().

◆ NegMulSub() [3/9]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::NegMulSub ( Vec128< double, N > mul,
Vec128< double, N > x,
Vec128< double, N > sub )

◆ NegMulSub() [4/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::NegMulSub ( Vec128< float, N > mul,
Vec128< float, N > x,
Vec128< float, N > sub )

◆ NegMulSub() [5/9]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::NegMulSub ( Vec128< T, N > mul,
Vec128< T, N > x,
Vec128< T, N > sub )

References MulAdd(), and Neg().

Referenced by NegMulSub(), NegMulSub(), and NegMulSub().

◆ NegMulSub() [6/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::NegMulSub ( Vec256< double > mul,
Vec256< double > x,
Vec256< double > sub )

◆ NegMulSub() [7/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::NegMulSub ( Vec256< float > mul,
Vec256< float > x,
Vec256< float > sub )

◆ NegMulSub() [8/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulSub ( Vec512< double > mul,
Vec512< double > x,
Vec512< double > sub )

◆ NegMulSub() [9/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulSub ( Vec512< float > mul,
Vec512< float > x,
Vec512< float > sub )

◆ Not() [1/12]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Not ( const Mask128< T, N > m)

References m, MaskFromVec(), Not(), and VecFromMask().

◆ Not() [2/12]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Not ( const Mask1< T > m)

References m, MaskFromVec(), Not(), and VecFromMask().

◆ Not() [3/12]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Not ( const Mask256< T > m)

References m, MaskFromVec(), Not(), and VecFromMask().

◆ Not() [4/12]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Not ( const V v)

References BitCast(), and Not().

◆ Not() [5/12]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Not ( const Vec128< T > v)

◆ Not() [6/12]

template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Not ( const Vec128< T, N > v)

References BitCast(), d, and Zero().

◆ Not() [7/12]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Not ( const Vec1< T > v)

References BitCast().

◆ Not() [8/12]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Not ( const Vec512< T > v)

References BitCast(), and d.

◆ Not() [9/12]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Not ( Mask512< T > m)

◆ Not() [10/12]

HWY_API svbool_t hwy::HWY_NAMESPACE::Not ( svbool_t m)

References HWY_SVE_PTRUE, and m.

◆ Not() [11/12]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Not ( Vec128< T, N > v)

References BitCast(), and d.

◆ Not() [12/12]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Not ( Vec256< T > v)

◆ OddEven() [1/11]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OddEven ( const V a,
const V b )

◆ OddEven() [2/11]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::OddEven ( const V odd,
const V even )

References BitCast(), d, and OddEven().

◆ OddEven() [3/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::OddEven ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ OddEven() [4/11]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OddEven ( const Vec128< T, N > a,
const Vec128< T, N > b )

◆ OddEven() [5/11]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEven ( const Vec512< T > a,
const Vec512< T > b )

References IfThenElse().

◆ OddEven() [6/11]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::OddEven ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), d, and IfVecThenElse().

◆ OddEven() [7/11]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEven ( Vec1< T > ,
Vec1< T > even )

◆ OddEven() [8/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::OddEven ( Vec256< double > a,
Vec256< double > b )

◆ OddEven() [9/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::OddEven ( Vec256< float > a,
Vec256< float > b )

◆ OddEven() [10/11]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OddEven ( Vec256< T > a,
const Vec256< T > b )

◆ OddEven() [11/11]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_INLINE Vec256< T > hwy::HWY_NAMESPACE::OddEven ( Vec256< T > a,
Vec256< T > b )

◆ OddEvenBlocks() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OddEvenBlocks ( const V odd,
const V even )

◆ OddEvenBlocks() [2/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec128< T, N > ,
Vec128< T, N > even )

◆ OddEvenBlocks() [3/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec1< T > ,
Vec1< T > even )

◆ OddEvenBlocks() [4/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< double > odd,
Vec256< double > even )

◆ OddEvenBlocks() [5/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< float > odd,
Vec256< float > even )

◆ OddEvenBlocks() [6/10]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< T > odd,
Vec256< T > even )

◆ OddEvenBlocks() [7/10]

template<typename T , HWY_IF_NOT_FLOAT3264(T) >
Vec256< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec256< T > odd,
Vec256< T > even )

References BitCast(), and d.

◆ OddEvenBlocks() [8/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< double > odd,
Vec512< double > even )

◆ OddEvenBlocks() [9/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< float > odd,
Vec512< float > even )

◆ OddEvenBlocks() [10/10]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEvenBlocks ( Vec512< T > odd,
Vec512< T > even )

References BitCast(), and d.

◆ operator!=() [1/20]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator!= ( const Vec128< T, N > a,
const Vec128< T, N > b )

◆ operator!=() [2/20]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator!= ( const Vec1< T > a,
const Vec1< T > b )

◆ operator!=() [3/20]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator!= ( const Vec256< T > a,
const Vec256< T > b )

◆ operator!=() [4/20]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< double, N > a,
Vec128< double, N > b )

References Not().

◆ operator!=() [5/20]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< float, N > a,
Vec128< float, N > b )

References Not().

◆ operator!=() [6/20]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ operator!=() [7/20]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ operator!=() [8/20]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

References Not().

◆ operator!=() [9/20]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< int8_t, N > a,
Vec128< int8_t, N > b )

◆ operator!=() [10/20]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator!=() [11/20]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ operator!=() [12/20]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< uint32_t, N > a,
Vec128< uint32_t, N > b )

◆ operator!=() [13/20]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

References Not().

◆ operator!=() [14/20]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator!= ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ operator!=() [15/20]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator!= ( Vec256< double > a,
Vec256< double > b )

◆ operator!=() [16/20]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator!= ( Vec256< float > a,
Vec256< float > b )

◆ operator!=() [17/20]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator!= ( Vec256< T > a,
const Vec256< T > b )

◆ operator!=() [18/20]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator!= ( Vec512< double > a,
Vec512< double > b )

◆ operator!=() [19/20]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator!= ( Vec512< float > a,
Vec512< float > b )

◆ operator!=() [20/20]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator!= ( Vec512< T > a,
Vec512< T > b )

◆ operator%()

template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator% ( Vec1< T > a,
Vec1< T > b )

◆ operator&() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator& ( const Vec128< T, N > a,
const Vec128< T, N > b )

References And().

◆ operator&() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator& ( const Vec1< T > a,
const Vec1< T > b )

References And().

◆ operator&() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator& ( const Vec256< T > a,
const Vec256< T > b )

References And().

◆ operator&() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator& ( const Vec512< T > a,
const Vec512< T > b )

References And().

◆ operator*() [1/32]

template<class V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_LE_V(V, HWY_MAX_BYTES/2) >
HWY_API V hwy::HWY_NAMESPACE::operator* ( const V a,
const V b )

References BitCast(), d, PromoteTo(), and TruncateTo().

◆ operator*() [2/32]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator* ( const Vec128< float, 1 > a,
const Vec128< float, 1 > b )

◆ operator*() [3/32]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ operator*() [4/32]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator*() [5/32]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ operator*() [6/32]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator* ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator*() [7/32]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator* ( const Vec1< T > a,
const Vec1< T > b )

◆ operator*() [8/32]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator* ( const Vec64< double > a,
const Vec64< double > b )

◆ operator*() [9/32]

template<class V , HWY_IF_T_SIZE_V(V, 8) , HWY_IF_V_SIZE_V(V, 8) , HWY_IF_NOT_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::operator* ( V x,
V y )

References d, GetLane(), and Set().

◆ operator*() [10/32]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator* ( Vec128< double, N > a,
Vec128< double, N > b )

◆ operator*() [11/32]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator* ( Vec128< float, N > a,
Vec128< float, N > b )

◆ operator*() [12/32]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator* ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ operator*() [13/32]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator* ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator*() [14/32]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator* ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ operator*() [15/32]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator* ( Vec128< uint64_t, N > a,
Vec128< uint64_t, N > b )

◆ operator*() [16/32]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator* ( Vec256< double > a,
Vec256< double > b )

◆ operator*() [17/32]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator* ( Vec256< float > a,
Vec256< float > b )

◆ operator*() [18/32]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator* ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ operator*() [19/32]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator* ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ operator*() [20/32]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator* ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ operator*() [21/32]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator* ( Vec256< T > a,
const Vec256< T > b )

◆ operator*() [22/32]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator* ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ operator*() [23/32]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator* ( Vec256< uint32_t > a,
Vec256< uint32_t > b )

◆ operator*() [24/32]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator* ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ operator*() [25/32]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator* ( Vec512< double > a,
Vec512< double > b )

◆ operator*() [26/32]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator* ( Vec512< float > a,
Vec512< float > b )

◆ operator*() [27/32]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator* ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ operator*() [28/32]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator* ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ operator*() [29/32]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator* ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ operator*() [30/32]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator* ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ operator*() [31/32]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator* ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ operator*() [32/32]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator* ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ operator+() [1/36]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator+() [2/36]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator+() [3/36]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ operator+() [4/36]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator+() [5/36]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

◆ operator+() [6/36]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ operator+() [7/36]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ operator+() [8/36]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator+() [9/36]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

◆ operator+() [10/36]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator+ ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ operator+() [11/36]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator+ ( const Vec1< double > a,
const Vec1< double > b )

◆ operator+() [12/36]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator+ ( const Vec1< float > a,
const Vec1< float > b )

◆ operator+() [13/36]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator+ ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator+() [14/36]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator+ ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ operator+() [15/36]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator+ ( Vec1< T > a,
Vec1< T > b )

◆ operator+() [16/36]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator+ ( Vec256< double > a,
Vec256< double > b )

◆ operator+() [17/36]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator+ ( Vec256< float > a,
Vec256< float > b )

◆ operator+() [18/36]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ operator+() [19/36]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ operator+() [20/36]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ operator+() [21/36]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ operator+() [22/36]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator+ ( Vec256< T > a,
const Vec256< T > b )

◆ operator+() [23/36]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ operator+() [24/36]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< uint32_t > a,
Vec256< uint32_t > b )

◆ operator+() [25/36]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ operator+() [26/36]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::operator+ ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ operator+() [27/36]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator+ ( Vec512< double > a,
Vec512< double > b )

◆ operator+() [28/36]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator+ ( Vec512< float > a,
Vec512< float > b )

◆ operator+() [29/36]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ operator+() [30/36]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ operator+() [31/36]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ operator+() [32/36]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ operator+() [33/36]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ operator+() [34/36]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ operator+() [35/36]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ operator+() [36/36]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator+ ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ operator-() [1/36]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator-() [2/36]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator-() [3/36]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ operator-() [4/36]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator-() [5/36]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

◆ operator-() [6/36]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ operator-() [7/36]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator-() [8/36]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

◆ operator-() [9/36]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator- ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ operator-() [10/36]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator- ( const Vec1< double > a,
const Vec1< double > b )

◆ operator-() [11/36]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator- ( const Vec1< float > a,
const Vec1< float > b )

◆ operator-() [12/36]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator- ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator-() [13/36]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator- ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ operator-() [14/36]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator- ( Vec128< uint16_t, N > a,
Vec128< uint16_t, N > b )

◆ operator-() [15/36]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator- ( Vec1< T > a,
Vec1< T > b )

◆ operator-() [16/36]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator- ( Vec256< double > a,
Vec256< double > b )

◆ operator-() [17/36]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator- ( Vec256< float > a,
Vec256< float > b )

◆ operator-() [18/36]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator- ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ operator-() [19/36]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator- ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ operator-() [20/36]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator- ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ operator-() [21/36]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::operator- ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ operator-() [22/36]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator- ( Vec256< T > a,
const Vec256< T > b )

◆ operator-() [23/36]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator- ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ operator-() [24/36]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator- ( Vec256< uint32_t > a,
Vec256< uint32_t > b )

◆ operator-() [25/36]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator- ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ operator-() [26/36]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::operator- ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ operator-() [27/36]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator- ( Vec512< double > a,
Vec512< double > b )

◆ operator-() [28/36]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator- ( Vec512< float > a,
Vec512< float > b )

◆ operator-() [29/36]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator- ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ operator-() [30/36]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator- ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ operator-() [31/36]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator- ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ operator-() [32/36]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator- ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ operator-() [33/36]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator- ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ operator-() [34/36]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator- ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ operator-() [35/36]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator- ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ operator-() [36/36]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator- ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ operator/() [1/11]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::operator/ ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator/() [2/11]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator/ ( const Vec128< float, 1 > a,
const Vec128< float, 1 > b )

◆ operator/() [3/11]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::operator/ ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator/() [4/11]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator/ ( const Vec64< double > a,
const Vec64< double > b )

◆ operator/() [5/11]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator/ ( Vec128< T, N > a,
Vec128< T, N > b )

References ApproximateReciprocal().

Referenced by operator/(), and operator/().

◆ operator/() [6/11]

template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator/ ( Vec1< T > a,
Vec1< T > b )

◆ operator/() [7/11]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::operator/ ( Vec256< double > a,
Vec256< double > b )

◆ operator/() [8/11]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::operator/ ( Vec256< float > a,
Vec256< float > b )

◆ operator/() [9/11]

template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator/ ( Vec256< T > a,
const Vec256< T > b )

◆ operator/() [10/11]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator/ ( Vec512< double > a,
Vec512< double > b )

◆ operator/() [11/11]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator/ ( Vec512< float > a,
Vec512< float > b )

◆ operator<() [1/5]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator< ( const Vec1< T > a,
const Vec1< T > b )

◆ operator<() [2/5]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator< ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator<() [3/5]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator< ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator<() [4/5]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator< ( Vec256< T > a,
const Vec256< T > b )

◆ operator<() [5/5]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator< ( Vec512< T > a,
Vec512< T > b )

◆ operator<<() [1/27]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator<< ( const Vec1< T > v,
const Vec1< T > bits )

◆ operator<<() [2/27]

template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator<< ( const Vec512< T > v,
const Vec512< T > bits )

References BitCast().

◆ operator<<() [3/27]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint32_t > v,
const Vec512< uint32_t > bits )

◆ operator<<() [4/27]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator<< ( const Vec512< uint64_t > v,
const Vec512< uint64_t > bits )

◆ operator<<() [5/27]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< int16_t > v,
Vec128< int16_t > bits )

◆ operator<<() [6/27]

template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< int16_t, N > v,
Vec128< int16_t, N > bits )

◆ operator<<() [7/27]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< int32_t > v,
Vec128< int32_t > bits )

◆ operator<<() [8/27]

template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< int32_t, N > v,
Vec128< int32_t, N > bits )

◆ operator<<() [9/27]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< int64_t > v,
Vec128< int64_t > bits )

◆ operator<<() [10/27]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< int8_t > v,
Vec128< int8_t > bits )

◆ operator<<() [11/27]

template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< int8_t, N > v,
Vec128< int8_t, N > bits )

◆ operator<<() [12/27]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< T, N > v,
const Vec128< T, N > bits )

◆ operator<<() [13/27]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< T, N > v,
Vec128< T, N > bits )

◆ operator<<() [14/27]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< T, N > v,
Vec128< T, N > bits )

◆ operator<<() [15/27]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint16_t > v,
Vec128< uint16_t > bits )

◆ operator<<() [16/27]

template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint16_t, N > v,
Vec128< uint16_t, N > bits )

◆ operator<<() [17/27]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint32_t > v,
Vec128< uint32_t > bits )

◆ operator<<() [18/27]

template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint32_t, N > v,
Vec128< uint32_t, N > bits )

◆ operator<<() [19/27]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint64_t > v,
Vec128< uint64_t > bits )

◆ operator<<() [20/27]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint8_t > v,
Vec128< uint8_t > bits )

◆ operator<<() [21/27]

template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator<< ( Vec128< uint8_t, N > v,
Vec128< uint8_t, N > bits )

◆ operator<<() [22/27]

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 )

◆ operator<<() [23/27]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator<< ( Vec256< T > v,
Vec256< T > bits )

◆ operator<<() [24/27]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator<< ( Vec512< uint16_t > v,
Vec512< uint16_t > bits )

◆ operator<<() [25/27]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator<< ( Vec512< uint8_t > v,
Vec512< uint8_t > bits )

◆ operator<<() [26/27]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::operator<< ( Vec64< int64_t > v,
Vec64< int64_t > bits )

◆ operator<<() [27/27]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::operator<< ( Vec64< uint64_t > v,
Vec64< uint64_t > bits )

◆ operator<=() [1/5]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator<= ( const Vec1< T > a,
const Vec1< T > b )

◆ operator<=() [2/5]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator<= ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator<=() [3/5]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator<= ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator<=() [4/5]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator<= ( Vec256< T > a,
const Vec256< T > b )

◆ operator<=() [5/5]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator<= ( Vec512< T > a,
Vec512< T > b )

◆ operator==() [1/20]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator==() [2/20]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator==() [3/20]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator==() [4/20]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

◆ operator==() [5/20]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ operator==() [6/20]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< T, N > a,
const Vec128< T, N > b )

◆ operator==() [7/20]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ operator==() [8/20]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator==() [9/20]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

◆ operator==() [10/20]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator== ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ operator==() [11/20]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator== ( const Vec1< T > a,
const Vec1< T > b )

◆ operator==() [12/20]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator== ( const Vec256< T > a,
const Vec256< T > b )

◆ operator==() [13/20]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator== ( Vec128< int16_t, N > a,
Vec128< int16_t, N > b )

◆ operator==() [14/20]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator== ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator==() [15/20]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator== ( Vec256< double > a,
Vec256< double > b )

◆ operator==() [16/20]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator== ( Vec256< float > a,
Vec256< float > b )

◆ operator==() [17/20]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator== ( Vec256< T > a,
const Vec256< T > b )

◆ operator==() [18/20]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator== ( Vec512< double > a,
Vec512< double > b )

◆ operator==() [19/20]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator== ( Vec512< float > a,
Vec512< float > b )

◆ operator==() [20/20]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator== ( Vec512< T > a,
Vec512< T > b )

◆ operator>() [1/34]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator>() [2/34]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator>() [3/34]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ operator>() [4/34]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator>() [5/34]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

◆ operator>() [6/34]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ operator>() [7/34]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ operator>() [8/34]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator>() [9/34]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

References And(), BitCast(), d, MaskFromVec(), and Or().

◆ operator>() [10/34]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator> ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ operator>() [11/34]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator> ( const Vec1< T > a,
const Vec1< T > b )

◆ operator>() [12/34]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator> ( Vec128< T, N > a,
Vec128< T, N > b )

References operator<().

Referenced by operator>().

◆ operator>() [13/34]

template<typename T , size_t N, HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_INLINE Mask128< T, N > hwy::HWY_NAMESPACE::operator> ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator>() [14/34]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator> ( Vec256< double > a,
Vec256< double > b )

◆ operator>() [15/34]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator> ( Vec256< float > a,
Vec256< float > b )

◆ operator>() [16/34]

HWY_API Mask256< int16_t > hwy::HWY_NAMESPACE::operator> ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ operator>() [17/34]

HWY_API Mask256< int32_t > hwy::HWY_NAMESPACE::operator> ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ operator>() [18/34]

HWY_API Mask256< int64_t > hwy::HWY_NAMESPACE::operator> ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ operator>() [19/34]

HWY_API Mask256< int8_t > hwy::HWY_NAMESPACE::operator> ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ operator>() [20/34]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator> ( Vec256< T > a,
const Vec256< T > b )

◆ operator>() [21/34]

HWY_API Mask256< uint16_t > hwy::HWY_NAMESPACE::operator> ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ operator>() [22/34]

HWY_API Mask256< uint32_t > hwy::HWY_NAMESPACE::operator> ( Vec256< uint32_t > a,
Vec256< uint32_t > b )

◆ operator>() [23/34]

HWY_API Mask256< uint64_t > hwy::HWY_NAMESPACE::operator> ( Vec256< uint64_t > a,
Vec256< uint64_t > b )

◆ operator>() [24/34]

HWY_API Mask256< uint8_t > hwy::HWY_NAMESPACE::operator> ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ operator>() [25/34]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator> ( Vec512< double > a,
Vec512< double > b )

◆ operator>() [26/34]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator> ( Vec512< float > a,
Vec512< float > b )

◆ operator>() [27/34]

HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ operator>() [28/34]

HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ operator>() [29/34]

HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ operator>() [30/34]

HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator> ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ operator>() [31/34]

HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ operator>() [32/34]

HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ operator>() [33/34]

HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ operator>() [34/34]

HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator> ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ operator>=() [1/34]

template<size_t N>
HWY_API Mask128< double, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< double, N > a,
const Vec128< double, N > b )

◆ operator>=() [2/34]

template<size_t N>
HWY_API Mask128< float, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< float, N > a,
const Vec128< float, N > b )

◆ operator>=() [3/34]

template<size_t N>
HWY_API Mask128< int16_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ operator>=() [4/34]

template<size_t N>
HWY_API Mask128< int32_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< int32_t, N > a,
const Vec128< int32_t, N > b )

◆ operator>=() [5/34]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< int64_t, N > a,
const Vec128< int64_t, N > b )

◆ operator>=() [6/34]

template<size_t N>
HWY_API Mask128< int8_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ operator>=() [7/34]

template<size_t N>
HWY_API Mask128< uint16_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ operator>=() [8/34]

template<size_t N>
HWY_API Mask128< uint32_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< uint32_t, N > a,
const Vec128< uint32_t, N > b )

◆ operator>=() [9/34]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< uint64_t, N > a,
const Vec128< uint64_t, N > b )

References Not().

◆ operator>=() [10/34]

template<size_t N>
HWY_API Mask128< uint8_t, N > hwy::HWY_NAMESPACE::operator>= ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ operator>=() [11/34]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator>= ( const Vec1< T > a,
const Vec1< T > b )

◆ operator>=() [12/34]

HWY_API Mask256< uint16_t > hwy::HWY_NAMESPACE::operator>= ( const Vec256< uint16_t > a,
const Vec256< uint16_t > b )

◆ operator>=() [13/34]

HWY_API Mask256< uint32_t > hwy::HWY_NAMESPACE::operator>= ( const Vec256< uint32_t > a,
const Vec256< uint32_t > b )

◆ operator>=() [14/34]

HWY_API Mask256< uint64_t > hwy::HWY_NAMESPACE::operator>= ( const Vec256< uint64_t > a,
const Vec256< uint64_t > b )

◆ operator>=() [15/34]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator>= ( Vec128< T, N > a,
Vec128< T, N > b )

References operator<=().

Referenced by operator>=().

◆ operator>=() [16/34]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::operator>= ( Vec128< T, N > a,
Vec128< T, N > b )

◆ operator>=() [17/34]

HWY_API Mask256< double > hwy::HWY_NAMESPACE::operator>= ( Vec256< double > a,
Vec256< double > b )

◆ operator>=() [18/34]

HWY_API Mask256< float > hwy::HWY_NAMESPACE::operator>= ( Vec256< float > a,
Vec256< float > b )

◆ operator>=() [19/34]

HWY_API Mask256< int16_t > hwy::HWY_NAMESPACE::operator>= ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ operator>=() [20/34]

HWY_API Mask256< int32_t > hwy::HWY_NAMESPACE::operator>= ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ operator>=() [21/34]

HWY_API Mask256< int64_t > hwy::HWY_NAMESPACE::operator>= ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ operator>=() [22/34]

HWY_API Mask256< int8_t > hwy::HWY_NAMESPACE::operator>= ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ operator>=() [23/34]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::operator>= ( Vec256< T > a,
const Vec256< T > b )

◆ operator>=() [24/34]

HWY_API Mask256< uint8_t > hwy::HWY_NAMESPACE::operator>= ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ operator>=() [25/34]

HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator>= ( Vec512< double > a,
Vec512< double > b )

◆ operator>=() [26/34]

HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator>= ( Vec512< float > a,
Vec512< float > b )

◆ operator>=() [27/34]

HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ operator>=() [28/34]

HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ operator>=() [29/34]

HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ operator>=() [30/34]

HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ operator>=() [31/34]

HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ operator>=() [32/34]

HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ operator>=() [33/34]

HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< uint64_t > a,
Vec512< uint64_t > b )

◆ operator>=() [34/34]

HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator>= ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ operator>>() [1/47]

HWY_API Vec128< uint32_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, 1 > in,
const Vec128< uint32_t, 1 > bits )

◆ operator>>() [2/47]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint32_t, N > in,
const Vec128< uint32_t, N > bits )

◆ operator>>() [3/47]

HWY_API Vec128< uint8_t, 1 > hwy::HWY_NAMESPACE::operator>> ( const Vec128< uint8_t, 1 > in,
const Vec128< uint8_t, 1 > bits )

◆ operator>>() [4/47]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator>> ( const Vec1< T > v,
const Vec1< T > bits )

◆ operator>>() [5/47]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int16_t > v,
const Vec512< int16_t > bits )

◆ operator>>() [6/47]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int32_t > v,
const Vec512< int32_t > bits )

◆ operator>>() [7/47]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< int64_t > v,
const Vec512< int64_t > bits )

◆ operator>>() [8/47]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint16_t > v,
const Vec512< uint16_t > bits )

◆ operator>>() [9/47]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint32_t > v,
const Vec512< uint32_t > bits )

◆ operator>>() [10/47]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator>> ( const Vec512< uint64_t > v,
const Vec512< uint64_t > bits )

◆ operator>>() [11/47]

HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< int16_t > v,
Vec128< int16_t > bits )

◆ operator>>() [12/47]

template<size_t N, HWY_IF_V_SIZE_LE(int16_t, N, 8) >
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int16_t, N > v,
Vec128< int16_t, N > bits )

◆ operator>>() [13/47]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int16_t, N > v,
Vec128< int16_t, N > bits )

◆ operator>>() [14/47]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< int32_t > v,
Vec128< int32_t > bits )

◆ operator>>() [15/47]

template<size_t N, HWY_IF_V_SIZE_LE(int32_t, N, 8) >
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int32_t, N > v,
Vec128< int32_t, N > bits )

◆ operator>>() [16/47]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int32_t, N > v,
Vec128< int32_t, N > bits )

◆ operator>>() [17/47]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< int64_t > v,
Vec128< int64_t > bits )

◆ operator>>() [18/47]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int64_t, N > v,
Vec128< int64_t, N > bits )

◆ operator>>() [19/47]

HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< int8_t > v,
Vec128< int8_t > bits )

◆ operator>>() [20/47]

HWY_API Vec128< int8_t, 1 > hwy::HWY_NAMESPACE::operator>> ( Vec128< int8_t, 1 > v,
Vec128< int8_t, 1 > bits )

◆ operator>>() [21/47]

template<size_t N, HWY_IF_V_SIZE_LE(int8_t, N, 8) >
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int8_t, N > v,
Vec128< int8_t, N > bits )

◆ operator>>() [22/47]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< int8_t, N > v,
Vec128< int8_t, N > bits )

References d, and operator>>().

◆ operator>>() [23/47]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< T, N > v,
const Vec128< T, N > bits )

◆ operator>>() [24/47]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< T, N > v,
const Vec128< T, N > bits )

◆ operator>>() [25/47]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< T, N > v,
Vec128< T, N > bits )

◆ operator>>() [26/47]

HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint16_t > v,
Vec128< uint16_t > bits )

◆ operator>>() [27/47]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint16_t, N > in,
const Vec128< uint16_t, N > bits )

◆ operator>>() [28/47]

template<size_t N, HWY_IF_V_SIZE_LE(uint16_t, N, 8) >
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint16_t, N > v,
Vec128< uint16_t, N > bits )

◆ operator>>() [29/47]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint32_t > v,
Vec128< uint32_t > bits )

◆ operator>>() [30/47]

template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint32_t, N > v,
Vec128< uint32_t, N > bits )

◆ operator>>() [31/47]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint64_t > v,
Vec128< uint64_t > bits )

◆ operator>>() [32/47]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint8_t > v,
Vec128< uint8_t > bits )

◆ operator>>() [33/47]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint8_t, N > in,
const Vec128< uint8_t, N > bits )

References And(), BitCast(), d, OddEven(), operator>>(), and Set().

◆ operator>>() [34/47]

template<size_t N, HWY_IF_V_SIZE_LE(uint8_t, N, 8) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::operator>> ( Vec128< uint8_t, N > v,
Vec128< uint8_t, N > bits )

◆ operator>>() [35/47]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< int16_t > v,
Vec256< int16_t > bits )

◆ operator>>() [36/47]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< int32_t > v,
Vec256< int32_t > bits )

◆ operator>>() [37/47]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< int64_t > v,
Vec256< int64_t > bits )

◆ operator>>() [38/47]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< int8_t > v,
Vec256< int8_t > bits )

References And(), BitCast(), d, OddEven(), and Set().

◆ operator>>() [39/47]

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 )

◆ operator>>() [40/47]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< uint16_t > v,
Vec256< uint16_t > bits )

◆ operator>>() [41/47]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< uint32_t > v,
Vec256< uint32_t > bits )

◆ operator>>() [42/47]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< uint64_t > v,
Vec256< uint64_t > bits )

◆ operator>>() [43/47]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::operator>> ( Vec256< uint8_t > v,
Vec256< uint8_t > bits )

References And(), BitCast(), d, OddEven(), and Set().

◆ operator>>() [44/47]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator>> ( Vec512< int8_t > v,
Vec512< int8_t > bits )

References And(), BitCast(), d, OddEven(), and Set().

◆ operator>>() [45/47]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator>> ( Vec512< uint8_t > v,
Vec512< uint8_t > bits )

References And(), BitCast(), d, OddEven(), and Set().

◆ operator>>() [46/47]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::operator>> ( Vec64< int64_t > v,
Vec64< int64_t > bits )

◆ operator>>() [47/47]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::operator>> ( Vec64< uint64_t > v,
Vec64< uint64_t > bits )

◆ operator^() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator^ ( const Vec128< T, N > a,
const Vec128< T, N > b )

References Xor().

◆ operator^() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator^ ( const Vec1< T > a,
const Vec1< T > b )

References Xor().

◆ operator^() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator^ ( const Vec256< T > a,
const Vec256< T > b )

References Xor().

◆ operator^() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator^ ( const Vec512< T > a,
const Vec512< T > b )

References Xor().

◆ operator|() [1/4]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::operator| ( const Vec128< T, N > a,
const Vec128< T, N > b )

References Or().

◆ operator|() [2/4]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator| ( const Vec1< T > a,
const Vec1< T > b )

References Or().

◆ operator|() [3/4]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::operator| ( const Vec256< T > a,
const Vec256< T > b )

References Or().

◆ operator|() [4/4]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator| ( const Vec512< T > a,
const Vec512< T > b )

References Or().

◆ Or() [1/17]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Or ( const Mask128< T, N > a,
Mask128< T, N > b )

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [2/17]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Or ( const Mask1< T > a,
Mask1< T > b )

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [3/17]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Or ( const Mask256< T > a,
Mask256< T > b )

References d, MaskFromVec(), Or(), and VecFromMask().

◆ Or() [4/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Or ( const V a,
const V b )

References BitCast(), and Or().

◆ Or() [5/17]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or ( const Vec128< T, N > a,
const Vec128< T, N > b )

References BitCast(), and d.

Referenced by AbsDiff(), Acos(), AllTrue(), Asin(), Asinh(), Atan(), Atan2(), DemoteTo(), DemoteTo(), DemoteTo(), Exp(), Expm1(), hwy::HWY_NAMESPACE::detail::InterleaveWhole(), IsEitherNaN(), hwy::HWY_NAMESPACE::impl::Log(), Ne128(), Ne128(), Ne128(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), operator>(), operator|(), operator|(), operator|(), operator|(), Or(), Or(), Or(), Or(), Or(), Or3(), Or3(), Or3(), Or3(), Or3(), OrAnd(), OrAnd(), OrAnd(), OrAnd(), OrAnd(), hwy::HWY_NAMESPACE::Pack16< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), PromoteTo(), PromoteTo(), Rol(), Ror(), RotateLeftSame(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRightSame(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), StoreInterleaved2(), hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), and WidenMulPairwiseAdd().

◆ Or() [6/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or ( const Vec1< T > a,
const Vec1< T > b )

References BitCast().

◆ Or() [7/17]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Or ( const Vec512< double > a,
const Vec512< double > b )

◆ Or() [8/17]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Or ( const Vec512< float > a,
const Vec512< float > b )

◆ Or() [9/17]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or ( const Vec512< T > a,
const Vec512< T > b )

References BitCast(), and d.

◆ Or() [10/17]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Or ( Mask512< T > a,
Mask512< T > b )

◆ Or() [11/17]

HWY_API svbool_t hwy::HWY_NAMESPACE::Or ( svbool_t a,
svbool_t b )

◆ Or() [12/17]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Or ( Vec128< double, N > a,
Vec128< double, N > b )

◆ Or() [13/17]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Or ( Vec128< float, N > a,
Vec128< float, N > b )

◆ Or() [14/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ Or() [15/17]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Or ( Vec256< double > a,
Vec256< double > b )

◆ Or() [16/17]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Or ( Vec256< float > a,
Vec256< float > b )

◆ Or() [17/17]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Or ( Vec256< T > a,
Vec256< T > b )

◆ Or3() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Or3 ( V o1,
V o2,
V o3 )

References Or().

◆ Or3() [2/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Or3 ( Vec128< T, N > o1,
Vec128< T, N > o2,
Vec128< T, N > o3 )

References Or().

◆ Or3() [3/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or3 ( Vec1< T > o1,
Vec1< T > o2,
Vec1< T > o3 )

References Or().

◆ Or3() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Or3 ( Vec256< T > o1,
Vec256< T > o2,
Vec256< T > o3 )

References Or().

◆ Or3() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or3 ( Vec512< T > o1,
Vec512< T > o2,
Vec512< T > o3 )

References BitCast(), d, and Or().

◆ OrAnd() [1/5]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::OrAnd ( const V o,
const V a1,
const V a2 )

References And(), and Or().

◆ OrAnd() [2/5]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OrAnd ( const Vec1< T > o,
const Vec1< T > a1,
const Vec1< T > a2 )

References And(), and Or().

◆ OrAnd() [3/5]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::OrAnd ( Vec128< T, N > o,
Vec128< T, N > a1,
Vec128< T, N > a2 )

◆ OrAnd() [4/5]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::OrAnd ( Vec256< T > o,
Vec256< T > a1,
Vec256< T > a2 )

References And(), and Or().

◆ OrAnd() [5/5]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OrAnd ( Vec512< T > o,
Vec512< T > a1,
Vec512< T > a2 )

References And(), BitCast(), d, and Or().

◆ OrderedDemote2MasksTo()

template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, sizeof(TFromD< DFrom >)/2) , class DTo_2 = Repartition<TFromD<DTo>, DFrom>, hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DTo_2 > >()> * = nullptr>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::OrderedDemote2MasksTo ( DTo d_to,
DFrom ,
MFromD< DFrom > a,
MFromD< DFrom > b )

References CombineMasks().

◆ OrderedDemote2To() [1/9]

HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To ( D d,
V a,
V b )

◆ OrderedDemote2To() [2/9]

template<class D , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To ( D d,
V a,
V b )

References d, and ReorderDemote2To().

◆ OrderedDemote2To() [3/9]

template<class D , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_V_SIZE_LE_D(D, 16) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To ( D d,
V a,
V b )

◆ OrderedDemote2To() [4/9]

template<class D , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)|((HWY_TARGET > HWY_AVX3) ?(1<< 8) :0)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To ( D d,
V a,
V b )

◆ OrderedDemote2To() [5/9]

template<class D , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To ( D dbf16,
VFromD< Repartition< float, D > > a,
VFromD< Repartition< float, D > > b )

◆ OrderedDemote2To() [6/9]

template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::OrderedDemote2To ( DN dn,
V a,
V b )

References ReorderDemote2To().

◆ OrderedDemote2To() [7/9]

template<class DN , HWY_IF_SPECIAL_FLOAT_D(DN) , class V , HWY_IF_F32_D(DFromV< V >) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::OrderedDemote2To ( DN dn,
V a,
V b )

References Lanes().

◆ OrderedDemote2To() [8/9]

template<class DN , HWY_IF_SPECIAL_FLOAT_D(DN) , HWY_IF_POW2_LE_D(DN, 2) , class V , HWY_IF_F32_D(DFromV< V >) , class V2 = VFromD<Repartition<TFromV<V>, DN>>, hwy::EnableIf< DFromV< V >().Pow2()==DFromV< V2 >().Pow2()> * = nullptr>
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::OrderedDemote2To ( DN dn,
V a,
V b )

◆ OrderedDemote2To() [9/9]

template<size_t N, int kPow2>
HWY_API VBF16 hwy::HWY_NAMESPACE::OrderedDemote2To ( Simd< bfloat16_t, N, kPow2 > dbf16,
svfloat32_t a,
svfloat32_t b )

◆ OrderedTruncate2To() [1/2]

template<class D , HWY_IF_UNSIGNED_D(D) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedTruncate2To ( D d,
V a,
V b )

References BitCast(), ConcatEven(), ConcatOdd(), and d.

◆ OrderedTruncate2To() [2/2]

template<class DN , HWY_IF_UNSIGNED_D(DN) , class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::OrderedTruncate2To ( DN dn,
V a,
V b )

References Lanes().

◆ PartialSort() [1/2]

template<class D , class Traits , typename T >
HWY_API void hwy::HWY_NAMESPACE::PartialSort ( D d,
Traits st,
T *HWY_RESTRICT keys,
const size_t num,
const size_t k )

◆ PartialSort() [2/2]

template<class D , class Traits , typename T >
void hwy::HWY_NAMESPACE::PartialSort ( D d,
Traits st,
T *HWY_RESTRICT keys,
size_t num,
size_t k,
T *HWY_RESTRICT buf )

◆ Per4LaneBlockShuffle()

template<size_t kIdx3, size_t kIdx2, size_t kIdx1, size_t kIdx0, class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_API V hwy::HWY_NAMESPACE::Per4LaneBlockShuffle ( V v)

◆ PopulationCount() [1/7]

template<class V , class D = DFromV<V>, HWY_IF_U8_D(D) , HWY_IF_V_SIZE_GT_D(D, 8) , HWY_IF_POPCNT(D) >
HWY_API V hwy::HWY_NAMESPACE::PopulationCount ( V v)

◆ PopulationCount() [2/7]

template<class V , class D = DFromV<V>, HWY_IF_U16_D(D) >
HWY_API V hwy::HWY_NAMESPACE::PopulationCount ( V v)

References Add(), And(), BitCast(), d, PopulationCount(), and Set().

◆ PopulationCount() [3/7]

template<typename T , size_t N, HWY_IF_NOT_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::PopulationCount ( Vec128< T, N > v)

◆ PopulationCount() [4/7]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::PopulationCount ( Vec128< T, N > v)

◆ PopulationCount() [5/7]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec1< T > v)

◆ PopulationCount() [6/7]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec256< T > v)

◆ PopulationCount() [7/7]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::PopulationCount ( Vec512< T > v)

◆ PositiveIota()

template<class D , HWY_IF_FLOAT_D(D) >
HWY_INLINE Vec< D > hwy::HWY_NAMESPACE::PositiveIota ( D d)

References d, and Iota().

◆ Print()

template<class D , class V = VFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Print ( const D d,
const char * caption,
V v,
size_t lane_u = 0,
size_t max_lanes = 7 )

◆ PromoteEvenTo()

template<class DTo , typename TFrom >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::PromoteEvenTo ( DTo d_to,
Vec1< TFrom > v )

◆ PromoteInRangeEvenTo()

template<class D , HWY_IF_UI64_D(D) , class V , HWY_IF_F32(TFromV< V >) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteInRangeEvenTo ( D d,
V v )

◆ PromoteInRangeLowerTo()

template<class D , HWY_IF_UI64_D(D) , class V , HWY_IF_F32(TFromV< V >) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteInRangeLowerTo ( D d,
V v )

References d, LowerHalf(), and PromoteInRangeTo().

◆ PromoteInRangeTo() [1/4]

template<class D , HWY_IF_UI64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteInRangeTo ( D d64,
VFromD< Rebind< float, D > > v )

◆ PromoteInRangeTo() [2/4]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteInRangeTo ( D ,
VFromD< Rebind< float, D > > v )

References PromoteInRangeTo().

◆ PromoteInRangeTo() [3/4]

template<class D64 , HWY_IF_UI64_D(D64) >
HWY_API VFromD< D64 > hwy::HWY_NAMESPACE::PromoteInRangeTo ( D64 d64,
VFromD< Rebind< float, D64 > > v )

References MaxLanes().

◆ PromoteInRangeTo() [4/4]

template<class DTo , HWY_IF_UI64_D(DTo) >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::PromoteInRangeTo ( DTo ,
Vec1< float > from )

◆ PromoteLowerTo()

template<class D , class V >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteLowerTo ( D d,
V v )

◆ PromoteMaskTo() [1/4]

template<class DTo , class DFrom >
HWY_API Mask< DTo > hwy::HWY_NAMESPACE::PromoteMaskTo ( DTo d_to,
DFrom d_from,
Mask< DFrom > m )

◆ PromoteMaskTo() [2/4]

template<class DTo , class DFrom , HWY_IF_T_SIZE_GT_D(DTo, sizeof(TFromD< DFrom >)) , hwy::EnableIf< IsSame< MFromD< DTo >, MFromD< DFrom > >()> * = nullptr>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::PromoteMaskTo ( DTo ,
DFrom ,
MFromD< DFrom > m )

References m.

◆ PromoteMaskTo() [3/4]

template<class DTo , class DFrom , HWY_IF_T_SIZE_GT_D(DTo, sizeof(TFromD< DFrom >)) , class DFrom_2 = Rebind<TFromD<DFrom>, DTo>, hwy::EnableIf< IsSame< MFromD< DFrom >, MFromD< DFrom_2 > >()> * = nullptr>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::PromoteMaskTo ( DTo ,
DFrom ,
MFromD< DFrom > m )

References m.

◆ PromoteMaskTo() [4/4]

template<class DTo , class DFrom , HWY_IF_T_SIZE_D(DTo, sizeof(TFromD< DFrom >) *2) >
HWY_API svbool_t hwy::HWY_NAMESPACE::PromoteMaskTo ( DTo d_to,
DFrom d_from,
svbool_t m )

References m.

◆ PromoteTo() [1/88]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo ( D d,
const Vec1< bfloat16_t > v )

◆ PromoteTo() [2/88]

template<class D , class V , HWY_IF_UI64_D(D) , HWY_IF_LANES_D(D, HWY_MAX_LANES_V(V)) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
V v )

References d, and PromoteTo().

◆ PromoteTo() [3/88]

template<class D , class V , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_UI64_D(D) , HWY_IF_LANES_D(D, HWY_MAX_LANES_V(V)) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
V v )

References d, and PromoteTo().

◆ PromoteTo() [4/88]

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 )

◆ PromoteTo() [5/88]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( D d,
Vec32< uint8_t > v )

◆ PromoteTo() [6/88]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( D d,
Vec64< uint16_t > v )

◆ PromoteTo() [7/88]

template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::PromoteTo ( D d,
Vec64< uint32_t > v )

◆ PromoteTo() [8/88]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( D d,
Vec64< uint8_t > v )

◆ PromoteTo() [9/88]

template<class D , typename FromT , HWY_IF_T_SIZE_D(D, 8) , HWY_IF_NOT_FLOAT_D(D) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(FromT) , HWY_IF_T_SIZE_ONE_OF(FromT,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d64,
Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v )

References PromoteTo().

◆ PromoteTo() [10/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
Vec128< bfloat16_t > v )

References BitCast(), and PromoteTo().

◆ PromoteTo() [11/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
Vec128< float16_t > v )

◆ PromoteTo() [12/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
Vec256< bfloat16_t > v )

References BitCast(), and PromoteTo().

◆ PromoteTo() [13/88]

template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
VFromD< Rebind< bfloat16_t, D > > v )

References BitCast(), and PromoteTo().

◆ PromoteTo() [14/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
VFromD< Rebind< bfloat16_t, D > > v )

References BitCast(), and PromoteTo().

◆ PromoteTo() [15/88]

template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df32,
VFromD< Rebind< float16_t, D > > v )

◆ PromoteTo() [16/88]

template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df64,
VFromD< Rebind< int32_t, D > > v )

◆ PromoteTo() [17/88]

template<class D , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D df64,
VFromD< Rebind< uint32_t, D > > v )

◆ PromoteTo() [18/88]

template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_LANES_GT(sizeof(TFromD< D >), sizeof(TFromV< V >)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D di,
V v )

References BitCast(), and PromoteTo().

◆ PromoteTo() [19/88]

template<class D , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D di64,
VFromD< Rebind< float, D > > v )

◆ PromoteTo() [20/88]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo ( D ,
const Vec1< float16_t > v )

◆ PromoteTo() [21/88]

template<class D , HWY_IF_F32_D(D) , size_t N>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< bfloat16_t, N > v )

◆ PromoteTo() [22/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< float > v )

◆ PromoteTo() [23/88]

template<class D , typename FromT , HWY_IF_T_SIZE_D(D, 2 *sizeof(FromT)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) , HWY_IF_UNSIGNED(FromT) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d32,
Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v )

References BitCast(), Zero(), and ZipLower().

◆ PromoteTo() [24/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< int16_t > v )

◆ PromoteTo() [25/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< int32_t > v )

◆ PromoteTo() [26/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< int8_t > v )

◆ PromoteTo() [27/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< int8_t, 8 > v )

◆ PromoteTo() [28/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< uint16_t > v )

◆ PromoteTo() [29/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< uint32_t > v )

◆ PromoteTo() [30/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< uint32_t > v )

◆ PromoteTo() [31/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< uint8_t > v )

◆ PromoteTo() [32/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec128< uint8_t, 8 > v )

◆ PromoteTo() [33/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< float > v )

◆ PromoteTo() [34/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< float16_t > v )

◆ PromoteTo() [35/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< int16_t > v )

◆ PromoteTo() [36/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< int32_t > v )

◆ PromoteTo() [37/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< int8_t > v )

◆ PromoteTo() [38/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< uint16_t > v )

◆ PromoteTo() [39/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< uint32_t > v )

◆ PromoteTo() [40/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec256< uint8_t > v )

◆ PromoteTo() [41/88]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec32< int8_t > v )

◆ PromoteTo() [42/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec32< int8_t > v )

◆ PromoteTo() [43/88]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec32< uint8_t > v )

◆ PromoteTo() [44/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec32< uint8_t > v )

◆ PromoteTo() [45/88]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< int16_t > v )

◆ PromoteTo() [46/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< int16_t > v )

◆ PromoteTo() [47/88]

template<class D , HWY_IF_I64_D(D) >
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< int32_t > v )

◆ PromoteTo() [48/88]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< int8_t > v )

◆ PromoteTo() [49/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< int8_t > v )

◆ PromoteTo() [50/88]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< uint16_t > v )

◆ PromoteTo() [51/88]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< uint16_t > v )

◆ PromoteTo() [52/88]

template<class D , HWY_IF_U64_D(D) >
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< uint32_t > v )

◆ PromoteTo() [53/88]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< uint8_t > v )

◆ PromoteTo() [54/88]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
Vec64< uint8_t > v )

◆ PromoteTo() [55/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D di64,
VFromD< Rebind< float, D > > v )

◆ PromoteTo() [56/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
VFromD< Rebind< int16_t, D > > v )

◆ PromoteTo() [57/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D ,
VFromD< Rebind< int32_t, D > > v )

◆ PromoteTo() [58/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
VFromD< Rebind< int8_t, D > > v )

◆ PromoteTo() [59/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
VFromD< Rebind< uint16_t, D > > v )

◆ PromoteTo() [60/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
VFromD< Rebind< uint32_t, D > > v )

◆ PromoteTo() [61/88]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo ( D d,
VFromD< Rebind< uint8_t, D > > v )

◆ PromoteTo() [62/88]

template<class DTo , typename TFrom , HWY_IF_NOT_SPECIAL_FLOAT(TFrom) >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::PromoteTo ( DTo d,
Vec128< TFrom, HWY_MAX_LANES_D(DTo)> from )

References d, and MaxLanes().

◆ PromoteTo() [63/88]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Vec1< TTo > hwy::HWY_NAMESPACE::PromoteTo ( DTo ,
Vec1< TFrom > from )

◆ PromoteTo() [64/88]

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 )

◆ PromoteTo() [65/88]

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 )

◆ PromoteTo() [66/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 > d,
VFromD< Rebind< hwy::bfloat16_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [67/88]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 > df32,
VBF16 v )

References BitCast().

◆ PromoteTo() [68/88]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float32_t, N, kPow2 > ,
const svfloat16_t v )

◆ PromoteTo() [69/88]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 > ,
const svfloat16_t v )

◆ PromoteTo() [70/88]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 > ,
const svfloat32_t v )

◆ PromoteTo() [71/88]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 > ,
const svint32_t v )

◆ PromoteTo() [72/88]

template<size_t N, int kPow2>
HWY_API svfloat64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< float64_t, N, kPow2 > ,
const svuint32_t v )

◆ PromoteTo() [73/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int16_t, N, kPow2 > d,
VFromD< Rebind< uint8_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [74/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 > d,
VFromD< Rebind< uint16_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [75/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 > d,
VFromD< Rebind< uint8_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [76/88]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int32_t, N, kPow2 > dto,
svint8_t vfrom )

References PromoteTo().

◆ PromoteTo() [77/88]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, -1 > d,
VFromD< Rebind< int16_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References PromoteTo().

◆ PromoteTo() [78/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > d,
VFromD< Rebind< uint16_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [79/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > d,
VFromD< Rebind< uint32_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [80/88]

template<size_t N, int kPow2>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > d,
VFromD< Rebind< uint8_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References BitCast(), d, and PromoteTo().

◆ PromoteTo() [81/88]

template<size_t N, int kPow2>
HWY_API svint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > dto,
svint16_t vfrom )

References PromoteTo().

◆ PromoteTo() [82/88]

template<size_t N, int kPow2>
HWY_API svint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > dto,
svint8_t vfrom )

References PromoteTo().

◆ PromoteTo() [83/88]

template<size_t N, int kPow2>
HWY_API svint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< int64_t, N, kPow2 > ,
const svfloat32_t v )

◆ PromoteTo() [84/88]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint32_t, N, kPow2 > dto,
svuint8_t vfrom )

References PromoteTo().

◆ PromoteTo() [85/88]

template<size_t N>
HWY_API auto hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, -1 > d,
VFromD< Rebind< uint16_t, decltype(d)> > v ) -> VFromD<decltype(d)>

References PromoteTo().

◆ PromoteTo() [86/88]

template<size_t N, int kPow2>
HWY_API svuint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, kPow2 > dto,
svuint16_t vfrom )

References PromoteTo().

◆ PromoteTo() [87/88]

template<size_t N, int kPow2>
HWY_API svuint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, kPow2 > dto,
svuint8_t vfrom )

References PromoteTo().

◆ PromoteTo() [88/88]

template<size_t N, int kPow2>
HWY_API svuint64_t hwy::HWY_NAMESPACE::PromoteTo ( Simd< uint64_t, N, kPow2 > ,
const svfloat32_t v )

◆ PromoteUpperTo() [1/18]

template<class D , class V , typename TD = TFromD<D>, typename TV = TFromV<V>, hwy::EnableIf< IsInteger< TD >() &&IsInteger< TV >() &&(IsSigned< TD >()==IsSigned< TV >())> * = nullptr>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D d,
V v )

◆ PromoteUpperTo() [2/18]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , class V >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D d,
V v )

References d, PromoteTo(), and UpperHalf().

◆ PromoteUpperTo() [3/18]

template<class D , typename FromT , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_T_SIZE_D(D, 2 *sizeof(FromT)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) , HWY_IF_UNSIGNED(FromT) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D d,
Vec128< FromT > v )

References BitCast(), d, Zero(), and ZipUpper().

◆ PromoteUpperTo() [4/18]

template<class D , class T >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D d,
Vec256< T > v )

References d, PromoteTo(), and UpperHalf().

◆ PromoteUpperTo() [5/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D dd,
VFromD< Repartition< float, D > > v )

References PromoteTo(), and UpperHalf().

◆ PromoteUpperTo() [6/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df32,
Vec128< bfloat16_t > v )

References BitCast(), and PromoteUpperTo().

◆ PromoteUpperTo() [7/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df32,
Vec128< float16_t > v )

◆ PromoteUpperTo() [8/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df32,
VFromD< Repartition< bfloat16_t, D > > v )

References BitCast(), and PromoteUpperTo().

◆ PromoteUpperTo() [9/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df32,
VFromD< Repartition< float16_t, D > > v )

References PromoteTo(), and UpperHalf().

◆ PromoteUpperTo() [10/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df64,
Vec128< int32_t > v )

◆ PromoteUpperTo() [11/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D df64,
Vec128< uint32_t > v )

◆ PromoteUpperTo() [12/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D di64,
Vec128< float > v )

References InterleaveUpper().

◆ PromoteUpperTo() [13/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D ,
VFromD< Repartition< int16_t, D > > v )

◆ PromoteUpperTo() [14/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D dd,
VFromD< Repartition< int32_t, D > > v )

◆ PromoteUpperTo() [15/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D ,
VFromD< Repartition< int8_t, D > > v )

◆ PromoteUpperTo() [16/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D ,
VFromD< Repartition< uint16_t, D > > v )

◆ PromoteUpperTo() [17/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D dd,
VFromD< Repartition< uint32_t, D > > v )

◆ PromoteUpperTo() [18/18]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteUpperTo ( D ,
VFromD< Repartition< uint8_t, D > > v )

◆ RandomValues() [1/2]

template<class D , class VU64 , HWY_IF_NOT_FLOAT_D(D) >
Vec< D > hwy::HWY_NAMESPACE::RandomValues ( D d,
VU64 & s0,
VU64 & s1,
const VU64 mask )

◆ RandomValues() [2/2]

template<class DF , class VU64 , HWY_IF_FLOAT_D(DF) >
Vec< DF > hwy::HWY_NAMESPACE::RandomValues ( DF df,
VU64 & s0,
VU64 & s1,
const VU64 mask )

◆ RearrangeToOddPlusEven() [1/19]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const Vec256< int32_t > sum0,
Vec256< int32_t >  )

◆ RearrangeToOddPlusEven() [2/19]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const Vec256< uint32_t > sum0,
Vec256< uint32_t >  )

◆ RearrangeToOddPlusEven() [3/19]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const Vec512< int32_t > sum0,
Vec512< int32_t >  )

◆ RearrangeToOddPlusEven() [4/19]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const Vec512< uint32_t > sum0,
Vec512< uint32_t >  )

◆ RearrangeToOddPlusEven() [5/19]

template<class VW >
HWY_API VW hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const VW sum0,
const VW sum1 )

References Add().

◆ RearrangeToOddPlusEven() [6/19]

template<class VW , HWY_IF_SIGNED_V(VW) >
HWY_API VW hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( const VW sum0,
const VW sum1 )

◆ RearrangeToOddPlusEven() [7/19]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec128< float, N > sum0,
Vec128< float, N > sum1 )

◆ RearrangeToOddPlusEven() [8/19]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec128< int32_t > sum0,
Vec128< int32_t > sum1 )

◆ RearrangeToOddPlusEven() [9/19]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec128< int32_t, N > sum0,
Vec128< int32_t, N >  )

◆ RearrangeToOddPlusEven() [10/19]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec128< uint32_t > sum0,
Vec128< uint32_t > sum1 )

◆ RearrangeToOddPlusEven() [11/19]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec128< uint32_t, N > sum0,
Vec128< uint32_t, N >  )

◆ RearrangeToOddPlusEven() [12/19]

template<typename TW >
HWY_API Vec1< TW > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec1< TW > sum0,
Vec1< TW >  )

◆ RearrangeToOddPlusEven() [13/19]

template<typename TW >
HWY_API Vec256< TW > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec256< TW > sum0,
Vec256< TW > sum1 )

◆ RearrangeToOddPlusEven() [14/19]

HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec32< int32_t > sum0,
Vec32< int32_t > sum1 )

◆ RearrangeToOddPlusEven() [15/19]

HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec32< uint32_t > sum0,
Vec32< uint32_t > sum1 )

◆ RearrangeToOddPlusEven() [16/19]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec64< int32_t > sum0,
Vec64< int32_t > sum1 )

◆ RearrangeToOddPlusEven() [17/19]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( Vec64< uint32_t > sum0,
Vec64< uint32_t > sum1 )

◆ RearrangeToOddPlusEven() [18/19]

HWY_API vint32m8_t hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( vint32m8_t sum0,
vint32m8_t sum1 )

◆ RearrangeToOddPlusEven() [19/19]

HWY_API vuint32m8_t hwy::HWY_NAMESPACE::RearrangeToOddPlusEven ( vuint32m8_t sum0,
vuint32m8_t sum1 )

◆ RebindMask() [1/8]

template<class D , typename MFrom >
HWY_API svbool_t hwy::HWY_NAMESPACE::RebindMask ( const D ,
const MFrom mask )

◆ RebindMask() [2/8]

template<class D , typename MFrom >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::RebindMask ( const D ,
const MFrom mask )

◆ RebindMask() [3/8]

template<typename TFrom , size_t NFrom, class DTo >
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
Mask128< TFrom, NFrom > m )

◆ RebindMask() [4/8]

template<typename TFrom , size_t NFrom, class DTo , HWY_IF_V_SIZE_LE_D(DTo, 16) >
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
Mask128< TFrom, NFrom > m )

References m.

◆ RebindMask() [5/8]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom >
HWY_API Mask1< TTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
Mask1< TFrom > m )

◆ RebindMask() [6/8]

template<class DTo , typename TFrom , typename TTo = TFromD<DTo>>
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
Mask256< TFrom > m )

◆ RebindMask() [7/8]

template<class DTo , typename TFrom >
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
Mask512< TFrom > m )

◆ RebindMask() [8/8]

template<class DTo , class MFrom >
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask ( DTo ,
MFrom mask )

References hwy::CopySameSize().

◆ ReduceMax() [1/3]

template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMax ( D d,
VFromD< D > v )

References d, and hwy::HWY_NAMESPACE::detail::MakeMask().

Referenced by MaxOfLanes(), and ReduceMax().

◆ ReduceMax() [2/3]

template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_API T hwy::HWY_NAMESPACE::ReduceMax ( D d,
VFromD< D > v )

References d, HWY_MAX, and MaxLanes().

◆ ReduceMax() [3/3]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMax ( D d,
VFromD< D > v )

References d, PromoteTo(), and ReduceMax().

◆ ReduceMin() [1/3]

template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMin ( D d,
VFromD< D > v )

References d, and hwy::HWY_NAMESPACE::detail::MakeMask().

Referenced by MinOfLanes(), and ReduceMin().

◆ ReduceMin() [2/3]

template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_API T hwy::HWY_NAMESPACE::ReduceMin ( D d,
VFromD< D > v )

References d, HWY_MIN, and MaxLanes().

◆ ReduceMin() [3/3]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMin ( D d,
VFromD< D > v )

References d, PromoteTo(), and ReduceMin().

◆ ReduceSum() [1/3]

template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceSum ( D d,
VFromD< D > v )

◆ ReduceSum() [2/3]

template<class D , typename T = TFromD<D>, HWY_IF_REDUCE_D(D) >
HWY_API T hwy::HWY_NAMESPACE::ReduceSum ( D d,
VFromD< D > v )

References d, and MaxLanes().

◆ ReduceSum() [3/3]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceSum ( D d,
VFromD< D > v )

◆ ReorderDemote2To() [1/62]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d16,
Vec128< int32_t > a,
Vec128< int32_t > b )

◆ ReorderDemote2To() [2/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d16,
Vec128< int32_t > a,
Vec128< int32_t > b )

◆ ReorderDemote2To() [3/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d16,
Vec128< uint32_t > a,
Vec128< uint32_t > b )

◆ ReorderDemote2To() [4/62]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d32,
Vec128< int64_t > a,
Vec128< int64_t > b )

◆ ReorderDemote2To() [5/62]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d32,
Vec128< int64_t > a,
Vec128< int64_t > b )

◆ ReorderDemote2To() [6/62]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d32,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ ReorderDemote2To() [7/62]

template<class D , HWY_IF_I32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d32,
VFromD< Repartition< int64_t, D > > a,
VFromD< Repartition< int64_t, D > > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [8/62]

template<class D , HWY_IF_U32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d32,
VFromD< Repartition< uint64_t, D > > a,
VFromD< Repartition< uint64_t, D > > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [9/62]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d8,
Vec128< int16_t > a,
Vec128< int16_t > b )

◆ ReorderDemote2To() [10/62]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d8,
Vec128< int16_t > a,
Vec128< int16_t > b )

◆ ReorderDemote2To() [11/62]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d8,
Vec128< uint16_t > a,
Vec128< uint16_t > b )

◆ ReorderDemote2To() [12/62]

template<class D , HWY_IF_I8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d8,
VFromD< Repartition< int16_t, D > > a,
VFromD< Repartition< int16_t, D > > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [13/62]

template<class D , HWY_IF_U8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D d8,
VFromD< Repartition< uint16_t, D > > a,
VFromD< Repartition< uint16_t, D > > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [14/62]

template<class D , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dbf16,
VFromD< Repartition< float, D > > a,
VFromD< Repartition< float, D > > b )

◆ ReorderDemote2To() [15/62]

template<class D , class V , HWY_IF_SIGNED_D(D) , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_D(D, sizeof(TFromV< V >)/2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
V a,
V b )

◆ ReorderDemote2To() [16/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< int64_t > a,
Vec128< int64_t > b )

◆ ReorderDemote2To() [17/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< int64_t > a,
Vec128< int64_t > b )

◆ ReorderDemote2To() [18/62]

template<class D , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< uint16_t > a,
Vec128< uint16_t > b )

◆ ReorderDemote2To() [19/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< uint16_t > a,
Vec128< uint16_t > b )

◆ ReorderDemote2To() [20/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< uint32_t > a,
Vec128< uint32_t > b )

◆ ReorderDemote2To() [21/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< uint32_t > a,
Vec128< uint32_t > b )

◆ ReorderDemote2To() [22/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< uint64_t > a,
Vec128< uint64_t > b )

◆ ReorderDemote2To() [23/62]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec256< uint16_t > a,
Vec256< uint16_t > b )

References BitCast(), d, Min(), ReorderDemote2To(), and Set().

◆ ReorderDemote2To() [24/62]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec256< uint32_t > a,
Vec256< uint32_t > b )

References BitCast(), d, Min(), ReorderDemote2To(), and Set().

◆ ReorderDemote2To() [25/62]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec32< int32_t > a,
Vec32< int32_t > b )

◆ ReorderDemote2To() [26/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec512< int64_t > a,
Vec512< int64_t > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [27/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ ReorderDemote2To() [28/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec512< uint32_t > a,
Vec512< uint32_t > b )

◆ ReorderDemote2To() [29/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec512< uint64_t > a,
Vec512< uint64_t > b )

References Combine(), and DemoteTo().

◆ ReorderDemote2To() [30/62]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec64< int16_t > a,
Vec64< int16_t > b )

◆ ReorderDemote2To() [31/62]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec64< int16_t > a,
Vec64< int16_t > b )

◆ ReorderDemote2To() [32/62]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 4) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
VFromD< Repartition< int64_t, D > > a,
VFromD< Repartition< int64_t, D > > b )

References Combine(), d, and DemoteTo().

◆ ReorderDemote2To() [33/62]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
VFromD< Repartition< uint32_t, D > > a,
VFromD< Repartition< uint32_t, D > > b )

References Combine(), d, and DemoteTo().

◆ ReorderDemote2To() [34/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec128< int16_t > a,
Vec128< int16_t > b )

◆ ReorderDemote2To() [35/62]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec128< int32_t > a,
Vec128< int32_t > b )

◆ ReorderDemote2To() [36/62]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec256< int16_t > a,
Vec256< int16_t > b )

◆ ReorderDemote2To() [37/62]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec256< int32_t > a,
Vec256< int32_t > b )

◆ ReorderDemote2To() [38/62]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec32< int16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec32< int32_t > a,
Vec32< int32_t > b )

◆ ReorderDemote2To() [39/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec32< int32_t > a,
Vec32< int32_t > b )

◆ ReorderDemote2To() [40/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec32< uint32_t > a,
Vec32< uint32_t > b )

◆ ReorderDemote2To() [41/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec512< int16_t > a,
Vec512< int16_t > b )

◆ ReorderDemote2To() [42/62]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec512< int32_t > a,
Vec512< int32_t > b )

◆ ReorderDemote2To() [43/62]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec64< int16_t > a,
Vec64< int16_t > b )

◆ ReorderDemote2To() [44/62]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec64< int32_t > a,
Vec64< int32_t > b )

◆ ReorderDemote2To() [45/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec64< int32_t > a,
Vec64< int32_t > b )

◆ ReorderDemote2To() [46/62]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To ( D dn,
Vec64< int32_t > a,
Vec64< int32_t > b )

◆ ReorderDemote2To() [47/62]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::ReorderDemote2To ( D ,
Vec64< uint32_t > a,
Vec64< uint32_t > b )

◆ ReorderDemote2To() [48/62]

template<class DBF16 , HWY_IF_BF16_D(DBF16) , class VF32 >
HWY_API VFromD< DBF16 > hwy::HWY_NAMESPACE::ReorderDemote2To ( DBF16 dbf16,
VF32 a,
VF32 b )

References BitCast(), IfVecThenElse(), and Set().

◆ ReorderDemote2To() [49/62]

template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , HWY_IF_LANES_D(DN, HWY_MAX_LANES_D(DFromV< V >) *2) >
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::ReorderDemote2To ( DN dn,
V a,
V b )

References HWY_MAX, HWY_MIN, and Lanes().

◆ ReorderDemote2To() [50/62]

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 )

References Combine(), d, and DemoteTo().

◆ ReorderDemote2To() [51/62]

template<class DN , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< DN >) , HWY_IF_POW2_LE_D(DN, 2) , class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< DN >) *2) , class V2 = VFromD<Repartition<TFromV<V>, DN>>, hwy::EnableIf< DFromV< V >().Pow2()==DFromV< V2 >().Pow2()> * = nullptr>
HWY_API VFromD< DN > hwy::HWY_NAMESPACE::ReorderDemote2To ( DN dn,
V a,
V b )

◆ ReorderDemote2To() [52/62]

template<size_t N, int kPow2>
HWY_API VBF16 hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< bfloat16_t, N, kPow2 > dbf16,
svfloat32_t a,
svfloat32_t b )

◆ ReorderDemote2To() [53/62]

template<size_t N, int kPow2>
HWY_API VFromD< Simd< hwy::bfloat16_t, N, kPow2 > > hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< hwy::bfloat16_t, N, kPow2 > dbf16,
VFromD< RepartitionToWide< decltype(dbf16)> > a,
VFromD< RepartitionToWide< decltype(dbf16)> > b )

◆ ReorderDemote2To() [54/62]

template<size_t N, int kPow2>
HWY_API svint16_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< int16_t, N, kPow2 > d16,
svint32_t a,
svint32_t b )

References BitCast().

◆ ReorderDemote2To() [55/62]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< int32_t, N, kPow2 > d32,
svint64_t a,
svint64_t b )

References BitCast().

◆ ReorderDemote2To() [56/62]

template<size_t N, int kPow2>
HWY_API svint8_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< int8_t, N, kPow2 > d8,
svint16_t a,
svint16_t b )

References BitCast().

◆ ReorderDemote2To() [57/62]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint16_t, N, kPow2 > d16,
svint32_t a,
svint32_t b )

References BitCast().

◆ ReorderDemote2To() [58/62]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint16_t, N, kPow2 > d16,
svuint32_t a,
svuint32_t b )

References BitCast().

◆ ReorderDemote2To() [59/62]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint32_t, N, kPow2 > d32,
svint64_t a,
svint64_t b )

References BitCast().

◆ ReorderDemote2To() [60/62]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint32_t, N, kPow2 > d32,
svuint64_t a,
svuint64_t b )

References BitCast().

◆ ReorderDemote2To() [61/62]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint8_t, N, kPow2 > d8,
svint16_t a,
svint16_t b )

References BitCast().

◆ ReorderDemote2To() [62/62]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::ReorderDemote2To ( Simd< uint8_t, N, kPow2 > d8,
svuint16_t a,
svuint16_t b )

References BitCast().

◆ ReorderWidenMulAccumulate() [1/25]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d,
Vec256< int16_t > a,
Vec256< int16_t > b,
const VFromD< D > sum0,
VFromD< D > &  )

◆ ReorderWidenMulAccumulate() [2/25]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d,
Vec512< int16_t > a,
Vec512< int16_t > b,
const VFromD< D > sum0,
VFromD< D > &  )

◆ ReorderWidenMulAccumulate() [3/25]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d32,
Vec32< int16_t > a,
Vec32< int16_t > b,
const Vec32< int32_t > sum0,
Vec32< int32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [4/25]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d32,
Vec64< int16_t > a,
Vec64< int16_t > b,
const Vec64< int32_t > sum0,
Vec64< int32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [5/25]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d32,
Vec64< uint16_t > a,
Vec64< uint16_t > b,
const Vec64< uint32_t > sum0,
Vec64< uint32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [6/25]

template<class D , HWY_IF_I32_D(D) , size_t N, class VI16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D d32,
VI16 a,
VI16 b,
const Vec128< int32_t, N > sum0,
Vec128< int32_t, N > & sum1 )

References Add(), BitCast(), and Mul().

◆ ReorderWidenMulAccumulate() [7/25]

template<class D , HWY_IF_F32_D(D) , size_t N, class VBF16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D df32,
VBF16 a,
VBF16 b,
const Vec128< float, N > sum0,
Vec128< float, N > & sum1 )

References And(), BitCast(), MulAdd(), and Set().

◆ ReorderWidenMulAccumulate() [8/25]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D du32,
Vec32< uint16_t > a,
Vec32< uint16_t > b,
const Vec32< uint32_t > sum0,
Vec32< uint32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [9/25]

template<class D , HWY_IF_U32_D(D) , size_t N, class VU16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D du32,
VU16 a,
VU16 b,
const Vec128< uint32_t, N > sum0,
Vec128< uint32_t, N > & sum1 )

References Add(), And(), BitCast(), Mul(), and Set().

◆ ReorderWidenMulAccumulate() [10/25]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D ,
Vec128< int16_t > a,
Vec128< int16_t > b,
const Vec128< int32_t > sum0,
Vec128< int32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [11/25]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D ,
Vec128< uint16_t > a,
Vec128< uint16_t > b,
const Vec128< uint32_t > sum0,
Vec128< uint32_t > & sum1 )

◆ ReorderWidenMulAccumulate() [12/25]

template<class D32 , HWY_IF_I32_D(D32) , HWY_IF_V_SIZE_LE_D(D32, 16) , class V16 = VFromD<RepartitionToNarrow<D32>>>
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D32 d,
V16 a,
V16 b,
const VFromD< D32 > sum0,
VFromD< D32 > &  )

References d, and WidenMulPairwiseAdd().

◆ ReorderWidenMulAccumulate() [13/25]

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 )

◆ ReorderWidenMulAccumulate() [14/25]

template<class D32 , HWY_IF_F32_D(D32) , class V16 = VFromD<Repartition<bfloat16_t, D32>>>
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D32 df32,
V16 a,
V16 b,
const VFromD< D32 > sum0,
VFromD< D32 > & sum1 )

◆ ReorderWidenMulAccumulate() [15/25]

template<class D32 , HWY_IF_F32_D(D32) >
HWY_API Vec1< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D32 ,
Vec1< bfloat16_t > a,
Vec1< bfloat16_t > b,
const Vec1< float > sum0,
Vec1< float > &  )

◆ ReorderWidenMulAccumulate() [16/25]

template<class D32 , HWY_IF_I32_D(D32) >
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( D32 ,
Vec1< int16_t > a,
Vec1< int16_t > b,
const Vec1< int32_t > sum0,
Vec1< int32_t > &  )

◆ ReorderWidenMulAccumulate() [17/25]

template<class DU32 , HWY_IF_U32_D(DU32) , HWY_IF_V_SIZE_LE_D(DU32, 16) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( DU32 d,
VU16 a,
VU16 b,
const VFromD< DU32 > sum0,
VFromD< DU32 > &  )

References d, and WidenMulPairwiseAdd().

◆ ReorderWidenMulAccumulate() [18/25]

template<class DU32 , HWY_IF_U32_D(DU32) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( DU32 d,
VU16 a,
VU16 b,
const VFromD< DU32 > sum0,
VFromD< DU32 > &  )

◆ ReorderWidenMulAccumulate() [19/25]

template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( DU32 ,
Vec1< uint16_t > a,
Vec1< uint16_t > b,
const Vec1< uint32_t > sum0,
Vec1< uint32_t > &  )

◆ ReorderWidenMulAccumulate() [20/25]

template<size_t N, int kPow2, class VN , class VW >
HWY_API VW hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N, kPow2 > d32,
VN a,
VN b,
const VW sum0,
VW & sum1 )

◆ ReorderWidenMulAccumulate() [21/25]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< float, N, kPow2 > df32,
VBF16 a,
VBF16 b,
const svfloat32_t sum0,
svfloat32_t & sum1 )

References And(), BitCast(), MulAdd(), and Set().

◆ ReorderWidenMulAccumulate() [22/25]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< int32_t, N, kPow2 > d32,
svint16_t a,
svint16_t b,
const svint32_t sum0,
svint32_t & sum1 )

References BitCast().

◆ ReorderWidenMulAccumulate() [23/25]

template<size_t N, int kPow2, class VN , class VW >
HWY_API VW hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< int32_t, N, kPow2 > d32,
VN a,
VN b,
const VW sum0,
VW & sum1 )

◆ ReorderWidenMulAccumulate() [24/25]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< uint32_t, N, kPow2 > d32,
svuint16_t a,
svuint16_t b,
const svuint32_t sum0,
svuint32_t & sum1 )

References BitCast().

◆ ReorderWidenMulAccumulate() [25/25]

template<size_t N, int kPow2, class VN , class VW >
HWY_API VW hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate ( Simd< uint32_t, N, kPow2 > d32,
VN a,
VN b,
const VW sum0,
VW & sum1 )

◆ Replace()

template<class D , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Replace ( D d,
T *HWY_RESTRICT inout,
size_t count,
T new_t,
T old_t )

◆ ReplaceIf()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::ReplaceIf ( D d,
T *HWY_RESTRICT inout,
size_t count,
T new_t,
const Func & func )

◆ ResizeBitCast() [1/4]

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 )

◆ ResizeBitCast() [2/4]

template<class D , class FromV >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ResizeBitCast ( D d,
FromV v )

References BitCast(), and d.

◆ ResizeBitCast() [3/4]

template<class D , class VFrom >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ResizeBitCast ( D d,
VFrom v )

References d, HWY_MAX_LANES_D, HWY_MIN, and Zero().

◆ ResizeBitCast() [4/4]

template<class DTo , class VFrom >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::ResizeBitCast ( DTo ,
VFrom v )

References BitCast(), and ResizeBitCast().

◆ Reverse() [1/15]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse ( D d,
const Vec256< T > v )

◆ Reverse() [2/15]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 2) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse ( D d,
const VFromD< D > v )

◆ Reverse() [3/15]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::Reverse ( D d,
V v )

◆ Reverse() [4/15]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 16) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec128< T > v )

References BitCast(), d, Reverse2(), and Reverse8().

◆ Reverse() [5/15]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 2) >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec128< T, 2 > v )

References d, and Reverse2().

◆ Reverse() [6/15]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 4) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec128< T, 4 > v )

References d, and Reverse4().

◆ Reverse() [7/15]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 8) >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec128< T, 8 > v )

References d, and Reverse8().

◆ Reverse() [8/15]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec16< T > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec16< T > v )

References d, and Reverse2().

◆ Reverse() [9/15]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 2) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec32< T > v )

References BitCast(), d, and Reverse().

◆ Reverse() [10/15]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse ( D d,
VFromD< D > v )

◆ Reverse() [11/15]

template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse ( D d,
VFromD< D > v )

◆ Reverse() [12/15]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse ( D ,
const Vec1< T > v )

◆ Reverse() [13/15]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 1) >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse ( D ,
Vec128< T, 1 > v )

◆ Reverse() [14/15]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 4) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::Reverse ( D d,
Vec64< T > v )

◆ Reverse() [15/15]

template<class D , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 2)|(1<< 4)|(1<< 8)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse ( D d,
VFromD< D > v )

◆ Reverse2() [1/8]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse2 ( D d,
Vec128< T > v )

References BitCast(), and d.

◆ Reverse2() [2/8]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse2 ( D d,
Vec256< T > v )

◆ Reverse2() [3/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 ( D d,
VFromD< D > v )

◆ Reverse2() [4/8]

template<class D , HWY_IF_T_SIZE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 ( D d,
VFromD< D > v )

References d.

◆ Reverse2() [5/8]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 ( D d,
VFromD< D > v )

References d, and MaxLanes().

◆ Reverse2() [6/8]

template<class D , class V = VFromD<D>, HWY_IF_T_SIZE_D(D, 8) >
HWY_API V hwy::HWY_NAMESPACE::Reverse2 ( D ,
const V v )

References OddEven(), and Reverse2().

◆ Reverse2() [7/8]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse2 ( D ,
const Vec1< T > v )

◆ Reverse2() [8/8]

template<class D , typename T = TFromD<D>, HWY_IF_LANES_D(D, 1) >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse2 ( D ,
Vec128< T, 1 > v )

◆ Reverse4() [1/6]

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 )

◆ Reverse4() [2/6]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse4 ( D d,
Vec128< T > v )

References BitCast(), and d.

◆ Reverse4() [3/6]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 ( D d,
VFromD< D > v )

References BitCast(), and d.

Referenced by Reverse(), Reverse8(), and Shuffle0123().

◆ Reverse4() [4/6]

template<class D , HWY_IF_T_SIZE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 ( D d,
VFromD< D > v )

References BitCast(), d, and Reverse2().

◆ Reverse4() [5/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 ( D d,
VFromD< D > v )

References d, and MaxLanes().

◆ Reverse4() [6/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse4 ( D ,
const Vec1< T > v )

◆ Reverse8() [1/6]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse8 ( D d,
Vec128< T > v )

References BitCast(), and d.

◆ Reverse8() [2/6]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 ( D d,
VFromD< D > v )

◆ Reverse8() [3/6]

template<class D , HWY_IF_T_SIZE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 ( D d,
VFromD< D > v )

References BitCast(), d, Reverse2(), and Reverse4().

◆ Reverse8() [4/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 ( D d,
VFromD< D > v )

References d, and MaxLanes().

◆ Reverse8() [5/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse8 ( D ,
const Vec1< T > v )

◆ Reverse8() [6/6]

template<class D , typename T = TFromD<D>, HWY_IF_T_SIZE(T, 8) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Reverse8 ( D d,
Vec256< T > v )

References HWY_ASSERT.

◆ ReverseBits() [1/2]

template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::ReverseBits ( V v)

Referenced by ReverseBits(), and TrailingZeroCount().

◆ ReverseBits() [2/2]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)|(1<< 8)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::ReverseBits ( V v)

◆ ReverseBlocks() [1/6]

template<class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ReverseBlocks ( D d,
V v )

◆ ReverseBlocks() [2/6]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReverseBlocks ( D d,
VFromD< D > v )

References BitCast(), and d.

◆ ReverseBlocks() [3/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ReverseBlocks ( D ,
const Vec1< T > v )

◆ ReverseBlocks() [4/6]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ReverseBlocks ( D ,
const Vec256< T > v )

References SwapAdjacentBlocks().

◆ ReverseBlocks() [5/6]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReverseBlocks ( D ,
VFromD< D > v )

◆ ReverseBlocks() [6/6]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReverseBlocks ( D ,
VFromD< D > v )

◆ ReverseLaneBytes() [1/5]

template<class V , HWY_IF_T_SIZE_V(V, 2) >
HWY_API V hwy::HWY_NAMESPACE::ReverseLaneBytes ( V v)

References BitCast(), d, and Reverse2().

Referenced by ReverseBits(), and ReverseLaneBytes().

◆ ReverseLaneBytes() [2/5]

template<class V , HWY_IF_SIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 2)|(1<< 4)|(1<< 8)) >
HWY_API V hwy::HWY_NAMESPACE::ReverseLaneBytes ( V v)

References BitCast(), d, and ReverseLaneBytes().

◆ ReverseLaneBytes() [3/5]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::ReverseLaneBytes ( Vec1< uint16_t > v)

◆ ReverseLaneBytes() [4/5]

HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::ReverseLaneBytes ( Vec1< uint32_t > v)

◆ ReverseLaneBytes() [5/5]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::ReverseLaneBytes ( Vec1< uint64_t > v)

◆ Rol() [1/4]

template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::Rol ( V a,
V b )

◆ Rol() [2/4]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Rol ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ Rol() [3/4]

template<class T , HWY_IF_UI32(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Rol ( Vec256< T > a,
Vec256< T > b )

◆ Rol() [4/4]

template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Rol ( Vec512< T > a,
Vec512< T > b )

◆ Ror() [1/4]

template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::Ror ( V a,
V b )

References And(), BitCast(), d, Neg(), Or(), Set(), Shl(), and Shr().

Referenced by RotateRightSame().

◆ Ror() [2/4]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Ror ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), d, Neg(), and Rol().

◆ Ror() [3/4]

template<class T , HWY_IF_UI32(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Ror ( Vec256< T > a,
Vec256< T > b )

◆ Ror() [4/4]

template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Ror ( Vec512< T > a,
Vec512< T > b )

◆ RotateLeft()

template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::RotateLeft ( V v)

◆ RotateLeftSame() [1/3]

template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::RotateLeftSame ( V v,
int bits )

References BitCast(), d, Or(), ShiftLeftSame(), and ShiftRightSame().

Referenced by RotateLeftSame().

◆ RotateLeftSame() [2/3]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 4)|(1<< 8)) >
HWY_API V hwy::HWY_NAMESPACE::RotateLeftSame ( V v,
int bits )

References d, Rol(), RotateLeftSame(), and Set().

◆ RotateLeftSame() [3/3]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::RotateLeftSame ( Vec128< T, N > v,
int bits )

References d, Rol(), and Set().

◆ RotateRight() [1/13]

template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::RotateRight ( const V v)

References BitCast(), d, HWY_MIN, Or(), and ShiftLeft().

◆ RotateRight() [2/13]

template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< T, N > v)

References BitCast(), d, HWY_MIN, Or(), and ShiftLeft().

Referenced by RotateRight(), RotateRight(), and RotateRight().

◆ RotateRight() [3/13]

template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< uint16_t, N > v)

References HWY_MIN, Or(), RotateRight(), and ShiftLeft().

◆ RotateRight() [4/13]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< uint32_t, N > v)

◆ RotateRight() [5/13]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::RotateRight ( const Vec128< uint64_t, N > v)

◆ RotateRight() [6/13]

template<int kBits, typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::RotateRight ( const Vec1< T > v)

References BitCast(), d, HWY_MIN, Or(), and ShiftLeft().

◆ RotateRight() [7/13]

template<int kBits, typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< T > v)

References BitCast(), d, HWY_MIN, Or(), and ShiftLeft().

◆ RotateRight() [8/13]

template<int kBits>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< uint16_t > v)

References HWY_MIN, Or(), and ShiftLeft().

◆ RotateRight() [9/13]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< uint32_t > v)

◆ RotateRight() [10/13]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec256< uint64_t > v)

◆ RotateRight() [11/13]

template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec512< uint16_t > v)

References HWY_MIN, Or(), and ShiftLeft().

◆ RotateRight() [12/13]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec512< uint32_t > v)

◆ RotateRight() [13/13]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::RotateRight ( const Vec512< uint64_t > v)

◆ RotateRightSame() [1/3]

template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::RotateRightSame ( V v,
int bits )

References BitCast(), d, Or(), ShiftLeftSame(), and ShiftRightSame().

Referenced by RotateRightSame().

◆ RotateRightSame() [2/3]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 4)|(1<< 8)) >
HWY_API V hwy::HWY_NAMESPACE::RotateRightSame ( V v,
int bits )

References d, Ror(), RotateRightSame(), and Set().

◆ RotateRightSame() [3/3]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::RotateRightSame ( Vec128< T, N > v,
int bits )

References d, Rol(), and Set().

◆ Round() [1/9]

template<class V >
decltype(MaskFromVec(v)) HWY_API V hwy::HWY_NAMESPACE::Round ( const V v)

◆ Round() [2/9]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Round ( const Vec128< float, N > v)

◆ Round() [3/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Round ( const Vec1< T > v)

◆ Round() [4/9]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Round ( Vec128< double, N > v)

◆ Round() [5/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Round ( Vec128< T, N > v)

◆ Round() [6/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Round ( Vec256< double > v)

◆ Round() [7/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Round ( Vec256< float > v)

◆ Round() [8/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Round ( Vec512< double > v)

◆ Round() [9/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Round ( Vec512< float > v)

◆ Run()

template<class Order , typename KeyType >
void hwy::HWY_NAMESPACE::Run ( Algo algo,
KeyType *HWY_RESTRICT inout,
size_t num,
SharedState & shared,
size_t ,
size_t k = 0 )

◆ SafeCopyN()

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeCopyN ( const size_t num,
D d,
const T *HWY_RESTRICT from,
T *HWY_RESTRICT to )

References BlendedStore(), d, FirstN(), and MaskedLoad().

Referenced by Copy().

◆ SafeFillN()

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeFillN ( const size_t num,
const T value,
D d,
T *HWY_RESTRICT to )

References BlendedStore(), d, FirstN(), and Set().

Referenced by Fill().

◆ SaturatedAbs() [1/3]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::SaturatedAbs ( const Vec128< int64_t > v)

◆ SaturatedAbs() [2/3]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::SaturatedAbs ( const Vec64< int64_t > v)

◆ SaturatedAbs() [3/3]

template<class V , HWY_IF_SIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::SaturatedAbs ( V v)

References Max(), and SaturatedNeg().

◆ SaturatedAdd() [1/25]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ SaturatedAdd() [2/25]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ SaturatedAdd() [3/25]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ SaturatedAdd() [4/25]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ SaturatedAdd() [5/25]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int16_t > a,
const Vec1< int16_t > b )

◆ SaturatedAdd() [6/25]

HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< int8_t > a,
const Vec1< int8_t > b )

◆ SaturatedAdd() [7/25]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< uint16_t > a,
const Vec1< uint16_t > b )

◆ SaturatedAdd() [8/25]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( const Vec1< uint8_t > a,
const Vec1< uint8_t > b )

◆ SaturatedAdd() [9/25]

template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::SaturatedAdd ( V a,
V b )

◆ SaturatedAdd() [10/25]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ SaturatedAdd() [11/25]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ SaturatedAdd() [12/25]

template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec128< T, N > a,
Vec128< T, N > b )

◆ SaturatedAdd() [13/25]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ SaturatedAdd() [14/25]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ SaturatedAdd() [15/25]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ SaturatedAdd() [16/25]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ SaturatedAdd() [17/25]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< T > a,
const Vec256< T > b )

◆ SaturatedAdd() [18/25]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ SaturatedAdd() [19/25]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ SaturatedAdd() [20/25]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ SaturatedAdd() [21/25]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ SaturatedAdd() [22/25]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ SaturatedAdd() [23/25]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ SaturatedAdd() [24/25]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ SaturatedAdd() [25/25]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ SaturatedNeg() [1/2]

template<class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_SIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::SaturatedNeg ( V v)

References d, SaturatedSub(), and Zero().

Referenced by SaturatedAbs().

◆ SaturatedNeg() [2/2]

template<class V , HWY_IF_I32(TFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::SaturatedNeg ( V v)

◆ SaturatedSub() [1/25]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< int16_t, N > a,
const Vec128< int16_t, N > b )

◆ SaturatedSub() [2/25]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< int8_t, N > a,
const Vec128< int8_t, N > b )

◆ SaturatedSub() [3/25]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< uint16_t, N > a,
const Vec128< uint16_t, N > b )

◆ SaturatedSub() [4/25]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ SaturatedSub() [5/25]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int16_t > a,
const Vec1< int16_t > b )

◆ SaturatedSub() [6/25]

HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< int8_t > a,
const Vec1< int8_t > b )

◆ SaturatedSub() [7/25]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< uint16_t > a,
const Vec1< uint16_t > b )

◆ SaturatedSub() [8/25]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( const Vec1< uint8_t > a,
const Vec1< uint8_t > b )

◆ SaturatedSub() [9/25]

template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::SaturatedSub ( V a,
V b )

◆ SaturatedSub() [10/25]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( Vec128< int32_t, N > a,
Vec128< int32_t, N > b )

◆ SaturatedSub() [11/25]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::SaturatedSub ( Vec128< int64_t, N > a,
Vec128< int64_t, N > b )

◆ SaturatedSub() [12/25]

template<typename T , size_t N, HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)) , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SaturatedSub ( Vec128< T, N > a,
Vec128< T, N > b )

◆ SaturatedSub() [13/25]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< int16_t > a,
Vec256< int16_t > b )

◆ SaturatedSub() [14/25]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< int32_t > a,
Vec256< int32_t > b )

◆ SaturatedSub() [15/25]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< int64_t > a,
Vec256< int64_t > b )

◆ SaturatedSub() [16/25]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< int8_t > a,
Vec256< int8_t > b )

◆ SaturatedSub() [17/25]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< T > a,
const Vec256< T > b )

◆ SaturatedSub() [18/25]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< uint16_t > a,
Vec256< uint16_t > b )

◆ SaturatedSub() [19/25]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ SaturatedSub() [20/25]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< int16_t > a,
Vec512< int16_t > b )

◆ SaturatedSub() [21/25]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< int32_t > a,
Vec512< int32_t > b )

◆ SaturatedSub() [22/25]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< int64_t > a,
Vec512< int64_t > b )

◆ SaturatedSub() [23/25]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< int8_t > a,
Vec512< int8_t > b )

◆ SaturatedSub() [24/25]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< uint16_t > a,
Vec512< uint16_t > b )

◆ SaturatedSub() [25/25]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ SatWidenMulAccumFixedPoint() [1/2]

template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_D(DI32, 16) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulAccumFixedPoint ( DI32 di32,
VFromD< Rebind< int16_t, DI32 > > a,
VFromD< Rebind< int16_t, DI32 > > b,
VFromD< DI32 > sum )

◆ SatWidenMulAccumFixedPoint() [2/2]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulAccumFixedPoint ( DI32 di32,
VFromD< Rebind< int16_t, DI32 > > a,
VFromD< Rebind< int16_t, DI32 > > b,
VFromD< DI32 > sum )

◆ SatWidenMulPairwiseAccumulate() [1/2]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAccumulate ( DI32 di32,
VFromD< Repartition< int16_t, DI32 > > a,
VFromD< Repartition< int16_t, DI32 > > b,
VFromD< DI32 > sum )

◆ SatWidenMulPairwiseAccumulate() [2/2]

template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_LE_D(DI32, 16) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAccumulate ( DI32 ,
VFromD< Repartition< int16_t, DI32 > > a,
VFromD< Repartition< int16_t, DI32 > > b,
VFromD< DI32 > sum )

◆ SatWidenMulPairwiseAdd() [1/3]

template<class DI16 , class VU8 , class VI8 , class VU8_2 = Vec<Repartition<uint8_t, DI16>>, HWY_IF_I16_D(DI16) , HWY_IF_U8_D(DFromV< VU8 >) , HWY_IF_I8_D(DFromV< VI8 >) , HWY_IF_LANES_D(DFromV< VU8 >, HWY_MAX_LANES_V(VI8)) , HWY_IF_LANES_D(DFromV< VU8 >, HWY_MAX_LANES_V(VU8_2)) >
HWY_API Vec< DI16 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAdd ( DI16 di16,
VU8 a,
VI8 b )

◆ SatWidenMulPairwiseAdd() [2/3]

template<class DI16 , HWY_IF_I16_D(DI16) >
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAdd ( DI16 ,
Vec1< uint8_t > a,
Vec1< int8_t > b )

◆ SatWidenMulPairwiseAdd() [3/3]

template<class DI16 , HWY_IF_I16_D(DI16) , HWY_IF_V_SIZE_LE_D(DI16, 16) >
HWY_API VFromD< DI16 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAdd ( DI16 ,
VFromD< Repartition< uint8_t, DI16 > > a,
VFromD< Repartition< int8_t, DI16 > > b )

◆ ScatterIndex() [1/9]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( Vec1< T > v,
D d,
T *HWY_RESTRICT base,
Vec1< TI > index )

◆ ScatterIndex() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D d,
T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References d, HWY_ALIGN, MaxLanes(), and Store().

Referenced by ScatterIndex().

◆ ScatterIndex() [3/9]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

References d, and ScatterIndex().

◆ ScatterIndex() [4/9]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > indices )

◆ ScatterIndex() [5/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D ,
double *HWY_RESTRICT base,
Vec512< int64_t > index )

◆ ScatterIndex() [6/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D ,
double *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ ScatterIndex() [7/9]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D ,
float *HWY_RESTRICT base,
Vec512< int32_t > index )

◆ ScatterIndex() [8/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D ,
float *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ ScatterIndex() [9/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex ( VFromD< D > v,
D ,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index )

◆ ScatterIndexN()

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndexN ( VFromD< D > v,
D d,
T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > index,
const size_t max_lanes_to_store )

References d, FirstN(), and MaskedScatterIndex().

◆ ScatterOffset() [1/10]

template<class D , typename T = TFromD<D>, typename TI >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( Vec1< T > v,
D d,
T * base,
Vec1< TI > offset )

◆ ScatterOffset() [2/10]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D d,
T *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > offset )

References d, HWY_ALIGN, MaxLanes(), and Store().

Referenced by ScatterIndex(), and ScatterOffset().

◆ ScatterOffset() [3/10]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > offset )

References d, and ScatterOffset().

◆ ScatterOffset() [4/10]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
double *HWY_RESTRICT base,
const Vec256< int64_t > offset )

◆ ScatterOffset() [5/10]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
double *HWY_RESTRICT base,
Vec512< int64_t > offset )

◆ ScatterOffset() [6/10]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
float *HWY_RESTRICT base,
const Vec256< int32_t > offset )

◆ ScatterOffset() [7/10]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
float *HWY_RESTRICT base,
Vec512< int32_t > offset )

◆ ScatterOffset() [8/10]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
TFromD< D > *HWY_RESTRICT base,
Vec256< int32_t > offset )

◆ ScatterOffset() [9/10]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
TFromD< D > *HWY_RESTRICT base,
Vec256< int64_t > offset )

◆ ScatterOffset() [10/10]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset ( VFromD< D > v,
D ,
TFromD< D > *HWY_RESTRICT base,
VFromD< RebindToSigned< D > > offset )

◆ Select() [1/2]

template<class D , class Traits , typename T >
HWY_API void hwy::HWY_NAMESPACE::Select ( D d,
Traits st,
T *HWY_RESTRICT keys,
const size_t num,
const size_t k )

◆ Select() [2/2]

template<class D , class Traits , typename T >
void hwy::HWY_NAMESPACE::Select ( D d,
Traits st,
T *HWY_RESTRICT keys,
const size_t num,
const size_t k,
T *HWY_RESTRICT buf )

◆ Set() [1/16]

template<class D , HWY_IF_BF16_D(D) >
HWY_API svuint16_t hwy::HWY_NAMESPACE::Set ( D d,
bfloat16_t arg )

References d, and Set().

◆ Set() [2/16]

template<class D , typename T2 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set ( D d,
const T2 t )

References d, and MaxLanes().

◆ Set() [3/16]

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 )

References d, and Set().

◆ Set() [4/16]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Set ( D ,
const T2 t )

◆ Set() [5/16]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set ( D ,
double t )

◆ Set() [6/16]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Set ( D ,
double t )

◆ Set() [7/16]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Set ( D ,
double t )

◆ Set() [8/16]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set ( D ,
float t )

◆ Set() [9/16]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Set ( D ,
float t )

◆ Set() [10/16]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Set ( D ,
float t )

◆ Set() [11/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T >
HWY_INLINE Vec128< TFromD< D > > hwy::HWY_NAMESPACE::Set ( D ,
T t )

References hwy::HWY_NAMESPACE::detail::NativeSet().

Referenced by Abs(), Acos(), Acosh(), ApproximateReciprocal(), ApproximateReciprocal(), ApproximateReciprocal(), ApproximateReciprocalSqrt(), ApproximateReciprocalSqrt(), Asin(), Asinh(), hwy::HWY_NAMESPACE::impl::AsinImpl< float >::AsinPoly(), Atan(), Atan2(), Atanh(), hwy::HWY_NAMESPACE::impl::AtanImpl< float >::AtanPoly(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BroadcastSignBit(), hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max(), Compress(), Compress(), CompressNot(), CompressNot(), CompressNot(), ConvertTo(), ConvertTo(), ConvertTo(), ConvertTo(), Cos(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), Dup128MaskFromMaskBits(), Dup128VecFromValues(), Dup128VecFromValues(), Dup128VecFromValues(), Dup128VecFromValues(), DupEven(), DupOdd(), Exp(), Expand(), Expm1(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpPoly(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpReduce(), Fill(), Find(), FirstN(), Generate(), HighestSetBitIndex(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_even_mcols_53(), grk::HWY_NAMESPACE::hwy_decompress_v_parity_odd_mcols_53(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IndicesFromBits128(), hwy::HWY_NAMESPACE::detail::IndicesFromNotBits128(), IndicesFromVec(), IndicesFromVec(), IndicesFromVec(), IndicesFromVec(), Inf(), InsertLane(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLane(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLaneUsingBroadcastAndBlend(), hwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv(), Iota(), IotaForSpecial(), hwy::HWY_NAMESPACE::detail::IsEven(), IsFinite(), IsFinite(), IsFinite(), IsFinite(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), hwy::HWY_NAMESPACE::detail::IsOdd(), hwy::HWY_NAMESPACE::detail::LargerSortValue(), LeadingZeroCount(), Load(), hwy::HWY_NAMESPACE::detail::LoadMaskBits128(), hwy::HWY_NAMESPACE::impl::Log(), Log10(), Log1p(), Log2(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::Log2p1NoSubnormal(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), MaskForDist(), Max(), MaxOfLanes(), MaxOfLanes(), MaxOfLanes(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), Min(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), MulAddSub(), MulEven(), MulFixedPoint15(), MulHigh(), MulHigh(), NaN(), hwy::HWY_NAMESPACE::detail::NativeSet(), Neg(), Neg(), operator*(), operator<<(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Pack(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), PopulationCount(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), PromoteInRangeTo(), PromoteTo(), PromoteTo(), PromoteTo(), RandomValues(), hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), hwy::HWY_NAMESPACE::detail::ReorderWidenMulAccumulateBF16(), Replace(), ReplaceIf(), Rol(), Ror(), RotateLeftSame(), RotateLeftSame(), RotateRightSame(), RotateRightSame(), Round(), hwy::HWY_NAMESPACE::detail::RoundF32ForDemoteToBF16(), SafeFillN(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedNeg(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SatWidenMulPairwiseAccumulate(), Set(), Set(), Set(), Set(), SetAtOrBeforeFirst(), hwy::HWY_NAMESPACE::detail::TraitsLane< Order >::SetKey(), SetOnlyFirst(), ShiftLeft(), ShiftLeftSame(), ShiftLeftSame(), ShiftLeftSame(), ShiftRight(), ShiftRight(), ShiftRight(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), ShiftRightSame(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), SignBit(), Sin(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), hwy::HWY_NAMESPACE::detail::SlideDownLanes(), hwy::HWY_NAMESPACE::detail::SlideUpLanes(), hwy::HWY_NAMESPACE::detail::SmallerSortValue(), hwy::HWY_NAMESPACE::detail::SSE2Mul128(), StoreInterleaved3(), SumOfLanes(), SumOfMulQuadAccumulate(), SumOfMulQuadAccumulate(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), SumsOf8(), TableLookupLanes(), TableLookupLanes(), hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes(), Tanh(), grk::HWY_NAMESPACE::DecompressDcShiftIrrev::transform(), grk::HWY_NAMESPACE::DecompressDcShiftRev::transform(), grk::HWY_NAMESPACE::DecompressRev::transform(), grk::HWY_NAMESPACE::DecompressIrrev::transform(), grk::HWY_NAMESPACE::CompressRev::transform(), grk::HWY_NAMESPACE::CompressIrrev::transform(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), hwy::HWY_NAMESPACE::detail::U64ToF64VecFast(), hwy::HWY_NAMESPACE::detail::UI8ReverseBitsStep(), hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), hwy::HWY_NAMESPACE::detail::UseInt(), hwy::HWY_NAMESPACE::detail::UseInt(), VecFromMask(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), WidenMulPairwiseAdd(), and Zero().

◆ Set() [12/16]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T >
HWY_API Vec128< TFromD< D >, MaxLanes(D())> hwy::HWY_NAMESPACE::Set ( D ,
T t )

◆ Set() [13/16]

template<class D , HWY_IF_NOT_SPECIAL_FLOAT(TFromD< D >) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set ( D d,
TFromD< D > t )

◆ Set() [14/16]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set ( D ,
TFromD< D > t )

◆ Set() [15/16]

template<size_t N, int kPow2>
decltype(Set(Simd< int16_t, N, kPow2 >(), 0)) hwy::HWY_NAMESPACE::Set ( Simd< hwy::bfloat16_t, N, kPow2 > d,
hwy::bfloat16_t arg )

References d, and Set().

◆ Set() [16/16]

template<size_t N, int kPow2>
decltype(Set(Simd< uint16_t, N, kPow2 >(), 0)) hwy::HWY_NAMESPACE::Set ( Simd< hwy::float16_t, N, kPow2 > d,
hwy::float16_t arg )

References d, and Set().

◆ SetAtOrAfterFirst() [1/10]

template<class T , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Mask128< T > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T > mask)

◆ SetAtOrAfterFirst() [2/10]

template<class T >
HWY_API Mask128< T, 1 > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T, 1 > mask)

◆ SetAtOrAfterFirst() [3/10]

template<class T >
HWY_API Mask128< T, 2 > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T, 2 > mask)

◆ SetAtOrAfterFirst() [4/10]

template<class T , size_t N, HWY_IF_LANES_GT(N, 2) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T, N > mask)

◆ SetAtOrAfterFirst() [5/10]

template<class T , size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T, N > mask)

◆ SetAtOrAfterFirst() [6/10]

template<class T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask128< T, N > mask)

◆ SetAtOrAfterFirst() [7/10]

template<class T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask1< T > mask)

◆ SetAtOrAfterFirst() [8/10]

template<class T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask256< T > mask)

◆ SetAtOrAfterFirst() [9/10]

template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( Mask512< T > mask)

◆ SetAtOrAfterFirst() [10/10]

HWY_API svbool_t hwy::HWY_NAMESPACE::SetAtOrAfterFirst ( svbool_t m)

References m, Not(), and SetBeforeFirst().

◆ SetAtOrBeforeFirst() [1/7]

template<class T >
HWY_API Mask128< T, 1 > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask128< T, 1 > )

References d, MaskFromVec(), RebindMask(), and Set().

◆ SetAtOrBeforeFirst() [2/7]

template<class T , size_t N, HWY_IF_LANES_GT(N, 1) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask128< T, N > mask)

◆ SetAtOrBeforeFirst() [3/7]

template<class T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask128< T, N > mask)

◆ SetAtOrBeforeFirst() [4/7]

template<class T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask1< T > )

◆ SetAtOrBeforeFirst() [5/7]

template<class T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask256< T > mask)

◆ SetAtOrBeforeFirst() [6/7]

template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( Mask512< T > mask)

◆ SetAtOrBeforeFirst() [7/7]

HWY_API svbool_t hwy::HWY_NAMESPACE::SetAtOrBeforeFirst ( svbool_t m)

References HWY_SVE_PTRUE, and m.

◆ SetBeforeFirst() [1/5]

template<class T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetBeforeFirst ( Mask128< T, N > mask)

◆ SetBeforeFirst() [2/5]

template<class T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::SetBeforeFirst ( Mask1< T > mask)

References Not().

◆ SetBeforeFirst() [3/5]

template<class T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::SetBeforeFirst ( Mask256< T > mask)

References Not(), and SetAtOrAfterFirst().

◆ SetBeforeFirst() [4/5]

template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetBeforeFirst ( Mask512< T > mask)

◆ SetBeforeFirst() [5/5]

HWY_API svbool_t hwy::HWY_NAMESPACE::SetBeforeFirst ( svbool_t m)

References HWY_SVE_PTRUE, and m.

◆ SetOnlyFirst() [1/9]

template<class T , HWY_IF_NOT_T_SIZE(T, 8) >
HWY_API Mask128< T > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask128< T > mask)

◆ SetOnlyFirst() [2/9]

template<class T >
HWY_API Mask128< T, 1 > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask128< T, 1 > mask)

◆ SetOnlyFirst() [3/9]

template<class T >
HWY_API Mask128< T, 2 > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask128< T, 2 > mask)

◆ SetOnlyFirst() [4/9]

template<class T , size_t N, HWY_IF_LANES_GT(N, 2) , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask128< T, N > mask)

◆ SetOnlyFirst() [5/9]

template<class T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask128< T, N > mask)

◆ SetOnlyFirst() [6/9]

template<class T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask1< T > mask)

◆ SetOnlyFirst() [7/9]

template<class T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask256< T > mask)

◆ SetOnlyFirst() [8/9]

template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetOnlyFirst ( Mask512< T > mask)

◆ SetOnlyFirst() [9/9]

HWY_API svbool_t hwy::HWY_NAMESPACE::SetOnlyFirst ( svbool_t m)

References m.

◆ SetTableIndices() [1/7]

template<class D , typename TI >
HWY_API Indices128< TFromD< D >, MaxLanes(D())> hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

Referenced by Compress(), CompressBlocksNot(), and CompressNot().

◆ SetTableIndices() [2/7]

template<class D , typename TI >
HWY_API VFromD< RebindToUnsigned< D > > hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [3/7]

template<class D , typename TI >
HWY_API Indices128< TFromD< D >, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [4/7]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>, typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [5/7]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , typename TI >
HWY_API Indices128< TFromD< D >, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [6/7]

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 )

References d, IndicesFromVec(), and LoadU().

◆ SetTableIndices() [7/7]

template<class D , HWY_IF_V_SIZE_D(D, 64) , typename TI >
HWY_API Indices512< TFromD< D > > hwy::HWY_NAMESPACE::SetTableIndices ( D d,
const TI * idx )

References d, IndicesFromVec(), and LoadU().

◆ ShiftLeft() [1/23]

template<int kBits, class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeft ( const V v)

◆ ShiftLeft() [2/23]

template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int16_t, N > v)

◆ ShiftLeft() [3/23]

template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int32_t, N > v)

◆ ShiftLeft() [4/23]

template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< int64_t, N > v)

◆ ShiftLeft() [5/23]

template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint16_t, N > v)

◆ ShiftLeft() [6/23]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint32_t, N > v)

◆ ShiftLeft() [7/23]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec128< uint64_t, N > v)

◆ ShiftLeft() [8/23]

template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec1< T > v)

◆ ShiftLeft() [9/23]

template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int16_t > v)

◆ ShiftLeft() [10/23]

template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int32_t > v)

◆ ShiftLeft() [11/23]

template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< int64_t > v)

◆ ShiftLeft() [12/23]

template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint16_t > v)

◆ ShiftLeft() [13/23]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint32_t > v)

◆ ShiftLeft() [14/23]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft ( const Vec512< uint64_t > v)

◆ ShiftLeft() [15/23]

template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeft ( Vec128< T, N > v)

◆ ShiftLeft() [16/23]

template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeft ( Vec128< T, N > v)

References ShiftLeftSame().

◆ ShiftLeft() [17/23]

template<int kBits>
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< int16_t > v)

◆ ShiftLeft() [18/23]

template<int kBits>
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< int32_t > v)

◆ ShiftLeft() [19/23]

template<int kBits>
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< int64_t > v)

◆ ShiftLeft() [20/23]

template<int kBits, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< T > v)

◆ ShiftLeft() [21/23]

template<int kBits>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< uint16_t > v)

◆ ShiftLeft() [22/23]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< uint32_t > v)

◆ ShiftLeft() [23/23]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft ( Vec256< uint64_t > v)

◆ ShiftLeftBytes() [1/7]

template<int kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( const D d,
const V v )

References BitCast(), and d.

◆ ShiftLeftBytes() [2/7]

template<int kBytes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftBytes ( const V v)

◆ ShiftLeftBytes() [3/7]

template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( D d,
Vec256< T > v )

◆ ShiftLeftBytes() [4/7]

template<int kBytes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftBytes ( D d,
VFromD< D > v )

◆ ShiftLeftBytes() [5/7]

template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftBytes ( D d,
VFromD< D > v )

References BitCast(), d, and ShiftLeftBytes().

◆ ShiftLeftBytes() [6/7]

template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Vec128< T, N > v)

◆ ShiftLeftBytes() [7/7]

template<int kBytes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftBytes ( Vec256< T > v)

◆ ShiftLeftLanes() [1/7]

template<size_t kLanes, class V >
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftLanes ( const V v)

◆ ShiftLeftLanes() [2/7]

template<int kLanes, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( const Vec256< T > v)

◆ ShiftLeftLanes() [3/7]

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftLeftLanes ( D d,
const V v )

◆ ShiftLeftLanes() [4/7]

template<int kLanes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftLanes ( D d,
const Vec256< T > v )

References BitCast(), d, and ShiftLeftBytes().

◆ ShiftLeftLanes() [5/7]

template<int kLanes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftLanes ( D d,
VFromD< D > v )

References BitCast(), d, and ShiftLeftBytes().

◆ ShiftLeftLanes() [6/7]

template<int kLanes, class D , typename T = TFromD<D>>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftLanes ( D d,
VFromD< D > v )

References BitCast(), d, and ShiftLeftBytes().

◆ ShiftLeftLanes() [7/7]

template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftLanes ( Vec128< T, N > v)

◆ ShiftLeftSame() [1/24]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int16_t, N > v,
const int bits )

◆ ShiftLeftSame() [2/24]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int32_t, N > v,
const int bits )

◆ ShiftLeftSame() [3/24]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< int64_t, N > v,
const int bits )

◆ ShiftLeftSame() [4/24]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< T, N > v,
int bits )

◆ ShiftLeftSame() [5/24]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint16_t, N > v,
const int bits )

◆ ShiftLeftSame() [6/24]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint32_t, N > v,
const int bits )

◆ ShiftLeftSame() [7/24]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec128< uint64_t, N > v,
const int bits )

◆ ShiftLeftSame() [8/24]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec1< T > v,
int bits )

◆ ShiftLeftSame() [9/24]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int16_t > v,
const int bits )

◆ ShiftLeftSame() [10/24]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int32_t > v,
const int bits )

◆ ShiftLeftSame() [11/24]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< int64_t > v,
const int bits )

◆ ShiftLeftSame() [12/24]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< T > v,
const int bits )

References BitCast(), Set(), and ShiftLeftSame().

◆ ShiftLeftSame() [13/24]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint16_t > v,
const int bits )

◆ ShiftLeftSame() [14/24]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint32_t > v,
const int bits )

◆ ShiftLeftSame() [15/24]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec256< uint64_t > v,
const int bits )

◆ ShiftLeftSame() [16/24]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int16_t > v,
const int bits )

◆ ShiftLeftSame() [17/24]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int32_t > v,
const int bits )

◆ ShiftLeftSame() [18/24]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< int64_t > v,
const int bits )

◆ ShiftLeftSame() [19/24]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< T > v,
const int bits )

References BitCast(), Set(), and ShiftLeftSame().

◆ ShiftLeftSame() [20/24]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint16_t > v,
const int bits )

◆ ShiftLeftSame() [21/24]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint32_t > v,
const int bits )

◆ ShiftLeftSame() [22/24]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame ( const Vec512< uint64_t > v,
const int bits )

◆ ShiftLeftSame() [23/24]

template<typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftLeftSame ( Vec128< T, N > v,
const int bits )

References BitCast(), d, and Set().

◆ ShiftLeftSame() [24/24]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftLeftSame ( Vec256< T > v,
const int bits )

◆ ShiftRight() [1/25]

template<int kBits, class V , HWY_IF_U8_D(DFromV< V >) >
HWY_API V hwy::HWY_NAMESPACE::ShiftRight ( const V v)

◆ ShiftRight() [2/25]

template<int kBits, size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int16_t, N > v)

◆ ShiftRight() [3/25]

template<int kBits, size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int32_t, N > v)

◆ ShiftRight() [4/25]

template<int kBits, size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int64_t, N > v)

◆ ShiftRight() [5/25]

template<int kBits, size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< int8_t, N > v)

References BitCast(), and Set().

◆ ShiftRight() [6/25]

template<int kBits, size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint16_t, N > v)

◆ ShiftRight() [7/25]

template<int kBits, size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint32_t, N > v)

◆ ShiftRight() [8/25]

template<int kBits, size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint64_t, N > v)

◆ ShiftRight() [9/25]

template<int kBits, size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::ShiftRight ( const Vec128< uint8_t, N > v)

◆ ShiftRight() [10/25]

template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRight ( const Vec1< T > v)

◆ ShiftRight() [11/25]

template<int kBits>
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec256< int64_t > v)

◆ ShiftRight() [12/25]

template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int16_t > v)

◆ ShiftRight() [13/25]

template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int32_t > v)

◆ ShiftRight() [14/25]

template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< int64_t > v)

◆ ShiftRight() [15/25]

template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint16_t > v)

◆ ShiftRight() [16/25]

template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint32_t > v)

◆ ShiftRight() [17/25]

template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRight ( const Vec512< uint64_t > v)

◆ ShiftRight() [18/25]

template<int kBits, typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRight ( Vec128< T, N > v)

◆ ShiftRight() [19/25]

template<int kBits, typename T , size_t N, HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRight ( Vec128< T, N > v)

References ShiftRightSame().

◆ ShiftRight() [20/25]

template<int kBits>
HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< int16_t > v)

◆ ShiftRight() [21/25]

template<int kBits>
HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< int32_t > v)

◆ ShiftRight() [22/25]

template<int kBits, typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< T > v)

◆ ShiftRight() [23/25]

template<int kBits>
HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< uint16_t > v)

◆ ShiftRight() [24/25]

template<int kBits>
HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< uint32_t > v)

◆ ShiftRight() [25/25]

template<int kBits>
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftRight ( Vec256< uint64_t > v)

◆ ShiftRightBytes() [1/4]

template<int kBytes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightBytes ( const D d,
const V v )

References BitCast(), and d.

◆ ShiftRightBytes() [2/4]

template<int kBytes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRightBytes ( D d,
Vec256< T > v )

◆ ShiftRightBytes() [3/4]

template<int kBytes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftRightBytes ( D d,
VFromD< D > v )

◆ ShiftRightBytes() [4/4]

template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftRightBytes ( D d,
VFromD< D > v )

◆ ShiftRightLanes() [1/4]

template<size_t kLanes, typename T , size_t N, int kPow2, class V = VFromD<Simd<T, N, kPow2>>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightLanes ( const Simd< T, N, kPow2 > d,
V v )

◆ ShiftRightLanes() [2/4]

template<int kLanes, class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRightLanes ( D d,
const Vec256< T > v )

References BitCast(), d, and ShiftRightBytes().

◆ ShiftRightLanes() [3/4]

template<size_t kLanes, class D , class V = VFromD<D>>
HWY_API V hwy::HWY_NAMESPACE::ShiftRightLanes ( D d,
V v )

◆ ShiftRightLanes() [4/4]

template<int kLanes, class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftRightLanes ( D d,
VFromD< D > v )

References BitCast(), d, and ShiftRightBytes().

Referenced by ShiftRightLanes().

◆ ShiftRightSame() [1/28]

template<size_t N>
HWY_API Vec128< int16_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int16_t, N > v,
const int bits )

◆ ShiftRightSame() [2/28]

template<size_t N>
HWY_API Vec128< int32_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int32_t, N > v,
const int bits )

◆ ShiftRightSame() [3/28]

template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< int64_t, N > v,
const int bits )

◆ ShiftRightSame() [4/28]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< T, N > v,
int bits )

◆ ShiftRightSame() [5/28]

template<size_t N>
HWY_API Vec128< uint16_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint16_t, N > v,
const int bits )

◆ ShiftRightSame() [6/28]

template<size_t N>
HWY_API Vec128< uint32_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint32_t, N > v,
const int bits )

◆ ShiftRightSame() [7/28]

template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec128< uint64_t, N > v,
const int bits )

◆ ShiftRightSame() [8/28]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec1< T > v,
int bits )

◆ ShiftRightSame() [9/28]

HWY_API Vec256< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int16_t > v,
const int bits )

◆ ShiftRightSame() [10/28]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int32_t > v,
const int bits )

◆ ShiftRightSame() [11/28]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< int64_t > v,
const int bits )

◆ ShiftRightSame() [12/28]

HWY_API Vec256< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint16_t > v,
const int bits )

◆ ShiftRightSame() [13/28]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint32_t > v,
const int bits )

◆ ShiftRightSame() [14/28]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec256< uint64_t > v,
const int bits )

◆ ShiftRightSame() [15/28]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int16_t > v,
const int bits )

◆ ShiftRightSame() [16/28]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int32_t > v,
const int bits )

◆ ShiftRightSame() [17/28]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< int64_t > v,
const int bits )

◆ ShiftRightSame() [18/28]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint16_t > v,
const int bits )

◆ ShiftRightSame() [19/28]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint32_t > v,
const int bits )

◆ ShiftRightSame() [20/28]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame ( const Vec512< uint64_t > v,
const int bits )

◆ ShiftRightSame() [21/28]

template<size_t N>
HWY_API Vec128< int8_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec128< int8_t, N > v,
const int bits )

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [22/28]

template<typename T , size_t N, HWY_IF_UNSIGNED(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec128< T, N > v,
const int bits )

◆ ShiftRightSame() [23/28]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec128< uint8_t, N > v,
const int bits )

◆ ShiftRightSame() [24/28]

HWY_API Vec256< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< int8_t > v,
const int bits )

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [25/28]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< T > v,
const int bits )

◆ ShiftRightSame() [26/28]

HWY_API Vec256< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec256< uint8_t > v,
const int bits )

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [27/28]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< int8_t > v,
const int bits )

References BitCast(), Set(), and ShiftRightSame().

◆ ShiftRightSame() [28/28]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame ( Vec512< uint8_t > v,
const int bits )

References BitCast(), Set(), and ShiftRightSame().

◆ Shl()

template<class V >
V hwy::HWY_NAMESPACE::Shl ( V a,
V b )

◆ Shr()

template<class V >
V hwy::HWY_NAMESPACE::Shr ( V a,
V b )

Referenced by Rol(), and Ror().

◆ Shuffle01() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle01 ( const V v)

References BitCast(), and d.

◆ Shuffle01() [2/13]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< double > v)

◆ Shuffle01() [3/13]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< int64_t > v)

◆ Shuffle01() [4/13]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec128< uint64_t > v)

◆ Shuffle01() [5/13]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< double > v)

◆ Shuffle01() [6/13]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< int64_t > v)

◆ Shuffle01() [7/13]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec256< uint64_t > v)

◆ Shuffle01() [8/13]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< double > v)

◆ Shuffle01() [9/13]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< int64_t > v)

◆ Shuffle01() [10/13]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 ( const Vec512< uint64_t > v)

◆ Shuffle01() [11/13]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle01 ( Vec128< T > v)

◆ Shuffle01() [12/13]

template<class T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle01 ( Vec128< T > v)

References Reverse().

◆ Shuffle01() [13/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle01 ( Vec256< T > v)

◆ Shuffle0123() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle0123 ( const V v)

References Shuffle1032(), and Shuffle2301().

◆ Shuffle0123() [2/13]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< float > v)

◆ Shuffle0123() [3/13]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< int32_t > v)

◆ Shuffle0123() [4/13]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec128< uint32_t > v)

◆ Shuffle0123() [5/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< float > v)

◆ Shuffle0123() [6/13]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< int32_t > v)

◆ Shuffle0123() [7/13]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec256< uint32_t > v)

◆ Shuffle0123() [8/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< float > v)

◆ Shuffle0123() [9/13]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< int32_t > v)

◆ Shuffle0123() [10/13]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 ( const Vec512< uint32_t > v)

◆ Shuffle0123() [11/13]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0123 ( Vec128< T > v)

References Reverse4().

Referenced by Shuffle0123().

◆ Shuffle0123() [12/13]

template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0123 ( Vec128< T > v)

References Reverse().

◆ Shuffle0123() [13/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle0123 ( Vec256< T > v)

◆ Shuffle0321() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle0321 ( const V v)

References BitCast(), and d.

◆ Shuffle0321() [2/13]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< float > v)

◆ Shuffle0321() [3/13]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< int32_t > v)

◆ Shuffle0321() [4/13]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec128< uint32_t > v)

◆ Shuffle0321() [5/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< float > v)

◆ Shuffle0321() [6/13]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< int32_t > v)

◆ Shuffle0321() [7/13]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec256< uint32_t > v)

◆ Shuffle0321() [8/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< float > v)

◆ Shuffle0321() [9/13]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< int32_t > v)

◆ Shuffle0321() [10/13]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 ( const Vec512< uint32_t > v)

◆ Shuffle0321() [11/13]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0321 ( Vec128< T > v)

Referenced by Shuffle0321().

◆ Shuffle0321() [12/13]

template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle0321 ( Vec128< T > v)

◆ Shuffle0321() [13/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle0321 ( Vec256< T > v)

◆ Shuffle1032() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle1032 ( const V v)

References BitCast(), and d.

◆ Shuffle1032() [2/13]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< float > v)

◆ Shuffle1032() [3/13]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< int32_t > v)

◆ Shuffle1032() [4/13]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec128< uint32_t > v)

◆ Shuffle1032() [5/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< float > v)

◆ Shuffle1032() [6/13]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< int32_t > v)

◆ Shuffle1032() [7/13]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec256< uint32_t > v)

◆ Shuffle1032() [8/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< float > v)

◆ Shuffle1032() [9/13]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< int32_t > v)

◆ Shuffle1032() [10/13]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 ( const Vec512< uint32_t > v)

◆ Shuffle1032() [11/13]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle1032 ( Vec128< T > v)

Referenced by Shuffle0123(), and Shuffle1032().

◆ Shuffle1032() [12/13]

template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle1032 ( Vec128< T > v)

References BitCast(), d, and Reverse().

◆ Shuffle1032() [13/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle1032 ( Vec256< T > v)

◆ Shuffle2103() [1/13]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle2103 ( const V v)

References BitCast(), and d.

◆ Shuffle2103() [2/13]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< float > v)

◆ Shuffle2103() [3/13]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< int32_t > v)

◆ Shuffle2103() [4/13]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec128< uint32_t > v)

◆ Shuffle2103() [5/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< float > v)

◆ Shuffle2103() [6/13]

HWY_API Vec256< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< int32_t > v)

◆ Shuffle2103() [7/13]

HWY_API Vec256< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec256< uint32_t > v)

◆ Shuffle2103() [8/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< float > v)

◆ Shuffle2103() [9/13]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< int32_t > v)

◆ Shuffle2103() [10/13]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 ( const Vec512< uint32_t > v)

◆ Shuffle2103() [11/13]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle2103 ( Vec128< T > v)

Referenced by Shuffle2103().

◆ Shuffle2103() [12/13]

template<class T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Shuffle2103 ( Vec128< T > v)

◆ Shuffle2103() [13/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle2103 ( Vec256< T > v)

◆ Shuffle2301() [1/14]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Shuffle2301 ( const V v)

References d, and Reverse2().

◆ Shuffle2301() [2/14]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< float > v)

◆ Shuffle2301() [3/14]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< float, N > v)

◆ Shuffle2301() [4/14]

HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< int32_t > v)

◆ Shuffle2301() [5/14]

HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec128< uint32_t > v)

◆ Shuffle2301() [6/14]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec256< float > v)

◆ Shuffle2301() [7/14]

template<typename T , HWY_IF_UI32(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec256< T > v)

◆ Shuffle2301() [8/14]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec512< float > v)

◆ Shuffle2301() [9/14]

template<typename T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec512< T > v)

◆ Shuffle2301() [10/14]

HWY_API Vec64< float > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< float > v)

◆ Shuffle2301() [11/14]

HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< int32_t > v)

◆ Shuffle2301() [12/14]

HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::Shuffle2301 ( const Vec64< uint32_t > v)

◆ Shuffle2301() [13/14]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Shuffle2301 ( Vec128< T, N > v)

References Reverse2().

◆ Shuffle2301() [14/14]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Shuffle2301 ( Vec256< T > v)

◆ SignBit()

template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::SignBit ( D d)

◆ Sin()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Sin ( D d,
V x )

Highway SIMD version of std::sin(x).

Valid Lane Types: float32, float64 Max Error: ULP = 3 Valid Range: [-39000, +39000]

Returns
sine of 'x'

References Abs(), d, MulAdd(), Set(), Xor(), and Zero().

Referenced by CallSin().

◆ SinCos()

template<class D , class V >
HWY_INLINE void hwy::HWY_NAMESPACE::SinCos ( D d,
V x,
V & s,
V & c )

Highway SIMD version of SinCos.

Compute the sine and cosine at the same time The performance should be around the same as calling Sin.

Valid Lane Types: float32, float64 Max Error: ULP = 1 Valid Range: [-39000, +39000]

Returns
sine and cosine of 'x'

References d.

Referenced by CallSinCos().

◆ Sinh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Sinh ( D d,
V x )

Highway SIMD version of std::sinh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-88.7228, +88.7228], float64[-709, +709]

Returns
hyperbolic sine of 'x'

References Add(), And(), d, Div(), Expm1(), Mul(), Set(), SignBit(), and Xor().

Referenced by CallSinh().

◆ Slide1Down() [1/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Down ( D d,
VFromD< D > v )

References d, and SlideDownLanes().

Referenced by MulHigh(), and SlideMask1Down().

◆ Slide1Down() [2/3]

template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Down ( D d,
VFromD< D > v )

References d, UpperHalf(), and ZeroExtendVector().

◆ Slide1Down() [3/3]

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Down ( D d,
VFromD< D > v )

References d, and Zero().

◆ Slide1Up() [1/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Up ( D d,
VFromD< D > v )

References d, and SlideUpLanes().

Referenced by SlideMask1Up().

◆ Slide1Up() [2/3]

template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Up ( D d,
VFromD< D > v )

References ConcatLowerLower(), d, and Zero().

◆ Slide1Up() [3/3]

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Up ( D d,
VFromD< D > v )

References d, and Zero().

◆ SlideDownBlocks()

template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownBlocks ( D d,
VFromD< D > v )

◆ SlideDownLanes() [1/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownLanes ( D d,
VFromD< D > v,
size_t amt )

◆ SlideDownLanes() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownLanes ( D d,
VFromD< D > v,
size_t amt )

◆ SlideDownLanes() [3/3]

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownLanes ( D d,
VFromD< D > v,
size_t amt )

Referenced by Slide1Down(), and SlideMaskDownLanes().

◆ SlideMask1Down() [1/2]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMask1Down ( D d,
Mask< D > m )

◆ SlideMask1Down() [2/2]

template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMask1Down ( D d,
MFromD< D > m )

References And(), d, m, and MaxLanes().

◆ SlideMask1Up() [1/2]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMask1Up ( D d,
Mask< D > m )

References d, m, MaskFromVec(), Slide1Up(), and VecFromMask().

◆ SlideMask1Up() [2/2]

template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMask1Up ( D d,
MFromD< D > m )

References And(), d, m, and MaxLanes().

◆ SlideMaskDownLanes() [1/2]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMaskDownLanes ( D d,
Mask< D > m,
size_t amt )

◆ SlideMaskDownLanes() [2/2]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMaskDownLanes ( D d,
MFromD< D > m,
size_t amt )

References d, m, and MaxLanes().

◆ SlideMaskUpLanes() [1/2]

template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMaskUpLanes ( D d,
Mask< D > m,
size_t amt )

◆ SlideMaskUpLanes() [2/2]

template<class D >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMaskUpLanes ( D d,
MFromD< D > m,
size_t amt )

References d, m, and MaxLanes().

◆ SlideUpBlocks()

template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpBlocks ( D d,
VFromD< D > v )

◆ SlideUpLanes() [1/3]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpLanes ( D d,
VFromD< D > v,
size_t amt )

◆ SlideUpLanes() [2/3]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpLanes ( D d,
VFromD< D > v,
size_t amt )

◆ SlideUpLanes() [3/3]

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpLanes ( D d,
VFromD< D > v,
size_t amt )

Referenced by Slide1Up(), and SlideMaskUpLanes().

◆ Sort() [1/2]

template<class D , class Traits , typename T >
HWY_API void hwy::HWY_NAMESPACE::Sort ( D d,
Traits st,
T *HWY_RESTRICT keys,
const size_t num )

References d, HWY_ALIGN, HWY_MAX_BYTES, and Sort().

◆ Sort() [2/2]

template<class D , class Traits , typename T >
void hwy::HWY_NAMESPACE::Sort ( D d,
Traits st,
T *HWY_RESTRICT keys,
const size_t num,
T *HWY_RESTRICT buf )

◆ Sqrt() [1/13]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< double, N > v)

◆ Sqrt() [2/13]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< float, N > v)

◆ Sqrt() [3/13]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Sqrt ( const Vec128< T, N > v)

◆ Sqrt() [4/13]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Sqrt ( const Vec512< double > v)

◆ Sqrt() [5/13]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Sqrt ( const Vec512< float > v)

◆ Sqrt() [6/13]

HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::Sqrt ( Vec128< float, 1 > v)

◆ Sqrt() [7/13]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Sqrt ( Vec128< T, N > v)

◆ Sqrt() [8/13]

HWY_API Vec1< double > hwy::HWY_NAMESPACE::Sqrt ( Vec1< double > v)

◆ Sqrt() [9/13]

HWY_API Vec1< float > hwy::HWY_NAMESPACE::Sqrt ( Vec1< float > v)

◆ Sqrt() [10/13]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Sqrt ( Vec256< double > v)

◆ Sqrt() [11/13]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Sqrt ( Vec256< float > v)

◆ Sqrt() [12/13]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Sqrt ( Vec256< T > v)

◆ Sqrt() [13/13]

HWY_API Vec64< double > hwy::HWY_NAMESPACE::Sqrt ( Vec64< double > v)

◆ Store() [1/17]

template<class V , class D >
HWY_API void hwy::HWY_NAMESPACE::Store ( const V v,
D d,
TFromD< D > *HWY_RESTRICT p )

References d, p, and StoreU().

◆ Store() [2/17]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Store ( const Vec1< T > v,
D ,
T *HWY_RESTRICT aligned )

◆ Store() [3/17]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< double > v,
D ,
double *HWY_RESTRICT aligned )

◆ Store() [4/17]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< float > v,
D ,
float *HWY_RESTRICT aligned )

◆ Store() [5/17]

template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec128< T > v,
D ,
T *HWY_RESTRICT aligned )

◆ Store() [6/17]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec256< double > v,
D ,
double *HWY_RESTRICT aligned )

◆ Store() [7/17]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec256< float > v,
D ,
float *HWY_RESTRICT aligned )

◆ Store() [8/17]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec256< T > v,
D d,
T *HWY_RESTRICT aligned )

◆ Store() [9/17]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec32< float > v,
D ,
float *HWY_RESTRICT p )

◆ Store() [10/17]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec512< float > v,
D ,
float *HWY_RESTRICT aligned )

◆ Store() [11/17]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec64< double > v,
D ,
double *HWY_RESTRICT p )

◆ Store() [12/17]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( Vec64< float > v,
D ,
float *HWY_RESTRICT p )

◆ Store() [13/17]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< D > v,
D d,
T *HWY_RESTRICT p )

References BitCast(), hwy::CopyBytes(), d, GetLane(), and p.

◆ Store() [14/17]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT aligned )

◆ Store() [15/17]

template<class D , HWY_RVV_IF_EMULATED_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

◆ Store() [16/17]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

References hwy::CopyBytes(), d, and p.

◆ Store() [17/17]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store ( VFromD< D > v,
D ,
double *HWY_RESTRICT aligned )

◆ StoreInterleaved2() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( const Vec1< T > v0,
const Vec1< T > v1,
D d,
T *HWY_RESTRICT unaligned )

References d, and StoreU().

◆ StoreInterleaved2() [2/6]

template<class V , class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( V part0,
V part1,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreInterleaved2() [3/6]

template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( VFromD< D > v0,
VFromD< D > v1,
D d,
T *HWY_RESTRICT unaligned )

◆ StoreInterleaved2() [4/6]

template<class D , typename T = TFromD<D>, HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( VFromD< D > v0,
VFromD< D > v1,
D d,
T *HWY_RESTRICT unaligned )

◆ StoreInterleaved2() [5/6]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( VFromD< D > v0,
VFromD< D > v1,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

References d, and MaxLanes().

◆ StoreInterleaved2() [6/6]

template<class D , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 ( VFromD< D > v0,
VFromD< D > v1,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreInterleaved3() [1/7]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( const Vec1< T > v0,
const Vec1< T > v1,
const Vec1< T > v2,
D d,
T *HWY_RESTRICT unaligned )

References d, and StoreU().

◆ StoreInterleaved3() [2/7]

template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_LE_D(D, 4) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > part0,
VFromD< D > part1,
VFromD< D > part2,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreInterleaved3() [3/7]

template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
D d,
T *HWY_RESTRICT unaligned )

◆ StoreInterleaved3() [4/7]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
D d,
T *HWY_RESTRICT unaligned )

References d, and StoreInterleaved3().

◆ StoreInterleaved3() [5/7]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

References d, and MaxLanes().

◆ StoreInterleaved3() [6/7]

template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreInterleaved3() [7/7]

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

References d, and StoreU().

◆ StoreInterleaved4() [1/6]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( const Vec1< T > v0,
const Vec1< T > v1,
const Vec1< T > v2,
const Vec1< T > v3,
D d,
T *HWY_RESTRICT unaligned )

References d, and StoreU().

◆ StoreInterleaved4() [2/6]

template<class D , HWY_IF_V_SIZE_LE_D(D, 4) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( VFromD< D > part0,
VFromD< D > part1,
VFromD< D > part2,
VFromD< D > part3,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreInterleaved4() [3/6]

template<class D , HWY_IF_STORE_INT(D) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
VFromD< D > v3,
D d,
T *HWY_RESTRICT unaligned )

◆ StoreInterleaved4() [4/6]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
VFromD< D > v3,
D d,
T *HWY_RESTRICT unaligned )

References d, and StoreInterleaved4().

◆ StoreInterleaved4() [5/6]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
VFromD< D > v3,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

References d, and MaxLanes().

◆ StoreInterleaved4() [6/6]

template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_V_SIZE_GT_D(D, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 ( VFromD< D > v0,
VFromD< D > v1,
VFromD< D > v2,
VFromD< D > v3,
D d,
TFromD< D > *HWY_RESTRICT unaligned )

◆ StoreMaskBits() [1/5]

template<class D , typename T = TFromD<D>>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( D d,
const Mask1< T > mask,
uint8_t * bits )

References AllTrue(), and d.

◆ StoreMaskBits() [2/5]

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 )

◆ StoreMaskBits() [3/5]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( D d,
MFromD< D > mask,
uint8_t * bits )

◆ StoreMaskBits() [4/5]

template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( D d,
svbool_t m,
uint8_t * bits )

◆ StoreMaskBits() [5/5]

template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits ( D d,
MFromD< D > mask,
uint8_t * bits )

◆ StoreN() [1/3]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreN ( VFromD< D > v,
D d,
T *HWY_RESTRICT p,
size_t max_lanes_to_store )

◆ StoreN() [2/3]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::StoreN ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p,
size_t max_lanes_to_store )

◆ StoreN() [3/3]

template<class D , HWY_IF_T_SIZE_ONE_OF_D( D,(HWY_TARGET<=HWY_AVX3 ?((1<< 1)|(1<< 2)) :0)|(1<< 4)|(1<< 8)) >
HWY_API void hwy::HWY_NAMESPACE::StoreN ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p,
size_t max_lanes_to_store )

◆ StoreU() [1/39]

template<class V , class D >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const V v,
D d,
TFromD< D > *HWY_RESTRICT p )

References d, p, and Store().

◆ StoreU() [2/39]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( const Vec1< T > v,
D d,
T *HWY_RESTRICT p )

References d, p, and Store().

◆ StoreU() [3/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< double > v,
D ,
double *HWY_RESTRICT p )

◆ StoreU() [4/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< float > v,
D ,
float *HWY_RESTRICT unaligned )

◆ StoreU() [5/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< int16_t > v,
D ,
int16_t *HWY_RESTRICT unaligned )

◆ StoreU() [6/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< int32_t > v,
D ,
int32_t *HWY_RESTRICT unaligned )

◆ StoreU() [7/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< int64_t > v,
D ,
int64_t *HWY_RESTRICT unaligned )

◆ StoreU() [8/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< int8_t > v,
D ,
int8_t *HWY_RESTRICT unaligned )

◆ StoreU() [9/39]

template<class D , HWY_IF_V_SIZE_D(D, 1) , HWY_IF_I8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< int8_t, 1 > v,
D ,
int8_t *HWY_RESTRICT p )

◆ StoreU() [10/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< T > v,
D ,
T *HWY_RESTRICT p )

◆ StoreU() [11/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< uint16_t > v,
D ,
uint16_t *HWY_RESTRICT unaligned )

◆ StoreU() [12/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< uint32_t > v,
D ,
uint32_t *HWY_RESTRICT unaligned )

◆ StoreU() [13/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< uint64_t > v,
D ,
uint64_t *HWY_RESTRICT unaligned )

◆ StoreU() [14/39]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< uint8_t > v,
D ,
uint8_t *HWY_RESTRICT unaligned )

References hwy::HWY_NAMESPACE::Vec128< T, N >::raw.

Referenced by BlendedStore(), BlendedStore(), BlendedStore(), CompressBitsStore(), CompressBitsStore(), CompressBitsStore(), CompressBlendedStore(), CompressStore(), CompressStore(), CompressStore(), CompressStore(), Copy(), CopyIf(), hwy::HWY_NAMESPACE::detail::EmuCompressStore(), hwy::HWY_NAMESPACE::detail::ExpandLoop(), Fill(), Generate(), GenerateInput(), grk::HWY_NAMESPACE::hwy_decompress_v_final_memcpy_53(), hwy::HWY_NAMESPACE::Pack16< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack8< 8 >::Pack(), Replace(), ReplaceIf(), Store(), Store(), hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::StoreAndShortCircuitImpl(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::StoreAndShortCircuitImpl(), StoreInterleaved2(), StoreInterleaved2(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved4(), StoreInterleaved4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), StoreU(), Transform(), Transform1(), Transform2(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack8< 7 >::Unpack(), and hwy::HWY_NAMESPACE::Pack8< 8 >::Unpack().

◆ StoreU() [15/39]

template<class D , HWY_IF_V_SIZE_D(D, 1) , HWY_IF_U8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec128< uint8_t, 1 > v,
D ,
uint8_t *HWY_RESTRICT p )

◆ StoreU() [16/39]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_I16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec16< int16_t > v,
D ,
int16_t *HWY_RESTRICT p )

◆ StoreU() [17/39]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec16< uint16_t > v,
D ,
uint16_t *HWY_RESTRICT p )

◆ StoreU() [18/39]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec256< double > v,
D ,
double *HWY_RESTRICT p )

◆ StoreU() [19/39]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec256< float > v,
D ,
float *HWY_RESTRICT p )

◆ StoreU() [20/39]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec256< T > v,
D d,
T *HWY_RESTRICT p )

References d, p, and Store().

◆ StoreU() [21/39]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec32< float > v,
D ,
float *HWY_RESTRICT p )

◆ StoreU() [22/39]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec32< int32_t > v,
D ,
int32_t *HWY_RESTRICT p )

◆ StoreU() [23/39]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec32< uint32_t > v,
D ,
uint32_t *HWY_RESTRICT p )

◆ StoreU() [24/39]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec512< double > v,
D ,
double *HWY_RESTRICT p )

◆ StoreU() [25/39]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec512< float > v,
D ,
float *HWY_RESTRICT p )

◆ StoreU() [26/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< float > v,
D ,
float *HWY_RESTRICT p )

◆ StoreU() [27/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< int16_t > v,
D ,
int16_t *HWY_RESTRICT p )

◆ StoreU() [28/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< int32_t > v,
D ,
int32_t *HWY_RESTRICT p )

◆ StoreU() [29/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< int64_t > v,
D ,
int64_t *HWY_RESTRICT p )

◆ StoreU() [30/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< int8_t > v,
D ,
int8_t *HWY_RESTRICT p )

◆ StoreU() [31/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< uint16_t > v,
D ,
uint16_t *HWY_RESTRICT p )

◆ StoreU() [32/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< uint32_t > v,
D ,
uint32_t *HWY_RESTRICT p )

◆ StoreU() [33/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< uint64_t > v,
D ,
uint64_t *HWY_RESTRICT p )

◆ StoreU() [34/39]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( Vec64< uint8_t > v,
D ,
uint8_t *HWY_RESTRICT p )

◆ StoreU() [35/39]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::StoreU ( VFromD< D > v,
D d,
T *HWY_RESTRICT p )

References d, p, and Store().

◆ StoreU() [36/39]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_T_SIZE_LE_D(D, 2) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

References BitCast(), d, GetLane(), and p.

◆ StoreU() [37/39]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

References BitCast(), d, GetLane(), and p.

◆ StoreU() [38/39]

template<class D , HWY_NEON_IF_EMULATED_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

◆ StoreU() [39/39]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::StoreU ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT p )

References d, p, and Store().

◆ Stream() [1/9]

template<class V , class D , typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const V v,
D d,
T *HWY_RESTRICT aligned )

References d, and Store().

◆ Stream() [2/9]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Stream ( const Vec1< T > v,
D d,
T *HWY_RESTRICT aligned )

References d, and Store().

◆ Stream() [3/9]

template<class D >
HWY_API void hwy::HWY_NAMESPACE::Stream ( const VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT aligned )

References d, and Store().

Referenced by MatVecAddImpl(), Stream(), Stream(), and Stream().

◆ Stream() [4/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream ( Vec256< double > v,
D ,
double *HWY_RESTRICT aligned )

◆ Stream() [5/9]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream ( Vec256< float > v,
D ,
float *HWY_RESTRICT aligned )

◆ Stream() [6/9]

template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::Stream ( Vec256< T > v,
D d,
T *HWY_RESTRICT aligned )

References d, and Store().

◆ Stream() [7/9]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream ( VFromD< D > v,
D d,
TFromD< D > *HWY_RESTRICT aligned )

References BitCast(), d, and Stream().

◆ Stream() [8/9]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream ( VFromD< D > v,
D ,
double *HWY_RESTRICT aligned )

References Stream().

◆ Stream() [9/9]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream ( VFromD< D > v,
D ,
float *HWY_RESTRICT aligned )

References Stream().

◆ Sub()

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Sub ( V a,
V b )

◆ SumOfLanes() [1/16]

template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SumOfLanes ( D d,
VFromD< D > v )

◆ SumOfLanes() [2/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I16_D(D) >
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di16,
Vec128< int16_t > v )

◆ SumOfLanes() [3/16]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I16_D(D) >
HWY_API Vec32< int16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di16,
Vec32< int16_t > v )

◆ SumOfLanes() [4/16]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di16,
Vec64< int16_t > v )

◆ SumOfLanes() [5/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_I8_D(D) >
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di8,
Vec128< int8_t > v )

◆ SumOfLanes() [6/16]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_I8_D(D) >
HWY_API Vec16< int8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di8,
Vec16< int8_t > v )

◆ SumOfLanes() [7/16]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_I8_D(D) >
HWY_API Vec32< int8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di8,
Vec32< int8_t > v )

◆ SumOfLanes() [8/16]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D di8,
Vec64< int8_t > v )

References BitCast(), SumOfLanes(), and SumsOf8().

◆ SumOfLanes() [9/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du16,
Vec128< uint16_t > v )

◆ SumOfLanes() [10/16]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du16,
Vec32< uint16_t > v )

◆ SumOfLanes() [11/16]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du16,
Vec64< uint16_t > v )

◆ SumOfLanes() [12/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du8,
Vec128< uint8_t > v )

◆ SumOfLanes() [13/16]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U8_D(D) >
HWY_API Vec16< uint8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du8,
Vec16< uint8_t > v )

◆ SumOfLanes() [14/16]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du8,
Vec32< uint8_t > v )

◆ SumOfLanes() [15/16]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::SumOfLanes ( D du8,
Vec64< uint8_t > v )

References BitCast(), and SumsOf8().

◆ SumOfLanes() [16/16]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_UI64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SumOfLanes ( D d32,
VFromD< D > v )

◆ SumOfMulQuadAccumulate() [1/9]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI32 di32,
svuint8_t a_u,
svint8_t b_i,
svint32_t sum )

References BitCast(), Sub(), and Zero().

◆ SumOfMulQuadAccumulate() [2/9]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI32 di32,
VFromD< Repartition< int8_t, DI32 > > a,
VFromD< Repartition< int8_t, DI32 > > b,
VFromD< DI32 > sum )

◆ SumOfMulQuadAccumulate() [3/9]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI32 di32,
VFromD< Repartition< uint8_t, DI32 > > a_u,
VFromD< Repartition< int8_t, DI32 > > b_i,
VFromD< DI32 > sum )

◆ SumOfMulQuadAccumulate() [4/9]

template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI32 ,
svint8_t a,
svint8_t b,
svint32_t sum )

Referenced by SumOfMulQuadAccumulate().

◆ SumOfMulQuadAccumulate() [5/9]

template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_LE_D(DI32, 16) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI32 ,
VFromD< Repartition< uint8_t, DI32 > > a_u,
VFromD< Repartition< int8_t, DI32 > > b_i,
VFromD< DI32 > sum )

◆ SumOfMulQuadAccumulate() [6/9]

template<class DI64 , HWY_IF_I64_D(DI64) >
HWY_API VFromD< DI64 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DI64 ,
svint16_t a,
svint16_t b,
svint64_t sum )

◆ SumOfMulQuadAccumulate() [7/9]

template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DU32 du32,
VFromD< Repartition< uint8_t, DU32 > > a,
VFromD< Repartition< uint8_t, DU32 > > b,
VFromD< DU32 > sum )

◆ SumOfMulQuadAccumulate() [8/9]

template<class DU32 , HWY_IF_U32_D(DU32) >
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DU32 ,
svuint8_t a,
svuint8_t b,
svuint32_t sum )

◆ SumOfMulQuadAccumulate() [9/9]

template<class DU64 , HWY_IF_U64_D(DU64) >
HWY_API VFromD< DU64 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate ( DU64 ,
svuint16_t a,
svuint16_t b,
svuint64_t sum )

◆ SumsOf2()

template<class T >
HWY_API Vec1< MakeWide< T > > hwy::HWY_NAMESPACE::SumsOf2 ( const Vec1< T > v)

References d, and PromoteTo().

Referenced by hwy::HWY_NAMESPACE::detail::SumsOf4(), and SumsOf8().

◆ SumsOf4()

template<class V >
HWY_API VFromD< RepartitionToWideX2< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOf4 ( V v)

◆ SumsOf8() [1/18]

HWY_API svint64_t hwy::HWY_NAMESPACE::SumsOf8 ( const svint8_t v)

References Add(), BitCast(), and Zero().

◆ SumsOf8() [2/18]

HWY_API svuint64_t hwy::HWY_NAMESPACE::SumsOf8 ( const svuint8_t v)

References Add(), BitCast(), and Zero().

◆ SumsOf8() [3/18]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< int8_t > v)

◆ SumsOf8() [4/18]

template<size_t N>
HWY_API Vec128< int64_t, N/8 > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< int8_t, N > v)

References Add(), and BitCast().

◆ SumsOf8() [5/18]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< uint8_t > v)

◆ SumsOf8() [6/18]

template<size_t N>
HWY_API Vec128< uint64_t, N/8 > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec128< uint8_t, N > v)

References Add(), And(), BitCast(), and Set().

◆ SumsOf8() [7/18]

HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec1< int8_t > v)

◆ SumsOf8() [8/18]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec1< uint8_t > v)

◆ SumsOf8() [9/18]

HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec256< int8_t > v)

◆ SumsOf8() [10/18]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec256< uint8_t > v)

◆ SumsOf8() [11/18]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec512< uint8_t > v)

◆ SumsOf8() [12/18]

HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec64< int8_t > v)

◆ SumsOf8() [13/18]

HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 ( const Vec64< uint8_t > v)

◆ SumsOf8() [14/18]

template<class VI8 , HWY_IF_I8_D(DFromV< VI8 >) >
HWY_API VFromD< Repartition< int64_t, DFromV< VI8 > > > hwy::HWY_NAMESPACE::SumsOf8 ( const VI8 v)

References Add(), and BitCast().

◆ SumsOf8() [15/18]

template<class VU8 , HWY_IF_U8_D(DFromV< VU8 >) >
HWY_API VFromD< Repartition< uint64_t, DFromV< VU8 > > > hwy::HWY_NAMESPACE::SumsOf8 ( const VU8 v)

References Add(), and BitCast().

◆ SumsOf8() [16/18]

template<class V , HWY_IF_U8(TFromV< V >) >
HWY_API VFromD< RepartitionToWideX3< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOf8 ( V v)

References SumsOf2(), and SumsOf4().

◆ SumsOf8() [17/18]

template<size_t N>
HWY_API Vec128< int64_t,(N+7)/8 > hwy::HWY_NAMESPACE::SumsOf8 ( Vec128< int8_t, N > v)

◆ SumsOf8() [18/18]

template<size_t N>
HWY_API Vec128< uint64_t,(N+7)/8 > hwy::HWY_NAMESPACE::SumsOf8 ( Vec128< uint8_t, N > v)

◆ SumsOf8AbsDiff() [1/5]

template<size_t N>
HWY_API Vec128< uint64_t, N/8 > hwy::HWY_NAMESPACE::SumsOf8AbsDiff ( const Vec128< uint8_t, N > a,
const Vec128< uint8_t, N > b )

◆ SumsOf8AbsDiff() [2/5]

template<class V , HWY_IF_UI8_D(DFromV< V >) , HWY_IF_V_SIZE_GT_D(DFromV< V >,(HWY_TARGET==HWY_SCALAR ? 0 :4)) >
HWY_API Vec< RepartitionToWideX3< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOf8AbsDiff ( V a,
V b )

References AbsDiff(), BitCast(), d, and SumsOf8().

Referenced by SumsOf8AbsDiff(), and SumsOf8AbsDiff().

◆ SumsOf8AbsDiff() [3/5]

template<class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWideX3< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOf8AbsDiff ( V a,
V b )

◆ SumsOf8AbsDiff() [4/5]

HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::SumsOf8AbsDiff ( Vec256< uint8_t > a,
Vec256< uint8_t > b )

◆ SumsOf8AbsDiff() [5/5]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8AbsDiff ( Vec512< uint8_t > a,
Vec512< uint8_t > b )

◆ SumsOfAdjQuadAbsDiff() [1/4]

template<int kAOffset, int kBOffset, class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOfAdjQuadAbsDiff ( V a,
V b )

◆ SumsOfAdjQuadAbsDiff() [2/4]

template<int kAOffset, int kBOffset, size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > hwy::HWY_NAMESPACE::SumsOfAdjQuadAbsDiff ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ SumsOfAdjQuadAbsDiff() [3/4]

template<int kAOffset, int kBOffset>
static Vec256< uint16_t > hwy::HWY_NAMESPACE::SumsOfAdjQuadAbsDiff ( Vec256< uint8_t > a,
Vec256< uint8_t > b )
static

◆ SumsOfAdjQuadAbsDiff() [4/4]

template<int kAOffset, int kBOffset>
static Vec512< uint16_t > hwy::HWY_NAMESPACE::SumsOfAdjQuadAbsDiff ( Vec512< uint8_t > a,
Vec512< uint8_t > b )
static

◆ SumsOfShuffledQuadAbsDiff() [1/4]

template<int kIdx3, int kIdx2, int kIdx1, int kIdx0, class V , HWY_IF_I8_D(DFromV< V >) >
HWY_API VFromD< RepartitionToWide< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOfShuffledQuadAbsDiff ( V a,
V b )

◆ SumsOfShuffledQuadAbsDiff() [2/4]

template<int kIdx3, int kIdx2, int kIdx1, int kIdx0, size_t N>
HWY_API Vec128< uint16_t,(N+1)/2 > hwy::HWY_NAMESPACE::SumsOfShuffledQuadAbsDiff ( Vec128< uint8_t, N > a,
Vec128< uint8_t, N > b )

◆ SumsOfShuffledQuadAbsDiff() [3/4]

template<int kIdx3, int kIdx2, int kIdx1, int kIdx0>
static Vec256< uint16_t > hwy::HWY_NAMESPACE::SumsOfShuffledQuadAbsDiff ( Vec256< uint8_t > a,
Vec256< uint8_t > b )
static

◆ SumsOfShuffledQuadAbsDiff() [4/4]

template<int kIdx3, int kIdx2, int kIdx1, int kIdx0>
static Vec512< uint16_t > hwy::HWY_NAMESPACE::SumsOfShuffledQuadAbsDiff ( Vec512< uint8_t > a,
Vec512< uint8_t > b )
static

◆ SwapAdjacentBlocks() [1/9]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( const V v)

◆ SwapAdjacentBlocks() [2/9]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec128< T, N > v)

◆ SwapAdjacentBlocks() [3/9]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec1< T > v)

◆ SwapAdjacentBlocks() [4/9]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< double > v)

◆ SwapAdjacentBlocks() [5/9]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< float > v)

References BitCast(), d, and SwapAdjacentBlocks().

◆ SwapAdjacentBlocks() [6/9]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec256< T > v)

◆ SwapAdjacentBlocks() [7/9]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< double > v)

◆ SwapAdjacentBlocks() [8/9]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< float > v)

◆ SwapAdjacentBlocks() [9/9]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks ( Vec512< T > v)

References BitCast(), and d.

◆ TableLookupBytes() [1/16]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytes ( const V v,
const VI idx )

◆ TableLookupBytes() [2/16]

template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec1< T > in,
const Vec1< TI > indices )

References indices.

◆ TableLookupBytes() [3/16]

template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( const Vec256< T > bytes,
Vec256< TI > from )

◆ TableLookupBytes() [4/16]

template<class VT , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytes ( const VT vt,
const VI vi )

◆ TableLookupBytes() [5/16]

template<typename T , typename TI >
HWY_API Vec128< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T > bytes,
Vec128< TI > from )

◆ TableLookupBytes() [6/16]

template<typename T , typename TI , size_t NI, HWY_IF_V_SIZE_LE(TI, NI, 8) >
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T > bytes,
Vec128< TI, NI > from )

◆ TableLookupBytes() [7/16]

template<typename T , size_t N, typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N > bytes,
const Vec256< TI > from )

◆ TableLookupBytes() [8/16]

template<typename T , size_t N, typename TI , HWY_IF_V_SIZE_LE(T, N, 8) >
HWY_API Vec128< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N > bytes,
Vec128< TI > from )

References Combine(), and TableLookupBytes().

◆ TableLookupBytes() [9/16]

template<typename T , size_t N, typename TI , size_t NI, HWY_IF_V_SIZE_LE(T, N, 8) , HWY_IF_V_SIZE_LE(TI, NI, 8) >
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N > bytes,
Vec128< TI, NI > from )

References BitCast(), and d.

◆ TableLookupBytes() [10/16]

template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N > bytes,
Vec512< TI > from )

◆ TableLookupBytes() [11/16]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec128< T, N > v,
Vec128< TI, NI > indices )

◆ TableLookupBytes() [12/16]

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 )

◆ TableLookupBytes() [13/16]

template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec256< T > bytes,
Vec512< TI > from )

◆ TableLookupBytes() [14/16]

template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T > bytes,
Vec128< TI, NI > from )

◆ TableLookupBytes() [15/16]

template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T > bytes,
Vec256< TI > from )

◆ TableLookupBytes() [16/16]

template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes ( Vec512< T > bytes,
Vec512< TI > indices )

References BitCast(), d, and indices.

◆ TableLookupBytesOr0() [1/4]

template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const Vec1< T > in,
const Vec1< TI > indices )

References indices.

◆ TableLookupBytesOr0() [2/4]

template<class VT , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( const VT vt,
const VI idx )

◆ TableLookupBytesOr0() [3/4]

template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( V bytes,
VI from )

◆ TableLookupBytesOr0() [4/4]

template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 ( Vec128< T, N > v,
Vec128< TI, NI > indices )

References indices, and TableLookupBytes().

◆ TableLookupLanes() [1/16]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec1< T > v,
const Indices1< T >  )

◆ TableLookupLanes() [2/16]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< double > v,
const Indices256< double > idx )

◆ TableLookupLanes() [3/16]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< float > v,
const Indices256< float > idx )

◆ TableLookupLanes() [4/16]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanes ( const Vec256< T > v,
Indices256< T > idx )

◆ TableLookupLanes() [5/16]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< double > v,
Indices128< double > idx )

◆ TableLookupLanes() [6/16]

template<size_t N, HWY_IF_V_SIZE_GT(float, N, 4) >
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< float, N > v,
Indices128< float, N > idx )

◆ TableLookupLanes() [7/16]

template<typename T , HWY_IF_UI64(T) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T > v,
Indices128< T > idx )

◆ TableLookupLanes() [8/16]

template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, 1 > v,
Indices128< T, 1 >  )

◆ TableLookupLanes() [9/16]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, N > v,
Indices128< T, N > idx )

◆ TableLookupLanes() [10/16]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec128< T, N > v,
Indices128< T, N > idx )

◆ TableLookupLanes() [11/16]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec256< T > v,
Indices256< T > idx )

◆ TableLookupLanes() [12/16]

template<typename T , HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec256< T > v,
Indices256< T > idx )

◆ TableLookupLanes() [13/16]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< double > v,
Indices512< double > idx )

◆ TableLookupLanes() [14/16]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< float > v,
Indices512< float > idx )

◆ TableLookupLanes() [15/16]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< T > v,
Indices512< T > idx )

◆ TableLookupLanes() [16/16]

template<typename T , HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes ( Vec512< T > v,
Indices512< T > idx )

◆ TableLookupLanesOr0()

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TableLookupLanesOr0 ( Vec256< T > v,
Indices256< T > idx )

References TableLookupLanesOr0().

Referenced by TableLookupLanesOr0().

◆ Tanh()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::Tanh ( D d,
V x )

Highway SIMD version of std::tanh(x).

Valid Lane Types: float32, float64 Max Error: ULP = 4 Valid Range: float32[-FLT_MAX, +FLT_MAX], float64[-DBL_MAX, +DBL_MAX]

Returns
hyperbolic tangent of 'x'

References Add(), And(), d, Div(), Expm1(), Gt(), IfThenElse(), Mul(), Set(), SignBit(), and Xor().

Referenced by CallTanh().

◆ TestBit() [1/8]

template<class V >
HWY_API svbool_t hwy::HWY_NAMESPACE::TestBit ( const V a,
const V bit )

References And().

◆ TestBit() [2/8]

template<class V >
HWY_API auto hwy::HWY_NAMESPACE::TestBit ( const V a,
const V bit ) -> decltype(Eq(a, bit))

References And().

◆ TestBit() [3/8]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::TestBit ( const Vec1< T > v,
const Vec1< T > bit )

◆ TestBit() [4/8]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::TestBit ( const Vec512< T > v,
const Vec512< T > bit )

◆ TestBit() [5/8]

template<size_t N>
HWY_API Mask128< int64_t, N > hwy::HWY_NAMESPACE::TestBit ( Vec128< int64_t, N > v,
Vec128< int64_t, N > bit )

◆ TestBit() [6/8]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::TestBit ( Vec128< T, N > v,
Vec128< T, N > bit )

◆ TestBit() [7/8]

template<size_t N>
HWY_API Mask128< uint64_t, N > hwy::HWY_NAMESPACE::TestBit ( Vec128< uint64_t, N > v,
Vec128< uint64_t, N > bit )

◆ TestBit() [8/8]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::TestBit ( Vec256< T > v,
Vec256< T > bit )

◆ TrailingZeroCount() [1/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, 1) >
HWY_API V hwy::HWY_NAMESPACE::TrailingZeroCount ( V v)

◆ TrailingZeroCount() [2/2]

template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_API V hwy::HWY_NAMESPACE::TrailingZeroCount ( V v)

◆ Transform()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform ( D d,
T *HWY_RESTRICT inout,
size_t count,
const Func & func )

◆ Transform1()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform1 ( D d,
T *HWY_RESTRICT inout,
size_t count,
const T *HWY_RESTRICT in1,
const Func & func )

◆ Transform2()

template<class D , class Func , typename T = TFromD<D>>
void hwy::HWY_NAMESPACE::Transform2 ( D d,
T *HWY_RESTRICT inout,
size_t count,
const T *HWY_RESTRICT in1,
const T *HWY_RESTRICT in2,
const Func & func )

◆ Trunc() [1/10]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Trunc ( const V v)

◆ Trunc() [2/10]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Trunc ( const Vec128< double, N > v)

◆ Trunc() [3/10]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Trunc ( const Vec128< float, N > v)

◆ Trunc() [4/10]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Trunc ( const Vec1< T > v)

◆ Trunc() [5/10]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Trunc ( Vec128< T, N > v)

◆ Trunc() [6/10]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Trunc ( Vec128< T, N > v)

◆ Trunc() [7/10]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Trunc ( Vec256< double > v)

◆ Trunc() [8/10]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Trunc ( Vec256< float > v)

◆ Trunc() [9/10]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Trunc ( Vec512< double > v)

◆ Trunc() [10/10]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Trunc ( Vec512< float > v)

◆ TruncateTo() [1/68]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D d,
const Vec512< uint64_t > v )

◆ TruncateTo() [2/68]

template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D d,
Vec128< uint64_t > v )

◆ TruncateTo() [3/68]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
const Vec512< uint16_t > v )

◆ TruncateTo() [4/68]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
const Vec512< uint32_t > v )

◆ TruncateTo() [5/68]

template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_UNSIGNED(FromT) , hwy::EnableIf<(sizeof(FromT) >=sizeof(TFromD< D >) *2)> * = nullptr, HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< FromT, 1 > v )

◆ TruncateTo() [6/68]

template<class D , typename FromT , HWY_IF_UNSIGNED_D(D) , HWY_IF_UNSIGNED(FromT) , HWY_IF_T_SIZE(FromT, sizeof(TFromD< D >) *2) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D d,
Vec128< FromT, Rebind< FromT, D >().MaxLanes()> v )

◆ TruncateTo() [7/68]

template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint16_t, N > v )

◆ TruncateTo() [8/68]

template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint32_t, N > v )

◆ TruncateTo() [9/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec16< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint64_t > v )

◆ TruncateTo() [10/68]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec32< uint16_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint64_t > v )

◆ TruncateTo() [11/68]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint64_t > v )

◆ TruncateTo() [12/68]

template<class D , HWY_IF_U8_D(D) , size_t N>
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec128< uint64_t, N > v )

◆ TruncateTo() [13/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint16_t > v )

◆ TruncateTo() [14/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint32_t > v )

◆ TruncateTo() [15/68]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint32_t > v )

◆ TruncateTo() [16/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint64_t > v )

◆ TruncateTo() [17/68]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint64_t > v )

◆ TruncateTo() [18/68]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec1< uint64_t > v )

◆ TruncateTo() [19/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint16_t > v )

◆ TruncateTo() [20/68]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint16_t > v )

◆ TruncateTo() [21/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint32_t > v )

◆ TruncateTo() [22/68]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint32_t > v )

◆ TruncateTo() [23/68]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint32_t > v )

◆ TruncateTo() [24/68]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint64_t > v )

◆ TruncateTo() [25/68]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint64_t > v )

◆ TruncateTo() [26/68]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint64_t > v )

◆ TruncateTo() [27/68]

template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
Vec256< uint64_t > v )

◆ TruncateTo() [28/68]

template<class D , HWY_IF_U8_D(D) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
VFromD< Rebind< uint16_t, D > > v )

◆ TruncateTo() [29/68]

template<class D , HWY_IF_U8_D(D) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo ( D ,
VFromD< Rebind< uint32_t, D > > v )

◆ TruncateTo() [30/68]

template<typename From , class DTo , HWY_IF_LANES_D(DTo, 1) >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::TruncateTo ( DTo ,
Vec128< From, 1 > v )

References BitCast().

◆ TruncateTo() [31/68]

template<class DTo , typename TTo = TFromD<DTo>, typename TFrom , HWY_IF_UNSIGNED(TFrom) , HWY_IF_UNSIGNED(TTo) , hwy::EnableIf<(sizeof(TTo)< sizeof(TFrom))> * = nullptr>
HWY_API Vec128< TTo, 1 > hwy::HWY_NAMESPACE::TruncateTo ( DTo ,
Vec128< TFrom, 1 > v )

◆ TruncateTo() [32/68]

template<size_t N>
HWY_API vuint16mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -1 > d,
const VFromD< Simd< uint32_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [33/68]

template<size_t N>
HWY_API vuint16mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -1 > d,
const VFromD< Simd< uint64_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [34/68]

template<size_t N>
HWY_API vuint16mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -2 > d,
const VFromD< Simd< uint32_t, N, -1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [35/68]

template<size_t N>
HWY_API vuint16mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -2 > d,
const VFromD< Simd< uint64_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [36/68]

template<size_t N>
HWY_API vuint16mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -3 > d,
const VFromD< Simd< uint32_t, N, -2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [37/68]

template<size_t N>
HWY_API vuint16mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, -3 > d,
const VFromD< Simd< uint64_t, N, -1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [38/68]

template<size_t N>
HWY_API vuint16m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, 0 > d,
const VFromD< Simd< uint32_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [39/68]

template<size_t N>
HWY_API vuint16m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, 0 > d,
const VFromD< Simd< uint64_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [40/68]

template<size_t N>
HWY_API vuint16m2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, 1 > d,
const VFromD< Simd< uint32_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [41/68]

template<size_t N>
HWY_API vuint16m2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, 1 > d,
const VFromD< Simd< uint64_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [42/68]

template<size_t N>
HWY_API vuint16m4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, 2 > d,
const VFromD< Simd< uint32_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [43/68]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, kPow2 > ,
const svuint32_t v )

References BitCast(), and d.

◆ TruncateTo() [44/68]

template<size_t N, int kPow2>
HWY_API svuint16_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint16_t, N, kPow2 > ,
const svuint64_t v )

References BitCast(), and d.

◆ TruncateTo() [45/68]

template<size_t N>
HWY_API vuint32mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, -1 > d,
const VFromD< Simd< uint64_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [46/68]

template<size_t N>
HWY_API vuint32mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, -2 > d,
const VFromD< Simd< uint64_t, N, -1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [47/68]

template<size_t N>
HWY_API vuint32m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, 0 > d,
const VFromD< Simd< uint64_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [48/68]

template<size_t N>
HWY_API vuint32m2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, 1 > d,
const VFromD< Simd< uint64_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [49/68]

template<size_t N>
HWY_API vuint32m4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, 2 > d,
const VFromD< Simd< uint64_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [50/68]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint32_t, N, kPow2 > ,
const svuint64_t v )

References BitCast(), and d.

◆ TruncateTo() [51/68]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -1 > d,
const VFromD< Simd< uint16_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [52/68]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -1 > d,
const VFromD< Simd< uint32_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [53/68]

template<size_t N>
HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -1 > d,
const VFromD< Simd< uint64_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [54/68]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -2 > d,
const VFromD< Simd< uint16_t, N, -1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [55/68]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -2 > d,
const VFromD< Simd< uint32_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [56/68]

template<size_t N>
HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -2 > d,
const VFromD< Simd< uint64_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [57/68]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -3 > d,
const VFromD< Simd< uint16_t, N, -2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [58/68]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -3 > d,
const VFromD< Simd< uint32_t, N, -1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [59/68]

template<size_t N>
HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, -3 > d,
const VFromD< Simd< uint64_t, N, 0 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [60/68]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 0 > d,
const VFromD< Simd< uint16_t, N, 1 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [61/68]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 0 > d,
const VFromD< Simd< uint32_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [62/68]

template<size_t N>
HWY_API vuint8m1_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 0 > d,
const VFromD< Simd< uint64_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [63/68]

template<size_t N>
HWY_API vuint8m2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 1 > d,
const VFromD< Simd< uint16_t, N, 2 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [64/68]

template<size_t N>
HWY_API vuint8m2_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 1 > d,
const VFromD< Simd< uint32_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [65/68]

template<size_t N>
HWY_API vuint8m4_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, 2 > d,
const VFromD< Simd< uint16_t, N, 3 > > v )

References d, HWY_RVV_INSERT_VXRM, and Lanes().

◆ TruncateTo() [66/68]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, kPow2 > ,
const svuint16_t v )

References BitCast(), and d.

◆ TruncateTo() [67/68]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, kPow2 > ,
const svuint32_t v )

References BitCast(), and d.

◆ TruncateTo() [68/68]

template<size_t N, int kPow2>
HWY_API svuint8_t hwy::HWY_NAMESPACE::TruncateTo ( Simd< uint8_t, N, kPow2 > ,
const svuint64_t v )

References BitCast(), and d.

◆ TwoTablesLookupLanes() [1/19]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( const Vec1< T > a,
const Vec1< T > b,
const Indices1< T > idx )

◆ TwoTablesLookupLanes() [2/19]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( const Vec256< T > a,
const Vec256< T > b,
Indices256< T > idx )

◆ TwoTablesLookupLanes() [3/19]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( D d,
VFromD< D > a,
VFromD< D > b,
VFromD< RebindToUnsigned< D > > idx )

◆ TwoTablesLookupLanes() [4/19]

template<class D , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( D d,
VFromD< D > a,
VFromD< D > b,
VFromD< RebindToUnsigned< D > > idx )

◆ TwoTablesLookupLanes() [5/19]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( V a,
V b,
VFromD< RebindToUnsigned< DFromV< V > > > idx )

References d, and TwoTablesLookupLanes().

◆ TwoTablesLookupLanes() [6/19]

HWY_API Vec128< double > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< double > a,
Vec128< double > b,
Indices128< double > idx )

◆ TwoTablesLookupLanes() [7/19]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< float > a,
Vec128< float > b,
Indices128< float > idx )

◆ TwoTablesLookupLanes() [8/19]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< T > a,
Vec128< T > b,
Indices128< T > idx )

◆ TwoTablesLookupLanes() [9/19]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< T > a,
Vec128< T > b,
Indices128< T > idx )

◆ TwoTablesLookupLanes() [10/19]

template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< T > a,
Vec128< T > b,
Indices128< T, 16/sizeof(T)> idx )

◆ TwoTablesLookupLanes() [11/19]

template<typename T , size_t N, HWY_IF_V_SIZE_LE(T, N, 4) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< T, N > a,
Vec128< T, N > b,
Indices128< T, N > idx )

◆ TwoTablesLookupLanes() [12/19]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec128< T, N > a,
Vec128< T, N > b,
Indices128< T, N > idx )

◆ TwoTablesLookupLanes() [13/19]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec256< double > a,
Vec256< double > b,
Indices256< double > idx )

◆ TwoTablesLookupLanes() [14/19]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec256< float > a,
Vec256< float > b,
Indices256< float > idx )

◆ TwoTablesLookupLanes() [15/19]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec256< T > a,
Vec256< T > b,
Indices256< T > idx )

◆ TwoTablesLookupLanes() [16/19]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec512< double > a,
Vec512< double > b,
Indices512< double > idx )

◆ TwoTablesLookupLanes() [17/19]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec512< float > a,
Vec512< float > b,
Indices512< float > idx )

◆ TwoTablesLookupLanes() [18/19]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec512< T > a,
Vec512< T > b,
Indices512< T > idx )

◆ TwoTablesLookupLanes() [19/19]

template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes ( Vec64< T > a,
Vec64< T > b,
Indices128< T, 8/sizeof(T)> idx )

◆ U8FromU32() [1/12]

HWY_API svuint8_t hwy::HWY_NAMESPACE::U8FromU32 ( const svuint32_t v)

References BitCast().

◆ U8FromU32() [2/12]

HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec1< uint32_t > v)

References DemoteTo().

◆ U8FromU32() [3/12]

HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 ( const Vec512< uint32_t > v)

◆ U8FromU32() [4/12]

HWY_API vuint8mf4_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m1_t v)

References HWY_RVV_INSERT_VXRM, and Lanes().

◆ U8FromU32() [5/12]

HWY_API vuint8mf2_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m2_t v)

References HWY_RVV_INSERT_VXRM, and Lanes().

◆ U8FromU32() [6/12]

HWY_API vuint8m1_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m4_t v)

References HWY_RVV_INSERT_VXRM, and Lanes().

◆ U8FromU32() [7/12]

HWY_API vuint8m2_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32m8_t v)

References HWY_RVV_INSERT_VXRM, and Lanes().

◆ U8FromU32() [8/12]

HWY_API vuint8mf8_t hwy::HWY_NAMESPACE::U8FromU32 ( const vuint32mf2_t v)

References HWY_RVV_INSERT_VXRM, and Lanes().

◆ U8FromU32() [9/12]

HWY_API Vec32< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 ( Vec128< uint32_t > v)

◆ U8FromU32() [10/12]

template<size_t N, HWY_IF_V_SIZE_LE(uint32_t, N, 8) >
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::U8FromU32 ( Vec128< uint32_t, N > v)

◆ U8FromU32() [11/12]

template<size_t N>
HWY_API Vec128< uint8_t, N > hwy::HWY_NAMESPACE::U8FromU32 ( Vec128< uint32_t, N > v)

References DemoteTo().

◆ U8FromU32() [12/12]

HWY_API Vec128< uint8_t, 8 > hwy::HWY_NAMESPACE::U8FromU32 ( Vec256< uint32_t > v)

References BitCast(), and DemoteTo().

◆ Undefined() [1/13]

template<class D , HWY_SVE_IF_EMULATED_D(D) >
VFromD< D > hwy::HWY_NAMESPACE::Undefined ( D d)

References BitCast(), d, and Undefined().

◆ Undefined() [2/13]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Undefined ( D d)

References d, and Zero().

◆ Undefined() [3/13]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Undefined ( D d)

◆ Undefined() [4/13]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [5/13]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API Vec256< bfloat16_t > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [6/13]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API Vec256< float16_t > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [7/13]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [8/13]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [9/13]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [10/13]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_t > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [11/13]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_t > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [12/13]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Undefined() [13/13]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Undefined ( D )

◆ Unroller() [1/2]

template<class FUNC , typename IN_T , typename OUT_T >
void hwy::HWY_NAMESPACE::Unroller ( FUNC & f,
IN_T *HWY_RESTRICT x,
OUT_T *HWY_RESTRICT y,
const ptrdiff_t n )
inline

References hwy::CopyBytes(), d, HWY_ALIGN, Store(), and Zero().

◆ Unroller() [2/2]

template<class FUNC , typename IN0_T , typename IN1_T , typename OUT_T >
void hwy::HWY_NAMESPACE::Unroller ( FUNC &HWY_RESTRICT f,
IN0_T *HWY_RESTRICT x0,
IN1_T *HWY_RESTRICT x1,
OUT_T *HWY_RESTRICT y,
const ptrdiff_t n )
inline

References hwy::CopyBytes(), d, HWY_ALIGN, Store(), and Zero().

◆ UpperHalf() [1/21]

template<class DH >
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::UpperHalf ( const DH d2,
const VFromD< Twice< DH > > v )

References Lanes(), and LowerHalf().

◆ UpperHalf() [2/21]

template<class DH , class V >
HWY_API V hwy::HWY_NAMESPACE::UpperHalf ( const DH dh,
const V v )

◆ UpperHalf() [3/21]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf ( D d,
VFromD< Twice< D > > v )

References hwy::CopyBytes(), d, and MaxLanes().

◆ UpperHalf() [4/21]

template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf ( D d,
VFromD< Twice< D > > v )

References d, LowerHalf(), and ShiftRightBytes().

◆ UpperHalf() [5/21]

template<class D , HWY_NEON_IF_EMULATED_D(D) , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf ( D dh,
VFromD< Twice< D > > v )

References BitCast(), and UpperHalf().

◆ UpperHalf() [6/21]

template<class D , typename T = TFromD<D>>
HWY_API Vec64< T > hwy::HWY_NAMESPACE::UpperHalf ( D ,
const Vec128< T > v )

◆ UpperHalf() [7/21]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::UpperHalf ( D ,
const Vec256< T > v )

◆ UpperHalf() [8/21]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F64_D(D) >
HWY_API Vec64< double > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< double > v )

◆ UpperHalf() [9/21]

template<class D , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< float > v )

◆ UpperHalf() [10/21]

template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API Vec64< float > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< float > v )

◆ UpperHalf() [11/21]

template<class D , HWY_IF_I16_D(D) >
HWY_API Vec64< int16_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< int16_t > v )

◆ UpperHalf() [12/21]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< int32_t > v )

◆ UpperHalf() [13/21]

template<class D , HWY_IF_I64_D(D) >
HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< int64_t > v )

◆ UpperHalf() [14/21]

template<class D , HWY_IF_I8_D(D) >
HWY_API Vec64< int8_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< int8_t > v )

◆ UpperHalf() [15/21]

template<class D , HWY_IF_U16_D(D) >
HWY_API Vec64< uint16_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< uint16_t > v )

◆ UpperHalf() [16/21]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< uint32_t > v )

◆ UpperHalf() [17/21]

template<class D , HWY_IF_U64_D(D) >
HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< uint64_t > v )

◆ UpperHalf() [18/21]

template<class D , HWY_IF_U8_D(D) >
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec128< uint8_t > v )

◆ UpperHalf() [19/21]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec256< double > v )

◆ UpperHalf() [20/21]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf ( D ,
Vec256< float > v )

◆ UpperHalf() [21/21]

template<class DH , HWY_IF_V_SIZE_LE_D(DH, 4) >
HWY_API VFromD< DH > hwy::HWY_NAMESPACE::UpperHalf ( DH dh,
VFromD< Twice< DH > > v )

References BitCast(), d, and ShiftRightBytes().

◆ UpperHalfOfMask()

template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::UpperHalfOfMask ( D ,
MFromD< Twice< D > > m )

References m.

◆ VecFromMask() [1/24]

template<class D , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D d,
MFromD< D > mask )

References BitCast(), d, and VecFromMask().

◆ VecFromMask() [2/24]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( const D d,
svbool_t mask )

References BitCast(), d, IfThenElseZero(), and Set().

◆ VecFromMask() [3/24]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< double, N > v)

◆ VecFromMask() [4/24]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< float, N > v)

◆ VecFromMask() [5/24]

template<typename T , size_t N, HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( const Mask128< T, N > v)

◆ VecFromMask() [6/24]

template<typename T >
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask ( const Mask1< T > mask)

References hwy::CopySameSize().

◆ VecFromMask() [7/24]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< double > v)

◆ VecFromMask() [8/24]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< float > v)

◆ VecFromMask() [9/24]

template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::VecFromMask ( const Mask256< T > v)

◆ VecFromMask() [10/24]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( D d,
const MFromD< D > m )

References BitCast(), d, and m.

Referenced by AllFalse(), And(), And(), And(), AndNot(), AndNot(), AndNot(), AssertMaskEqual(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), Ceil(), Ceil(), Compress(), Compress(), CompressNot(), ConvertTo(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::CountTrue(), hwy::HWY_NAMESPACE::detail::DemoteFromU64Saturate(), DemoteMaskTo(), DemoteTo(), DemoteTo(), DemoteTo(), Eq128(), Eq128(), Eq128Upper(), Eq128Upper(), hwy::HWY_NAMESPACE::detail::Eq128UpperVec(), hwy::HWY_NAMESPACE::detail::Eq128UpperVec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), ExclusiveNeither(), ExclusiveNeither(), ExclusiveNeither(), Expand(), FindFirstTrue(), FindKnownFirstTrue(), FindKnownLastTrue(), FindLastTrue(), Floor(), Floor(), hwy::HWY_NAMESPACE::detail::I128Subtract(), IfThenElse(), IfThenElseZero(), IfThenElseZero(), IfThenZeroElse(), IfThenZeroElse(), hwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv(), LowerHalfOfMask(), Lt128(), Lt128(), Lt128Upper(), Lt128Upper(), hwy::HWY_NAMESPACE::detail::Lt128UpperVec(), hwy::HWY_NAMESPACE::detail::Lt128UpperVec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedScatterIndex(), Ne128(), Ne128(), Ne128Upper(), Ne128Upper(), hwy::HWY_NAMESPACE::detail::Ne128UpperVec(), hwy::HWY_NAMESPACE::detail::Ne128UpperVec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), Not(), Not(), Or(), Or(), Or(), PromoteMaskTo(), PromoteTo(), SaturatedNeg(), SatWidenMulPairwiseAccumulate(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrBeforeFirst(), SetAtOrBeforeFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SlideMask1Down(), SlideMask1Up(), SlideMaskDownLanes(), SlideMaskUpLanes(), hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes(), TwoTablesLookupLanes(), VecFromMask(), VecFromMask(), Xor(), Xor(), and Xor().

◆ VecFromMask() [11/24]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::VecFromMask ( D d,
Mask256< T > m )

◆ VecFromMask() [12/24]

template<class D , typename T = TFromD<D>>
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask ( D ,
const Mask1< T > mask )

References hwy::CopySameSize().

◆ VecFromMask() [13/24]

template<class D >
VFromD< D > hwy::HWY_NAMESPACE::VecFromMask ( D ,
MFromD< D > mask )

References hwy::CopySameSize().

◆ VecFromMask() [14/24]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::VecFromMask ( Mask128< T, N > v)

◆ VecFromMask() [15/24]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< double > v)

◆ VecFromMask() [16/24]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< float > v)

◆ VecFromMask() [17/24]

HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< int16_t > v)

◆ VecFromMask() [18/24]

HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< int32_t > v)

◆ VecFromMask() [19/24]

HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< int64_t > v)

◆ VecFromMask() [20/24]

HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< int8_t > v)

◆ VecFromMask() [21/24]

HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< uint16_t > v)

◆ VecFromMask() [22/24]

HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< uint32_t > v)

◆ VecFromMask() [23/24]

HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< uint64_t > v)

◆ VecFromMask() [24/24]

HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::VecFromMask ( Mask512< uint8_t > v)

◆ VerifyPartialSort()

template<class Traits , typename LaneType >
bool hwy::HWY_NAMESPACE::VerifyPartialSort ( Traits st,
const InputStats< LaneType > & input_stats,
const LaneType * out,
const size_t num_lanes,
const size_t k,
const char * caller )

◆ VerifySelect()

template<class Traits , typename LaneType >
bool hwy::HWY_NAMESPACE::VerifySelect ( Traits st,
const InputStats< LaneType > & input_stats,
const LaneType * out,
const size_t num_lanes,
const size_t k,
const char * caller )

◆ VerifySort()

template<class Traits , typename LaneType >
bool hwy::HWY_NAMESPACE::VerifySort ( Traits st,
const InputStats< LaneType > & input_stats,
const LaneType * out,
size_t num_lanes,
const char * caller )

◆ VQPartialSortStatic() [1/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQPartialSortStatic ( T *HWY_RESTRICT keys,
const size_t num,
const size_t k,
SortAscending  )

References d, HWY_ASSERT, and PartialSort().

◆ VQPartialSortStatic() [2/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQPartialSortStatic ( T *HWY_RESTRICT keys,
const size_t num,
const size_t k,
SortDescending  )

References d, HWY_ASSERT, and PartialSort().

◆ VQSelectStatic() [1/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQSelectStatic ( T *HWY_RESTRICT keys,
const size_t num,
const size_t k,
SortAscending  )

References d, HWY_ASSERT, and Select().

◆ VQSelectStatic() [2/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQSelectStatic ( T *HWY_RESTRICT keys,
const size_t num,
const size_t k,
SortDescending  )

References d, HWY_ASSERT, and Select().

◆ VQSortStatic() [1/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQSortStatic ( T *HWY_RESTRICT keys,
const size_t num,
SortAscending  )

References d, HWY_ASSERT, and Sort().

◆ VQSortStatic() [2/2]

template<typename T >
void hwy::HWY_NAMESPACE::VQSortStatic ( T *HWY_RESTRICT keys,
const size_t num,
SortDescending  )

References d, HWY_ASSERT, and Sort().

◆ WidenMulPairwiseAdd() [1/22]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec32< int32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D d32,
Vec32< int16_t > a,
Vec32< int16_t > b )

◆ WidenMulPairwiseAdd() [2/22]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec32< uint32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D d32,
Vec32< uint16_t > a,
Vec32< uint16_t > b )

◆ WidenMulPairwiseAdd() [3/22]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec64< int32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D d32,
Vec64< int16_t > a,
Vec64< int16_t > b )

◆ WidenMulPairwiseAdd() [4/22]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D d32,
Vec64< uint16_t > a,
Vec64< uint16_t > b )

◆ WidenMulPairwiseAdd() [5/22]

template<class D , HWY_IF_I32_D(D) , class VI16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D d32,
VI16 a,
VI16 b )

References Add(), BitCast(), and Mul().

◆ WidenMulPairwiseAdd() [6/22]

template<class D , HWY_IF_F32_D(D) , class VBF16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D df32,
VBF16 a,
VBF16 b )

References And(), BitCast(), Mul(), and Set().

◆ WidenMulPairwiseAdd() [7/22]

template<class D , HWY_IF_U32_D(D) , class VU16 >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D du32,
VU16 a,
VU16 b )

References Add(), And(), BitCast(), Mul(), and Set().

◆ WidenMulPairwiseAdd() [8/22]

template<class D , HWY_IF_I32_D(D) >
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D ,
Vec128< int16_t > a,
Vec128< int16_t > b )

◆ WidenMulPairwiseAdd() [9/22]

template<class D , HWY_IF_U32_D(D) >
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D ,
Vec128< uint16_t > a,
Vec128< uint16_t > b )

◆ WidenMulPairwiseAdd() [10/22]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D ,
Vec256< int16_t > a,
Vec256< int16_t > b )

◆ WidenMulPairwiseAdd() [11/22]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D ,
Vec512< int16_t > a,
Vec512< int16_t > b )

◆ WidenMulPairwiseAdd() [12/22]

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 )

◆ WidenMulPairwiseAdd() [13/22]

template<class D32 , HWY_IF_F32_D(D32) , class V16 = VFromD<Repartition<bfloat16_t, D32>>>
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D32 df32,
V16 a,
V16 b )

References And(), BitCast(), Mul(), MulAdd(), and Set().

◆ WidenMulPairwiseAdd() [14/22]

template<class D32 , HWY_IF_F32_D(D32) >
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D32 df32,
VFromD< Repartition< bfloat16_t, D32 > > a,
VFromD< Repartition< bfloat16_t, D32 > > b )

◆ WidenMulPairwiseAdd() [15/22]

template<class D32 , HWY_IF_I32_D(D32) , HWY_IF_V_SIZE_LE_D(D32, 16) , class V16 = VFromD<RepartitionToNarrow<D32>>>
HWY_API VFromD< D32 > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D32 ,
V16 a,
V16 b )

◆ WidenMulPairwiseAdd() [16/22]

template<class D32 , HWY_IF_F32_D(D32) >
HWY_API Vec1< float > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D32 ,
Vec1< bfloat16_t > a,
Vec1< bfloat16_t > b )

◆ WidenMulPairwiseAdd() [17/22]

template<class D32 , HWY_IF_I32_D(D32) >
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( D32 ,
Vec1< int16_t > a,
Vec1< int16_t > b )

◆ WidenMulPairwiseAdd() [18/22]

template<class DU32 , HWY_IF_U32_D(DU32) , HWY_IF_V_SIZE_LE_D(DU32, 16) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( DU32 du32,
VU16 a,
VU16 b )

References And(), BitCast(), MulAdd(), and Set().

◆ WidenMulPairwiseAdd() [19/22]

template<class DU32 , HWY_IF_U32_D(DU32) , class VU16 = VFromD<RepartitionToNarrow<DU32>>>
HWY_API VFromD< DU32 > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( DU32 du32,
VU16 a,
VU16 b )

◆ WidenMulPairwiseAdd() [20/22]

template<size_t N, int kPow2>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( Simd< float, N, kPow2 > df32,
VBF16 a,
VBF16 b )

References And(), BitCast(), Mul(), MulAdd(), Set(), and Zero().

◆ WidenMulPairwiseAdd() [21/22]

template<size_t N, int kPow2>
HWY_API svint32_t hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( Simd< int32_t, N, kPow2 > d32,
svint16_t a,
svint16_t b )

References BitCast().

◆ WidenMulPairwiseAdd() [22/22]

template<size_t N, int kPow2>
HWY_API svuint32_t hwy::HWY_NAMESPACE::WidenMulPairwiseAdd ( Simd< uint32_t, N, kPow2 > d32,
svuint16_t a,
svuint16_t b )

References BitCast().

◆ Xor() [1/17]

template<typename T , size_t N>
HWY_API Mask128< T, N > hwy::HWY_NAMESPACE::Xor ( const Mask128< T, N > a,
Mask128< T, N > b )

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [2/17]

template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Xor ( const Mask1< T > a,
Mask1< T > b )

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [3/17]

template<typename T >
HWY_API Mask256< T > hwy::HWY_NAMESPACE::Xor ( const Mask256< T > a,
Mask256< T > b )

References d, MaskFromVec(), VecFromMask(), and Xor().

◆ Xor() [4/17]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Xor ( const V a,
const V b )

References BitCast(), and Xor().

◆ Xor() [5/17]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor ( const Vec128< T, N > a,
const Vec128< T, N > b )

◆ Xor() [6/17]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Xor ( const Vec1< T > a,
const Vec1< T > b )

References BitCast().

◆ Xor() [7/17]

HWY_API Vec512< double > hwy::HWY_NAMESPACE::Xor ( const Vec512< double > a,
const Vec512< double > b )

◆ Xor() [8/17]

HWY_API Vec512< float > hwy::HWY_NAMESPACE::Xor ( const Vec512< float > a,
const Vec512< float > b )

◆ Xor() [9/17]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor ( const Vec512< T > a,
const Vec512< T > b )

References BitCast(), and d.

◆ Xor() [10/17]

template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Xor ( Mask512< T > a,
Mask512< T > b )

◆ Xor() [11/17]

HWY_API svbool_t hwy::HWY_NAMESPACE::Xor ( svbool_t a,
svbool_t b )

◆ Xor() [12/17]

template<size_t N>
HWY_API Vec128< double, N > hwy::HWY_NAMESPACE::Xor ( Vec128< double, N > a,
Vec128< double, N > b )

◆ Xor() [13/17]

template<size_t N>
HWY_API Vec128< float, N > hwy::HWY_NAMESPACE::Xor ( Vec128< float, N > a,
Vec128< float, N > b )

◆ Xor() [14/17]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor ( Vec128< T, N > a,
Vec128< T, N > b )

References BitCast(), and d.

◆ Xor() [15/17]

HWY_API Vec256< double > hwy::HWY_NAMESPACE::Xor ( Vec256< double > a,
Vec256< double > b )

◆ Xor() [16/17]

HWY_API Vec256< float > hwy::HWY_NAMESPACE::Xor ( Vec256< float > a,
Vec256< float > b )

◆ Xor() [17/17]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Xor ( Vec256< T > a,
Vec256< T > b )

◆ Xor3() [1/6]

template<class V , HWY_IF_FLOAT_V(V) >
HWY_API V hwy::HWY_NAMESPACE::Xor3 ( const V x1,
const V x2,
const V x3 )

References BitCast(), and Xor3().

◆ Xor3() [2/6]

template<class V >
HWY_API V hwy::HWY_NAMESPACE::Xor3 ( V x1,
V x2,
V x3 )

References Xor().

◆ Xor3() [3/6]

template<typename T , size_t N>
HWY_API Vec128< T, N > hwy::HWY_NAMESPACE::Xor3 ( Vec128< T, N > x1,
Vec128< T, N > x2,
Vec128< T, N > x3 )

◆ Xor3() [4/6]

template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Xor3 ( Vec1< T > x1,
Vec1< T > x2,
Vec1< T > x3 )

References Xor().

◆ Xor3() [5/6]

template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::Xor3 ( Vec256< T > x1,
Vec256< T > x2,
Vec256< T > x3 )

References Xor().

◆ Xor3() [6/6]

template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor3 ( Vec512< T > x1,
Vec512< T > x2,
Vec512< T > x3 )

References BitCast(), d, and Xor().

◆ Zero() [1/19]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Zero ( D d)

References d, and Set().

Referenced by Abs(), Abs(), Abs(), Abs(), Acos(), AESInvMixColumns(), AllFalse(), Atan2(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), Cos(), hwy::HWY_NAMESPACE::detail::DemoteFromU64Saturate(), DemoteTo(), DemoteTo(), Expand(), GatherIndex(), GatherIndex(), GatherOffset(), IfNegativeThenNegOrUndefIfZero(), IfNegativeThenNegOrUndefIfZero(), IfThenElseZero(), IfThenElseZero(), IfThenElseZero(), IfThenZeroElse(), IfThenZeroElse(), IndicesFromVec(), IndicesFromVec(), hwy::HWY_NAMESPACE::detail::IndicesFromVecByteOffsets(), LoadN(), LoadN(), hwy::HWY_NAMESPACE::impl::Log(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskFalse(), MaskForDist(), MatVecAddImpl(), Neg(), Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), Neg(), Not(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< kBytes >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< kBytes >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< kBytes >::operator()(), operator>>(), operator>>(), operator>>(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), PromoteTo(), PromoteTo(), PromoteUpperTo(), ResizeBitCast(), SaturatedAbs(), SaturatedAbs(), SaturatedNeg(), SetAtOrAfterFirst(), SetAtOrBeforeFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), ShiftLeftLanes(), ShiftRightLanes(), ShiftRightLanes(), hwy::HWY_NAMESPACE::detail::Shl(), Sin(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), Slide1Down(), Slide1Up(), Slide1Up(), hwy::HWY_NAMESPACE::detail::SlideDownI32Lanes(), hwy::HWY_NAMESPACE::detail::SlideDownI64Lanes(), hwy::HWY_NAMESPACE::detail::SlideUpI32Lanes(), hwy::HWY_NAMESPACE::detail::SlideUpI64Lanes(), SlideUpLanes(), hwy::HWY_NAMESPACE::detail::SmallerSortValue(), Sqrt(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfLanes(), SumOfMulQuadAccumulate(), hwy::HWY_NAMESPACE::detail::SumOfU32OrU64LanesAsU128(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), SumsOf8(), SumsOf8(), SumsOf8(), hwy::HWY_NAMESPACE::detail::TableLookupSlideUpLanes(), Undefined(), Unroller(), Unroller(), WidenMulPairwiseAdd(), hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::X0InitImpl(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X0InitImpl(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X1InitImpl(), hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::YInitImpl(), hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::YInitImpl(), Zero(), hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast(), ZeroExtendVector(), ZeroExtendVector(), and ZeroExtendVector().

◆ Zero() [2/19]

template<class D >
VFromD< D > hwy::HWY_NAMESPACE::Zero ( D d)

References BitCast(), d, and Set().

◆ Zero() [3/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API Vec256< TFromD< D > > hwy::HWY_NAMESPACE::Zero ( D d)

◆ Zero() [4/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API Vec128< TFromD< D >, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::Zero ( D )

References HWY_MAX_LANES_D.

◆ Zero() [5/19]

template<class D , typename T = TFromD<D>>
HWY_API Vec128< T, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::Zero ( D )

References HWY_MAX_LANES_D.

◆ Zero() [6/19]

template<class D , HWY_IF_LANES_D(D, 1) , typename T = TFromD<D>>
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [7/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API Vec128< TFromD< D >, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::Zero ( D )

References HWY_MAX_LANES_D.

◆ Zero() [8/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API Vec128< float, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::Zero ( D )

References HWY_MAX_LANES_D.

◆ Zero() [9/19]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API Vec128< double, HWY_MAX_LANES_D(D)> hwy::HWY_NAMESPACE::Zero ( D )

References HWY_MAX_LANES_D.

◆ Zero() [10/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec256< TFromD< D > > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [11/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API Vec256< bfloat16_t > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [12/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API Vec256< float16_t > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [13/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [14/19]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [15/19]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [16/19]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_t > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [17/19]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_t > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [18/19]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Zero ( D )

◆ Zero() [19/19]

template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Zero ( D )

◆ ZeroExtendResizeBitCast()

template<class DTo , class DFrom >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::ZeroExtendResizeBitCast ( DTo d_to,
DFrom d_from,
VFromD< DFrom > v )

◆ ZeroExtendVector() [1/8]

template<class D , class V >
HWY_API V hwy::HWY_NAMESPACE::ZeroExtendVector ( const D d,
const V lo )

References Combine(), d, and Zero().

◆ ZeroExtendVector() [2/8]

template<class D , typename T = TFromD<D>>
HWY_API Vec256< T > hwy::HWY_NAMESPACE::ZeroExtendVector ( D d,
Vec128< T > lo )

References Combine(), d, and Zero().

◆ ZeroExtendVector() [3/8]

template<class D >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ZeroExtendVector ( D d,
VFromD< Half< D > > lo )

◆ ZeroExtendVector() [4/8]

template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ZeroExtendVector ( D d,
VFromD< Half< D > > lo )

References d, FirstN(), IfThenElseZero(), and MaxLanes().

◆ ZeroExtendVector() [5/8]

template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ZeroExtendVector ( D d,
VFromD< Half< D > > lo )

References BitCast(), d, and ZeroExtendVector().

◆ ZeroExtendVector() [6/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API Vec256< double > hwy::HWY_NAMESPACE::ZeroExtendVector ( D ,
Vec128< double > lo )

◆ ZeroExtendVector() [7/8]

template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API Vec256< float > hwy::HWY_NAMESPACE::ZeroExtendVector ( D ,
Vec128< float > lo )

◆ ZeroExtendVector() [8/8]

template<class D2 , class V >
HWY_API VFromD< D2 > hwy::HWY_NAMESPACE::ZeroExtendVector ( D2 d2,
const V lo )

References Combine(), and Xor().

◆ ZeroIfNegative()

template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API V hwy::HWY_NAMESPACE::ZeroIfNegative ( V v)

References IfNegativeThenZeroElse().

Referenced by ConvertTo().

◆ ZipLower() [1/11]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( const V a,
const V b )

References BitCast(), and InterleaveLower().

◆ ZipLower() [2/11]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW dw,
V a,
V b )

References BitCast(), and InterleaveLower().

◆ ZipLower() [3/11]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( DW dw,
V a,
V b )

◆ ZipLower() [4/11]

template<class DW , typename TW = TFromD<DW>, typename TN = MakeNarrow<TW>>
HWY_API Vec1< TW > hwy::HWY_NAMESPACE::ZipLower ( DW ,
Vec1< TN > a,
Vec1< TN > b )

◆ ZipLower() [5/11]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower ( V a,
V b )

◆ ZipLower() [6/11]

HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< int16_t > a,
Vec1< int16_t > b )

◆ ZipLower() [7/11]

HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< int32_t > a,
Vec1< int32_t > b )

◆ ZipLower() [8/11]

HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< int8_t > a,
Vec1< int8_t > b )

◆ ZipLower() [9/11]

HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< uint16_t > a,
Vec1< uint16_t > b )

◆ ZipLower() [10/11]

HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< uint32_t > a,
Vec1< uint32_t > b )

◆ ZipLower() [11/11]

HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::ZipLower ( Vec1< uint8_t > a,
Vec1< uint8_t > b )

◆ ZipUpper() [1/2]

template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW dw,
V a,
V b )

References BitCast(), and InterleaveUpper().

Referenced by PromoteUpperTo(), and StoreInterleaved4().

◆ ZipUpper() [2/2]

template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper ( DW dw,
V a,
V b )

Variable Documentation

◆ d

svbool_t D hwy::HWY_NAMESPACE::d

Referenced by Abs(), Abs(), Abs(), Acos(), Acosh(), AESInvMixColumns(), AESKeyGenAssist(), AESKeyGenAssist(), AESKeyGenAssist(), AESLastRound(), AESLastRound(), AESLastRoundInv(), AESLastRoundInv(), AESRound(), AESRound(), AESRoundInv(), AESRoundInv(), AllFalse(), AllFalse(), AllFalse(), AllFalse(), AllFalse(), AllTrue(), AllTrue(), AllTrue(), AllTrue(), AllTrue(), AllTrue(), And(), And(), And(), And(), And(), And(), AndNot(), AndNot(), AndNot(), AndNot(), ApproximateReciprocal(), ApproximateReciprocalSqrt(), ApproximateReciprocalSqrt(), Asin(), Asinh(), hwy::HWY_NAMESPACE::impl::AsinImpl< float >::AsinPoly(), AssertMaskEqual(), AssertVecEqual(), AssertVecEqual(), Atan(), Atan2(), Atanh(), hwy::HWY_NAMESPACE::impl::AtanImpl< float >::AtanPoly(), hwy::HWY_NAMESPACE::detail::AVX2ShlU16Vec128(), hwy::HWY_NAMESPACE::detail::AVX2ShlU8Vec128(), hwy::HWY_NAMESPACE::detail::AVX2ShrI8Vec128(), hwy::HWY_NAMESPACE::detail::AVX2ShrU8Vec128(), BitCast(), BitCast(), BitCast(), BitCast(), BitCast(), hwy::HWY_NAMESPACE::detail::BitCastFromByte(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BlendedStore(), BlendedStore(), BlendedStore(), Blocks(), Broadcast(), Broadcast(), Broadcast(), Broadcast(), BroadcastBlock(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), BroadcastSignBit(), CallAcos(), CallAcosh(), CallAsin(), CallAsinh(), CallAtan(), CallAtan2(), CallAtanh(), CallCos(), CallExp(), CallExpm1(), CallLog(), CallLog10(), CallLog1p(), CallLog2(), CallSin(), CallSinCos(), CallSinh(), CallTanh(), hwy::HWY_NAMESPACE::detail::ChangeLMUL(), hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max(), CLMulLower(), CLMulLower(), CLMulUpper(), CLMulUpper(), Combine(), Combine(), Combine(), Combine(), Combine(), Combine(), CombineShiftRightBytes(), CombineShiftRightBytes(), CombineShiftRightBytes(), CombineShiftRightBytes(), CombineShiftRightBytes(), hwy::HWY_NAMESPACE::detail::CombineShiftRightI32Lanes(), hwy::HWY_NAMESPACE::detail::CombineShiftRightI64Lanes(), CombineShiftRightLanes(), Compress(), Compress(), Compress(), Compress(), Compress(), Compress(), CompressBits(), hwy::HWY_NAMESPACE::detail::CompressBits(), CompressBitsStore(), CompressBitsStore(), CompressBitsStore(), CompressBitsStore(), CompressBlendedStore(), CompressBlendedStore(), CompressBlendedStore(), CompressBlendedStore(), CompressBlendedStore(), CompressBlendedStore(), CompressBlocksNot(), CompressNot(), CompressNot(), CompressNot(), CompressNot(), hwy::HWY_NAMESPACE::detail::CompressNotBits(), CompressStore(), CompressStore(), CompressStore(), CompressStore(), CompressStore(), CompressStore(), hwy::HWY_NAMESPACE::Dot::Compute(), hwy::HWY_NAMESPACE::Dot::Compute(), ConcatEven(), ConcatEven(), ConcatEven(), ConcatEven(), ConcatEven(), ConcatEven(), hwy::HWY_NAMESPACE::detail::ConcatEven(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerLower(), ConcatLowerUpper(), ConcatLowerUpper(), ConcatLowerUpper(), ConcatOdd(), ConcatOdd(), ConcatOdd(), ConcatOdd(), ConcatOdd(), ConcatOdd(), hwy::HWY_NAMESPACE::detail::ConcatOdd(), ConcatUpperLower(), ConcatUpperLower(), ConcatUpperLower(), ConcatUpperUpper(), ConcatUpperUpper(), ConcatUpperUpper(), ConvertTo(), ConvertTo(), Copy(), CopyIf(), CopySign(), CopySign(), CopySign(), CopySign(), CopySignToAbs(), CopySignToAbs(), CopySignToAbs(), CopySignToAbs(), Cos(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::CosSignFromQuadrant(), hwy::HWY_NAMESPACE::detail::CountAndReplaceNaN(), CountTrue(), CountTrue(), CountTrue(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), DemoteTo(), Div(), hwy::HWY_NAMESPACE::detail::ForeachCappedR< T, kMul, kMinArg, Test, kPow2 >::Do(), Dup128MaskFromMaskBits(), Dup128VecFromValues(), Dup128VecFromValues(), Dup128VecFromValues(), Dup128VecFromValues(), Dup128VecFromValues(), DupEven(), DupEven(), DupEven(), DupEven(), DupOdd(), DupOdd(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompress(), hwy::HWY_NAMESPACE::detail::EmuCompressStore(), Eq128(), Eq128(), Eq128(), Eq128(), Eq128(), Eq128Upper(), Eq128Upper(), Eq128Upper(), Eq128Upper(), Eq128Upper(), hwy::HWY_NAMESPACE::detail::Eq128UpperVec(), hwy::HWY_NAMESPACE::detail::Eq128UpperVec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), hwy::HWY_NAMESPACE::detail::Eq128Vec(), ExclusiveNeither(), ExclusiveNeither(), ExclusiveNeither(), Exp(), Expand(), Expand(), Expand(), Expand(), Expand(), Expand(), Expand(), hwy::HWY_NAMESPACE::detail::ExpandLoop(), Expm1(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpPoly(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::ExpReduce(), hwy::HWY_NAMESPACE::detail::Ext(), ExtractBlock(), ExtractBlock(), ExtractLane(), hwy::HWY_NAMESPACE::detail::F32ExpLzcntMinMaxBitCast(), Fill(), Find(), FindFirstTrue(), FindFirstTrue(), FindFirstTrue(), FindIf(), FindKnownFirstTrue(), FindKnownFirstTrue(), FindKnownFirstTrue(), FindKnownLastTrue(), FindKnownLastTrue(), FindKnownLastTrue(), FindLastTrue(), FindLastTrue(), FindLastTrue(), FirstN(), Foreach(), GatherIndex(), GatherIndex(), GatherIndex(), GatherIndex(), GatherIndex(), GatherIndexN(), GatherOffset(), GatherOffset(), GatherOffset(), Generate(), GenerateInput(), hwy::HWY_NAMESPACE::detail::GetLane(), hwy::HWY_NAMESPACE::detail::HeapSelect(), HighestSetBitIndex(), hwy::HWY_NAMESPACE::detail::I128Subtract(), hwy::HWY_NAMESPACE::detail::I32RangeU32ToF32BiasedExp(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), hwy::HWY_NAMESPACE::detail::IdxFromNotBits(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenElse(), IfNegativeThenNegOrUndefIfZero(), IfThenElse(), IfThenElse(), IfThenElseZero(), IfThenZeroElse(), IfVecThenElse(), IfVecThenElse(), hwy::HWY_NAMESPACE::detail::IndicesFromBits128(), hwy::HWY_NAMESPACE::detail::IndicesFromNotBits128(), IndicesFromVec(), IndicesFromVec(), IndicesFromVec(), IndicesFromVec(), hwy::HWY_NAMESPACE::detail::IndicesFromVecBroadcastLaneBytes(), hwy::HWY_NAMESPACE::detail::IndicesFromVecByteOffsets(), Inf(), hwy::HWY_NAMESPACE::detail::InsertBlock(), hwy::HWY_NAMESPACE::detail::InsertBlock(), InsertBlock(), InsertLane(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLane(), InsertLane(), InsertLane(), InsertLane(), InsertLane(), InsertLane(), hwy::HWY_NAMESPACE::detail::InsertLaneUsingBroadcastAndBlend(), hwy::HWY_NAMESPACE::detail::IntDiv(), hwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv(), InterleaveLower(), InterleaveLower(), InterleaveLower(), InterleaveLower(), hwy::HWY_NAMESPACE::detail::InterleaveLowerBlocks(), InterleaveOdd(), InterleaveUpper(), InterleaveUpper(), InterleaveUpper(), hwy::HWY_NAMESPACE::detail::InterleaveUpper(), hwy::HWY_NAMESPACE::detail::InterleaveUpperBlocks(), hwy::HWY_NAMESPACE::detail::InterleaveWhole(), InterleaveWholeLower(), InterleaveWholeUpper(), Iota(), Iota(), hwy::HWY_NAMESPACE::detail::Iota0(), IotaForSpecial(), IsAligned(), hwy::HWY_NAMESPACE::detail::IsEven(), IsFinite(), IsFinite(), IsFinite(), IsFinite(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), IsInf(), IsNegative(), hwy::HWY_NAMESPACE::detail::IsOdd(), hwy::HWY_NAMESPACE::detail::IsSupportedLMUL(), hwy::HWY_NAMESPACE::detail::LanesPerBlock(), hwy::HWY_NAMESPACE::detail::LargerSortValue(), hwy::HWY_NAMESPACE::detail::LargestSortValue(), hwy::HWY_NAMESPACE::detail::OrderAscending< T >::LastValue(), hwy::HWY_NAMESPACE::detail::OrderDescending< T >::LastValue(), LeadingZeroCount(), Load(), Load(), hwy::HWY_NAMESPACE::detail::Load8Bytes(), LoadDup128(), LoadDup128(), LoadDup128(), LoadExpand(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::LoadExpShortRange(), LoadInterleaved2(), LoadInterleaved2(), LoadInterleaved2(), LoadInterleaved3(), LoadInterleaved3(), LoadInterleaved3(), LoadInterleaved4(), LoadInterleaved4(), LoadInterleaved4(), LoadMaskBits(), hwy::HWY_NAMESPACE::detail::LoadMaskBits(), LoadN(), LoadN(), LoadN(), LoadNOr(), LoadNOr(), LoadNOr(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4(), LoadU(), LoadU(), hwy::HWY_NAMESPACE::impl::Log(), Log(), Log10(), Log1p(), Log2(), hwy::HWY_NAMESPACE::impl::LogImpl< float >::LogPoly(), LowerHalfOfMask(), LowerHalfOfMask(), Lt128(), Lt128(), Lt128(), Lt128(), Lt128(), Lt128Upper(), Lt128Upper(), Lt128Upper(), Lt128Upper(), Lt128Upper(), hwy::HWY_NAMESPACE::detail::Lt128UpperVec(), hwy::HWY_NAMESPACE::detail::Lt128UpperVec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lt128Vec(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16(), hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16AsU16(), hwy::HWY_NAMESPACE::detail::MakeMask(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskFalse(), hwy::HWY_NAMESPACE::detail::MaskLowerHalf(), MaskTrue(), hwy::HWY_NAMESPACE::detail::MaskUpperHalf(), MatVecAddImpl(), Max128(), Max128(), Max128(), Max128(), Max128Upper(), Max128Upper(), Max128Upper(), Max128Upper(), MaxOfLanes(), MaxOfLanes(), MaxOfLanes(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::MaxU(), hwy::HWY_NAMESPACE::detail::MaybePrintVector(), Min128(), Min128(), Min128(), Min128(), Min128Upper(), Min128Upper(), Min128Upper(), Min128Upper(), MinOfLanes(), MinOfLanes(), MinOfLanes(), hwy::HWY_NAMESPACE::detail::MinU(), MulAddSub(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulEven(), MulFixedPoint15(), MulHigh(), MulHigh(), MulHigh(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), MulOdd(), NaN(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), hwy::HWY_NAMESPACE::detail::NativeScatter128(), hwy::HWY_NAMESPACE::detail::NativeSet(), Ne128(), Ne128(), Ne128(), Ne128(), Ne128(), Ne128Upper(), Ne128Upper(), Ne128Upper(), Ne128Upper(), Ne128Upper(), hwy::HWY_NAMESPACE::detail::Ne128UpperVec(), hwy::HWY_NAMESPACE::detail::Ne128UpperVec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), hwy::HWY_NAMESPACE::detail::Ne128Vec(), Neg(), Neg(), Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), hwy::HWY_NAMESPACE::detail::Neg(), Neg(), Neg(), NegMulSub(), hwy::HWY_NAMESPACE::detail::NibblesFromMask(), Not(), Not(), Not(), Not(), OddEven(), OddEven(), hwy::HWY_NAMESPACE::detail::OddEven(), OddEven(), OddEven(), OddEvenBlocks(), OddEvenBlocks(), OddEvenBlocks(), hwy::HWY_NAMESPACE::detail::OffsetsOf128BitBlocks(), hwy::HWY_NAMESPACE::detail::ShiftLeftBytesT< kBytes >::operator()(), hwy::HWY_NAMESPACE::detail::ShiftRightBytesT< kBytes >::operator()(), operator*(), operator*(), operator*(), operator+(), operator-(), operator<<(), operator<<(), operator>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), Or(), Or(), Or(), Or(), Or(), Or(), Or3(), OrAnd(), OrderedDemote2To(), OrderedTruncate2To(), hwy::HWY_NAMESPACE::Pack16< 1 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Pack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Pack(), PartialSort(), PartialSort(), hwy::HWY_NAMESPACE::detail::Per128BitBlkRevLanesOnBe(), hwy::HWY_NAMESPACE::detail::Per4LaneBlkShufDupSet4xU32(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle(), hwy::HWY_NAMESPACE::detail::Per64BitBlkRevLanesOnBe(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::Poly(), PopulationCount(), PositiveIota(), hwy::HWY_NAMESPACE::impl::ExpImpl< float >::Pow2I(), Print(), PromoteInRangeEvenTo(), PromoteInRangeLowerTo(), PromoteLowerTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteTo(), PromoteUpperTo(), PromoteUpperTo(), PromoteUpperTo(), RandomValues(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), RearrangeToOddPlusEven(), ReduceMax(), ReduceMin(), ReduceSum(), hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks(), hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderDemote2To(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), ReorderWidenMulAccumulate(), Replace(), ReplaceIf(), ResizeBitCast(), ResizeBitCast(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse(), Reverse2(), Reverse2(), Reverse2(), Reverse4(), Reverse4(), Reverse4(), Reverse8(), Reverse8(), ReverseBits(), ReverseBlocks(), ReverseBlocks(), ReverseLaneBytes(), Rol(), Rol(), Ror(), Ror(), RotateLeftSame(), RotateLeftSame(), RotateRight(), RotateRight(), RotateRight(), RotateRight(), RotateRightSame(), RotateRightSame(), hwy::HWY_NAMESPACE::detail::RoundF32ForDemoteToBF16(), SafeCopyN(), SafeFillN(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedAdd(), SaturatedNeg(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), SaturatedSub(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), ScatterIndex(), ScatterIndex(), ScatterIndex(), ScatterIndex(), ScatterIndexN(), ScatterOffset(), ScatterOffset(), ScatterOffset(), Select(), Select(), Set(), Set(), Set(), Set(), hwy::HWY_NAMESPACE::detail::Set64(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrAfterFirst(), SetAtOrBeforeFirst(), SetAtOrBeforeFirst(), SetAtOrBeforeFirst(), hwy::HWY_NAMESPACE::detail::TraitsLane< Order >::SetKey(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetOnlyFirst(), SetTableIndices(), ShiftLeftBytes(), ShiftLeftBytes(), ShiftLeftBytes(), ShiftLeftLanes(), ShiftLeftLanes(), ShiftLeftLanes(), ShiftLeftSame(), ShiftRightBytes(), ShiftRightBytes(), ShiftRightBytes(), ShiftRightLanes(), ShiftRightLanes(), ShiftRightLanes(), ShiftRightLanes(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), hwy::HWY_NAMESPACE::detail::Shl(), Shuffle01(), Shuffle0321(), Shuffle1032(), Shuffle1032(), hwy::HWY_NAMESPACE::detail::Shuffle128(), Shuffle2103(), Shuffle2301(), hwy::HWY_NAMESPACE::detail::ShuffleTwo1230(), hwy::HWY_NAMESPACE::detail::ShuffleTwo2301(), hwy::HWY_NAMESPACE::detail::ShuffleTwo3012(), hwy::HWY_NAMESPACE::detail::SiftDown(), SignBit(), Sin(), hwy::HWY_NAMESPACE::impl::SinCosImpl< float >::SinCos(), SinCos(), hwy::HWY_NAMESPACE::impl::SinCos3(), hwy::HWY_NAMESPACE::impl::SinCos6(), Sinh(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinReduce(), hwy::HWY_NAMESPACE::impl::CosSinImpl< float >::SinSignFromQuadrant(), Slide1Down(), Slide1Down(), Slide1Up(), Slide1Up(), hwy::HWY_NAMESPACE::detail::SlideDownI32Lanes(), hwy::HWY_NAMESPACE::detail::SlideDownI64Lanes(), SlideDownLanes(), hwy::HWY_NAMESPACE::detail::SlideDownLanes(), SlideMask1Down(), SlideMask1Down(), SlideMask1Up(), SlideMask1Up(), SlideMaskDownLanes(), SlideMaskDownLanes(), SlideMaskUpLanes(), SlideMaskUpLanes(), hwy::HWY_NAMESPACE::detail::SlideUpI32Lanes(), hwy::HWY_NAMESPACE::detail::SlideUpI64Lanes(), SlideUpLanes(), hwy::HWY_NAMESPACE::detail::SlideUpLanes(), hwy::HWY_NAMESPACE::detail::SmallerSortValue(), hwy::HWY_NAMESPACE::detail::SmallestSortValue(), Sort(), Sort(), hwy::HWY_NAMESPACE::detail::Splice(), Store(), Store(), Store(), Store(), Store(), StoreInterleaved2(), StoreInterleaved2(), StoreInterleaved2(), StoreInterleaved2(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved3(), StoreInterleaved4(), StoreInterleaved4(), StoreInterleaved4(), StoreInterleaved4(), StoreMaskBits(), StoreMaskBits(), StoreMaskBits(), hwy::HWY_NAMESPACE::detail::StoreN(), StoreN(), StoreN(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4(), StoreU(), StoreU(), StoreU(), StoreU(), StoreU(), Stream(), Stream(), Stream(), Stream(), Stream(), SumOfLanes(), hwy::HWY_NAMESPACE::detail::SumOfU32OrU64LanesAsU128(), SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf2(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), hwy::HWY_NAMESPACE::detail::SumsOf4(), SumsOf8(), SumsOf8AbsDiff(), SumsOfAdjQuadAbsDiff(), SumsOfAdjQuadAbsDiff(), SumsOfShuffledQuadAbsDiff(), SwapAdjacentBlocks(), SwapAdjacentBlocks(), SwapAdjacentBlocks(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), TableLookupLanes(), hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes(), hwy::HWY_NAMESPACE::detail::TableLookupSlideUpLanes(), Tanh(), Transform(), Transform1(), Transform2(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TruncateTo(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), TwoTablesLookupLanes(), hwy::HWY_NAMESPACE::detail::UI8ReverseBitsStep(), hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp(), hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp(), Undefined(), hwy::HWY_NAMESPACE::Pack16< 1 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 2 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 3 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 4 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 5 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 6 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 7 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 8 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 9 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 10 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 11 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 12 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 13 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 14 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 15 >::Unpack(), hwy::HWY_NAMESPACE::Pack16< 16 >::Unpack(), Unroller(), Unroller(), UpperHalf(), UpperHalf(), UpperHalf(), hwy::HWY_NAMESPACE::detail::UseInt(), VecFromMask(), VecFromMask(), VecFromMask(), VecFromMask(), VQPartialSortStatic(), VQPartialSortStatic(), VQSelectStatic(), VQSelectStatic(), VQSortStatic(), VQSortStatic(), Xor(), Xor(), Xor(), Xor(), Xor(), Xor(), Xor3(), Zero(), ZeroExtendVector(), ZeroExtendVector(), and ZeroExtendVector().

◆ indices

svbool_t D const TFromD< D > *HWY_RESTRICT VFromD< RebindToSigned< D > > hwy::HWY_NAMESPACE::indices
Initial value:
{
MaskedScatterIndex(v, detail::MakeMask(d), d, p, indices)
HWY_API void MaskedScatterIndex(VFromD< D > v, MFromD< D > m, D d, T *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
Definition generic_ops-inl.h:2661

Referenced by Compress(), hwy::HWY_NAMESPACE::detail::CompressBits(), CompressBitsStore(), CompressNot(), CompressNot(), hwy::HWY_NAMESPACE::detail::CompressNotBits(), Expand(), GatherIndex(), GatherIndex(), GatherIndex(), IndicesFromVec(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), hwy::HWY_NAMESPACE::detail::NativeGather128(), hwy::HWY_NAMESPACE::detail::NativeGather128(), hwy::HWY_NAMESPACE::detail::NativeGather128(), hwy::HWY_NAMESPACE::detail::NativeGather128(), hwy::HWY_NAMESPACE::detail::NativeGather256(), hwy::HWY_NAMESPACE::detail::NativeGather256(), hwy::HWY_NAMESPACE::detail::NativeGather256(), hwy::HWY_NAMESPACE::detail::NativeGather256(), hwy::HWY_NAMESPACE::detail::NativeGather512(), hwy::HWY_NAMESPACE::detail::NativeGather512(), hwy::HWY_NAMESPACE::detail::NativeGather512(), hwy::HWY_NAMESPACE::detail::NativeGather512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), ScatterIndex(), TableLookupBytes(), TableLookupBytes(), TableLookupBytes(), TableLookupBytesOr0(), and TableLookupBytesOr0().

◆ m

svbool_t hwy::HWY_NAMESPACE::m

Referenced by AllFalse(), AllFalse(), AllFalse(), AllFalse(), AllTrue(), AllTrue(), AllTrue(), AllTrue(), AllTrue(), hwy::HWY_NAMESPACE::detail::AllTrue(), hwy::HWY_NAMESPACE::detail::AllTrue(), hwy::HWY_NAMESPACE::detail::AllTrue(), hwy::HWY_NAMESPACE::detail::AllTrue(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), hwy::HWY_NAMESPACE::detail::BitsFromMask(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), BlendedStore(), hwy::HWY_NAMESPACE::detail::BoolFromMask(), Compress(), Compress(), CompressBits(), CompressBitsStore(), CompressBlendedStore(), CompressBlendedStore(), CompressNot(), CountTrue(), CountTrue(), DemoteMaskTo(), DemoteMaskTo(), DemoteMaskTo(), DemoteMaskTo(), FindFirstTrue(), FindKnownFirstTrue(), FindKnownLastTrue(), FindLastTrue(), IfNegativeThenElse(), LoadMaskBits(), LowerHalfOfMask(), LowerHalfOfMask(), LowerHalfOfMask(), LowerHalfOfMask(), MaskedAddOr(), MaskedAddOr(), MaskedAddOr(), MaskedAddOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedDivOr(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndex(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedGatherIndexOr(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoad(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedLoadOr(), MaskedMaxOr(), MaskedMaxOr(), MaskedMaxOr(), MaskedMaxOr(), MaskedMinOr(), MaskedMinOr(), MaskedMinOr(), MaskedMinOr(), MaskedModOr(), MaskedModOr(), MaskedMulOr(), MaskedMulOr(), MaskedMulOr(), MaskedMulOr(), MaskedMulOr(), MaskedMulOr(), MaskedMulOr(), MaskedSatAddOr(), MaskedSatAddOr(), MaskedSatAddOr(), MaskedSatAddOr(), MaskedSatSubOr(), MaskedSatSubOr(), MaskedSatSubOr(), MaskedSatSubOr(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedScatterIndex(), MaskedSubOr(), MaskedSubOr(), MaskedSubOr(), MaskedSubOr(), MaskFromVec(), MaxOfLanes(), MaxOfLanes(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr128(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr256(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), hwy::HWY_NAMESPACE::detail::NativeMaskedScatter128(), Not(), Not(), Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), hwy::HWY_NAMESPACE::detail::Not(), Not(), Not(), operator!=(), operator!=(), operator<(), operator<(), operator<=(), operator<=(), operator==(), operator==(), operator>(), operator>=(), PromoteMaskTo(), PromoteMaskTo(), PromoteMaskTo(), RebindMask(), RebindMask(), RebindMask(), RebindMask(), hwy::HWY_NAMESPACE::detail::ScalarMaskedStore(), SetAtOrAfterFirst(), SetAtOrBeforeFirst(), SetBeforeFirst(), SetOnlyFirst(), SlideMask1Down(), SlideMask1Down(), SlideMask1Up(), SlideMask1Up(), SlideMaskDownLanes(), SlideMaskDownLanes(), SlideMaskUpLanes(), SlideMaskUpLanes(), StoreMaskBits(), hwy::HWY_NAMESPACE::detail::UnmaskedNot(), hwy::HWY_NAMESPACE::detail::UnmaskedNot(), UpperHalfOfMask(), VecFromMask(), and VecFromMask().

◆ p

svbool_t D const TFromD< D > *HWY_RESTRICT hwy::HWY_NAMESPACE::p