[llvm] MachineVerifier: Fix check for range type (PR #124894)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 30 01:39:38 PST 2025
================
@@ -1285,8 +1285,12 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) {
if (MMO.getRanges()) {
ConstantInt *i =
mdconst::extract<ConstantInt>(MMO.getRanges()->getOperand(0));
- if (i->getIntegerType()->getBitWidth() !=
- ValTy.getScalarType().getSizeInBits()) {
+ const LLT RangeTy = LLT::scalar(i->getIntegerType()->getBitWidth());
+ const LLT MemTy = MMO.getMemoryType();
+ if (MemTy.getScalarType() != RangeTy ||
+ ValTy.isScalar() != MemTy.isScalar() ||
+ (ValTy.isVector() &&
+ ValTy.getNumElements() != MemTy.getNumElements())) {
----------------
jayfoad wrote:
This part, validating `ValTy` against `MemTy`, does not belong inside `if (MMO.getRanges())`.
https://github.com/llvm/llvm-project/pull/124894
More information about the llvm-commits
mailing list