Grok 10.0.3
Namespaces | Macros | Typedefs | Functions
generic_ops-inl.h File Reference

Go to the source code of this file.

Namespaces

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

Macros

#define HWY_NATIVE_LOAD_STORE_INTERLEAVED
 
#define HWY_NATIVE_AES
 
#define HWY_NATIVE_POPCNT
 
#define HWY_MIN_POW2_FOR_128   1
 

Typedefs

template<class V >
using hwy::HWY_NAMESPACE::LaneType = decltype(GetLane(V()))
 
template<class D >
using hwy::HWY_NAMESPACE::Vec = decltype(Zero(D()))
 
template<class D >
using hwy::HWY_NAMESPACE::Mask = decltype(MaskFromVec(Zero(D())))
 

Functions

 HWY_BEFORE_NAMESPACE ()
 
template<class V >
HWY_APIhwy::HWY_NAMESPACE::Clamp (const V v, const V lo, const V hi)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::SignBit (D d)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::NaN (D d)
 
template<class D >
HWY_API Vec< D > hwy::HWY_NAMESPACE::Inf (D d)
 
template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeFillN (const size_t num, const T value, D d, T *HWY_RESTRICT to)
 
template<class D , typename T = TFromD<D>>
HWY_API void hwy::HWY_NAMESPACE::SafeCopyN (const size_t num, D d, const T *HWY_RESTRICT from, T *HWY_RESTRICT to)
 
template<typename T , size_t N, class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1)
 
template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved2 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1)
 
template<typename T , size_t N, class V , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &A, V &B, V &C)
 
template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LANES_PER_BLOCK(T, N, 8) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved3 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2)
 
template<typename T , size_t N, class V , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::detail::LoadTransposedBlocks4 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &A, V &B, V &C, V &D)
 
template<typename T , size_t N, class V , HWY_IF_LANES_PER_BLOCK(T, N, 16) >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 (Simd< T, N, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2, V &v3)
 
template<typename T , class V >
HWY_API void hwy::HWY_NAMESPACE::LoadInterleaved4 (Simd< T, 1, 0 > d, const T *HWY_RESTRICT unaligned, V &v0, V &v1, V &v2, V &v3)
 
template<typename T , size_t N, class V , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks2 (const V A, const V B, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 (const V v0, const V v1, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 (const Vec64< T > part0, const Vec64< T > part1, Full64< T >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved2 (const Vec128< T, N > v0, const Vec128< T, N > v1, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks3 (const V A, const V B, const V C, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_LANE_SIZE(T, 1) , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const V v0, const V v1, const V v2, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec64< T > part0, const Vec64< T > part1, const Vec64< T > part2, Full64< T > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_LANE_SIZE(T, 1) , HWY_IF_LE32(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec128< T, N > part0, const Vec128< T, N > part1, const Vec128< T, N > part2, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec128< T, 2 > part0, const Vec128< T, 2 > part1, const Vec128< T, 2 > part2, Simd< T, 2, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename T >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec128< T, 1 > v0, const Vec128< T, 1 > v1, const Vec128< T, 1 > v2, Simd< T, 1, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_LE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::detail::StoreTransposedBlocks4 (const V A, const V B, const V C, const V D, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, class V , HWY_IF_NOT_LANE_SIZE(T, 8) , HWY_IF_GE128(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 (const V v0, const V v1, const V v2, const V v3, Simd< T, N, 0 > d, T *HWY_RESTRICT unaligned)
 
template<typename T , HWY_IF_NOT_LANE_SIZE(T, 8) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 (const Vec64< T > part0, const Vec64< T > part1, const Vec64< T > part2, const Vec64< T > part3, Full64< T >, T *HWY_RESTRICT unaligned)
 
template<typename T , size_t N, HWY_IF_STORE_INT(T, N) >
HWY_API void hwy::HWY_NAMESPACE::StoreInterleaved4 (const Vec128< T, N > v0, const Vec128< T, N > v1, const Vec128< T, N > v2, const Vec128< T, N > v3, Simd< T, N, 0 >, T *HWY_RESTRICT unaligned)
 
template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 1) , HWY_IF_GE128_D(D) , HWY_IF_POW2_GE(D, HWY_MIN_POW2_FOR_128) >
HWY_APIhwy::HWY_NAMESPACE::PopulationCount (V v)
 
template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 2) >
HWY_APIhwy::HWY_NAMESPACE::PopulationCount (V v)
 
 HWY_AFTER_NAMESPACE ()
 

Macro Definition Documentation

◆ HWY_MIN_POW2_FOR_128

#define HWY_MIN_POW2_FOR_128   1

◆ HWY_NATIVE_AES

#define HWY_NATIVE_AES

◆ HWY_NATIVE_LOAD_STORE_INTERLEAVED

#define HWY_NATIVE_LOAD_STORE_INTERLEAVED

◆ HWY_NATIVE_POPCNT

#define HWY_NATIVE_POPCNT

Function Documentation

◆ HWY_AFTER_NAMESPACE()

HWY_AFTER_NAMESPACE ( )

◆ HWY_BEFORE_NAMESPACE()

HWY_BEFORE_NAMESPACE ( )