LLVM 19.0.0git
Namespaces | Macros | Enumerations | Functions | Variables
ISDOpcodes.h File Reference
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/VPIntrinsics.def"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::ISD
 ISD namespace - This namespace contains an enum which represents all of the SelectionDAG node types and value types.
 
namespace  llvm::ISD::GlobalISel
 

Macros

#define BEGIN_REGISTER_VP_SDNODE(VPSDID, ...)   VPSDID,
 

Enumerations

enum  llvm::ISD::NodeType {
  llvm::ISD::DELETED_NODE , llvm::ISD::EntryToken , llvm::ISD::TokenFactor , llvm::ISD::AssertSext ,
  llvm::ISD::AssertZext , llvm::ISD::AssertAlign , llvm::ISD::BasicBlock , llvm::ISD::VALUETYPE ,
  llvm::ISD::CONDCODE , llvm::ISD::Register , llvm::ISD::RegisterMask , llvm::ISD::Constant ,
  llvm::ISD::ConstantFP , llvm::ISD::GlobalAddress , llvm::ISD::GlobalTLSAddress , llvm::ISD::FrameIndex ,
  llvm::ISD::JumpTable , llvm::ISD::ConstantPool , llvm::ISD::ExternalSymbol , llvm::ISD::BlockAddress ,
  llvm::ISD::GLOBAL_OFFSET_TABLE , llvm::ISD::FRAMEADDR , llvm::ISD::RETURNADDR , llvm::ISD::ADDROFRETURNADDR ,
  llvm::ISD::SPONENTRY , llvm::ISD::LOCAL_RECOVER , llvm::ISD::READ_REGISTER , llvm::ISD::WRITE_REGISTER ,
  llvm::ISD::FRAME_TO_ARGS_OFFSET , llvm::ISD::EH_DWARF_CFA , llvm::ISD::EH_RETURN , llvm::ISD::EH_SJLJ_SETJMP ,
  llvm::ISD::EH_SJLJ_LONGJMP , llvm::ISD::EH_SJLJ_SETUP_DISPATCH , llvm::ISD::TargetConstant , llvm::ISD::TargetConstantFP ,
  llvm::ISD::TargetGlobalAddress , llvm::ISD::TargetGlobalTLSAddress , llvm::ISD::TargetFrameIndex , llvm::ISD::TargetJumpTable ,
  llvm::ISD::TargetConstantPool , llvm::ISD::TargetExternalSymbol , llvm::ISD::TargetBlockAddress , llvm::ISD::MCSymbol ,
  llvm::ISD::TargetIndex , llvm::ISD::INTRINSIC_WO_CHAIN , llvm::ISD::INTRINSIC_W_CHAIN , llvm::ISD::INTRINSIC_VOID ,
  llvm::ISD::CopyToReg , llvm::ISD::CopyFromReg , llvm::ISD::UNDEF , llvm::ISD::FREEZE ,
  llvm::ISD::EXTRACT_ELEMENT , llvm::ISD::BUILD_PAIR , llvm::ISD::MERGE_VALUES , llvm::ISD::ADD ,
  llvm::ISD::SUB , llvm::ISD::MUL , llvm::ISD::SDIV , llvm::ISD::UDIV ,
  llvm::ISD::SREM , llvm::ISD::UREM , llvm::ISD::SMUL_LOHI , llvm::ISD::UMUL_LOHI ,
  llvm::ISD::SDIVREM , llvm::ISD::UDIVREM , llvm::ISD::CARRY_FALSE , llvm::ISD::ADDC ,
  llvm::ISD::SUBC , llvm::ISD::ADDE , llvm::ISD::SUBE , llvm::ISD::UADDO_CARRY ,
  llvm::ISD::USUBO_CARRY , llvm::ISD::SADDO_CARRY , llvm::ISD::SSUBO_CARRY , llvm::ISD::SADDO ,
  llvm::ISD::UADDO , llvm::ISD::SSUBO , llvm::ISD::USUBO , llvm::ISD::SMULO ,
  llvm::ISD::UMULO , llvm::ISD::SADDSAT , llvm::ISD::UADDSAT , llvm::ISD::SSUBSAT ,
  llvm::ISD::USUBSAT , llvm::ISD::SSHLSAT , llvm::ISD::USHLSAT , llvm::ISD::SMULFIX ,
  llvm::ISD::UMULFIX , llvm::ISD::SMULFIXSAT , llvm::ISD::UMULFIXSAT , llvm::ISD::SDIVFIX ,
  llvm::ISD::UDIVFIX , llvm::ISD::SDIVFIXSAT , llvm::ISD::UDIVFIXSAT , llvm::ISD::FADD ,
  llvm::ISD::FSUB , llvm::ISD::FMUL , llvm::ISD::FDIV , llvm::ISD::FREM ,
  llvm::ISD::STRICT_FADD , llvm::ISD::STRICT_FSUB , llvm::ISD::STRICT_FMUL , llvm::ISD::STRICT_FDIV ,
  llvm::ISD::STRICT_FREM , llvm::ISD::STRICT_FMA , llvm::ISD::STRICT_FSQRT , llvm::ISD::STRICT_FPOW ,
  llvm::ISD::STRICT_FPOWI , llvm::ISD::STRICT_FLDEXP , llvm::ISD::STRICT_FSIN , llvm::ISD::STRICT_FCOS ,
  llvm::ISD::STRICT_FEXP , llvm::ISD::STRICT_FEXP2 , llvm::ISD::STRICT_FLOG , llvm::ISD::STRICT_FLOG10 ,
  llvm::ISD::STRICT_FLOG2 , llvm::ISD::STRICT_FRINT , llvm::ISD::STRICT_FNEARBYINT , llvm::ISD::STRICT_FMAXNUM ,
  llvm::ISD::STRICT_FMINNUM , llvm::ISD::STRICT_FCEIL , llvm::ISD::STRICT_FFLOOR , llvm::ISD::STRICT_FROUND ,
  llvm::ISD::STRICT_FROUNDEVEN , llvm::ISD::STRICT_FTRUNC , llvm::ISD::STRICT_LROUND , llvm::ISD::STRICT_LLROUND ,
  llvm::ISD::STRICT_LRINT , llvm::ISD::STRICT_LLRINT , llvm::ISD::STRICT_FMAXIMUM , llvm::ISD::STRICT_FMINIMUM ,
  llvm::ISD::STRICT_FP_TO_SINT , llvm::ISD::STRICT_FP_TO_UINT , llvm::ISD::STRICT_SINT_TO_FP , llvm::ISD::STRICT_UINT_TO_FP ,
  llvm::ISD::STRICT_FP_ROUND , llvm::ISD::STRICT_FP_EXTEND , llvm::ISD::STRICT_FSETCC , llvm::ISD::STRICT_FSETCCS ,
  llvm::ISD::FPTRUNC_ROUND , llvm::ISD::FMA , llvm::ISD::FMAD , llvm::ISD::FCOPYSIGN ,
  llvm::ISD::FGETSIGN , llvm::ISD::FCANONICALIZE , llvm::ISD::IS_FPCLASS , llvm::ISD::BUILD_VECTOR ,
  llvm::ISD::INSERT_VECTOR_ELT , llvm::ISD::EXTRACT_VECTOR_ELT , llvm::ISD::CONCAT_VECTORS , llvm::ISD::INSERT_SUBVECTOR ,
  llvm::ISD::EXTRACT_SUBVECTOR , llvm::ISD::VECTOR_DEINTERLEAVE , llvm::ISD::VECTOR_INTERLEAVE , llvm::ISD::VECTOR_REVERSE ,
  llvm::ISD::VECTOR_SHUFFLE , llvm::ISD::VECTOR_SPLICE , llvm::ISD::SCALAR_TO_VECTOR , llvm::ISD::SPLAT_VECTOR ,
  llvm::ISD::SPLAT_VECTOR_PARTS , llvm::ISD::STEP_VECTOR , llvm::ISD::MULHU , llvm::ISD::MULHS ,
  llvm::ISD::AVGFLOORS , llvm::ISD::AVGFLOORU , llvm::ISD::AVGCEILS , llvm::ISD::AVGCEILU ,
  llvm::ISD::ABDS , llvm::ISD::ABDU , llvm::ISD::SMIN , llvm::ISD::SMAX ,
  llvm::ISD::UMIN , llvm::ISD::UMAX , llvm::ISD::AND , llvm::ISD::OR ,
  llvm::ISD::XOR , llvm::ISD::ABS , llvm::ISD::SHL , llvm::ISD::SRA ,
  llvm::ISD::SRL , llvm::ISD::ROTL , llvm::ISD::ROTR , llvm::ISD::FSHL ,
  llvm::ISD::FSHR , llvm::ISD::BSWAP , llvm::ISD::CTTZ , llvm::ISD::CTLZ ,
  llvm::ISD::CTPOP , llvm::ISD::BITREVERSE , llvm::ISD::PARITY , llvm::ISD::CTTZ_ZERO_UNDEF ,
  llvm::ISD::CTLZ_ZERO_UNDEF , llvm::ISD::SELECT , llvm::ISD::VSELECT , llvm::ISD::SELECT_CC ,
  llvm::ISD::SETCC , llvm::ISD::SETCCCARRY , llvm::ISD::SHL_PARTS , llvm::ISD::SRA_PARTS ,
  llvm::ISD::SRL_PARTS , llvm::ISD::SIGN_EXTEND , llvm::ISD::ZERO_EXTEND , llvm::ISD::ANY_EXTEND ,
  llvm::ISD::TRUNCATE , llvm::ISD::SINT_TO_FP , llvm::ISD::UINT_TO_FP , llvm::ISD::SIGN_EXTEND_INREG ,
  llvm::ISD::ANY_EXTEND_VECTOR_INREG , llvm::ISD::SIGN_EXTEND_VECTOR_INREG , llvm::ISD::ZERO_EXTEND_VECTOR_INREG , llvm::ISD::FP_TO_SINT ,
  llvm::ISD::FP_TO_UINT , llvm::ISD::FP_TO_SINT_SAT , llvm::ISD::FP_TO_UINT_SAT , llvm::ISD::FP_ROUND ,
  llvm::ISD::GET_ROUNDING , llvm::ISD::SET_ROUNDING , llvm::ISD::FP_EXTEND , llvm::ISD::BITCAST ,
  llvm::ISD::ADDRSPACECAST , llvm::ISD::FP16_TO_FP , llvm::ISD::FP_TO_FP16 , llvm::ISD::STRICT_FP16_TO_FP ,
  llvm::ISD::STRICT_FP_TO_FP16 , llvm::ISD::BF16_TO_FP , llvm::ISD::FP_TO_BF16 , llvm::ISD::STRICT_BF16_TO_FP ,
  llvm::ISD::STRICT_FP_TO_BF16 , llvm::ISD::FNEG , llvm::ISD::FABS , llvm::ISD::FSQRT ,
  llvm::ISD::FCBRT , llvm::ISD::FSIN , llvm::ISD::FCOS , llvm::ISD::FPOW ,
  llvm::ISD::FPOWI , llvm::ISD::FLDEXP , llvm::ISD::FFREXP , llvm::ISD::FLOG ,
  llvm::ISD::FLOG2 , llvm::ISD::FLOG10 , llvm::ISD::FEXP , llvm::ISD::FEXP2 ,
  llvm::ISD::FEXP10 , llvm::ISD::FCEIL , llvm::ISD::FTRUNC , llvm::ISD::FRINT ,
  llvm::ISD::FNEARBYINT , llvm::ISD::FROUND , llvm::ISD::FROUNDEVEN , llvm::ISD::FFLOOR ,
  llvm::ISD::LROUND , llvm::ISD::LLROUND , llvm::ISD::LRINT , llvm::ISD::LLRINT ,
  llvm::ISD::FMINNUM , llvm::ISD::FMAXNUM , llvm::ISD::FMINNUM_IEEE , llvm::ISD::FMAXNUM_IEEE ,
  llvm::ISD::FMINIMUM , llvm::ISD::FMAXIMUM , llvm::ISD::FSINCOS , llvm::ISD::GET_FPENV ,
  llvm::ISD::SET_FPENV , llvm::ISD::RESET_FPENV , llvm::ISD::GET_FPENV_MEM , llvm::ISD::SET_FPENV_MEM ,
  llvm::ISD::GET_FPMODE , llvm::ISD::SET_FPMODE , llvm::ISD::RESET_FPMODE , llvm::ISD::LOAD ,
  llvm::ISD::STORE , llvm::ISD::DYNAMIC_STACKALLOC , llvm::ISD::BR , llvm::ISD::BRIND ,
  llvm::ISD::BR_JT , llvm::ISD::JUMP_TABLE_DEBUG_INFO , llvm::ISD::BRCOND , llvm::ISD::BR_CC ,
  llvm::ISD::INLINEASM , llvm::ISD::INLINEASM_BR , llvm::ISD::EH_LABEL , llvm::ISD::ANNOTATION_LABEL ,
  llvm::ISD::CATCHRET , llvm::ISD::CLEANUPRET , llvm::ISD::STACKSAVE , llvm::ISD::STACKRESTORE ,
  llvm::ISD::CALLSEQ_START , llvm::ISD::CALLSEQ_END , llvm::ISD::VAARG , llvm::ISD::VACOPY ,
  llvm::ISD::VAEND , llvm::ISD::VASTART , llvm::ISD::PREALLOCATED_SETUP , llvm::ISD::PREALLOCATED_ARG ,
  llvm::ISD::SRCVALUE , llvm::ISD::MDNODE_SDNODE , llvm::ISD::PCMARKER , llvm::ISD::READCYCLECOUNTER ,
  llvm::ISD::READSTEADYCOUNTER , llvm::ISD::HANDLENODE , llvm::ISD::INIT_TRAMPOLINE , llvm::ISD::ADJUST_TRAMPOLINE ,
  llvm::ISD::TRAP , llvm::ISD::DEBUGTRAP , llvm::ISD::UBSANTRAP , llvm::ISD::PREFETCH ,
  llvm::ISD::ARITH_FENCE , llvm::ISD::MEMBARRIER , llvm::ISD::ATOMIC_FENCE , llvm::ISD::ATOMIC_LOAD ,
  llvm::ISD::ATOMIC_STORE , llvm::ISD::ATOMIC_CMP_SWAP , llvm::ISD::ATOMIC_CMP_SWAP_WITH_SUCCESS , llvm::ISD::ATOMIC_SWAP ,
  llvm::ISD::ATOMIC_LOAD_ADD , llvm::ISD::ATOMIC_LOAD_SUB , llvm::ISD::ATOMIC_LOAD_AND , llvm::ISD::ATOMIC_LOAD_CLR ,
  llvm::ISD::ATOMIC_LOAD_OR , llvm::ISD::ATOMIC_LOAD_XOR , llvm::ISD::ATOMIC_LOAD_NAND , llvm::ISD::ATOMIC_LOAD_MIN ,
  llvm::ISD::ATOMIC_LOAD_MAX , llvm::ISD::ATOMIC_LOAD_UMIN , llvm::ISD::ATOMIC_LOAD_UMAX , llvm::ISD::ATOMIC_LOAD_FADD ,
  llvm::ISD::ATOMIC_LOAD_FSUB , llvm::ISD::ATOMIC_LOAD_FMAX , llvm::ISD::ATOMIC_LOAD_FMIN , llvm::ISD::ATOMIC_LOAD_UINC_WRAP ,
  llvm::ISD::ATOMIC_LOAD_UDEC_WRAP , llvm::ISD::MLOAD , llvm::ISD::MSTORE , llvm::ISD::MGATHER ,
  llvm::ISD::MSCATTER , llvm::ISD::LIFETIME_START , llvm::ISD::LIFETIME_END , llvm::ISD::GC_TRANSITION_START ,
  llvm::ISD::GC_TRANSITION_END , llvm::ISD::GET_DYNAMIC_AREA_OFFSET , llvm::ISD::PSEUDO_PROBE , llvm::ISD::VSCALE ,
  llvm::ISD::VECREDUCE_SEQ_FADD , llvm::ISD::VECREDUCE_SEQ_FMUL , llvm::ISD::VECREDUCE_FADD , llvm::ISD::VECREDUCE_FMUL ,
  llvm::ISD::VECREDUCE_FMAX , llvm::ISD::VECREDUCE_FMIN , llvm::ISD::VECREDUCE_FMAXIMUM , llvm::ISD::VECREDUCE_FMINIMUM ,
  llvm::ISD::VECREDUCE_ADD , llvm::ISD::VECREDUCE_MUL , llvm::ISD::VECREDUCE_AND , llvm::ISD::VECREDUCE_OR ,
  llvm::ISD::VECREDUCE_XOR , llvm::ISD::VECREDUCE_SMAX , llvm::ISD::VECREDUCE_SMIN , llvm::ISD::VECREDUCE_UMAX ,
  llvm::ISD::VECREDUCE_UMIN , llvm::ISD::STACKMAP , llvm::ISD::PATCHPOINT , llvm::ISD::CONVERGENCECTRL_ANCHOR ,
  llvm::ISD::CONVERGENCECTRL_ENTRY , llvm::ISD::CONVERGENCECTRL_LOOP , llvm::ISD::CONVERGENCECTRL_GLUE , llvm::ISD::BUILTIN_OP_END
}
 ISD::NodeType enum - This enum defines the target-independent operators for a SelectionDAG. More...
 
