#ifndef LLVM_LIB_TARGET_RISCV_RISCVINSTRINFO_H
#define LLVM_LIB_TARGET_RISCV_RISCVINSTRINFO_H
#include "RISCV.h"
#include "RISCVRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/IR/DiagnosticInfo.h"
#define GET_INSTRINFO_HEADER
#define GET_INSTRINFO_OPERAND_ENUM
#include "RISCVGenInstrInfo.inc"
#include "RISCVGenRegisterInfo.inc"
namespace llvm {
class RISCVSubtarget;
static const MachineMemOperand::Flags MONontemporalBit0 = …;
static const MachineMemOperand::Flags MONontemporalBit1 = …;
namespace RISCVCC {
enum CondCode { … };
CondCode getOppositeBranchCondition(CondCode);
unsigned getBrCond(CondCode CC, bool Imm = false);
}
enum RISCVMachineCombinerPattern : unsigned { … };
class RISCVInstrInfo : public RISCVGenInstrInfo { … };
namespace RISCV {
bool isSEXT_W(const MachineInstr &MI);
bool isZEXT_W(const MachineInstr &MI);
bool isZEXT_B(const MachineInstr &MI);
bool isRVVSpill(const MachineInstr &MI);
std::optional<std::pair<unsigned, unsigned>>
isRVVSpillForZvlsseg(unsigned Opcode);
bool isFaultFirstLoad(const MachineInstr &MI);
int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIndex);
bool hasEqualFRM(const MachineInstr &MI1, const MachineInstr &MI2);
std::optional<unsigned> getVectorLowDemandedScalarBits(uint16_t Opcode,
unsigned Log2SEW);
unsigned getRVVMCOpcode(unsigned RVVPseudoOpcode);
unsigned getDestLog2EEW(const MCInstrDesc &Desc, unsigned Log2SEW);
static constexpr int64_t VLMaxSentinel = …;
static constexpr unsigned FPMASK_Negative_Infinity = …;
static constexpr unsigned FPMASK_Negative_Normal = …;
static constexpr unsigned FPMASK_Negative_Subnormal = …;
static constexpr unsigned FPMASK_Negative_Zero = …;
static constexpr unsigned FPMASK_Positive_Zero = …;
static constexpr unsigned FPMASK_Positive_Subnormal = …;
static constexpr unsigned FPMASK_Positive_Normal = …;
static constexpr unsigned FPMASK_Positive_Infinity = …;
static constexpr unsigned FPMASK_Signaling_NaN = …;
static constexpr unsigned FPMASK_Quiet_NaN = …;
}
namespace RISCVVPseudosTable {
struct PseudoInfo { … };
#define GET_RISCVVPseudosTable_DECL
#include "RISCVGenSearchableTables.inc"
}
namespace RISCV {
struct RISCVMaskedPseudoInfo { … };
#define GET_RISCVMaskedPseudosTable_DECL
#include "RISCVGenSearchableTables.inc"
}
}
#endif