1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 06:22:56 +02:00
llvm-mirror/test/Transforms/LoopVectorize/AArch64
Matthew Simpson 2ebb736740 [LV] Vectorize first-order recurrences
This patch enables the vectorization of first-order recurrences. A first-order
recurrence is a non-reduction recurrence relation in which the value of the
recurrence in the current loop iteration equals a value defined in the previous
iteration. The load PRE of the GVN pass often creates these recurrences by
hoisting loads from within loops.

In this patch, we add a new recurrence kind for first-order phi nodes and
attempt to vectorize them if possible. Vectorization is performed by shuffling
the values for the current and previous iterations. The vectorization cost
estimate is updated to account for the added shuffle instruction.

Contributed-by: Matthew Simpson and Chad Rosier <mcrosier@codeaurora.org>
Differential Revision: http://reviews.llvm.org/D16197

llvm-svn: 261346
2016-02-19 17:56:08 +00:00
..
aarch64-unroll.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
arbitrary-induction-step.ll [AArch64] Turn on by default interleaved access vectorization 2015-09-01 11:26:46 +00:00
arm64-unroll.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
deterministic-type-shrinkage.ll [LoopVectorize] Use MapVector rather than DenseMap for MinBWs. 2015-11-26 20:39:51 +00:00
first-order-recurrence.ll [LV] Vectorize first-order recurrences 2016-02-19 17:56:08 +00:00
gather-cost.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
interleaved_cost.ll [AArch64] Turn on by default interleaved access vectorization 2015-09-01 11:26:46 +00:00
lit.local.cfg
loop-vectorization-factors.ll [DemandedBits] Revert r249687 due to PR26071 2016-02-03 15:05:06 +00:00
reduction-small-size.ll [LV] Relax Small Size Reduction Type Requirement 2015-09-10 21:12:57 +00:00
sdiv-pow2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
type-shrinkage-insertelt.ll [LV] Add support for insertelt/extractelt processing during type truncation 2016-02-15 15:38:17 +00:00