Grok 12.0.1
Classes | Namespaces | Macros | Typedefs | Functions
generic_ops-inl.h File Reference
#include "hwy/base.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::detail::AddFunc
 
struct  hwy::HWY_NAMESPACE::detail::MinFunc
 
struct  hwy::HWY_NAMESPACE::detail::MaxFunc
 

Namespaces

namespace  hwy
 
namespace  hwy::HWY_NAMESPACE
 
namespace  hwy::HWY_NAMESPACE::detail
 

Macros

#define HWY_NATIVE_IS_NEGATIVE
 
#define HWY_NATIVE_MASK_FALSE
 
#define HWY_NATIVE_IF_NEG_THEN_ELSE_ZERO
 
#define HWY_NATIVE_IF_NEG_THEN_ZERO_ELSE
 
#define HWY_NATIVE_BITWISE_IF_THEN_ELSE
 
#define HWY_NATIVE_PROMOTE_MASK_TO
 
#define HWY_NATIVE_DEMOTE_MASK_TO
 
#define HWY_NATIVE_COMBINE_MASKS
 
#define HWY_NATIVE_LOWER_HALF_OF_MASK
 
#define HWY_NATIVE_UPPER_HALF_OF_MASK
 
#define HWY_NATIVE_ORDERED_DEMOTE_2_MASKS_TO
 
#define HWY_NATIVE_ROL_ROR_8
 
#define HWY_NATIVE_ROL_ROR_16
 
#define HWY_NATIVE_ROL_ROR_32_64
 
#define HWY_NATIVE_ROL_ROR_SAME_8
 
#define HWY_NATIVE_ROL_ROR_SAME_16
 
#define HWY_NATIVE_ROL_ROR_SAME_32_64
 
#define HWY_NATIVE_INTERLEAVE_WHOLE
 
#define HWY_NATIVE_MASKED_ARITH
 
#define HWY_NATIVE_INTEGER_IF_NEGATIVE_THEN_NEG
 
#define HWY_NATIVE_SATURATED_NEG_8_16_32
 
#define HWY_NATIVE_SATURATED_NEG_64
 
#define HWY_NATIVE_SATURATED_ABS
 
#define HWY_NATIVE_REDUCE_SCALAR
 
#define HWY_NATIVE_REDUCE_SUM_4_UI8
 
#define HWY_NATIVE_REDUCE_MINMAX_4_UI8
 
#define HWY_NATIVE_IS_EITHER_NAN
 
#define HWY_NATIVE_ISINF
 
#define HWY_NATIVE_LOAD_STORE_INTERLEAVED
 
#define HWY_NATIVE_LOAD_N
 
#define HWY_NATIVE_STORE_N
 
#define HWY_NATIVE_SCATTER
 
#define HWY_NATIVE_GATHER
 
#define HWY_NATIVE_INTEGER_ABS_DIFF
 
#define HWY_NATIVE_SUMS_OF_8_ABS_DIFF
 
#define HWY_NATIVE_I32_SATURATED_ADDSUB
 
#define HWY_NATIVE_I64_SATURATED_ADDSUB
 
#define HWY_NATIVE_U32_SATURATED_ADDSUB
 
#define HWY_NATIVE_U64_SATURATED_ADDSUB
 
#define HWY_NATIVE_PROMOTE_UPPER_TO
 
#define HWY_NATIVE_F16C
 
#define HWY_NATIVE_DEMOTE_F64_TO_F16
 
#define HWY_NATIVE_PROMOTE_F16_TO_F64
 
#define HWY_NATIVE_DEMOTE_F32_TO_BF16
 
#define HWY_NATIVE_F32_TO_UI64_PROMOTE_IN_RANGE_TO
 
#define HWY_NATIVE_F2I_CONVERT_IN_RANGE_TO
 
#define HWY_NATIVE_F64_TO_UI32_DEMOTE_IN_RANGE_TO
 
#define HWY_NATIVE_ORDERED_TRUNCATE_2_TO
 
