LLVM  14.0.0git
Public Member Functions | Friends | List of all members
llvm::SDValue Class Reference

Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. More...

#include "llvm/CodeGen/SelectionDAGNodes.h"

Public Member Functions

 SDValue ()=default
 
 SDValue (SDNode *node, unsigned resno)
 
unsigned getResNo () const
 get the index which selects a specific result in the SDNode More...
 
SDNodegetNode () const
 get the SDNode which holds the desired result More...
 
void setNode (SDNode *N)
 set the SDNode More...
 
SDNodeoperator-> () const
 
bool operator== (const SDValue &O) const
 
bool operator!= (const SDValue &O) const
 
bool operator< (const SDValue &O) const
 
 operator bool () const
 
SDValue getValue (unsigned R) const
 
bool isOperandOf (const SDNode *N) const
 Return true if this node is an operand of N. More...
 
EVT getValueType () const
 Return the ValueType of the referenced return value. More...
 
MVT getSimpleValueType () const
 Return the simple ValueType of the referenced return value. More...
 
TypeSize getValueSizeInBits () const
 Returns the size of the value in bits. More...
 
uint64_t getScalarValueSizeInBits () const
 
unsigned getOpcode () const
 
unsigned getNumOperands () const
 
const SDValuegetOperand (unsigned i) const
 
uint64_t getConstantOperandVal (unsigned i) const
 
const APIntgetConstantOperandAPInt (unsigned i) const
 
bool isTargetMemoryOpcode () const
 
bool isTargetOpcode () const
 
bool isMachineOpcode () const
 
bool isUndef () const
 
unsigned getMachineOpcode () const
 
const DebugLocgetDebugLoc () const
 
void dump () const
 
void dump (const SelectionDAG *G) const
 
void dumpr () const
 
void dumpr (const SelectionDAG *G) const
 
bool reachesChainWithoutSideEffects (SDValue Dest, unsigned Depth=2) const
 Return true if this operand (which must be a chain) reaches the specified operand without crossing any side-effecting instructions. More...
 
bool use_empty () const
 Return true if there are no nodes using value ResNo of Node. More...
 
bool hasOneUse () const
 Return true if there is exactly one node using value ResNo of Node. More...
 

Friends

struct DenseMapInfo< SDValue >
 

Detailed Description

Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.

Many nodes return multiple values, from loads (which define a token and a return value) to ADDC (which returns a result and a carry value), to calls (which may return an arbitrary number of values).

As such, each use of a SelectionDAG computation must indicate the node that computes it as well as which return value to use from that node. This pair of information is represented with the SDValue value type.

Definition at line 138 of file SelectionDAGNodes.h.

Constructor & Destructor Documentation

◆ SDValue() [1/2]

llvm::SDValue::SDValue ( )
default

Referenced by getValue().

◆ SDValue() [2/2]

llvm::SDValue::SDValue ( SDNode node,
unsigned  resno 
)
inline

Definition at line 1107 of file SelectionDAGNodes.h.

References assert().

Member Function Documentation

◆ dump() [1/2]

void llvm::SDValue::dump ( ) const
inline

◆ dump() [2/2]

void llvm::SDValue::dump ( const SelectionDAG G) const
inline

Definition at line 1177 of file SelectionDAGNodes.h.

References Node::dump(), and G.

◆ dumpr() [1/2]

void llvm::SDValue::dumpr ( ) const
inline

Definition at line 1181 of file SelectionDAGNodes.h.

◆ dumpr() [2/2]

void llvm::SDValue::dumpr ( const SelectionDAG G) const
inline

Definition at line 1185 of file SelectionDAGNodes.h.

References G.

◆ getConstantOperandAPInt()

const APInt & llvm::SDValue::getConstantOperandAPInt ( unsigned  i) const
inline

◆ getConstantOperandVal()

uint64_t llvm::SDValue::getConstantOperandVal ( unsigned  i) const
inline

◆ getDebugLoc()

const DebugLoc & llvm::SDValue::getDebugLoc ( ) const
inline

Definition at line 1169 of file SelectionDAGNodes.h.

◆ getMachineOpcode()

unsigned llvm::SDValue::getMachineOpcode ( ) const
inline

Definition at line 1153 of file SelectionDAGNodes.h.

Referenced by PeepholePPC64ZExtGather().

◆ getNode()

SDNode* llvm::SDValue::getNode ( ) const
inline

get the SDNode which holds the desired result