enum  llvm::ISD::MemIndexedMode {
  llvm::ISD::UNINDEXED = 0 , llvm::ISD::PRE_INC , llvm::ISD::PRE_DEC , llvm::ISD::POST_INC ,
  llvm::ISD::POST_DEC
}
 MemIndexedMode enum - This enum defines the load / store indexed addressing modes. More...
 
enum  llvm::ISD::MemIndexType { llvm::ISD::SIGNED_SCALED = 0 , llvm::ISD::UNSIGNED_SCALED }
 MemIndexType enum - This enum defines how to interpret MGATHER/SCATTER's index parameter when calculating addresses. More...
 
enum  llvm::ISD::LoadExtType { llvm::ISD::NON_EXTLOAD = 0 , llvm::ISD::EXTLOAD , llvm::ISD::SEXTLOAD , llvm::ISD::ZEXTLOAD }
 LoadExtType enum - This enum defines the three variants of LOADEXT (load with extension). More...
 
enum  llvm::ISD::CondCode {
  llvm::ISD::SETFALSE , llvm::ISD::SETOEQ , llvm::ISD::SETOGT , llvm::ISD::SETOGE ,
  llvm::ISD::SETOLT , llvm::ISD::SETOLE , llvm::ISD::SETONE , llvm::ISD::SETO ,
  llvm::ISD::SETUO , llvm::ISD::SETUEQ , llvm::ISD::SETUGT , llvm::ISD::SETUGE ,
  llvm::ISD::SETULT , llvm::ISD::SETULE , llvm::ISD::SETUNE , llvm::ISD::SETTRUE ,
  llvm::ISD::SETFALSE2 , llvm::ISD::SETEQ , llvm::ISD::SETGT , llvm::ISD::SETGE ,
  llvm::ISD::SETLT , llvm::ISD::SETLE , llvm::ISD::SETNE , llvm::ISD::SETTRUE2 ,
  llvm::ISD::SETCC_INVALID
}
 ISD::CondCode enum - These are ordered carefully to make the bitfields below work out, when considering SETFALSE (something that never exists dynamically) as 0. More...
 