#define HWY_NATIVE_LEADING_ZERO_COUNT
 
#define HWY_NATIVE_AES
 
#define HWY_NATIVE_POPCNT
 
#define HWY_IF_POPCNT(D)    hwy::EnableIf<D().Pow2() >= 1 && D().MaxLanes() >= 16>* = nullptr
 
#define HWY_NATIVE_MUL_8
 
#define HWY_NATIVE_MUL_64
 
#define HWY_NATIVE_INT_FMA
 
#define HWY_NATIVE_INT_FMSUB
 
#define HWY_NATIVE_INT_DIV
 
#define HWY_NATIVE_U8_I8_SATWIDENMULPAIRWISEADD
 
#define HWY_NATIVE_I16_I16_SATWIDENMULPAIRWISEACCUM
 
#define HWY_NATIVE_I16_SATWIDENMULACCUMFIXEDPOINT
 
#define HWY_NATIVE_I8_I8_SUMOFMULQUADACCUMULATE
 
#define HWY_NATIVE_U8_U8_SUMOFMULQUADACCUMULATE
 
#define HWY_NATIVE_U8_I8_SUMOFMULQUADACCUMULATE
 
#define HWY_NATIVE_I16_I16_SUMOFMULQUADACCUMULATE
 
#define HWY_NATIVE_U16_U16_SUMOFMULQUADACCUMULATE
 
#define HWY_NATIVE_F64_APPROX_RECIP
 
#define HWY_NATIVE_F64_APPROX_RSQRT
 
#define HWY_NATIVE_COMPRESS8
 
#define HWY_NATIVE_EXPAND
 
#define HWY_NATIVE_REVERSE2_8
 
#define HWY_PREFER_ROTATE   1
 
#define HWY_NATIVE_REVERSE_LANE_BYTES
 
#define HWY_REVERSE_BITS_MIN_BYTES   2
 
#define HWY_NATIVE_REVERSE_BITS_UI8
 
#define HWY_NATIVE_REVERSE_BITS_UI16_32_64
 
#define HWY_NATIVE_PER4LANEBLKSHUF_DUP32
 
#define HWY_NATIVE_BLK_INSERT_EXTRACT
 
#define HWY_NATIVE_BROADCASTLANE
 
#define HWY_NATIVE_SLIDE1_UP_DOWN
 
#define HWY_NATIVE_SLIDE_MASK
 
#define HWY_NATIVE_SUMS_OF_ADJ_QUAD_ABS_DIFF
 
#define HWY_NATIVE_SUMS_OF_SHUFFLED_QUAD_ABS_DIFF
 
#define HWY_NATIVE_OPERATOR_REPLACEMENTS
 

Typedefs

template<class V >
using hwy::HWY_NAMESPACE::LaneType = decltype(GetLane(V()))
 
template<class D >
using hwy::HWY_NAMESPACE::Vec = decltype(Zero(D()))
 
template<class D >
using hwy::HWY_NAMESPACE::Mask = decltype(MaskFromVec(Zero(D())))
 
template<class D >
using hwy::HWY_NAMESPACE::detail::F32ExpLzcntMinMaxRepartition = RebindToUnsigned<D>
 
template<class V >
using hwy::HWY_NAMESPACE::detail::F32ExpLzcntMinMaxCmpV = VFromD<F32ExpLzcntMinMaxRepartition<DFromV<V>>>
 
template<class D >
using hwy::HWY_NAMESPACE::IndicesFromD = decltype(IndicesFromVec(D(), Zero(RebindToUnsigned<D>())))
 

Functions

 HWY_BEFORE_NAMESPACE ()
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Clamp (const V v, const V lo, const V hi)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::SignBit (D d)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::NaN (D d)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::Inf (D d)
 
