[PATCH] D17326: Fix load alignement when unpacking aggregates structs

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 16 22:39:24 PST 2016


majnemer added inline comments.

================
Comment at: lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp:977-978
@@ -964,2 +976,4 @@
       auto *Val = IC.Builder->CreateExtractValue(V, i, EltName);
-      IC.Builder->CreateStore(Val, Ptr);
+      auto EltAlign = 1 << llvm::countTrailingOnes(
+        (SL->getElementOffset(i) - 1) & (Align - 1));
+      IC.Builder->CreateAlignedStore(Val, Ptr, EltAlign);
----------------
Would `MinAlign` from MathExtras work here? I'm thinking `MinAlign(SL->getElementOffset(i), Align)`.


http://reviews.llvm.org/D17326





More information about the llvm-commits mailing list