Lines Matching defs:NodeExtensionHelper

14253 /// NodeExtensionHelper for `a` and one for `b`.
14267 struct NodeExtensionHelper {
14280 /// Original value that this NodeExtensionHelper represents.
14482 SDNode * /*Root*/, const NodeExtensionHelper & /*LHS*/,
14483 const NodeExtensionHelper & /*RHS*/, SelectionDAG &,
14644 /// Build a NodeExtensionHelper for \p Root.getOperand(\p OperandIdx).
14645 NodeExtensionHelper(SDNode *Root, unsigned OperandIdx, SelectionDAG &DAG,
14755 NodeExtensionHelper LHS;
14757 NodeExtensionHelper RHS;
14760 const NodeExtensionHelper &LHS, std::optional<ExtKind> LHSExt,
14761 const NodeExtensionHelper &RHS, std::optional<ExtKind> RHSExt)
14772 NodeExtensionHelper::getMaskAndVL(Root, DAG, Subtarget);
14803 canFoldToVWWithSameExtensionImpl(SDNode *Root, const NodeExtensionHelper &LHS,
14804 const NodeExtensionHelper &RHS,
14808 return CombineResult(NodeExtensionHelper::getZExtOpcode(Root->getOpcode()),
14812 return CombineResult(NodeExtensionHelper::getSExtOpcode(Root->getOpcode()),
14816 return CombineResult(NodeExtensionHelper::getFPExtOpcode(Root->getOpcode()),
14829 canFoldToVWWithSameExtension(SDNode *Root, const NodeExtensionHelper &LHS,
14830 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14842 canFoldToVW_W(SDNode *Root, const NodeExtensionHelper &LHS,
14843 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14847 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::FPExt),
14856 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::ZExt), Root,
14860 NodeExtensionHelper::getWOpcode(Root->getOpcode(), ExtKind::SExt), Root,
14870 canFoldToVWWithSEXT(SDNode *Root, const NodeExtensionHelper &LHS,
14871 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14882 canFoldToVWWithZEXT(SDNode *Root, const NodeExtensionHelper &LHS,
14883 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14894 canFoldToVWWithFPEXT(SDNode *Root, const NodeExtensionHelper &LHS,
14895 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14906 canFoldToVW_SU(SDNode *Root, const NodeExtensionHelper &LHS,
14907 const NodeExtensionHelper &RHS, SelectionDAG &DAG,
14912 return CombineResult(NodeExtensionHelper::getSUOpcode(Root->getOpcode()),
14917 SmallVector<NodeExtensionHelper::CombineToTry>
14918 NodeExtensionHelper::getSupportedFoldings(const SDNode *Root) {
14990 if (!NodeExtensionHelper::isSupportedRoot(N, Subtarget))
15001 if (!NodeExtensionHelper::isSupportedRoot(Root, Subtarget))
15004 NodeExtensionHelper LHS(Root, 0, DAG, Subtarget);
15005 NodeExtensionHelper RHS(Root, 1, DAG, Subtarget);
15007 &Inserted](const NodeExtensionHelper &Op) {
15021 SmallVector<NodeExtensionHelper::CombineToTry> FoldingStrategies =
15022 NodeExtensionHelper::getSupportedFoldings(Root);
15027 (Attempt != 1 + NodeExtensionHelper::isCommutative(Root)) && !Matched;
15030 for (NodeExtensionHelper::CombineToTry FoldingStrategy :