LLVM 18.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
 
HexagonDAGToDAGISelISel
 
SelectionDAGDAG
 
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 
)
inline

Definition at line 930 of file HexagonISelDAGToDAGHVX.cpp.

Member Function Documentation

◆ completeToPerfect()

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

◆ getBoolVT()

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

Definition at line 946 of file HexagonISelDAGToDAGHVX.cpp.

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

◆ getPairVT()

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

◆ getPerfectCompletions()

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

◆ getSingleVT()

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

◆ rotationDistance()

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

Definition at line 2051 of file HexagonISelDAGToDAGHVX.cpp.

References E, and 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

◆ DAG

SelectionDAG& llvm::HvxSelector::DAG

◆ HST

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: