[LoopVectorize] Induction variables: support arbitrary constant step.
authorHao Liu <Hao.Liu@arm.com>
Fri, 30 Jan 2015 05:02:21 +0000 (05:02 +0000)
committerHao Liu <Hao.Liu@arm.com>
Fri, 30 Jan 2015 05:02:21 +0000 (05:02 +0000)
commite7769db118e341f33110d7c68b0e3566a5eebbbf
treee32461a9d748915b2ae8a4cfcad4731e24465fda
parent7d3a44a692f8a7be623409b9e485e823ab6ce70f
[LoopVectorize] Induction variables: support arbitrary constant step.
Previously, only -1 and +1 step values are supported for induction variables. This patch extends LV to support
arbitrary constant steps.
Initial patch by Alexey Volkov. Some bug fixes are added in the following version.

Differential Revision: http://reviews.llvm.org/D6051 and http://reviews.llvm.org/D7193

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227557 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/arbitrary-induction-step.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/gcc-examples.ll
test/Transforms/LoopVectorize/reverse_induction.ll