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::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T > Struct Template Reference

#include <unroller-inl.h>

Public Types

using LargerT = SignedFromSize<kMaxTSize>
 
using LargerD = hn::CappedTag<LargerT, MaxUnitLanes()>
 
using I0T = hn::Rebind<IN0_T, LargerD>
 
using I1T = hn::Rebind<IN1_T, LargerD>
 
using OT = hn::Rebind<OUT_T, LargerD>
 
using Y_VEC = hn::Vec<OT>
 
using X0_VEC = hn::Vec<I0T>
 
using X1_VEC = hn::Vec<I1T>
 

Public Member Functions

DERIVED * me ()
 
hn::Vec< OTFunc (const ptrdiff_t idx, const hn::Vec< I0T > x0, const hn::Vec< I1T > x1, const Y_VEC y)
 
X0_VEC X0Init ()
 
X0_VEC X0InitImpl ()
 
X1_VEC X1Init ()
 
X1_VEC X1InitImpl ()
 
Y_VEC YInit ()
 
Y_VEC YInitImpl ()
 
X0_VEC Load0 (const ptrdiff_t idx, IN0_T *from)
 
X0_VEC Load0Impl (const ptrdiff_t idx, IN0_T *from)
 
X1_VEC Load1 (const ptrdiff_t idx, IN1_T *from)
 
X1_VEC Load1Impl (const ptrdiff_t idx, IN1_T *from)
 
X0_VEC MaskLoad0 (const ptrdiff_t idx, IN0_T *from, const ptrdiff_t places)
 
X0_VEC MaskLoad0Impl (const ptrdiff_t idx, IN0_T *from, const ptrdiff_t places)
 
hn::Vec< I1TMaskLoad1 (const ptrdiff_t idx, IN1_T *from, const ptrdiff_t places)
 
hn::Vec< I1TMaskLoad1Impl (const ptrdiff_t idx, IN1_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, const ptrdiff_t 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

I0T d_in0
 
I1T d_in1
 
OT d_out
 

Static Public Attributes

static constexpr size_t kMaxTSize
 

Member Typedef Documentation

◆ I0T

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::I0T = hn::Rebind<IN0_T, LargerD>

◆ I1T

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::I1T = hn::Rebind<IN1_T, LargerD>

◆ LargerD

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

◆ LargerT

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::LargerT = SignedFromSize<kMaxTSize>

◆ OT

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::OT = hn::Rebind<OUT_T, LargerD>

◆ X0_VEC

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X0_VEC = hn::Vec<I0T>

◆ X1_VEC

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X1_VEC = hn::Vec<I1T>

◆ Y_VEC

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
using hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Y_VEC = hn::Vec<OT>

Member Function Documentation

◆ ActualLanes()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
static size_t hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::ActualLanes ( )
inlinestatic

◆ Func()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
hn::Vec< OT > hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Func ( const ptrdiff_t idx,
const hn::Vec< I0T > x0,
const hn::Vec< I1T > x1,
const Y_VEC y )
inline

◆ Load0()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load0 ( const ptrdiff_t idx,
IN0_T * from )
inline

◆ Load0Impl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load0Impl ( const ptrdiff_t idx,
IN0_T * from )
inline

◆ Load1()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X1_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load1 ( const ptrdiff_t idx,
IN1_T * from )
inline

◆ Load1Impl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X1_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::Load1Impl ( const ptrdiff_t idx,
IN1_T * from )
inline

◆ MaskLoad0()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::MaskLoad0 ( const ptrdiff_t idx,
IN0_T * from,
const ptrdiff_t places )
inline

◆ MaskLoad0Impl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::MaskLoad0Impl ( const ptrdiff_t idx,
IN0_T * from,
const ptrdiff_t places )
inline

◆ MaskLoad1()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
hn::Vec< I1T > hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::MaskLoad1 ( const ptrdiff_t idx,
IN1_T * from,
const ptrdiff_t places )
inline

◆ MaskLoad1Impl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
hn::Vec< I1T > hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::MaskLoad1Impl ( const ptrdiff_t idx,
IN1_T * from,
const ptrdiff_t places )
inline

◆ MaskStore()

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

◆ MaskStoreImpl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_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 IN0_T , typename IN1_T , typename OUT_T >
static constexpr size_t hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::MaxUnitLanes ( )
inlinestaticconstexpr

References HWY_MAX_LANES_D.

◆ me()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
DERIVED * hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::me ( )
inline

◆ Reduce() [1/2]

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

◆ Reduce() [2/2]

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
void hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_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 IN0_T , typename IN1_T , typename OUT_T >
ptrdiff_t hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::ReduceImpl ( const Y_VEC x,
OUT_T * to )
inline

◆ ReduceImpl() [2/2]

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
void hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_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 IN0_T , typename IN1_T , typename OUT_T >
bool hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::StoreAndShortCircuit ( const ptrdiff_t idx,
OUT_T * to,
const Y_VEC x )
inline

◆ StoreAndShortCircuitImpl()

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

◆ X0Init()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X0Init ( )
inline

◆ X0InitImpl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X0_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X0InitImpl ( )
inline

◆ X1Init()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X1_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X1Init ( )
inline

◆ X1InitImpl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
X1_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::X1InitImpl ( )
inline

◆ YInit()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
Y_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::YInit ( )
inline

◆ YInitImpl()

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
Y_VEC hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::YInitImpl ( )
inline

Member Data Documentation

◆ d_in0

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
I0T hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::d_in0

◆ d_in1

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
I1T hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::d_in1

◆ d_out

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
OT hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::d_out

◆ kMaxTSize

template<class DERIVED , typename IN0_T , typename IN1_T , typename OUT_T >
constexpr size_t hwy::HWY_NAMESPACE::UnrollerUnit2D< DERIVED, IN0_T, IN1_T, OUT_T >::kMaxTSize
staticconstexpr
Initial value:
=
HWY_MAX(sizeof(IN0_T), HWY_MAX(sizeof(IN1_T), sizeof(OUT_T)))
#define HWY_MAX(a, b)
Definition base.h:177

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