diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineOperand.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/MachineOperand.cpp b/llvm/lib/CodeGen/MachineOperand.cpp index 8c6d219..ac1f201 100644 --- a/llvm/lib/CodeGen/MachineOperand.cpp +++ b/llvm/lib/CodeGen/MachineOperand.cpp @@ -394,6 +394,8 @@ bool MachineOperand::isIdenticalTo(const MachineOperand &Other) const { return getPredicate() == Other.getPredicate(); case MachineOperand::MO_ShuffleMask: return getShuffleMask() == Other.getShuffleMask(); + case MachineOperand::MO_LaneMask: + return getLaneMask() == Other.getLaneMask(); } llvm_unreachable("Invalid machine operand type"); } @@ -460,6 +462,9 @@ hash_code llvm::hash_value(const MachineOperand &MO) { return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getPredicate()); case MachineOperand::MO_ShuffleMask: return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getShuffleMask()); + case MachineOperand::MO_LaneMask: + return hash_combine(MO.getType(), MO.getTargetFlags(), + MO.getLaneMask().getAsInteger()); } llvm_unreachable("Invalid machine operand type"); } @@ -1019,11 +1024,11 @@ void MachineOperand::print(raw_ostream &OS, ModuleSlotTracker &MST, } case MachineOperand::MO_Predicate: { auto Pred = static_cast<CmpInst::Predicate>(getPredicate()); - OS << (CmpInst::isIntPredicate(Pred) ? "int" : "float") << "pred(" - << Pred << ')'; + OS << (CmpInst::isIntPredicate(Pred) ? "int" : "float") << "pred(" << Pred + << ')'; break; } - case MachineOperand::MO_ShuffleMask: + case MachineOperand::MO_ShuffleMask: { OS << "shufflemask("; ArrayRef<int> Mask = getShuffleMask(); StringRef Separator; @@ -1038,6 +1043,14 @@ void MachineOperand::print(raw_ostream &OS, ModuleSlotTracker &MST, OS << ')'; break; } + case MachineOperand::MO_LaneMask: { + OS << "lanemask("; + LaneBitmask LaneMask = getLaneMask(); + OS << "0x" << PrintLaneMask(LaneMask); + OS << ')'; + break; + } + } } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) |
