Grok 10.0.5
Classes | Namespaces | Macros | Typedefs | Functions
scalar-inl.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "hwy/base.h"
#include "hwy/ops/shared-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::Vec1< T >
 
class  hwy::HWY_NAMESPACE::Mask1< T >
 
struct  hwy::HWY_NAMESPACE::detail::RotateRight< kBits >
 
struct  hwy::HWY_NAMESPACE::detail::RotateRight< 0 >
 
struct  hwy::HWY_NAMESPACE::Indices1< T >
 
struct  hwy::HWY_NAMESPACE::CompressIsPartition< T >
 

Namespaces

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

Macros

#define HWY_NATIVE_POPCNT
 
#define HWY_NATIVE_LOAD_STORE_INTERLEAVED
 

Typedefs

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

Functions

 HWY_BEFORE_NAMESPACE ()
 
template<typename T , typename FromT >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::BitCast (Sisd< T >, Vec1< FromT > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Zero (Sisd< T >)
 
template<typename T , typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Set (Sisd< T >, const T2 t)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Undefined (Sisd< T > d)
 
template<typename T , typename T2 >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Iota (const Sisd< T >, const T2 first)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Not (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::And (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator& (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::AndNot (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator| (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Xor (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator^ (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Xor3 (Vec1< T > x1, Vec1< T > x2, Vec1< T > x3)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Or3 (Vec1< T > o1, Vec1< T > o2, Vec1< T > o3)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OrAnd (const Vec1< T > o, const Vec1< T > a1, const Vec1< T > a2)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfVecThenElse (Vec1< T > mask, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySign (const Vec1< T > magn, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CopySignToAbs (const Vec1< T > abs, const Vec1< T > sign)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::BroadcastSignBit (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::PopulationCount (Vec1< T > v)
 
template<typename TFrom , typename TTo >
HWY_API Mask1< TTo > hwy::HWY_NAMESPACE::RebindMask (Sisd< TTo >, Mask1< TFrom > m)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::MaskFromVec (const Vec1< T > v)
 
template<typename T >
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask (const Mask1< T > mask)
 
template<typename T >
Vec1< T > hwy::HWY_NAMESPACE::VecFromMask (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::FirstN (Sisd< T >, size_t n)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElse (const Mask1< T > mask, const Vec1< T > yes, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenElseZero (const Mask1< T > mask, const Vec1< T > yes)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfThenZeroElse (const Mask1< T > mask, const Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::IfNegativeThenElse (Vec1< T > v, Vec1< T > yes, Vec1< T > no)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ZeroIfNegative (const Vec1< T > v)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Not (const Mask1< T > m)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::And (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::AndNot (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Or (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::Xor (const Mask1< T > a, Mask1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::ExclusiveNeither (const Mask1< T > a, Mask1< T > b)
 
template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeft (const Vec1< T > v)
 
template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRight (const Vec1< T > v)
 
template<int kBits, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::RotateRight (const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec1< T > v, int bits)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator<< (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator>> (const Vec1< T > v, const Vec1< T > bits)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator+ (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator+ (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator+ (const Vec1< double > a, const Vec1< double > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator- (Vec1< T > a, Vec1< T > b)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::operator- (const Vec1< float > a, const Vec1< float > b)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::operator- (const Vec1< double > a, const Vec1< double > b)
 
HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 (const Vec1< uint8_t > v)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int8_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::SaturatedSub (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::AverageRound (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::AverageRound (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Abs (const Vec1< T > a)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::Abs (Vec1< float > a)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::Abs (Vec1< double > a)
 
static float hwy::HWY_NAMESPACE::detail::Abs (float f)
 
static double hwy::HWY_NAMESPACE::detail::Abs (double f)
 
static bool hwy::HWY_NAMESPACE::detail::SignBit (float f)
 
static bool hwy::HWY_NAMESPACE::detail::SignBit (double f)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Min (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Max (const Vec1< T > a, const Vec1< T > b)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Neg (const Vec1< T > v)
 
template<typename T , HWY_IF_FLOAT(T) >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator* (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::operator/ (const Vec1< T > a, const Vec1< T > b)
 
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::MulHigh (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::MulHigh (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 (Vec1< int16_t > a, Vec1< int16_t > b)
 
HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::MulEven (const Vec1< int32_t > a, const Vec1< int32_t > b)
 
HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::MulEven (const Vec1< uint32_t > a, const Vec1< uint32_t > b)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec1< float > v)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::AbsDiff (const Vec1< float > a, const Vec1< float > b)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulAdd (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > add)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::NegMulSub (const Vec1< T > mul, const Vec1< T > x, const Vec1< T > sub)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec1< float > v)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::Sqrt (const Vec1< float > v)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::Sqrt (const Vec1< double > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Round (const Vec1< T > v)
 
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::NearestInt (const Vec1< float > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Trunc (const Vec1< T > v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
hwy::HWY_NAMESPACE::Ceiling (const V v)
 
template<typename Float , typename Bits , int kMantissaBits, int kExponentBits, class V >
hwy::HWY_NAMESPACE::Floor (const V v)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::Ceil (const Vec1< float > v)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::Ceil (const Vec1< double > v)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::Floor (const Vec1< float > v)
 
HWY_API Vec1< double > hwy::HWY_NAMESPACE::Floor (const Vec1< double > v)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator== (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator!= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::TestBit (const Vec1< T > v, const Vec1< T > bit)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator< (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator> (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator<= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::operator>= (const Vec1< T > a, const Vec1< T > b)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::IsNaN (const Vec1< T > v)
 
HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsInf (const Vec1< float > v)
 
HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsInf (const Vec1< double > v)
 
HWY_API Mask1< float > hwy::HWY_NAMESPACE::IsFinite (const Vec1< float > v)
 
HWY_API Mask1< double > hwy::HWY_NAMESPACE::IsFinite (const Vec1< double > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Load (Sisd< T >, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaskedLoad (Mask1< T > m, Sisd< T > d, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadU (Sisd< T > d, const T *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LoadDup128 (Sisd< T > d, const T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec1< T > v, Sisd< T >, T *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (const Vec1< T > v, Mask1< T > m, Sisd< T > d, T *HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 (Sisd< T > d, const T *HWY_RESTRICT unaligned, Vec1< T > &v0, Vec1< T > &v1, Vec1< T > &v2, Vec1< T > &v3)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 (const Vec1< T > v0, const Vec1< T > v1, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 (const Vec1< T > v0, const Vec1< T > v1, const Vec1< T > v2, const Vec1< T > v3, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT aligned)
 
template<typename T , typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec1< T > v, Sisd< T > d, T *base, const Vec1< Offset > offset)
 
template<typename T , typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec1< T > v, Sisd< T > d, T *HWY_RESTRICT base, const Vec1< Index > index)
 
template<typename T , typename Offset >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherOffset (Sisd< T > d, const T *base, const Vec1< Offset > offset)
 
template<typename T , typename Index >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::GatherIndex (Sisd< T > d, const T *HWY_RESTRICT base, const Vec1< Index > index)
 
template<typename FromT , typename ToT >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::PromoteTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::DemoteTo (Sisd< float >, Vec1< double > from)
 
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::DemoteTo (Sisd< int32_t >, Vec1< double > from)
 
template<typename FromT , typename ToT >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::DemoteTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo (Sisd< float >, const Vec1< float16_t > v)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::PromoteTo (Sisd< float > d, const Vec1< bfloat16_t > v)
 
HWY_API Vec1< float16_t > hwy::HWY_NAMESPACE::DemoteTo (Sisd< float16_t >, const Vec1< float > v)
 
HWY_API Vec1< bfloat16_t > hwy::HWY_NAMESPACE::DemoteTo (Sisd< bfloat16_t > d, const Vec1< float > v)
 
template<typename FromT , typename ToT , HWY_IF_FLOAT(FromT) >
HWY_API Vec1< ToT > hwy::HWY_NAMESPACE::ConvertTo (Sisd< ToT >, Vec1< FromT > from)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 (const Vec1< uint32_t > v)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint8_t >, const Vec1< uint64_t > v)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint16_t >, const Vec1< uint64_t > v)
 
HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint32_t >, const Vec1< uint64_t > v)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint8_t >, const Vec1< uint32_t > v)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint16_t >, const Vec1< uint32_t > v)
 
HWY_API Vec1< uint8_t > hwy::HWY_NAMESPACE::TruncateTo (Sisd< uint8_t >, const Vec1< uint16_t > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::LowerHalf (Sisd< T >, Vec1< T > v)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::GetLane (const Vec1< T > v)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec1< T > v, size_t i)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::InsertLane (Vec1< T > v, size_t i, T t)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::DupEven (Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEven (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec1< T >, Vec1< T > even)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec1< T > v)
 
template<typename T , typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::IndicesFromVec (Sisd< T >, Vec1< TI > vec)
 
template<typename T , typename TI >
HWY_API Indices1< T > hwy::HWY_NAMESPACE::SetTableIndices (Sisd< T > d, const TI *idx)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::TableLookupLanes (const Vec1< T > v, const Indices1< T >)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::ReverseBlocks (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse2 (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse4 (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Reverse8 (Sisd< T >, const Vec1< T > v)
 
template<int kLane, typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Broadcast (const Vec1< T > v)
 
template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytes (const Vec1< T > in, const Vec1< TI > indices)
 
template<typename T , typename TI >
HWY_API Vec1< TI > hwy::HWY_NAMESPACE::TableLookupBytesOr0 (const Vec1< T > in, const Vec1< TI > indices)
 
HWY_API Vec1< uint16_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< uint8_t > a, const Vec1< uint8_t > b)
 
HWY_API Vec1< uint32_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< uint16_t > a, const Vec1< uint16_t > b)
 
HWY_API Vec1< uint64_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< uint32_t > a, const Vec1< uint32_t > b)
 
HWY_API Vec1< int16_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< int8_t > a, const Vec1< int8_t > b)
 
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< int16_t > a, const Vec1< int16_t > b)
 
HWY_API Vec1< int64_t > hwy::HWY_NAMESPACE::ZipLower (const Vec1< int32_t > a, const Vec1< int32_t > b)
 
template<typename T , typename TW = MakeWide<T>, class VW = Vec1<TW>>
HWY_API VW hwy::HWY_NAMESPACE::ZipLower (Sisd< TW >, Vec1< T > a, Vec1< T > b)
 
template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API Mask1< T > hwy::HWY_NAMESPACE::LoadMaskBits (Sisd< T >, const uint8_t *HWY_RESTRICT bits)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits (Sisd< T > d, const Mask1< T > mask, uint8_t *bits)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue (Sisd< T >, const Mask1< T > mask)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue (Sisd< T >, const Mask1< T >)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::Compress (Vec1< T > v, const Mask1< T >)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressNot (Vec1< T > v, const Mask1< T >)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec1< T > v, const Mask1< T > mask, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore (Vec1< T > v, const Mask1< T > mask, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::CompressBits (Vec1< T > v, const uint8_t *HWY_RESTRICT)
 
template<typename T >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore (Vec1< T > v, const uint8_t *HWY_RESTRICT bits, Sisd< T > d, T *HWY_RESTRICT unaligned)
 
HWY_API Vec1< float > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Sisd< float >, Vec1< bfloat16_t > a, Vec1< bfloat16_t > b, const Vec1< float > sum0, Vec1< float > &)
 
HWY_API Vec1< int32_t > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Sisd< int32_t >, Vec1< int16_t > a, Vec1< int16_t > b, const Vec1< int32_t > sum0, Vec1< int32_t > &)
 
template<typename TW >
HWY_API Vec1< TW > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven (const Vec1< TW > sum0, Vec1< TW >)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::SumOfLanes (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MinOfLanes (Sisd< T >, const Vec1< T > v)
 
template<typename T >
HWY_API Vec1< T > hwy::HWY_NAMESPACE::MaxOfLanes (Sisd< T >, const Vec1< T > v)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_NATIVE_LOAD_STORE_INTERLEAVED

#define HWY_NATIVE_LOAD_STORE_INTERLEAVED

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )