Grok 10.0.5
x86_128-inl.h File Reference
#include "hwy/base.h"
#include <emmintrin.h>
#include <stdio.h>
#include <tmmintrin.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include "hwy/ops/shared-inl.h"

Go to the source code of this file.

Classes

struct  hwy::HWY_NAMESPACE::detail::Raw128< T >
 
struct  hwy::HWY_NAMESPACE::detail::Raw128< float >
 
struct  hwy::HWY_NAMESPACE::detail::Raw128< double >
 
class  hwy::HWY_NAMESPACE::Vec128< T, N >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask128< size >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask128< 1 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask128< 2 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask128< 4 >
 
struct  hwy::HWY_NAMESPACE::detail::RawMask128< 8 >
 
class  hwy::HWY_NAMESPACE::Mask128< T, N >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< T >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< float >
 
struct  hwy::HWY_NAMESPACE::detail::BitCastFromInteger128< double >
 
struct  hwy::HWY_NAMESPACE::Indices128< T, N >
 
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_COMPILER_HAS_MASK_INTRINSICS   0
 
#define HWY_SAFE_PARTIAL_LOAD_STORE   0
 
#define HWY_INLINE_F16   HWY_INLINE
 

Typedefs

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

Functions

 HWY_BEFORE_NAMESPACE ()
 
HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m128i v)
 
HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m128 v)
 
