LLVM 19.0.0git
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
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
const HexagonSubtargetHST
const unsigned HwLen

Detailed Description

Definition at line 923 of file HexagonISelDAGToDAGHVX.cpp.

Constructor & Destructor Documentation

◆ HvxSelector()

llvm::HvxSelector::HvxSelector ( HexagonDAGToDAGISel HS,
SelectionDAG G 

Definition at line 930 of file HexagonISelDAGToDAGHVX.cpp.

Member Function Documentation

◆ completeToPerfect()

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

Definition at line 2016 of file HexagonISelDAGToDAGHVX.cpp.

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

◆ getBoolVT()

MVT llvm::HvxSelector::getBoolVT ( ) const

Definition at line 946 of file HexagonISelDAGToDAGHVX.cpp.

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

◆ getPairVT()

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

◆ getPerfectCompletions()

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

◆ getSingleVT()

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

◆ rotationDistance()

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

Definition at line 2049 of file HexagonISelDAGToDAGHVX.cpp.

References I.

◆ selectExtractSubvector()

void HvxSelector::selectExtractSubvector ( SDNode N)

◆ selectRor()

void HvxSelector::selectRor ( SDNode N)

◆ selectShuffle()

void HvxSelector::selectShuffle ( SDNode N)

◆ selectVAlign()

void HvxSelector::selectVAlign ( SDNode N)

Member Data Documentation


SelectionDAG& llvm::HvxSelector::DAG


const HexagonSubtarget& llvm::HvxSelector::HST

Definition at line 927 of file HexagonISelDAGToDAGHVX.cpp.

Referenced by selectRor().

◆ HwLen

const unsigned llvm::HvxSelector::HwLen

Definition at line 928 of file HexagonISelDAGToDAGHVX.cpp.

Referenced by getBoolVT(), getPairVT(), getSingleVT(), and selectShuffle().

◆ ISel

HexagonDAGToDAGISel& llvm::HvxSelector::ISel

◆ Lower

const HexagonTargetLowering& llvm::HvxSelector::Lower

Definition at line 924 of file HexagonISelDAGToDAGHVX.cpp.

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