template<class DTo , class DFrom >
HWY_API VFromD< DTo > hwy::HWY_NAMESPACE::ZeroExtendResizeBitCast (DTo d_to, DFrom d_from, VFromD< DFrom > v)
 
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)
 
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)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_API Mask< DFromV< V > > hwy::HWY_NAMESPACE::IsNegative (V v)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::MaskFalse (D d)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIhwy::HWY_NAMESPACE::IfNegativeThenElseZero (V v, V yes)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIhwy::HWY_NAMESPACE::IfNegativeThenZeroElse (V v, V no)
 
template<class V , HWY_IF_NOT_UNSIGNED_V(V) >
HWY_APIhwy::HWY_NAMESPACE::ZeroIfNegative (V v)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::BitwiseIfThenElse (V mask, V yes, V no)
 
template<class DTo , class DFrom >
HWY_API Mask< DTo > hwy::HWY_NAMESPACE::PromoteMaskTo (DTo d_to, DFrom d_from, Mask< DFrom > m)
 
template<class DTo , class DFrom >
HWY_API Mask< DTo > hwy::HWY_NAMESPACE::DemoteMaskTo (DTo d_to, DFrom d_from, Mask< DFrom > m)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::LowerHalfOfMask (D d, Mask< Twice< D > > m)
 
template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::RotateLeft (V v)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::Rol (V a, V b)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::Ror (V a, V b)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::RotateLeftSame (V v, int bits)
 
template<class V , HWY_IF_UI8(TFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::RotateRightSame (V v, int bits)
 
template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIhwy::HWY_NAMESPACE::AddSub (V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedMinOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedMaxOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedAddOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedSubOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedMulOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedDivOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedModOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedSatAddOr (V no, M m, V a, V b)
 
template<class V , class M >
HWY_APIhwy::HWY_NAMESPACE::MaskedSatSubOr (V no, M m, V a, V b)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero (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_APIhwy::HWY_NAMESPACE::SaturatedNeg (V v)
 
template<class V , HWY_IF_I32(TFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::SaturatedNeg (V v)
 
template<class V , HWY_IF_SIGNED_V(V) >
HWY_APIhwy::HWY_NAMESPACE::SaturatedAbs (V v)
 
template<class D , class Func , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::ReduceAcrossBlocks (D, Func, VFromD< D > v)
 
template<class D , class Func , HWY_IF_LANES_PER_BLOCK_D(D, 2) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks (D d, Func f, VFromD< D > v10)
 
template<class D , class Func , HWY_IF_LANES_PER_BLOCK_D(D, 16) , HWY_IF_U8_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::ReduceWithinBlocks (D d, Func f, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SumOfLanes (D d, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MinOfLanes (D d, VFromD< D > v)
 
template<class D , HWY_IF_LANES_GT_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaxOfLanes (D d, VFromD< D > v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceSum (D d, VFromD< D > v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMin (D d, VFromD< D > v)
 
template<class D , HWY_IF_REDUCE_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceMax (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 4) , HWY_IF_UI8_D(D) >
HWY_API TFromD< D > hwy::HWY_NAMESPACE::ReduceSum (D, VFromD< D > v)
 
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)
 
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)
 
template<class V , HWY_IF_FLOAT_V(V) >
HWY_API MFromD< DFromV< V > > hwy::HWY_NAMESPACE::IsEitherNaN (V a, V b)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsInf (const V v)
 
template<class V , class D = DFromV<V>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::IsFinite (const V v)
 
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)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &A, VFromD< D > &B, VFromD< D > &C)
 
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)
 
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)
 
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)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &vA, VFromD< D > &vB, VFromD< D > &vC, VFromD< D > &vD)
 
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)
 
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)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2 (VFromD< D > A, VFromD< D > B, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
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)
 
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)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3 (VFromD< D > A, VFromD< D > B, VFromD< D > C, 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 hwy::HWY_NAMESPACE::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 hwy::HWY_NAMESPACE::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 hwy::HWY_NAMESPACE::StoreInterleaved3 (VFromD< D > v0, VFromD< D > v1, VFromD< D > v2, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4 (VFromD< D > vA, VFromD< D > vB, VFromD< D > vC, VFromD< D > vD, 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 hwy::HWY_NAMESPACE::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 hwy::HWY_NAMESPACE::StoreInterleaved4 (VFromD< D > part0, VFromD< D > part1, VFromD< D > part2, VFromD< D > part3, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::AbsDiff (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 > > > hwy::HWY_NAMESPACE::SumsOf8AbsDiff (V a, V b)
 
template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::SaturatedAdd (V a, V b)
 
template<class V , HWY_IF_I32_D(DFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::SaturatedSub (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 > hwy::HWY_NAMESPACE::DemoteTo (DN dn, V v)
 
template<class D , class V >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteLowerTo (D d, V v)
 
template<class D , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D df32, VFromD< Rebind< float16_t, D > > v)
 
template<class D , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D df16, VFromD< Rebind< float, D > > v)
 
template<class V , HWY_IF_F32(TFromV< V >) >
HWY_INLINE VFromD< RebindToUnsigned< DFromV< V > > > hwy::HWY_NAMESPACE::detail::RoundF32ForDemoteToBF16 (V v)
 
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)
 
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)
 
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)
 
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)
 
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)
 
