llvm-project/llvm/test/Transforms/SLPVectorizer/X86
Easwaran Raman 76aba5f6d7 [SLP vectorizer] Allow phi node reordering in tryToVectorizeList.
In tryToVectorizeList, under a very limited circumstance (when entered
from tryToVectorizePair), the values may be reordered (swapped) and the
SLP tree is built with the new order. This extends that to the case when
starting from phis in vectorizeChainsInBlock when there are exactly two
phis. The textual order of phi nodes shouldn't really matter. Without
this change, the loop body in the accompnaying test case is fully vectorized
when we swap the orde of the phis but not with this order. While this
doesn't solve the phi-ordering problem in a general way (for more than 2
phis), this is simple fix that piggybacks on an existing mechanism and
is useful in cases like multiplying two complex numbers.

Differential revision: https://reviews.llvm.org/D32065

llvm-svn: 300574
2017-04-18 18:16:57 +00:00
..
addsub.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
align.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
arith-fp.ll [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. 2016-12-08 11:57:51 +00:00
atomics.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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] Tests for shuffle/blending operations. 2017-02-21 13:40:55 +00:00
bswap.ll [X86][SSE] Add cost model for BSWAP of vectors 2016-06-20 23:08:21 +00:00
call.ll Fixed the lost FastMathFlags for CALL operations in SLPVectorizer. 2016-11-16 00:55:50 +00:00
cast.ll [SLPVectorizer][X86] Regenerated SEXT/ZEXT cast vectorization tests 2016-05-06 22:22:18 +00:00
cmp_sel.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
commutativity.ll Fix SLPVectorizer commutativity reordering 2015-11-06 20:17:51 +00:00
compare-reduce.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
consecutive-access.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
continue_vectorizing.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_7zip.ll
crash_binaryop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_bullet.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_bullet3.ll
crash_cmpop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_dequeue.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_flop7.ll
crash_gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_lencod.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_mandeltext.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_netbsd_decompress.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
cross_block_slp.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
cse.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
debug_info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
diamond.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
external_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
extract.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
extract_in_tree_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
horizontal-list.ll [SLP] Preserve IR flags for extra args. 2017-03-01 12:22:33 +00:00
horizontal-minmax.ll [TEST] Initial commit of tests for minmax horizontal reductions. 2016-12-15 13:21:29 +00:00
horizontal.ll [SLP] Preserve IR flags when vectorizing horizontal reductions. 2017-03-01 12:43:39 +00:00
implicitfloat.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
in-tree-user.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
insert-element-build-vector.ll [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. 2016-12-08 11:57:51 +00:00
insertvalue.ll [SLPVectorizer] Extend SLP Vectorizer to deal with aggregates. 2016-04-28 16:11:45 +00:00
intrinsic.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
jumbled-load.ll [SLP] Revert everything that has to do with memory access sorting. 2017-03-10 18:59:07 +00:00
lit.local.cfg
long_chains.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
loopinvariant.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
metadata.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
minimum-sizes.ll [SLP] Fix sign-extends for type-shrinking 2016-12-12 21:11:04 +00:00
multi_block.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
multi_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
non-vectorizable-intrinsic.ll
odd_store.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
operandorder.ll [InstCombine] Canonicalize insert splat sequences into an insert + shuffle 2016-12-28 00:18:08 +00:00
opt.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
ordering.ll Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT. 2016-02-26 19:40:34 +00:00
phi.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
phi3.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
phi_landingpad.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
phi_overalignedtype.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
powof2div.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr16571.ll
pr16628.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
pr16899.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr18060.ll
pr19657.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
pr23510.ll [SLP vectorizer]: Choose the best consecutive candidate to pair with a store instruction. 2015-07-30 17:40:39 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
reduction2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
rgb_phi.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
saxpy.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
schedule_budget.ll SLPVectorizer: add a test to check if the minimum region size works. 2015-09-30 17:28:19 +00:00
scheduling.ll [SLP] Preserve IR flags when vectorizing horizontal reductions. 2017-03-01 12:43:39 +00:00
simple-loop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
simplebb.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
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 [SLP] Revert everything that has to do with memory access sorting. 2017-03-10 18:59:07 +00:00
tiny-tree.ll [SLP] Vectorize for all-constant entries. 2015-06-19 17:40:15 +00:00
uitofp.ll [SLPVectorizer][X86] Add 512-bit sitofp/uitofp tests 2016-10-10 14:28:06 +00:00
unreachable.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
value-bug.ll
vect_copyable_in_binops.ll [SLP] Add a tests for a fix for PR30787. 2017-01-18 18:07:46 +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