gem5  v20.1.0.0
Namespaces | Enumerations | Functions | Variables
inst_util.hh File Reference
#include <cmath>
#include "arch/gcn3/registers.hh"

Go to the source code of this file.

Namespaces

 Gcn3ISA
 classes that represnt vector/scalar operands in GCN3 ISA.
 

Enumerations

enum  SDWASelVals : int {
  SDWA_BYTE_0 = 0, SDWA_BYTE_1 = 1, SDWA_BYTE_2 = 2, SDWA_BYTE_3 = 3,
  SDWA_WORD_0 = 4, SDWA_WORD_1 = 5, SDWA_DWORD = 6
}
 
enum  SDWADstVals : int { SDWA_UNUSED_PAD = 0, SDWA_UNUSED_SEXT = 1, SDWA_UNUSED_PRESERVE = 2 }
 
enum  SqDPPVals : int {
  SQ_DPP_QUAD_PERM_MAX = 0xFF, SQ_DPP_RESERVED = 0x100, SQ_DPP_ROW_SL1 = 0x101, SQ_DPP_ROW_SL15 = 0x10F,
  SQ_DPP_ROW_SR1 = 0x111, SQ_DPP_ROW_SR15 = 0x11F, SQ_DPP_ROW_RR1 = 0x121, SQ_DPP_ROW_RR15 = 0x12F,
  SQ_DPP_WF_SL1 = 0x130, SQ_DPP_WF_RL1 = 0x134, SQ_DPP_WF_SR1 = 0x138, SQ_DPP_WF_RR1 = 0x13C,
  SQ_DPP_ROW_MIRROR = 0x140, SQ_DPP_ROW_HALF_MIRROR = 0x141, SQ_DPP_ROW_BCAST15 = 0x142, SQ_DPP_ROW_BCAST31 = 0x143
}
 

Functions

template<typename T >
Gcn3ISA::wholeQuadMode (T val)
 
template<typename T >
Gcn3ISA::quadMask (T val)
 
template<typename T >
ScalarRegI32 Gcn3ISA::countZeroBits (T val)
 
template<typename T >
ScalarRegI32 Gcn3ISA::findFirstZero (T val)
 
template<typename T >
ScalarRegI32 Gcn3ISA::findFirstOne (T val)
 
template<typename T >
ScalarRegI32 Gcn3ISA::findFirstOneMsb (T val)
 
template<typename T >
ScalarRegI32 Gcn3ISA::countZeroBitsMsb (T val)
 
ScalarRegI32 Gcn3ISA::firstOppositeSignBit (ScalarRegI32 val)
 
ScalarRegI32 Gcn3ISA::firstOppositeSignBit (ScalarRegI64 val)
 
template<typename T >
Gcn3ISA::median (T val_0, T val_1, T val_2)
 
template<typename T >
Gcn3ISA::roundNearestEven (T val)
 
VecElemU32 Gcn3ISA::muladd (VecElemU64 &dst, VecElemU32 val_0, VecElemU32 val_1, VecElemU64 val_2)
 
VecElemU32 Gcn3ISA::muladd (VecElemI64 &dst, VecElemI32 val_0, VecElemI32 val_1, VecElemI64 val_2)
 
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. More...
 
template<typename T >
void Gcn3ISA::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 Gcn3ISA::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 >
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. More...
 
template<typename T >
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. More...
 
template<typename 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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 
template<typename T >
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. More...
 

Variables

static const int ROW_SIZE = 16
 
static const int NUM_BANKS = 4
 

Enumeration Type Documentation

◆ SDWADstVals

enum SDWADstVals : int
Enumerator
SDWA_UNUSED_PAD 
SDWA_UNUSED_SEXT 
SDWA_UNUSED_PRESERVE 

Definition at line 56 of file inst_util.hh.

◆ SDWASelVals

enum SDWASelVals : int
Enumerator
SDWA_BYTE_0 
SDWA_BYTE_1 
SDWA_BYTE_2 
SDWA_BYTE_3 
SDWA_WORD_0 
SDWA_WORD_1 
SDWA_DWORD 

Definition at line 44 of file inst_util.hh.

◆ SqDPPVals

enum SqDPPVals : int
Enumerator
SQ_DPP_QUAD_PERM_MAX 
SQ_DPP_RESERVED 
SQ_DPP_ROW_SL1 
SQ_DPP_ROW_SL15 
SQ_DPP_ROW_SR1 
SQ_DPP_ROW_SR15 
SQ_DPP_ROW_RR1 
SQ_DPP_ROW_RR15 
SQ_DPP_WF_SL1 
SQ_DPP_WF_RL1 
SQ_DPP_WF_SR1 
SQ_DPP_WF_RR1 
SQ_DPP_ROW_MIRROR 
SQ_DPP_ROW_HALF_MIRROR 
SQ_DPP_ROW_BCAST15 
SQ_DPP_ROW_BCAST31 

Definition at line 64 of file inst_util.hh.

Variable Documentation

◆ NUM_BANKS

const int NUM_BANKS = 4
static

Definition at line 84 of file inst_util.hh.

Referenced by Gcn3ISA::processDPP().

◆ ROW_SIZE

const int ROW_SIZE = 16
static

Definition at line 83 of file inst_util.hh.

Referenced by Gcn3ISA::dppInstImpl(), and Gcn3ISA::processDPP().


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