#ifndef LLVM_LIB_TARGET_VE_VE_H
#define LLVM_LIB_TARGET_VE_VE_H
#include "MCTargetDesc/VEMCTargetDesc.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Target/TargetMachine.h"
namespace llvm {
class AsmPrinter;
class FunctionPass;
class MCInst;
class MachineInstr;
class PassRegistry;
class VETargetMachine;
FunctionPass *createVEISelDag(VETargetMachine &TM);
FunctionPass *createLVLGenPass();
void initializeVEDAGToDAGISelLegacyPass(PassRegistry &);
void LowerVEMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
AsmPrinter &AP);
}
namespace llvm {
namespace VECC {
enum CondCode { … };
}
namespace VERD {
enum RoundingMode { … };
}
inline static const char *VECondCodeToString(VECC::CondCode CC) { … }
inline static VECC::CondCode stringToVEICondCode(StringRef S) { … }
inline static VECC::CondCode stringToVEFCondCode(StringRef S) { … }
inline static bool isIntVECondCode(VECC::CondCode CC) { … }
inline static unsigned VECondCodeToVal(VECC::CondCode CC) { … }
inline static VECC::CondCode VEValToCondCode(unsigned Val, bool IsInteger) { … }
inline static const char *VERDToString(VERD::RoundingMode R) { … }
inline static VERD::RoundingMode stringToVERD(StringRef S) { … }
inline static unsigned VERDToVal(VERD::RoundingMode R) { … }
inline static VERD::RoundingMode VEValToRD(unsigned Val) { … }
inline static bool isMImmVal(uint64_t Val) { … }
inline static bool isMImm32Val(uint32_t Val) { … }
inline static uint64_t val2MImm(uint64_t Val) { … }
inline static uint64_t mimm2Val(uint64_t Val) { … }
inline unsigned M0(unsigned Val) { … }
inline unsigned M1(unsigned Val) { … }
static const unsigned StandardVectorWidth = …;
static const unsigned PackedVectorWidth = …;
}
#endif