LLVM 20.0.0git
|
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/Statepoint.h"
#include <optional>
#include "llvm/IR/VPIntrinsics.def"
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, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_MEMOP(POINTERPOS, ...) return POINTERPOS; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_MEMOP(POINTERPOS, DATAPOS) return DATAPOS; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#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(HASRND, HASEXCEPT, 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_REDUCTION(STARTPOS, ...) return true; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_CASTOP return true; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_CMP(CCPOS, ...) return true; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_BINARYOP return true; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_CMP(CCPOS, ISFP) |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_REDUCTION(STARTPOS, VECTORPOS) return VECTORPOS; |
#define | END_REGISTER_VP_INTRINSIC(VPID) break; |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, ...) case Intrinsic::VPID: |
#define | VP_PROPERTY_REDUCTION(STARTPOS, VECTORPOS) return STARTPOS; |
#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) |
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
MASKPOS, | |||
VLENPOS | |||
) |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
MASKPOS, | |||
VLENPOS | |||
) |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
MASKPOS, | |||
VLENPOS | |||
) |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | break; |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | break; |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
... | |||
) | case Intrinsic::VPID: |
Definition at line 569 of file IntrinsicInst.cpp.
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | return Intrinsic::VPID; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | return Intrinsic::VPID; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define END_REGISTER_VP_INTRINSIC | ( | VPID | ) | break; |
#define VP_PROPERTY_BINARYOP return true; |
#define VP_PROPERTY_CASTOP return true; |
#define VP_PROPERTY_CMP | ( | CCPOS, | |
ISFP | |||
) |
#define VP_PROPERTY_CMP | ( | CCPOS, | |
... | |||
) | return true; |
#define VP_PROPERTY_CONSTRAINEDFP | ( | HASRND, | |
HASEXCEPT, | |||
CID | |||
) | return Intrinsic::CID; |
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC | ( | INTRIN | ) | return Intrinsic::INTRIN; |
#define VP_PROPERTY_FUNCTIONAL_INTRINSIC | ( | INTRIN | ) | case Intrinsic::INTRIN: |
#define VP_PROPERTY_FUNCTIONAL_OPC | ( | OPC | ) | return Instruction::OPC; |
#define VP_PROPERTY_FUNCTIONAL_OPC | ( | OPC | ) | case Instruction::OPC: |
#define VP_PROPERTY_MEMOP | ( | POINTERPOS, | |
DATAPOS | |||
) | return DATAPOS; |
#define VP_PROPERTY_MEMOP | ( | POINTERPOS, | |
... | |||
) | return POINTERPOS; |
#define VP_PROPERTY_NO_FUNCTIONAL return true; |
#define VP_PROPERTY_REDUCTION | ( | STARTPOS, | |
VECTORPOS | |||
) | return VECTORPOS; |
#define VP_PROPERTY_REDUCTION | ( | STARTPOS, | |
VECTORPOS | |||
) | return STARTPOS; |
#define VP_PROPERTY_REDUCTION | ( | STARTPOS, | |
... | |||
) | return true; |
|
staticconstexpr |
Definition at line 555 of file IntrinsicInst.cpp.
|
static |
Definition at line 115 of file IntrinsicInst.cpp.
References llvm::ValueAsMetadata::get().
|
staticconstexpr |
Definition at line 602 of file IntrinsicInst.cpp.
References isVPIntrinsic(), and llvm::Intrinsic::not_intrinsic.
Definition at line 342 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().
|
staticconstexpr |
Definition at line 538 of file IntrinsicInst.cpp.
|
staticconstexpr |
Definition at line 519 of file IntrinsicInst.cpp.
Definition at line 777 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().
|
constexpr |
Definition at line 501 of file IntrinsicInst.cpp.
Referenced by getForIntrinsic().