diff --git a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h index 2437fbb820a36..d009244a92259 100644 --- a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h +++ b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h @@ -222,6 +222,11 @@ struct ExtendedBuiltin { InstructionSet::InstructionSet Set; uint32_t Number; }; + +enum InstFlags { + // It is a half type + INST_PRINTER_WIDTH16 = 1 +}; } // namespace SPIRV using CapabilityList = SmallVector; diff --git a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp index 10f4ea99fab32..3eb090f4857d8 100644 --- a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp +++ b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp @@ -13,7 +13,6 @@ #include "SPIRVInstPrinter.h" #include "SPIRV.h" #include "SPIRVBaseInfo.h" -#include "SPIRVInstrInfo.h" #include "llvm/ADT/APFloat.h" #include "llvm/CodeGen/Register.h" #include "llvm/MC/MCAsmInfo.h" @@ -51,7 +50,7 @@ void SPIRVInstPrinter::printRemainingVariableOps(const MCInst *MI, void SPIRVInstPrinter::printOpConstantVarOps(const MCInst *MI, unsigned StartIndex, raw_ostream &O) { - unsigned IsBitwidth16 = MI->getFlags() & SPIRV::ASM_PRINTER_WIDTH16; + unsigned IsBitwidth16 = MI->getFlags() & SPIRV::INST_PRINTER_WIDTH16; const unsigned NumVarOps = MI->getNumOperands() - StartIndex; assert((NumVarOps == 1 || NumVarOps == 2) && diff --git a/llvm/lib/Target/SPIRV/SPIRVMCInstLower.cpp b/llvm/lib/Target/SPIRV/SPIRVMCInstLower.cpp index afa550d6dd424..bc074aa2799b1 100644 --- a/llvm/lib/Target/SPIRV/SPIRVMCInstLower.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVMCInstLower.cpp @@ -24,7 +24,8 @@ void SPIRVMCInstLower::lower(const MachineInstr *MI, MCInst &OutMI, SPIRV::ModuleAnalysisInfo *MAI) const { OutMI.setOpcode(MI->getOpcode()); // Propagate previously set flags - OutMI.setFlags(MI->getAsmPrinterFlags()); + if (MI->getAsmPrinterFlags() & SPIRV::ASM_PRINTER_WIDTH16) + OutMI.setFlags(SPIRV::INST_PRINTER_WIDTH16); const MachineFunction *MF = MI->getMF(); for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { const MachineOperand &MO = MI->getOperand(i);