Grok 12.0.1
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T > Struct Template Reference

#include <unroller-inl.h>

Public Types

using LargerT = SignedFromSize<kMaxTSize>
 
using LargerD = hn::CappedTag<LargerT, MaxUnitLanes()>
 
using IT = hn::Rebind<IN_T, LargerD>
 
using OT = hn::Rebind<OUT_T, LargerD>
 
using Y_VEC = hn::Vec<OT>
 
using X_VEC = hn::Vec<IT>
 

Public Member Functions

DERIVED * me ()
 
Y_VEC Func (const ptrdiff_t idx, const X_VEC x, const Y_VEC y)
 
X_VEC X0Init ()
 
X_VEC X0InitImpl ()
 
Y_VEC YInit ()
 
Y_VEC YInitImpl ()
 
X_VEC Load (const ptrdiff_t idx, IN_T *from)
 
X_VEC LoadImpl (const ptrdiff_t idx, IN_T *from)
 
X_VEC MaskLoad (const ptrdiff_t idx, IN_T *from, const ptrdiff_t places)
 
X_VEC MaskLoadImpl (const ptrdiff_t idx, IN_T *from, const ptrdiff_t places)
 
bool StoreAndShortCircuit (const ptrdiff_t idx, OUT_T *to, const Y_VEC x)
 
bool StoreAndShortCircuitImpl (const ptrdiff_t idx, OUT_T *to, const Y_VEC x)
 
ptrdiff_t MaskStore (const ptrdiff_t idx, OUT_T *to, const Y_VEC x, ptrdiff_t const places)
 
ptrdiff_t MaskStoreImpl (const ptrdiff_t idx, OUT_T *to, const Y_VEC x, const ptrdiff_t places)
 
ptrdiff_t Reduce (const Y_VEC x, OUT_T *to)
 
ptrdiff_t ReduceImpl (const Y_VEC x, OUT_T *to)
 
void Reduce (const Y_VEC x0, const Y_VEC x1, const Y_VEC x2, Y_VEC *y)
 
void ReduceImpl (const Y_VEC x0, const Y_VEC x1, const Y_VEC x2, Y_VEC *y)
 

Static Public Member Functions

static constexpr size_t MaxUnitLanes ()
 
static size_t ActualLanes ()
 

Public Attributes

IT d_in
 
OT d_out
 

Static Public Attributes

static constexpr size_t kMaxTSize = HWY_MAX(sizeof(IN_T), sizeof(OUT_T))
 

Member Typedef Documentation

◆ IT

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::IT = hn::Rebind<IN_T, LargerD>

◆ LargerD

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::LargerD = hn::CappedTag<LargerT, MaxUnitLanes()>

◆ LargerT

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::LargerT = SignedFromSize<kMaxTSize>

◆ OT

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::OT = hn::Rebind<OUT_T, LargerD>

◆ X_VEC

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::X_VEC = hn::Vec<IT>

◆ Y_VEC

template<class DERIVED , typename IN_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::Y_VEC = hn::Vec<OT>

Member Function Documentation

◆ ActualLanes()

template<class DERIVED , typename IN_T , typename OUT_T >
static size_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::ActualLanes ( )
inlinestatic

◆ Func()

template<class DERIVED , typename IN_T , typename OUT_T >
Y_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::Func ( const ptrdiff_t idx,
const X_VEC x,
const Y_VEC y )
inline

◆ Load()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::Load ( const ptrdiff_t idx,
IN_T * from )
inline

◆ LoadImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::LoadImpl ( const ptrdiff_t idx,
IN_T * from )
inline

◆ MaskLoad()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::MaskLoad ( const ptrdiff_t idx,
IN_T * from,
const ptrdiff_t places )
inline

◆ MaskLoadImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::MaskLoadImpl ( const ptrdiff_t idx,
IN_T * from,
const ptrdiff_t places )
inline

◆ MaskStore()

template<class DERIVED , typename IN_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::MaskStore ( const ptrdiff_t idx,
OUT_T * to,
const Y_VEC x,
ptrdiff_t const places )
inline

◆ MaskStoreImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::MaskStoreImpl ( const ptrdiff_t idx,
OUT_T * to,
const Y_VEC x,
const ptrdiff_t places )
inline

◆ MaxUnitLanes()

template<class DERIVED , typename IN_T , typename OUT_T >
static constexpr size_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::MaxUnitLanes ( )
inlinestaticconstexpr

References HWY_MAX_LANES_D.

◆ me()

template<class DERIVED , typename IN_T , typename OUT_T >
DERIVED * hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::me ( )
inline

◆ Reduce() [1/2]

template<class DERIVED , typename IN_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::Reduce ( const Y_VEC x,
OUT_T * to )
inline

◆ Reduce() [2/2]

template<class DERIVED , typename IN_T , typename OUT_T >
void hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::Reduce ( const Y_VEC x0,
const Y_VEC x1,
const Y_VEC x2,
Y_VEC * y )
inline

◆ ReduceImpl() [1/2]

template<class DERIVED , typename IN_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::ReduceImpl ( const Y_VEC x,
OUT_T * to )
inline

◆ ReduceImpl() [2/2]

template<class DERIVED , typename IN_T , typename OUT_T >
void hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::ReduceImpl ( const Y_VEC x0,
const Y_VEC x1,
const Y_VEC x2,
Y_VEC * y )
inline

◆ StoreAndShortCircuit()

template<class DERIVED , typename IN_T , typename OUT_T >
bool hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::StoreAndShortCircuit ( const ptrdiff_t idx,
OUT_T * to,
const Y_VEC x )
inline

◆ StoreAndShortCircuitImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
bool hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::StoreAndShortCircuitImpl ( const ptrdiff_t idx,
OUT_T * to,
const Y_VEC x )
inline

◆ X0Init()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::X0Init ( )
inline

◆ X0InitImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
X_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::X0InitImpl ( )
inline

◆ YInit()

template<class DERIVED , typename IN_T , typename OUT_T >
Y_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::YInit ( )
inline

◆ YInitImpl()

template<class DERIVED , typename IN_T , typename OUT_T >
Y_VEC hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::YInitImpl ( )
inline

Member Data Documentation

◆ d_in

template<class DERIVED , typename IN_T , typename OUT_T >
IT hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::d_in

◆ d_out

template<class DERIVED , typename IN_T , typename OUT_T >
OT hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::d_out

◆ kMaxTSize

template<class DERIVED , typename IN_T , typename OUT_T >
constexpr size_t hwy::HWY_NAMESPACE::UnrollerUnit< DERIVED, IN_T, OUT_T >::kMaxTSize = HWY_MAX(sizeof(IN_T), sizeof(OUT_T))
staticconstexpr

The documentation for this struct was generated from the following file: