LLVM 20.0.0git
|
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 HexagonTargetLowering & | Lower |
HexagonDAGToDAGISel & | ISel |
SelectionDAG & | DAG |
const HexagonSubtarget & | HST |
const unsigned | HwLen |
Definition at line 923 of file HexagonISelDAGToDAGHVX.cpp.
|
inline |
Definition at line 930 of file HexagonISelDAGToDAGHVX.cpp.
|
static |
Definition at line 2016 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::CallingConv::C, I, llvm::isPowerOf2_32(), and P.
|
inline |
Definition at line 946 of file HexagonISelDAGToDAGHVX.cpp.
References llvm::MVT::getVectorVT(), and HwLen.
Definition at line 940 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorVT(), and HwLen.
|
static |
Definition at line 1924 of file HexagonISelDAGToDAGHVX.cpp.
References B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), I, P, llvm::popcount(), llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), and llvm::sort().
Definition at line 934 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorVT(), and HwLen.
|
static |
Definition at line 2049 of file HexagonISelDAGToDAGHVX.cpp.
References I.
void HvxSelector::selectExtractSubvector | ( | SDNode * | N | ) |
Definition at line 2573 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), DAG, llvm::EVT::getSimpleVT(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SDValue::getValueType(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), Idx, ISel, N, llvm::SelectionDAGISel::ReplaceNode(), and SubReg.
void HvxSelector::selectRor | ( | SDNode * | N | ) |
Definition at line 2674 of file HexagonISelDAGToDAGHVX.cpp.
References DAG, llvm::SelectionDAG::getMachineNode(), llvm::SDValue::getNode(), llvm::HexagonSubtarget::getVectorLength(), HST, ISel, N, and llvm::SelectionDAGISel::ReplaceNode().
void HvxSelector::selectShuffle | ( | SDNode * | N | ) |
Definition at line 2590 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), DAG, llvm::dbgs(), DEBUG_WITH_TYPE, llvm::Done, llvm::SDValue::getNode(), llvm::SDValue::getValueType(), HwLen, I, Idx, ISel, llvm::SDValue::isUndef(), llvm_unreachable, N, llvm::SelectionDAGISel::ReplaceNode(), and Results.
void HvxSelector::selectVAlign | ( | SDNode * | N | ) |
Definition at line 2698 of file HexagonISelDAGToDAGHVX.cpp.
References DAG, llvm::SelectionDAG::getMachineNode(), ISel, N, llvm::SelectionDAG::RemoveDeadNode(), and llvm::SelectionDAGISel::ReplaceNode().
SelectionDAG& llvm::HvxSelector::DAG |
Definition at line 926 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectExtractSubvector(), selectRor(), selectShuffle(), and selectVAlign().
const HexagonSubtarget& llvm::HvxSelector::HST |
Definition at line 927 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectRor().
Definition at line 928 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by getBoolVT(), getPairVT(), getSingleVT(), and selectShuffle().
HexagonDAGToDAGISel& llvm::HvxSelector::ISel |
Definition at line 925 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectExtractSubvector(), selectRor(), selectShuffle(), and selectVAlign().
const HexagonTargetLowering& llvm::HvxSelector::Lower |
Definition at line 924 of file HexagonISelDAGToDAGHVX.cpp.