[PATCH] D23646: Generalize strided store pattern in interleave access pass
Alina Sbirlea via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 17 23:46:53 PDT 2016
asbirlea created this revision.
asbirlea added reviewers: HaoLiu, mssimpso.
asbirlea added subscribers: llvm-commits, delena, mkuper.
This patch aims to generalize matching of the strided store accesses to more general masks.
The more general rule is to have consecutive accesses based on the stride:
[x, y, ... z, x+1, y+1, ...z+1, x+2, y+2, ...z+2, ...]
and for each start element in each stride (x, y, ... z] to be aligned.
However all elements in the masks need not form a contiguous space, there may be gaps.
As before, undefs are allowed and filled in with adjacent element loads.
Note this patch is not final, but I would like to get feedback on the approach.
There are at least the pending TODOs.
https://reviews.llvm.org/D23646
Files:
lib/CodeGen/InterleavedAccessPass.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/AArch64/aarch64-interleaved-accesses.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23646.68484.patch
Type: text/x-patch
Size: 5029 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160818/0298d527/attachment.bin>
More information about the llvm-commits
mailing list