llvm-project/llvm/test/Transforms/SLPVectorizer/X86
Karthik Bhat e03a25da70 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 

llvm-svn: 211339
2014-06-20 04:32:48 +00:00
..
addsub.ll Add Support to Recognize and Vectorize NON SIMD instructions in SLPVectorizer. 2014-06-20 04:32:48 +00:00
align.ll Always set alignment of vectorized LD/ST in SLP-Vectorizer. <rdar://problem/16812145> 2014-05-05 17:59:14 +00:00
barriercall.ll
call.ll Vectorize intrinsic math function calls in SLPVectorizer. 2014-05-03 09:59:54 +00:00
cast.ll
cmp_sel.ll
compare-reduce.ll
consecutive-access.ll Implement sext(C1 + C2*X) --> sext(C1) + sext(C2*X) and 2014-05-24 08:09:57 +00:00
continue_vectorizing.ll Continue slp vectorization even the BB already has vectorized store radar://16641956 2014-04-29 19:37:20 +00:00
crash_7zip.ll
crash_bullet.ll
crash_bullet3.ll TBAA: remove !tbaa from testing cases when they are not needed. 2013-09-30 18:17:35 +00:00
crash_dequeue.ll
crash_flop7.ll
crash_lencod.ll
crash_mandeltext.ll
crash_netbsd_decompress.ll Fix PR16797 - Support PHINodes with multiple inputs from the same basic block. 2013-08-12 17:46:44 +00:00
crash_sim4b1.ll
crash_smallpt.ll
crash_vectorizeTree.ll fix for null VectorizedValue assertion in the SLP Vectorizer (in function vectorizeTree()). radar://16064178 2014-02-17 03:06:16 +00:00
cross_block_slp.ll
cse.ll SLPVectorizer: When sorting by domination for CSE don't assert on unreachable code. 2014-05-09 23:28:49 +00:00
cycle_dup.ll SLP Vectorizer: Disable the vectorization of non power of two chains, such as <3 x float>, because we dont have a good cost model for these types. 2013-07-26 22:53:11 +00:00
debug_info.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
diamond.ll
external_user.ll SLPVectorizer: An in-tree vectorized entry cannot also be a scalar external use 2013-12-05 15:14:40 +00:00
extract.ll
extractcost.ll SLP Vectorizer: Extract cost will only be added once even if the scalar has multiple external uses. 2013-11-22 01:57:02 +00:00
flag.ll
gep.ll Fix typo in a test from r210342. 2014-06-06 15:49:47 +00:00
hoist.ll
horizontal.ll SLPVectorize: Put horizontal reductions feeding a store under separate flag 2013-09-25 14:02:32 +00:00
implicitfloat.ll Don't vectorize when the attribute NoImplicitFloat is used. 2013-07-29 05:13:00 +00:00
in-tree-user.ll
insert-element-build-vector.ll Fix broken FileCheck prefixes 2014-05-23 19:06:24 +00:00
intrinsic.ll Allow vectorization of intrinsics such as powi,cttz and ctlz in Loop and SLP Vectorizer. 2014-05-30 04:31:24 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
long_chains.ll
loopinvariant.ll
metadata.ll Trivial test commit. 2014-03-05 02:09:51 +00:00
multi_block.ll
multi_user.ll
non-vectorizable-intrinsic.ll SLPVectorizer: Only vectorize intrinsics whose operands are widened equally 2014-04-09 14:20:47 +00:00
odd_store.ll SLP Vectorizer: Disable the vectorization of non power of two chains, such as <3 x float>, because we dont have a good cost model for these types. 2013-07-26 22:53:11 +00:00
operandorder.ll SLPVectorizer: Sort inputs to commutative binary operations 2013-10-04 20:39:16 +00:00
opt.ll opt: Mirror vectorization presets of clang 2013-12-03 16:33:06 +00:00
ordering.ll SLPVectorizer: Don't vectorize phi nodes that use invoke values 2013-09-17 17:03:29 +00:00
phi.ll Fix broken CHECK lines. 2014-01-11 21:06:00 +00:00
phi3.ll SLPVectorizer: Fix PR16777. PHInodes may use multiple extracted values that come from different blocks. 2013-08-02 18:40:24 +00:00
phi_landingpad.ll Transforms: Use getFirstNonPHI to set the insertion point for PHIs 2013-09-27 15:30:25 +00:00
phi_overalignedtype.ll In this patch we are trying to do two things: 2013-09-03 17:26:04 +00:00
pr16571.ll
pr16628.ll PR16628: Fix a bug in the code that merges compares. 2013-07-15 22:52:48 +00:00
pr16899.ll TBAA: update tbaa format from scalar format to struct-path aware format. 2013-09-30 18:17:55 +00:00
pr18060.ll PR1860 - We can't save a list of ExtractElement instructions to CSE because some of these instructions 2013-11-26 22:24:25 +00:00
pr19657.ll Fix PR19657 (scalar loads not combined into vector load) 2014-06-06 06:20:08 +00:00
reduction.ll
reduction2.ll SLP Vectorier: Don't vectorize really short chains because they are already handled by the SelectionDAG store-vectorizer, which does a better job in deciding when to vectorize. 2013-07-26 23:07:55 +00:00
rgb_phi.ll In this patch we are trying to do two things: 2013-09-03 17:26:04 +00:00
saxpy.ll
simple-loop.ll
simplebb.ll SLPVectorizer: Don't vectorize volatile memory operations 2013-10-16 17:52:40 +00:00
tiny-tree.ll SLPVectorizer: Try vectorizing 'splat' stores 2014-02-24 19:52:29 +00:00
value-bug.ll SLPVectorizer: Bring back the insertelement patch (r205965) with fixes 2014-05-04 17:10:15 +00:00
vector.ll