LLVM: lib/IR/IntrinsicInst.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, MASKPOS, VLENPOS)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, MASKPOS, VLENPOS)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, MASKPOS, VLENPOS)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_FUNCTIONAL_OPC(OPC)
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC(INTRIN)
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_NO_FUNCTIONAL return true;
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_CONSTRAINEDFP(CID)
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_FUNCTIONAL_OPC(OPC)
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC(INTRIN)
#define END_REGISTER_VP_INTRINSIC(VPID)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define VP_PROPERTY_BINARYOP return true;
#define END_REGISTER_VP_INTRINSIC(VPID)
Functions
static ValueAsMetadata * getAsMetadata (Value *V)
static FCmpInst::Predicate getFPPredicateFromMD (const Value *Op)
constexpr bool isVPIntrinsic (Intrinsic::ID ID)
static constexpr std::optional< unsigned > getFunctionalOpcodeForVP (Intrinsic::ID ID)
static constexpr std::optional< Intrinsic::ID > getFunctionalIntrinsicIDForVP (Intrinsic::ID ID)
static constexpr bool doesVPHaveNoFunctionalEquivalent (Intrinsic::ID ID)
static constexpr Intrinsic::ID getForIntrinsic (Intrinsic::ID Id)
static ICmpInst::Predicate getIntPredicateFromMD (const Value *Op)

BEGIN_REGISTER_VP_INTRINSIC [1/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
MASKPOS,
VLENPOS )

BEGIN_REGISTER_VP_INTRINSIC [2/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
MASKPOS,
VLENPOS )

BEGIN_REGISTER_VP_INTRINSIC [3/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
MASKPOS,
VLENPOS )

BEGIN_REGISTER_VP_INTRINSIC [4/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [5/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [6/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [7/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

Value:

static_assert(doesVPHaveNoFunctionalEquivalent(Intrinsic::VPID) || \

getFunctionalOpcodeForVP(Intrinsic::VPID) || \

getFunctionalIntrinsicIDForVP(Intrinsic::VPID));

static constexpr bool doesVPHaveNoFunctionalEquivalent(Intrinsic::ID ID)

Definition at line 545 of file IntrinsicInst.cpp.

BEGIN_REGISTER_VP_INTRINSIC [8/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [9/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [10/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

BEGIN_REGISTER_VP_INTRINSIC [11/11]

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
... )

END_REGISTER_VP_INTRINSIC [1/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [2/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [3/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [4/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [5/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [6/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

END_REGISTER_VP_INTRINSIC [7/7]

#define END_REGISTER_VP_INTRINSIC ( VPID )

VP_PROPERTY_BINARYOP

#define VP_PROPERTY_BINARYOP return true;

VP_PROPERTY_CONSTRAINEDFP

#define VP_PROPERTY_CONSTRAINEDFP ( CID )

VP_PROPERTY_FUNCTIONAL_INTRINSIC [1/2]

#define VP_PROPERTY_FUNCTIONAL_INTRINSIC ( INTRIN )

Value:

return Intrinsic::INTRIN;

VP_PROPERTY_FUNCTIONAL_INTRINSIC [2/2]

#define VP_PROPERTY_FUNCTIONAL_INTRINSIC ( INTRIN )

VP_PROPERTY_FUNCTIONAL_OPC [1/2]

#define VP_PROPERTY_FUNCTIONAL_OPC ( OPC )

VP_PROPERTY_FUNCTIONAL_OPC [2/2]

#define VP_PROPERTY_FUNCTIONAL_OPC ( OPC )

VP_PROPERTY_NO_FUNCTIONAL

#define VP_PROPERTY_NO_FUNCTIONAL return true;

doesVPHaveNoFunctionalEquivalent()

getAsMetadata()

getForIntrinsic()

getFPPredicateFromMD()

FCmpInst::Predicate getFPPredicateFromMD ( const Value * Op) static

Definition at line 315 of file IntrinsicInst.cpp.

References llvm::CmpInst::BAD_FCMP_PREDICATE, llvm::StringSwitch< T, R >::Case(), llvm::cast(), llvm::StringSwitch< T, R >::Default(), llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, and llvm::isa().

Referenced by llvm::ConstrainedFPCmpIntrinsic::getPredicate(), and llvm::VPCmpIntrinsic::getPredicate().

getFunctionalIntrinsicIDForVP()

getFunctionalOpcodeForVP()

getIntPredicateFromMD()

ICmpInst::Predicate getIntPredicateFromMD ( const Value * Op) static

Definition at line 757 of file IntrinsicInst.cpp.

References llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::StringSwitch< T, R >::Case(), llvm::cast(), llvm::StringSwitch< T, R >::Default(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and llvm::isa().

Referenced by llvm::VPCmpIntrinsic::getPredicate().

isVPIntrinsic()