]> granicus.if.org Git - llvm/commit
[PowerPC] Recognize consecutive memory accesses from intrinsics
authorHal Finkel <hfinkel@anl.gov>
Fri, 1 Aug 2014 01:02:01 +0000 (01:02 +0000)
committerHal Finkel <hfinkel@anl.gov>
Fri, 1 Aug 2014 01:02:01 +0000 (01:02 +0000)
commitbcaf5e176a847092f1e56408d402a81584b43f9b
tree60633f965bb35715ea9d17ec210147f8fd94ba30
parent21e23ab6f9e8d02eeee8695e750bfd4eb1054ddd
[PowerPC] Recognize consecutive memory accesses from intrinsics

When generating unaligned vector loads, we need to search for other loads or
stores nearby offset by one vector width. If we find one, then we know that we
can safely generate another aligned load at that address. Otherwise, we must
generate the next load using an offset of the vector width minus one byte (so
we don't read off the end of the allocation if the base unaligned address
happened to be aligned at runtime). We had previously done this using only
other vector loads and stores, but did not consider the PowerPC-specific vector
load/store intrinsics. Now we'll also consider vector intrinsics. By itself,
this change is a feature enhancement, but is a necessary step toward fixing the
underlying problem behind PR19991.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214469 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
test/CodeGen/PowerPC/unal-altivec-wint.ll [new file with mode: 0644]