HWY_INLINE __m128i hwy::HWY_NAMESPACE::detail::BitCastToInteger (__m128d v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< uint8_t, N *sizeof(T)> hwy::HWY_NAMESPACE::detail::BitCastToByte (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::BitCastFromByte (Simd< T, N, 0 >, Vec128< uint8_t, N *sizeof(T)> v)
 
template<typename T , size_t N, typename FromT >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::BitCast (Simd< T, N, 0 > d, Vec128< FromT, N *sizeof(T)/sizeof(FromT)> v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Zero (Simd< T, N, 0 >)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Zero (Simd< float, N, 0 >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Zero (Simd< double, N, 0 >)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::Set (Simd< uint8_t, N, 0 >, const uint8_t t)
 
template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::Set (Simd< uint16_t, N, 0 >, const uint16_t t)
 
template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::Set (Simd< uint32_t, N, 0 >, const uint32_t t)
 
template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::Set (Simd< uint64_t, N, 0 >, const uint64_t t)
 
template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::Set (Simd< int8_t, N, 0 >, const int8_t t)
 
template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::Set (Simd< int16_t, N, 0 >, const int16_t t)
 
template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::Set (Simd< int32_t, N, 0 >, const int32_t t)
 
template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::Set (Simd< int64_t, N, 0 >, const int64_t t)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Set (Simd< float, N, 0 >, const float t)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Set (Simd< double, N, 0 >, const double t)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Undefined (Simd< T, N, 0 > d)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Undefined (Simd< float, N, 0 >)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Undefined (Simd< double, N, 0 >)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_APIhwy::HWY_NAMESPACE::GetLane (const Vec128< T, N > v)
 
template<size_t N>
HWY_API float hwy::HWY_NAMESPACE::GetLane (const Vec128< float, N > v)
 
template<size_t N>
HWY_API uint64_t hwy::HWY_NAMESPACE::GetLane (const Vec128< uint64_t, N > v)
 
template<size_t N>
HWY_API int64_t hwy::HWY_NAMESPACE::GetLane (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API double hwy::HWY_NAMESPACE::GetLane (const Vec128< double, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::And (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::And (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::And (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::AndNot (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::AndNot (const Vec128< float, N > not_mask, const Vec128< float, N > mask)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::AndNot (const Vec128< double, N > not_mask, const Vec128< double, N > mask)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Or (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Or (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Or (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Xor (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Xor (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Xor (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Not (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Xor3 (Vec128< T, N > x1, Vec128< T, N > x2, Vec128< T, N > x3)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Or3 (Vec128< T, N > o1, Vec128< T, N > o2, Vec128< T, N > o3)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::OrAnd (Vec128< T, N > o, Vec128< T, N > a1, Vec128< T, N > a2)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::IfVecThenElse (Vec128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::operator& (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::operator| (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::operator^ (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 1 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 2 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 4 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::PopulationCount (hwy::SizeTag< 8 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::PopulationCount (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::Neg (hwy::FloatTag, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::Neg (hwy::NonFloatTag, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::Neg (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::Abs (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::Abs (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::Abs (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Abs (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Abs (const Vec128< double, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::CopySign (const Vec128< T, N > magn, const Vec128< T, N > sign)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::CopySignToAbs (const Vec128< T, N > abs, const Vec128< T, N > sign)
 
template<typename T >
HWY_INLINE void hwy::HWY_NAMESPACE::detail::MaybeUnpoison (T *HWY_RESTRICT unaligned, size_t count)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElse (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > yes, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::IfThenElse (const Mask128< T, N > mask, const Vec128< T, N > yes, const Vec128< T, N > no)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::IfThenElse (Mask128< float, N > mask, Vec128< float, N > yes, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::IfThenElse (Mask128< double, N > mask, Vec128< double, N > yes, Vec128< double, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenElseZero (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > yes)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::IfThenElseZero (const Mask128< T, N > mask, const Vec128< T, N > yes)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::IfThenElseZero (Mask128< float, N > mask, Vec128< float, N > yes)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::IfThenElseZero (Mask128< double, N > mask, Vec128< double, N > yes)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 1 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 2 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 4 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::IfThenZeroElse (hwy::SizeTag< 8 >, Mask128< T, N > mask, Vec128< T, N > no)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::IfThenZeroElse (const Mask128< T, N > mask, const Vec128< T, N > no)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::IfThenZeroElse (Mask128< float, N > mask, Vec128< float, N > no)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::IfThenZeroElse (Mask128< double, N > mask, Vec128< double, N > no)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::And (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::AndNot (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Or (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::Xor (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 1 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 2 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 4 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::ExclusiveNeither (hwy::SizeTag< 8 >, const Mask128< T, N > a, const Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::And (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::AndNot (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::Or (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::Xor (const Mask128< T, N > a, Mask128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::Not (const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::ExclusiveNeither (const Mask128< T, N > a, Mask128< T, N > b)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< int64_t, N > v)
 
template<int kBits, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeft (const Vec128< T, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< uint16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< uint64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< uint8_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< int16_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< int32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< int8_t, N > v)
 
template<typename T , size_t N, typename TI , size_t NI>
HWY_API Vec128< TI, NI > hwy::HWY_NAMESPACE::TableLookupBytes (const Vec128< T, N > v, const Vec128< TI, NI > indices)
 
template<class V , class VI >
HWY_API VI hwy::HWY_NAMESPACE::TableLookupBytesOr0 (const V bytes, const VI from)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Shuffle2301 (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Shuffle2301 (const Vec128< float, N > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::detail::Shuffle2301 (const Vec128< T, 4 > a, const Vec128< T, 4 > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::detail::Shuffle1230 (const Vec128< T, 4 > a, const Vec128< T, 4 > b)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::detail::Shuffle3012 (const Vec128< T, 4 > a, const Vec128< T, 4 > b)
 
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle1032 (const Vec128< float > v)
 
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec128< uint64_t > v)
 
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::Shuffle01 (const Vec128< int64_t > v)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::Shuffle01 (const Vec128< double > v)
 
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0321 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle2103 (const Vec128< float > v)
 
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< uint32_t > v)
 
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< int32_t > v)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Shuffle0123 (const Vec128< float > v)
 
template<typename TFrom , size_t NFrom, typename TTo , size_t NTo>
HWY_API Mask128< TTo, NTo > hwy::HWY_NAMESPACE::RebindMask (Simd< TTo, NTo, 0 >, Mask128< TFrom, NFrom > m)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 1 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 2 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 4 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::TestBit (hwy::SizeTag< 8 >, const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::TestBit (const Vec128< T, N > v, const Vec128< T, N > bit)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::operator== (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::operator== (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::operator== (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::operator!= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::operator!= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::operator!= (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< int8_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Mask128< int16_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Mask128< int32_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Mask128< int64_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint8_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint16_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint32_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Mask128< uint64_t, Nhwy::HWY_NAMESPACE::operator> (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::operator> (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::operator> (Vec128< double, N > a, Vec128< double, N > b)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::operator>= (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::operator>= (Vec128< double, N > a, Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 1 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 2 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 4 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::MaskFromVec (hwy::SizeTag< 8 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::MaskFromVec (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::MaskFromVec (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::MaskFromVec (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::VecFromMask (const Mask128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::VecFromMask (const Mask128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::VecFromMask (const Mask128< double, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::VecFromMask (Simd< T, N, 0 > d, const Mask128< T, N > v)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::operator< (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N>
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::operator<= (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::FirstN (const Simd< T, N, 0 > d, size_t num)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Load (Full128< T >, const T *HWY_RESTRICT aligned)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::Load (Full128< float >, const float *HWY_RESTRICT aligned)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::Load (Full128< double >, const double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::LoadU (Full128< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::LoadU (Full128< float >, const float *HWY_RESTRICT unaligned)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::LoadU (Full128< double >, const double *HWY_RESTRICT p)
 
template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::Load (Full64< T >, const T *HWY_RESTRICT p)
 
HWY_API Vec128< float, 2 > hwy::HWY_NAMESPACE::Load (Full64< float >, const float *HWY_RESTRICT p)
 
HWY_API Vec64< double > hwy::HWY_NAMESPACE::Load (Full64< double >, const double *HWY_RESTRICT p)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::Load (Full32< float >, const float *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Load (Simd< T, N, 0 >, const T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::LoadU (Simd< T, N, 0 > d, const T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::LoadDup128 (Simd< T, N, 0 > d, const T *const HWY_RESTRICT p)
 
template<typename T , size_t N, typename T2 , HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Iota (const Simd< T, N, 0 > d, const T2 first)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::MaskedLoad (Mask128< T, N > m, Simd< T, N, 0 >, const T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::MaskedLoad (Mask128< float, N > m, Simd< float, N, 0 >, const float *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::MaskedLoad (Mask128< double, N > m, Simd< double, N, 0 >, const double *HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store (Vec128< T > v, Full128< T >, T *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec128< float > v, Full128< float >, float *HWY_RESTRICT aligned)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec128< double > v, Full128< double >, double *HWY_RESTRICT aligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreU (Vec128< T > v, Full128< T >, T *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec128< float > v, Full128< float >, float *HWY_RESTRICT unaligned)
 
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec128< double > v, Full128< double >, double *HWY_RESTRICT p)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::Store (Vec64< T > v, Full64< T >, T *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec128< float, 2 > v, Full64< float >, float *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec64< double > v, Full64< double >, double *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void hwy::HWY_NAMESPACE::Store (Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT p)
 
HWY_API void hwy::HWY_NAMESPACE::Store (const Vec128< float, 1 > v, Full32< float >, float *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreU (const Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT p)
 
template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::detail::ScalarMaskedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 > d, T *HWY_RESTRICT p)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 >, T *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec128< float, N > v, Mask128< float, N > m, Simd< float, N, 0 >, float *HWY_RESTRICT p)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::BlendedStore (Vec128< double, N > v, Mask128< double, N > m, Simd< double, N, 0 >, double *HWY_RESTRICT p)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::operator+ (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::operator- (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::operator- (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::operator- (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::operator- (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, N/8 > hwy::HWY_NAMESPACE::SumsOf8 (const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::SaturatedAdd (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::SaturatedAdd (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::SaturatedAdd (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::SaturatedAdd (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::SaturatedSub (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::SaturatedSub (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::SaturatedSub (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::SaturatedSub (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::AverageRound (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::AverageRound (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::operator* (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::operator* (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::MulHigh (Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::MulHigh (Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::MulFixedPoint15 (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N, HWY_IF_LE64(int32_t, N) >
HWY_API Vec128< int64_t,(N+1)/2 > hwy::HWY_NAMESPACE::MulEven (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::MulEven (Vec128< int32_t > a, Vec128< int32_t > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::operator* (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::operator* (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<int kBits, size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::RotateRight (const Vec128< uint32_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::RotateRight (const Vec128< uint64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::BroadcastSignBit (const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::BroadcastSignBit (const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::BroadcastSignBit (const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::BroadcastSignBit (const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::Abs (const Vec128< int64_t, N > v)
 
template<int kBits, size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::ShiftRight (const Vec128< int64_t, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ZeroIfNegative (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::IfNegativeThenElse (const Vec128< int8_t, N > v, const Vec128< int8_t, N > yes, const Vec128< int8_t, N > no)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::IfNegativeThenElse (Vec128< T, N > v, Vec128< T, N > yes, Vec128< T, N > no)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< int64_t, N > v, const int bits)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeftSame (const Vec128< T, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< uint16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< uint32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< uint64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (Vec128< uint8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< int16_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< int32_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (const Vec128< int64_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::ShiftRightSame (Vec128< int8_t, N > v, const int bits)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::operator* (Vec128< float, N > a, Vec128< float, N > b)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator* (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::operator* (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator* (const Vec64< double > a, const Vec64< double > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::operator/ (const Vec128< float, N > a, const Vec128< float, N > b)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::operator/ (const Vec128< float, 1 > a, const Vec128< float, 1 > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::operator/ (const Vec128< double, N > a, const Vec128< double, N > b)
 
HWY_API Vec64< double > hwy::HWY_NAMESPACE::operator/ (const Vec64< double > a, const Vec64< double > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec128< float, N > v)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocal (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::AbsDiff (Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::MulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::MulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::NegMulAdd (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > add)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::NegMulAdd (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > add)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::MulSub (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::MulSub (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > sub)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::NegMulSub (const Vec128< float, N > mul, const Vec128< float, N > x, const Vec128< float, N > sub)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::NegMulSub (const Vec128< double, N > mul, const Vec128< double, N > x, const Vec128< double, N > sub)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Sqrt (const Vec128< float, N > v)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::Sqrt (const Vec128< float, 1 > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Sqrt (const Vec128< double, N > v)
 
HWY_API Vec64< double > hwy::HWY_NAMESPACE::Sqrt (const Vec64< double > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec128< float, N > v)
 
HWY_API Vec128< float, 1 > hwy::HWY_NAMESPACE::ApproximateReciprocalSqrt (const Vec128< float, 1 > v)
 
template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128< T, Nhwy::HWY_NAMESPACE::detail::MinU (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::Min (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::Min (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::Min (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::Min (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::Min (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::Min (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::Min (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::Min (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Min (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Min (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_INLINE HWY_MAYBE_UNUSED Vec128< T, Nhwy::HWY_NAMESPACE::detail::MaxU (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::Max (Vec128< uint8_t, N > a, Vec128< uint8_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::Max (Vec128< uint16_t, N > a, Vec128< uint16_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::Max (Vec128< uint32_t, N > a, Vec128< uint32_t, N > b)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::Max (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::Max (Vec128< int8_t, N > a, Vec128< int8_t, N > b)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::Max (Vec128< int16_t, N > a, Vec128< int16_t, N > b)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::Max (Vec128< int32_t, N > a, Vec128< int32_t, N > b)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::Max (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Max (Vec128< float, N > a, Vec128< float, N > b)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Max (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<typename T , size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT aligned)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT aligned)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::Stream (const Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT aligned)
 
template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset (hwy::SizeTag< 4 >, Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< int32_t, N > offset)
 
template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex (hwy::SizeTag< 4 >, Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< int32_t, N > index)
 
template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterOffset (hwy::SizeTag< 8 >, Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< int64_t, N > offset)
 
template<typename T , size_t N>
HWY_INLINE void hwy::HWY_NAMESPACE::detail::ScatterIndex (hwy::SizeTag< 8 >, Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< int64_t, N > index)
 
template<typename T , size_t N, typename Offset >
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec128< T, N > v, Simd< T, N, 0 > d, T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index >
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec128< T, N > v, Simd< T, N, 0 >, T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT base, const Vec128< int32_t, N > offset)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec128< float, N > v, Simd< float, N, 0 >, float *HWY_RESTRICT base, const Vec128< int32_t, N > index)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterOffset (Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT base, const Vec128< int64_t, N > offset)
 
template<size_t N>
HWY_API void hwy::HWY_NAMESPACE::ScatterIndex (Vec128< double, N > v, Simd< double, N, 0 >, double *HWY_RESTRICT base, const Vec128< int64_t, N > index)
 
template<typename T , size_t N, typename Offset >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::GatherOffset (const Simd< T, N, 0 > d, const T *HWY_RESTRICT base, const Vec128< Offset, N > offset)
 
template<typename T , size_t N, typename Index >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::GatherIndex (const Simd< T, N, 0 > d, const T *HWY_RESTRICT base, const Vec128< Index, N > index)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf (Simd< T, N/2, 0 >, Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, N/2 > hwy::HWY_NAMESPACE::LowerHalf (Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeftBytes (Simd< T, N, 0 >, Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeftBytes (const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeftLanes (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftLeftLanes (const Vec128< T, N > v)
 
template<int kBytes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftRightBytes (Simd< T, N, 0 >, Vec128< T, N > v)
 
template<int kLanes, typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ShiftRightLanes (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::UpperHalf (Half< Full128< T > >, Vec128< T > v)
 
HWY_API Vec64< float > hwy::HWY_NAMESPACE::UpperHalf (Full64< float >, const Vec128< float > v)
 
HWY_API Vec64< double > hwy::HWY_NAMESPACE::UpperHalf (Full64< double >, Vec128< double > v)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T,(N+1)/2 > hwy::HWY_NAMESPACE::UpperHalf (Half< Simd< T, N, 0 > >, Vec128< T, N > v)
 
template<size_t kLane, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINEhwy::HWY_NAMESPACE::detail::ExtractLane (const Vec128< T, N > v)
 
template<size_t kLane, size_t N>
HWY_INLINE float hwy::HWY_NAMESPACE::detail::ExtractLane (const Vec128< float, N > v)
 
template<size_t kLane>
HWY_INLINE double hwy::HWY_NAMESPACE::detail::ExtractLane (const Vec128< double, 1 > v)
 
template<size_t kLane>
HWY_INLINE double hwy::HWY_NAMESPACE::detail::ExtractLane (const Vec128< double > v)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec128< T, 1 > v, size_t i)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec128< T, 2 > v, size_t i)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec128< T, 4 > v, size_t i)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec128< T, 8 > v, size_t i)
 
template<typename T >
HWY_APIhwy::HWY_NAMESPACE::ExtractLane (const Vec128< T, 16 > v, size_t i)
 
template<size_t kLane, typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::detail::InsertLane (const Vec128< T, N > v, T t)
 
template<size_t kLane, size_t N>
HWY_INLINE Vec128< float, Nhwy::HWY_NAMESPACE::detail::InsertLane (const Vec128< float, N > v, float t)
 
template<size_t kLane>
HWY_INLINE Vec128< double, 1 > hwy::HWY_NAMESPACE::detail::InsertLane (const Vec128< double, 1 > v, double t)
 
template<size_t kLane>
HWY_INLINE Vec128< double > hwy::HWY_NAMESPACE::detail::InsertLane (const Vec128< double > v, double t)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::InsertLane (const Vec128< T, 1 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::InsertLane (const Vec128< T, 2 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 4 > hwy::HWY_NAMESPACE::InsertLane (const Vec128< T, 4 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 8 > hwy::HWY_NAMESPACE::InsertLane (const Vec128< T, 8 > v, size_t i, T t)
 
template<typename T >
HWY_API Vec128< T, 16 > hwy::HWY_NAMESPACE::InsertLane (const Vec128< T, 16 > v, size_t i, T t)
 
template<int kBytes, typename T , class V = Vec128<T>>
HWY_APIhwy::HWY_NAMESPACE::CombineShiftRightBytes (Full128< T >, V hi, V lo)
 
template<int kBytes, typename T , size_t N, HWY_IF_LE64(T, N) , class V = Vec128<T, N>>
HWY_APIhwy::HWY_NAMESPACE::CombineShiftRightBytes (Simd< T, N, 0 > d, V hi, V lo)
 
template<int kLane, size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< uint16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< uint32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< uint64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< int16_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< int32_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< int64_t, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< float, N > v)
 
template<int kLane, size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::Broadcast (const Vec128< double, N > v)
 
template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Indices128< T, Nhwy::HWY_NAMESPACE::IndicesFromVec (Simd< T, N, 0 > d, Vec128< TI, N > vec)
 
template<typename T , size_t N, typename TI , HWY_IF_LE128(T, N) >
HWY_API Indices128< T, Nhwy::HWY_NAMESPACE::SetTableIndices (Simd< T, N, 0 > d, const TI *idx)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::TableLookupLanes (Vec128< T, N > v, Indices128< T, N > idx)
 
template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::TableLookupLanes (Vec128< float, N > v, Indices128< float, N > idx)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::TableLookupLanes (Vec128< T, 1 > v, Indices128< T, 1 >)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::TableLookupLanes (Vec128< T > v, Indices128< T > idx)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::TableLookupLanes (Vec128< double > v, Indices128< double > idx)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ReverseBlocks (Full128< T >, const Vec128< T > v)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse (Simd< T, 1, 0 >, const Vec128< T, 1 > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::Reverse (Full64< T >, const Vec128< T, 2 > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse (Full128< T >, const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Reverse (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Reverse2 (Simd< T, 1, 0 >, const Vec128< T, 1 > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Reverse2 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Reverse4 (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Reverse4 (Full128< T > d, const Vec128< T > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Reverse8 (Simd< T, N, 0 > d, const Vec128< T, N > v)
 
template<size_t N, HWY_IF_LE128(uint8_t, N) >
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< uint8_t, N > a, const Vec128< uint8_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint16_t, N) >
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< uint16_t, N > a, const Vec128< uint16_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint32_t, N) >
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< uint32_t, N > a, const Vec128< uint32_t, N > b)
 
template<size_t N, HWY_IF_LE128(uint64_t, N) >
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< uint64_t, N > a, const Vec128< uint64_t, N > b)
 
template<size_t N, HWY_IF_LE128(int8_t, N) >
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< int8_t, N > a, const Vec128< int8_t, N > b)
 
template<size_t N, HWY_IF_LE128(int16_t, N) >
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< int16_t, N > a, const Vec128< int16_t, N > b)
 
template<size_t N, HWY_IF_LE128(int32_t, N) >
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< int32_t, N > a, const Vec128< int32_t, N > b)
 
template<size_t N, HWY_IF_LE128(int64_t, N) >
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< int64_t, N > a, const Vec128< int64_t, N > b)
 
template<size_t N, HWY_IF_LE64(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::InterleaveLower (const Vec128< double, N > a, const Vec128< double, N > b)
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::InterleaveLower (DFromV< V >, V a, V b)
 
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< uint8_t > a, const Vec128< uint8_t > b)
 
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< uint16_t > a, const Vec128< uint16_t > b)
 
HWY_API Vec128< uint32_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< uint32_t > a, const Vec128< uint32_t > b)
 
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< uint64_t > a, const Vec128< uint64_t > b)
 
HWY_API Vec128< int8_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< int8_t > a, const Vec128< int8_t > b)
 
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< int16_t > a, const Vec128< int16_t > b)
 
HWY_API Vec128< int32_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< int32_t > a, const Vec128< int32_t > b)
 
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec128< int64_t > a, Vec128< int64_t > b)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::detail::InterleaveUpper (Vec128< float > a, Vec128< float > b)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::detail::InterleaveUpper (const Vec128< double > a, const Vec128< double > b)
 
template<typename T , class V = Vec128<T>>
HWY_APIhwy::HWY_NAMESPACE::InterleaveUpper (Full128< T >, V a, V b)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) , class V = Vec128<T, N>>
HWY_APIhwy::HWY_NAMESPACE::InterleaveUpper (Simd< T, N, 0 >, V a, V b)
 
template<class V , class DW = RepartitionToWide<DFromV<V>>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower (V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipLower (DW dw, V a, V b)
 
template<class V , class D = DFromV<V>, class DW = RepartitionToWide<D>>
HWY_API VFromD< DW > hwy::HWY_NAMESPACE::ZipUpper (DW dw, V a, V b)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Combine (Simd< T, N, 0 > d, Vec128< T, N/2 > hi, Vec128< T, N/2 > lo)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::ZeroExtendVector (hwy::NonFloatTag, Full128< T >, Vec64< T > lo)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::ZeroExtendVector (hwy::FloatTag, Full128< T > d, Vec64< T > lo)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ZeroExtendVector (Full128< T > d, Vec64< T > lo)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ZeroExtendVector (Simd< T, N, 0 > d, Vec128< T, N/2 > lo)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerLower (Full128< T >, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperUpper (Full128< T >, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatLowerUpper (Full128< T > d, const Vec128< T > hi, const Vec128< T > lo)
 
template<typename T >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatUpperLower (Full128< T > d, Vec128< T > hi, Vec128< T > lo)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatUpperLower (Full128< float > d, Vec128< float > hi, Vec128< float > lo)
 
HWY_API Vec128< double > hwy::HWY_NAMESPACE::ConcatUpperLower (Full128< double >, Vec128< double > hi, Vec128< double > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ConcatLowerLower (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ConcatUpperUpper (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_GE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ConcatLowerUpper (const Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , size_t N, HWY_IF_LE64(T, N) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::ConcatUpperLower (Simd< T, N, 0 > d, Vec128< T, N > hi, Vec128< T, N > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatOdd (Full128< T >, Vec128< T > hi, Vec128< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatOdd (Simd< T, 8, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatOdd (Simd< T, 4, 0 > d, Vec32< T > hi, Vec32< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatOdd (Simd< T, 4, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<size_t N>
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatOdd (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatOdd (Simd< T, 2, 0 > d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::ConcatEven (Full128< T >, Vec128< T > hi, Vec128< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatEven (Simd< T, 8, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API Vec32< T > hwy::HWY_NAMESPACE::ConcatEven (Simd< T, 4, 0 > d, Vec32< T > hi, Vec32< T > lo)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API Vec64< T > hwy::HWY_NAMESPACE::ConcatEven (Simd< T, 4, 0 > d, Vec64< T > hi, Vec64< T > lo)
 
HWY_API Vec128< float > hwy::HWY_NAMESPACE::ConcatEven (Full128< float >, Vec128< float > hi, Vec128< float > lo)
 
template<typename T >
HWY_API Vec128< T, 2 > hwy::HWY_NAMESPACE::ConcatEven (Simd< T, 2, 0 > d, Vec128< T, 2 > hi, Vec128< T, 2 > lo)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::DupEven (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::DupEven (Vec128< float, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 4) >
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::DupOdd (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::DupOdd (Vec128< float, N > v)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) >
HWY_INLINE Vec128< T, Nhwy::HWY_NAMESPACE::OddEven (const Vec128< T, N > a, const Vec128< T, N > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::OddEven (const Vec128< float, N > a, const Vec128< float, N > b)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::OddEvenBlocks (Vec128< T, N >, Vec128< T, N > even)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::SwapAdjacentBlocks (Vec128< T, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec128< uint16_t, N > v, Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint16_t, 1 > hwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec128< uint16_t, 1 > v, Vec128< uint16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec128< uint32_t, N > v, Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint32_t, 1 > hwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec128< uint32_t, 1 > v, const Vec128< uint32_t, 1 > bits)
 
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec128< uint64_t > v, Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::detail::Shl (hwy::UnsignedTag, Vec64< uint64_t > v, Vec64< uint64_t > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::detail::Shl (hwy::SignedTag, Vec128< T, N > v, Vec128< T, N > bits)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::operator<< (Vec128< T, N > v, const Vec128< T, N > bits)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::operator>> (const Vec128< uint16_t, N > in, const Vec128< uint16_t, N > bits)
 
HWY_API Vec128< uint16_t, 1 > hwy::HWY_NAMESPACE::operator>> (const Vec128< uint16_t, 1 > in, const Vec128< uint16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::operator>> (const Vec128< uint32_t, N > in, const Vec128< uint32_t, N > bits)
 
HWY_API Vec128< uint32_t, 1 > hwy::HWY_NAMESPACE::operator>> (const Vec128< uint32_t, 1 > in, const Vec128< uint32_t, 1 > bits)
 
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::operator>> (const Vec128< uint64_t > v, const Vec128< uint64_t > bits)
 
HWY_API Vec64< uint64_t > hwy::HWY_NAMESPACE::operator>> (const Vec64< uint64_t > v, const Vec64< uint64_t > bits)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::operator>> (const Vec128< int16_t, N > v, const Vec128< int16_t, N > bits)
 
HWY_API Vec128< int16_t, 1 > hwy::HWY_NAMESPACE::operator>> (const Vec128< int16_t, 1 > v, const Vec128< int16_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::operator>> (const Vec128< int32_t, N > v, const Vec128< int32_t, N > bits)
 
HWY_API Vec128< int32_t, 1 > hwy::HWY_NAMESPACE::operator>> (const Vec128< int32_t, 1 > v, const Vec128< int32_t, 1 > bits)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::operator>> (const Vec128< int64_t, N > v, const Vec128< int64_t, N > bits)
 
HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulEven (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
HWY_INLINE Vec128< uint64_t > hwy::HWY_NAMESPACE::MulOdd (Vec128< uint64_t > a, Vec128< uint64_t > b)
 
template<class V , size_t N, class D16 = Simd<bfloat16_t, 2 * N, 0>>
HWY_APIhwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Simd< float, N, 0 > df32, VFromD< D16 > a, VFromD< D16 > b, const V sum0, V &sum1)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ReorderWidenMulAccumulate (Simd< int32_t, N, 0 > d32, Vec128< int16_t, 2 *N > a, Vec128< int16_t, 2 *N > b, const Vec128< int32_t, N > sum0, Vec128< int32_t, N > &sum1)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::RearrangeToOddPlusEven (const Vec128< int32_t, N > sum0, const Vec128< int32_t, N >)
 
template<class VW >
HWY_API VW hwy::HWY_NAMESPACE::RearrangeToOddPlusEven (const VW sum0, const VW sum1)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< uint16_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< uint32_t, N, 0 >, const Vec128< uint16_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint64_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< uint64_t, N, 0 >, const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< uint32_t, N, 0 >, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int16_t, N, 0 > di, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int32_t, N, 0 > di, const Vec128< uint16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int32_t, N, 0 > di, const Vec128< uint8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int16_t, N, 0 >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int32_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int64_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int64_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< int32_t, N, 0 >, const Vec128< int8_t, N > v)
 
template<size_t N>
HWY_INLINE_F16 Vec128< float, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< float, N, 0 > df32, const Vec128< float16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< float, N, 0 > df32, const Vec128< bfloat16_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< double, N, 0 >, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::PromoteTo (Simd< double, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< uint16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< int16_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< uint8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< int8_t, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< int8_t, N, 0 >, const Vec128< int16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float16_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< float16_t, N, 0 > df16, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< bfloat16_t, N, 0 > dbf16, const Vec128< float, N > v)
 
template<size_t N>
HWY_API Vec128< bfloat16_t, 2 *Nhwy::HWY_NAMESPACE::ReorderDemote2To (Simd< bfloat16_t, 2 *N, 0 > dbf16, Vec128< float, N > a, Vec128< float, N > b)
 
HWY_API Vec128< int16_t, 2 > hwy::HWY_NAMESPACE::ReorderDemote2To (Simd< int16_t, 2, 0 > dn, Vec128< int32_t, 1 > a, Vec128< int32_t, 1 > b)
 
HWY_API Vec128< int16_t, 4 > hwy::HWY_NAMESPACE::ReorderDemote2To (Simd< int16_t, 4, 0 > dn, Vec128< int32_t, 2 > a, Vec128< int32_t, 2 > b)
 
HWY_API Vec128< int16_t > hwy::HWY_NAMESPACE::ReorderDemote2To (Full128< int16_t > d16, Vec128< int32_t > a, Vec128< int32_t > b)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< float, N, 0 >, Vec128< double, N > from)
 
template<size_t N>
HWY_INLINE auto hwy::HWY_NAMESPACE::detail::ClampF64ToI32Max (Simd< double, N, 0 > d, decltype(Zero(d)) v) -> decltype(Zero(d))
 
template<class DI , class DF = RebindToFloat<DI>>
HWY_INLINE auto hwy::HWY_NAMESPACE::detail::FixConversionOverflow (DI di, VFromD< DF > original, decltype(Zero(di).raw) converted_raw) -> VFromD< DI >
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::DemoteTo (Simd< int32_t, N, 0 >, Vec128< double, N > from)
 
template<size_t N>
HWY_API Vec128< uint8_t, Nhwy::HWY_NAMESPACE::U8FromU32 (const Vec128< uint32_t, N > v)
 
template<typename From , typename To , hwy::EnableIf<(sizeof(To)< sizeof(From))> * = nullptr>
HWY_API Vec128< To, 1 > hwy::HWY_NAMESPACE::TruncateTo (Simd< To, 1, 0 >, const Vec128< From, 1 > v)
 
HWY_API Vec128< uint8_t, 2 > hwy::HWY_NAMESPACE::TruncateTo (Simd< uint8_t, 2, 0 >, const Vec128< uint64_t, 2 > v)
 
HWY_API Vec32< uint16_t > hwy::HWY_NAMESPACE::TruncateTo (Simd< uint16_t, 2, 0 >, const Vec128< uint64_t, 2 > v)
 
HWY_API Vec64< uint32_t > hwy::HWY_NAMESPACE::TruncateTo (Simd< uint32_t, 2, 0 >, const Vec128< uint64_t, 2 > v)
 
template<size_t N, hwy::EnableIf< N > = 2>
N hwy::HWY_NAMESPACE::TruncateTo (Simd< uint8_t, N, 0 >, const Vec128< uint32_t, N > v)
 
template<size_t N, hwy::EnableIf< N > = 2>
N hwy::HWY_NAMESPACE::TruncateTo (Simd< uint16_t, N, 0 >, const Vec128< uint32_t, N > v)
 
template<size_t N, hwy::EnableIf< N > = 2>
N hwy::HWY_NAMESPACE::TruncateTo (Simd< uint8_t, N, 0 >, const Vec128< uint16_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::ConvertTo (Simd< float, N, 0 >, const Vec128< int32_t, N > v)
 
template<size_t N>
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::ConvertTo (HWY_MAYBE_UNUSED Simd< float, N, 0 > df, const Vec128< uint32_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::ConvertTo (Simd< double, N, 0 > dd, const Vec128< int64_t, N > v)
 
template<size_t N>
HWY_API Vec128< double, Nhwy::HWY_NAMESPACE::ConvertTo (HWY_MAYBE_UNUSED Simd< double, N, 0 > dd, const Vec128< uint64_t, N > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::ConvertTo (Simd< int32_t, N, 0 >, const Vec128< float, N > v)
 
HWY_API Vec128< int64_t > hwy::HWY_NAMESPACE::ConvertTo (Full128< int64_t > di, const Vec128< double > v)
 
HWY_API Vec64< int64_t > hwy::HWY_NAMESPACE::ConvertTo (Full64< int64_t > di, const Vec64< double > v)
 
template<size_t N>
HWY_API Vec128< int32_t, Nhwy::HWY_NAMESPACE::NearestInt (const Vec128< float, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Round (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_INLINE Mask128< T, Nhwy::HWY_NAMESPACE::detail::UseInt (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Trunc (Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Ceil (const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::Floor (const Vec128< T, N > v)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::IsNaN (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::IsNaN (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::IsInf (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::IsInf (const Vec128< double, N > v)
 
template<size_t N>
HWY_API Mask128< float, Nhwy::HWY_NAMESPACE::IsFinite (const Vec128< float, N > v)
 
template<size_t N>
HWY_API Mask128< double, Nhwy::HWY_NAMESPACE::IsFinite (const Vec128< double, N > v)
 
template<typename T , size_t N, HWY_IF_LE128(T, N) >
HWY_API Mask128< T, Nhwy::HWY_NAMESPACE::LoadMaskBits (Simd< T, N, 0 > d, const uint8_t *HWY_RESTRICT bits)
 
template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::StoreMaskBits (Simd< T, N, 0 >, const Mask128< T, N > mask, uint8_t *bits)
 
template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::CountTrue (Simd< T, N, 0 >, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API size_t hwy::HWY_NAMESPACE::FindKnownFirstTrue (const Simd< T, N, 0 > d, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API intptr_t hwy::HWY_NAMESPACE::FindFirstTrue (const Simd< T, N, 0 > d, const Mask128< T, N > mask)
 
template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllFalse (const Simd< T, N, 0 > d, const Mask128< T, N > m)
 
template<typename T , size_t N>
HWY_API bool hwy::HWY_NAMESPACE::AllTrue (Simd< T, N, 0 >, const Mask128< T, N > mask)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::Compress (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<size_t N, HWY_IF_GE64(float, N) >
HWY_API Vec128< float, Nhwy::HWY_NAMESPACE::Compress (Vec128< float, N > v, Mask128< float, N > mask)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::Compress (Vec128< T > v, Mask128< T > mask)
 
template<typename T >
HWY_API Vec128< T, 1 > hwy::HWY_NAMESPACE::CompressNot (Vec128< T, 1 > v, Mask128< T, 1 >)
 
template<typename T , HWY_IF_LANE_SIZE(T, 8) >
HWY_API Vec128< T > hwy::HWY_NAMESPACE::CompressNot (Vec128< T > v, Mask128< T > mask)
 
HWY_API Vec128< uint64_t > hwy::HWY_NAMESPACE::CompressBlocksNot (Vec128< uint64_t > v, Mask128< uint64_t >)
 
template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec128< T, N > v, const Mask128< T, N > mask, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE128(float, N) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec128< float, N > v, Mask128< float, N > mask, Simd< float, N, 0 >, float *HWY_RESTRICT unaligned)
 
template<size_t N, HWY_IF_LE128(double, N) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressStore (Vec128< double, N > v, Mask128< double, N > mask, Simd< double, N, 0 >, double *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBlendedStore (Vec128< T, N > v, Mask128< T, N > m, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_NOT_LANE_SIZE(T, 1) >
HWY_API size_t hwy::HWY_NAMESPACE::CompressBitsStore (Vec128< T, N > v, const uint8_t *HWY_RESTRICT bits, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 1 > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< sizeof(T)>, const Vec128< T, 1 > v)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T, 2 > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 4 >, const Vec128< T, 2 > v10)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 4 >, const Vec128< T > v3210)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
template<typename T >
HWY_INLINE Vec128< T > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 8 >, const Vec128< T > v10)
 
template<size_t N, HWY_IF_GE32(uint16_t, N) >
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 2 >, Vec128< uint16_t, N > v)
 
template<size_t N, HWY_IF_GE32(int16_t, N) >
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 2 >, Vec128< int16_t, N > v)
 
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 1 >, Vec64< uint8_t > v)
 
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 1 >, Vec128< uint8_t > v)
 
template<size_t N, HWY_IF_GE64(int8_t, N) >
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::detail::SumOfLanes (hwy::SizeTag< 1 >, const Vec128< int8_t, N > v)
 
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 2 >, Vec128< uint16_t > v)
 
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 1 >, Vec64< uint8_t > v)
 
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 1 > tag, Vec128< uint8_t > v)
 
HWY_API Vec128< uint16_t > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 2 > tag, Vec128< uint16_t > v)
 
HWY_API Vec64< uint8_t > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 1 > tag, Vec64< uint8_t > v)
 
HWY_API Vec128< uint8_t > hwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 1 > tag, Vec128< uint8_t > v)
 
template<size_t N, HWY_IF_GE64(int8_t, N) >
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 1 > tag, const Vec128< int8_t, N > v)
 
template<size_t N, HWY_IF_GE64(int8_t, N) >
HWY_API Vec128< int8_t, Nhwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 1 > tag, const Vec128< int8_t, N > v)
 
template<size_t N, HWY_IF_GE32(uint16_t, N) >
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 2 >, Vec128< uint16_t, N > v)
 
template<size_t N, HWY_IF_GE32(int16_t, N) >
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::detail::MinOfLanes (hwy::SizeTag< 2 >, Vec128< int16_t, N > v)
 
template<size_t N, HWY_IF_GE32(uint16_t, N) >
HWY_API Vec128< uint16_t, Nhwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 2 >, Vec128< uint16_t, N > v)
 
template<size_t N, HWY_IF_GE32(int16_t, N) >
HWY_API Vec128< int16_t, Nhwy::HWY_NAMESPACE::detail::MaxOfLanes (hwy::SizeTag< 2 >, Vec128< int16_t, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::SumOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::MinOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<typename T , size_t N>
HWY_API Vec128< T, Nhwy::HWY_NAMESPACE::MaxOfLanes (Simd< T, N, 0 >, const Vec128< T, N > v)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Lt128Vec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Eq128Vec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Ne128Vec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Lt128UpperVec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Eq128UpperVec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_INLINEhwy::HWY_NAMESPACE::detail::Ne128UpperVec (const D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Lt128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Eq128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_API MFromD< D > hwy::HWY_NAMESPACE::Ne128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIhwy::HWY_NAMESPACE::Min128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIhwy::HWY_NAMESPACE::Max128 (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIhwy::HWY_NAMESPACE::Min128Upper (D d, const V a, const V b)
 
template<class D , class V = VFromD<D>>
HWY_APIhwy::HWY_NAMESPACE::Max128Upper (D d, const V a, const V b)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_COMPILER_HAS_MASK_INTRINSICS

#define HWY_COMPILER_HAS_MASK_INTRINSICS   0

◆ HWY_INLINE_F16

#define HWY_INLINE_F16   HWY_INLINE

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

◆ HWY_SAFE_PARTIAL_LOAD_STORE

#define HWY_SAFE_PARTIAL_LOAD_STORE   0

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )