diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineVerifier.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineVerifier.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp index 46ae3c6b..becf41b0a 100644 --- a/llvm/lib/CodeGen/MachineVerifier.cpp +++ b/llvm/lib/CodeGen/MachineVerifier.cpp @@ -1281,6 +1281,15 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) { if (TypeSize::isKnownGT(MMO.getSize().getValue(), ValTy.getSizeInBytes())) report("load memory size cannot exceed result size", MI); + + if (MMO.getRanges()) { + ConstantInt *i = + mdconst::extract<ConstantInt>(MMO.getRanges()->getOperand(0)); + if (i->getIntegerType()->getBitWidth() != + ValTy.getScalarType().getSizeInBits()) { + report("range is incompatible with the result type", MI); + } + } } else if (MI->getOpcode() == TargetOpcode::G_STORE) { if (TypeSize::isKnownLT(ValTy.getSizeInBytes(), MMO.getSize().getValue())) |