Allow vectorization of division by uniform power of 2.
authorKarthik Bhat <kv.bhat@samsung.com>
Mon, 25 Aug 2014 04:56:54 +0000 (04:56 +0000)
committerKarthik Bhat <kv.bhat@samsung.com>
Mon, 25 Aug 2014 04:56:54 +0000 (04:56 +0000)
commite637d65af355ef24ef2bd8d6072861d7354d5e91
treeee1685252c1966d69c877af69cdd89a91b773e02
parent9fdcfdd601f2d44b2ef15fe80c93341913a29f4f
Allow vectorization of division by uniform power of 2.

This patch adds support to recognize division by uniform power of 2 and modifies the cost table to vectorize division by uniform power of 2 whenever possible.
Updates Cost model for Loop and SLP Vectorizer.The cost table is currently only updated for X86 backend.
Thanks to Hal, Andrea, Sanjay for the review. (http://reviews.llvm.org/D4971)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216371 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/TargetTransformInfo.h
lib/Analysis/TargetTransformInfo.cpp
lib/CodeGen/BasicTargetTransformInfo.cpp
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
lib/Target/ARM/ARMTargetTransformInfo.cpp
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
lib/Target/X86/X86TargetTransformInfo.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/LoopVectorize/X86/powof2div.ll [new file with mode: 0644]
test/Transforms/SLPVectorizer/X86/powof2div.ll [new file with mode: 0644]