#ifndef LLVM_LIB_TARGET_ARM_MVETAILPREDUTILS_H
#define LLVM_LIB_TARGET_ARM_MVETAILPREDUTILS_H
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
namespace llvm {
static inline unsigned VCTPOpcodeToLSTP(unsigned Opcode, bool IsDoLoop) { … }
static inline unsigned getTailPredVectorWidth(unsigned Opcode) { … }
static inline bool isVCTP(const MachineInstr *MI) { … }
static inline bool isDoLoopStart(const MachineInstr &MI) { … }
static inline bool isWhileLoopStart(const MachineInstr &MI) { … }
static inline bool isLoopStart(const MachineInstr &MI) { … }
inline MachineBasicBlock *getWhileLoopStartTargetBB(const MachineInstr &MI) { … }
inline void RevertWhileLoopStartLR(MachineInstr *MI, const TargetInstrInfo *TII,
unsigned BrOpc = ARM::t2Bcc,
bool UseCmp = false) { … }
inline void RevertDoLoopStart(MachineInstr *MI, const TargetInstrInfo *TII) { … }
inline void RevertLoopDec(MachineInstr *MI, const TargetInstrInfo *TII,
bool SetFlags = false) { … }
inline void RevertLoopEnd(MachineInstr *MI, const TargetInstrInfo *TII,
unsigned BrOpc = ARM::t2Bcc, bool SkipCmp = false) { … }
}
#endif