LLVM 20.0.0git
Public Member Functions | List of all members
llvm::VECustomDAG Class Reference

#include "Target/VE/VECustomDAG.h"

Public Member Functions

SelectionDAGgetDAG () const
 
 VECustomDAG (SelectionDAG &DAG, SDLoc DL)
 
 VECustomDAG (SelectionDAG &DAG, SDValue WhereOp)
 
 VECustomDAG (SelectionDAG &DAG, const SDNode *WhereN)
 
SDValue getNode (unsigned OC, SDVTList VTL, ArrayRef< SDValue > OpV, std::optional< SDNodeFlags > Flags=std::nullopt) const
 getNode {
 
SDValue getNode (unsigned OC, ArrayRef< EVT > ResVT, ArrayRef< SDValue > OpV, std::optional< SDNodeFlags > Flags=std::nullopt) const
 
SDValue getNode (unsigned OC, EVT ResVT, ArrayRef< SDValue > OpV, std::optional< SDNodeFlags > Flags=std::nullopt) const
 
SDValue getUNDEF (EVT VT) const
 
SDValue getLegalReductionOpVVP (unsigned VVPOpcode, EVT ResVT, SDValue StartV, SDValue VectorV, SDValue Mask, SDValue AVL, SDNodeFlags Flags) const
 } getNode
 
SDValue getUnpack (EVT DestVT, SDValue Vec, PackElem Part, SDValue AVL) const
 } Legalizing getNode
 
SDValue getPack (EVT DestVT, SDValue LoVec, SDValue HiVec, SDValue AVL) const
 
SDValue getMergeValues (ArrayRef< SDValue > Values) const
 } Packing
 
SDValue getConstant (uint64_t Val, EVT VT, bool IsTarget=false, bool IsOpaque=false) const
 
SDValue getConstantMask (Packing Packing, bool AllTrue) const
 
SDValue getMaskBroadcast (EVT ResultVT, SDValue Scalar, SDValue AVL) const
 
SDValue getBroadcast (EVT ResultVT, SDValue Scalar, SDValue AVL) const
 
SDValue annotateLegalAVL (SDValue AVL) const
 
VETargetMasks getTargetSplitMask (SDValue RawMask, SDValue RawAVL, PackElem Part) const
 
SDValue getSplitPtrOffset (SDValue Ptr, SDValue ByteStride, PackElem Part) const
 
SDValue getSplitPtrStride (SDValue PackStride) const
 
SDValue getGatherScatterAddress (SDValue BasePtr, SDValue Scale, SDValue Index, SDValue Mask, SDValue AVL) const
 
EVT getVectorVT (EVT ElemVT, unsigned NumElems) const
 

Detailed Description

Definition at line 142 of file VECustomDAG.h.

Constructor & Destructor Documentation

◆ VECustomDAG() [1/3]

llvm::VECustomDAG::VECustomDAG ( SelectionDAG DAG,
SDLoc  DL 
)
inline

Definition at line 149 of file VECustomDAG.h.

References DL.

◆ VECustomDAG() [2/3]

llvm::VECustomDAG::VECustomDAG ( SelectionDAG DAG,
SDValue  WhereOp 
)
inline

Definition at line 151 of file VECustomDAG.h.

References DL.

◆ VECustomDAG() [3/3]

llvm::VECustomDAG::VECustomDAG ( SelectionDAG DAG,
const SDNode WhereN 
)
inline

Definition at line 153 of file VECustomDAG.h.

References DL.

Member Function Documentation

◆ annotateLegalAVL()

SDValue llvm::VECustomDAG::annotateLegalAVL ( SDValue  AVL) const

◆ getBroadcast()

SDValue llvm::VECustomDAG::getBroadcast ( EVT  ResultVT,
SDValue  Scalar,
SDValue  AVL 
) const

◆ getConstant()

SDValue llvm::VECustomDAG::getConstant ( uint64_t  Val,
EVT  VT,
bool  IsTarget = false,
bool  IsOpaque = false 
) const

◆ getConstantMask()

SDValue llvm::VECustomDAG::getConstantMask ( Packing  Packing,
bool  AllTrue 
) const

