[#llvm-ISD] = xref:llvm.adoc[llvm]::ISD :relfileprefix: ../ :mrdocs: ISD namespace ‐ This namespace contains an enum which represents all of the SelectionDAG node types and value types. == Namespaces [cols="1,4"] |=== | Name| Description | xref:llvm/ISD/GlobalISel.adoc[`GlobalISel`] | GlobalISel helpers for ISD condition‐code transforms. |=== == Types [cols="1,4"] |=== | Name| Description | xref:llvm/ISD/ArgFlagsTy.adoc[`ArgFlagsTy`] | Flags describing how a single calling‐convention argument is passed. | xref:llvm/ISD/InputArg.adoc[`InputArg`] | Flags and type information for one incoming argument or return value. | xref:llvm/ISD/OutputArg.adoc[`OutputArg`] | Flags and value for one outgoing argument or return value. |=== == Enums [cols="1,4"] |=== | Name| Description | xref:llvm/ISD/CondCode.adoc[`CondCode`] | Comparison condition codes for SETCC and related SelectionDAG nodes. | xref:llvm/ISD/LoadExtType.adoc[`LoadExtType`] | LoadExtType enum ‐ This enum defines the three variants of LOADEXT (load with extension). | xref:llvm/ISD/MemIndexType.adoc[`MemIndexType`] | MemIndexType enum ‐ This enum defines how to interpret MGATHER/SCATTER's index parameter when calculating addresses. | xref:llvm/ISD/MemIndexedMode.adoc[`MemIndexedMode`] | MemIndexedMode enum ‐ This enum defines the load / store indexed addressing modes. | xref:llvm/ISD/NodeType.adoc[`NodeType`] | ISD::NodeType enum ‐ This enum defines the target‐independent operators for a SelectionDAG. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:llvm/ISD/allOperandsUndef.adoc[`allOperandsUndef`] | Return true if all operands of `N` are ISD::UNDEF. | xref:llvm/ISD/getBaseOpcodeForVP.adoc[`getBaseOpcodeForVP`] | Translate this VP Opcode to its corresponding non‐VP Opcode. | xref:llvm/ISD/getExtForLoadExtType.adoc[`getExtForLoadExtType`] | Return the ANY/SIGN/ZERO_EXTEND opcode matching `ExtType.` | xref:llvm/ISD/getInverseMinMaxOpcode.adoc[`getInverseMinMaxOpcode`] | Given a `MinMaxOpc` of ISD::(U|S)MIN or ISD::(U|S)MAX, returns ISD::(U|S)MAX and ISD::(U|S)MIN, respectively. | xref:llvm/ISD/getOppositeSignednessMinMaxOpcode.adoc[`getOppositeSignednessMinMaxOpcode`] | Return the min/max opcode with the opposite signedness of `MinMaxOpc.` | xref:llvm/ISD/getSetCCAndOperation.adoc[`getSetCCAndOperation`] | Return the SetCC opcode equivalent to ((X op1 Y) & (X op2 Y)). | xref:llvm/ISD/getSetCCInverse.adoc[`getSetCCInverse`] | Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation. | xref:llvm/ISD/getSetCCOrOperation.adoc[`getSetCCOrOperation`] | Return the SetCC opcode equivalent to ((X op1 Y) | (X op2 Y)). | xref:llvm/ISD/getSetCCSwappedOperands.adoc[`getSetCCSwappedOperands`] | Return the operation corresponding to (Y op X) when given the operation for (X op Y). | xref:llvm/ISD/getUnmaskedBinOpOpcode.adoc[`getUnmaskedBinOpOpcode`] | Given a `MaskedOpc` of ISD::MASKED_(U|S)(DIV|REM), returns the unmasked ISD::(U|S)(DIV|REM). | xref:llvm/ISD/getUnorderedFlavor.adoc[`getUnorderedFlavor`] | Classify how `Cond` behaves when an operand is NaN. | xref:llvm/ISD/getVPExplicitVectorLengthIdx.adoc[`getVPExplicitVectorLengthIdx`] | The operand position of the explicit vector length parameter. | xref:llvm/ISD/getVPForBaseOpcode.adoc[`getVPForBaseOpcode`] | Translate this non‐VP Opcode to its corresponding VP Opcode. | xref:llvm/ISD/getVPMaskIdx.adoc[`getVPMaskIdx`] | The operand position of the vector mask. | xref:llvm/ISD/getVecReduceBaseOpcode.adoc[`getVecReduceBaseOpcode`] | Get underlying scalar opcode for VECREDUCE opcode. For example ISD::AND for ISD::VECREDUCE_AND. | xref:llvm/ISD/isAbsOpcode.adoc[`isAbsOpcode`] | Whether this is an integer absolute‐value opcode (ISD::ABS or ISD::ABS_MIN_POISON). | xref:llvm/ISD/isBitwiseLogicOp.adoc[`isBitwiseLogicOp`] | Whether this is bitwise logic opcode. | xref:llvm/ISD/isBuildVectorAllOnes.adoc[`isBuildVectorAllOnes`] | Return true if `N` is a BUILD_VECTOR of all ones or undef. | xref:llvm/ISD/isBuildVectorAllZeros.adoc[`isBuildVectorAllZeros`] | Return true if `N` is a BUILD_VECTOR of all zeros or undef. | xref:llvm/ISD/isBuildVectorOfConstantFPSDNodes.adoc[`isBuildVectorOfConstantFPSDNodes`] | Return true if `N` is a BUILD_VECTOR of ConstantFPSDNode or undef. | xref:llvm/ISD/isBuildVectorOfConstantSDNodes.adoc[`isBuildVectorOfConstantSDNodes`] | Return true if `N` is a BUILD_VECTOR of ConstantSDNode or undef. | xref:llvm/ISD/isConstantSplatVector.adoc[`isConstantSplatVector`] | Return true if `N` is a constant splat BUILD_VECTOR or SPLAT_VECTOR. | xref:llvm/ISD/isConstantSplatVectorAllOnes.adoc[`isConstantSplatVectorAllOnes`] | Return true if `N` is an all‐ones constant splat vector. | xref:llvm/ISD/isConstantSplatVectorAllZeros.adoc[`isConstantSplatVectorAllZeros`] | Return true if `N` is an all‐zeros constant splat vector. | xref:llvm/ISD/isEXTLoad.adoc[`isEXTLoad`] | Returns true if the specified node is a EXTLOAD. | xref:llvm/ISD/isExtOpcode.adoc[`isExtOpcode`] | Return true if `Opcode` is ANY/ZERO/SIGN_EXTEND. | xref:llvm/ISD/isExtVecInRegOpcode.adoc[`isExtVecInRegOpcode`] | Return true if `Opcode` is an *_EXTEND_VECTOR_INREG opcode. | xref:llvm/ISD/isFPEqualitySetCC.adoc[`isFPEqualitySetCC`] | Return true if this is a setcc instruction that performs an equality comparison when used with floating point operands. | xref:llvm/ISD/isFreezeUndef.adoc[`isFreezeUndef`] | Return true if `N` is FREEZE(UNDEF). | xref:llvm/ISD/isIndexTypeSigned.adoc[`isIndexTypeSigned`] | Return true if `IndexType` treats the gather/scatter index as signed. | xref:llvm/ISD/isIntEqualitySetCC.adoc[`isIntEqualitySetCC`] | Return true if this is a setcc instruction that performs an equality comparison when used with integer operands. | xref:llvm/ISD/isMinMaxOpcode.adoc[`isMinMaxOpcode`] | Whether this is an integer min/max opcode (ISD::(U|S)MIN or ISD::(U|S)MAX). | xref:llvm/ISD/isNON_EXTLoad.adoc[`isNON_EXTLoad`] | Returns true if the specified node is a non‐extending load. | xref:llvm/ISD/isNormalLoad.adoc[`isNormalLoad`] | Returns true if the specified node is a non‐extending and unindexed load. | xref:llvm/ISD/isNormalMaskedLoad.adoc[`isNormalMaskedLoad`] | Returns true if `N` is a non‐extending unindexed masked load. | xref:llvm/ISD/isNormalMaskedStore.adoc[`isNormalMaskedStore`] | Returns true if `N` is a non‐truncating unindexed masked store. | xref:llvm/ISD/isNormalStore.adoc[`isNormalStore`] | Returns true if the specified node is a non‐truncating unindexed store. | xref:llvm/ISD/isOverflowIntrOpRes.adoc[`isOverflowIntrOpRes`] | Return true if `Op` is an overflow result of an overflow intrinsic. | xref:llvm/ISD/isSEXTLoad.adoc[`isSEXTLoad`] | Returns true if the specified node is a SEXTLOAD. | xref:llvm/ISD/isSignedIntSetCC.adoc[`isSignedIntSetCC`] | Return true if this is a setcc instruction that performs a signed comparison when used with integer operands. | xref:llvm/ISD/isTrueWhenEqual.adoc[`isTrueWhenEqual`] | Return true if `Cond` is true when its operands are equal. | xref:llvm/ISD/isUNINDEXEDLoad.adoc[`isUNINDEXEDLoad`] | Returns true if the specified node is an unindexed load. | xref:llvm/ISD/isUNINDEXEDStore.adoc[`isUNINDEXEDStore`] | Returns true if the specified node is an unindexed store. | xref:llvm/ISD/isUnsignedIntSetCC.adoc[`isUnsignedIntSetCC`] | Return true if this is a setcc instruction that performs an unsigned comparison when used with integer operands. | xref:llvm/ISD/isVPBinaryOp.adoc[`isVPBinaryOp`] | Whether this is a vector‐predicated binary operation opcode. | xref:llvm/ISD/isVPOpcode.adoc[`isVPOpcode`] | Whether this is a vector‐predicated Opcode. | xref:llvm/ISD/isVPReduction.adoc[`isVPReduction`] | Whether this is a vector‐predicated reduction opcode. | xref:llvm/ISD/isVectorShrinkable.adoc[`isVectorShrinkable`] | Return true if vector elements of `N` shrink to `NewEltSize.` | xref:llvm/ISD/isZEXTLoad.adoc[`isZEXTLoad`] | Returns true if the specified node is a ZEXTLOAD. | xref:llvm/ISD/matchBinaryPredicate-0b.adoc[`matchBinaryPredicate`] | `matchBinaryPredicate` overloads | xref:llvm/ISD/matchUnaryFpPredicate-01.adoc[`matchUnaryFpPredicate`] | `matchUnaryFpPredicate` overloads | xref:llvm/ISD/matchUnaryPredicate-00.adoc[`matchUnaryPredicate`] | `matchUnaryPredicate` overloads | xref:llvm/ISD/matchUnaryPredicateImpl.adoc[`matchUnaryPredicateImpl`] | Match a unary predicate against scalar/splat/BUILD_VECTOR constants. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#