[llvm] [GlobalISel] Widen vector loads from aligned ptrs (PR #144309)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 16 05:34:02 PDT 2025
================
@@ -4072,6 +4072,19 @@ LegalizerHelper::LegalizeResult LegalizerHelper::lowerLoad(GAnyLoad &LoadMI) {
if (MemTy != DstTy)
return UnableToLegalize;
+ Align Alignment = LoadMI.getAlign();
+ if (Alignment.value() * 8 > MemSizeInBits &&
+ isPowerOf2_64(DstTy.getScalarSizeInBits())) {
+ LLT MoreTy = LLT::fixed_vector(NextPowerOf2(DstTy.getNumElements()),
+ DstTy.getElementType());
+ MachineMemOperand *NewMMO = MF.getMachineMemOperand(&MMO, 0, MoreTy);
+ auto NewLoad = MIRBuilder.buildLoad(MoreTy, PtrReg, *NewMMO);
----------------
arsenm wrote:
Do you need to clear range metadata? It no longer applies to the widened elements
https://github.com/llvm/llvm-project/pull/144309
More information about the llvm-commits
mailing list