14 #ifndef LLVM_LIB_TARGET_LANAI_LANAIALUCODE_H 15 #define LLVM_LIB_TARGET_LANAI_LANAIALUCODE_H 50 unsigned const OP_ENCODING_MASK = 0x07;
51 return AluOp & OP_ENCODING_MASK;
54 inline static unsigned getAluOp(
unsigned AluOp) {
55 unsigned const ALU_MASK = 0x3F;
56 return AluOp & ALU_MASK;
64 assert(!
isPostOp(AluOp) &&
"Operator can't be a post- and pre-op");
69 assert(!
isPreOp(AluOp) &&
"Operator can't be a post- and pre-op");
148 #endif // LLVM_LIB_TARGET_LANAI_LANAIALUCODE_H
This class represents lattice values for constants.
static bool modifiesOp(unsigned AluOp)
static const char * lanaiAluCodeToString(unsigned AluOp)
static unsigned getAluOp(unsigned AluOp)
static unsigned makePostOp(unsigned AluOp)
NodeType
ISD::NodeType enum - This enum defines the target-independent operators for a SelectionDAG.
Shift and rotation operations.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE R Default(T Value)
Simple integer binary arithmetic operators.
static bool isPreOp(unsigned AluOp)
A switch()-like statement whose cases are string literals.
Carry-using nodes for multiple precision addition and subtraction.
static ManagedStatic< OptionRegistry > OR
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static bool isPostOp(unsigned AluOp)
static unsigned makePreOp(unsigned AluOp)
LLVM_ATTRIBUTE_ALWAYS_INLINE StringSwitch & Case(StringLiteral S, T Value)
static AluCode stringToLanaiAluCode(StringRef S)
Bitwise operators - logical and, logical or, logical xor.
static unsigned encodeLanaiAluCode(unsigned AluOp)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
StringRef - Represent a constant reference to a string, i.e.
static AluCode isdToLanaiAluCode(ISD::NodeType Node_type)