llvm-project/llvm/test/Transforms/LoadStoreVectorizer/AMDGPU
Alina Sbirlea cbc6ac2afd Correct ordering of loads/stores.
Summary:
Aiming to correct the ordering of loads/stores. This patch changes the
insert point for loads to the position of the first load.
It updates the ordering method for loads to insert before, rather than after.

Before this patch the following sequence:
"load a[1], store a[1], store a[0], load a[2]"
Would incorrectly vectorize to "store a[0,1], load a[1,2]".
The correctness check was assuming the insertion point for loads is at
the position of the first load, when in practice it was at the last
load. An alternative fix would have been to invert the correctness check.
The current fix changes insert position but also requires reordering of
instructions before the vectorized load.

Updated testcases to reflect the changes.

Reviewers: tstellarAMD, llvm-commits, jlebar, arsenm

Subscribers: mzolotukhin

Differential Revision: http://reviews.llvm.org/D22071

llvm-svn: 275117
2016-07-11 22:34:29 +00:00
..
aa-metadata.ll LoadStoreVectorizer: Use AA metadata 2016-07-01 01:47:46 +00:00
extended-index.ll
insertion-point.ll Correct ordering of loads/stores. 2016-07-11 22:34:29 +00:00
interleaved-mayalias-store.ll Address two correctness issues in LoadStoreVectorizer 2016-07-01 21:44:12 +00:00
lit.local.cfg
merge-stores-private.ll LoadStoreVectorizer: Don't increase alignment with no align set 2016-07-01 02:09:38 +00:00
merge-stores.ll Add TLI.allowsMisalignedMemoryAccesses to LoadStoreVectorizer 2016-07-11 20:46:17 +00:00
merge-vectors.ll
missing-alignment.ll LoadStoreVectorizer: Don't increase alignment with no align set 2016-07-01 02:09:38 +00:00
no-implicit-float.ll
optnone.ll LoadStoreVectorizer: Check skipFunction first. 2016-06-30 23:50:18 +00:00
pointer-elements.ll LoadStoreVectorizer: Fix assert when merging pointer ops 2016-07-01 01:55:52 +00:00
weird-type-accesses.ll LoadStoreVectorizer: Fix crashes on sub-byte types 2016-07-01 00:36:54 +00:00