Grok  9.5.0
Classes | Enumerations | Functions
hwy::HWY_NAMESPACE::detail Namespace Reference

Classes

struct  Raw128
 
struct  Raw128< uint8_t, 16 >
 
struct  Raw128< uint16_t, 8 >
 
struct  Raw128< uint32_t, 4 >
 
struct  Raw128< uint64_t, 2 >
 
struct  Raw128< int8_t, 16 >
 
struct  Raw128< int16_t, 8 >
 
struct  Raw128< int32_t, 4 >
 
struct  Raw128< int64_t, 2 >
 
struct  Raw128< float16_t, 8 >
 
struct  Raw128< bfloat16_t, 8 >
 
struct  Raw128< float, 4 >
 
struct  Raw128< uint8_t, 8 >
 
struct  Raw128< uint16_t, 4 >
 
struct  Raw128< uint32_t, 2 >
 
struct  Raw128< uint64_t, 1 >
 
struct  Raw128< int8_t, 8 >
 
struct  Raw128< int16_t, 4 >
 
struct  Raw128< int32_t, 2 >
 
struct  Raw128< int64_t, 1 >
 
struct  Raw128< float16_t, 4 >
 
struct  Raw128< bfloat16_t, 4 >
 
struct  Raw128< float, 2 >
 
struct  Raw128< uint8_t, 4 >
 
struct  Raw128< uint16_t, 2 >
 
struct  Raw128< uint32_t, 1 >
 
struct  Raw128< int8_t, 4 >
 
struct  Raw128< int16_t, 2 >
 
struct  Raw128< int32_t, 1 >
 
struct  Raw128< float16_t, 2 >
 
struct  Raw128< bfloat16_t, 2 >
 
struct  Raw128< float, 1 >
 
struct  Raw128< uint8_t, 2 >
 
struct  Raw128< uint16_t, 1 >
 
struct  Raw128< int8_t, 2 >
 
struct  Raw128< int16_t, 1 >
 
struct  Raw128< float16_t, 1 >
 
struct  Raw128< bfloat16_t, 1 >
 
struct  Raw128< uint8_t, 1 >
 
struct  Raw128< int8_t, 1 >
 
struct  DeduceD
 
struct  ShiftLeftBytesT
 
struct  ShiftLeftBytesT< 0 >
 
struct  ShiftLeftBytesT< 0xFF >
 
struct  ShiftRightBytesT
 
struct  ShiftRightBytesT< 0 >
 
struct  ShiftRightBytesT< 0xFF >
 
struct  Deduce1
 
struct  ScalableTagChecker
 
struct  CappedTagChecker
 
struct  FixedTagChecker
 
struct  Raw128< float >
 
struct  BitCastFromInteger128
 
struct  BitCastFromInteger128< float >
 
struct  Raw128< double >
 
struct  RawMask128
 
struct  RawMask128< 1 >
 
struct  RawMask128< 2 >
 
struct  RawMask128< 4 >
 
struct  RawMask128< 8 >
 
struct  ExpandDFromV
 
struct  BitCastFromInteger128< double >
 
struct  Raw256
 
struct  Raw256< float >
 
struct  Raw256< double >
 
struct  RawMask256
 
struct  RawMask256< 1 >
 
struct  RawMask256< 2 >
 
struct  RawMask256< 4 >
 
struct  RawMask256< 8 >
 
struct  BitCastFromInteger256
 
struct  BitCastFromInteger256< float >
 
struct  BitCastFromInteger256< double >
 
struct  Raw512
 
struct  Raw512< float >
 
struct  Raw512< double >
 
struct  RawMask512
 
struct  RawMask512< 1 >
 
struct  RawMask512< 2 >
 
struct  RawMask512< 4 >
 
struct  RawMask512< 8 >
 
struct  BitCastFromInteger512
 
struct  BitCastFromInteger512< float >
 
struct  BitCastFromInteger512< double >
 

Enumerations

enum  RoundingModes { kNear , kTrunc , kDown , kUp }
 

Functions

template<size_t N>
HWY_INLINE Vec128< uint8_t, N > BitCastToByte (Vec128< uint8_t, N > v)
 
 HWY_NEON_DEF_FUNCTION_ALL_FLOATS (BitCastToByte, vreinterpret, _u8_, HWY_CAST_TO_U8) template< size_t N > HWY_INLINE Vec128< uint8_t
 
N * BitCastToByte (Vec128< float16_t, N > v)
 
template<size_t N>
HWY_INLINE Vec128< uint8_t, N *2 > BitCastToByte (Vec128< bfloat16_t, N > v)
 