Definition at line 152 of file SelectionDAGNodes.h.

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddCombineTo64bitUMAAL(), AddCombineToVPADD(), AddCombineVUZPToVPADDL(), AddGlue(), llvm::AMDGPUTargetLowering::addTokenForArgument(), adjustBitcastSrcVectorSSE1(), buildCallOperands(), BuildExactSDIV(), buildFromShuffleMostly(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), calculatePreExtendType(), canonicalizeShuffleMaskWithHorizOp(), llvm::checkForCycles(), CheckForMaskedLoad(), checkHighLaneIndex(), checkV64LaneV128(), checkValueWidth(), combineADDCARRYDiamond(), combineAddOrSubToADCOrSBB(), combineADDToADDZE(), combineAnd(), combineAndMaskToShift(), combineBitcast(), combineCarryThroughADD(), combineCastedMaskArithmetic(), combineCCMask(), combineExtractSubvector(), combineExtractWithShuffle(), combineFaddCFmul(), combineHorizOpWithShuffle(), combineInsertSubvector(), combineMaskedLoadConstantMask(), combineOrCmpEqZeroToCtlzSrl(), combinePMULDQ(), combinePTESTCC(), combineRedundantDWordShuffle(), combineSelect(), combineSelectAndUse(), combineSelectAndUseCommutative(), combineSetCC(), combineSetCCAtomicArith(), combineSetCCMOVMSK(), combineSext(), combineSextInRegCmov(), combineShuffleOfScalars(), combineSignExtendInReg(), combineSIntToFP(), combineStore(), combineTargetShuffle(), combineToExtendCMOV(), combineVectorHADDSUB(), combineVectorPack(), combineVectorShiftImm(), combineVectorShiftVar(), CombineVLDDUP(), combineVPMADD(), combineVSelectWithAllOnesOrZeros(), combineXor(), combineZext(), llvm::BaseIndexOffset::computeAliasing(), computeZeroableShuffleElements(), convertShiftLeftToScale(), createGPRPairNode(), detectSSatPattern(), detectUSatPattern(), distributeOpThroughSelect(), EltsFromConsecutiveLoads(), emitConjunctionRec(), EmitVectorComparison(), llvm::BaseIndexOffset::equalBaseIndex(), expandIntrinsicWChainHelper(), llvm::TargetLowering::expandMUL_LOHI(), ExpandPowI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), ExtendToType(), ExtendUsesToFormExtLoad(), FindBFIToCombineWith(), findConsecutiveLoad(), findEltLoadSrc(), llvm::SelectionDAG::foldConstantFPMath(), foldFreeOpFromSelect(), foldVectorXorShiftIntoCmp(), llvm::PPC::get_VSPLTI_elt(), getAArch64Cmp(), getAsCarry(), getBuildPairElt(), llvm::SelectionDAG::getCALLSEQ_END(), llvm::TargetLowering::getCheaperNegatedExpression(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::SelectionDAG::GetDemandedBits(), getFauxShuffleMask(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::SDNode::getGluedNode(), llvm::DenseMapInfo< SDValue >::getHashValue(), llvm::SDUse::getNode(), llvm::SelectionDAG::getNode(), llvm::MipsTargetLowering::getOpndList(), getPointerConstIncrement(), getPostIndexedLoadStoreOp(), getPowerOf2Factor(), llvm::ARMTargetLowering::getPreIndexedAddressParts(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), llvm::simplify_type< SDValue >::getSimplifiedValue(), llvm::simplify_type< const SDValue >::getSimplifiedValue(), llvm::SelectionDAG::getStrictFPExtendOrRound(), llvm::SelectionDAGBuilder::getValueImpl(), haveEfficientBuildVectorPattern(), incDecVectorConstant(), llvm::SelectionDAG::InferPtrAlign(), insert1BitVector(), insertDAGNode(), isAnyConstantBuildVector(), isBitfieldExtractOpFromAnd(), isBLACompatibleAddress(), isBSwapHWordElement(), isCalleeLoad(), isConsecutiveLSLoc(), isFNEG(), isFusableLoadOpStorePattern(), llvm::TargetLowering::isGAPlusOffset(), isMemOPCandidate(), IsNOT(), isNullFPScalarOrVectorConst(), isShuffleFoldableLoad(), llvm::SelectionDAG::isUndef(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), llvm::SelectionDAG::Legalize(), LowerAndToBT(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerAVXCONCAT_VECTORS(), lowerBuildVectorAsBroadcast(), LowerBuildVectorv4x32(), llvm::VETargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), lowerCallFromStatepointLoweringInfo(), LowerCONCAT_VECTORSvXi1(), lowerDSPIntr(), LowerF128Load(), LowerINTRINSIC_W_CHAIN(), llvm::HexagonTargetLowering::LowerLoad(), lowerLoadF128(), LowerMLOAD(), lowerMSABinaryBitImmIntr(), LowerMUL(), llvm::TargetLowering::LowerOperationWrapper(), llvm::RISCVTargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), LowerRotate(), LowerShift(), lowerShuffleAsBlend(), lowerShuffleAsBroadcast(), lowerShuffleAsPermuteAndUnpack(), lowerStatepointMetaArgs(), llvm::HexagonTargetLowering::LowerStore(), LowerStore(), lowerVECTOR_SHUFFLE(), LowerVSETCC(), llvm::SelectionDAG::makeEquivalentMemoryOrdering(), AMDGPUDAGToDAGISel::matchLoadD16FromBuildVector(), matchShuffleAsBlend(), moveBelowOrigChain(), narrowExtractedVectorBinOp(), narrowExtractedVectorSelect(), narrowInsertExtractVectorBinOp(), narrowVectorSelect(), NewSDValueDbgMsg(), parseTexFail(), llvm::SITargetLowering::passSpecialInputs(), PeepholePPC64ZExtGather(), PerformADDCombineWithOperands(), performAddDotCombine(), performAddSubLongCombine(), PerformADDVecReduce(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), PerformBUILD_VECTORCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performCommonVectorExtendCombine(), performCONDCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performExtendCombine(), PerformExtractEltToVMOVRRD(), llvm::AMDGPUTargetLowering::performFNegCombine(), PerformHWLoopCombine(), PerformInsertEltCombine(), performIntToFpCombine(), PerformLongShiftCombine(), PerformMinMaxCombine(), performMulCombine(), llvm::AMDGPUTargetLowering::performMulhsCombine(), llvm::AMDGPUTargetLowering::performMulhuCombine(), PerformMVEVLDCombine(), performNEONPostLDSTCombine(), performORCombine(), PerformORCombine(), performPostLD1Combine(), performSetccMergeZeroCombine(), PerformSplittingMVEEXTToWideningLoad(), PerformSplittingToWideningLoad(), PerformSTORECombine(), PerformSUBCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformUMLALCombine(), PerformVECREDUCE_ADDCombine(), PerformVMOVDRRCombine(), PerformVMOVrhCombine(), PerformVMOVRRDCombine(), performVSelectCombine(), performXORCombine(), PerformXORCombine(), prepareIndirectCall(), PromoteMaskArithmetic(), reduceVSXSwap(), removeRedundantInsertVectorElt(), llvm::SelectionDAG::ReplaceAllUsesWith(), ReplaceINTRINSIC_W_CHAIN(), llvm::ARMTargetLowering::ReplaceNodeResults(), reservePreviousStackSlotForValue(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), llvm::SelectionDAG::salvageDebugInfo(), scalarizeExtractedBinop(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::HvxSelector::selectRor(), llvm::HvxSelector::selectShuffle(), shouldCombineToPostInc(), llvm::TargetLowering::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), llvm::TargetLowering::SimplifySetCC(), spillIncomingStatepointValue(), llvm::HexagonDAGToDAGISel::StoreInstrForLoadIntrinsic(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), llvm::SelectionDAG::transferDbgValues(), TranslateM68kCC(), TranslateX86CC(), tryBitfieldInsertOpFromOr(), TryCombineBaseUpdate(), tryCombineLongOpWithDup(), tryCombineToBSL(), llvm::HexagonDAGToDAGISel::tryLoadOfLoadIntrinsic(), tryToFoldExtendOfConstant(), tryToFoldExtOfExtload(), tryToFoldExtOfLoad(), and tryToFoldExtOfMaskedLoad().

◆ getNumOperands()

unsigned llvm::SDValue::getNumOperands ( ) const
inline

◆ getOpcode()

unsigned llvm::SDValue::getOpcode ( ) const
inline

Definition at line 1117 of file SelectionDAGNodes.h.

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitUMAAL(), AddCombineVUZPToVPADDL(), adjustBitcastSrcVectorSSE1(), BuildExactSDIV(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), calculatePreExtendType(), CanCombineFCOPYSIGN_EXTEND_ROUND(), canonicalizeBitSelect(), canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), canonicalizeShuffleWithBinOps(), checkBoolTestAndOrSetCCCombine(), checkBoolTestSetCCCombine(), checkHighLaneIndex(), collectConcatOps(), combineABSToABD(), combineAdd(), combineADDCARRYDiamond(), combineAddOfPMADDWD(), combineAddOrSubToADCOrSBB(), combineADDToMAT_PCREL_ADDR(), combineBasicSADPattern(), combineBitcast(), combineBitcastToBoolVector(), combineBitOpWithMOVMSK(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineBVZEXTLOAD(), combineCarryDiamond(), combineCarryThroughADD(), combineCastedMaskArithmetic(), combineCompareEqual(), combineConcatVectorOps(), combineExtractSubvector(), combineExtractVectorElt(), combineExtractWithShuffle(), combineExtSetcc(), combineFaddCFmul(), combineFAndFNotToFAndn(), combineFMulcFCMulc(), combineHorizOpWithShuffle(), combineInsertSubvector(), combineMUL_VLToVWMUL(), combineMulToPMADDWD(), combineOr(), combineORToGORC(), combineORToSHFL(), combinePMULDQ(), combinePMULH(), combinePTESTCC(), combineRedundantDWordShuffle(), combineSBB(), combineScalarAndWithMaskSetcc(), combineSelect(), combineSelectAndUse(), combineSetCC(), combineSetCCAtomicArith(), combineSetCCMOVMSK(), combineSext(), combineSextInRegCmov(), combineShiftAnd1ToBitTest(), combineShiftLeft(), combineShiftOfShiftedLogic(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToMULH(), combineShiftToPMULH(), combineShuffleOfConcatUndef(), combineShuffleToFMAddSub(), combineSignExtendInReg(), combineSIntToFP(), combineStore(), combineSub(), combineSubABS(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineToExtendCMOV(), combineToFPTruncExtElt(), combineTruncationShuffle(), combineVectorCompareAndMaskUnaryOp(), combineVectorHADDSUB(), combineVectorPack(), combineVectorShiftImm(), combineX86ShuffleChain(), combineXor(), combineZext(), computeFlagsForAddressComputation(), llvm::SelectionDAG::computeOverflowKind(), computeZeroableShuffleElements(), constructDup(), convertIntLogicToFPLogic(), ConvertSelectToConcatVector(), detectAVGPattern(), detectPMADDUBSW(), detectSSatPattern(), detectUSatPattern(), detectZextAbsDiff(), EmitAVX512Test(), EmitCMP(), EmitCmp(), emitComparison(), emitConditionalComparison(), EmitTest(), EmitUnrolledSetTag(), ExtendToType(), extractBooleanFlip(), extractShiftForRotate(), extractSubVector(), FindBFIToCombineWith(), findEltLoadSrc(), foldAddSubBoolOfMaskedVal(), foldAddSubMasked1(), foldAddSubOfSignBit(), foldAndToUsubsat(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldExtendedSignBitTest(), foldFPToIntToFP(), foldFreeOpFromSelect(), FoldIntToFPToInt(), foldShuffleOfConcatUndefs(), foldXorTruncShiftIntoCmp(), getARMIndexedAddressParts(), getAsCarry(), getBaseWithOffsetUsingSplitOR(), getBuildPairElt(), getCmp(), llvm::SelectionDAG::GetDemandedBits(), getFauxShuffleMask(), getGatherScatterIndexIsExtended(), getIndexFromUnindexedLoad(), getKnownUndefForVectorBinop(), llvm::SelectionDAG::getNode(), getOutputChainFromCallSeq(), getPermuteMask(), getPowerOf2Factor(), getScalarValueForVectorElement(), llvm::SelectionDAG::getSplatSourceVector(), getSToVPermuted(), getSubVectorSrc(), getTargetConstantFromBasePtr(), getTargetShuffleAndZeroables(), getTargetVShiftNode(), llvm::SelectionDAG::getValidMaximumShiftAmountConstant(), llvm::SelectionDAG::getValidMinimumShiftAmountConstant(), llvm::SelectionDAG::getValidShiftAmountConstant(), llvm::SelectionDAG::getVectorShuffle(), getVPermMask(), haveEfficientBuildVectorPattern(), InferPointerInfo(), isAbsolute(), isADDADDMUL(), isAddCarryChain(), isAddSubOrSubAdd(), isAnyConstantBuildVector(), llvm::isBitwiseNot(), isBoolSGPR(), isBSwapHWordElement(), isCalleeLoad(), llvm::SITargetLowering::isCanonicalized(), isConditionalZeroOrAllOnes(), isConsecutiveLSLoc(), IsCopyFromSGPR(), llvm::RISCVTargetLowering::isDesirableToCommuteWithShift(), IsElementEquivalent(), isFMAddSubOrFMSubAdd(), isFusableLoadOpStorePattern(), isHopBuildVector(), isHorizontalBinOpPart(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), IsNOT(), llvm::SelectionDAG::isSplatValue(), isSubBorrowChain(), isTargetConstant(), isTruncWithZeroHighBitsInput(), isWorthFoldingSHL(), llvm::XCoreTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), LookThroughSetCC(), lookThroughSignExtension(), lowerAddSubToHorizontalOp(), LowerAndToBT(), LowerBUILD_VECTORAsVariablePermute(), LowerBUILD_VECTORToVIDUP(), lowerBuildVectorAsBroadcast(), LowerBuildVectorOfFPExt(), LowerBuildVectorOfFPTrunc(), LowerBuildVectorv4x32(), lowerConvertToSVBool(), LowerFABSorFNEG(), lowerFP_TO_SINT_STORE(), lowerFPToIntToFP(), LowerMLOAD(), LowerSaturatingConditional(), LowerScalarVariableShift(), llvm::MSP430TargetLowering::LowerSETCC(), lowerShuffleAsBroadcast(), lowerShuffleAsTruncBroadcast(), lowerShuffleOfExtractsAsVperm(), lowerV4F64Shuffle(), lowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), LowerVSETCC(), llvm::ISD::matchBinaryPredicate(), llvm::SelectionDAG::matchBinOpReduction(), matchBSwapHWordOrAndAnd(), MatchingStackOffset(), matchLogicBlend(), matchPMADDWD(), matchPMADDWD_2(), matchRotateSub(), matchUnaryShuffle(), mayUseP9Setb(), moveBelowOrigChain(), narrowExtractedVectorBinOp(), narrowExtractedVectorSelect(), narrowInsertExtractVectorBinOp(), llvm::peekThroughBitcasts(), llvm::peekThroughExtractSubvectors(), llvm::peekThroughOneUseBitcasts(), PerformADDCombineWithOperands(), performAddDotCombine(), performAddSubLongCombine(), performANDCombine(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), llvm::AMDGPUTargetLowering::performAssertSZExtCombine(), PerformBFICombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), performBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), performCommonVectorExtendCombine(), performCONDCombine(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformExtendCombine(), PerformExtractEltCombine(), llvm::AMDGPUTargetLowering::performFAbsCombine(), llvm::AMDGPUTargetLowering::performFNegCombine(), performMADD_MSUBCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performORCombine(), PerformORCombine(), PerformORCombineToBFI(), performSELECTCombine(), performSelectCombine(), PerformShiftCombine(), performSHLCombine(), PerformShuffleVMOVNCombine(), PerformSplittingToWideningLoad(), llvm::AMDGPUTargetLowering::performSrlCombine(), performSRLCombine(), performSVEAndCombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), performUADDVCombine(), performUzpCombine(), PerformVECREDUCE_ADDCombine(), performVecReduceAddCombine(), performVecReduceAddCombineWithUADDLP(), PerformVECTOR_SHUFFLECombine(), performVectorExtendCombine(), performVectorTruncateCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVMULCombine(), PerformVQDMULHCombine(), performVSELECTCombine(), performVSelectCombine(), PromoteMaskArithmetic(), pushAddIntoCmovOfConsts(), reachesChainWithoutSideEffects(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), removeRedundantInsertVectorElt(), replaceShuffleOfInsert(), replaceSplatVectorStore(), replaceZeroVectorStore(), scalarizeBinOpOfSplats(), scalarizeExtEltFP(), scalarizeExtractedBinop(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), llvm::PPCTargetLowering::SelectOptimalAddrMode(), SelectSAddrFI(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::X86TargetLowering::shouldScalarizeBinop(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCWithCTPOP(), llvm::AMDGPUTargetLowering::stripBitcast(), tryCombineCRC32(), tryCombineFixedPointConvert(), tryCombineToBSL(), tryConvertSVEWideCompare(), TryDistrubutionADDVecReduce(), tryLowerToSLI(), vectorizeExtractedCast(), visitORCommutative(), widenCtPop(), and willShiftRightEliminate().

◆ getOperand()

const SDValue & llvm::SDValue::getOperand ( unsigned  i) const
inline

Definition at line 1129 of file SelectionDAGNodes.h.

References i.

Referenced by AddCombineVUZPToVPADDL(), adjustBitcastSrcVectorSSE1(), adjustForLTGFR(), calculatePreExtendType(), canonicalizeBitSelect(), canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), canonicalizeShuffleWithBinOps(), checkBoolTestSetCCCombine(), checkHighLaneIndex(), collectConcatOps(), combineABSToABD(), combineAdd(), combineADDCARRYDiamond(), combineAddOfPMADDWD(), combineAddOrSubToADCOrSBB(), combineADDToADDZE(), combineADDToMAT_PCREL_ADDR(), combineBasicSADPattern(), combineBitcast(), combineBitcastToBoolVector(), combineBitOpWithMOVMSK(), combineBVOfConsecutiveLoads(), combineBVOfVecSExt(), combineCarryDiamond(), combineCarryThroughADD(), combineCastedMaskArithmetic(), combineCommutableSHUFP(), combineCompareEqual(), combineConcatVectorOps(), combineExtractSubvector(), combineExtractVectorElt(), combineExtractWithShuffle(), combineExtSetcc(), combineFaddCFmul(), combineFAndFNotToFAndn(), combineFMA(), combineFMulcFCMulc(), combineHorizOpWithShuffle(), combineInsertSubvector(), combineMUL_VLToVWMUL(), combineMulToPMADDWD(), combineOr(), combineORToGORC(), combineORToSHFL(), combinePMULDQ(), combinePMULH(), combinePTESTCC(), combineRedundantDWordShuffle(), combineSBB(), combineScalarAndWithMaskSetcc(), combineSelect(), combineSelectAndUse(), combineSetCC(), combineSetCCAtomicArith(), combineSetCCMOVMSK(), combineSext(), combineSextInRegCmov(), combineShiftAnd1ToBitTest(), combineShiftLeft(), combineShiftOfShiftedLogic(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToMULH(), combineShiftToPMULH(), combineShuffleOfConcatUndef(), combineShuffleToFMAddSub(), combineSignExtendInReg(), combineStore(), combineSub(), combineSubABS(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineToExtendCMOV(), combineToFPTruncExtElt(), combineTruncationShuffle(), combineVectorCompareAndMaskUnaryOp(), combineVectorHADDSUB(), combineVectorPack(), combineVectorShiftImm(), combineX86ShuffleChain(), combineXor(), combineZext(), computeFlagsForAddressComputation(), computeZeroableShuffleElements(), constructDup(), convertIntLogicToFPLogic(), createPSADBW(), detectAVGPattern(), detectPMADDUBSW(), detectSSatPattern(), detectUSatPattern(), detectZextAbsDiff(), distributeOpThroughSelect(), EmitAVX512Test(), EmitCmp(), emitComparison(), emitConditionalComparison(), ExtendToType(), extractBooleanFlip(), extractShiftForRotate(), findEltLoadSrc(), foldAddSubBoolOfMaskedVal(), foldAddSubMasked1(), foldAddSubOfSignBit(), foldAndToUsubsat(), foldBitcastedFPLogic(), foldExtendedSignBitTest(), foldFPToIntToFP(), foldFreeOpFromSelect(), FoldIntToFPToInt(), foldShuffleOfConcatUndefs(), foldXorTruncShiftIntoCmp(), getAArch64Cmp(), getAsCarry(), getBaseWithConstantOffset(), getBaseWithOffsetUsingSplitOR(), getBuildPairElt(), llvm::SelectionDAG::GetDemandedBits(), getFauxShuffleMask(), getGatherScatterIndexIsExtended(), getIndexFromUnindexedLoad(), getKnownUndefForVectorBinop(), llvm::SelectionDAG::getNode(), getPermuteMask(), getPowerOf2Factor(), getReductionSDNode(), getScalarValueForVectorElement(), llvm::SelectionDAG::getSplatSourceVector(), getSToVPermuted(), getSubVectorSrc(), getTargetConstantFromBasePtr(), getTargetShuffleAndZeroables(), getTargetVShiftNode(), llvm::SelectionDAG::getValidMaximumShiftAmountConstant(), llvm::SelectionDAG::getValidMinimumShiftAmountConstant(), llvm::SelectionDAG::getValidShiftAmountConstant(), getVectorCompareInfo(), getVPermMask(), haveEfficientBuildVectorPattern(), InferPointerInfo(), llvm::SelectionDAG::InferPtrAlign(), isAbsolute(), isADDADDMUL(), isAddCarryChain(), isAddSubOrSubAdd(), isBitfieldExtractOpFromAnd(), llvm::isBitwiseNot(), isBoolSGPR(), isBSwapHWordElement(), isCalleeLoad(), llvm::SITargetLowering::isCanonicalized(), IsCopyFromSGPR(), IsElementEquivalent(), isFMAddSubOrFMSubAdd(), isFusableLoadOpStorePattern(), isHopBuildVector(), isHorizontalBinOpPart(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::RISCVTargetLowering::isMulAddWithConstProfitable(), llvm::AArch64TargetLowering::isMulAddWithConstProfitable(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), IsNOT(), llvm::SelectionDAG::isSplatValue(), isSubBorrowChain(), isTruncWithZeroHighBitsInput(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), llvm::X86TargetLowering::isVectorLoadExtDesirable(), isWorthFoldingSHL(), LookThroughSetCC(), lookThroughSignExtension(), lowerAddSubToHorizontalOp(), LowerAndToBT(), LowerAsSplatVectorLoad(), LowerBUILD_VECTORAsVariablePermute(), LowerBUILD_VECTORToVIDUP(), LowerBuildVectorOfFPExt(), LowerBuildVectorOfFPTrunc(), lowerBuildVectorToBitOp(), LowerBuildVectorv4x32(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SITargetLowering::lowerDYNAMIC_STACKALLOCImpl(), LowerFABSorFNEG(), lowerFP_TO_SINT_STORE(), lowerFPToIntToFP(), LowerSaturatingConditional(), LowerScalarVariableShift(), llvm::MSP430TargetLowering::LowerSETCC(), LowerShift(), lowerShuffleAsBroadcast(), lowerShuffleAsTruncBroadcast(), lowerShuffleOfExtractsAsVperm(), LowerTruncateToBT(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), LowerVSETCC(), llvm::ISD::matchBinaryPredicate(), llvm::SelectionDAG::matchBinOpReduction(), matchBSwapHWordOrAndAnd(), MatchingStackOffset(), matchLogicBlend(), matchPMADDWD_2(), matchRotateSub(), mayUseP9Setb(), moveBelowOrigChain(), narrowExtractedVectorBinOp(), narrowExtractedVectorSelect(), narrowInsertExtractVectorBinOp(), partitionShuffleOfConcats(), llvm::peekThroughBitcasts(), llvm::peekThroughExtractSubvectors(), llvm::peekThroughOneUseBitcasts(), PeepholePPC64ZExtGather(), PerformADDCombineWithOperands(), performAddDotCombine(), performAddSubLongCombine(), PerformADDVecReduce(), performANDCombine(), PerformARMBUILD_VECTORCombine(), llvm::AMDGPUTargetLowering::performAssertSZExtCombine(), PerformBFICombine(), performCommonVectorExtendCombine(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformExtendCombine(), PerformExtractEltCombine(), llvm::AMDGPUTargetLowering::performFAbsCombine(), llvm::AMDGPUTargetLowering::performFNegCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), performORCombine(), PerformORCombineToBFI(), performSELECTCombine(), performSelectCombine(), performSETCCCombine(), PerformShiftCombine(), performSHLCombine(), PerformShuffleVMOVNCombine(), PerformSplittingMVETruncToNarrowingStores(), PerformSplittingToNarrowingStores(), llvm::AMDGPUTargetLowering::performSrlCombine(), performSRLCombine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), performUADDVCombine(), performUzpCombine(), PerformVECREDUCE_ADDCombine(), performVecReduceAddCombine(), PerformVECTOR_SHUFFLECombine(), performVectorExtendCombine(), performVectorTruncateCombine(), PerformVMOVDRRCombine(), PerformVMOVRRDCombine(), PerformVQDMULHCombine(), performVSELECTCombine(), performVSelectCombine(), PromoteMaskArithmetic(), pushAddIntoCmovOfConsts(), llvm::AArch64TargetLowering::ReconstructShuffle(), reduceBuildVecToShuffleWithZero(), reduceVSXSwap(), removeRedundantInsertVectorElt(), replaceShuffleOfInsert(), replaceSplatVectorStore(), replaceZeroVectorStore(), scalarizeExtEltFP(), scalarizeExtractedBinop(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), SelectSAddrFI(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCWithCTPOP(), llvm::AMDGPUTargetLowering::stripBitcast(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), tryCombineCRC32(), tryCombineFixedPointConvert(), tryCombineToBSL(), tryConvertSVEWideCompare(), TryDistrubutionADDVecReduce(), tryToFoldExtendOfConstant(), vectorizeExtractedCast(), visitORCommutative(), widenCtPop(), and willShiftRightEliminate().

◆ getResNo()

unsigned llvm::SDValue::getResNo ( ) const
inline

◆ getScalarValueSizeInBits()

uint64_t llvm::SDValue::getScalarValueSizeInBits ( ) const
inline

◆ getSimpleValueType()

MVT llvm::SDValue::getSimpleValueType ( ) const
inline

Return the simple ValueType of the referenced return value.

Definition at line 183 of file SelectionDAGNodes.h.

References llvm::EVT::getSimpleVT(), and getValueType().

Referenced by canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), combineAddOfPMADDWD(), combineBitcast(), combineConcatVectorOps(), combineInsertSubvector(), combineLoad(), combineRedundantDWordShuffle(), combineSetCCMOVMSK(), combineStore(), combineTargetShuffle(), combineVEXTRACT_STORE(), combineX86AddSub(), combineX86ShuffleChain(), combineX86ShufflesConstants(), combineX86ShufflesRecursively(), constructDup(), convertShiftLeftToScale(), EmitAVX512Test(), ExpandHorizontalBinOp(), ExtendToType(), ExtractBitFromMaskVector(), getCopyFromPartsVector(), getNullFPConstForNullVal(), getPMOVMSKB(), getReductionSDNode(), getScalarValueForVectorElement(), getShuffleHalfVectors(), getTargetVShiftNode(), getUnderlyingExtractedFromVec(), incDecVectorConstant(), insert1BitVector(), InsertBitToMaskVector(), isAddSubOrSubAdd(), isHorizontalBinOp(), llvm::TargetLowering::LegalizeSetCCCondCode(), LowerBUILD_VECTORAsVariablePermute(), lowerBuildVectorAsBroadcast(), LowerBuildVectorv4x32(), LowerCONCAT_VECTORSvXi1(), LowerEXTRACT_SUBVECTOR(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerFCOPYSIGN(), LowerFGETSIGN(), llvm::AMDGPUTargetLowering::LowerFP_TO_FP16(), lowerFPToIntToFP(), LowerFunnelShift(), LowerHorizontalByteSum(), llvm::VETargetLowering::lowerINSERT_VECTOR_ELT(), LowerMSTORE(), LowerSETCCCARRY(), lowerShuffleAsBroadcast(), lowerShuffleAsInsertPS(), lowerShuffleAsTruncBroadcast(), lowerShuffleOfExtractsAsVperm(), lowerShuffleWithPERMV(), LowerStore(), lowerUINT_TO_FP_v2i32(), lowerUINT_TO_FP_vec(), lowerUINT_TO_FP_vXi32(), lowerV16F32Shuffle(), lowerV16I16Shuffle(), lowerV16I32Shuffle(), lowerV16I8Shuffle(), lowerV2F64Shuffle(), lowerV2I64Shuffle(), lowerV32I16Shuffle(), lowerV32I8Shuffle(), lowerV4F32Shuffle(), lowerV4F64Shuffle(), lowerV4I32Shuffle(), lowerV4I64Shuffle(), lowerV64I8Shuffle(), lowerV8F16Shuffle(), lowerV8F32Shuffle(), lowerV8F64Shuffle(), lowerV8I16Shuffle(), lowerV8I32Shuffle(), lowerV8I64Shuffle(), lowerVECTOR_SHUFFLE(), lowerVectorIntrinsicSplats(), LowerVSETCC(), matchShuffleAsInsertPS(), narrowExtractedVectorSelect(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performVECTOR_SHUFFLECombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifySetCC(), splitAndLowerShuffle(), vectorizeExtractedCast(), and widenSubVector().

◆ getValue()

SDValue llvm::SDValue::getValue ( unsigned  R) const
inline

Definition at line 172 of file SelectionDAGNodes.h.

References llvm::RISCVFenceField::R, and SDValue().

Referenced by AddCombineTo64bitMLAL(), adjustSubwordCmp(), llvm::AVRDAGToDAGISel::select< AVRISD::CALL >(), llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), combineADDCARRYDiamond(), combineAddOrSubToADCOrSBB(), combineBitcast(), combineCarryDiamond(), combineConcatVectorOps(), combineCVTP2I_CVTTP2I(), combineCVTPH2PS(), combineFP_EXTEND(), combineInsertSubvector(), combineLoad(), combineMaskedLoadConstantMask(), combineMOVDQ2Q(), combineSetCCAtomicArith(), combineSIntToFP(), combineTargetShuffle(), combineVectorCompareAndMaskUnaryOp(), combineVectorSizedSetCCEquality(), combineX86INT_TO_FP(), ConvertBooleanCarryToCarryFlag(), EmitCmp(), emitComparison(), emitRepmovs(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemcmp(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForStrcpy(), EmitTest(), llvm::TargetLowering::expandFixedPointDiv(), expandIntrinsicWChainHelper(), llvm::TargetLowering::expandMUL_LOHI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), GeneratePerfectShuffle(), getAArch64XALUOOp(), getAVX2GatherNode(), getBROADCAST_LOAD(), llvm::RegsForValue::getCopyToRegs(), llvm::HexagonTargetLowering::GetDynamicTLSAddr(), getFPBinOp(), getFPTernOp(), getGatherNode(), getMemCmpLoad(), llvm::MipsTargetLowering::getOpndList(), getOutputChainFromCallSeq(), GetTLSADDR(), getv64i1Argument(), llvm::TargetLowering::LegalizeSetCCCondCode(), llvm::HexagonTargetLowering::LowerAddSubCarry(), LowerADDSUBCARRY(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), lowerAtomicArith(), lowerBuildVectorAsBroadcast(), llvm::VETargetLowering::LowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::HexagonTargetLowering::LowerCallResult(), llvm::SITargetLowering::LowerCallResult(), lowerCallResult(), LowerCallResult(), LowerCMP_SWAP(), LowerDYNAMIC_STACKALLOC(), llvm::SITargetLowering::lowerDYNAMIC_STACKALLOCImpl(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), LowerFP16_TO_FP(), LowerFP_TO_FP16(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerI64IntToFP16(), LowerI64IntToFP_AVX512DQ(), lowerINT_TO_FP_vXi64(), LowerLoad(), LowerMGATHER(), LowerMLOAD(), llvm::SystemZTargetLowering::LowerOperationWrapper(), llvm::TargetLowering::LowerOperationWrapper(), LowerPARITY(), llvm::VETargetLowering::LowerReturn(), llvm::HexagonTargetLowering::LowerReturn(), llvm::SITargetLowering::LowerReturn(), llvm::RISCVTargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::SparcTargetLowering::LowerReturn_64(), llvm::AMDGPUTargetLowering::LowerSDIVREM(), LowerSETCCCARRY(), llvm::VETargetLowering::lowerToTLSGeneralDynamicModel(), llvm::HexagonTargetLowering::LowerToTLSGeneralDynamicModel(), LowerToTLSGeneralDynamicModel32(), LowerToTLSLocalDynamicModel(), llvm::AMDGPUTargetLowering::LowerUDIVREM64(), LowerUINT_TO_FP_i32(), LowerUINT_TO_FP_i64(), lowerUINT_TO_FP_v2i32(), lowerUINT_TO_FP_vXi32(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerV2X128Shuffle(), LowerVECTOR_SHUFFLE(), LowerVSETCC(), llvm::SelectionDAG::makeEquivalentMemoryOrdering(), AMDGPUDAGToDAGISel::matchLoadD16FromBuildVector(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performDivRemCombine(), performGatherLoadCombine(), performLDNT1Combine(), llvm::AMDGPUTargetLowering::performLoadCombine(), performScatterStoreCombine(), PerformSETCCCombine(), performSignExtendInRegCombine(), PerformSTORECombine(), PerformVDUPCombine(), PerformVECREDUCE_ADDCombine(), PerformVMOVhrCombine(), PerformVMOVrhCombine(), PerformVMOVRRDCombine(), prepareDescriptorIndirectCall(), prepareIndirectCall(), PrepareTailCall(), ReplaceINTRINSIC_W_CHAIN(), ReplaceLoadVector(), ReplaceLongIntrinsic(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), ReplaceREADCYCLECOUNTER(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), SkipExtensionForVMULL(), splitStores(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), tryToElideArgumentCopy(), tryToFoldExtOfExtload(), tryToFoldExtOfLoad(), llvm::SelectionDAG::UnrollVectorOverflowOp(), and llvm::AMDGPUTargetLowering::WidenOrSplitVectorLoad().

◆ getValueSizeInBits()

TypeSize llvm::SDValue::getValueSizeInBits ( ) const
inline

Returns the size of the value in bits.

If the value type is a scalable vector type, the scalable property will be set and the runtime size will be a positive integer multiple of the base size.

Definition at line 192 of file SelectionDAGNodes.h.

References llvm::EVT::getSizeInBits(), and getValueType().

Referenced by llvm::SelectionDAGISel::CheckAndMask(), CheckForMaskedLoad(), llvm::SelectionDAGISel::CheckOrMask(), combineArithReduction(), combineBT(), combineConcatVectorOps(), combineExtractSubvector(), combineExtractWithShuffle(), combineInsertSubvector(), combineMUL_VLToVWMUL(), combineSetCCMOVMSK(), combineShiftLeft(), combineStore(), combineTargetShuffle(), combineVectorCompareAndMaskUnaryOp(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), combineZext(), llvm::SelectionDAG::computeKnownBits(), computeZeroableShuffleElements(), constructDup(), createVariablePermute(), EltsFromConsecutiveLoads(), getFauxShuffleMask(), getHopForBuildVector(), llvm::SelectionDAG::getNode(), getPermuteMask(), isHorizontalBinOp(), isTruncWithZeroHighBitsInput(), lookThroughSignExtension(), LowerAndToBT(), lowerBuildVectorAsBroadcast(), lowerBuildVectorToBitOp(), lowerFP_TO_SINT_STORE(), llvm::NVPTXTargetLowering::LowerReturn(), lowerShuffleAsBroadcast(), lowerV8I16GeneralSingleInputShuffle(), matchPMADDWD_2(), llvm::RISCVTargetLowering::PerformDAGCombine(), reduceBuildVecToShuffleWithZero(), llvm::SelectionDAGISel::SelectCodeCommon(), ShrinkLoadReplaceStoreWithStore(), simplifyMul24(), llvm::TargetLowering::SimplifySetCC(), spillIncomingStatepointValue(), tryCombineFixedPointConvert(), tryFormConcatFromShuffle(), and widenSubVector().

◆ getValueType()

EVT llvm::SDValue::getValueType ( ) const
inline

Return the ValueType of the referenced return value.

Definition at line 1121 of file SelectionDAGNodes.h.

Referenced by AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64bitMLAL(), AddCombineVUZPToVPADDL(), addShuffleForVecExtend(), adjustBitcastSrcVectorSSE1(), buildFromShuffleMostly(), BuildIntrinsicOp(), calculatePreExtendType(), CanCombineFCOPYSIGN_EXTEND_ROUND(), canEmitConjunction(), canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), canonicalizeShuffleWithBinOps(), CheckForMaskedLoad(), clampDynamicVectorIndex(), collectConcatOps(), combineABSToABD(), combineAdd(), combineADDCARRYDiamond(), combineAddOrSubToADCOrSBB(), combineAnd(), combineAndMaskToShift(), combineArithReduction(), combineBasicSADPattern(), combineBitcast(), combineBitOpWithMOVMSK(), combineBVOfVecSExt(), combineCarryDiamond(), combineCarryThroughADD(), combineCastedMaskArithmetic(), combineCMov(), combineCompareEqual(), combineConcatVectorOfExtracts(), combineConcatVectorOps(), combineExtractSubvector(), combineExtractVectorElt(), combineExtractWithShuffle(), combineExtSetcc(), combineFP_EXTEND(), combineHorizOpWithShuffle(), combineMaskedStore(), combineMUL_VLToVWMUL(), combinePMULDQ(), combinePMULH(), combinePredicateReduction(), combinePTESTCC(), combineRedundantDWordShuffle(), combineScalarAndWithMaskSetcc(), combineSelect(), combineSetCC(), combineSetCCAtomicArith(), combineSetCCMOVMSK(), combineSext(), combineShiftLeft(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToMULH(), combineShiftToPMULH(), combineShuffleOfScalars(), combineSignExtendInReg(), combineSIntToFP(), combineStore(), combineSub(), combineSVEReductionFP(), combineSVEReductionOrderedFP(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineToExtendCMOV(), combineToFPTruncExtElt(), combineTruncate(), combineUIntToFP(), combineVectorHADDSUB(), combineVectorPack(), combineVectorShiftImm(), CombineVMOVDRRCandidateWithVecOp(), combineVSelectWithAllOnesOrZeros(), combineX86ShuffleChain(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), combineXor(), combineZext(), CompactSwizzlableVector(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::SelectionDAG::ComputeNumSignBits(), concatSubVectors(), constructDup(), ConvertBooleanCarryToCarryFlag(), convertFromScalableVector(), convertIntLogicToFPLogic(), convertToScalableVector(), createCMovFP(), createFPCmp(), createLoadLR(), createPSADBW(), createStoreLR(), createVariablePermute(), detectAVGPattern(), detectPMADDUBSW(), detectZextAbsDiff(), distributeOpThroughSelect(), earlyExpandDIVFIX(), EltsFromConsecutiveLoads(), EmitCMP(), EmitCmp(), emitComparison(), emitConditionalComparison(), emitConjunctionRec(), emitStrictFPComparison(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForStrcmp(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForStrcpy(), EmitTruncSStore(), EmitVectorComparison(), expandDivFix(), expandf64Toi32(), llvm::TargetLowering::expandFixedPointDiv(), expandPow(), ExpandPowI(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), ExtendToType(), ExtendUsesToFormExtLoad(), extract128BitVector(), extract256BitVector(), extractBooleanFlip(), extractShiftForRotate(), extractSubReg(), extractSubVector(), FlattenVectorShuffle(), foldAddSubMasked1(), foldAddSubOfSignBit(), foldAndToUsubsat(), foldBitcastedFPLogic(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), foldExtendedSignBitTest(), foldFPToIntToFP(), FoldIntToFPToInt(), llvm::SelectionDAG::FoldSetCC(), foldTruncStoreOfExt(), foldXorTruncShiftIntoCmp(), GeneratePerfectShuffle(), getAArch64Cmp(), getAsCarry(), llvm::SelectionDAG::getAssertAlign(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getAtomicCmpSwap(), llvm::SelectionDAG::getBitcast(), getBitTestCondition(), getBuildDwordsVector(), getCopyFromParts(), getCopyFromPartsVector(), getCopyToParts(), getCopyToPartsVector(), llvm::SelectionDAG::GetDemandedBits(), getEstimate(), getExtFactor(), llvm::SelectionDAG::getExtLoad(), llvm::SelectionDAG::getExtLoadVP(), getFauxShuffleMask(), llvm::SelectionDAG::getFreeze(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedLoadVP(), llvm::SelectionDAG::getIndexedMaskedLoad(), getKnownUndefForVectorBinop(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getLoadVP(), llvm::SelectionDAG::getMaskedStore(), llvm::SelectionDAG::getMemBasePlusOffset(), llvm::SelectionDAG::getNode(), getNullFPConstForNullVal(), getOutputChainFromCallSeq(), llvm::HexagonTargetLowering::getPICJumpTableRelocBase(), llvm::AMDGPUTargetLowering::getRecipEstimate(), getReductionSDNode(), getScalarValueSizeInBits(), llvm::SelectionDAG::getSelect(), llvm::SelectionDAG::getSelectCC(), llvm::SelectionDAG::getSetCC(), getShuffleHalfVectors(), getShuffleScalarElt(), getSimpleValueType(), llvm::SelectionDAG::getSplatSourceVector(), llvm::AMDGPUTargetLowering::getSqrtEstimate(), llvm::NVPTXTargetLowering::getSqrtEstimate(), llvm::TargetLowering::getSqrtResultForDenormInput(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getStoreVP(), getSToVPermuted(), getSubVectorSrc(), getTargetShuffleAndZeroables(), llvm::SelectionDAG::getTruncStore(), llvm::SelectionDAG::getTruncStoreVP(), getValueSizeInBits(), llvm::SDUse::getValueType(), llvm::SelectionDAG::getVectorShuffle(), llvm::TargetLowering::getVectorSubVecPointer(), getVPermMask(), llvm::AArch64TargetLowering::hasAndNotCompare(), insert128BitVector(), insertSubReg(), insertSubVector(), IntCondCCodeToICC(), isBitfieldExtractOpFromShr(), isBoolSGPR(), llvm::SITargetLowering::isCanonicalized(), isConditionalZeroOrAllOnes(), llvm::RISCVTargetLowering::isDesirableToCommuteWithShift(), isHorizontalBinOpPart(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isLegalToCombineMinNumMaxNum(), llvm::RISCVTargetLowering::isMulAddWithConstProfitable(), llvm::AArch64TargetLowering::isMulAddWithConstProfitable(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), IsNOT(), llvm::SelectionDAG::isSplatValue(), isTruncateOf(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), llvm::X86TargetLowering::isVectorLoadExtDesirable(), llvm::XCoreTargetLowering::isZExtFree(), llvm::MSP430TargetLowering::isZExtFree(), llvm::AMDGPUTargetLowering::isZExtFree(), llvm::ARMTargetLowering::isZExtFree(), llvm::AArch64TargetLowering::isZExtFree(), llvm::X86TargetLowering::isZExtFree(), llvm::TargetLoweringBase::isZExtFree(), LowerADDSUBCARRY(), LowerAndToBT(), LowerAsSplatVectorLoad(), llvm::VETargetLowering::lowerATOMIC_SWAP(), LowerBR_CC(), lowerBuildVectorAsBroadcast(), LowerBuildVectorOfFPExt(), LowerBuildVectorOfFPTrunc(), llvm::RISCVTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), LowerCONCAT_VECTORS_i1(), LowerConvertLow(), lowerConvertToSVBool(), lowerDSPIntr(), LowerEXTEND_VECTOR_INREG(), LowerEXTRACT_SUBVECTOR(), LowerEXTRACT_VECTOR_ELT(), LowerF128Load(), LowerF128Store(), LowerF64Op(), lowerFCMPIntrinsic(), llvm::AMDGPUTargetLowering::LowerFP_TO_FP16(), LowerFunnelShift(), lowerICMPIntrinsic(), lowerIncomingStatepointValue(), LowerINTRINSIC_W_CHAIN(), LowerLabelRef(), lowerLoadF128(), lowerMasksToReg(), LowerMUL(), LowerMULO(), llvm::RISCVTargetLowering::LowerOperation(), LowerSELECT_CC(), LowerSETCCCARRY(), lowerShuffleAsBroadcast(), lowerShuffleAsElementInsertion(), lowerShuffleToEXPAND(), lowerShuffleWithPACK(), llvm::MSP430TargetLowering::LowerSIGN_EXTEND(), lowerStatepointMetaArgs(), LowerStore(), lowerStoreF128(), LowerSVEIntrinsicIndex(), LowerUINT_TO_FP_i32(), LowerUMULO_SMULO(), LowerVecReduce(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_i1(), LowerVectorAllZero(), lowerVectorIntrinsicSplats(), LowerVSETCC(), LowerWRITE_REGISTER(), llvm::SelectionDAG::makeEquivalentMemoryOrdering(), llvm::ISD::matchBinaryPredicate(), matchBinaryShuffle(), matchPMADDWD_2(), MatchVectorAllZeroTest(), matchZExtFromI32(), narrowExtractedVectorBinOp(), narrowInsertExtractVectorBinOp(), NarrowVector(), needCarryOrOverflowFlag(), onlyZeroFlagUsed(), partitionShuffleOfConcats(), PerformADDCombineWithOperands(), PerformANDCombine(), PerformARMBUILD_VECTORCombine(), performBRCONDCombine(), performCommonVectorExtendCombine(), performConcatVectorsCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformExtendCombine(), PerformExtractEltCombine(), PerformExtractEltToVMOVRRD(), PerformExtractFpToIntStores(), llvm::AMDGPUTargetLowering::performFNegCombine(), performInsertSubvectorCombine(), PerformInsertSubvectorCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), performSELECTCombine(), performSelectCombine(), performSetccAddFolding(), performSETCCCombine(), PerformShuffleVMOVNCombine(), performSignExtendInRegCombine(), PerformSplittingMVETruncToNarrowingStores(), PerformSplittingToNarrowingStores(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformTruncatingStoreCombine(), performUADDVCombine(), PerformVECREDUCE_ADDCombine(), performVecReduceAddCombine(), PerformVECTOR_SHUFFLECombine(), performVectorExtendCombine(), performVectorTruncateCombine(), PerformVMOVRRDCombine(), PerformVQDMULHCombine(), performVSelectCombine(), prepareTS1AM(), PromoteMaskArithmetic(), reduceBuildVecToShuffleWithZero(), removeRedundantInsertVectorElt(), ReorganizeVector(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), replaceSplatVectorStore(), replaceZeroVectorStore(), SaturateWidenedDIVFIX(), scalarizeBinOpOfSplats(), scalarizeExtEltFP(), scalarizeVectorStore(), llvm::SelectionDAGISel::SelectCodeCommon(), shouldExpandVectorDynExt(), llvm::X86TargetLowering::shouldScalarizeBinop(), ShrinkLoadReplaceStoreWithStore(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), llvm::TargetLowering::SimplifySetCC(), llvm::TargetLowering::softenSetCCOperands(), spillIncomingStatepointValue(), llvm::SITargetLowering::splitBinaryVectorOp(), splitIntVSETCC(), splitStores(), splitStoreSplat(), llvm::SITargetLowering::splitTernaryVectorOp(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), llvm::SystemZTargetLowering::splitValueIntoRegisterParts(), llvm::AMDGPUTargetLowering::SplitVectorStore(), splitVectorStore(), stripModuloOnShift(), TranslateM68kCC(), translateSetCCForBranch(), TranslateX86CC(), tryBitfieldInsertOpFromOr(), tryCombineFixedPointConvert(), tryCombineLongOpWithDup(), tryFormConcatFromShuffle(), tryToFoldExtendOfConstant(), tryToFoldExtOfLoad(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SelectionDAGBuilder::visitBitTestHeader(), llvm::SelectionDAGBuilder::visitJumpTableHeader(), visitORCommutative(), llvm::SelectionDAGBuilder::visitSwitchCase(), widenCtPop(), widenSubVector(), widenVec(), WidenVector(), widenVectorToPartType(), and willLowerDirectly().

◆ hasOneUse()

bool llvm::SDValue::hasOneUse ( ) const
inline

Return true if there is exactly one node using value ResNo of Node.

Definition at line 1165 of file SelectionDAGNodes.h.

Referenced by canEmitConjunction(), canonicalizeBitSelect(), CheckForMaskedLoad(), combineAddOrSubToADCOrSBB(), combineBitcast(), combineBitOpWithMOVMSK(), combineCastedMaskArithmetic(), combineCMP(), combineExtractSubvector(), combineExtractVectorElt(), combineExtractWithShuffle(), combineFaddCFmul(), combineFMulcFCMulc(), combineInsertSubvector(), combineMUL_VLToVWMUL(), combinePMULDQ(), combineRedundantDWordShuffle(), combineSelect(), combineSelectAndUse(), combineSetCCAtomicArith(), combineSext(), combineSextInRegCmov(), combineShiftAnd1ToBitTest(), combineShiftOfShiftedLogic(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToPMULH(), combineShuffleToFMAddSub(), combineSIntToFP(), combineStore(), combineSubABS(), combineTargetShuffle(), combineToExtendCMOV(), combineToFPTruncExtElt(), combineX86ShuffleChain(), combineXor(), combineZext(), convertIntLogicToFPLogic(), EmitAVX512Test(), EmitCmp(), foldAddSubOfSignBit(), foldAndToUsubsat(), foldExtendedSignBitTest(), foldFreeOpFromSelect(), foldXorTruncShiftIntoCmp(), isADDADDMUL(), isCalleeLoad(), IsNOT(), lowerAddSubToHorizontalOp(), llvm::MSP430TargetLowering::LowerSETCC(), lowerShuffleAsBroadcast(), lowerShuffleOfExtractsAsVperm(), LowerStore(), lowerV2X128Shuffle(), LowerVSETCC(), mayUseP9Setb(), narrowExtractedVectorBinOp(), narrowVectorSelect(), llvm::peekThroughOneUseBitcasts(), PerformBFICombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::performFAbsCombine(), llvm::AMDGPUTargetLowering::performFNegCombine(), performIntToFpCombine(), PerformORCombine(), PerformSplittingMVEEXTToWideningLoad(), PerformSplittingToWideningLoad(), llvm::AMDGPUTargetLowering::performStoreCombine(), PerformVMOVrhCombine(), pushAddIntoCmovOfConsts(), reachesChainWithoutSideEffects(), reduceBuildVecToShuffleWithZero(), reduceVSXSwap(), replaceZeroVectorStore(), scalarizeExtEltFP(), scalarizeExtractedBinop(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCWithCTPOP(), tryBitfieldInsertOpFromOr(), tryToFoldExtendSelectLoad(), tryToFoldExtOfExtload(), tryToFoldExtOfLoad(), tryToFoldExtOfMaskedLoad(), usePartialVectorLoads(), and widenCtPop().

◆ isMachineOpcode()

bool llvm::SDValue::isMachineOpcode ( ) const
inline

Definition at line 1149 of file SelectionDAGNodes.h.

Referenced by PeepholePPC64ZExtGather().

◆ isOperandOf()

bool SDValue::isOperandOf ( const SDNode N) const

Return true if this node is an operand of N.

isOperand - Return true if this node is an operand of N.

Definition at line 10249 of file SelectionDAG.cpp.

References llvm::is_contained(), and N.

◆ isTargetMemoryOpcode()

bool llvm::SDValue::isTargetMemoryOpcode ( ) const
inline

Definition at line 1145 of file SelectionDAGNodes.h.

◆ isTargetOpcode()

bool llvm::SDValue::isTargetOpcode ( ) const
inline

Definition at line 1141 of file SelectionDAGNodes.h.

◆ isUndef()

bool llvm::SDValue::isUndef ( ) const
inline

Definition at line 1157 of file SelectionDAGNodes.h.

Referenced by buildMergeScalars(), canonicalizeLaneShuffleWithRepeatedOps(), combineConcatVectorOfExtracts(), combineInsertSubvector(), combineMaskedLoadConstantMask(), combineSetCCMOVMSK(), combineShuffleOfConcatUndef(), combineShuffleOfScalars(), combineShuffleOfSplatVal(), combineTargetShuffle(), combineVectorHADDSUB(), combineVectorPack(), combineVectorShiftImm(), combineXor(), combineZext(), createMMXBuildVector(), EltsFromConsecutiveLoads(), ExtendToType(), FlattenVectorShuffle(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::foldConstantFPMath(), llvm::SelectionDAG::FoldConstantVectorArithmetic(), llvm::SelectionDAG::FoldSetCC(), foldShuffleOfConcatUndefs(), formSplatFromShuffles(), getFauxShuffleMask(), getHopForBuildVector(), getKnownUndefForVectorBinop(), llvm::SelectionDAG::getNode(), llvm::BuildVectorSDNode::getRepeatedSequence(), getScalarMaskingNode(), getTargetShuffleAndZeroables(), getVectorMaskingNode(), llvm::SelectionDAG::getVectorShuffle(), haveEfficientBuildVectorPattern(), InferPointerInfo(), insert1BitVector(), insertSubVector(), isAddSubOrSubAdd(), llvm::BuildVectorSDNode::isConstantSplat(), isFNEG(), isHopBuildVector(), isHorizontalBinOp(), isHorizontalBinOpPart(), isSplatBV(), llvm::SelectionDAG::isSplatValue(), llvm::SelectionDAG::isUndef(), joinDwords(), LowerAVXCONCAT_VECTORS(), lowerBUILD_VECTOR(), LowerBUILD_VECTOR_i1(), lowerBuildVectorAsBroadcast(), LowerBuildVectorv4x32(), LowerCONCAT_VECTORS(), LowerCONCAT_VECTORSvXi1(), LowerF128Load(), LowerF128Store(), lowerIncomingStatepointValue(), lowerLoadF128(), LowerMLOAD(), llvm::VETargetLowering::lowerSTORE(), lowerStoreF128(), LowerToHorizontalOp(), lowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), llvm::ISD::matchBinaryPredicate(), matchShuffleAsBlend(), matchShuffleWithPACK(), partitionShuffleOfConcats(), PerformARMBUILD_VECTORCombine(), llvm::R600TargetLowering::PerformDAGCombine(), performInsertSubvectorCombine(), PerformInsertSubvectorCombine(), PerformSplittingToNarrowingStores(), PerformVECTOR_SHUFFLECombine(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::TargetLowering::SimplifyDemandedVectorElts(), simplifyDivRem(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), simplifyShuffleOfShuffle(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), and willLowerDirectly().

◆ operator bool()

llvm::SDValue::operator bool ( ) const
inlineexplicit

Definition at line 168 of file SelectionDAGNodes.h.

◆ operator!=()

bool llvm::SDValue::operator!= ( const SDValue O) const
inline

Definition at line 162 of file SelectionDAGNodes.h.

References llvm::RISCVFenceField::O, and operator==().

◆ operator->()

SDNode* llvm::SDValue::operator-> ( ) const
inline

Definition at line 157 of file SelectionDAGNodes.h.

◆ operator<()

bool llvm::SDValue::operator< ( const SDValue O) const
inline

Definition at line 165 of file SelectionDAGNodes.h.

References llvm::RISCVFenceField::O.

◆ operator==()

bool llvm::SDValue::operator== ( const SDValue O) const
inline

Definition at line 159 of file SelectionDAGNodes.h.

References llvm::RISCVFenceField::O.

Referenced by operator!=().

◆ reachesChainWithoutSideEffects()

bool SDValue::reachesChainWithoutSideEffects ( SDValue  Dest,
unsigned  Depth = 2 
) const

Return true if this operand (which must be a chain) reaches the specified operand without crossing any side-effecting instructions.

reachesChainWithoutSideEffects - Return true if this operand (which must be a chain) reaches the specified operand without crossing any side-effecting instructions on any chain path.

In practice, this looks through token factors and non-volatile loads. In order to remain efficient, this only looks a couple of nodes in, it does not do an exhaustive search.

In practice, this looks through token factors and non-volatile loads. In order to remain efficient, this only looks a couple of nodes in, it does not do an exhaustive search.

Note that we only need to examine chains when we're searching for side-effects; SelectionDAG requires that all side-effects are represented by chains, even if another operand would force a specific ordering. This constraint is necessary to allow transformations like splitting loads.

Definition at line 10268 of file SelectionDAG.cpp.

References llvm::all_of(), llvm::Depth, getOpcode(), hasOneUse(), llvm::is_contained(), and llvm::ISD::TokenFactor.

◆ setNode()

void llvm::SDValue::setNode ( SDNode N)
inline

set the SDNode

Definition at line 155 of file SelectionDAGNodes.h.

References N.

◆ use_empty()

bool llvm::SDValue::use_empty ( ) const
inline

Return true if there are no nodes using value ResNo of Node.

Definition at line 1161 of file SelectionDAGNodes.h.

Referenced by llvm::TargetLowering::getNegatedExpression(), and llvm::SelectionDAG::makeEquivalentMemoryOrdering().

Friends And Related Function Documentation

◆ DenseMapInfo< SDValue >

friend struct DenseMapInfo< SDValue >
friend

Definition at line 139 of file SelectionDAGNodes.h.


The documentation for this class was generated from the following files: