gem5  v22.1.0.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
gem5::VegaISA::VecOperand< DataType, Const, NumDwords > Class Template Referencefinal

#include <operand.hh>

Inheritance diagram for gem5::VegaISA::VecOperand< DataType, Const, NumDwords >:
gem5::VegaISA::Operand

Public Member Functions

 VecOperand ()=delete
 
 VecOperand (GPUDynInstPtr gpuDynInst, int opIdx)
 
 ~VecOperand ()
 
void readSrc ()
 certain vector operands can read from the vrf/srf or constants. More...
 
void read () override
 read from the vrf. More...
 
void write () override
 write to the vrf. More...
 
void negModifier ()
 
void absModifier ()
 
template<bool Condition = (NumDwords == 1 || NumDwords == 2) && Const>
std::enable_if< Condition, const DataType >::type operator[] (size_t idx) const
 getter [] operator. More...
 
template<bool Condition = (NumDwords == 1 || NumDwords == 2) && !Const>
std::enable_if< Condition, DataType & >::type operator[] (size_t idx)
 setter [] operator. More...
 
- Public Member Functions inherited from gem5::VegaISA::Operand
 Operand ()=delete
 
 Operand (GPUDynInstPtr gpuDynInst, int opIdx)
 

Private Types

using VecRegCont = VecRegContainer< sizeof(DataType) *NumVecElemPerVecReg >
 

Private Member Functions

void readScalar ()
 if we determine that this operand is a scalar (reg or constant) then we read the scalar data into the scalar operand data member. More...
 

Private Attributes

bool scalar
 whether this operand a scalar or not. More...
 
bool absMod
 absolute value and negative modifiers. More...
 
bool negMod
 
VecRegCont vecReg
 this holds all the operand data in a single vector register object (i.e., if an operand is 64b, this will hold the data from both registers the operand is using). More...
 
ScalarOperand< DataType, Const, NumDwords > scRegData
 for src operands that read scalars (i.e., scalar regs or a scalar constant). More...
 
std::array< VecRegContainerU32 *, NumDwords > vrfData
 pointers to the underlyding registers (i.e., the actual registers in the register file). More...
 

Additional Inherited Members

- Protected Attributes inherited from gem5::VegaISA::Operand
GPUDynInstPtr _gpuDynInst
 instruction object that owns this operand More...
 
int _opIdx
 op selector value for this operand. More...
 

Detailed Description

template<typename DataType, bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
class gem5::VegaISA::VecOperand< DataType, Const, NumDwords >

Definition at line 101 of file operand.hh.

Member Typedef Documentation

◆ VecRegCont

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
using gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::VecRegCont = VecRegContainer<sizeof(DataType) * NumVecElemPerVecReg>
private

Definition at line 330 of file operand.hh.

Constructor & Destructor Documentation

◆ VecOperand() [1/2]

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::VecOperand ( )
delete

◆ VecOperand() [2/2]

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::VecOperand ( GPUDynInstPtr  gpuDynInst,
int  opIdx 
)
inline

Definition at line 109 of file operand.hh.

◆ ~VecOperand()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::~VecOperand ( )
inline

Definition at line 117 of file operand.hh.

Member Function Documentation

◆ absModifier()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::absModifier ( )
inline

Definition at line 255 of file operand.hh.

Referenced by gem5::VegaISA::Inst_VOP3__V_CMP_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F64::execute(), and gem5::VegaISA::Inst_VOP3__V_LDEXP_F64::execute().

◆ negModifier()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::negModifier ( )
inline

Definition at line 249 of file operand.hh.

Referenced by gem5::VegaISA::Inst_VOP3__V_CMP_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F64::execute(), and gem5::VegaISA::Inst_VOP3__V_LDEXP_F64::execute().

◆ operator[]() [1/2]

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
template<bool Condition = (NumDwords == 1 || NumDwords == 2) && !Const>
std::enable_if<Condition, DataType&>::type gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::operator[] ( size_t  idx)
inline

setter [] operator.

only enable if this operand is non-constant (i.e, a destination operand) and if it can be represented using primitive types (i.e., 8b to 64b primitives).

Definition at line 310 of file operand.hh.

References gem5::VegaISA::NumVecElemPerVecReg().

◆ operator[]() [2/2]

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
template<bool Condition = (NumDwords == 1 || NumDwords == 2) && Const>
std::enable_if<Condition, const DataType>::type gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::operator[] ( size_t  idx) const
inline

