OSDN Git Service

Add Support to Recognize and Vectorize NON SIMD instructions in SLPVectorizer.
authorKarthik Bhat <kv.bhat@samsung.com>
Fri, 20 Jun 2014 04:32:48 +0000 (04:32 +0000)
committerKarthik Bhat <kv.bhat@samsung.com>
Fri, 20 Jun 2014 04:32:48 +0000 (04:32 +0000)
commitd2ce9392dca6349a22c8f3e21e74aa59a82d8900
treea7f380fb1cf0ef44fc663c52c8650abbdec0c0aa
parentaf08b8b820acc71b02e7e8e4d0de3679c7971773
Add Support to Recognize and Vectorize NON SIMD instructions in SLPVectorizer.

This patch adds support to recognize patterns such as fadd,fsub,fadd,fsub.../add,sub,add,sub... and
vectorizes them as vector shuffles if they are profitable.
These patterns of vector shuffle can later be converted to instructions such as addsubpd etc on X86.
Thanks to Arnold and Hal for the reviews. http://reviews.llvm.org/D4015

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