Go to the documentation of this file.
14 #ifndef LLVM_LIB_TARGET_VE_VE_H
15 #define LLVM_LIB_TARGET_VE_VE_H
24 class VETargetMachine;
297 return static_cast<unsigned>(R);
356 if (Val & (UINT64_C(1) << 63))
365 if ((Val & 0x40) == 0)
366 return (
uint64_t)((INT64_C(1) << 63) >> (Val & 0x3f));
367 return ((
uint64_t)INT64_C(-1) >> (Val & 0x3f));
370 inline unsigned M0(
unsigned Val) {
return Val + 64; }
371 inline unsigned M1(
unsigned Val) {
return Val; }
StringSwitch & Case(StringLiteral S, T Value)
FunctionPass * createVEPromoteToI1Pass()
This is an optimization pass for GlobalISel generic memory operations.
LLVM_NODISCARD R Default(T Value)
static uint64_t val2MImm(uint64_t Val)
val2MImm - Convert an integer immediate value to target MImm immediate.
constexpr bool isShiftedMask_32(uint32_t Value)
Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit ver...
static bool isMImmVal(uint64_t Val)
unsigned countLeadingOnes(T Value, ZeroBehavior ZB=ZB_Width)
Count the number of ones from the most significant bit to the first zero bit.
static unsigned VECondCodeToVal(VECC::CondCode CC)
constexpr bool isShiftedMask_64(uint64_t Value)
Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit ver...
static bool isMImm32Val(uint32_t Val)
unsigned M0(unsigned Val)
static const unsigned StandardVectorWidth
static uint64_t mimm2Val(uint64_t Val)
mimm2Val - Convert a target MImm immediate to an integer immediate value.
FunctionPass * createLVLGenPass()
static const unsigned PackedVectorWidth
constexpr bool isMask_32(uint32_t Value)
Return true if the argument is a non-empty sequence of ones starting at the least significant bit wit...
static VECC::CondCode VEValToCondCode(unsigned Val, bool IsInteger)
static unsigned VERDToVal(VERD::RoundingMode R)
StringRef - Represent a constant reference to a string, i.e.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
static VECC::CondCode stringToVEICondCode(StringRef S)
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
FunctionPass * createVEISelDag(VETargetMachine &TM)
createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction sc...
static VERD::RoundingMode stringToVERD(StringRef S)
static VERD::RoundingMode VEValToRD(unsigned Val)
unsigned countLeadingZeros(T Val, ZeroBehavior ZB=ZB_Width)
Count number of 0's from the most significant bit to the least stopping at the first 1.
static const char * VECondCodeToString(VECC::CondCode CC)
A switch()-like statement whose cases are string literals.
const char LLVMTargetMachineRef TM
void LowerVEMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
static VECC::CondCode stringToVEFCondCode(StringRef S)
constexpr bool isMask_64(uint64_t Value)
Return true if the argument is a non-empty sequence of ones starting at the least significant bit wit...
unsigned M1(unsigned Val)
static const char * VERDToString(VERD::RoundingMode R)