◆ getDAG()

SelectionDAG * llvm::VECustomDAG::getDAG ( ) const
inline

Definition at line 147 of file VECustomDAG.h.

Referenced by llvm::VETargetLowering::lowerVVP_LOAD_STORE().

◆ getGatherScatterAddress()

SDValue llvm::VECustomDAG::getGatherScatterAddress ( SDValue  BasePtr,
SDValue  Scale,
SDValue  Index,
SDValue  Mask,
SDValue  AVL 
) const

◆ getLegalReductionOpVVP()

SDValue llvm::VECustomDAG::getLegalReductionOpVVP ( unsigned  VVPOpcode,
EVT  ResVT,
SDValue  StartV,
SDValue  VectorV,
SDValue  Mask,
SDValue  AVL,
SDNodeFlags  Flags 
) const

◆ getMaskBroadcast()

SDValue llvm::VECustomDAG::getMaskBroadcast ( EVT  ResultVT,
SDValue  Scalar,
SDValue  AVL 
) const

◆ getMergeValues()

SDValue llvm::VECustomDAG::getMergeValues ( ArrayRef< SDValue Values) const
inline

◆ getNode() [1/3]

SDValue llvm::VECustomDAG::getNode ( unsigned  OC,
ArrayRef< EVT ResVT,
ArrayRef< SDValue OpV,
std::optional< SDNodeFlags Flags = std::nullopt 
) const
inline

Definition at line 164 of file VECustomDAG.h.

References DL, llvm::SelectionDAG::getNode(), and N.

◆ getNode() [2/3]

SDValue llvm::VECustomDAG::getNode ( unsigned  OC,
EVT  ResVT,
ArrayRef< SDValue OpV,
std::optional< SDNodeFlags Flags = std::nullopt 
) const
inline

Definition at line 172 of file VECustomDAG.h.

References DL, llvm::SelectionDAG::getNode(), and N.

◆ getNode() [3/3]

SDValue llvm::VECustomDAG::getNode ( unsigned  OC,
SDVTList  VTL,
ArrayRef< SDValue OpV,
std::optional< SDNodeFlags Flags = std::nullopt 
) const
inline

◆ getPack()

SDValue llvm::VECustomDAG::getPack ( EVT  DestVT,
SDValue  LoVec,
SDValue  HiVec,
SDValue  AVL 
) const

◆ getSplitPtrOffset()

SDValue llvm::VECustomDAG::getSplitPtrOffset ( SDValue  Ptr,
SDValue  ByteStride,
PackElem  Part 
) const

Definition at line 521 of file VECustomDAG.cpp.

References llvm::ISD::ADD, getNode(), llvm::Hi, and Ptr.

Referenced by llvm::VETargetLowering::splitPackedLoadStore().

◆ getSplitPtrStride()

SDValue llvm::VECustomDAG::getSplitPtrStride ( SDValue  PackStride) const

Definition at line 530 of file VECustomDAG.cpp.

References getConstant(), getNode(), and llvm::ISD::SHL.

Referenced by llvm::VETargetLowering::splitPackedLoadStore().

◆ getTargetSplitMask()

VETargetMasks llvm::VECustomDAG::getTargetSplitMask ( SDValue  RawMask,
SDValue  RawAVL,
PackElem  Part 
) const

◆ getUNDEF()

SDValue llvm::VECustomDAG::getUNDEF ( EVT  VT) const
inline

Definition at line 180 of file VECustomDAG.h.

References llvm::SelectionDAG::getUNDEF().

Referenced by llvm::VETargetLowering::lowerBUILD_VECTOR().

◆ getUnpack()

SDValue llvm::VECustomDAG::getUnpack ( EVT  DestVT,
SDValue  Vec,
PackElem  Part,
SDValue  AVL 
) const

◆ getVectorVT()

EVT llvm::VECustomDAG::getVectorVT ( EVT  ElemVT,
unsigned  NumElems 
) const
inline

Definition at line 216 of file VECustomDAG.h.

References llvm::SelectionDAG::getContext(), and llvm::EVT::getVectorVT().


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