getter [] operator.

only enable if this operand is constant (i.e, a source operand) and if it can be represented using primitive types (i.e., 8b to 64b primitives).

Definition at line 267 of file operand.hh.

References gem5::VegaISA::NumVecElemPerVecReg().

◆ read()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::read ( )
inlineoverridevirtual

read from the vrf.

this should only be used by vector inst source operands that are explicitly vector (i.e., VSRC).

Implements gem5::VegaISA::Operand.

Definition at line 146 of file operand.hh.

References DPRINTF, gem5::ArmISA::i, gem5::RegisterManager::mapVgpr(), gem5::VegaISA::NumVecElemPerVecReg(), gem5::ComputeUnit::registerManager, gem5::Wavefront::simdId, and gem5::ComputeUnit::vrf.

Referenced by gem5::VegaISA::Inst_VOP2__V_CNDMASK_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_AND_B32::execute(), gem5::VegaISA::Inst_VOP2__V_OR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_XOR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADMK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADAK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADDC_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LO_U16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U32::execute(), gem5::VegaISA::Inst_VOP1__V_MOV_B32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_CLASS_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_CLASS_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_CLASS_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_CLASS_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_O_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_U_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NEQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_O_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_U_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NEQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_O_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_U_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NEQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_O_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_U_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NEQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_WRITELANE_B32::execute(), gem5::VegaISA::Inst_DS__DS_WRITE2_B32::execute(), gem5::VegaISA::Inst_DS__DS_WRITE2ST64_B32::execute(), gem5::VegaISA::Inst_DS__DS_WRITE2_B64::execute(), gem5::VegaISA::Inst_DS__DS_WRITE_B96::execute(), gem5::VegaISA::Inst_DS__DS_WRITE_B128::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_UBYTE::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_USHORT::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORD::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX2::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX3::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX4::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_BYTE::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_SHORT::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_DWORD::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_DWORDX2::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_DWORDX3::execute(), gem5::VegaISA::Inst_MUBUF__BUFFER_STORE_DWORDX4::execute(), gem5::VegaISA::Inst_FLAT__FLAT_STORE_DWORDX3::execute(), gem5::VegaISA::Inst_FLAT__FLAT_STORE_DWORDX4::execute(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP::execute(), and gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2::execute().

◆ readScalar()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::readScalar ( )
inlineprivate

if we determine that this operand is a scalar (reg or constant) then we read the scalar data into the scalar operand data member.

Definition at line 324 of file operand.hh.

◆ readSrc()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::readSrc ( )
inline

certain vector operands can read from the vrf/srf or constants.

we use this method to first determine the type of the operand, then we read from the appropriate source. if vector we read directly from the vrf. if scalar, we read in the data through the scalar operand component. this should only be used for VSRC operands.

Definition at line 130 of file operand.hh.

References gem5::VegaISA::isVectorReg(), and gem5::VegaISA::opSelectorToRegIdx().

Referenced by gem5::VegaISA::Inst_VOP2__V_CNDMASK_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_AND_B32::execute(), gem5::VegaISA::Inst_VOP2__V_OR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_XOR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADMK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADAK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADDC_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LO_U16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U32::execute(), gem5::VegaISA::Inst_VOP1__V_MOV_B32::execute(), gem5::VegaISA::Inst_VOP1__V_READFIRSTLANE_B32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_I32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP1__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP1__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP1__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP1__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP1__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP1__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP1__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP1__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP1__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP1__V_BFREV_B32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP1__V_LOG_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_CLASS_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_CLASS_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_CLASS_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_CLASS_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_O_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_U_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NEQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_O_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_U_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLG_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLE_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NEQ_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLT_F32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_O_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_U_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NGT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NEQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NLT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_O_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_U_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLG_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NGT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLE_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NEQ_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NLT_F64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U16::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U32::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_EQ_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_LE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_NE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMP_GE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_I64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_EQ_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_LE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GT_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_NE_U64::execute(), gem5::VegaISA::Inst_VOPC__V_CMPX_GE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_CLASS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_CLASS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_CLASS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_CLASS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_O_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_U_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NEQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_O_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_U_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NEQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_O_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_U_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLG_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NGT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NEQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NLT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_I16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_U16::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LT_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_EQ_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_LE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GT_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_NE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMP_GE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_I64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LT_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_EQ_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_LE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GT_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_NE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CMPX_GE_U64::execute(), gem5::VegaISA::Inst_VOP3__V_CNDMASK_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_AND_B32::execute(), gem5::VegaISA::Inst_VOP3__V_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_OR3_B32::execute(), gem5::VegaISA::Inst_VOP3__V_XOR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADDC_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBB_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LO_U16::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MOV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_BFREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_BFE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_BFE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_BFI_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F64::execute(), gem5::VegaISA::Inst_VOP3__V_LERP_U8::execute(), gem5::VegaISA::Inst_VOP3__V_ALIGNBIT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ALIGNBYTE_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U8::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_HI_U8::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_XAD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHL_ADD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_LSHL_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHL_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_AND_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I16::execute(), gem5::VegaISA::Inst_VOP3__V_PERM_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F64::execute(), gem5::VegaISA::Inst_VOP3__V_LDEXP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_I32::execute(), gem5::VegaISA::Inst_VOP3__V_LDEXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_READLANE_B32::execute(), gem5::VegaISA::Inst_VOP3__V_BCNT_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MBCNT_LO_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MBCNT_HI_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B64::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B64::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I64::execute(), and gem5::VegaISA::Inst_VOP3__V_BFM_B32::execute().

◆ write()

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
void gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::write ( )
inlineoverridevirtual

write to the vrf.

we maintain a copy of the underlying vector reg(s) for this operand (i.e., vrfData/scRegData), as well as a temporary vector register representation (i.e., vecReg) of the vector register, which allows the execute() methods of instructions to easily write their operand data using operator[] regardless of their size. after the result is calculated we use write() to write the data to the actual register file storage. this allows us to do type conversion, etc., in a single call as opposed to doing it in each execute() method.

Implements gem5::VegaISA::Operand.

Definition at line 198 of file operand.hh.

References DPRINTF, gem5::Wavefront::execMask(), gem5::RegisterManager::mapVgpr(), gem5::VegaISA::NumVecElemPerVecReg(), gem5::ComputeUnit::registerManager, gem5::Wavefront::simdId, and gem5::ComputeUnit::vrf.

Referenced by gem5::VegaISA::Inst_DS__DS_READ_B32::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ2_B32::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ2ST64_B32::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ_U8::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ_U16::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ_B64::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ2_B64::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ2ST64_B64::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ_B96::completeAcc(), gem5::VegaISA::Inst_DS__DS_READ_B128::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_UBYTE::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_USHORT::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORD::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX2::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX3::completeAcc(), gem5::VegaISA::Inst_MUBUF__BUFFER_LOAD_DWORDX4::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_UBYTE::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_USHORT::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_DWORD::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_DWORDX2::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_DWORDX3::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_LOAD_DWORDX4::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_SWAP::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_ADD::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2::completeAcc(), gem5::VegaISA::Inst_FLAT__FLAT_ATOMIC_ADD_X2::completeAcc(), gem5::VegaISA::Inst_VOP2__V_CNDMASK_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_I32_I24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_HI_U32_U24::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I32::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U32::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I32::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B32::execute(), gem5::VegaISA::Inst_VOP2__V_AND_B32::execute(), gem5::VegaISA::Inst_VOP2__V_OR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_XOR_B32::execute(), gem5::VegaISA::Inst_VOP2__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADMK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_MADAK_F32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADDC_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBB_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U16::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MUL_LO_U16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHLREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP2__V_ASHRREV_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP2__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP2__V_ADD_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUB_U32::execute(), gem5::VegaISA::Inst_VOP2__V_SUBREV_U32::execute(), gem5::VegaISA::Inst_VOP1__V_MOV_B32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_I32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP1__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP1__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP1__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP1__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP1__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP1__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP1__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP1__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP1__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP1__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP1__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP1__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP1__V_BFREV_B32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP1__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP1__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP1__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP1__V_LOG_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CNDMASK_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_AND_B32::execute(), gem5::VegaISA::Inst_VOP3__V_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_OR3_B32::execute(), gem5::VegaISA::Inst_VOP3__V_XOR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MAC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADDC_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBB_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBBREV_CO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LO_U16::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B16::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_I16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_I16::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUB_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SUBREV_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MOV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_I32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_U32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_F64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F64::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_TRUNC_F32::execute(), gem5::VegaISA::Inst_VOP3__V_CEIL_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RNDNE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FLOOR_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F32::execute(), gem5::VegaISA::Inst_VOP3__V_RCP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_RSQ_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_SQRT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_SIN_F32::execute(), gem5::VegaISA::Inst_VOP3__V_COS_F32::execute(), gem5::VegaISA::Inst_VOP3__V_NOT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_BFREV_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_U32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBL_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FFBH_I32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FRACT_F64::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), gem5::VegaISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_LOG_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I32_I24::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U32_U24::execute(), gem5::VegaISA::Inst_VOP3__V_BFE_U32::execute(), gem5::VegaISA::Inst_VOP3__V_BFE_I32::execute(), gem5::VegaISA::Inst_VOP3__V_BFI_B32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F32::execute(), gem5::VegaISA::Inst_VOP3__V_FMA_F64::execute(), gem5::VegaISA::Inst_VOP3__V_LERP_U8::execute(), gem5::VegaISA::Inst_VOP3__V_ALIGNBIT_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ALIGNBYTE_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MIN3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MAX3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_F32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_I32::execute(), gem5::VegaISA::Inst_VOP3__V_MED3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U8::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_HI_U8::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_SAD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F32::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_SCALE_F64::execute(), gem5::VegaISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U64_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I64_I32::execute(), gem5::VegaISA::Inst_VOP3__V_XAD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHL_ADD_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_LSHL_U32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD3_U32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHL_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_AND_OR_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_U16::execute(), gem5::VegaISA::Inst_VOP3__V_MAD_I16::execute(), gem5::VegaISA::Inst_VOP3__V_PERM_B32::execute(), gem5::VegaISA::Inst_VOP3__V_ADD_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MIN_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MAX_F64::execute(), gem5::VegaISA::Inst_VOP3__V_LDEXP_F64::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_LO_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_U32::execute(), gem5::VegaISA::Inst_VOP3__V_MUL_HI_I32::execute(), gem5::VegaISA::Inst_VOP3__V_LDEXP_F32::execute(), gem5::VegaISA::Inst_VOP3__V_WRITELANE_B32::execute(), gem5::VegaISA::Inst_VOP3__V_BCNT_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MBCNT_LO_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_MBCNT_HI_U32_B32::execute(), gem5::VegaISA::Inst_VOP3__V_LSHLREV_B64::execute(), gem5::VegaISA::Inst_VOP3__V_LSHRREV_B64::execute(), gem5::VegaISA::Inst_VOP3__V_ASHRREV_I64::execute(), gem5::VegaISA::Inst_VOP3__V_BFM_B32::execute(), gem5::VegaISA::Inst_DS__DS_SWIZZLE_B32::execute(), gem5::VegaISA::Inst_DS__DS_PERMUTE_B32::execute(), and gem5::VegaISA::Inst_DS__DS_BPERMUTE_B32::execute().

