LLVM 22.0.0git
llvm::HvxSelector Struct Reference

Public Member Functions

 HvxSelector (HexagonDAGToDAGISel &HS, SelectionDAG &G)
MVT getSingleVT (MVT ElemTy) const
MVT getPairVT (MVT ElemTy) const
MVT getBoolVT () const
void selectExtractSubvector (SDNode *N)
void selectShuffle (SDNode *N)
void selectRor (SDNode *N)
void selectVAlign (SDNode *N)

Static Public Member Functions

static SmallVector< uint32_t, 8 > getPerfectCompletions (ShuffleMask SM, unsigned Width)
static SmallVector< uint32_t, 8 > completeToPerfect (ArrayRef< uint32_t > Completions, unsigned Width)
static std::optional< int > rotationDistance (ShuffleMask SM, unsigned WrapAt)

Public Attributes

const HexagonTargetLoweringLower
HexagonDAGToDAGISelISel
SelectionDAGDAG
const HexagonSubtargetHST
const unsigned HwLen

Detailed Description

Definition at line 918 of file HexagonISelDAGToDAGHVX.cpp.

Constructor & Destructor Documentation

◆ HvxSelector()

llvm::HvxSelector::HvxSelector ( HexagonDAGToDAGISel & HS,
SelectionDAG & G )
inline

Definition at line 925 of file HexagonISelDAGToDAGHVX.cpp.

References DAG, G, getHexagonLowering(), getHexagonSubtarget(), HST, HwLen, ISel, and Lower.

Member Function Documentation

◆ completeToPerfect()

SmallVector< uint32_t, 8 > HvxSelector::completeToPerfect ( ArrayRef< uint32_t > Completions,
unsigned Width )
static

Definition at line 2008 of file HexagonISelDAGToDAGHVX.cpp.

References assert(), llvm::CallingConv::C, I, llvm::isPowerOf2_32(), P, and T.

◆ getBoolVT()

MVT llvm::HvxSelector::getBoolVT ( ) const
inline

Definition at line 941 of file HexagonISelDAGToDAGHVX.cpp.

References llvm::MVT::getVectorVT(), and HwLen.

◆ getPairVT()

MVT llvm::HvxSelector::getPairVT ( MVT ElemTy) const
inline

Definition at line 935 of file HexagonISelDAGToDAGHVX.cpp.

References assert(), llvm::MVT::getVectorVT(), and HwLen.

◆ getPerfectCompletions()

SmallVector< uint32_t, 8 > HvxSelector::getPerfectCompletions ( ShuffleMask SM,
unsigned Width )
static

◆ getSingleVT()

MVT llvm::HvxSelector::getSingleVT ( MVT ElemTy) const
inline

Definition at line 929 of file HexagonISelDAGToDAGHVX.cpp.

References assert(), llvm::MVT::getVectorVT(), and HwLen.

◆ rotationDistance()

std::optional< int > HvxSelector::rotationDistance ( ShuffleMask SM,
unsigned WrapAt )
static

Definition at line 2041 of file HexagonISelDAGToDAGHVX.cpp.

References I, and llvm::ArrayRef< T >::size().

◆ selectExtractSubvector()

◆ selectRor()

void HvxSelector::selectRor ( SDNode * N)

◆ selectShuffle()

◆ selectVAlign()

void HvxSelector::selectVAlign ( SDNode * N)

Definition at line 2702 of file HexagonISelDAGToDAGHVX.cpp.

References DAG, ISel, and N.

Member Data Documentation

◆ DAG

SelectionDAG& llvm::HvxSelector::DAG

◆ HST

const HexagonSubtarget& llvm::HvxSelector::HST

Definition at line 922 of file HexagonISelDAGToDAGHVX.cpp.

Referenced by HvxSelector(), and selectRor().

◆ HwLen

const unsigned llvm::HvxSelector::HwLen

◆ ISel

HexagonDAGToDAGISel& llvm::HvxSelector::ISel

◆ Lower

const HexagonTargetLowering& llvm::HvxSelector::Lower

Definition at line 919 of file HexagonISelDAGToDAGHVX.cpp.

Referenced by HvxSelector().


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