[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)
commit8de4f8b1b59d9a338d6cb7331f9ea04ce9de9d77
tree4c50d340ea07074cd323bc929cc7f0affe647669
parent8c969eaf1ad58dd96c77cee20ba2525d4d061a2e
[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

llvm-svn: 227557
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/arbitrary-induction-step.ll [new file with mode: 0644]
llvm/test/Transforms/LoopVectorize/gcc-examples.ll
llvm/test/Transforms/LoopVectorize/reverse_induction.ll