Member Data Documentation

◆ absMod

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
bool gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::absMod
private

absolute value and negative modifiers.

VOP3 instructions may indicate that their input/output operands must be modified, either by taking the absolute value or negating them. these bools indicate which modifier, if any, to use.

Definition at line 343 of file operand.hh.

◆ negMod

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
bool gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::negMod
private

Definition at line 344 of file operand.hh.

◆ scalar

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
bool gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::scalar
private

whether this operand a scalar or not.

Definition at line 336 of file operand.hh.

◆ scRegData

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
ScalarOperand<DataType, Const, NumDwords> gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::scRegData
private

for src operands that read scalars (i.e., scalar regs or a scalar constant).

Definition at line 355 of file operand.hh.

◆ vecReg

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
VecRegCont gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::vecReg
private

this holds all the operand data in a single vector register object (i.e., if an operand is 64b, this will hold the data from both registers the operand is using).

Definition at line 350 of file operand.hh.

◆ vrfData

template<typename DataType , bool Const, size_t NumDwords = sizeof(DataType) / sizeof(VecElemU32)>
std::array<VecRegContainerU32*, NumDwords> gem5::VegaISA::VecOperand< DataType, Const, NumDwords >::vrfData
private

pointers to the underlyding registers (i.e., the actual registers in the register file).

Definition at line 360 of file operand.hh.


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

Generated on Wed Dec 21 2022 10:25:03 for gem5 by doxygen 1.9.1