Functions

bool llvm::ISD::isBitwiseLogicOp (unsigned Opcode)
 Whether this is bitwise logic opcode.
 
NodeType llvm::ISD::getVecReduceBaseOpcode (unsigned VecReduceOpcode)
 Get underlying scalar opcode for VECREDUCE opcode.
 
bool llvm::ISD::isVPOpcode (unsigned Opcode)
 Whether this is a vector-predicated Opcode.
 
bool llvm::ISD::isVPBinaryOp (unsigned Opcode)
 Whether this is a vector-predicated binary operation opcode.
 
bool llvm::ISD::isVPReduction (unsigned Opcode)
 Whether this is a vector-predicated reduction opcode.
 
std::optional< unsignedllvm::ISD::getVPMaskIdx (unsigned Opcode)
 The operand position of the vector mask.
 
std::optional< unsignedllvm::ISD::getVPExplicitVectorLengthIdx (unsigned Opcode)
 The operand position of the explicit vector length parameter.
 
std::optional< unsignedllvm::ISD::getBaseOpcodeForVP (unsigned Opcode, bool hasFPExcept)
 Translate this VP Opcode to its corresponding non-VP Opcode.
 
unsigned llvm::ISD::getVPForBaseOpcode (unsigned Opcode)
 Translate this non-VP Opcode to its corresponding VP Opcode.
 
