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, ...) case Intrinsic::VPID:
#define VP_PROPERTY_FUNCTIONAL_OPC(OPC) return Instruction::OPC;
#define END_REGISTER_VP_INTRINSIC(VPID) break;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID:
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC(INTRIN) return Intrinsic::INTRIN;
#define END_REGISTER_VP_INTRINSIC(VPID) break;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID:
#define VP_PROPERTY_NO_FUNCTIONAL return true;
#define END_REGISTER_VP_INTRINSIC(VPID) break;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...)
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID:
#define VP_PROPERTY_CONSTRAINEDFP(CID) return Intrinsic::CID;
#define END_REGISTER_VP_INTRINSIC(VPID) break;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) break;
#define VP_PROPERTY_FUNCTIONAL_OPC(OPC) case Instruction::OPC:
#define END_REGISTER_VP_INTRINSIC(VPID) return Intrinsic::VPID;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) break;
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC(INTRIN) case Intrinsic::INTRIN:
#define END_REGISTER_VP_INTRINSIC(VPID) return Intrinsic::VPID;
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID:
#define VP_PROPERTY_BINARYOP return true;
#define END_REGISTER_VP_INTRINSIC(VPID) break;
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, | | -------------------------------------- | --------------------- | | ----- | | | ... | | | | | ) | case Intrinsic::VPID: | | |

BEGIN_REGISTER_VP_INTRINSIC [5/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | --------------------- | | ----- | | | ... | | | | | ) | case Intrinsic::VPID: | | |

BEGIN_REGISTER_VP_INTRINSIC [6/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | --------------------- | | ----- | | | ... | | | | | ) | case Intrinsic::VPID: | | |

BEGIN_REGISTER_VP_INTRINSIC [7/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | - | | ----- | | | ... | | | | | ) | | | |

Value:

getFunctionalOpcodeForVP(Intrinsic::VPID) || \

getFunctionalIntrinsicIDForVP(Intrinsic::VPID));

static constexpr bool doesVPHaveNoFunctionalEquivalent(Intrinsic::ID ID)

Definition at line 544 of file IntrinsicInst.cpp.

BEGIN_REGISTER_VP_INTRINSIC [8/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | --------------------- | | ----- | | | ... | | | | | ) | case Intrinsic::VPID: | | |

BEGIN_REGISTER_VP_INTRINSIC [9/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | ------ | | ----- | | | ... | | | | | ) | break; | | |

BEGIN_REGISTER_VP_INTRINSIC [10/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | ------ | | ----- | | | ... | | | | | ) | break; | | |

BEGIN_REGISTER_VP_INTRINSIC [11/11]

| #define BEGIN_REGISTER_VP_INTRINSIC | ( | | VPID, | | -------------------------------------- | --------------------- | | ----- | | | ... | | | | | ) | case Intrinsic::VPID: | | |

END_REGISTER_VP_INTRINSIC [1/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | break; | | ------------------------------------ | - | | ---- | - | ------ |

END_REGISTER_VP_INTRINSIC [2/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | break; | | ------------------------------------ | - | | ---- | - | ------ |

END_REGISTER_VP_INTRINSIC [3/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | break; | | ------------------------------------ | - | | ---- | - | ------ |

END_REGISTER_VP_INTRINSIC [4/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | break; | | ------------------------------------ | - | | ---- | - | ------ |

END_REGISTER_VP_INTRINSIC [5/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | return Intrinsic::VPID; | | ------------------------------------ | - | | ---- | - | ----------------------- |

END_REGISTER_VP_INTRINSIC [6/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | return Intrinsic::VPID; | | ------------------------------------ | - | | ---- | - | ----------------------- |

END_REGISTER_VP_INTRINSIC [7/7]

| #define END_REGISTER_VP_INTRINSIC | ( | | VPID | ) | break; | | ------------------------------------ | - | | ---- | - | ------ |

VP_PROPERTY_BINARYOP

#define VP_PROPERTY_BINARYOP return true;

VP_PROPERTY_CONSTRAINEDFP

| #define VP_PROPERTY_CONSTRAINEDFP | ( | | CID | ) | return Intrinsic::CID; | | ----------------------------------- | - | | --- | - | ---------------------- |

VP_PROPERTY_FUNCTIONAL_INTRINSIC [1/2]

| #define VP_PROPERTY_FUNCTIONAL_INTRINSIC | ( | | INTRIN | ) | return Intrinsic::INTRIN; | | ------------------------------------------- | - | | ------ | - | ------------------------- |

VP_PROPERTY_FUNCTIONAL_INTRINSIC [2/2]

| #define VP_PROPERTY_FUNCTIONAL_INTRINSIC | ( | | INTRIN | ) | case Intrinsic::INTRIN: | | ------------------------------------------- | - | | ------ | - | ----------------------- |

VP_PROPERTY_FUNCTIONAL_OPC [1/2]

| #define VP_PROPERTY_FUNCTIONAL_OPC | ( | | OPC | ) | return Instruction::OPC; | | ------------------------------------- | - | | --- | - | ------------------------ |

VP_PROPERTY_FUNCTIONAL_OPC [2/2]

| #define VP_PROPERTY_FUNCTIONAL_OPC | ( | | OPC | ) | case Instruction::OPC: | | ------------------------------------- | - | | --- | - | ---------------------- |

VP_PROPERTY_NO_FUNCTIONAL

#define VP_PROPERTY_NO_FUNCTIONAL return true;

doesVPHaveNoFunctionalEquivalent()

static constexpr bool doesVPHaveNoFunctionalEquivalent ( Intrinsic::ID ID) staticconstexpr

getAsMetadata()

getForIntrinsic()

getFPPredicateFromMD()

static 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::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, and llvm::CmpInst::FCMP_UNO.

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

getFunctionalIntrinsicIDForVP()

getFunctionalOpcodeForVP()

getIntPredicateFromMD()

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

Definition at line 755 of file IntrinsicInst.cpp.

References llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::StringSwitch< T, R >::Case(), 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, and llvm::CmpInst::ICMP_ULT.

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

isVPIntrinsic()