[PATCH] D80276: [Alignment] Fix misaligned interleaved loads

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 20 08:11:01 PDT 2020


jdoerfert added a comment.

I think there is (maybe in some differential) a way to ask GEPOperator how much alignment they preserve. We could use that here.



================
Comment at: llvm/test/Transforms/InterleavedAccess/X86/interleaved-accesses-64bits-avx.ll:45
 ; CHECK-NEXT:    [[TMP2:%.*]] = getelementptr <4 x i64>, <4 x i64>* [[TMP1]], i32 0
-; CHECK-NEXT:    [[TMP3:%.*]] = load <4 x i64>, <4 x i64>* [[TMP2]], align 16
+; CHECK-NEXT:    [[TMP3:%.*]] = load <4 x i64>, <4 x i64>* [[TMP2]], align 32
 ; CHECK-NEXT:    [[TMP4:%.*]] = getelementptr <4 x i64>, <4 x i64>* [[TMP1]], i32 1
----------------
nlopes wrote:
> craig.topper wrote:
> > The original load was only align 16 how did we get to 32?
> this is probably the ABI alignment for the vector is 32 bytes(?) and the code now will just take that.
But it shouldn't. (Now it's gone so OK)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80276/new/

https://reviews.llvm.org/D80276





More information about the llvm-commits mailing list