template<size_t N>
HWY_INLINE Vec128< uint8_t, N > BitCastFromByte (Simd< uint8_t, N >, Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_INLINE Vec128< int8_t, N > BitCastFromByte (Simd< int8_t, N >, Vec128< uint8_t, N > v)
 
template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_INLINE Vec128< uint16_t, N > BitCastFromByte (Simd< uint16_t, N >, Vec128< uint8_t, N *2 > v)
 
template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_INLINE Vec128< int16_t, N > BitCastFromByte (Simd< int16_t, N >, Vec128< uint8_t, N *2 > v)
 
template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_INLINE Vec128< uint32_t, N > BitCastFromByte (Simd< uint32_t, N >, Vec128< uint8_t, N *4 > v)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_INLINE Vec128< int32_t, N > BitCastFromByte (Simd< int32_t, N >, Vec128< uint8_t, N *4 > v)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_INLINE Vec128< float, N > BitCastFromByte (Simd< float, N >, Vec128< uint8_t, N *4 > v)
 
HWY_INLINE Vec128< uint64_t, 1 > BitCastFromByte (Simd< uint64_t, 1 >, Vec128< uint8_t, 1 *8 > v)
 
HWY_INLINE Vec128< int64_t, 1 > BitCastFromByte (Simd< int64_t, 1 >, Vec128< uint8_t, 1 *8 > v)
 
HWY_INLINE Vec128< int8_t > BitCastFromByte (Full128< int8_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< uint16_t > BitCastFromByte (Full128< uint16_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< int16_t > BitCastFromByte (Full128< int16_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< uint32_t > BitCastFromByte (Full128< uint32_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< int32_t > BitCastFromByte (Full128< int32_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< float > BitCastFromByte (Full128< float >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< uint64_t > BitCastFromByte (Full128< uint64_t >, Vec128< uint8_t > v)
 
HWY_INLINE Vec128< int64_t > BitCastFromByte (Full128< int64_t >, Vec128< uint8_t > v)
 
template<size_t N>
HWY_INLINE Vec128< float16_t, N > BitCastFromByte (Simd< float16_t, N >, Vec128< uint8_t, N *2 > v)
 
template<size_t N>
HWY_INLINE Vec128< bfloat16_t, N > BitCastFromByte (Simd< bfloat16_t, N >, Vec128< uint8_t, N *2 > v)
 
HWY_INLINE Vec128< float > ReciprocalNewtonRaphsonStep (const Vec128< float > recip, const Vec128< float > divisor)
 
template<size_t N>
HWY_INLINE Vec128< float, N > ReciprocalNewtonRaphsonStep (const Vec128< float, N > recip, Vec128< float, N > divisor)
 
HWY_INLINE Vec128< float > ReciprocalSqrtStep (const Vec128< float > root, const Vec128< float > recip)
 
template<size_t N>
HWY_INLINE Vec128< float, N > ReciprocalSqrtStep (const Vec128< float, N > root, Vec128< float, N > recip)
 
template<typename T >
HWY_INLINE Vec128< T > PopulationCount (hwy::SizeTag< 1 >, Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 1 >, Vec128< T, N > v)
 
template<typename T >
HWY_INLINE Vec128< T > PopulationCount (hwy::SizeTag< 2 >, Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 2 >, Vec128< T, N > v)
 
template<typename T >
HWY_INLINE Vec128< T > PopulationCount (hwy::SizeTag< 4 >, Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 4 >, Vec128< T, N > v)
 
template<typename T >
HWY_INLINE Vec128< T > PopulationCount (hwy::SizeTag< 8 >, Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 8 >, Vec128< T, N > v)
 
template<size_t N>
HWY_INLINE Mask128< float, N > UseInt (const Vec128< float, N > v)
 
HWY_API Vec128< uint64_t > InterleaveUpper (const Vec128< uint64_t > a, const Vec128< uint64_t > b)
 
HWY_API Vec128< int64_t > InterleaveUpper (Vec128< int64_t > a, Vec128< int64_t > b)
 
HWY_API Vec128< float > InterleaveUpper (Vec128< float > a, Vec128< float > b)
 
HWY_API Vec128< float, 2 > InterleaveUpper (const Vec128< float, 2 > a, const Vec128< float, 2 > b)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > SumOfLanes (const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > MinOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > MaxOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_INLINE Vec128< T, 2 > SumOfLanes (const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > MinOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > MaxOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
HWY_INLINE Vec128< uint32_t > SumOfLanes (const Vec128< uint32_t > v)
 
HWY_INLINE Vec128< int32_t > SumOfLanes (const Vec128< int32_t > v)
 
HWY_INLINE Vec128< float > SumOfLanes (const Vec128< float > v)
 
HWY_INLINE Vec128< uint64_t > SumOfLanes (const Vec128< uint64_t > v)
 
HWY_INLINE Vec128< int64_t > SumOfLanes (const Vec128< int64_t > v)
 
template<typename T >
HWY_INLINE Vec128< T > MinOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > MaxOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > MinOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
template<typename T >
HWY_INLINE Vec128< T > MaxOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128< T, N > Set64 (Simd< T, N >, uint64_t mask_bits)
 
template<typename T >
HWY_INLINE Vec128< T > Set64 (Full128< T > d, uint64_t mask_bits)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Mask128< T, N > LoadMaskBits (Simd< T, N > d, uint64_t mask_bits)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 1 >, const Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 1 >, const Mask128< T, N > mask)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 2 >, const Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 2 >, const Mask128< T, N > mask)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 4 >, const Mask128< T > mask)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 4 >, const Mask128< T, N > mask)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 8 >, const Mask128< T > m)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 8 >, const Mask128< T, 1 > m)
 
template<typename T , size_t N>
constexpr uint64_t OnlyActive (uint64_t bits)
 
template<typename T , size_t N>
HWY_INLINE uint64_t BitsFromMask (const Mask128< T, N > mask)
 
template<typename T >
HWY_INLINE size_t CountTrue (hwy::SizeTag< 1 >, const Mask128< T > mask)
 
template<typename T >
HWY_INLINE size_t CountTrue (hwy::SizeTag< 2 >, const Mask128< T > mask)
 
template<typename T >
HWY_INLINE size_t CountTrue (hwy::SizeTag< 4 >, const Mask128< T > mask)
 
template<typename T >
HWY_INLINE size_t CountTrue (hwy::SizeTag< 8 >, const Mask128< T > mask)
 
HWY_INLINE Vec128< uint8_t > Load8Bytes (Full128< uint8_t >, const uint8_t *bytes)
 
template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_INLINE Vec128< uint8_t, N > Load8Bytes (Simd< uint8_t, N > d, const uint8_t *bytes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IdxFromBits (hwy::SizeTag< 2 >, const uint64_t mask_bits)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IdxFromBits (hwy::SizeTag< 4 >, const uint64_t mask_bits)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Compress (Vec128< T, N > v, const uint64_t mask_bits)
 
HWY_INLINE size_t AllHardwareLanes (hwy::SizeTag< 1 >)
 
HWY_INLINE size_t AllHardwareLanes (hwy::SizeTag< 2 >)
 
HWY_INLINE size_t AllHardwareLanes (hwy::SizeTag< 4 >)
 
HWY_INLINE size_t AllHardwareLanes (hwy::SizeTag< 8 >)
 
HWY_INLINE size_t HardwareLanes (hwy::SizeTag< 1 >)
 
HWY_INLINE size_t HardwareLanes (hwy::SizeTag< 2 >)
 
HWY_INLINE size_t HardwareLanes (hwy::SizeTag< 4 >)
 
HWY_INLINE size_t HardwareLanes (hwy::SizeTag< 8 >)
 
 HWY_SVE_FOREACH (HWY_SVE_WRAP_PTRUE, PTrue, ptrue) HWY_API svbool_t PFalse()
 
template<typename T , size_t N>
svbool_t Mask (Simd< T, N > d)
 
template<size_t N>
HWY_INLINE svuint16_t BitCastFromByte (Simd< bfloat16_t, N >, svuint8_t v)
 
template<size_t N>
HWY_API svfloat32_t PromoteUpperTo (Simd< float, N > df, const svfloat16_t v)
 
template<typename TN , class VU >
VU SaturateU (VU v)
 
template<typename TN , class VI >
VI SaturateI (VI v)
 
template<typename T , size_t N>
svbool_t MaskLowerHalf (Simd< T, N > d)
 
template<typename T , size_t N>
svbool_t MaskUpperHalf (Simd< T, N > d)
 
template<typename T , size_t N>
constexpr size_t LanesPerBlock (Simd< T, N >)
 
template<class D , class V >
HWY_INLINEOffsetsOf128BitBlocks (const D d, const V iota0)
 
template<size_t kLanes, class D >
svbool_t FirstNPerBlock (D d)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API svuint8_t BoolFromMask (Simd< T, N > d, svbool_t m)
 
template<size_t N>
HWY_INLINE VFromD< Simd< uint16_t, N > > BitCastFromByte (Simd< bfloat16_t, N >, VFromD< Simd< uint8_t, N *2 >> v)
 
template<class V , class DU = RebindToUnsigned<DFromV<V>>>
HWY_INLINE VFromD< DU > BitCastToUnsigned (V v)
 
template<class D , class DU = RebindToUnsigned<D>>
HWY_INLINE VFromD< DU > Iota0 (const D)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE VFromD< Simd< T, N > > Iota0 (Simd< T, N >)
 
HWY_INLINE Vu16m1 DemoteTo (Du16m1 d, const Vu32m2 v)
 
HWY_INLINE Vu16m2 DemoteTo (Du16m2 d, const Vu32m4 v)
 
HWY_INLINE Vu16m4 DemoteTo (Du16m4 d, const Vu32m8 v)
 
HWY_INLINE Vu8m1 DemoteTo (Du8m1 d, const Vu16m2 v)
 
HWY_INLINE Vu8m2 DemoteTo (Du8m2 d, const Vu16m4 v)
 
HWY_INLINE Vu8m4 DemoteTo (Du8m4 d, const Vu16m8 v)
 
template<size_t kLanes, class D >
HWY_INLINE MFromD< D > FirstNPerBlock (D)
 
template<class V >
HWY_INLINE auto UseInt (const V v) -> decltype(MaskFromVec(v))
 
constexpr size_t ScaleByPower (size_t N, int pow2)
 
HWY_INLINE __v128_u BitCastToInteger (__v128_u v)
 
HWY_INLINE __v128_u BitCastToInteger (__f32x4 v)
 
HWY_INLINE __v128_u BitCastToInteger (__f64x2 v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< uint8_t, N *sizeof(T)> BitCastToByte (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > BitCastFromByte (Simd< T, N >, Vec128< uint8_t, N *sizeof(T)> v)
 
template<int kBytes, typename T , size_t N>
HWY_API __i8x16 ShrBytes (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, N > InterleaveUpper (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, N > InterleaveUpper (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, N > InterleaveUpper (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > InterleaveUpper (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, N > InterleaveUpper (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, N > InterleaveUpper (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, N > InterleaveUpper (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > InterleaveUpper (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, N > InterleaveUpper (Vec128< float, N > a, Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > OddEven (hwy::SizeTag< 1 >, const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > OddEven (hwy::SizeTag< 2 >, const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > OddEven (hwy::SizeTag< 4 >, const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > OddEven (hwy::SizeTag< 8 >, const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T >
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 1 >, const Mask128< T, 8 > mask)
 
template<typename T , size_t N>
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 2 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_INLINE uint64_t BitsFromMask (hwy::SizeTag< 4 >, const Mask128< T, N > mask)
 
template<size_t N>
constexpr __i8x16 BytesAbove ()
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 1 >, const Mask128< T > m)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 2 >, const Mask128< T > m)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 4 >, const Mask128< T > m)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Idx16x8FromBits (const uint64_t mask_bits)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Idx32x4FromBits (const uint64_t mask_bits)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Compress (hwy::SizeTag< 2 >, Vec128< T, N > v, const uint64_t mask_bits)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > Compress (hwy::SizeTag< 4 >, Vec128< T, N > v, const uint64_t mask_bits)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > SumOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > SumOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T > SumOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > SumOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
HWY_INLINE __m128i BitCastToInteger (__m128i v)
 
HWY_INLINE __m128i BitCastToInteger (__m128 v)
 
HWY_INLINE __m128i BitCastToInteger (__m128d v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 1 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 2 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 4 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > PopulationCount (hwy::SizeTag< 8 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElse (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElse (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElse (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElse (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElseZero (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElseZero (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElseZero (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenElseZero (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenZeroElse (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenZeroElse (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenZeroElse (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, N > IfThenZeroElse (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > And (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > And (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > And (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > And (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > AndNot (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > AndNot (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > AndNot (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > AndNot (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Or (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Or (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Or (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Or (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Xor (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Xor (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Xor (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > Xor (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > TestBit (hwy::SizeTag< 1 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > TestBit (hwy::SizeTag< 2 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > TestBit (hwy::SizeTag< 4 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > TestBit (hwy::SizeTag< 8 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > MaskFromVec (hwy::SizeTag< 1 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > MaskFromVec (hwy::SizeTag< 2 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > MaskFromVec (hwy::SizeTag< 4 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, N > MaskFromVec (hwy::SizeTag< 8 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128< T, N > MinU (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128< T, N > MaxU (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE void ScatterOffset (hwy::SizeTag< 4 >, Vec128< T, N > v, Simd< T, N >, T *HWY_RESTRICT base, const Vec128< int32_t, N > offset)
 
template<typename T , size_t N>
HWY_INLINE void ScatterIndex (hwy::SizeTag< 4 >, Vec128< T, N > v, Simd< T, N >, T *HWY_RESTRICT base, const Vec128< int32_t, N > index)
 
template<typename T , size_t N>
HWY_INLINE void ScatterOffset (hwy::SizeTag< 8 >, Vec128< T, N > v, Simd< T, N >, T *HWY_RESTRICT base, const Vec128< int64_t, N > offset)
 
template<typename T , size_t N>
HWY_INLINE void ScatterIndex (hwy::SizeTag< 8 >, Vec128< T, N > v, Simd< T, N >, T *HWY_RESTRICT base, const Vec128< int64_t, N > index)
 
HWY_API Vec128< uint8_t > InterleaveUpper (const Vec128< uint8_t > a, const Vec128< uint8_t > b)
 
HWY_API Vec128< uint16_t > InterleaveUpper (const Vec128< uint16_t > a, const Vec128< uint16_t > b)
 
HWY_API Vec128< uint32_t > InterleaveUpper (const Vec128< uint32_t > a, const Vec128< uint32_t > b)
 
HWY_API Vec128< int8_t > InterleaveUpper (const Vec128< int8_t > a, const Vec128< int8_t > b)
 
HWY_API Vec128< int16_t > InterleaveUpper (const Vec128< int16_t > a, const Vec128< int16_t > b)
 
HWY_API Vec128< int32_t > InterleaveUpper (const Vec128< int32_t > a, const Vec128< int32_t > b)
 
HWY_API Vec128< double > InterleaveUpper (const Vec128< double > a, const Vec128< double > b)
 
template<size_t N>
HWY_INLINE auto ClampF64ToI32Max (Simd< double, N > d, decltype(Zero(d)) v) -> decltype(Zero(d))
 
template<typename TI , size_t N, class DF = Simd<MakeFloat<TI>, N>>
HWY_INLINE auto FixConversionOverflow (Simd< TI, N > di, decltype(Zero(DF())) original, decltype(Zero(di).raw) converted_raw) -> decltype(Zero(di))
 
template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_INLINE Mask128< T, N > UseInt (const Vec128< T, N > v)
 
HWY_INLINE __m256i BitCastToInteger (__m256i v)
 
HWY_INLINE __m256i BitCastToInteger (__m256 v)
 
HWY_INLINE __m256i BitCastToInteger (__m256d v)
 
template<typename T >
HWY_INLINE Vec256< uint8_t > BitCastToByte (Vec256< T > v)
 
template<typename T >
HWY_INLINE Vec256< T > BitCastFromByte (Full256< T >, Vec256< uint8_t > v)
 
template<typename T >
HWY_INLINE Vec256< T > PopulationCount (hwy::SizeTag< 1 >, Vec256< T > v)
 
template<typename T >
HWY_INLINE Vec256< T > PopulationCount (hwy::SizeTag< 2 >, Vec256< T > v)
 
template<typename T >
HWY_INLINE Vec256< T > PopulationCount (hwy::SizeTag< 4 >, Vec256< T > v)
 
template<typename T >
HWY_INLINE Vec256< T > PopulationCount (hwy::SizeTag< 8 >, Vec256< T > v)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElse (hwy::SizeTag< 1 >, Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElse (hwy::SizeTag< 2 >, Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElse (hwy::SizeTag< 4 >, Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElse (hwy::SizeTag< 8 >, Mask256< T > mask, Vec256< T > yes, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElseZero (hwy::SizeTag< 1 >, Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElseZero (hwy::SizeTag< 2 >, Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElseZero (hwy::SizeTag< 4 >, Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenElseZero (hwy::SizeTag< 8 >, Mask256< T > mask, Vec256< T > yes)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenZeroElse (hwy::SizeTag< 1 >, Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenZeroElse (hwy::SizeTag< 2 >, Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenZeroElse (hwy::SizeTag< 4 >, Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_INLINE Vec256< T > IfThenZeroElse (hwy::SizeTag< 8 >, Mask256< T > mask, Vec256< T > no)
 
template<typename T >
HWY_INLINE Mask256< T > And (hwy::SizeTag< 1 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > And (hwy::SizeTag< 2 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > And (hwy::SizeTag< 4 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > And (hwy::SizeTag< 8 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > AndNot (hwy::SizeTag< 1 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > AndNot (hwy::SizeTag< 2 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > AndNot (hwy::SizeTag< 4 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > AndNot (hwy::SizeTag< 8 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Or (hwy::SizeTag< 1 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Or (hwy::SizeTag< 2 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Or (hwy::SizeTag< 4 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Or (hwy::SizeTag< 8 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Xor (hwy::SizeTag< 1 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Xor (hwy::SizeTag< 2 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Xor (hwy::SizeTag< 4 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > Xor (hwy::SizeTag< 8 >, const Mask256< T > a, const Mask256< T > b)
 
template<typename T >
HWY_INLINE Mask256< T > TestBit (hwy::SizeTag< 1 >, const Vec256< T > v, const Vec256< T > bit)
 
template<typename T >
HWY_INLINE Mask256< T > TestBit (hwy::SizeTag< 2 >, const Vec256< T > v, const Vec256< T > bit)
 
template<typename T >
HWY_INLINE Mask256< T > TestBit (hwy::SizeTag< 4 >, const Vec256< T > v, const Vec256< T > bit)
 
template<typename T >
HWY_INLINE Mask256< T > TestBit (hwy::SizeTag< 8 >, const Vec256< T > v, const Vec256< T > bit)
 
template<typename T >
HWY_INLINE Mask256< T > MaskFromVec (hwy::SizeTag< 1 >, const Vec256< T > v)
 
template<typename T >
HWY_INLINE Mask256< T > MaskFromVec (hwy::SizeTag< 2 >, const Vec256< T > v)
 
template<typename T >
HWY_INLINE Mask256< T > MaskFromVec (hwy::SizeTag< 4 >, const Vec256< T > v)
 
template<typename T >
HWY_INLINE Mask256< T > MaskFromVec (hwy::SizeTag< 8 >, const Vec256< T > v)
 
template<typename T >
HWY_INLINE void ScatterOffset (hwy::SizeTag< 4 >, Vec256< T > v, Full256< T >, T *HWY_RESTRICT base, const Vec256< int32_t > offset)
 
template<typename T >
HWY_INLINE void ScatterIndex (hwy::SizeTag< 4 >, Vec256< T > v, Full256< T >, T *HWY_RESTRICT base, const Vec256< int32_t > index)
 
template<typename T >
HWY_INLINE void ScatterOffset (hwy::SizeTag< 8 >, Vec256< T > v, Full256< T >, T *HWY_RESTRICT base, const Vec256< int64_t > offset)
 
template<typename T >
HWY_INLINE void ScatterIndex (hwy::SizeTag< 8 >, Vec256< T > v, Full256< T >, T *HWY_RESTRICT base, const Vec256< int64_t > index)
 
template<typename T >
HWY_INLINE Vec256< T > GatherOffset (hwy::SizeTag< 4 >, Full256< T >, const T *HWY_RESTRICT base, const Vec256< int32_t > offset)
 
template<typename T >
HWY_INLINE Vec256< T > GatherIndex (hwy::SizeTag< 4 >, Full256< T >, const T *HWY_RESTRICT base, const Vec256< int32_t > index)
 
template<typename T >
HWY_INLINE Vec256< T > GatherOffset (hwy::SizeTag< 8 >, Full256< T >, const T *HWY_RESTRICT base, const Vec256< int64_t > offset)
 
template<typename T >
HWY_INLINE Vec256< T > GatherIndex (hwy::SizeTag< 8 >, Full256< T >, const T *HWY_RESTRICT base, const Vec256< int64_t > index)
 
HWY_API Vec256< uint8_t > InterleaveUpper (const Vec256< uint8_t > a, const Vec256< uint8_t > b)
 
HWY_API Vec256< uint16_t > InterleaveUpper (const Vec256< uint16_t > a, const Vec256< uint16_t > b)
 
HWY_API Vec256< uint32_t > InterleaveUpper (const Vec256< uint32_t > a, const Vec256< uint32_t > b)
 
HWY_API Vec256< uint64_t > InterleaveUpper (const Vec256< uint64_t > a, const Vec256< uint64_t > b)
 
HWY_API Vec256< int8_t > InterleaveUpper (const Vec256< int8_t > a, const Vec256< int8_t > b)
 
HWY_API Vec256< int16_t > InterleaveUpper (const Vec256< int16_t > a, const Vec256< int16_t > b)
 
HWY_API Vec256< int32_t > InterleaveUpper (const Vec256< int32_t > a, const Vec256< int32_t > b)
 
HWY_API Vec256< int64_t > InterleaveUpper (const Vec256< int64_t > a, const Vec256< int64_t > b)
 
HWY_API Vec256< float > InterleaveUpper (const Vec256< float > a, const Vec256< float > b)
 
HWY_API Vec256< double > InterleaveUpper (const Vec256< double > a, const Vec256< double > b)
 
template<typename T >
HWY_INLINE Vec256< T > OddEven (hwy::SizeTag< 1 >, const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > OddEven (hwy::SizeTag< 2 >, const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > OddEven (hwy::SizeTag< 4 >, const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_INLINE Vec256< T > OddEven (hwy::SizeTag< 8 >, const Vec256< T > a, const Vec256< T > b)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 1 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 2 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 4 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 8 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 1 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 2 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 4 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 8 >, const Mask256< T > mask)
 
template<typename T >
HWY_INLINE Vec256< T > SumOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210)
 
template<typename T >
HWY_INLINE Vec256< T > MinOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210)
 
template<typename T >
HWY_INLINE Vec256< T > MaxOfLanes (hwy::SizeTag< 4 >, const Vec256< T > v3210)
 
template<typename T >
HWY_INLINE Vec256< T > SumOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10)
 
template<typename T >
HWY_INLINE Vec256< T > MinOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10)
 
template<typename T >
HWY_INLINE Vec256< T > MaxOfLanes (hwy::SizeTag< 8 >, const Vec256< T > v10)
 
HWY_INLINE __m512i BitCastToInteger (__m512i v)
 
HWY_INLINE __m512i BitCastToInteger (__m512 v)
 
HWY_INLINE __m512i BitCastToInteger (__m512d v)
 
template<typename T >
HWY_INLINE Vec512< uint8_t > BitCastToByte (Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > BitCastFromByte (Full512< T >, Vec512< uint8_t > v)
 
template<typename T >
HWY_INLINE Vec512< T > PopulationCount (hwy::SizeTag< 1 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > PopulationCount (hwy::SizeTag< 2 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > PopulationCount (hwy::SizeTag< 4 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > PopulationCount (hwy::SizeTag< 8 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElse (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElse (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElse (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElseZero (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElseZero (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElseZero (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenElseZero (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenZeroElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenZeroElse (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenZeroElse (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > IfThenZeroElse (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Mask512< T > TestBit (hwy::SizeTag< 1 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > TestBit (hwy::SizeTag< 2 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > TestBit (hwy::SizeTag< 4 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > TestBit (hwy::SizeTag< 8 >, const Vec512< T > v, const Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > MaskFromVec (hwy::SizeTag< 1 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > MaskFromVec (hwy::SizeTag< 2 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > MaskFromVec (hwy::SizeTag< 4 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > MaskFromVec (hwy::SizeTag< 8 >, const Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > Not (hwy::SizeTag< 1 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > Not (hwy::SizeTag< 2 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > Not (hwy::SizeTag< 4 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > Not (hwy::SizeTag< 8 >, const Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > And (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > And (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > And (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > And (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > AndNot (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > AndNot (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > AndNot (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > AndNot (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Or (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Or (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Or (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Or (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Xor (hwy::SizeTag< 1 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Xor (hwy::SizeTag< 2 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Xor (hwy::SizeTag< 4 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > Xor (hwy::SizeTag< 8 >, const Mask512< T > a, const Mask512< T > b)
 
template<typename T >
HWY_INLINE void ScatterOffset (hwy::SizeTag< 4 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
template<typename T >
HWY_INLINE void ScatterIndex (hwy::SizeTag< 4 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int32_t > index)
 
template<typename T >
HWY_INLINE void ScatterOffset (hwy::SizeTag< 8 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
template<typename T >
HWY_INLINE void ScatterIndex (hwy::SizeTag< 8 >, Vec512< T > v, Full512< T >, T *HWY_RESTRICT base, const Vec512< int64_t > index)
 
template<typename T >
HWY_INLINE Vec512< T > GatherOffset (hwy::SizeTag< 4 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int32_t > offset)
 
template<typename T >
HWY_INLINE Vec512< T > GatherIndex (hwy::SizeTag< 4 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int32_t > index)
 
template<typename T >
HWY_INLINE Vec512< T > GatherOffset (hwy::SizeTag< 8 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int64_t > offset)
 
template<typename T >
HWY_INLINE Vec512< T > GatherIndex (hwy::SizeTag< 8 >, Full512< T >, const T *HWY_RESTRICT base, const Vec512< int64_t > index)
 
HWY_API Vec512< uint8_t > InterleaveUpper (const Vec512< uint8_t > a, const Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > InterleaveUpper (const Vec512< uint16_t > a, const Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > InterleaveUpper (const Vec512< uint32_t > a, const Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > InterleaveUpper (const Vec512< uint64_t > a, const Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > InterleaveUpper (const Vec512< int8_t > a, const Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > InterleaveUpper (const Vec512< int16_t > a, const Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > InterleaveUpper (const Vec512< int32_t > a, const Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > InterleaveUpper (const Vec512< int64_t > a, const Vec512< int64_t > b)
 
HWY_API Vec512< float > InterleaveUpper (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > InterleaveUpper (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllFalse (hwy::SizeTag< 8 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool AllTrue (hwy::SizeTag< 8 >, const Mask512< T > mask)
 

Enumeration Type Documentation

◆ RoundingModes

Enumerator
kNear 
kTrunc 
kDown 
kUp 

Function Documentation

◆ AllFalse() [1/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 1 >  ,
const Mask256< T >  mask 
)

◆ AllFalse() [2/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 1 >  ,
const Mask512< T >  mask 
)

◆ AllFalse() [3/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 2 >  ,
const Mask256< T >  mask 
)

◆ AllFalse() [4/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 2 >  ,
const Mask512< T >  mask 
)

◆ AllFalse() [5/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 4 >  ,
const Mask256< T >  mask 
)

◆ AllFalse() [6/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 4 >  ,
const Mask512< T >  mask 
)

◆ AllFalse() [7/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 8 >  ,
const Mask256< T >  mask 
)

◆ AllFalse() [8/8]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse ( hwy::SizeTag< 8 >  ,
const Mask512< T >  mask 
)

◆ AllHardwareLanes() [1/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::AllHardwareLanes ( hwy::SizeTag< 1 >  )

◆ AllHardwareLanes() [2/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::AllHardwareLanes ( hwy::SizeTag< 2 >  )

◆ AllHardwareLanes() [3/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::AllHardwareLanes ( hwy::SizeTag< 4 >  )

◆ AllHardwareLanes() [4/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::AllHardwareLanes ( hwy::SizeTag< 8 >  )

◆ AllTrue() [1/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 1 >  ,
const Mask128< T >  m 
)

◆ AllTrue() [2/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 1 >  ,
const Mask256< T >  mask 
)

◆ AllTrue() [3/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 1 >  ,
const Mask512< T >  mask 
)

◆ AllTrue() [4/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 2 >  ,
const Mask128< T >  m 
)

◆ AllTrue() [5/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 2 >  ,
const Mask256< T >  mask 
)

◆ AllTrue() [6/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 2 >  ,
const Mask512< T >  mask 
)

◆ AllTrue() [7/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 4 >  ,
const Mask128< T >  m 
)

◆ AllTrue() [8/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 4 >  ,
const Mask256< T >  mask 
)

◆ AllTrue() [9/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 4 >  ,
const Mask512< T >  mask 
)

◆ AllTrue() [10/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 8 >  ,
const Mask256< T >  mask 
)

◆ AllTrue() [11/11]

template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue ( hwy::SizeTag< 8 >  ,
const Mask512< T >  mask 
)

◆ And() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 1 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ And() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 1 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ And() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 1 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ And() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ And() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 2 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ And() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 2 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ And() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ And() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 4 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ And() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 4 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ And() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 8 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ And() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 8 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ And() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::And ( hwy::SizeTag< 8 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ AndNot() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 1 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ AndNot() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 1 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ AndNot() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 1 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ AndNot() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ AndNot() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 2 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ AndNot() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 2 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ AndNot() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ AndNot() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 4 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ AndNot() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 4 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ AndNot() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 8 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ AndNot() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 8 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ AndNot() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::AndNot ( hwy::SizeTag< 8 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ BitCastFromByte() [1/24]

HWY_INLINE Vec128<float> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< float >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [2/24]

HWY_INLINE Vec128<int16_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< int16_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [3/24]

HWY_INLINE Vec128<int32_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< int32_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [4/24]

HWY_INLINE Vec128<int64_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< int64_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [5/24]

HWY_INLINE Vec128<int8_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< int8_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [6/24]

HWY_INLINE Vec128<uint16_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< uint16_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [7/24]

HWY_INLINE Vec128<uint32_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< uint32_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [8/24]

HWY_INLINE Vec128<uint64_t> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full128< uint64_t >  ,
Vec128< uint8_t >  v 
)

◆ BitCastFromByte() [9/24]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full256< T >  ,
Vec256< uint8_t >  v 
)

◆ BitCastFromByte() [10/24]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Full512< T >  ,
Vec512< uint8_t >  v 
)

◆ BitCastFromByte() [11/24]

template<size_t N>
HWY_INLINE svuint16_t hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< bfloat16_t, N >  ,
svuint8_t  v 
)

References BitCastFromByte().

◆ BitCastFromByte() [12/24]

template<size_t N>
HWY_INLINE Vec128<bfloat16_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< bfloat16_t, N >  ,
Vec128< uint8_t, N *2 >  v 
)

References BitCastFromByte().

◆ BitCastFromByte() [13/24]

template<size_t N>
HWY_INLINE VFromD<Simd<uint16_t, N> > hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< bfloat16_t, N >  ,
VFromD< Simd< uint8_t, N *2 >>  v 
)

References BitCastFromByte().

◆ BitCastFromByte() [14/24]

template<size_t N, HWY_IF_LE64(float, N) >
HWY_INLINE Vec128<float, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< float, N >  ,
Vec128< uint8_t, N *4 >  v 
)

◆ BitCastFromByte() [15/24]

template<size_t N>
HWY_INLINE Vec128<float16_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< float16_t, N >  ,
Vec128< uint8_t, N *2 >  v 
)

References BitCastFromByte().

◆ BitCastFromByte() [16/24]

template<size_t N, HWY_IF_LE64(int16_t, N) >
HWY_INLINE Vec128<int16_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< int16_t, N >  ,
Vec128< uint8_t, N *2 >  v 
)

◆ BitCastFromByte() [17/24]

template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_INLINE Vec128<int32_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< int32_t, N >  ,
Vec128< uint8_t, N *4 >  v 
)

◆ BitCastFromByte() [18/24]

HWY_INLINE Vec128<int64_t, 1> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< int64_t, 1 >  ,
Vec128< uint8_t, 1 *8 >  v 
)

◆ BitCastFromByte() [19/24]

template<size_t N, HWY_IF_LE64(int8_t, N) >
HWY_INLINE Vec128<int8_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< int8_t, N >  ,
Vec128< uint8_t, N >  v 
)

◆ BitCastFromByte() [20/24]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< T, N >  ,
Vec128< uint8_t, N *sizeof(T)>  v 
)

◆ BitCastFromByte() [21/24]

template<size_t N, HWY_IF_LE64(uint16_t, N) >
HWY_INLINE Vec128<uint16_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< uint16_t, N >  ,
Vec128< uint8_t, N *2 >  v 
)

◆ BitCastFromByte() [22/24]

template<size_t N, HWY_IF_LE64(uint32_t, N) >
HWY_INLINE Vec128<uint32_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< uint32_t, N >  ,
Vec128< uint8_t, N *4 >  v 
)

◆ BitCastFromByte() [23/24]

HWY_INLINE Vec128<uint64_t, 1> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< uint64_t, 1 >  ,
Vec128< uint8_t, 1 *8 >  v 
)

◆ BitCastFromByte() [24/24]

template<size_t N>
HWY_INLINE Vec128<uint8_t, N> hwy::HWY_NAMESPACE::detail::BitCastFromByte ( Simd< uint8_t, N >  ,
Vec128< uint8_t, N >  v 
)

◆ BitCastToByte() [1/6]

template<size_t N>
HWY_INLINE Vec128<uint8_t, N * 2> hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec128< bfloat16_t, N >  v)

◆ BitCastToByte() [2/6]

N* hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec128< float16_t, N >  v)

◆ BitCastToByte() [3/6]

template<typename T , size_t N>
HWY_INLINE Vec128< uint8_t, N *sizeof(T)> hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec128< T, N >  v)

◆ BitCastToByte() [4/6]

template<size_t N>
HWY_INLINE Vec128<uint8_t, N> hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec128< uint8_t, N >  v)

◆ BitCastToByte() [5/6]

template<typename T >
HWY_INLINE Vec256<uint8_t> hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec256< T >  v)

◆ BitCastToByte() [6/6]

template<typename T >
HWY_INLINE Vec512<uint8_t> hwy::HWY_NAMESPACE::detail::BitCastToByte ( Vec512< T >  v)

◆ BitCastToInteger() [1/12]

HWY_INLINE __v128_u hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __f32x4  v)

◆ BitCastToInteger() [2/12]

HWY_INLINE __v128_u hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __f64x2  v)

◆ BitCastToInteger() [3/12]

HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m128  v)

◆ BitCastToInteger() [4/12]

HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m128d  v)

◆ BitCastToInteger() [5/12]

HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m128i  v)

◆ BitCastToInteger() [6/12]

HWY_INLINE __m256i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m256  v)

◆ BitCastToInteger() [7/12]

HWY_INLINE __m256i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m256d  v)

◆ BitCastToInteger() [8/12]

HWY_INLINE __m256i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m256i  v)

◆ BitCastToInteger() [9/12]

HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m512  v)

◆ BitCastToInteger() [10/12]

HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m512d  v)

◆ BitCastToInteger() [11/12]

HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __m512i  v)

◆ BitCastToInteger() [12/12]

HWY_INLINE __v128_u hwy::HWY_NAMESPACE::detail::BitCastToInteger ( __v128_u  v)

Referenced by BitCastToByte().

◆ BitCastToUnsigned()

template<class V , class DU = RebindToUnsigned<DFromV<V>>>
HWY_INLINE VFromD<DU> hwy::HWY_NAMESPACE::detail::BitCastToUnsigned ( v)

◆ BitsFromMask() [1/12]

template<typename T , size_t N>
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( const Mask128< T, N >  mask)

References BitsFromMask().

◆ BitsFromMask() [2/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 1 >  ,
const Mask128< T >  mask 
)

◆ BitsFromMask() [3/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 1 >  ,
const Mask128< T, 8 >  mask 
)

◆ BitsFromMask() [4/12]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 1 >  ,
const Mask128< T, N >  mask 
)

◆ BitsFromMask() [5/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 2 >  ,
const Mask128< T >  mask 
)

◆ BitsFromMask() [6/12]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  mask 
)

◆ BitsFromMask() [7/12]

template<typename T , size_t N>
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  mask 
)

◆ BitsFromMask() [8/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 4 >  ,
const Mask128< T >  mask 
)

◆ BitsFromMask() [9/12]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  mask 
)

◆ BitsFromMask() [10/12]

template<typename T , size_t N>
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  mask 
)

◆ BitsFromMask() [11/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 8 >  ,
const Mask128< T >  m 
)

◆ BitsFromMask() [12/12]

template<typename T >
HWY_INLINE uint64_t hwy::HWY_NAMESPACE::detail::BitsFromMask ( hwy::SizeTag< 8 >  ,
const Mask128< T, 1 >  m 
)

◆ BoolFromMask()

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API svuint8_t hwy::HWY_NAMESPACE::detail::BoolFromMask ( Simd< T, N >  d,
svbool_t  m 
)

◆ BytesAbove()

template<size_t N>
constexpr __i8x16 hwy::HWY_NAMESPACE::detail::BytesAbove ( )
constexpr

◆ ClampF64ToI32Max()

template<size_t N>
HWY_INLINE auto hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max ( Simd< double, N >  d,
decltype(Zero(d))  v 
) -> decltype(Zero(d))

◆ Compress() [1/3]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Compress ( hwy::SizeTag< 2 >  ,
Vec128< T, N >  v,
const uint64_t  mask_bits 
)

◆ Compress() [2/3]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Compress ( hwy::SizeTag< 4 >  ,
Vec128< T, N >  v,
const uint64_t  mask_bits 
)

◆ Compress() [3/3]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Compress ( Vec128< T, N >  v,
const uint64_t  mask_bits 
)

◆ CountTrue() [1/4]

template<typename T >
HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::CountTrue ( hwy::SizeTag< 1 >  tag,
const Mask128< T >  mask 
)

◆ CountTrue() [2/4]

template<typename T >
HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::CountTrue ( hwy::SizeTag< 2 >  tag,
const Mask128< T >  mask 
)

◆ CountTrue() [3/4]

template<typename T >
HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::CountTrue ( hwy::SizeTag< 4 >  ,
const Mask128< T >  mask 
)

◆ CountTrue() [4/4]

template<typename T >
HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::CountTrue ( hwy::SizeTag< 8 >  ,
const Mask128< T >  mask 
)

◆ DemoteTo() [1/6]

HWY_INLINE Vu16m1 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du16m1  d,
const Vu32m2  v 
)

◆ DemoteTo() [2/6]

HWY_INLINE Vu16m2 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du16m2  d,
const Vu32m4  v 
)

◆ DemoteTo() [3/6]

HWY_INLINE Vu16m4 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du16m4  d,
const Vu32m8  v 
)

◆ DemoteTo() [4/6]

HWY_INLINE Vu8m1 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du8m1  d,
const Vu16m2  v 
)

◆ DemoteTo() [5/6]

HWY_INLINE Vu8m2 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du8m2  d,
const Vu16m4  v 
)

◆ DemoteTo() [6/6]

HWY_INLINE Vu8m4 hwy::HWY_NAMESPACE::detail::DemoteTo ( Du8m4  d,
const Vu16m8  v 
)

◆ FirstNPerBlock() [1/2]

template<size_t kLanes, class D >
svbool_t hwy::HWY_NAMESPACE::detail::FirstNPerBlock ( d)

◆ FirstNPerBlock() [2/2]

template<size_t kLanes, class D >
HWY_INLINE MFromD<D> hwy::HWY_NAMESPACE::detail::FirstNPerBlock ( )

◆ FixConversionOverflow()

template<typename TI , size_t N, class DF = Simd<MakeFloat<TI>, N>>
HWY_INLINE auto hwy::HWY_NAMESPACE::detail::FixConversionOverflow ( Simd< TI, N >  di,
decltype(Zero(DF()))  original,
decltype(Zero(di).raw)  converted_raw 
) -> decltype(Zero(di))

◆ GatherIndex() [1/4]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::GatherIndex ( hwy::SizeTag< 4 >  ,
Full256< T >  ,
const T *HWY_RESTRICT  base,
const Vec256< int32_t >  index 
)

◆ GatherIndex() [2/4]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::GatherIndex ( hwy::SizeTag< 4 >  ,
Full512< T >  ,
const T *HWY_RESTRICT  base,
const Vec512< int32_t >  index 
)

◆ GatherIndex() [3/4]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::GatherIndex ( hwy::SizeTag< 8 >  ,
Full256< T >  ,
const T *HWY_RESTRICT  base,
const Vec256< int64_t >  index 
)

◆ GatherIndex() [4/4]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::GatherIndex ( hwy::SizeTag< 8 >  ,
Full512< T >  ,
const T *HWY_RESTRICT  base,
const Vec512< int64_t >  index 
)

◆ GatherOffset() [1/4]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::GatherOffset ( hwy::SizeTag< 4 >  ,
Full256< T >  ,
const T *HWY_RESTRICT  base,
const Vec256< int32_t >  offset 
)

◆ GatherOffset() [2/4]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::GatherOffset ( hwy::SizeTag< 4 >  ,
Full512< T >  ,
const T *HWY_RESTRICT  base,
const Vec512< int32_t >  offset 
)

◆ GatherOffset() [3/4]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::GatherOffset ( hwy::SizeTag< 8 >  ,
Full256< T >  ,
const T *HWY_RESTRICT  base,
const Vec256< int64_t >  offset 
)

◆ GatherOffset() [4/4]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::GatherOffset ( hwy::SizeTag< 8 >  ,
Full512< T >  ,
const T *HWY_RESTRICT  base,
const Vec512< int64_t >  offset 
)

◆ HardwareLanes() [1/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::HardwareLanes ( hwy::SizeTag< 1 >  )

◆ HardwareLanes() [2/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::HardwareLanes ( hwy::SizeTag< 2 >  )

◆ HardwareLanes() [3/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::HardwareLanes ( hwy::SizeTag< 4 >  )

◆ HardwareLanes() [4/4]

HWY_INLINE size_t hwy::HWY_NAMESPACE::detail::HardwareLanes ( hwy::SizeTag< 8 >  )

◆ HWY_NEON_DEF_FUNCTION_ALL_FLOATS()

hwy::HWY_NAMESPACE::detail::HWY_NEON_DEF_FUNCTION_ALL_FLOATS ( BitCastToByte  ,
vreinterpret  ,
_u8_  ,
HWY_CAST_TO_U8   
)

◆ HWY_SVE_FOREACH()

hwy::HWY_NAMESPACE::detail::HWY_SVE_FOREACH ( HWY_SVE_WRAP_PTRUE  ,
PTrue  ,
ptrue   
)

◆ Idx16x8FromBits()

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Idx16x8FromBits ( const uint64_t  mask_bits)

◆ Idx32x4FromBits()

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Idx32x4FromBits ( const uint64_t  mask_bits)

◆ IdxFromBits() [1/2]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IdxFromBits ( hwy::SizeTag< 2 >  ,
const uint64_t  mask_bits 
)

◆ IdxFromBits() [2/2]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IdxFromBits ( hwy::SizeTag< 4 >  ,
const uint64_t  mask_bits 
)

◆ IfThenElse() [1/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 1 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes,
const Vec512< T >  no 
)

◆ IfThenElse() [2/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 1 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes,
Vec128< T, N >  no 
)

◆ IfThenElse() [3/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 1 >  ,
Mask256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfThenElse() [4/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 2 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes,
const Vec512< T >  no 
)

◆ IfThenElse() [5/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 2 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes,
Vec128< T, N >  no 
)

◆ IfThenElse() [6/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 2 >  ,
Mask256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfThenElse() [7/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 4 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes,
const Vec512< T >  no 
)

◆ IfThenElse() [8/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 4 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes,
Vec128< T, N >  no 
)

◆ IfThenElse() [9/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 4 >  ,
Mask256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfThenElse() [10/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 8 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes,
const Vec512< T >  no 
)

◆ IfThenElse() [11/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 8 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes,
Vec128< T, N >  no 
)

◆ IfThenElse() [12/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElse ( hwy::SizeTag< 8 >  ,
Mask256< T >  mask,
Vec256< T >  yes,
Vec256< T >  no 
)

◆ IfThenElseZero() [1/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 1 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes 
)

◆ IfThenElseZero() [2/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 1 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes 
)

◆ IfThenElseZero() [3/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 1 >  ,
Mask256< T >  mask,
Vec256< T >  yes 
)

◆ IfThenElseZero() [4/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 2 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes 
)

◆ IfThenElseZero() [5/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 2 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes 
)

◆ IfThenElseZero() [6/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 2 >  ,
Mask256< T >  mask,
Vec256< T >  yes 
)

◆ IfThenElseZero() [7/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 4 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes 
)

◆ IfThenElseZero() [8/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 4 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes 
)

◆ IfThenElseZero() [9/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 4 >  ,
Mask256< T >  mask,
Vec256< T >  yes 
)

◆ IfThenElseZero() [10/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 8 >  ,
const Mask512< T >  mask,
const Vec512< T >  yes 
)

◆ IfThenElseZero() [11/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 8 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  yes 
)

◆ IfThenElseZero() [12/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenElseZero ( hwy::SizeTag< 8 >  ,
Mask256< T >  mask,
Vec256< T >  yes 
)

◆ IfThenZeroElse() [1/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 1 >  ,
const Mask512< T >  mask,
const Vec512< T >  no 
)

◆ IfThenZeroElse() [2/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 1 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  no 
)

◆ IfThenZeroElse() [3/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 1 >  ,
Mask256< T >  mask,
Vec256< T >  no 
)

◆ IfThenZeroElse() [4/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 2 >  ,
const Mask512< T >  mask,
const Vec512< T >  no 
)

◆ IfThenZeroElse() [5/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 2 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  no 
)

◆ IfThenZeroElse() [6/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 2 >  ,
Mask256< T >  mask,
Vec256< T >  no 
)

◆ IfThenZeroElse() [7/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 4 >  ,
const Mask512< T >  mask,
const Vec512< T >  no 
)

◆ IfThenZeroElse() [8/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 4 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  no 
)

◆ IfThenZeroElse() [9/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 4 >  ,
Mask256< T >  mask,
Vec256< T >  no 
)

◆ IfThenZeroElse() [10/12]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 8 >  ,
const Mask512< T >  mask,
const Vec512< T >  no 
)

◆ IfThenZeroElse() [11/12]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 8 >  ,
Mask128< T, N >  mask,
Vec128< T, N >  no 
)

◆ IfThenZeroElse() [12/12]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::IfThenZeroElse ( hwy::SizeTag< 8 >  ,
Mask256< T >  mask,
Vec256< T >  no 
)

◆ InterleaveUpper() [1/40]

HWY_API Vec128<double> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< double >  a,
const Vec128< double >  b 
)

◆ InterleaveUpper() [2/40]

HWY_API Vec128<float, 2> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< float, 2 >  a,
const Vec128< float, 2 >  b 
)

◆ InterleaveUpper() [3/40]

HWY_API Vec128<int16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< int16_t >  a,
const Vec128< int16_t >  b 
)

◆ InterleaveUpper() [4/40]

HWY_API Vec128<int32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< int32_t >  a,
const Vec128< int32_t >  b 
)

◆ InterleaveUpper() [5/40]

HWY_API Vec128<int8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< int8_t >  a,
const Vec128< int8_t >  b 
)

◆ InterleaveUpper() [6/40]

HWY_API Vec128<uint16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< uint16_t >  a,
const Vec128< uint16_t >  b 
)

◆ InterleaveUpper() [7/40]

HWY_API Vec128<uint32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< uint32_t >  a,
const Vec128< uint32_t >  b 
)

◆ InterleaveUpper() [8/40]

HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< uint64_t >  a,
const Vec128< uint64_t >  b 
)

◆ InterleaveUpper() [9/40]

HWY_API Vec128<uint8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec128< uint8_t >  a,
const Vec128< uint8_t >  b 
)

◆ InterleaveUpper() [10/40]

HWY_API Vec256<double> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< double >  a,
const Vec256< double >  b 
)

◆ InterleaveUpper() [11/40]

HWY_API Vec256<float> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< float >  a,
const Vec256< float >  b 
)

◆ InterleaveUpper() [12/40]

HWY_API Vec256<int16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< int16_t >  a,
const Vec256< int16_t >  b 
)

◆ InterleaveUpper() [13/40]

HWY_API Vec256<int32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< int32_t >  a,
const Vec256< int32_t >  b 
)

◆ InterleaveUpper() [14/40]

HWY_API Vec256<int64_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< int64_t >  a,
const Vec256< int64_t >  b 
)

◆ InterleaveUpper() [15/40]

HWY_API Vec256<int8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< int8_t >  a,
const Vec256< int8_t >  b 
)

◆ InterleaveUpper() [16/40]

HWY_API Vec256<uint16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< uint16_t >  a,
const Vec256< uint16_t >  b 
)

◆ InterleaveUpper() [17/40]

HWY_API Vec256<uint32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< uint32_t >  a,
const Vec256< uint32_t >  b 
)

◆ InterleaveUpper() [18/40]

HWY_API Vec256<uint64_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< uint64_t >  a,
const Vec256< uint64_t >  b 
)

◆ InterleaveUpper() [19/40]

HWY_API Vec256<uint8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec256< uint8_t >  a,
const Vec256< uint8_t >  b 
)

◆ InterleaveUpper() [20/40]

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

◆ InterleaveUpper() [21/40]

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

◆ InterleaveUpper() [22/40]

HWY_API Vec512<int16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< int16_t >  a,
const Vec512< int16_t >  b 
)

◆ InterleaveUpper() [23/40]

HWY_API Vec512<int32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< int32_t >  a,
const Vec512< int32_t >  b 
)

◆ InterleaveUpper() [24/40]

HWY_API Vec512<int64_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< int64_t >  a,
const Vec512< int64_t >  b 
)

◆ InterleaveUpper() [25/40]

HWY_API Vec512<int8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< int8_t >  a,
const Vec512< int8_t >  b 
)

◆ InterleaveUpper() [26/40]

HWY_API Vec512<uint16_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< uint16_t >  a,
const Vec512< uint16_t >  b 
)

◆ InterleaveUpper() [27/40]

HWY_API Vec512<uint32_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< uint32_t >  a,
const Vec512< uint32_t >  b 
)

◆ InterleaveUpper() [28/40]

HWY_API Vec512<uint64_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< uint64_t >  a,
const Vec512< uint64_t >  b 
)

◆ InterleaveUpper() [29/40]

HWY_API Vec512<uint8_t> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( const Vec512< uint8_t >  a,
const Vec512< uint8_t >  b 
)

◆ InterleaveUpper() [30/40]

HWY_API Vec128< float > hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< float >  a,
Vec128< float >  b 
)

◆ InterleaveUpper() [31/40]

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

◆ InterleaveUpper() [32/40]

template<size_t N>
HWY_API Vec128<int16_t, N> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< int16_t, N >  a,
Vec128< int16_t, N >  b 
)

◆ InterleaveUpper() [33/40]

template<size_t N>
HWY_API Vec128<int32_t, N> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< int32_t, N >  a,
Vec128< int32_t, N >  b 
)

◆ InterleaveUpper() [34/40]

HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< int64_t >  a,
Vec128< int64_t >  b 
)

◆ InterleaveUpper() [35/40]

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

◆ InterleaveUpper() [36/40]

template<size_t N>
HWY_API Vec128<int8_t, N> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< int8_t, N >  a,
Vec128< int8_t, N >  b 
)

◆ InterleaveUpper() [37/40]

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

◆ InterleaveUpper() [38/40]

template<size_t N>
HWY_API Vec128<uint32_t, N> hwy::HWY_NAMESPACE::detail::InterleaveUpper ( Vec128< uint32_t, N >  a,
Vec128< uint32_t, N >  b 
)

◆ InterleaveUpper() [39/40]

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

◆ InterleaveUpper() [40/40]

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

◆ Iota0() [1/2]

template<class D , class DU = RebindToUnsigned<D>>
HWY_INLINE VFromD<DU> hwy::HWY_NAMESPACE::detail::Iota0 ( const  D)

◆ Iota0() [2/2]

template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_INLINE VFromD<Simd<T, N> > hwy::HWY_NAMESPACE::detail::Iota0 ( Simd< T, N >  )

References Iota0().

◆ LanesPerBlock()

template<typename T , size_t N>
constexpr size_t hwy::HWY_NAMESPACE::detail::LanesPerBlock ( Simd< T, N >  )
constexpr

◆ Load8Bytes() [1/2]

HWY_INLINE Vec128<uint8_t> hwy::HWY_NAMESPACE::detail::Load8Bytes ( Full128< uint8_t >  ,
const uint8_t *  bytes 
)

Referenced by IdxFromBits().

◆ Load8Bytes() [2/2]

template<size_t N, HWY_IF_LE64(uint8_t, N) >
HWY_INLINE Vec128<uint8_t, N> hwy::HWY_NAMESPACE::detail::Load8Bytes ( Simd< uint8_t, N >  d,
const uint8_t *  bytes 
)

◆ LoadMaskBits()

template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Mask128< T, N > hwy::HWY_NAMESPACE::detail::LoadMaskBits ( Simd< T, N >  d,
uint64_t  mask_bits 
)

◆ Mask()

template<typename T , size_t N>
svbool_t hwy::HWY_NAMESPACE::detail::Mask ( Simd< T, N >  d)

◆ MaskFromVec() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 1 >  ,
const Vec128< T, N >  v 
)

◆ MaskFromVec() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 1 >  ,
const Vec256< T >  v 
)

◆ MaskFromVec() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 1 >  ,
const Vec512< T >  v 
)

◆ MaskFromVec() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 2 >  ,
const Vec128< T, N >  v 
)

◆ MaskFromVec() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 2 >  ,
const Vec256< T >  v 
)

◆ MaskFromVec() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 2 >  ,
const Vec512< T >  v 
)

◆ MaskFromVec() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 4 >  ,
const Vec128< T, N >  v 
)

◆ MaskFromVec() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 4 >  ,
const Vec256< T >  v 
)

◆ MaskFromVec() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 4 >  ,
const Vec512< T >  v 
)

◆ MaskFromVec() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 8 >  ,
const Vec128< T, N >  v 
)

◆ MaskFromVec() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 8 >  ,
const Vec256< T >  v 
)

◆ MaskFromVec() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::MaskFromVec ( hwy::SizeTag< 8 >  ,
const Vec512< T >  v 
)

◆ MaskLowerHalf()

template<typename T , size_t N>
svbool_t hwy::HWY_NAMESPACE::detail::MaskLowerHalf ( Simd< T, N >  d)

◆ MaskUpperHalf()

template<typename T , size_t N>
svbool_t hwy::HWY_NAMESPACE::detail::MaskUpperHalf ( Simd< T, N >  d)

◆ MaxOfLanes() [1/6]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T >  v3210 
)

◆ MaxOfLanes() [2/6]

template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T, 2 >  v10 
)

◆ MaxOfLanes() [3/6]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< 4 >  ,
const Vec256< T >  v3210 
)

◆ MaxOfLanes() [4/6]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< 8 >  ,
const Vec128< T >  v10 
)

◆ MaxOfLanes() [5/6]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< 8 >  ,
const Vec256< T >  v10 
)

◆ MaxOfLanes() [6/6]

template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::MaxOfLanes ( hwy::SizeTag< sizeof(T)>  ,
const Vec128< T, 1 >  v 
)

◆ MaxU()

template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128<T, N> hwy::HWY_NAMESPACE::detail::MaxU ( const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ MinOfLanes() [1/6]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T >  v3210 
)

◆ MinOfLanes() [2/6]

template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T, 2 >  v10 
)

◆ MinOfLanes() [3/6]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< 4 >  ,
const Vec256< T >  v3210 
)

◆ MinOfLanes() [4/6]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< 8 >  ,
const Vec128< T >  v10 
)

◆ MinOfLanes() [5/6]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< 8 >  ,
const Vec256< T >  v10 
)

◆ MinOfLanes() [6/6]

template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::MinOfLanes ( hwy::SizeTag< sizeof(T)>  ,
const Vec128< T, 1 >  v 
)

◆ MinU()

template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128<T, N> hwy::HWY_NAMESPACE::detail::MinU ( const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ Not() [1/4]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Not ( hwy::SizeTag< 1 >  ,
const Mask512< T >  m 
)

◆ Not() [2/4]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Not ( hwy::SizeTag< 2 >  ,
const Mask512< T >  m 
)

◆ Not() [3/4]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Not ( hwy::SizeTag< 4 >  ,
const Mask512< T >  m 
)

◆ Not() [4/4]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Not ( hwy::SizeTag< 8 >  ,
const Mask512< T >  m 
)

◆ OddEven() [1/8]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 1 >  ,
const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ OddEven() [2/8]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 1 >  ,
const Vec256< T >  a,
const Vec256< T >  b 
)

◆ OddEven() [3/8]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 2 >  ,
const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ OddEven() [4/8]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 2 >  ,
const Vec256< T >  a,
const Vec256< T >  b 
)

◆ OddEven() [5/8]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 4 >  ,
const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ OddEven() [6/8]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 4 >  ,
const Vec256< T >  a,
const Vec256< T >  b 
)

◆ OddEven() [7/8]

template<typename T , size_t N>
HWY_INLINE Vec128< T, N > hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 8 >  ,
const Vec128< T, N >  a,
const Vec128< T, N >  b 
)

◆ OddEven() [8/8]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::OddEven ( hwy::SizeTag< 8 >  ,
const Vec256< T >  a,
const Vec256< T >  b 
)

◆ OffsetsOf128BitBlocks()

template<class D , class V >
HWY_INLINE V hwy::HWY_NAMESPACE::detail::OffsetsOf128BitBlocks ( const D  d,
const V  iota0 
)

◆ OnlyActive()

template<typename T , size_t N>
constexpr uint64_t hwy::HWY_NAMESPACE::detail::OnlyActive ( uint64_t  bits)
constexpr

◆ Or() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 1 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Or() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 1 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Or() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 1 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Or() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Or() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 2 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Or() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 2 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Or() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Or() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 4 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Or() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 4 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Or() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 8 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Or() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 8 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Or() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Or ( hwy::SizeTag< 8 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ PopulationCount() [1/20]

template<typename T >
HWY_INLINE Vec128<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 1 >  ,
Vec128< T >  v 
)

◆ PopulationCount() [2/20]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 1 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [3/20]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 1 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [4/20]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 1 >  ,
Vec256< T >  v 
)

◆ PopulationCount() [5/20]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 1 >  ,
Vec512< T >  v 
)

◆ PopulationCount() [6/20]

template<typename T >
HWY_INLINE Vec128<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 2 >  ,
Vec128< T >  v 
)

◆ PopulationCount() [7/20]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 2 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [8/20]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 2 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [9/20]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 2 >  ,
Vec256< T >  v 
)

◆ PopulationCount() [10/20]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 2 >  ,
Vec512< T >  v 
)

◆ PopulationCount() [11/20]

template<typename T >
HWY_INLINE Vec128<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 4 >  ,
Vec128< T >  v 
)

◆ PopulationCount() [12/20]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 4 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [13/20]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 4 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [14/20]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 4 >  ,
Vec256< T >  v 
)

◆ PopulationCount() [15/20]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 4 >  ,
Vec512< T >  v 
)

◆ PopulationCount() [16/20]

template<typename T >
HWY_INLINE Vec128<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 8 >  ,
Vec128< T >  v 
)

◆ PopulationCount() [17/20]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 8 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [18/20]

template<typename T , size_t N>
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 8 >  ,
Vec128< T, N >  v 
)

◆ PopulationCount() [19/20]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 8 >  ,
Vec256< T >  v 
)

◆ PopulationCount() [20/20]

template<typename T >
HWY_INLINE Vec512<T> hwy::HWY_NAMESPACE::detail::PopulationCount ( hwy::SizeTag< 8 >  ,
Vec512< T >  v 
)

◆ PromoteUpperTo()

template<size_t N>
HWY_API svfloat32_t hwy::HWY_NAMESPACE::detail::PromoteUpperTo ( Simd< float, N >  df,
const svfloat16_t  v 
)

◆ ReciprocalNewtonRaphsonStep() [1/2]

HWY_INLINE Vec128<float> hwy::HWY_NAMESPACE::detail::ReciprocalNewtonRaphsonStep ( const Vec128< float >  recip,
const Vec128< float >  divisor 
)

◆ ReciprocalNewtonRaphsonStep() [2/2]

template<size_t N>
HWY_INLINE Vec128<float, N> hwy::HWY_NAMESPACE::detail::ReciprocalNewtonRaphsonStep ( const Vec128< float, N >  recip,
Vec128< float, N >  divisor 
)

◆ ReciprocalSqrtStep() [1/2]

HWY_INLINE Vec128<float> hwy::HWY_NAMESPACE::detail::ReciprocalSqrtStep ( const Vec128< float >  root,
const Vec128< float >  recip 
)

◆ ReciprocalSqrtStep() [2/2]

template<size_t N>
HWY_INLINE Vec128<float, N> hwy::HWY_NAMESPACE::detail::ReciprocalSqrtStep ( const Vec128< float, N >  root,
Vec128< float, N >  recip 
)

◆ SaturateI()

template<typename TN , class VI >
VI hwy::HWY_NAMESPACE::detail::SaturateI ( VI  v)

◆ SaturateU()

template<typename TN , class VU >
VU hwy::HWY_NAMESPACE::detail::SaturateU ( VU  v)

◆ ScaleByPower()

constexpr size_t hwy::HWY_NAMESPACE::detail::ScaleByPower ( size_t  N,
int  pow2 
)
constexpr

References HWY_MAX.

◆ ScatterIndex() [1/6]

template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 4 >  ,
Vec128< T, N >  v,
Simd< T, N >  ,
T *HWY_RESTRICT  base,
const Vec128< int32_t, N >  index 
)

◆ ScatterIndex() [2/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 4 >  ,
Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  base,
const Vec256< int32_t >  index 
)

◆ ScatterIndex() [3/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 4 >  ,
Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  base,
const Vec512< int32_t >  index 
)

◆ ScatterIndex() [4/6]

template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 8 >  ,
Vec128< T, N >  v,
Simd< T, N >  ,
T *HWY_RESTRICT  base,
const Vec128< int64_t, N >  index 
)

◆ ScatterIndex() [5/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 8 >  ,
Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  base,
const Vec256< int64_t >  index 
)

◆ ScatterIndex() [6/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex ( hwy::SizeTag< 8 >  ,
Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  base,
const Vec512< int64_t >  index 
)

◆ ScatterOffset() [1/6]

template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 4 >  ,
Vec128< T, N >  v,
Simd< T, N >  ,
T *HWY_RESTRICT  base,
const Vec128< int32_t, N >  offset 
)

◆ ScatterOffset() [2/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 4 >  ,
Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  base,
const Vec256< int32_t >  offset 
)

◆ ScatterOffset() [3/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 4 >  ,
Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  base,
const Vec512< int32_t >  offset 
)

◆ ScatterOffset() [4/6]

template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 8 >  ,
Vec128< T, N >  v,
Simd< T, N >  ,
T *HWY_RESTRICT  base,
const Vec128< int64_t, N >  offset 
)

◆ ScatterOffset() [5/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 8 >  ,
Vec256< T >  v,
Full256< T >  ,
T *HWY_RESTRICT  base,
const Vec256< int64_t >  offset 
)

◆ ScatterOffset() [6/6]

template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset ( hwy::SizeTag< 8 >  ,
Vec512< T >  v,
Full512< T >  ,
T *HWY_RESTRICT  base,
const Vec512< int64_t >  offset 
)

◆ Set64() [1/2]

template<typename T >
HWY_INLINE Vec128<T> hwy::HWY_NAMESPACE::detail::Set64 ( Full128< T >  d,
uint64_t  mask_bits 
)

◆ Set64() [2/2]

template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_INLINE Vec128<T, N> hwy::HWY_NAMESPACE::detail::Set64 ( Simd< T, N >  ,
uint64_t  mask_bits 
)

References hwy::HWY_NAMESPACE::BitCast().

Referenced by LoadMaskBits().

◆ ShrBytes()

template<int kBytes, typename T , size_t N>
HWY_API __i8x16 hwy::HWY_NAMESPACE::detail::ShrBytes ( const Vec128< T, N >  v)

◆ SumOfLanes() [1/13]

HWY_INLINE Vec128<float> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< float >  v)

◆ SumOfLanes() [2/13]

HWY_INLINE Vec128<int32_t> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< int32_t >  v)

◆ SumOfLanes() [3/13]

HWY_INLINE Vec128<int64_t> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< int64_t >  v)

◆ SumOfLanes() [4/13]

template<typename T >
HWY_INLINE Vec128<T, 1> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< T, 1 >  v)

◆ SumOfLanes() [5/13]

template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_INLINE Vec128<T, 2> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< T, 2 >  v10)

◆ SumOfLanes() [6/13]

HWY_INLINE Vec128<uint32_t> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< uint32_t >  v)

◆ SumOfLanes() [7/13]

HWY_INLINE Vec128<uint64_t> hwy::HWY_NAMESPACE::detail::SumOfLanes ( const Vec128< uint64_t >  v)

◆ SumOfLanes() [8/13]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T >  v3210 
)

◆ SumOfLanes() [9/13]

template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< 4 >  ,
const Vec128< T, 2 >  v10 
)

◆ SumOfLanes() [10/13]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< 4 >  ,
const Vec256< T >  v3210 
)

◆ SumOfLanes() [11/13]

template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< 8 >  ,
const Vec128< T >  v10 
)

◆ SumOfLanes() [12/13]

template<typename T >
HWY_INLINE Vec256<T> hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< 8 >  ,
const Vec256< T >  v10 
)

◆ SumOfLanes() [13/13]

template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::SumOfLanes ( hwy::SizeTag< sizeof(T)>  ,
const Vec128< T, 1 >  v 
)

◆ TestBit() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 1 >  ,
const Vec128< T, N >  v,
const Vec128< T, N >  bit 
)

◆ TestBit() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 1 >  ,
const Vec256< T >  v,
const Vec256< T >  bit 
)

◆ TestBit() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 1 >  ,
const Vec512< T >  v,
const Vec512< T >  bit 
)

◆ TestBit() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 2 >  ,
const Vec128< T, N >  v,
const Vec128< T, N >  bit 
)

◆ TestBit() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 2 >  ,
const Vec256< T >  v,
const Vec256< T >  bit 
)

◆ TestBit() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 2 >  ,
const Vec512< T >  v,
const Vec512< T >  bit 
)

◆ TestBit() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 4 >  ,
const Vec128< T, N >  v,
const Vec128< T, N >  bit 
)

◆ TestBit() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 4 >  ,
const Vec256< T >  v,
const Vec256< T >  bit 
)

◆ TestBit() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 4 >  ,
const Vec512< T >  v,
const Vec512< T >  bit 
)

◆ TestBit() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 8 >  ,
const Vec128< T, N >  v,
const Vec128< T, N >  bit 
)

◆ TestBit() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 8 >  ,
const Vec256< T >  v,
const Vec256< T >  bit 
)

◆ TestBit() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::TestBit ( hwy::SizeTag< 8 >  ,
const Vec512< T >  v,
const Vec512< T >  bit 
)

◆ UseInt() [1/3]

template<class V >
HWY_INLINE auto hwy::HWY_NAMESPACE::detail::UseInt ( const V  v) -> decltype(MaskFromVec(v))

◆ UseInt() [2/3]

template<size_t N>
HWY_INLINE Mask128<float, N> hwy::HWY_NAMESPACE::detail::UseInt ( const Vec128< float, N >  v)

◆ UseInt() [3/3]

template<typename T , size_t N, HWY_IF_FLOAT(T) >
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::UseInt ( const Vec128< T, N >  v)

◆ Xor() [1/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 1 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Xor() [2/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 1 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Xor() [3/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 1 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Xor() [4/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 2 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Xor() [5/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 2 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Xor() [6/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 2 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Xor() [7/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 4 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Xor() [8/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 4 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Xor() [9/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 4 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)

◆ Xor() [10/12]

template<typename T , size_t N>
HWY_INLINE Mask128<T, N> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 8 >  ,
const Mask128< T, N >  a,
const Mask128< T, N >  b 
)

◆ Xor() [11/12]

template<typename T >
HWY_INLINE Mask256<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 8 >  ,
const Mask256< T >  a,
const Mask256< T >  b 
)

◆ Xor() [12/12]

template<typename T >
HWY_INLINE Mask512<T> hwy::HWY_NAMESPACE::detail::Xor ( hwy::SizeTag< 8 >  ,
const Mask512< T >  a,
const Mask512< T >  b 
)