bool llvm::ISD::isIndexTypeSigned (MemIndexType IndexType)
 
NodeType llvm::ISD::getExtForLoadExtType (bool IsFP, LoadExtType)
 
bool llvm::ISD::isSignedIntSetCC (CondCode Code)
 Return true if this is a setcc instruction that performs a signed comparison when used with integer operands.
 
bool llvm::ISD::isUnsignedIntSetCC (CondCode Code)
 Return true if this is a setcc instruction that performs an unsigned comparison when used with integer operands.
 
bool llvm::ISD::isIntEqualitySetCC (CondCode Code)
 Return true if this is a setcc instruction that performs an equality comparison when used with integer operands.
 
bool llvm::ISD::isFPEqualitySetCC (CondCode Code)
 Return true if this is a setcc instruction that performs an equality comparison when used with floating point operands.
 
bool llvm::ISD::isTrueWhenEqual (CondCode Cond)
 Return true if the specified condition returns true if the two operands to the condition are equal.
 
unsigned llvm::ISD::getUnorderedFlavor (CondCode Cond)
 This function returns 0 if the condition is always false if an operand is a NaN, 1 if the condition is always true if the operand is a NaN, and 2 if the condition is undefined if the operand is a NaN.
 
CondCode llvm::ISD::getSetCCInverse (CondCode Operation, EVT Type)
 Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation.
 