template<class TypeTag , size_t kLaneSize, class V >
HWY_INLINE VFromD< RepartitionToWideX2< DFromV< V > > > hwy::HWY_NAMESPACE::detail::SumsOf4 (TypeTag, hwy::SizeTag< kLaneSize >, V v)
 
template<class V >
HWY_API VFromD< RepartitionToWideX2< DFromV< V > > > hwy::HWY_NAMESPACE::SumsOf4 (V v)
 
template<class D , HWY_IF_U32_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp (D d, VFromD< D > v)
 
template<class V , HWY_IF_U32_D(DFromV< V >) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::I32RangeU32ToF32BiasedExp (V v)
 
template<class D , HWY_IF_U16_D(D) , HWY_IF_LANES_LE_D(D, HWY_MAX_BYTES/4) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp (D d, VFromD< D > v)
 
template<class V >
HWY_INLINE F32ExpLzcntMinMaxCmpV< V > hwy::HWY_NAMESPACE::detail::F32ExpLzcntMinMaxBitCast (V v)
 
template<class V , HWY_IF_UNSIGNED_V(V) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::UIntToF32BiasedExp (V v)
 
template<class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::NormalizeForUIntTruncConvToF32 (V v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::HighestSetBitIndex (V v)
 
template<class V , HWY_IF_UI64_D(DFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::LeadingZeroCount (V v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::TrailingZeroCount (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_APIhwy::HWY_NAMESPACE::PopulationCount (V v)
 
template<class V , class D = DFromV<V>, HWY_IF_U16_D(D) >
HWY_APIhwy::HWY_NAMESPACE::PopulationCount (V v)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) , HWY_IF_V_SIZE_LE_V(V, HWY_MAX_BYTES/2) >
HWY_APIhwy::HWY_NAMESPACE::operator* (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_APIhwy::HWY_NAMESPACE::operator* (V x, V y)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::MulAdd (V mul, V x, V add)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::NegMulAdd (V mul, V x, V add)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::MulSub (V mul, V x, V sub)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::NegMulSub (V mul, V x, V sub)
 
template<class V , HWY_IF_LANES_D(DFromV< V >, 1) >
HWY_APIhwy::HWY_NAMESPACE::MulAddSub (V mul, V x, V sub_or_add)
 
template<class D , class V , HWY_IF_T_SIZE_D(D, sizeof(TFromV< V >)) >
HWY_INLINE Vec< D > hwy::HWY_NAMESPACE::detail::IntDivConvFloatToInt (D di, V vf)
 
template<class D , class V , HWY_IF_T_SIZE_D(D, sizeof(TFromV< V >)) >
HWY_INLINE Vec< D > hwy::HWY_NAMESPACE::detail::IntDivConvIntToFloat (D df, V vi)
 
template<size_t kOrigLaneSize, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_GT(TFromV< V >, kOrigLaneSize) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv (V a, V b)
 
template<size_t kOrigLaneSize, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE(TFromV< V >, kOrigLaneSize) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 4)|(1<< 8)) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::IntDivUsingFloatDiv (V a, V b)
 
template<size_t kOrigLaneSize, class V , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_V_SIZE_LE_V( V, HWY_MAX_BYTES/((!HWY_HAVE_FLOAT16 &&sizeof(TFromV< V >)==1) ? 4 :2)) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::IntDiv (V a, V b)
 
template<size_t kOrigLaneSize, class V , HWY_IF_T_SIZE_ONE_OF_V(V,(HWY_HAVE_FLOAT64 ? 0 :(1<< 4))|(1<< 8)) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::IntDiv (V a, V b)
 
template<size_t kOrigLaneSize, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,((HWY_TARGET<=HWY_SSE2|| HWY_TARGET==HWY_WASM|| HWY_TARGET==HWY_WASM_EMU256) ? 0 :(1<< 1))|(1<< 2)|(1<< 4)|(1<< 8)) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::IntMod (V a, V b)
 
template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator/ (Vec1< T > a, Vec1< T > b)
 
template<class T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::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 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAdd (DI16 di16, VU8 a, VI8 b)
 
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)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulAccumFixedPoint (DI32, VFromD< Rebind< int16_t, DI32 > > a, VFromD< Rebind< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APIhwy::HWY_NAMESPACE::Compress (V v, const M mask)
 
template<class V , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APIhwy::HWY_NAMESPACE::CompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class V , class M , typename T = TFromV<V>, HWY_IF_T_SIZE(T, 1) >
HWY_APIhwy::HWY_NAMESPACE::CompressNot (V v, M mask)
 
template<size_t N>
HWY_INLINE Vec128< uint8_t, N > hwy::HWY_NAMESPACE::detail::IndicesForExpandFromBits (uint64_t mask_bits)
 
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)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Expand (Vec128< T > v, Mask128< T > mask)
 
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)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Expand (Vec128< T, 1 > v, Mask128< T, 1 > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_T_SIZE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse2 (D d, VFromD< D > v)
 
template<class D , HWY_IF_T_SIZE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 (D d, VFromD< D > v)
 
template<class D , HWY_IF_T_SIZE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 (D d, VFromD< D > v)
 
template<class V , HWY_IF_T_SIZE_V(V, 2) >
HWY_APIhwy::HWY_NAMESPACE::ReverseLaneBytes (V v)
 
template<int kShiftAmt, int kShrResultMask, class V , HWY_IF_V_SIZE_GT_D(DFromV< V >, HWY_REVERSE_BITS_MIN_BYTES - 1) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::UI8ReverseBitsStep (V v)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIhwy::HWY_NAMESPACE::ReverseBits (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_APIhwy::HWY_NAMESPACE::ReverseBits (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_APIhwy::HWY_NAMESPACE::Per4LaneBlockShuffle (V v)
 
template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::Blocks (D d)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIhwy::HWY_NAMESPACE::InsertBlock (V, V blk_to_insert)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIhwy::HWY_NAMESPACE::ExtractBlock (V v)
 
template<int kBlockIdx, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIhwy::HWY_NAMESPACE::BroadcastBlock (V v)
 
template<int kLane, class V , HWY_IF_V_SIZE_LE_V(V, 16) >
HWY_APIhwy::HWY_NAMESPACE::BroadcastLane (V v)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Up (D d, VFromD< D >)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Down (D d, VFromD< D >)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpBlocks (D, VFromD< D > v)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownBlocks (D, VFromD< D > v)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMask1Up (D d, Mask< D > m)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMask1Down (D d, Mask< D > m)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMaskUpLanes (D d, Mask< D > m, size_t amt)
 
template<class D >
HWY_API Mask< D > hwy::HWY_NAMESPACE::SlideMaskDownLanes (D d, Mask< D > m, size_t amt)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Add (V a, V b)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Sub (V a, V b)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Mul (V a, V b)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Div (V a, V b)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Mod (V a, V b)
 
template<class V >
hwy::HWY_NAMESPACE::Shl (V a, V b)
 
template<class V >
hwy::HWY_NAMESPACE::Shr (V a, V b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Eq (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ne (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Lt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Gt (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Ge (V a, V b) -> decltype(a==b)
 
template<class V >
HWY_API auto hwy::HWY_NAMESPACE::Le (V a, V b) -> decltype(a==b)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_IF_POPCNT

#define HWY_IF_POPCNT ( D)     hwy::EnableIf<D().Pow2() >= 1 && D().MaxLanes() >= 16>* = nullptr

◆ HWY_NATIVE_AES

#define HWY_NATIVE_AES

◆ HWY_NATIVE_BITWISE_IF_THEN_ELSE

#define HWY_NATIVE_BITWISE_IF_THEN_ELSE

◆ HWY_NATIVE_BLK_INSERT_EXTRACT

#define HWY_NATIVE_BLK_INSERT_EXTRACT

◆ HWY_NATIVE_BROADCASTLANE

#define HWY_NATIVE_BROADCASTLANE

◆ HWY_NATIVE_COMBINE_MASKS

#define HWY_NATIVE_COMBINE_MASKS

◆ HWY_NATIVE_COMPRESS8

#define HWY_NATIVE_COMPRESS8

◆ HWY_NATIVE_DEMOTE_F32_TO_BF16

#define HWY_NATIVE_DEMOTE_F32_TO_BF16

◆ HWY_NATIVE_DEMOTE_F64_TO_F16

#define HWY_NATIVE_DEMOTE_F64_TO_F16

◆ HWY_NATIVE_DEMOTE_MASK_TO

#define HWY_NATIVE_DEMOTE_MASK_TO

◆ HWY_NATIVE_EXPAND

#define HWY_NATIVE_EXPAND

◆ HWY_NATIVE_F16C

#define HWY_NATIVE_F16C

◆ HWY_NATIVE_F2I_CONVERT_IN_RANGE_TO

#define HWY_NATIVE_F2I_CONVERT_IN_RANGE_TO

◆ HWY_NATIVE_F32_TO_UI64_PROMOTE_IN_RANGE_TO

#define HWY_NATIVE_F32_TO_UI64_PROMOTE_IN_RANGE_TO

◆ HWY_NATIVE_F64_APPROX_RECIP

#define HWY_NATIVE_F64_APPROX_RECIP

◆ HWY_NATIVE_F64_APPROX_RSQRT

#define HWY_NATIVE_F64_APPROX_RSQRT

◆ HWY_NATIVE_F64_TO_UI32_DEMOTE_IN_RANGE_TO

#define HWY_NATIVE_F64_TO_UI32_DEMOTE_IN_RANGE_TO

◆ HWY_NATIVE_GATHER

#define HWY_NATIVE_GATHER

◆ HWY_NATIVE_I16_I16_SATWIDENMULPAIRWISEACCUM

#define HWY_NATIVE_I16_I16_SATWIDENMULPAIRWISEACCUM

◆ HWY_NATIVE_I16_I16_SUMOFMULQUADACCUMULATE

#define HWY_NATIVE_I16_I16_SUMOFMULQUADACCUMULATE

◆ HWY_NATIVE_I16_SATWIDENMULACCUMFIXEDPOINT

#define HWY_NATIVE_I16_SATWIDENMULACCUMFIXEDPOINT

◆ HWY_NATIVE_I32_SATURATED_ADDSUB

#define HWY_NATIVE_I32_SATURATED_ADDSUB

◆ HWY_NATIVE_I64_SATURATED_ADDSUB

#define HWY_NATIVE_I64_SATURATED_ADDSUB

◆ HWY_NATIVE_I8_I8_SUMOFMULQUADACCUMULATE

#define HWY_NATIVE_I8_I8_SUMOFMULQUADACCUMULATE

◆ HWY_NATIVE_IF_NEG_THEN_ELSE_ZERO

#define HWY_NATIVE_IF_NEG_THEN_ELSE_ZERO

◆ HWY_NATIVE_IF_NEG_THEN_ZERO_ELSE

#define HWY_NATIVE_IF_NEG_THEN_ZERO_ELSE

◆ HWY_NATIVE_INT_DIV

#define HWY_NATIVE_INT_DIV

◆ HWY_NATIVE_INT_FMA

#define HWY_NATIVE_INT_FMA

◆ HWY_NATIVE_INT_FMSUB

#define HWY_NATIVE_INT_FMSUB

◆ HWY_NATIVE_INTEGER_ABS_DIFF

#define HWY_NATIVE_INTEGER_ABS_DIFF

◆ HWY_NATIVE_INTEGER_IF_NEGATIVE_THEN_NEG

#define HWY_NATIVE_INTEGER_IF_NEGATIVE_THEN_NEG

◆ HWY_NATIVE_INTERLEAVE_WHOLE

#define HWY_NATIVE_INTERLEAVE_WHOLE

◆ HWY_NATIVE_IS_EITHER_NAN

#define HWY_NATIVE_IS_EITHER_NAN

◆ HWY_NATIVE_IS_NEGATIVE

#define HWY_NATIVE_IS_NEGATIVE

◆ HWY_NATIVE_ISINF

#define HWY_NATIVE_ISINF

◆ HWY_NATIVE_LEADING_ZERO_COUNT

#define HWY_NATIVE_LEADING_ZERO_COUNT

◆ HWY_NATIVE_LOAD_N

#define HWY_NATIVE_LOAD_N

◆ HWY_NATIVE_LOAD_STORE_INTERLEAVED

#define HWY_NATIVE_LOAD_STORE_INTERLEAVED

◆ HWY_NATIVE_LOWER_HALF_OF_MASK

#define HWY_NATIVE_LOWER_HALF_OF_MASK

◆ HWY_NATIVE_MASK_FALSE

#define HWY_NATIVE_MASK_FALSE

◆ HWY_NATIVE_MASKED_ARITH

#define HWY_NATIVE_MASKED_ARITH

◆ HWY_NATIVE_MUL_64

#define HWY_NATIVE_MUL_64

◆ HWY_NATIVE_MUL_8

#define HWY_NATIVE_MUL_8

◆ HWY_NATIVE_OPERATOR_REPLACEMENTS

#define HWY_NATIVE_OPERATOR_REPLACEMENTS

◆ HWY_NATIVE_ORDERED_DEMOTE_2_MASKS_TO

#define HWY_NATIVE_ORDERED_DEMOTE_2_MASKS_TO

◆ HWY_NATIVE_ORDERED_TRUNCATE_2_TO

#define HWY_NATIVE_ORDERED_TRUNCATE_2_TO

◆ HWY_NATIVE_PER4LANEBLKSHUF_DUP32

#define HWY_NATIVE_PER4LANEBLKSHUF_DUP32

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

◆ HWY_NATIVE_PROMOTE_F16_TO_F64

#define HWY_NATIVE_PROMOTE_F16_TO_F64

◆ HWY_NATIVE_PROMOTE_MASK_TO

#define HWY_NATIVE_PROMOTE_MASK_TO

◆ HWY_NATIVE_PROMOTE_UPPER_TO

#define HWY_NATIVE_PROMOTE_UPPER_TO

◆ HWY_NATIVE_REDUCE_MINMAX_4_UI8

#define HWY_NATIVE_REDUCE_MINMAX_4_UI8

◆ HWY_NATIVE_REDUCE_SCALAR

#define HWY_NATIVE_REDUCE_SCALAR

◆ HWY_NATIVE_REDUCE_SUM_4_UI8

#define HWY_NATIVE_REDUCE_SUM_4_UI8

◆ HWY_NATIVE_REVERSE2_8

#define HWY_NATIVE_REVERSE2_8

◆ HWY_NATIVE_REVERSE_BITS_UI16_32_64

#define HWY_NATIVE_REVERSE_BITS_UI16_32_64

◆ HWY_NATIVE_REVERSE_BITS_UI8

#define HWY_NATIVE_REVERSE_BITS_UI8

◆ HWY_NATIVE_REVERSE_LANE_BYTES

#define HWY_NATIVE_REVERSE_LANE_BYTES

◆ HWY_NATIVE_ROL_ROR_16

#define HWY_NATIVE_ROL_ROR_16

◆ HWY_NATIVE_ROL_ROR_32_64

#define HWY_NATIVE_ROL_ROR_32_64

◆ HWY_NATIVE_ROL_ROR_8

#define HWY_NATIVE_ROL_ROR_8

◆ HWY_NATIVE_ROL_ROR_SAME_16

#define HWY_NATIVE_ROL_ROR_SAME_16

◆ HWY_NATIVE_ROL_ROR_SAME_32_64

#define HWY_NATIVE_ROL_ROR_SAME_32_64

◆ HWY_NATIVE_ROL_ROR_SAME_8

#define HWY_NATIVE_ROL_ROR_SAME_8

◆ HWY_NATIVE_SATURATED_ABS

#define HWY_NATIVE_SATURATED_ABS

◆ HWY_NATIVE_SATURATED_NEG_64

#define HWY_NATIVE_SATURATED_NEG_64

◆ HWY_NATIVE_SATURATED_NEG_8_16_32

#define HWY_NATIVE_SATURATED_NEG_8_16_32

◆ HWY_NATIVE_SCATTER

#define HWY_NATIVE_SCATTER

◆ HWY_NATIVE_SLIDE1_UP_DOWN

#define HWY_NATIVE_SLIDE1_UP_DOWN

◆ HWY_NATIVE_SLIDE_MASK

#define HWY_NATIVE_SLIDE_MASK

◆ HWY_NATIVE_STORE_N

#define HWY_NATIVE_STORE_N

◆ HWY_NATIVE_SUMS_OF_8_ABS_DIFF

#define HWY_NATIVE_SUMS_OF_8_ABS_DIFF

◆ HWY_NATIVE_SUMS_OF_ADJ_QUAD_ABS_DIFF

#define HWY_NATIVE_SUMS_OF_ADJ_QUAD_ABS_DIFF

◆ HWY_NATIVE_SUMS_OF_SHUFFLED_QUAD_ABS_DIFF

#define HWY_NATIVE_SUMS_OF_SHUFFLED_QUAD_ABS_DIFF

◆ HWY_NATIVE_U16_U16_SUMOFMULQUADACCUMULATE

#define HWY_NATIVE_U16_U16_SUMOFMULQUADACCUMULATE

◆ HWY_NATIVE_U32_SATURATED_ADDSUB

#define HWY_NATIVE_U32_SATURATED_ADDSUB

◆ HWY_NATIVE_U64_SATURATED_ADDSUB

#define HWY_NATIVE_U64_SATURATED_ADDSUB

◆ HWY_NATIVE_U8_I8_SATWIDENMULPAIRWISEADD

#define HWY_NATIVE_U8_I8_SATWIDENMULPAIRWISEADD

◆ HWY_NATIVE_U8_I8_SUMOFMULQUADACCUMULATE

#define HWY_NATIVE_U8_I8_SUMOFMULQUADACCUMULATE

◆ HWY_NATIVE_U8_U8_SUMOFMULQUADACCUMULATE

#define HWY_NATIVE_U8_U8_SUMOFMULQUADACCUMULATE

◆ HWY_NATIVE_UPPER_HALF_OF_MASK

#define HWY_NATIVE_UPPER_HALF_OF_MASK

◆ HWY_PREFER_ROTATE

#define HWY_PREFER_ROTATE   1

◆ HWY_REVERSE_BITS_MIN_BYTES

#define HWY_REVERSE_BITS_MIN_BYTES   2

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )