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 919 of file HexagonISelDAGToDAGHVX.cpp.
|
inline |
Definition at line 926 of file HexagonISelDAGToDAGHVX.cpp.
|
static |
Definition at line 2009 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::CallingConv::C, I, llvm::isPowerOf2_32(), and P.
|
inline |
Definition at line 942 of file HexagonISelDAGToDAGHVX.cpp.
References llvm::MVT::getVectorVT(), and HwLen.
Definition at line 936 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorVT(), and HwLen.
|
static |
Definition at line 1920 of file HexagonISelDAGToDAGHVX.cpp.
References B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), I, P, llvm::popcount(), llvm::replace(), llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), and llvm::sort().
Definition at line 930 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorVT(), and HwLen.
|
static |
Definition at line 2042 of file HexagonISelDAGToDAGHVX.cpp.
References I.
void HvxSelector::selectExtractSubvector | ( | SDNode * | N | ) |
Definition at line 2566 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 2667 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 2583 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 2691 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 922 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectExtractSubvector(), selectRor(), selectShuffle(), and selectVAlign().
const HexagonSubtarget& llvm::HvxSelector::HST |
Definition at line 923 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectRor().
Definition at line 924 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by getBoolVT(), getPairVT(), getSingleVT(), and selectShuffle().
HexagonDAGToDAGISel& llvm::HvxSelector::ISel |
Definition at line 921 of file HexagonISelDAGToDAGHVX.cpp.
Referenced by selectExtractSubvector(), selectRor(), selectShuffle(), and selectVAlign().
const HexagonTargetLowering& llvm::HvxSelector::Lower |
Definition at line 920 of file HexagonISelDAGToDAGHVX.cpp.