bool llvm::ISD::isExtOpcode (unsigned Opcode)
 
bool llvm::ISD::isExtVecInRegOpcode (unsigned Opcode)
 
CondCode llvm::ISD::GlobalISel::getSetCCInverse (CondCode Operation, bool isIntegerLike)
 Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation.
 
CondCode llvm::ISD::getSetCCSwappedOperands (CondCode Operation)
 Return the operation corresponding to (Y op X) when given the operation for (X op Y).
 
CondCode llvm::ISD::getSetCCOrOperation (CondCode Op1, CondCode Op2, EVT Type)
 Return the result of a logical OR between different comparisons of identical values: ((X op1 Y) | (X op2 Y)).
 
CondCode llvm::ISD::getSetCCAndOperation (CondCode Op1, CondCode Op2, EVT Type)
 Return the result of a logical AND between different comparisons of identical values: ((X op1 Y) & (X op2 Y)).
 

Variables

static const int llvm::ISD::FIRST_TARGET_STRICTFP_OPCODE = BUILTIN_OP_END + 400
 FIRST_TARGET_STRICTFP_OPCODE - Target-specific pre-isel operations which cannot raise FP exceptions should be less than this value.
 
static const int llvm::ISD::FIRST_TARGET_MEMORY_OPCODE = BUILTIN_OP_END + 500
 FIRST_TARGET_MEMORY_OPCODE - Target-specific pre-isel operations which do not reference a specific memory location should be less than this value.
 
static const int llvm::ISD::LAST_INDEXED_MODE = POST_DEC + 1
 
static const int llvm::ISD::LAST_MEM_INDEX_TYPE = UNSIGNED_SCALED + 1
 
static const int llvm::ISD::LAST_LOADEXT_TYPE = ZEXTLOAD + 1
 

Macro Definition Documentation

◆ BEGIN_REGISTER_VP_SDNODE

#define BEGIN_REGISTER_VP_SDNODE (   VPSDID,
  ... 
)    VPSDID,

Definition at line 1386 of file ISDOpcodes.h.