LLVM 22.0.0git
AMDGPUISelDAGToDAG.cpp File Reference

Defines an instruction selector for the AMDGPU target. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "amdgpu-isel"

Functions

 INITIALIZE_PASS_BEGIN (AMDGPUDAGToDAGISelLegacy, "amdgpu-isel", "AMDGPU DAG->DAG Pattern Instruction Selection", false, false) INITIALIZE_PASS_END(AMDGPUDAGToDAGISelLegacy
static bool getBaseWithOffsetUsingSplitOR (SelectionDAG &DAG, SDValue Addr, SDValue &N0, SDValue &N1)
static bool isNoUnsignedWrap (SDValue Addr)
static bool IsCopyFromSGPR (const SIRegisterInfo &TRI, SDValue Val)
static MemSDNodefindMemSDNode (SDNode *N)
static SDValue matchExtFromI32orI32 (SDValue Op, bool IsSigned, const SelectionDAG *DAG)
static SDValue SelectSAddrFI (SelectionDAG *CurDAG, SDValue SAddr)
static SDValue combineBallotPattern (SDValue VCMP, bool &Negate)
static unsigned gwsIntrinToOpcode (unsigned IntrID)
static MachineSDNodebuildRegSequence32 (SmallVectorImpl< SDValue > &Elts, llvm::SelectionDAG *CurDAG, const SDLoc &DL)
static MachineSDNodebuildRegSequence16 (SmallVectorImpl< SDValue > &Elts, llvm::SelectionDAG *CurDAG, const SDLoc &DL)
static MachineSDNodebuildRegSequence (SmallVectorImpl< SDValue > &Elts, llvm::SelectionDAG *CurDAG, const SDLoc &DL, unsigned ElementSize)
static void selectWMMAModsNegAbs (unsigned ModOpcode, unsigned &Mods, SmallVectorImpl< SDValue > &Elts, SDValue &Src, llvm::SelectionDAG *CurDAG, const SDLoc &DL, unsigned ElementSize)
static void checkWMMAElementsModifiersF16 (BuildVectorSDNode *BV, std::function< bool(SDValue)> ModifierCheck)
static SDValue matchBF16FPExtendLike (SDValue Op, bool &IsExtractHigh)
static std::pair< unsigned, uint8_tBitOp3_Op (SDValue In, SmallVectorImpl< SDValue > &Src)

Variables

amdgpu isel
amdgpu AMDGPU DAG DAG Pattern Instruction Selection
amdgpu AMDGPU DAG DAG Pattern Instruction false

Detailed Description

Defines an instruction selector for the AMDGPU target.

Definition in file AMDGPUISelDAGToDAG.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "amdgpu-isel"

Definition at line 38 of file AMDGPUISelDAGToDAG.cpp.

Function Documentation

◆ BitOp3_Op()

std::pair< unsigned, uint8_t > BitOp3_Op ( SDValue In,
SmallVectorImpl< SDValue > & Src )
static

◆ buildRegSequence()

MachineSDNode * buildRegSequence ( SmallVectorImpl< SDValue > & Elts,
llvm::SelectionDAG * CurDAG,
const SDLoc & DL,
unsigned ElementSize )
static

◆ buildRegSequence16()

◆ buildRegSequence32()

◆ checkWMMAElementsModifiersF16()

void checkWMMAElementsModifiersF16 ( BuildVectorSDNode * BV,
std::function< bool(SDValue)> ModifierCheck )
static

◆ combineBallotPattern()

◆ findMemSDNode()

◆ getBaseWithOffsetUsingSplitOR()

◆ gwsIntrinToOpcode()

unsigned gwsIntrinToOpcode ( unsigned IntrID)
static

Definition at line 2968 of file AMDGPUISelDAGToDAG.cpp.

References llvm_unreachable.

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AMDGPUDAGToDAGISelLegacy ,
"amdgpu-isel" ,
"AMDGPU DAG->DAG Pattern Instruction Selection" ,
false ,
false  )

◆ IsCopyFromSGPR()

bool IsCopyFromSGPR ( const SIRegisterInfo & TRI,
SDValue Val )
static

◆ isNoUnsignedWrap()

◆ matchBF16FPExtendLike()

SDValue matchBF16FPExtendLike ( SDValue Op,
bool & IsExtractHigh )
static

◆ matchExtFromI32orI32()

◆ SelectSAddrFI()

◆ selectWMMAModsNegAbs()

Variable Documentation

◆ false

amdgpu AMDGPU DAG DAG Pattern Instruction false

Definition at line 145 of file AMDGPUISelDAGToDAG.cpp.

◆ isel

amdgpu isel

Definition at line 144 of file AMDGPUISelDAGToDAG.cpp.

◆ Selection