gem5  v20.1.0.0
Public Member Functions | List of all members
VecLaneT< VecElem, Const > Class Template Reference

Vector Lane abstraction Another view of a container. More...

#include <vec_reg.hh>

Public Member Functions

 operator VecElem () const
 Cast to vecElem. More...
 
template<bool Cond = !Const, typename std::enable_if< Cond, int >::type = 0>
 operator VecLaneT< typename std::enable_if< Cond, VecElem >::type, true > ()
 Constification. More...
 
using MyClass = VecLaneT< VecElem, Const >
 My type alias. More...
 
using Cont = typename std::conditional< Const, const VecElem, VecElem >::type
 
friend VecLaneT< VecElem, !Const >
 VecRegContainer friendship to access private VecLaneT constructors. More...
 
class VecRegContainer< 8 >
 
class VecRegContainer< 16 >
 
class VecRegContainer< 32 >
 
class VecRegContainer< 64 >
 
class VecRegContainer< 128 >
 
class VecRegContainer< 256 >
 
class VecRegContainer< MaxVecRegLenInBytes >
 
Contcontainer
 Reference to data. More...
 
 VecLaneT (Cont &cont)
 Constructor. More...
 
template<bool Assignable = !Const>
std::enable_if< Assignable, MyClass & >::type operator= (const VecElem &that)
 Assignment operators. More...
 
template<bool Assignable = !Const, typename T >
std::enable_if< Assignable, MyClass & >::type operator= (const T &that)
 Generic. More...
 

Detailed Description

template<typename VecElem, bool Const>
class VecLaneT< VecElem, Const >

Vector Lane abstraction Another view of a container.

This time only a partial part of it is exposed.

Template Parameters
VecElemType of each element of the vector.
ConstIndicate if the underlying container can be modified through the view.

Definition at line 262 of file vec_reg.hh.

Member Typedef Documentation

◆ Cont

template<typename VecElem , bool Const>
using VecLaneT< VecElem, Const >::Cont = typename std::conditional<Const, const VecElem, VecElem>::type
private

Definition at line 537 of file vec_reg.hh.

◆ MyClass

template<typename VecElem , bool Const>
using VecLaneT< VecElem, Const >::MyClass = VecLaneT<VecElem, Const>

My type alias.

Definition at line 532 of file vec_reg.hh.

Constructor & Destructor Documentation

◆ VecLaneT()

template<typename VecElem , bool Const>
VecLaneT< VecElem, Const >::VecLaneT ( Cont cont)
inlineprivate

Constructor.

Definition at line 546 of file vec_reg.hh.

Member Function Documentation

◆ operator VecElem()

template<typename VecElem , bool Const>
VecLaneT< VecElem, Const >::operator VecElem ( ) const
inline

Cast to vecElem.

Definition at line 577 of file vec_reg.hh.

References VecLaneT< VecElem, Const >::container.

◆ operator VecLaneT< typename std::enable_if< Cond, VecElem >::type, true >()

template<typename VecElem , bool Const>
template<bool Cond = !Const, typename std::enable_if< Cond, int >::type = 0>
VecLaneT< VecElem, Const >::operator VecLaneT< typename std::enable_if< Cond, VecElem >::type, true > ( )
inline

Constification.

Definition at line 581 of file vec_reg.hh.

References VecLaneT< VecElem, Const >::container.

◆ operator=() [1/2]

template<typename VecElem , bool Const>
template<bool Assignable = !Const, typename T >
std::enable_if<Assignable, MyClass&>::type VecLaneT< VecElem, Const >::operator= ( const T &  that)
inline

Generic.

Generic bitwise assignment. Narrowing and widening assignemnts are not allowed, pre-treatment of the rhs is required to conform.

Definition at line 567 of file vec_reg.hh.

References VecLaneT< VecElem, Const >::container.

◆ operator=() [2/2]

template<typename VecElem , bool Const>
template<bool Assignable = !Const>
std::enable_if<Assignable, MyClass&>::type VecLaneT< VecElem, Const >::operator= ( const VecElem &  that)
inline

Assignment operators.

Assignment operators are only enabled if the underlying container is non-constant.

Definition at line 556 of file vec_reg.hh.

References VecLaneT< VecElem, Const >::container.

Friends And Related Function Documentation

◆ VecRegContainer< 128 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 128 >
friend

Definition at line 527 of file vec_reg.hh.

◆ VecRegContainer< 16 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 16 >
friend

Definition at line 524 of file vec_reg.hh.

◆ VecRegContainer< 256 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 256 >
friend

Definition at line 528 of file vec_reg.hh.

◆ VecRegContainer< 32 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 32 >
friend

Definition at line 525 of file vec_reg.hh.

◆ VecRegContainer< 64 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 64 >
friend

Definition at line 526 of file vec_reg.hh.

◆ VecRegContainer< 8 >

template<typename VecElem , bool Const>
friend class VecRegContainer< 8 >
friend

Definition at line 523 of file vec_reg.hh.

◆ VecRegContainer< MaxVecRegLenInBytes >

template<typename VecElem , bool Const>
friend class VecRegContainer< MaxVecRegLenInBytes >
friend

Definition at line 529 of file vec_reg.hh.

Member Data Documentation

◆ container

template<typename VecElem , bool Const>
Cont& VecLaneT< VecElem, Const >::container
private

◆ VecLaneT< VecElem, !Const >

template<typename VecElem , bool Const>
friend VecLaneT< VecElem, Const >::VecLaneT< VecElem, !Const >

VecRegContainer friendship to access private VecLaneT constructors.

Only VecRegContainers can build VecLanes.

Definition at line 519 of file vec_reg.hh.


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

Generated on Wed Sep 30 2020 14:02:34 for gem5 by doxygen 1.8.17