generic_ops-inl.h File Reference
`#include "hwy/base.h"`

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
#define | HWY_NATIVE_I64MULLO
#define | HWY_NATIVE_COMPRESS8

## 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_API V | hwy::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 , 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<class V , typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API void | hwy::HWY_NAMESPACE::StoreInterleaved3 (const V part0, const V part1, const V part2, Full64< T > d, T *HWY_RESTRICT unaligned)
template<typename T , HWY_IF_LANE_SIZE(T, 2) >
HWY_API void | hwy::HWY_NAMESPACE::StoreInterleaved3 (const Vec64< T > part0, const Vec64< T > part1, const Vec64< T > part2, Full64< T > dh, 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_API V | hwy::HWY_NAMESPACE::PopulationCount (V v)
template<typename V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 2) >
HWY_API V | hwy::HWY_NAMESPACE::PopulationCount (V v)
template<class V , class D = DFromV<V>, HWY_IF_LANE_SIZE_D(D, 8) , HWY_IF_LT128_D(D) , HWY_IF_FLOAT_D(D) >
HWY_API V | hwy::HWY_NAMESPACE::operator* (V x, V y)
template<class V , class D64 = DFromV<V>, typename T = LaneType<V>, HWY_IF_LANE_SIZE(T, 8) , HWY_IF_UNSIGNED(T) , HWY_IF_GE128_D(D64) >
HWY_API V | hwy::HWY_NAMESPACE::operator* (V x, V y)
template<class V , class D , typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBitsStore (V v, const uint8_t *HWY_RESTRICT bits, D d, T *unaligned)
template<class V , class M , class D , typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API size_t | hwy::HWY_NAMESPACE::CompressStore (V v, M mask, D d, T *HWY_RESTRICT unaligned)
template<class V , class M , class D , typename T , HWY_IF_LANE_SIZE(T, 1) >
HWY_API size_t | hwy::HWY_NAMESPACE::CompressBlendedStore (V v, M mask, D d, T *HWY_RESTRICT unaligned)
template<class V , class M , typename T = TFromV<V>, HWY_IF_LANE_SIZE(T, 1) >
HWY_API V | hwy::HWY_NAMESPACE::Compress (V v, const M mask)
template<class V , typename T = TFromV<V>, HWY_IF_LANE_SIZE(T, 1) >
HWY_API V | hwy::HWY_NAMESPACE::CompressBits (V v, const uint8_t *HWY_RESTRICT bits)
template<class V , class M , typename T = TFromV<V>, HWY_IF_LANE_SIZE(T, 1) >
HWY_API V | hwy::HWY_NAMESPACE::CompressNot (V v, M mask)
| 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_COMPRESS8

#define HWY_NATIVE_COMPRESS8

## HWY_NATIVE_I64MULLO

#define HWY_NATIVE_I64MULLO

## 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 | ( |  | ) |