gem5
v20.1.0.0
|
classes that represnt vector/scalar operands in GCN3 ISA. More...
Functions | |
template<typename T > | |
T | wholeQuadMode (T val) |
template<typename T > | |
T | quadMask (T val) |
template<typename T > | |
ScalarRegI32 | countZeroBits (T val) |
template<typename T > | |
ScalarRegI32 | findFirstZero (T val) |
template<typename T > | |
ScalarRegI32 | findFirstOne (T val) |
template<typename T > | |
ScalarRegI32 | findFirstOneMsb (T val) |
template<typename T > | |
ScalarRegI32 | countZeroBitsMsb (T val) |
ScalarRegI32 | firstOppositeSignBit (ScalarRegI32 val) |
ScalarRegI32 | firstOppositeSignBit (ScalarRegI64 val) |
template<typename T > | |
T | median (T val_0, T val_1, T val_2) |
template<typename T > | |
T | roundNearestEven (T val) |
VecElemU32 | muladd (VecElemU64 &dst, VecElemU32 val_0, VecElemU32 val_1, VecElemU64 val_2) |
VecElemU32 | muladd (VecElemI64 &dst, VecElemI32 val_0, VecElemI32 val_1, VecElemI64 val_2) |
int | dppInstImpl (SqDPPVals dppCtrl, int currLane, int rowNum, int rowOffset, bool &outOfBounds) |
dppInstImpl is a helper function that performs the inputted operation on the inputted vector register lane. More... | |
template<typename T > | |
void | processDPP (GPUDynInstPtr gpuDynInst, InFmt_VOP_DPP dppInst, T &src0) |
processDPP is a helper function for implementing Data Parallel Primitive instructions. More... | |
template<typename T > | |
void | processDPP (GPUDynInstPtr gpuDynInst, InFmt_VOP_DPP dppInst, T &src0, T &src1) |
processDPP is a helper function for implementing Data Parallel Primitive instructions. More... | |
template<typename T > | |
T | sdwaInstSrcImpl_helper (T currOperVal, const T origOperVal, const SDWASelVals sel, const bool signExt) |
sdwaInstSrcImpl_helper contains the per-lane code for selecting the appropriate bytes/words of the lane and doing the appropriate masking/padding/sign extending. More... | |
template<typename T > | |
void | sdwaInstSrcImpl (T &currOper, T &origCurrOper, const SDWASelVals sel, const bool signExt) |
sdwaInstSrcImpl is a helper function that selects the appropriate bits/bytes for each lane of the inputted source operand of an SDWA instruction, does the appropriate masking/padding/sign extending for the non-selected bits/bytes, and updates the operands values with the resultant value. More... | |
template<typename T > | |
T | sdwaInstDstImpl_helper (T currDstVal, const T origDstVal, const bool clamp, const SDWASelVals sel, const SDWADstVals unusedBits_format) |
sdwaInstDstImpl_helper contains the per-lane code for selecting the appropriate bytes/words of the lane and doing the appropriate masking/padding/sign extending. More... | |
template<typename T > | |
void | sdwaInstDstImpl (T &dstOper, T &origDstOper, const bool clamp, const SDWASelVals sel, const SDWADstVals unusedBits_format) |
sdwaInstDestImpl is a helper function that selects the appropriate bits/bytes for the inputted dest operand of an SDWA instruction, does the appropriate masking/padding/sign extending for the non-selected bits/bytes, and updates the operands values with the resultant value. More... | |
template<typename T > | |
void | processSDWA_src_helper (T &currSrc, T &origCurrSrc, const SDWASelVals src_sel, const bool src_signExt, const bool src_abs, const bool src_neg) |
processSDWA_srcHelper is a helper function for implementing sub d-word addressing instructions for the src operands. More... | |
template<typename T > | |
void | processSDWA_src (InFmt_VOP_SDWA sdwaInst, T &src0, T &origSrc0) |
processSDWA_src is a helper function for implementing sub d-word addressing instructions for the src operands. More... | |
template<typename T > | |
void | processSDWA_src (InFmt_VOP_SDWA sdwaInst, T &src0, T &origSrc0, T &src1, T &origSrc1) |
processSDWA_src is a helper function for implementing sub d-word addressing instructions. More... | |
template<typename T > | |
void | processSDWA_dst (InFmt_VOP_SDWA sdwaInst, T &dst, T &origDst) |
processSDWA_dst is a helper function for implementing sub d-word addressing instructions for the dst operand. More... | |
std::string | opSelectorToRegSym (int idx, int numRegs) |
int | opSelectorToRegIdx (int idx, int numScalarRegs) |
bool | isPosConstVal (int opIdx) |
bool | isNegConstVal (int opIdx) |
bool | isConstVal (int opIdx) |
bool | isLiteral (int opIdx) |
bool | isExecMask (int opIdx) |
bool | isVccReg (int opIdx) |
bool | isFlatScratchReg (int opIdx) |
bool | isScalarReg (int opIdx) |
bool | isVectorReg (int opIdx) |
constexpr size_t | MaxOperandDwords (16) |
const int | NumVecElemPerVecReg (64) |
Variables | |
const int | NumPosConstRegs |
const int | NumNegConstRegs |
const int | BITS_PER_BYTE = 8 |
const int | BITS_PER_WORD = 16 |
const int | MSB_PER_BYTE = (BITS_PER_BYTE - 1) |
const int | MSB_PER_WORD = (BITS_PER_WORD - 1) |
classes that represnt vector/scalar operands in GCN3 ISA.
these classes wrap the generic vector register type (i.e., src/arch/generic/vec_reg.hh) and allow them to be manipulated in ways that are unique to GCN3 insts.
using Gcn3ISA::ConstScalarOperandF32 = typedef ScalarOperand<ScalarRegF32, true> |
Definition at line 713 of file operand.hh.
using Gcn3ISA::ConstScalarOperandF64 = typedef ScalarOperand<ScalarRegF64, true> |
Definition at line 716 of file operand.hh.
using Gcn3ISA::ConstScalarOperandI16 = typedef ScalarOperand<ScalarRegI16, true, 1> |
Definition at line 710 of file operand.hh.
using Gcn3ISA::ConstScalarOperandI32 = typedef ScalarOperand<ScalarRegI32, true> |
Definition at line 712 of file operand.hh.
using Gcn3ISA::ConstScalarOperandI64 = typedef ScalarOperand<ScalarRegI64, true> |
Definition at line 715 of file operand.hh.
using Gcn3ISA::ConstScalarOperandI8 = typedef ScalarOperand<ScalarRegI8, true, 1> |
Definition at line 708 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU128 = typedef ScalarOperand<ScalarRegU32, true, 4> |
Definition at line 717 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU16 = typedef ScalarOperand<ScalarRegU16, true, 1> |
Definition at line 709 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU256 = typedef ScalarOperand<ScalarRegU32, true, 8> |
Definition at line 718 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU32 = typedef ScalarOperand<ScalarRegU32, true> |
Definition at line 711 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU512 = typedef ScalarOperand<ScalarRegU32, true, 16> |
Definition at line 719 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU64 = typedef ScalarOperand<ScalarRegU64, true> |
Definition at line 714 of file operand.hh.
using Gcn3ISA::ConstScalarOperandU8 = typedef ScalarOperand<ScalarRegU8, true, 1> |
Definition at line 707 of file operand.hh.
using Gcn3ISA::ConstVecOperandF32 = typedef VecOperand<VecElemF32, true> |
Definition at line 742 of file operand.hh.
using Gcn3ISA::ConstVecOperandF64 = typedef VecOperand<VecElemF64, true> |
Definition at line 745 of file operand.hh.
using Gcn3ISA::ConstVecOperandI16 = typedef VecOperand<VecElemI16, true, 1> |
Definition at line 739 of file operand.hh.
using Gcn3ISA::ConstVecOperandI32 = typedef VecOperand<VecElemI32, true> |
Definition at line 741 of file operand.hh.
using Gcn3ISA::ConstVecOperandI64 = typedef VecOperand<VecElemI64, true> |
Definition at line 744 of file operand.hh.
using Gcn3ISA::ConstVecOperandI8 = typedef VecOperand<VecElemI8, true, 1> |
Definition at line 737 of file operand.hh.
using Gcn3ISA::ConstVecOperandU128 = typedef VecOperand<VecElemU32, true, 4> |
Definition at line 747 of file operand.hh.
using Gcn3ISA::ConstVecOperandU16 = typedef VecOperand<VecElemU16, true, 1> |
Definition at line 738 of file operand.hh.
using Gcn3ISA::ConstVecOperandU256 = typedef VecOperand<VecElemU32, true, 8> |
Definition at line 748 of file operand.hh.
using Gcn3ISA::ConstVecOperandU32 = typedef VecOperand<VecElemU32, true> |
Definition at line 740 of file operand.hh.
using Gcn3ISA::ConstVecOperandU512 = typedef VecOperand<VecElemU32, true, 16> |
Definition at line 749 of file operand.hh.
using Gcn3ISA::ConstVecOperandU64 = typedef VecOperand<VecElemU64, true> |
Definition at line 743 of file operand.hh.
using Gcn3ISA::ConstVecOperandU8 = typedef VecOperand<VecElemU8, true, 1> |
Definition at line 736 of file operand.hh.
using Gcn3ISA::ConstVecOperandU96 = typedef VecOperand<VecElemU32, true, 3> |
Definition at line 746 of file operand.hh.
using Gcn3ISA::ConstVecRegF32 = typedef ::VecRegT<VecElemF32, NumVecElemPerVecReg, true> |
Definition at line 191 of file registers.hh.
using Gcn3ISA::ConstVecRegF64 = typedef ::VecRegT<VecElemF64, NumVecElemPerVecReg, true> |
Definition at line 194 of file registers.hh.
using Gcn3ISA::ConstVecRegI16 = typedef ::VecRegT<VecElemI16, NumVecElemPerVecReg, true> |
Definition at line 188 of file registers.hh.
using Gcn3ISA::ConstVecRegI32 = typedef ::VecRegT<VecElemI32, NumVecElemPerVecReg, true> |
Definition at line 190 of file registers.hh.
using Gcn3ISA::ConstVecRegI64 = typedef ::VecRegT<VecElemI64, NumVecElemPerVecReg, true> |
Definition at line 193 of file registers.hh.
using Gcn3ISA::ConstVecRegI8 = typedef ::VecRegT<VecElemI8, NumVecElemPerVecReg, true> |
Definition at line 186 of file registers.hh.
using Gcn3ISA::ConstVecRegU16 = typedef ::VecRegT<VecElemU16, NumVecElemPerVecReg, true> |
Definition at line 187 of file registers.hh.
using Gcn3ISA::ConstVecRegU32 = typedef ::VecRegT<VecElemU32, NumVecElemPerVecReg, true> |
Definition at line 189 of file registers.hh.
using Gcn3ISA::ConstVecRegU64 = typedef ::VecRegT<VecElemU64, NumVecElemPerVecReg, true> |
Definition at line 192 of file registers.hh.
using Gcn3ISA::ConstVecRegU8 = typedef ::VecRegT<VecElemU8, NumVecElemPerVecReg, true> |
Definition at line 185 of file registers.hh.
using Gcn3ISA::IsaDecodeMethod = typedef GPUStaticInst*(Decoder::*)(MachInst) |
Definition at line 52 of file gpu_decoder.hh.
typedef InstFormat* Gcn3ISA::MachInst |
used to represent the encoding of a GCN3 inst.
each portion of a GCN3 inst must be 1 DWORD (32b), so we use a pointer to InstFormat type (which is 32b). for the case in which we need multiple DWORDS to represnt a single inst, this pointer essentialy acts as an array of the DWORDs needed to represent the entire inst encoding.
Definition at line 62 of file gpu_types.hh.
typedef uint64_t Gcn3ISA::RawMachInst |
used to represnt a GPU inst in its raw format.
GCN3 instructions may be 32b or 64b, therefore we represent a raw inst with 64b to ensure that all of its inst data, including potential immediate values, may be represented in the worst case.
Definition at line 43 of file gpu_types.hh.
using Gcn3ISA::ScalarOperandF32 = typedef ScalarOperand<ScalarRegF32, false> |
Definition at line 699 of file operand.hh.
using Gcn3ISA::ScalarOperandF64 = typedef ScalarOperand<ScalarRegF64, false> |
Definition at line 702 of file operand.hh.
using Gcn3ISA::ScalarOperandI16 = typedef ScalarOperand<ScalarRegI16, false, 1> |
Definition at line 696 of file operand.hh.
using Gcn3ISA::ScalarOperandI32 = typedef ScalarOperand<ScalarRegI32, false> |
Definition at line 698 of file operand.hh.
using Gcn3ISA::ScalarOperandI64 = typedef ScalarOperand<ScalarRegI64, false> |
Definition at line 701 of file operand.hh.
using Gcn3ISA::ScalarOperandI8 = typedef ScalarOperand<ScalarRegI8, false, 1> |
Definition at line 694 of file operand.hh.
using Gcn3ISA::ScalarOperandU128 = typedef ScalarOperand<ScalarRegU32, false, 4> |
Definition at line 703 of file operand.hh.
using Gcn3ISA::ScalarOperandU16 = typedef ScalarOperand<ScalarRegU16, false, 1> |
Definition at line 695 of file operand.hh.
using Gcn3ISA::ScalarOperandU256 = typedef ScalarOperand<ScalarRegU32, false, 8> |
Definition at line 704 of file operand.hh.
using Gcn3ISA::ScalarOperandU32 = typedef ScalarOperand<ScalarRegU32, false> |
Definition at line 697 of file operand.hh.
using Gcn3ISA::ScalarOperandU512 = typedef ScalarOperand<ScalarRegU32, false, 16> |
Definition at line 705 of file operand.hh.
using Gcn3ISA::ScalarOperandU64 = typedef ScalarOperand<ScalarRegU64, false> |
Definition at line 700 of file operand.hh.
using Gcn3ISA::ScalarOperandU8 = typedef ScalarOperand<ScalarRegU8, false, 1> |
Definition at line 693 of file operand.hh.
typedef float Gcn3ISA::ScalarRegF32 |
Definition at line 156 of file registers.hh.
typedef double Gcn3ISA::ScalarRegF64 |
Definition at line 159 of file registers.hh.
typedef int16_t Gcn3ISA::ScalarRegI16 |
Definition at line 153 of file registers.hh.
typedef int32_t Gcn3ISA::ScalarRegI32 |
Definition at line 155 of file registers.hh.
typedef int64_t Gcn3ISA::ScalarRegI64 |
Definition at line 158 of file registers.hh.
typedef int8_t Gcn3ISA::ScalarRegI8 |
Definition at line 151 of file registers.hh.
typedef uint16_t Gcn3ISA::ScalarRegU16 |
Definition at line 152 of file registers.hh.
typedef uint32_t Gcn3ISA::ScalarRegU32 |
Definition at line 154 of file registers.hh.
typedef uint64_t Gcn3ISA::ScalarRegU64 |
Definition at line 157 of file registers.hh.
typedef uint8_t Gcn3ISA::ScalarRegU8 |
Definition at line 150 of file registers.hh.
typedef float Gcn3ISA::VecElemF32 |
Definition at line 168 of file registers.hh.
typedef double Gcn3ISA::VecElemF64 |
Definition at line 171 of file registers.hh.
typedef int16_t Gcn3ISA::VecElemI16 |
Definition at line 165 of file registers.hh.
typedef int32_t Gcn3ISA::VecElemI32 |
Definition at line 167 of file registers.hh.
typedef int64_t Gcn3ISA::VecElemI64 |
Definition at line 170 of file registers.hh.
typedef int8_t Gcn3ISA::VecElemI8 |
Definition at line 163 of file registers.hh.
typedef uint16_t Gcn3ISA::VecElemU16 |
Definition at line 164 of file registers.hh.
typedef uint32_t Gcn3ISA::VecElemU32 |
Definition at line 166 of file registers.hh.
typedef uint64_t Gcn3ISA::VecElemU64 |
Definition at line 169 of file registers.hh.
typedef uint8_t Gcn3ISA::VecElemU8 |
Definition at line 162 of file registers.hh.
using Gcn3ISA::VecOperandF32 = typedef VecOperand<VecElemF32, false> |
Definition at line 727 of file operand.hh.
using Gcn3ISA::VecOperandF64 = typedef VecOperand<VecElemF64, false> |
Definition at line 729 of file operand.hh.
using Gcn3ISA::VecOperandI16 = typedef VecOperand<VecElemI16, false, 1> |
Definition at line 724 of file operand.hh.
using Gcn3ISA::VecOperandI32 = typedef VecOperand<VecElemI32, false> |
Definition at line 726 of file operand.hh.
using Gcn3ISA::VecOperandI64 = typedef VecOperand<VecElemI64, false> |
Definition at line 730 of file operand.hh.
using Gcn3ISA::VecOperandI8 = typedef VecOperand<VecElemI8, false, 1> |
Definition at line 722 of file operand.hh.
using Gcn3ISA::VecOperandU128 = typedef VecOperand<VecElemU32, false, 4> |
Definition at line 732 of file operand.hh.
using Gcn3ISA::VecOperandU16 = typedef VecOperand<VecElemU16, false, 1> |
Definition at line 723 of file operand.hh.
using Gcn3ISA::VecOperandU256 = typedef VecOperand<VecElemU32, false, 8> |
Definition at line 733 of file operand.hh.
using Gcn3ISA::VecOperandU32 = typedef VecOperand<VecElemU32, false> |
Definition at line 725 of file operand.hh.
using Gcn3ISA::VecOperandU512 = typedef VecOperand<VecElemU32, false, 16> |
Definition at line 734 of file operand.hh.
using Gcn3ISA::VecOperandU64 = typedef VecOperand<VecElemU64, false> |
Definition at line 728 of file operand.hh.
using Gcn3ISA::VecOperandU8 = typedef VecOperand<VecElemU8, false, 1> |
Definition at line 721 of file operand.hh.
using Gcn3ISA::VecOperandU96 = typedef VecOperand<VecElemU32, false, 3> |
Definition at line 731 of file operand.hh.
using Gcn3ISA::VecRegContainerU16 = typedef VecRegU16::Container |
Definition at line 197 of file registers.hh.
using Gcn3ISA::VecRegContainerU32 = typedef VecRegU32::Container |
Definition at line 198 of file registers.hh.
using Gcn3ISA::VecRegContainerU64 = typedef VecRegU64::Container |
Definition at line 199 of file registers.hh.
using Gcn3ISA::VecRegContainerU8 = typedef VecRegU8::Container |
Definition at line 196 of file registers.hh.
using Gcn3ISA::VecRegF32 = typedef ::VecRegT<VecElemF32, NumVecElemPerVecReg, false> |
Definition at line 180 of file registers.hh.
using Gcn3ISA::VecRegF64 = typedef ::VecRegT<VecElemF64, NumVecElemPerVecReg, false> |
Definition at line 183 of file registers.hh.
using Gcn3ISA::VecRegI16 = typedef ::VecRegT<VecElemI16, NumVecElemPerVecReg, false> |
Definition at line 177 of file registers.hh.
using Gcn3ISA::VecRegI32 = typedef ::VecRegT<VecElemI32, NumVecElemPerVecReg, false> |
Definition at line 179 of file registers.hh.
using Gcn3ISA::VecRegI64 = typedef ::VecRegT<VecElemI64, NumVecElemPerVecReg, false> |
Definition at line 182 of file registers.hh.
using Gcn3ISA::VecRegI8 = typedef ::VecRegT<VecElemI8, NumVecElemPerVecReg, false> |
Definition at line 175 of file registers.hh.
using Gcn3ISA::VecRegU16 = typedef ::VecRegT<VecElemU16, NumVecElemPerVecReg, false> |
Definition at line 176 of file registers.hh.
using Gcn3ISA::VecRegU32 = typedef ::VecRegT<VecElemU32, NumVecElemPerVecReg, false> |
Definition at line 178 of file registers.hh.
using Gcn3ISA::VecRegU64 = typedef ::VecRegT<VecElemU64, NumVecElemPerVecReg, false> |
Definition at line 181 of file registers.hh.
using Gcn3ISA::VecRegU8 = typedef ::VecRegT<VecElemU8, NumVecElemPerVecReg, false> |
Definition at line 174 of file registers.hh.
enum Gcn3ISA::OpSelector : int |
Definition at line 49 of file registers.hh.
|
inline |
Definition at line 121 of file inst_util.hh.
References popCount(), and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_BCNT0_I32_B32::execute(), and Gcn3ISA::Inst_SOP1__S_BCNT0_I32_B64::execute().
|
inline |
Definition at line 164 of file inst_util.hh.
References findMsbSet(), and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_FLBIT_I32_B32::execute(), and Gcn3ISA::Inst_SOP1__S_FLBIT_I32_B64::execute().
int Gcn3ISA::dppInstImpl | ( | SqDPPVals | dppCtrl, |
int | currLane, | ||
int | rowNum, | ||
int | rowOffset, | ||
bool & | outOfBounds | ||
) |
dppInstImpl is a helper function that performs the inputted operation on the inputted vector register lane.
The returned output lane represents the input lane given the destination lane and DPP_CTRL word.
Currently the values are: 0x0 - 0xFF: full permute of four threads 0x100: reserved 0x101 - 0x10F: row shift right by 1-15 threads 0x111 - 0x11F: row shift right by 1-15 threads 0x121 - 0x12F: row shift right by 1-15 threads 0x130: wavefront left shift by 1 thread 0x134: wavefront left rotate by 1 thread 0x138: wavefront right shift by 1 thread 0x13C: wavefront right rotate by 1 thread 0x140: mirror threads within row 0x141: mirror threads within 1/2 row (8 threads) 0x142: broadcast 15th thread of each row to next row 0x143: broadcast thread 31 to rows 2 and 3
Definition at line 319 of file inst_util.hh.
References X86ISA::count, NumVecElemPerVecReg(), panic, ROW_SIZE, SQ_DPP_QUAD_PERM_MAX, SQ_DPP_RESERVED, SQ_DPP_ROW_BCAST15, SQ_DPP_ROW_BCAST31, SQ_DPP_ROW_HALF_MIRROR, SQ_DPP_ROW_MIRROR, SQ_DPP_ROW_RR1, SQ_DPP_ROW_RR15, SQ_DPP_ROW_SL1, SQ_DPP_ROW_SL15, SQ_DPP_ROW_SR1, SQ_DPP_ROW_SR15, SQ_DPP_WF_RL1, SQ_DPP_WF_RR1, SQ_DPP_WF_SL1, and SQ_DPP_WF_SR1.
Referenced by processDPP().
|
inline |
Definition at line 142 of file inst_util.hh.
References findLsbSet(), and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_FF1_I32_B32::execute(), Gcn3ISA::Inst_SOP1__S_FF1_I32_B64::execute(), Gcn3ISA::Inst_VOP1__V_FFBL_B32::execute(), and Gcn3ISA::Inst_VOP3__V_FFBL_B32::execute().
|
inline |
Definition at line 153 of file inst_util.hh.
References findMsbSet(), and X86ISA::val.
Referenced by Gcn3ISA::Inst_VOP1__V_FFBH_U32::execute(), and Gcn3ISA::Inst_VOP3__V_FFBH_U32::execute().
|
inline |
Definition at line 131 of file inst_util.hh.
References findLsbSet(), and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_FF0_I32_B32::execute(), and Gcn3ISA::Inst_SOP1__S_FF0_I32_B64::execute().
|
inline |
Definition at line 174 of file inst_util.hh.
References X86ISA::count, ArmISA::i, and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_FLBIT_I32::execute(), Gcn3ISA::Inst_SOP1__S_FLBIT_I32_I64::execute(), Gcn3ISA::Inst_VOP1__V_FFBH_I32::execute(), and Gcn3ISA::Inst_VOP3__V_FFBH_I32::execute().
|
inline |
Definition at line 210 of file inst_util.hh.
References X86ISA::count, ArmISA::i, ULL, and X86ISA::val.
bool Gcn3ISA::isConstVal | ( | int | opIdx | ) |
Definition at line 186 of file registers.cc.
References isNegConstVal(), and isPosConstVal().
Referenced by Gcn3ISA::ScalarOperand< DataType, Const, sizeof(DataType)/sizeof(VecElemU32) >::readSpecialVal().
bool Gcn3ISA::isExecMask | ( | int | opIdx | ) |
Definition at line 199 of file registers.cc.
References REG_EXEC_HI, and REG_EXEC_LO.
Referenced by Gcn3ISA::GCN3GPUStaticInst::isExecMaskRegister().
bool Gcn3ISA::isFlatScratchReg | ( | int | opIdx | ) |
Definition at line 211 of file registers.cc.
References REG_FLAT_SCRATCH_HI, and REG_FLAT_SCRATCH_LO.
Referenced by Gcn3ISA::GCN3GPUStaticInst::isFlatScratchRegister().
bool Gcn3ISA::isLiteral | ( | int | opIdx | ) |
Definition at line 193 of file registers.cc.
References REG_SRC_LITERAL.
bool Gcn3ISA::isNegConstVal | ( | int | opIdx | ) |
Definition at line 177 of file registers.cc.
References REG_INT_CONST_NEG_MAX, and REG_INT_CONST_NEG_MIN.
Referenced by isConstVal(), and Gcn3ISA::GPUISA::readConstVal().
bool Gcn3ISA::isPosConstVal | ( | int | opIdx | ) |
Definition at line 168 of file registers.cc.
References REG_INT_CONST_POS_MAX, and REG_INT_CONST_POS_MIN.
Referenced by isConstVal(), and Gcn3ISA::GPUISA::readConstVal().
bool Gcn3ISA::isScalarReg | ( | int | opIdx | ) |
Definition at line 217 of file registers.cc.
References REG_FLAT_SCRATCH_HI, REG_FLAT_SCRATCH_LO, REG_SGPR_MAX, REG_VCC_HI, and REG_VCC_LO.
Referenced by Gcn3ISA::Inst_SOP2::isScalarRegister(), Gcn3ISA::Inst_SOPK::isScalarRegister(), Gcn3ISA::Inst_SOP1::isScalarRegister(), Gcn3ISA::Inst_SOPC::isScalarRegister(), Gcn3ISA::Inst_SMEM::isScalarRegister(), Gcn3ISA::Inst_VOP2::isScalarRegister(), Gcn3ISA::Inst_VOP1::isScalarRegister(), Gcn3ISA::Inst_VOPC::isScalarRegister(), Gcn3ISA::Inst_VOP3::isScalarRegister(), Gcn3ISA::Inst_VOP3_SDST_ENC::isScalarRegister(), Gcn3ISA::ScalarOperand< DataType, Const, sizeof(DataType)/sizeof(VecElemU32) >::read(), and Gcn3ISA::ScalarOperand< DataType, Const, sizeof(DataType)/sizeof(VecElemU32) >::write().
bool Gcn3ISA::isVccReg | ( | int | opIdx | ) |
Definition at line 205 of file registers.cc.
References REG_VCC_HI, and REG_VCC_LO.
bool Gcn3ISA::isVectorReg | ( | int | opIdx | ) |
Definition at line 230 of file registers.cc.
References REG_VGPR_MAX, and REG_VGPR_MIN.
Referenced by Gcn3ISA::Inst_VOP2::isVectorRegister(), Gcn3ISA::Inst_VOP1::isVectorRegister(), Gcn3ISA::Inst_VOPC::isVectorRegister(), Gcn3ISA::Inst_VOP3::isVectorRegister(), Gcn3ISA::Inst_VOP3_SDST_ENC::isVectorRegister(), and Gcn3ISA::VecOperand< DataType, Const, NumDwords >::readSrc().
|
constexpr |
|
inline |
Definition at line 247 of file inst_util.hh.
Referenced by Gcn3ISA::Inst_VOP3__V_MED3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_I32::execute(), and Gcn3ISA::Inst_VOP3__V_MED3_U32::execute().
|
inline |
Definition at line 286 of file inst_util.hh.
|
inline |
Definition at line 272 of file inst_util.hh.
Referenced by Gcn3ISA::Inst_VOP3__V_MAD_U64_U32::execute(), and Gcn3ISA::Inst_VOP3__V_MAD_I64_I32::execute().
const int Gcn3ISA::NumVecElemPerVecReg | ( | 64 | ) |
Referenced by Gcn3ISA::Inst_DS::calcAddr(), Gcn3ISA::Inst_MUBUF::calcAddr(), Gcn3ISA::Inst_FLAT::calcAddr(), Gcn3ISA::Inst_DS__DS_READ_B32::completeAcc(), Gcn3ISA::Inst_DS__DS_READ2_B32::completeAcc(), Gcn3ISA::Inst_DS__DS_READ2ST64_B32::completeAcc(), Gcn3ISA::Inst_DS__DS_READ_U8::completeAcc(), Gcn3ISA::Inst_DS__DS_READ_U16::completeAcc(), Gcn3ISA::Inst_DS__DS_READ_B64::completeAcc(), Gcn3ISA::Inst_DS__DS_READ2_B64::completeAcc(), Gcn3ISA::Inst_DS__DS_READ2ST64_B64::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_UBYTE::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_USHORT::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORD::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORDX2::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORDX3::completeAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_LOAD_DWORDX4::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_UBYTE::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_USHORT::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORD::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX2::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX3::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_LOAD_DWORDX4::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SWAP::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SUB::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_INC::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_DEC::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD_X2::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SUB_X2::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_INC_X2::completeAcc(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_DEC_X2::completeAcc(), dppInstImpl(), Gcn3ISA::Inst_VOP2__V_CNDMASK_B32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_F32::execute(), Gcn3ISA::Inst_VOP2__V_SUB_F32::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_F32::execute(), Gcn3ISA::Inst_VOP2__V_MUL_I32_I24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_HI_I32_I24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_MUL_HI_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_MIN_F32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_F32::execute(), Gcn3ISA::Inst_VOP2__V_MIN_I32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_I32::execute(), Gcn3ISA::Inst_VOP2__V_MIN_U32::execute(), Gcn3ISA::Inst_VOP2__V_MAX_U32::execute(), Gcn3ISA::Inst_VOP2__V_LSHRREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_ASHRREV_I32::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_AND_B32::execute(), Gcn3ISA::Inst_VOP2__V_OR_B32::execute(), Gcn3ISA::Inst_VOP2__V_XOR_B32::execute(), Gcn3ISA::Inst_VOP2__V_MAC_F32::execute(), Gcn3ISA::Inst_VOP2__V_MADMK_F32::execute(), Gcn3ISA::Inst_VOP2__V_MADAK_F32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUB_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_U32::execute(), Gcn3ISA::Inst_VOP2__V_ADDC_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBB_U32::execute(), Gcn3ISA::Inst_VOP2__V_SUBBREV_U32::execute(), Gcn3ISA::Inst_VOP2__V_ADD_U16::execute(), Gcn3ISA::Inst_VOP2__V_SUB_U16::execute(), Gcn3ISA::Inst_VOP2__V_SUBREV_U16::execute(), Gcn3ISA::Inst_VOP2__V_MUL_LO_U16::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B16::execute(), Gcn3ISA::Inst_VOP2__V_LSHRREV_B16::execute(), Gcn3ISA::Inst_VOP2__V_ASHRREV_I16::execute(), Gcn3ISA::Inst_VOP2__V_MAX_U16::execute(), Gcn3ISA::Inst_VOP2__V_MAX_I16::execute(), Gcn3ISA::Inst_VOP2__V_MIN_U16::execute(), Gcn3ISA::Inst_VOP2__V_MIN_I16::execute(), Gcn3ISA::Inst_VOP1__V_MOV_B32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_I32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_I32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_I32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_U32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_U32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_RPI_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_FLR_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_F32::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE0::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE1::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE2::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F32_UBYTE3::execute(), Gcn3ISA::Inst_VOP1__V_CVT_U32_F64::execute(), Gcn3ISA::Inst_VOP1__V_CVT_F64_U32::execute(), Gcn3ISA::Inst_VOP1__V_TRUNC_F64::execute(), Gcn3ISA::Inst_VOP1__V_CEIL_F64::execute(), Gcn3ISA::Inst_VOP1__V_RNDNE_F64::execute(), Gcn3ISA::Inst_VOP1__V_FLOOR_F64::execute(), Gcn3ISA::Inst_VOP1__V_FRACT_F32::execute(), Gcn3ISA::Inst_VOP1__V_TRUNC_F32::execute(), Gcn3ISA::Inst_VOP1__V_CEIL_F32::execute(), Gcn3ISA::Inst_VOP1__V_RNDNE_F32::execute(), Gcn3ISA::Inst_VOP1__V_FLOOR_F32::execute(), Gcn3ISA::Inst_VOP1__V_EXP_F32::execute(), Gcn3ISA::Inst_VOP1__V_LOG_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_IFLAG_F32::execute(), Gcn3ISA::Inst_VOP1__V_RSQ_F32::execute(), Gcn3ISA::Inst_VOP1__V_RCP_F64::execute(), Gcn3ISA::Inst_VOP1__V_RSQ_F64::execute(), Gcn3ISA::Inst_VOP1__V_SQRT_F32::execute(), Gcn3ISA::Inst_VOP1__V_SQRT_F64::execute(), Gcn3ISA::Inst_VOP1__V_SIN_F32::execute(), Gcn3ISA::Inst_VOP1__V_COS_F32::execute(), Gcn3ISA::Inst_VOP1__V_NOT_B32::execute(), Gcn3ISA::Inst_VOP1__V_BFREV_B32::execute(), Gcn3ISA::Inst_VOP1__V_FFBH_U32::execute(), Gcn3ISA::Inst_VOP1__V_FFBL_B32::execute(), Gcn3ISA::Inst_VOP1__V_FFBH_I32::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_EXP_I32_F64::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_MANT_F64::execute(), Gcn3ISA::Inst_VOP1__V_FRACT_F64::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_EXP_I32_F32::execute(), Gcn3ISA::Inst_VOP1__V_FREXP_MANT_F32::execute(), Gcn3ISA::Inst_VOP1__V_EXP_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP1__V_LOG_LEGACY_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_CLASS_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_CLASS_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_CLASS_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_CLASS_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_O_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_U_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NEQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_TRU_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_O_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_U_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLG_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLE_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NEQ_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLT_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_TRU_F32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_O_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_U_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NGT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NEQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NLT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_TRU_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_O_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_U_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLG_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NGT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLE_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NEQ_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NLT_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_TRU_F64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U16::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U32::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_F_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_EQ_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_LE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_NE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_GE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMP_T_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_I64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_F_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_EQ_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_LE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GT_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_NE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_GE_U64::execute(), Gcn3ISA::Inst_VOPC__V_CMPX_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_CLASS_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_CLASS_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_CLASS_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_CLASS_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_O_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_U_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NEQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_O_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_U_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLG_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLE_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NEQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLT_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_O_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_U_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NGT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NEQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NLT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_TRU_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_O_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_U_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLG_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NGT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLE_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NEQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NLT_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_TRU_F64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U16::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U32::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_F_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_EQ_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_LE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_NE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_GE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMP_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_I64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_F_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_EQ_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_LE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GT_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_NE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_GE_U64::execute(), Gcn3ISA::Inst_VOP3__V_CMPX_T_U64::execute(), Gcn3ISA::Inst_VOP3__V_CNDMASK_B32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_F32::execute(), Gcn3ISA::Inst_VOP3__V_SUB_F32::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_F32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_MIN_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_F32::execute(), Gcn3ISA::Inst_VOP3__V_MIN_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_I32::execute(), Gcn3ISA::Inst_VOP3__V_MIN_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAX_U32::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I32::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_AND_B32::execute(), Gcn3ISA::Inst_VOP3__V_OR_B32::execute(), Gcn3ISA::Inst_VOP3__V_XOR_B32::execute(), Gcn3ISA::Inst_VOP3__V_MAC_F32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUB_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_U32::execute(), Gcn3ISA::Inst_VOP3__V_ADDC_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBB_U32::execute(), Gcn3ISA::Inst_VOP3__V_SUBBREV_U32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_U16::execute(), Gcn3ISA::Inst_VOP3__V_SUB_U16::execute(), Gcn3ISA::Inst_VOP3__V_SUBREV_U16::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LO_U16::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B16::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B16::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I16::execute(), Gcn3ISA::Inst_VOP3__V_MAX_U16::execute(), Gcn3ISA::Inst_VOP3__V_MAX_I16::execute(), Gcn3ISA::Inst_VOP3__V_MIN_U16::execute(), Gcn3ISA::Inst_VOP3__V_MIN_I16::execute(), Gcn3ISA::Inst_VOP3__V_MOV_B32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_I32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_I32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_I32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_U32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_U32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_RPI_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_FLR_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_F32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE0::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE1::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE2::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F32_UBYTE3::execute(), Gcn3ISA::Inst_VOP3__V_CVT_U32_F64::execute(), Gcn3ISA::Inst_VOP3__V_CVT_F64_U32::execute(), Gcn3ISA::Inst_VOP3__V_TRUNC_F64::execute(), Gcn3ISA::Inst_VOP3__V_CEIL_F64::execute(), Gcn3ISA::Inst_VOP3__V_RNDNE_F64::execute(), Gcn3ISA::Inst_VOP3__V_FLOOR_F64::execute(), Gcn3ISA::Inst_VOP3__V_FRACT_F32::execute(), Gcn3ISA::Inst_VOP3__V_TRUNC_F32::execute(), Gcn3ISA::Inst_VOP3__V_CEIL_F32::execute(), Gcn3ISA::Inst_VOP3__V_RNDNE_F32::execute(), Gcn3ISA::Inst_VOP3__V_FLOOR_F32::execute(), Gcn3ISA::Inst_VOP3__V_EXP_F32::execute(), Gcn3ISA::Inst_VOP3__V_LOG_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_IFLAG_F32::execute(), Gcn3ISA::Inst_VOP3__V_RSQ_F32::execute(), Gcn3ISA::Inst_VOP3__V_RCP_F64::execute(), Gcn3ISA::Inst_VOP3__V_RSQ_F64::execute(), Gcn3ISA::Inst_VOP3__V_SQRT_F32::execute(), Gcn3ISA::Inst_VOP3__V_SQRT_F64::execute(), Gcn3ISA::Inst_VOP3__V_SIN_F32::execute(), Gcn3ISA::Inst_VOP3__V_COS_F32::execute(), Gcn3ISA::Inst_VOP3__V_NOT_B32::execute(), Gcn3ISA::Inst_VOP3__V_BFREV_B32::execute(), Gcn3ISA::Inst_VOP3__V_FFBH_U32::execute(), Gcn3ISA::Inst_VOP3__V_FFBL_B32::execute(), Gcn3ISA::Inst_VOP3__V_FFBH_I32::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_EXP_I32_F64::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_MANT_F64::execute(), Gcn3ISA::Inst_VOP3__V_FRACT_F64::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_EXP_I32_F32::execute(), Gcn3ISA::Inst_VOP3__V_FREXP_MANT_F32::execute(), Gcn3ISA::Inst_VOP3__V_EXP_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_LOG_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_LEGACY_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I32_I24::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U32_U24::execute(), Gcn3ISA::Inst_VOP3__V_BFE_U32::execute(), Gcn3ISA::Inst_VOP3__V_BFE_I32::execute(), Gcn3ISA::Inst_VOP3__V_BFI_B32::execute(), Gcn3ISA::Inst_VOP3__V_FMA_F32::execute(), Gcn3ISA::Inst_VOP3__V_FMA_F64::execute(), Gcn3ISA::Inst_VOP3__V_LERP_U8::execute(), Gcn3ISA::Inst_VOP3__V_ALIGNBIT_B32::execute(), Gcn3ISA::Inst_VOP3__V_ALIGNBYTE_B32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MIN3_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAX3_U32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_F32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_I32::execute(), Gcn3ISA::Inst_VOP3__V_MED3_U32::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U8::execute(), Gcn3ISA::Inst_VOP3__V_SAD_HI_U8::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U16::execute(), Gcn3ISA::Inst_VOP3__V_SAD_U32::execute(), Gcn3ISA::Inst_VOP3__V_CVT_PK_U8_F32::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FIXUP_F32::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FIXUP_F64::execute(), Gcn3ISA::Inst_VOP3__V_DIV_SCALE_F32::execute(), Gcn3ISA::Inst_VOP3__V_DIV_SCALE_F64::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FMAS_F32::execute(), Gcn3ISA::Inst_VOP3__V_DIV_FMAS_F64::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U64_U32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I64_I32::execute(), Gcn3ISA::Inst_VOP3__V_MAD_U16::execute(), Gcn3ISA::Inst_VOP3__V_MAD_I16::execute(), Gcn3ISA::Inst_VOP3__V_PERM_B32::execute(), Gcn3ISA::Inst_VOP3__V_ADD_F64::execute(), Gcn3ISA::Inst_VOP3__V_MUL_F64::execute(), Gcn3ISA::Inst_VOP3__V_MIN_F64::execute(), Gcn3ISA::Inst_VOP3__V_MAX_F64::execute(), Gcn3ISA::Inst_VOP3__V_LDEXP_F64::execute(), Gcn3ISA::Inst_VOP3__V_MUL_LO_U32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_U32::execute(), Gcn3ISA::Inst_VOP3__V_MUL_HI_I32::execute(), Gcn3ISA::Inst_VOP3__V_LDEXP_F32::execute(), Gcn3ISA::Inst_VOP3__V_BCNT_U32_B32::execute(), Gcn3ISA::Inst_VOP3__V_MBCNT_LO_U32_B32::execute(), Gcn3ISA::Inst_VOP3__V_MBCNT_HI_U32_B32::execute(), Gcn3ISA::Inst_VOP3__V_LSHLREV_B64::execute(), Gcn3ISA::Inst_VOP3__V_LSHRREV_B64::execute(), Gcn3ISA::Inst_VOP3__V_ASHRREV_I64::execute(), Gcn3ISA::Inst_VOP3__V_BFM_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE2ST64_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B8::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B16::execute(), Gcn3ISA::Inst_DS__DS_SWIZZLE_B32::execute(), Gcn3ISA::Inst_DS__DS_PERMUTE_B32::execute(), Gcn3ISA::Inst_DS__DS_BPERMUTE_B32::execute(), Gcn3ISA::Inst_DS__DS_WRITE_B64::execute(), Gcn3ISA::Inst_DS__DS_WRITE2_B64::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORDX2::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORDX3::execute(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORDX4::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SWAP::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SUB::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_INC::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_DEC::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_ADD_X2::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_SUB_X2::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_INC_X2::execute(), Gcn3ISA::Inst_FLAT__FLAT_ATOMIC_DEC_X2::execute(), Gcn3ISA::Inst_DS::initDualMemRead(), Gcn3ISA::Inst_DS::initDualMemWrite(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_BYTE::initiateAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_SHORT::initiateAcc(), Gcn3ISA::Inst_MUBUF__BUFFER_STORE_DWORD::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_BYTE::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_SHORT::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORD::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX2::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX3::initiateAcc(), Gcn3ISA::Inst_FLAT__FLAT_STORE_DWORDX4::initiateAcc(), Gcn3ISA::Inst_DS::initMemRead(), initMemReqHelper(), Gcn3ISA::Inst_DS::initMemWrite(), Gcn3ISA::VecOperand< DataType, Const, NumDwords >::operator[](), processDPP(), Gcn3ISA::VecOperand< DataType, Const, NumDwords >::read(), sdwaInstDstImpl(), sdwaInstSrcImpl(), and Gcn3ISA::VecOperand< DataType, Const, NumDwords >::write().
int Gcn3ISA::opSelectorToRegIdx | ( | int | idx, |
int | numScalarRegs | ||
) |
the VCC register occupies the two highest numbered SRF entries. VCC is typically indexed by specifying VCC_LO (simply called VCC) in the instruction encoding and reading it as a 64b value so we only return the index to the lower half of the VCC register.
VCC_LO = s[NUM_SGPRS - 2] VCC_HI = s[NUM_SGPRS - 1]
the FLAT_SCRATCH register occupies the two SRF entries just below VCC. FLAT_SCRATCH is typically indexed by specifying FLAT_SCRATCH_LO (simply called FLAT_SCRATCH) in the instruction encoding and reading it as a 64b value so we only return the index to the lower half of the FLAT_SCRATCH register.
FLAT_SCRATCH_LO = s[NUM_SGPRS - 4] FLAT_SCRATCH_HI = s[NUM_SGPRS - 3]
Definition at line 123 of file registers.cc.
References REG_FLAT_SCRATCH_HI, REG_FLAT_SCRATCH_LO, REG_SGPR_MAX, REG_VCC_HI, REG_VCC_LO, REG_VGPR_MAX, and REG_VGPR_MIN.
Referenced by Gcn3ISA::Inst_SOP2::getRegisterIndex(), Gcn3ISA::Inst_SOPK::getRegisterIndex(), Gcn3ISA::Inst_SOP1::getRegisterIndex(), Gcn3ISA::Inst_SOPC::getRegisterIndex(), Gcn3ISA::Inst_SMEM::getRegisterIndex(), Gcn3ISA::Inst_VOP2::getRegisterIndex(), Gcn3ISA::Inst_VOP1::getRegisterIndex(), Gcn3ISA::Inst_VOPC::getRegisterIndex(), Gcn3ISA::Inst_VOP3::getRegisterIndex(), Gcn3ISA::Inst_VOP3_SDST_ENC::getRegisterIndex(), and Gcn3ISA::VecOperand< DataType, Const, NumDwords >::readSrc().
std::string Gcn3ISA::opSelectorToRegSym | ( | int | idx, |
int | numRegs | ||
) |
Definition at line 41 of file registers.cc.
References fatal, REG_EXEC_LO, REG_FLAT_SCRATCH_HI, REG_FLAT_SCRATCH_LO, REG_INT_CONST_NEG_MAX, REG_INT_CONST_NEG_MIN, REG_INT_CONST_POS_MAX, REG_INT_CONST_POS_MIN, REG_M0, REG_NEG_FOUR, REG_NEG_HALF, REG_NEG_ONE, REG_NEG_TWO, REG_POS_FOUR, REG_POS_HALF, REG_POS_ONE, REG_POS_TWO, REG_SGPR_MAX, REG_VCC_LO, REG_VGPR_MAX, REG_VGPR_MIN, REG_ZERO, and sc_dt::to_string().
Referenced by Gcn3ISA::Inst_SOP2::generateDisassembly(), Gcn3ISA::Inst_SOPK::generateDisassembly(), Gcn3ISA::Inst_SOP1::generateDisassembly(), Gcn3ISA::Inst_SOPC::generateDisassembly(), Gcn3ISA::Inst_VOP2::generateDisassembly(), Gcn3ISA::Inst_VOP1::generateDisassembly(), Gcn3ISA::Inst_VOPC::generateDisassembly(), Gcn3ISA::Inst_VOP3::generateDisassembly(), and Gcn3ISA::Inst_VOP3_SDST_ENC::generateDisassembly().
void Gcn3ISA::processDPP | ( | GPUDynInstPtr | gpuDynInst, |
InFmt_VOP_DPP | dppInst, | ||
T & | src0 | ||
) |
processDPP is a helper function for implementing Data Parallel Primitive instructions.
This function may be called by many different VOP1 instructions to do operations within a register.
STEP 1a: check if the absolute value (ABS) or negation (NEG) tags are set. If so, do the appropriate action(s) on src0 and/or src1.
NOTE: ABS takes priority over NEG.
STEP 2: check the row and bank mask values. These determine which threads are enabled for the subsequent DPP_CTRL operations.
STEP 4: Handle the potential values of DPP_CTRL: 0x0 - 0xFF: full permute of four threads 0x100: reserved 0x101 - 0x10F: row shift right by 1-15 threads 0x111 - 0x11F: row shift right by 1-15 threads 0x121 - 0x12F: row shift right by 1-15 threads 0x130: wavefront left shift by 1 thread 0x134: wavefront left rotate by 1 thread 0x138: wavefront right shift by 1 thread 0x13C: wavefront right rotate by 1 thread 0x140: mirror threads within row 0x141: mirror threads within 1/2 row (8 threads) 0x142: broadcast 15th thread of each row to next row 0x143: broadcast thread 31 to rows 2 and 3
STEP 4: Implement bound control for disabled threads. If thread is disabled but boundCtrl is set, then we need to set the source data to 0 (i.e., set this lane to 0).
Definition at line 416 of file inst_util.hh.
References Gcn3ISA::InFmt_VOP_DPP::BANK_MASK, Gcn3ISA::InFmt_VOP_DPP::BOUND_CTRL, Gcn3ISA::InFmt_VOP_DPP::DPP_CTRL, dppInstImpl(), LL, NUM_BANKS, NumVecElemPerVecReg(), Gcn3ISA::InFmt_VOP_DPP::ROW_MASK, ROW_SIZE, Gcn3ISA::InFmt_VOP_DPP::SRC0_ABS, and Gcn3ISA::InFmt_VOP_DPP::SRC0_NEG.
Referenced by Gcn3ISA::Inst_VOP2__V_ADD_F32::execute(), Gcn3ISA::Inst_VOP2__V_MAC_F32::execute(), Gcn3ISA::Inst_VOP1__V_MOV_B32::execute(), and processDPP().
void Gcn3ISA::processDPP | ( | GPUDynInstPtr | gpuDynInst, |
InFmt_VOP_DPP | dppInst, | ||
T & | src0, | ||
T & | src1 | ||
) |
processDPP is a helper function for implementing Data Parallel Primitive instructions.
This function may be called by many different VOP2/VOPC instructions to do operations within a register.
STEP 1b: check if the absolute value (ABS) or negation (NEG) tags are set. If so, do the appropriate action(s) on src0 and/or src1.
NOTE: ABS takes priority over NEG.
Definition at line 525 of file inst_util.hh.
References processDPP(), Gcn3ISA::InFmt_VOP_DPP::SRC1_ABS, and Gcn3ISA::InFmt_VOP_DPP::SRC1_NEG.
void Gcn3ISA::processSDWA_dst | ( | InFmt_VOP_SDWA | sdwaInst, |
T & | dst, | ||
T & | origDst | ||
) |
processSDWA_dst is a helper function for implementing sub d-word addressing instructions for the dst operand.
This function may be called by many different VOP1/VOP2/VOPC instructions to do operations within a register. processSDWA_dst is called after the math, while processSDWA_src is called before the math.
STEP 1: select the appropriate bits for dst and pad/sign-extend as appropriate.
Definition at line 880 of file inst_util.hh.
References Gcn3ISA::InFmt_VOP_SDWA::CLAMP, Gcn3ISA::InFmt_VOP_SDWA::DST_SEL, Gcn3ISA::InFmt_VOP_SDWA::DST_UNUSED, and sdwaInstDstImpl().
Referenced by Gcn3ISA::Inst_VOP2__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_OR_B32::execute(), and Gcn3ISA::Inst_VOP2__V_ADD_U32::execute().
void Gcn3ISA::processSDWA_src | ( | InFmt_VOP_SDWA | sdwaInst, |
T & | src0, | ||
T & | origSrc0 | ||
) |
processSDWA_src is a helper function for implementing sub d-word addressing instructions for the src operands.
This function may be called by many different VOP1 instructions to do operations within a register. processSDWA_dst is called after the math, while processSDWA_src is called before the math.
Definition at line 824 of file inst_util.hh.
References processSDWA_src_helper(), Gcn3ISA::InFmt_VOP_SDWA::SRC0_ABS, Gcn3ISA::InFmt_VOP_SDWA::SRC0_NEG, Gcn3ISA::InFmt_VOP_SDWA::SRC0_SEL, Gcn3ISA::InFmt_VOP_SDWA::SRC0_SEXT, Gcn3ISA::InFmt_VOP_SDWA::SRC1_ABS, Gcn3ISA::InFmt_VOP_SDWA::SRC1_NEG, and Gcn3ISA::InFmt_VOP_SDWA::SRC1_SEXT.
Referenced by Gcn3ISA::Inst_VOP2__V_MUL_U32_U24::execute(), Gcn3ISA::Inst_VOP2__V_LSHLREV_B32::execute(), Gcn3ISA::Inst_VOP2__V_OR_B32::execute(), and Gcn3ISA::Inst_VOP2__V_ADD_U32::execute().
void Gcn3ISA::processSDWA_src | ( | InFmt_VOP_SDWA | sdwaInst, |
T & | src0, | ||
T & | origSrc0, | ||
T & | src1, | ||
T & | origSrc1 | ||
) |
processSDWA_src is a helper function for implementing sub d-word addressing instructions.
This function may be called by many different VOP2/VOPC instructions to do operations within a register. processSDWA_dst is called after the math, while processSDWA_src is called before the math.
Definition at line 852 of file inst_util.hh.
References processSDWA_src_helper(), Gcn3ISA::InFmt_VOP_SDWA::SRC0_ABS, Gcn3ISA::InFmt_VOP_SDWA::SRC0_NEG, Gcn3ISA::InFmt_VOP_SDWA::SRC0_SEL, Gcn3ISA::InFmt_VOP_SDWA::SRC0_SEXT, Gcn3ISA::InFmt_VOP_SDWA::SRC1_ABS, Gcn3ISA::InFmt_VOP_SDWA::SRC1_NEG, Gcn3ISA::InFmt_VOP_SDWA::SRC1_SEL, and Gcn3ISA::InFmt_VOP_SDWA::SRC1_SEXT.
void Gcn3ISA::processSDWA_src_helper | ( | T & | currSrc, |
T & | origCurrSrc, | ||
const SDWASelVals | src_sel, | ||
const bool | src_signExt, | ||
const bool | src_abs, | ||
const bool | src_neg | ||
) |
processSDWA_srcHelper is a helper function for implementing sub d-word addressing instructions for the src operands.
This function may be called by many different VOP1/VOP2/VOPC instructions to do operations within a register. This function is also agnostic of which operand it is operating on, so that it can be called for any src operand.
STEP 1: check if the absolute value (ABS) or negation (NEG) tags are set. If so, do the appropriate action(s) on the src operand.
NOTE: According to the CSim implementation, ABS takes priority over NEG.
STEP 2: select the appropriate bits for each lane of source operand.
Definition at line 789 of file inst_util.hh.
References sdwaInstSrcImpl().
Referenced by processSDWA_src().
|
inline |
Definition at line 104 of file inst_util.hh.
References bits(), ArmISA::mask, and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_QUADMASK_B32::execute(), and Gcn3ISA::Inst_SOP1__S_QUADMASK_B64::execute().
|
inline |
Definition at line 259 of file inst_util.hh.
References X86ISA::val.
Referenced by Gcn3ISA::Inst_VOP1__V_RNDNE_F64::execute(), Gcn3ISA::Inst_VOP1__V_RNDNE_F32::execute(), Gcn3ISA::Inst_VOP3__V_RNDNE_F64::execute(), and Gcn3ISA::Inst_VOP3__V_RNDNE_F32::execute().
void Gcn3ISA::sdwaInstDstImpl | ( | T & | dstOper, |
T & | origDstOper, | ||
const bool | clamp, | ||
const SDWASelVals | sel, | ||
const SDWADstVals | unusedBits_format | ||
) |
sdwaInstDestImpl is a helper function that selects the appropriate bits/bytes for the inputted dest operand of an SDWA instruction, does the appropriate masking/padding/sign extending for the non-selected bits/bytes, and updates the operands values with the resultant value.
The desired behavior is:
Definition at line 768 of file inst_util.hh.
References NumVecElemPerVecReg(), sdwaInstDstImpl_helper(), and ArmISA::sel.
Referenced by processSDWA_dst().
T Gcn3ISA::sdwaInstDstImpl_helper | ( | T | currDstVal, |
const T | origDstVal, | ||
const bool | clamp, | ||
const SDWASelVals | sel, | ||
const SDWADstVals | unusedBits_format | ||
) |
sdwaInstDstImpl_helper contains the per-lane code for selecting the appropriate bytes/words of the lane and doing the appropriate masking/padding/sign extending.
It returns the value after these operations are done on it.
Definition at line 667 of file inst_util.hh.
References bits(), BITS_PER_BYTE, BITS_PER_WORD, insertBits(), MSB_PER_BYTE, MSB_PER_WORD, panic, SDWA_DWORD, SDWA_UNUSED_PRESERVE, SDWA_UNUSED_SEXT, SDWA_WORD_0, and ArmISA::sel.
Referenced by sdwaInstDstImpl().
void Gcn3ISA::sdwaInstSrcImpl | ( | T & | currOper, |
T & | origCurrOper, | ||
const SDWASelVals | sel, | ||
const bool | signExt | ||
) |
sdwaInstSrcImpl is a helper function that selects the appropriate bits/bytes for each lane of the inputted source operand of an SDWA instruction, does the appropriate masking/padding/sign extending for the non-selected bits/bytes, and updates the operands values with the resultant value.
The desired behavior is:
Definition at line 648 of file inst_util.hh.
References NumVecElemPerVecReg(), sdwaInstSrcImpl_helper(), and ArmISA::sel.
Referenced by processSDWA_src_helper().
T Gcn3ISA::sdwaInstSrcImpl_helper | ( | T | currOperVal, |
const T | origOperVal, | ||
const SDWASelVals | sel, | ||
const bool | signExt | ||
) |
sdwaInstSrcImpl_helper contains the per-lane code for selecting the appropriate bytes/words of the lane and doing the appropriate masking/padding/sign extending.
It returns the value after these operations are done on it.
Definition at line 555 of file inst_util.hh.
References bits(), BITS_PER_BYTE, BITS_PER_WORD, fatal_if, MSB_PER_BYTE, MSB_PER_WORD, panic, SDWA_DWORD, SDWA_WORD_0, and ArmISA::sel.
Referenced by sdwaInstSrcImpl().
|
inline |
Definition at line 90 of file inst_util.hh.
References bits(), ArmISA::mask, and X86ISA::val.
Referenced by Gcn3ISA::Inst_SOP1__S_WQM_B32::execute(), and Gcn3ISA::Inst_SOP1__S_WQM_B64::execute().
const int Gcn3ISA::BITS_PER_BYTE = 8 |
Definition at line 144 of file registers.hh.
Referenced by sdwaInstDstImpl_helper(), and sdwaInstSrcImpl_helper().
const int Gcn3ISA::BITS_PER_WORD = 16 |
Definition at line 145 of file registers.hh.
Referenced by sdwaInstDstImpl_helper(), and sdwaInstSrcImpl_helper().
const int Gcn3ISA::MSB_PER_BYTE = (BITS_PER_BYTE - 1) |
Definition at line 146 of file registers.hh.
Referenced by sdwaInstDstImpl_helper(), and sdwaInstSrcImpl_helper().
const int Gcn3ISA::MSB_PER_WORD = (BITS_PER_WORD - 1) |
Definition at line 147 of file registers.hh.
Referenced by sdwaInstDstImpl_helper(), and sdwaInstSrcImpl_helper().
const int Gcn3ISA::NumNegConstRegs |
Definition at line 142 of file registers.hh.
const int Gcn3ISA::NumPosConstRegs |
Definition at line 139 of file registers.hh.