[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