llvm-project/llvm/test/Transforms/SLPVectorizer/X86
Alexey Bataev 0bd9004425 [SLP] Fix PR23510: Try to find best possible vectorizable stores.
Summary:
The analysis of the store sequence goes in straight order - from the
first store to the last. Bu the best opportunity for vectorization will
happen if we're going to use reverse order - from last store to the
first. It may be best because usually users have some initialization
part + further processing and this first initialization may confuse
SLP vectorizer.

Reviewers: RKSimon, hfinkel, mkuper, spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D39606

llvm-svn: 317821
2017-11-09 19:07:16 +00:00
..
PR32086.ll [SLP] Add test for reversed load, NFC. 2017-10-09 19:08:15 +00:00
PR34635.ll [SLP] Reduce test, NFC. 2017-09-19 13:38:56 +00:00
addsub.ll
align.ll
arith-add.ll [X86][SLM] Add SLM arithmetic vectorization tests 2017-06-10 19:16:09 +00:00
arith-fp.ll [X86][SLM] Add SLM arithmetic vectorization tests 2017-06-10 19:16:09 +00:00
arith-mul.ll [X86][SLM] Add SLM arithmetic vectorization tests 2017-06-10 19:16:09 +00:00
arith-sub.ll [X86][SLM] Add SLM arithmetic vectorization tests 2017-06-10 19:16:09 +00:00
atomics.ll
bad_types.ll [SLP] Don't vectorize loads of non-packed types (like i1, i2). 2015-09-30 21:05:43 +00:00
barriercall.ll
bitreverse.ll [X86] Add missing BITREVERSE costs for SSE2 vectors and i8/i16/i32/i64 scalars 2017-03-15 19:34:55 +00:00
blending-shuffle.ll [SLP] Test for wrongly vectorized set of extractelements, NFC. 2017-10-09 17:14:03 +00:00
bswap.ll [X86][SSE] Add cost model for BSWAP of vectors 2016-06-20 23:08:21 +00:00
call.ll [ValueTracking] readonly (const) is a requirement for converting sqrt to llvm.sqrt; nnan is not 2017-11-06 22:40:09 +00:00
cast.ll [SLP] Fix PR35047: Fix default cost model for cast op in X86. 2017-11-07 14:23:44 +00:00
cmp_sel.ll
commutativity.ll Fix SLPVectorizer commutativity reordering 2015-11-06 20:17:51 +00:00
compare-reduce.ll
consecutive-access.ll
continue_vectorizing.ll
crash_7zip.ll
crash_binaryop.ll
crash_bullet.ll
crash_bullet3.ll
crash_cmpop.ll
crash_dequeue.ll
crash_flop7.ll
crash_gep.ll
crash_lencod.ll
crash_mandeltext.ll
crash_netbsd_decompress.ll
crash_scheduling.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
crash_sim4b1.ll
crash_smallpt.ll
crash_vectorizeTree.ll
cross_block_slp.ll
cse.ll
ctlz.ll [VectorLegalizer] Expansion of CTLZ using CTPOP when possible 2016-11-08 14:10:28 +00:00
ctpop.ll [X86][SSE] Add cost model values for CTPOP of vectors 2016-07-20 10:41:28 +00:00
cttz.ll [X86][SSE] Add initial costs for vector CTTZ/CTLZ 2016-08-04 10:51:41 +00:00
cycle_dup.ll
debug_info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
diamond.ll
external_user.ll
extract.ll
extract_in_tree_user.ll
extractcost.ll
extractelement.ll [SLP] Fix for PR31879: vectorize repeated scalar ops that don't get put 2017-02-14 15:20:48 +00:00
fabs.ll [SLPVectorizer][X86] Added fabs tests 2016-10-01 16:54:01 +00:00
fcopysign.ll [AVX-512] Support FCOPYSIGN for v16f32 and v8f64 2016-11-18 02:25:34 +00:00
flag.ll
fma.ll [SLPVectorizer][X86] Added fma vectorization tests 2016-07-08 17:19:13 +00:00
fptosi.ll [SLPVectorizer][X86] Tests to show missed buildvector sitofp/fptosi vectorizations 2016-12-06 13:29:55 +00:00
fptoui.ll [SLPVectorizer][X86] Added fptosi/fptoui tests 2016-10-01 19:35:59 +00:00
fround.ll [SLPVectorizer][X86] Added ceil/floor/nearbyint/rint/trunc vectorization tests 2016-06-22 14:07:46 +00:00
funclet.ll [SLPVectorizer] Add operand bundles to vectorized functions 2016-04-29 07:09:51 +00:00
gep.ll [PM] Port SLPVectorizer to the new PM 2016-06-15 08:43:40 +00:00
gep_mismatch.ll [SLPVectorizer] Handle GEP with differing constant index types 2016-06-08 21:55:16 +00:00
hoist.ll
horizontal-list.ll [SLP] Support for horizontal min/max reduction. 2017-09-25 13:34:59 +00:00
horizontal-minmax.ll [SLP] Support for horizontal min/max reduction. 2017-09-25 13:34:59 +00:00
horizontal.ll [SLP] General improvements of SLP vectorization process. 2017-08-07 15:25:49 +00:00
implicitfloat.ll
in-tree-user.ll
insert-after-bundle.ll [SLPVectorizer][X86] Cleanup test case. NFCI 2017-08-06 20:50:19 +00:00
insert-element-build-vector.ll [SLP] General improvements of SLP vectorization process. 2017-08-07 15:25:49 +00:00
insertvalue.ll [SLPVectorizer] Extend SLP Vectorizer to deal with aggregates. 2016-04-28 16:11:45 +00:00
intrinsic.ll
jumbled-load-multiuse.ll Revert r314806 "[SLP] Vectorize jumbled memory loads." 2017-10-03 18:32:29 +00:00
jumbled-load.ll Revert r314806 "[SLP] Vectorize jumbled memory loads." 2017-10-03 18:32:29 +00:00
limit.ll [SLP] A test for limiting vectorization of instructions, NFC. 2017-06-30 14:37:32 +00:00
lit.local.cfg
load-merge.ll [SLP] Fix PR35047: Fix default cost model for cast op in X86. 2017-11-07 14:23:44 +00:00
long_chains.ll
loopinvariant.ll
metadata.ll
minimum-sizes.ll [InstCombine] Support sext in foldLogicCastConstant 2017-08-02 20:25:56 +00:00
multi_block.ll
multi_user.ll
non-vectorizable-intrinsic.ll
odd_store.ll
operandorder.ll [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
opt.ll
ordering.ll Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT. 2016-02-26 19:40:34 +00:00
phi.ll
phi3.ll
phi_landingpad.ll
phi_overalignedtype.ll
powof2div.ll
pr16571.ll
pr16628.ll
pr16899.ll
pr18060.ll
pr19657.ll
pr23510.ll
pr27163.ll [SLPVectorizer] Don't insert an extractelement before a catchswitch 2016-04-01 17:28:15 +00:00
pr31599.ll [SLP] Remove bogus assert. 2017-01-11 19:23:57 +00:00
propagate_ir_flags.ll Fixed the lost FastMathFlags for CALL operations in SLPVectorizer. 2016-11-16 00:55:50 +00:00
reduction.ll
reduction2.ll
reduction_loads.ll [SLP] Revert everything that has to do with memory access sorting. 2017-03-10 18:59:07 +00:00
reduction_unrolled.ll [SLP] Fixed cost model for horizontal reduction. 2016-12-01 18:42:42 +00:00
reorder_phi.ll [SLP vectorizer] Allow phi node reordering in tryToVectorizeList. 2017-04-18 18:16:57 +00:00
return.ll
reverse_extract_elements.ll [SLP] Change extension of the test, NFC. 2017-06-06 20:27:45 +00:00
rgb_phi.ll
saxpy.ll
schedule-bundle.ll [SLPVectorizer] Schedule bundle with different opcodes. 2017-08-14 15:40:16 +00:00
schedule_budget.ll
scheduling.ll [SLP] Preserve IR flags when vectorizing horizontal reductions. 2017-03-01 12:43:39 +00:00
shift-ashr.ll [SLPVectorizer][X86] Add vectorization tests for vXi64/vXi32/vXi16/VXi8 shifts 2017-05-15 14:27:11 +00:00
shift-lshr.ll [SLPVectorizer][X86] Add vectorization tests for vXi64/vXi32/vXi16/VXi8 shifts 2017-05-15 14:27:11 +00:00
shift-shl.ll [SLPVectorizer][X86] Add vectorization tests for vXi64/vXi32/vXi16/VXi8 shifts 2017-05-15 14:27:11 +00:00
simple-loop.ll
simplebb.ll
sitofp.ll [SLPVectorizer][X86] Tests to show missed buildvector sitofp/fptosi vectorizations 2016-12-06 13:29:55 +00:00
sqrt.ll Rename tests 2016-09-18 20:25:41 +00:00
store-jumbled.ll Revert r314806 "[SLP] Vectorize jumbled memory loads." 2017-10-03 18:32:29 +00:00
stores_vectorize.ll [SLP] Fix PR23510: Try to find best possible vectorizable stores. 2017-11-09 19:07:16 +00:00
tiny-tree.ll
uitofp.ll [SLPVectorizer][X86] Add 512-bit sitofp/uitofp tests 2016-10-10 14:28:06 +00:00
undef_vect.ll [SLP] Fix crash on propagate IR flags for undef operands of min/max 2017-09-27 17:42:49 +00:00
unreachable.ll
value-bug.ll
vect_copyable_in_binops.ll Revert rL317618 2017-11-08 00:20:53 +00:00
vector.ll [SLP] A test for vectorization of users of extractelement instructions, 2017-03-06 16:26:00 +00:00
vector_gep.ll Vector GEP test: renamed + some comments 2016-07-06 08:11:23 +00:00