[llvm] [GISEL][RISCV] IRTranslator for scalable vector load (PR #80006)

Michael Maitland via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 11:50:14 PST 2024


================
@@ -1240,7 +1240,7 @@ void MachineMemOperand::print(raw_ostream &OS, ModuleSlotTracker &MST,
        << "unknown-address";
   }
   MachineOperand::printOperandOffset(OS, getOffset());
-  if (getSize() > 0 && getAlign() != getSize())
+  if (getMemoryType().getSizeInBytes().getKnownMinValue() > 0 && getAlign() != getMemoryType().getSizeInBytes().getKnownMinValue())
----------------
michaelmaitland wrote:

It looks like this check is to emit an `align` operand in the case that the alignment is not the same size as the element size.

That means if the memory type is `nxvMxsN` that we want this guard to be true when `N != Align`. N is the size in bytes of the element type. I think you are checking `M` here.

https://github.com/llvm/llvm-project/pull/80006


More information about the llvm-commits mailing list