Grok 12.0.1
Classes | Namespaces | Macros | Typedefs | Functions
x86_512-inl.h File Reference
#include "hwy/base.h"
#include <immintrin.h>
#include "hwy/ops/x86_256-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::detail::Raw512< T >
 
struct  hwy::HWY_NAMESPACE::detail::Raw512< float >
 
struct  hwy::HWY_NAMESPACE::detail::Raw512< double >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< size >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 1 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 2 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 4 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask512< 8 >
 
class  hwy::HWY_NAMESPACE::Vec512< T >
 
struct  hwy::HWY_NAMESPACE::Mask512< T >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< T >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< float >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger512< double >
 
struct  hwy::HWY_NAMESPACE::Indices512< T >
 

Namespaces

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

Macros

#define HWY_NATIVE_POPCNT
 
#define HWY_NATIVE_MUL_64
 
#define HWY_NATIVE_REVERSE_BITS_UI8
 
#define HWY_NATIVE_COMPRESS8
 

Typedefs

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

Functions

 HWY_BEFORE_NAMESPACE ()
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512i v)
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512 v)
 
HWY_INLINE __m512i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m512d v)
 
template<typename T >
HWY_INLINE Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::BitCastToByte (Vec512< T > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::BitCastFromByte (D, Vec512< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , typename FromT >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::BitCast (D d, Vec512< FromT > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Set (D, TFromD< D > t)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Set (D, float t)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Set (D, double t)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > hwy::HWY_NAMESPACE::Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_thwy::HWY_NAMESPACE::Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_thwy::HWY_NAMESPACE::Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Zero (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API Vec512< TFromD< D > > hwy::HWY_NAMESPACE::Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_BF16_D(D) >
HWY_API Vec512< bfloat16_thwy::HWY_NAMESPACE::Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F16_D(D) >
HWY_API Vec512< float16_thwy::HWY_NAMESPACE::Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Undefined (D)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Undefined (D)
 
template<class D , class FromV , HWY_IF_V_SIZE_LE_V(FromV, 8) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ResizeBitCast (D d, FromV v)
 
template<class D , HWY_IF_UI8_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3, TFromD< D > t4, TFromD< D > t5, TFromD< D > t6, TFromD< D > t7, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >)
 
template<class D , HWY_IF_UI16_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D > t2, TFromD< D > t3, TFromD< D >, TFromD< D >, TFromD< D >, TFromD< D >)
 
template<class D , HWY_IF_UI32_D(D) , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D > t1, TFromD< D >, TFromD< D >)
 
template<class D , HWY_IF_T_SIZE_D(D, 8) , HWY_IF_V_SIZE_D(D, 8) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Dup128VecFromValues (D d, TFromD< D > t0, TFromD< D >)
 
template<class D , HWY_IF_T_SIZE_D(D, 2) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::Iota0 (D d)
 
template<class D , typename T2 , HWY_IF_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Iota (const D d, T2 first)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Not (const Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::And (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::And (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::And (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::AndNot (const Vec512< T > not_mask, const Vec512< T > mask)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::AndNot (const Vec512< float > not_mask, const Vec512< float > mask)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::AndNot (const Vec512< double > not_mask, const Vec512< double > mask)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Or (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Or (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Xor (const Vec512< float > a, const Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Xor (const Vec512< double > a, const Vec512< double > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Xor3 (Vec512< T > x1, Vec512< T > x2, Vec512< T > x3)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Or3 (Vec512< T > o1, Vec512< T > o2, Vec512< T > o3)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OrAnd (Vec512< T > o, Vec512< T > a1, Vec512< T > a2)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfVecThenElse (Vec512< T > mask, Vec512< T > yes, Vec512< T > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator& (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator| (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator^ (const Vec512< T > a, const Vec512< T > b)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 1 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 2 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 4 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 8 >, Vec512< T > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::PopulationCount (Vec512< T > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::FirstN (D d, size_t num)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
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)
 
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)
 
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)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElse (const Mask512< T > mask, const Vec512< T > yes, const Vec512< T > no)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElse (Mask512< float > mask, Vec512< float > yes, Vec512< float > no)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElse (Mask512< double > mask, Vec512< double > yes, Vec512< double > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > yes)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenElseZero (const Mask512< T > mask, const Vec512< T > yes)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenElseZero (Mask512< float > mask, Vec512< float > yes)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenElseZero (Mask512< double > mask, Vec512< double > yes)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 1 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 2 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 4 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 8 >, const Mask512< T > mask, const Vec512< T > no)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfThenZeroElse (const Mask512< T > mask, const Vec512< T > no)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::IfThenZeroElse (Mask512< float > mask, Vec512< float > no)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::IfThenZeroElse (Mask512< double > mask, Vec512< double > no)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenElse (Vec512< T > v, Vec512< T > yes, Vec512< T > no)
 
template<typename T , HWY_IF_NOT_FLOAT_NOR_SPECIAL(T) , HWY_IF_T_SIZE_ONE_OF(T,(1<< 1)|(1<< 2)|(1<< 4)) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::IfNegativeThenNegOrUndefIfZero (Vec512< T > mask, Vec512< T > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator+ (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator+ (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator+ (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator+ (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator+ (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator+ (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator+ (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator+ (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator+ (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator+ (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator- (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator- (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator- (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator- (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator- (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator- (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator- (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator- (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator- (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator- (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8 (const Vec512< uint8_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::SumsOf8AbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_INLINE Vec512< uint32_t > hwy::HWY_NAMESPACE::detail::SumsOf4 (hwy::UnsignedTag, hwy::SizeTag< 1 >, Vec512< uint8_t > v)
 
template<class V >
HWY_INLINE VFromD< RepartitionToWideX2< DFromV< V > > > hwy::HWY_NAMESPACE::detail::SumsOf4 (hwy::SignedTag, hwy::SizeTag< 1 >, V v)
 
template<int kIdx3, int kIdx2, int kIdx1, int kIdx0>
static Vec512< uint16_t > hwy::HWY_NAMESPACE::SumsOfShuffledQuadAbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AverageRound (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::AverageRound (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Abs (const Vec512< int64_t > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::GaloisAffine (Vec512< T > v, Vec512< uint64_t > matrix)
 
template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeft (const Vec512< int64_t > v)
 
template<int kBits, class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIhwy::HWY_NAMESPACE::ShiftLeft (const V v)
 
template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< uint64_t > v)
 
template<int kBits>
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int16_t > v)
 
template<int kBits>
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int32_t > v)
 
template<int kBits>
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRight (const Vec512< int64_t > v)
 
template<int kBits, class V , HWY_IF_U8_D(DFromV< V >) >
HWY_APIhwy::HWY_NAMESPACE::ShiftRight (const V v)
 
template<int kBits, class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::RotateRight (const V v)
 
template<int kBits>
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::RotateRight (const Vec512< uint16_t > v)
 
template<int kBits>
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RotateRight (const Vec512< uint32_t > v)
 
template<int kBits>
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::RotateRight (const Vec512< uint64_t > v)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Rol (Vec512< T > a, Vec512< T > b)
 
template<class T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Ror (Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< int64_t > v, const int bits)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::ShiftLeftSame (const Vec512< T > v, const int bits)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint16_t > v, const int bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint32_t > v, const int bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< uint64_t > v, const int bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::ShiftRightSame (Vec512< uint8_t > v, const int bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int16_t > v, const int bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int32_t > v, const int bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::ShiftRightSame (const Vec512< int64_t > v, const int bits)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::ShiftRightSame (Vec512< int8_t > v, const int bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Min (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Min (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Min (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Min (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Min (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Min (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Min (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Min (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Min (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Min (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::Max (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::Max (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Max (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Max (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::Max (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::Max (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Max (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Max (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Max (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Max (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator* (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator* (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator* (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Vec256< uint64_t > hwy::HWY_NAMESPACE::operator* (Vec256< uint64_t > a, Vec256< uint64_t > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N > hwy::HWY_NAMESPACE::operator* (Vec128< uint64_t, N > a, Vec128< uint64_t, N > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator* (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator* (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator* (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec256< int64_t > hwy::HWY_NAMESPACE::operator* (Vec256< int64_t > a, Vec256< int64_t > b)
 
template<size_t N>
HWY_API Vec128< int64_t, N > hwy::HWY_NAMESPACE::operator* (Vec128< int64_t, N > a, Vec128< int64_t, N > b)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::MulHigh (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulHigh (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::MulFixedPoint15 (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::MulEven (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::MulEven (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<typename T , HWY_IF_FLOAT_OR_SPECIAL(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Neg (const Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator* (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator* (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::operator/ (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::operator/ (Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ApproximateReciprocal (Vec512< double > v)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedMinOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_U8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedMaxOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedAddOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_UI8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSubOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedMulOr (Vec512< float > no, Mask512< float > m, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedMulOr (Vec512< double > no, Mask512< double > m, Vec512< double > a, Vec512< double > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedDivOr (Vec512< float > no, Mask512< float > m, Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedDivOr (Vec512< double > no, Mask512< double > m, Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSatAddOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
template<typename T , HWY_IF_I8(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::MaskedSatSubOr (Vec512< T > no, Mask512< T > m, Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAdd (Vec512< float > mul, Vec512< float > x, Vec512< float > add)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAdd (Vec512< double > mul, Vec512< double > x, Vec512< double > add)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulAdd (Vec512< float > mul, Vec512< float > x, Vec512< float > add)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulAdd (Vec512< double > mul, Vec512< double > x, Vec512< double > add)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::NegMulSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::NegMulSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MulAddSub (Vec512< float > mul, Vec512< float > x, Vec512< float > sub_or_add)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MulAddSub (Vec512< double > mul, Vec512< double > x, Vec512< double > sub_or_add)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Sqrt (const Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Sqrt (const Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Round (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Round (Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Trunc (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Trunc (Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Ceil (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Ceil (Vec512< double > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Floor (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Floor (Vec512< double > v)
 
template<class DTo , typename TFrom >
HWY_API MFromD< DTo > hwy::HWY_NAMESPACE::RebindMask (DTo, Mask512< TFrom > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 1 >, Vec512< T > v, Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 2 >, Vec512< T > v, Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 4 >, Vec512< T > v, Vec512< T > bit)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 8 >, Vec512< T > v, Vec512< T > bit)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::TestBit (const Vec512< T > v, const Vec512< T > bit)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator== (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator== (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator== (Vec512< double > a, Vec512< double > b)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator!= (Vec512< T > a, Vec512< T > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator!= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator!= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator> (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator> (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator> (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator> (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator> (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator> (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator> (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::operator>= (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::operator>= (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< uint8_t > hwy::HWY_NAMESPACE::operator>= (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Mask512< uint16_t > hwy::HWY_NAMESPACE::operator>= (Vec512< uint16_t > a, Vec512< uint16_t > b)
 
HWY_API Mask512< uint32_t > hwy::HWY_NAMESPACE::operator>= (Vec512< uint32_t > a, Vec512< uint32_t > b)
 
HWY_API Mask512< uint64_t > hwy::HWY_NAMESPACE::operator>= (Vec512< uint64_t > a, Vec512< uint64_t > b)
 
HWY_API Mask512< int8_t > hwy::HWY_NAMESPACE::operator>= (Vec512< int8_t > a, Vec512< int8_t > b)
 
HWY_API Mask512< int16_t > hwy::HWY_NAMESPACE::operator>= (Vec512< int16_t > a, Vec512< int16_t > b)
 
HWY_API Mask512< int32_t > hwy::HWY_NAMESPACE::operator>= (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Mask512< int64_t > hwy::HWY_NAMESPACE::operator>= (Vec512< int64_t > a, Vec512< int64_t > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator< (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::operator<= (Vec512< T > a, Vec512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 1 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 2 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 4 >, Vec512< T > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 8 >, Vec512< T > v)
 
template<typename T , HWY_IF_NOT_FLOAT(T) >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::MaskFromVec (Vec512< T > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< uint8_t > v)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< int8_t > v)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< uint16_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< int16_t > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::VecFromMask (Mask512< float > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< uint64_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::VecFromMask (Mask512< int64_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::VecFromMask (Mask512< double > v)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 1 >, Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 2 >, Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 4 >, Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Not (hwy::SizeTag< 8 >, Mask512< T > m)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 1 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 2 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 4 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 8 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 1 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 2 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 4 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 8 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 1 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 2 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 4 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 8 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 1 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 2 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 4 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 8 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 1 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 2 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 4 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_INLINE Mask512< T > hwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 8 >, Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Not (Mask512< T > m)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::And (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::AndNot (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Or (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::Xor (Mask512< T > a, Mask512< T > b)
 
template<typename T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::ExclusiveNeither (Mask512< T > a, Mask512< T > b)
 
template<class D , HWY_IF_LANES_D(D, 2) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::CombineMasks (D, MFromD< Half< D > > hi, MFromD< Half< D > > lo)
 
template<class D , HWY_IF_LANES_D(D, 1) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::UpperHalfOfMask (D, MFromD< Twice< D > > m)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMask1Up (D d, MFromD< D > m)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::SlideMask1Down (D d, MFromD< D > m)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::BroadcastSignBit (Vec512< int8_t > v)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::BroadcastSignBit (Vec512< int16_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::BroadcastSignBit (Vec512< int32_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::BroadcastSignBit (Vec512< int64_t > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsNaN (Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsNaN (Vec512< double > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsEitherNaN (Vec512< float > a, Vec512< float > b)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsEitherNaN (Vec512< double > a, Vec512< double > b)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsInf (Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsInf (Vec512< double > v)
 
HWY_API Mask512< float > hwy::HWY_NAMESPACE::IsFinite (Vec512< float > v)
 
HWY_API Mask512< double > hwy::HWY_NAMESPACE::IsFinite (Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load (D, const TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Load (D, const float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Load (D, const double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_LANES_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::LoadU (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadU (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoad (MFromD< D > m, D, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API Vec512< float > hwy::HWY_NAMESPACE::MaskedLoad (Mask512< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::MaskedLoad (Mask512< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr (VFromD< D > v, MFromD< D > m, D, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr (VFromD< D > v, Mask512< float > m, D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedLoadOr (VFromD< D > v, Mask512< double > m, D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 (D d, const TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 (D, const float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadDup128 (D, const double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_LANES_GT_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::Store (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store (Vec512< float > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Store (VFromD< D > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 2) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreU (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU (Vec512< float > v, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::StoreU (Vec512< double > v, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (VFromD< D > v, MFromD< D > m, D, TFromD< D > *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec512< float > v, Mask512< float > m, D, float *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec512< double > v, Mask512< double > m, D, double *HWY_RESTRICT p)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream (VFromD< D > v, D d, TFromD< D > *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream (VFromD< D > v, D, float *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::Stream (VFromD< D > v, D, double *HWY_RESTRICT aligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (VFromD< D > v, D, float *HWY_RESTRICT base, Vec512< int32_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (VFromD< D > v, D, double *HWY_RESTRICT base, Vec512< int64_t > offset)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (VFromD< D > v, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (VFromD< D > v, D, float *HWY_RESTRICT base, Vec512< int32_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (VFromD< D > v, D, double *HWY_RESTRICT base, Vec512< int64_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_UI32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, float *HWY_RESTRICT base, Vec512< int32_t > index)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API void hwy::HWY_NAMESPACE::MaskedScatterIndex (VFromD< D > v, MFromD< D > m, D, double *HWY_RESTRICT base, Vec512< int64_t > index)
 
template<int kScale, typename T , HWY_IF_UI32(T) >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::NativeGather512 (const T *HWY_RESTRICT base, Vec512< int32_t > indices)
 
template<int kScale, typename T , HWY_IF_UI64(T) >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::NativeGather512 (const T *HWY_RESTRICT base, Vec512< int64_t > indices)
 
template<int kScale>
HWY_INLINE Vec512< float > hwy::HWY_NAMESPACE::detail::NativeGather512 (const float *HWY_RESTRICT base, Vec512< int32_t > indices)
 
template<int kScale>
HWY_INLINE Vec512< double > hwy::HWY_NAMESPACE::detail::NativeGather512 (const double *HWY_RESTRICT base, Vec512< int64_t > indices)
 
template<int kScale, typename T , HWY_IF_UI32(T) >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512 (Vec512< T > no, Mask512< T > m, const T *HWY_RESTRICT base, Vec512< int32_t > indices)
 
template<int kScale, typename T , HWY_IF_UI64(T) >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512 (Vec512< T > no, Mask512< T > m, const T *HWY_RESTRICT base, Vec512< int64_t > indices)
 
template<int kScale>
HWY_INLINE Vec512< float > hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512 (Vec512< float > no, Mask512< float > m, const float *HWY_RESTRICT base, Vec512< int32_t > indices)
 
template<int kScale>
HWY_INLINE Vec512< double > hwy::HWY_NAMESPACE::detail::NativeMaskedGatherOr512 (Vec512< double > no, Mask512< double > m, const double *HWY_RESTRICT base, Vec512< int64_t > indices)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherOffset (D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > offsets)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::GatherIndex (D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::MaskedGatherIndexOr (VFromD< D > no, MFromD< D > m, D d, const TFromD< D > *HWY_RESTRICT base, VFromD< RebindToSigned< D > > indices)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf (D, VFromD< Twice< D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_BF16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf (D, Vec512< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf (D, Vec512< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf (D, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LowerHalf (D, Vec512< double > v)
 
template<typename T >
HWY_API Vec256< T > hwy::HWY_NAMESPACE::LowerHalf (Vec512< T > v)
 
template<class D , HWY_NEON_IF_EMULATED_D(D) , HWY_IF_V_SIZE_GT_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::UpperHalf (D dh, VFromD< Twice< D > > v)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec512< T > v, size_t i)
 
template<int kBlockIdx, class T , hwy::EnableIf<(kBlockIdx<=1)> * = nullptr>
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ExtractBlock (Vec512< T > v)
 
template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ExtractBlock (Vec512< float > v)
 
template<int kBlockIdx, hwy::EnableIf<(kBlockIdx > 1)> * = nullptr>
HWY_API Vec128< double > hwy::HWY_NAMESPACE::ExtractBlock (Vec512< double > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertLane (const Vec512< T > v, size_t i, T t)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::InsertBlock (hwy::SizeTag< 0 >, Vec512< T > v, Vec128< T > blk_to_insert)
 
template<size_t kBlockIdx, typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::InsertBlock (hwy::SizeTag< kBlockIdx >, Vec512< T > v, Vec128< T > blk_to_insert)
 
template<size_t kBlockIdx, hwy::EnableIf< kBlockIdx !=0 > * = nullptr>
HWY_INLINE Vec512< float > hwy::HWY_NAMESPACE::detail::InsertBlock (hwy::SizeTag< kBlockIdx >, Vec512< float > v, Vec128< float > blk_to_insert)
 
template<size_t kBlockIdx, hwy::EnableIf< kBlockIdx !=0 > * = nullptr>
HWY_INLINE Vec512< double > hwy::HWY_NAMESPACE::detail::InsertBlock (hwy::SizeTag< kBlockIdx >, Vec512< double > v, Vec128< double > blk_to_insert)
 
template<int kBlockIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InsertBlock (Vec512< T > v, Vec128< T > blk_to_insert)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::GetLane (const Vec512< T > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_SPECIAL_FLOAT_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ZeroExtendVector (D d, VFromD< Half< D > > lo)
 
template<class DTo , class DFrom , HWY_IF_NOT_FLOAT3264_D(DTo) >
HWY_INLINE VFromD< DTo > hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast (hwy::SizeTag< 16 >, hwy::SizeTag< 64 >, DTo d_to, DFrom d_from, VFromD< DFrom > v)
 
template<class DTo , class DFrom , HWY_IF_F64_D(DTo) >
HWY_INLINE Vec512< double > hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast (hwy::SizeTag< 16 >, hwy::SizeTag< 64 >, DTo d_to, DFrom d_from, VFromD< DFrom > v)
 
template<class DTo , class DFrom >
HWY_INLINE VFromD< DTo > hwy::HWY_NAMESPACE::detail::ZeroExtendResizeBitCast (hwy::SizeTag< 8 >, hwy::SizeTag< 64 >, DTo d_to, DFrom d_from, VFromD< DFrom > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Combine (D d, VFromD< Half< D > > hi, VFromD< Half< D > > lo)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftLeftBytes (D d, VFromD< D > v)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ShiftRightBytes (D d, VFromD< D > v)
 
template<int kBytes, class D , HWY_IF_V_SIZE_LE_D(D, 4) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::CombineShiftRightBytes (D d, VFromD< D > hi, VFromD< D > lo)
 
template<int kLane, typename T , HWY_IF_T_SIZE(T, 2) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Broadcast (const Vec512< T > v)
 
template<int kLane>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Broadcast (const Vec512< float > v)
 
template<int kLane>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Broadcast (const Vec512< double > v)
 
template<int kBlockIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BroadcastBlock (Vec512< T > v)
 
template<int kBlockIdx>
HWY_API Vec512< float > hwy::HWY_NAMESPACE::BroadcastBlock (Vec512< float > v)
 
template<int kBlockIdx>
HWY_API Vec512< double > hwy::HWY_NAMESPACE::BroadcastBlock (Vec512< double > v)
 
template<class T , HWY_IF_T_SIZE(T, 1) >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::BroadcastLane (hwy::SizeTag< 0 >, Vec512< T > v)
 
HWY_INLINE Vec512< float > hwy::HWY_NAMESPACE::detail::BroadcastLane (hwy::SizeTag< 0 >, Vec512< float > v)
 
HWY_INLINE Vec512< double > hwy::HWY_NAMESPACE::detail::BroadcastLane (hwy::SizeTag< 0 >, Vec512< double > v)
 
template<size_t kLaneIdx, class T , hwy::EnableIf< kLaneIdx !=0 > * = nullptr>
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::BroadcastLane (hwy::SizeTag< kLaneIdx >, Vec512< T > v)
 
template<int kLaneIdx, class T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::BroadcastLane (Vec512< T > v)
 
template<typename T , HWY_IF_UI32(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Shuffle2301 (const Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2301 (const Vec512< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::ShuffleTwo2301 (const Vec512< T > a, const Vec512< T > b)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::ShuffleTwo1230 (const Vec512< T > a, const Vec512< T > b)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::detail::ShuffleTwo3012 (const Vec512< T > a, const Vec512< T > b)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec512< float > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< uint64_t > v)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< int64_t > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::Shuffle01 (const Vec512< double > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec512< float > v)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< uint32_t > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< int32_t > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec512< float > v)
 
template<class D , typename T = TFromD<D>, typename TI >
HWY_API Indices512< T > hwy::HWY_NAMESPACE::IndicesFromVec (D, Vec512< TI > vec)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , typename TI >
HWY_API Indices512< TFromD< D > > hwy::HWY_NAMESPACE::SetTableIndices (D d, const TI *idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 2) , HWY_IF_NOT_SPECIAL_FLOAT(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< T > v, Indices512< T > idx)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< float > v, Indices512< float > idx)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::TableLookupLanes (Vec512< double > v, Indices512< double > idx)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::TwoTablesLookupLanes (Vec512< T > a, Vec512< T > b, Indices512< T > idx)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::TwoTablesLookupLanes (Vec512< float > a, Vec512< float > b, Indices512< float > idx)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::TwoTablesLookupLanes (Vec512< double > a, Vec512< double > b, Indices512< double > idx)
 
template<class D , HWY_IF_T_SIZE_D(D, 1) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse4 (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Reverse8 (D d, VFromD< D > v)
 
template<class V , HWY_IF_T_SIZE_V(V, 1) >
HWY_APIhwy::HWY_NAMESPACE::ReverseBits (V v)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::InterleaveLower (Vec512< T > a, Vec512< T > b)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::InterleaveLower (Vec512< float > a, Vec512< float > b)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::InterleaveLower (Vec512< double > a, Vec512< double > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveUpper (D, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerLower (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperUpper (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatLowerUpper (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatLowerUpper (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatUpperLower (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API Vec512< double > hwy::HWY_NAMESPACE::ConcatUpperLower (D, Vec512< double > hi, Vec512< double > lo)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatOdd (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 8) , HWY_IF_POW2_LE_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConcatEven (D d, VFromD< D > hi, VFromD< D > lo)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeLower (D d, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveWholeUpper (D d, VFromD< D > a, VFromD< D > b)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupEven (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupEven (Vec512< float > v)
 
template<typename T , HWY_IF_T_SIZE(T, 4) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::DupOdd (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::DupOdd (Vec512< float > v)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEven (const Vec512< T > a, const Vec512< T > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveEven (D, VFromD< D > a, VFromD< D > b)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::InterleaveOdd (D, VFromD< D > a, VFromD< D > b)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< T > odd, Vec512< T > even)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< float > odd, Vec512< float > even)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::OddEvenBlocks (Vec512< double > odd, Vec512< double > even)
 
template<typename T >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< T > v)
 
HWY_API Vec512< float > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< float > v)
 
HWY_API Vec512< double > hwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_FLOAT3264_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReverseBlocks (D d, VFromD< D > v)
 
template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec512< TI > indices)
 
template<typename T , typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec128< TI, NI > from)
 
template<typename T , typename TI >
HWY_API Vec256< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec512< T > bytes, Vec256< TI > from)
 
template<typename T , size_t N, typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec128< T, N > bytes, Vec512< TI > from)
 
template<typename T , typename TI >
HWY_API Vec512< TI > hwy::HWY_NAMESPACE::TableLookupBytes (Vec256< T > bytes, Vec512< TI > from)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::Per4LaneBlkShufDupSet4xU32 (D d, const uint32_t x3, const uint32_t x2, const uint32_t x1, const uint32_t x0)
 
template<size_t kIdx3210, class V , HWY_IF_NOT_FLOAT(TFromV< V >) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 4 >, hwy::SizeTag< 64 >, V v)
 
template<size_t kIdx3210, class V , HWY_IF_NOT_FLOAT(TFromV< V >) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::Per4LaneBlockShuffle (hwy::SizeTag< kIdx3210 >, hwy::SizeTag< 8 >, hwy::SizeTag< 64 >, V v)
 
template<int kI32Lanes, class V , HWY_IF_V_SIZE_V(V, 32) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::CombineShiftRightI32Lanes (V hi, V lo)
 
template<int kI64Lanes, class V , HWY_IF_V_SIZE_V(V, 32) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::CombineShiftRightI64Lanes (V hi, V lo)
 
template<int kI32Lanes, class V , HWY_IF_V_SIZE_V(V, 64) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::SlideUpI32Lanes (V v)
 
template<int kI64Lanes, class V , HWY_IF_V_SIZE_V(V, 32) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::SlideUpI64Lanes (V v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_ONE_OF_D( D,(1<< 1)|((HWY_TARGET > HWY_AVX3) ?(1<< 2) :0)) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::TableLookupSlideUpLanes (D d, VFromD< D > v, size_t amt)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpBlocks (D, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideUpLanes (D d, VFromD< D > v, size_t amt)
 
template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Up (D d, VFromD< D > v)
 
template<int kI32Lanes, class V , HWY_IF_V_SIZE_V(V, 64) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::SlideDownI32Lanes (V v)
 
template<int kI64Lanes, class V , HWY_IF_V_SIZE_V(V, 32) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::SlideDownI64Lanes (V v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_ONE_OF_D( D,(1<< 1)|((HWY_TARGET > HWY_AVX3) ?(1<< 2) :0)) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::TableLookupSlideDownLanes (D d, VFromD< D > v, size_t amt)
 
template<int kBlocks, class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownBlocks (D, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_LANES_D(D, 2) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::SlideDownLanes (D d, VFromD< D > v, size_t amt)
 
template<typename D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_T_SIZE_D(D, 1) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::Slide1Down (D d, VFromD< D > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec128< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec128< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec64< uint8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec128< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec128< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec64< int8_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< float16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D df32, Vec256< bfloat16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, Vec256< float > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteInRangeTo (D, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::PromoteTo (D, VFromD< Rebind< float, D > > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D, Vec512< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D dn, Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D, Vec512< int16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D dn, Vec512< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D, Vec512< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D, Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D df16, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D, Vec512< int32_t > a, Vec512< int32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D dn, Vec512< uint32_t > a, Vec512< uint32_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D, Vec512< int16_t > a, Vec512< int16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D dn, Vec512< uint16_t > a, Vec512< uint16_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_UI32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D dn, Vec512< int64_t > a, Vec512< int64_t > b)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderDemote2To (D dn, Vec512< uint64_t > a, Vec512< uint64_t > b)
 
template<class D , class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL(TFromD< D >) , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_V(V, sizeof(TFromD< D >) *2) , HWY_IF_LANES_D(D, HWY_MAX_LANES_D(DFromV< V >) *2) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)|(1<< 4)|((HWY_TARGET > HWY_AVX3) ?(1<< 8) :0)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::OrderedDemote2To (D d, V a, V b)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D, Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteInRangeTo (D, Vec512< double > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D df32, VFromD< Rebind< int64_t, D > > v)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::DemoteTo (D df32, VFromD< Rebind< uint64_t, D > > v)
 
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::U8FromU32 (const Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 8) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo (D d, const Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo (D, const Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U8_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::TruncateTo (D, const Vec512< uint16_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo (D, Vec512< int32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo (D, Vec512< int64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo (D, Vec512< uint32_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_F64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertTo (D, Vec512< uint64_t > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo (D, Vec512< float > v)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I64_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ConvertInRangeTo (D, Vec512< double > v)
 
template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > hwy::HWY_NAMESPACE::ConvertInRangeTo (DU, VFromD< RebindToFloat< DU > > v)
 
template<class DU , HWY_IF_V_SIZE_LE_D(DU, 16) , HWY_IF_U32_D(DU) >
HWY_API VFromD< DU > hwy::HWY_NAMESPACE::ConvertTo (DU, VFromD< RebindToFloat< DU > > v)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::NearestInt (const Vec512< float > v)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRound (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESRoundInv (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESLastRoundInv (Vec512< uint8_t > state, Vec512< uint8_t > round_key)
 
template<uint8_t kRcon>
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::AESKeyGenAssist (Vec512< uint8_t > v)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulLower (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::CLMulUpper (Vec512< uint64_t > va, Vec512< uint64_t > vb)
 
template<int kAOffset, int kBOffset>
static Vec512< uint16_t > hwy::HWY_NAMESPACE::SumsOfAdjQuadAbsDiff (Vec512< uint8_t > a, Vec512< uint8_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SaturatedAdd (Vec512< int64_t > a, Vec512< int64_t > b)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< int32_t > a, Vec512< int32_t > b)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::SaturatedSub (Vec512< int64_t > a, Vec512< int64_t > b)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllFalse (hwy::SizeTag< 8 >, const Mask512< T > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 16) >
HWY_API bool hwy::HWY_NAMESPACE::AllFalse (D d, MFromD< D > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 1 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 2 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 4 >, const Mask512< T > mask)
 
template<typename T >
HWY_INLINE bool hwy::HWY_NAMESPACE::detail::AllTrue (hwy::SizeTag< 8 >, const Mask512< T > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API bool hwy::HWY_NAMESPACE::AllTrue (D d, MFromD< D > m)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_API MFromD< D > hwy::HWY_NAMESPACE::LoadMaskBits (D d, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_LANES_LE_D(D, 8) >
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits (D, MFromD< D > mask, uint8_t *bits)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 8) >
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue (D d, MFromD< D > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue (D, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue (D d, MFromD< D > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownLastTrue (D, MFromD< D > mask)
 
template<class D , typename T = TFromD<D>>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindLastTrue (D d, MFromD< D > mask)
 
template<size_t N>
HWY_INLINE Vec128< uint8_t, N > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec128< uint8_t, N > v, const Mask128< uint8_t, N > mask)
 
HWY_INLINE Vec256< uint8_t > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec256< uint8_t > v, const Mask256< uint8_t > mask)
 
HWY_INLINE Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec512< uint8_t > v, const Mask512< uint8_t > mask)
 
template<size_t N>
HWY_INLINE Vec128< uint16_t, N > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec128< uint16_t, N > v, const Mask128< uint16_t, N > mask)
 
HWY_INLINE Vec256< uint16_t > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec256< uint16_t > v, const Mask256< uint16_t > mask)
 
HWY_INLINE Vec512< uint16_t > hwy::HWY_NAMESPACE::detail::NativeCompress (const Vec512< uint16_t > v, const Mask512< uint16_t > mask)
 
HWY_INLINE Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::NativeExpand (Vec512< uint8_t > v, Mask512< uint8_t > mask)
 
HWY_INLINE Vec512< uint16_t > hwy::HWY_NAMESPACE::detail::NativeExpand (Vec512< uint16_t > v, Mask512< uint16_t > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U8_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::NativeLoadExpand (Mask512< uint8_t > mask, D, const uint8_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U16_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::NativeLoadExpand (Mask512< uint16_t > mask, D, const uint16_t *HWY_RESTRICT unaligned)
 
template<size_t N>
HWY_INLINE Vec128< uint32_t, N > hwy::HWY_NAMESPACE::detail::NativeCompress (Vec128< uint32_t, N > v, Mask128< uint32_t, N > mask)
 
HWY_INLINE Vec256< uint32_t > hwy::HWY_NAMESPACE::detail::NativeCompress (Vec256< uint32_t > v, Mask256< uint32_t > mask)
 
HWY_INLINE Vec512< uint32_t > hwy::HWY_NAMESPACE::detail::NativeCompress (Vec512< uint32_t > v, Mask512< uint32_t > mask)
 
HWY_INLINE Vec512< uint32_t > hwy::HWY_NAMESPACE::detail::NativeExpand (Vec512< uint32_t > v, Mask512< uint32_t > mask)
 
HWY_INLINE Vec512< uint64_t > hwy::HWY_NAMESPACE::detail::NativeExpand (Vec512< uint64_t > v, Mask512< uint64_t > mask)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U32_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::NativeLoadExpand (Mask512< uint32_t > mask, D, const uint32_t *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_U64_D(D) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::NativeLoadExpand (Mask512< uint64_t > mask, D, const uint64_t *HWY_RESTRICT unaligned)
 
template<size_t N>
HWY_INLINE Vec128< uint8_t, N > hwy::HWY_NAMESPACE::detail::EmuCompress (Vec128< uint8_t, N > v, Mask128< uint8_t, N > mask)
 
template<size_t N>
HWY_INLINE Vec128< uint16_t, N > hwy::HWY_NAMESPACE::detail::EmuCompress (Vec128< uint16_t, N > v, Mask128< uint16_t, N > mask)
 
HWY_INLINE Vec256< uint16_t > hwy::HWY_NAMESPACE::detail::EmuCompress (Vec256< uint16_t > v, Mask256< uint16_t > mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::EmuCompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) , HWY_IF_U16_D(D) >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::EmuCompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_INLINE Vec512< T > hwy::HWY_NAMESPACE::detail::EmuCompress (Vec512< T > v, Mask512< T > mask)
 
HWY_INLINE Vec256< uint8_t > hwy::HWY_NAMESPACE::detail::EmuCompress (Vec256< uint8_t > v, const Mask256< uint8_t > mask)
 
template<class V , class M , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_APIhwy::HWY_NAMESPACE::Compress (V v, const M mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Compress (Vec512< T > v, Mask512< T > mask)
 
template<typename T , HWY_IF_T_SIZE(T, 1) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::Expand (Vec512< T > v, const Mask512< T > mask)
 
template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 1) >
HWY_APIhwy::HWY_NAMESPACE::Expand (V v, const M mask)
 
template<class D , HWY_IF_V_SIZE_LE_D(D, 16) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 1)|(1<< 2)) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::LoadExpand (MFromD< D > mask, D d, const TFromD< D > *HWY_RESTRICT unaligned)
 
template<class V , class M , HWY_IF_NOT_T_SIZE_V(V, 8) >
HWY_APIhwy::HWY_NAMESPACE::CompressNot (V v, const M mask)
 
template<typename T , HWY_IF_T_SIZE(T, 8) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::CompressNot (Vec512< T > v, Mask512< T > mask)
 
template<class V , class M , HWY_IF_V_SIZE_GT_D(DFromV< V >, 16) >
HWY_APIhwy::HWY_NAMESPACE::CompressBlocksNot (V v, M mask)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::CompressBits (V v, const uint8_t *HWY_RESTRICT bits)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_FLOAT_D(D) , HWY_IF_T_SIZE_ONE_OF_D(D,(1<< 4)|(1<< 8)) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (VFromD< D > v, MFromD< D > mask, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_NOT_T_SIZE_D(D, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore (VFromD< D > v, MFromD< D > m, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore (VFromD< D > v, const uint8_t *HWY_RESTRICT bits, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<_MM_PERM_ENUM kPerm, typename T >
Vec512< T > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< T > lo, const Vec512< T > hi)
 
template<_MM_PERM_ENUM kPerm>
Vec512< float > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< float > lo, const Vec512< float > hi)
 
template<_MM_PERM_ENUM kPerm>
Vec512< double > hwy::HWY_NAMESPACE::detail::Shuffle128 (const Vec512< double > lo, const Vec512< double > hi)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &A, VFromD< D > &B, VFromD< D > &C)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4 (D d, const TFromD< D > *HWY_RESTRICT unaligned, VFromD< D > &vA, VFromD< D > &vB, VFromD< D > &vC, VFromD< D > &vD)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2 (VFromD< D > i, VFromD< D > j, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3 (VFromD< D > i, VFromD< D > j, VFromD< D > k, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class D , HWY_IF_V_SIZE_D(D, 32) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4 (VFromD< D > i, VFromD< D > j, VFromD< D > k, VFromD< D > l, D d, TFromD< D > *HWY_RESTRICT unaligned)
 
template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetAtOrAfterFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetBeforeFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetAtOrBeforeFirst (Mask512< T > mask)
 
template<class T >
HWY_API Mask512< T > hwy::HWY_NAMESPACE::SetOnlyFirst (Mask512< T > mask)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator<< (Vec512< uint16_t > v, Vec512< uint16_t > bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator<< (Vec512< uint8_t > v, Vec512< uint8_t > bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator<< (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator<< (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
template<typename T , HWY_IF_SIGNED(T) >
HWY_API Vec512< T > hwy::HWY_NAMESPACE::operator<< (const Vec512< T > v, const Vec512< T > bits)
 
HWY_API Vec512< uint16_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint16_t > v, const Vec512< uint16_t > bits)
 
HWY_API Vec512< uint8_t > hwy::HWY_NAMESPACE::operator>> (Vec512< uint8_t > v, Vec512< uint8_t > bits)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint32_t > v, const Vec512< uint32_t > bits)
 
HWY_API Vec512< uint64_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< uint64_t > v, const Vec512< uint64_t > bits)
 
HWY_API Vec512< int16_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int16_t > v, const Vec512< int16_t > bits)
 
HWY_API Vec512< int8_t > hwy::HWY_NAMESPACE::operator>> (Vec512< int8_t > v, Vec512< int8_t > bits)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int32_t > v, const Vec512< int32_t > bits)
 
HWY_API Vec512< int64_t > hwy::HWY_NAMESPACE::operator>> (const Vec512< int64_t > v, const Vec512< int64_t > bits)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::WidenMulPairwiseAdd (D, Vec512< int16_t > a, Vec512< int16_t > b)
 
template<class DI16 , HWY_IF_I16_D(DI16) , HWY_IF_V_SIZE_LE_D(DI16, 16) >
HWY_API VFromD< DI16 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAdd (DI16, VFromD< Repartition< uint8_t, DI16 > > a, VFromD< Repartition< int8_t, DI16 > > b)
 
template<class DI32 , HWY_IF_I32_D(DI32) , HWY_IF_V_SIZE_LE_D(DI32, 16) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SatWidenMulPairwiseAccumulate (DI32, VFromD< Repartition< int16_t, DI32 > > a, VFromD< Repartition< int16_t, DI32 > > b, VFromD< DI32 > sum)
 
template<class D , HWY_IF_V_SIZE_D(D, 64) , HWY_IF_I32_D(D) >
HWY_API VFromD< D > hwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (D d, Vec512< int16_t > a, Vec512< int16_t > b, const VFromD< D > sum0, VFromD< D > &)
 
HWY_API Vec512< int32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven (const Vec512< int32_t > sum0, Vec512< int32_t >)
 
HWY_API Vec512< uint32_t > hwy::HWY_NAMESPACE::RearrangeToOddPlusEven (const Vec512< uint32_t > sum0, Vec512< uint32_t >)
 
template<class DI32 , HWY_IF_I32_D(DI32) >
HWY_API VFromD< DI32 > hwy::HWY_NAMESPACE::SumOfMulQuadAccumulate (DI32 di32, VFromD< Repartition< uint8_t, DI32 > > a_u, VFromD< Repartition< int8_t, DI32 > > b_i, VFromD< DI32 > sum)
 
template<class D , class Func , HWY_IF_V_SIZE_LE_D(D, 16) >
HWY_INLINE VFromD< D > hwy::HWY_NAMESPACE::detail::ReduceAcrossBlocks (D, Func, VFromD< D > v)
 
template<class V , HWY_IF_UI32(TFromV< V >) , HWY_IF_V_SIZE_LE_D(DFromV< V >, 16) >
HWY_APIhwy::HWY_NAMESPACE::LeadingZeroCount (V v)
 
template<class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_LANES_LE_D(DFromV< V >, 16) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16 (V v)
 
template<class V , HWY_IF_UNSIGNED_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) , HWY_IF_LANES_D(DFromV< V >, 32) >
HWY_INLINE VFromD< Rebind< uint16_t, DFromV< V > > > hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16AsU16 (V v)
 
HWY_INLINE Vec256< uint8_t > hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16 (Vec256< uint8_t > v)
 
HWY_INLINE Vec512< uint8_t > hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16 (Vec512< uint8_t > v)
 
HWY_INLINE Vec512< uint16_t > hwy::HWY_NAMESPACE::detail::Lzcnt32ForU8OrU16 (Vec512< uint16_t > v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) , HWY_IF_T_SIZE_ONE_OF_V(V,(1<< 1)|(1<< 2)) >
HWY_APIhwy::HWY_NAMESPACE::HighestSetBitIndex (V v)
 
template<class V , HWY_IF_NOT_FLOAT_NOR_SPECIAL_V(V) >
HWY_APIhwy::HWY_NAMESPACE::TrailingZeroCount (V v)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_NATIVE_COMPRESS8

#define HWY_NATIVE_COMPRESS8

◆ HWY_NATIVE_MUL_64

#define HWY_NATIVE_MUL_64

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

◆ HWY_NATIVE_REVERSE_BITS_UI8

#define HWY_NATIVE_REVERSE_BITS_UI8

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )

References HWY_NAMESPACE.