llvm-project/llvm/test/Transforms/SLPVectorizer/X86
Sanjay Patel 3e8a76abfd [TTI CostModel] change default cost of FP ops to 1 (PR36280)
This change was mentioned at least as far back as:
https://bugs.llvm.org/show_bug.cgi?id=26837#c26
...and I found a real program that is harmed by this: 
Himeno running on AMD Jaguar gets 6% slower with SLP vectorization:
https://bugs.llvm.org/show_bug.cgi?id=36280
...but the change here appears to solve that bug only accidentally.

The div/rem costs for x86 look very wrong in some cases, but that's already true, 
so we can fix those in follow-up patches. There's also evidence that more cost model
changes are needed to solve SLP problems as shown in D42981, but that's an independent 
problem (though the solution may be adjusted after this change is made).

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

llvm-svn: 325515
2018-02-19 16:11:44 +00:00
..
PR32086.ll [SLP] Allow vectorization of reversed loads. 2018-02-14 15:29:15 +00:00
PR34635.ll [SLP] Reduce test, NFC. 2017-09-19 13:38:56 +00:00
PR35628_1.ll [SLP] Fix PR35628: Count external uses on extra reduction arguments. 2018-01-08 14:33:11 +00:00
PR35628_2.ll [SLP] Fix PR35628: Count external uses on extra reduction arguments. 2018-01-08 14:33:11 +00:00
PR35777.ll [SLP] Fix vectorization for tree with trunc to minimum required bit width. 2018-01-19 14:40:13 +00:00
PR35865.ll [COST]Fix PR35865: Fix cost model evaluation for shuffle on X86. 2018-01-09 19:08:22 +00:00
PR36280.ll [TTI CostModel] change default cost of FP ops to 1 (PR36280) 2018-02-19 16:11:44 +00:00
addsub.ll
aggregate.ll [SLP] Update tests checks, NFC. 2018-01-05 14:40:04 +00:00
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
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] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle. 2018-01-29 16:08:52 +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
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 [TTI CostModel] change default cost of FP ops to 1 (PR36280) 2018-02-19 16:11:44 +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
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-shuffle.ll [SLP] Add extra test for extractelement shuffle, NFC. 2018-01-30 21:06:06 +00:00
extract.ll
extract_in_tree_user.ll [SLP] Update test checks, NFC. 2018-02-06 20:00:05 +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
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 [SLP] Fix for PR32086: Count InsertElementInstr of the same elements as shuffle. 2018-01-29 16:08:52 +00:00
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 [TTI CostModel] change default cost of FP ops to 1 (PR36280) 2018-02-19 16:11:44 +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] Take user instructions cost into consideration in insertelement vectorization. 2018-02-12 14:54:48 +00:00
insertvalue.ll [SLP] Fix PR35777: Incorrect handling of aggregate values. 2018-01-08 14:43:06 +00:00
intrinsic.ll
jumbled-load-multiuse.ll [SLP] Take user instructions cost into consideration in insertelement vectorization. 2018-02-12 14:54:48 +00:00
jumbled-load.ll Revert r320548:[SLP] Vectorize jumbled memory loads 2017-12-20 15:26:59 +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 [SLP] Add/update tests for SLP vectorizer, NFC. 2018-01-10 21:29:18 +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] Update test checks, NFC. 2018-02-06 20:00:05 +00:00
remark_horcost.ll [SLP] Added more missed optimization remarks 2017-11-15 17:04:53 +00:00
remark_listcost.ll [SLP] Added more missed optimization remarks 2017-11-15 17:04:53 +00:00
remark_not_all_parts.ll [SLP] Added more missed optimization remarks 2017-11-15 17:04:53 +00:00
remark_unsupported.ll [SLP] Added more missed optimization remarks 2017-11-15 17:04:53 +00:00
reorder_phi.ll [TTI CostModel] change default cost of FP ops to 1 (PR36280) 2018-02-19 16:11:44 +00:00
return.ll
reverse_extract_elements.ll [SLP] Fix for PR32164: Improve vectorization of reverse order of extract operations. 2018-01-16 18:17:01 +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
sign-extend.ll [SLP] Take user instructions cost into consideration in insertelement vectorization. 2018-02-12 14:54:48 +00:00
simple-loop.ll
simplebb.ll [TTI CostModel] change default cost of FP ops to 1 (PR36280) 2018-02-19 16:11:44 +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 Revert r320548:[SLP] Vectorize jumbled memory loads 2017-12-20 15:26:59 +00:00
stores_vectorize.ll [SLP] Fix the test for the reversed stores, NFC. 2018-02-15 17:11:50 +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 [SLP] Take user instructions cost into consideration in insertelement vectorization. 2018-02-12 14:54:48 +00:00
vect_copyable_in_binops.ll Revert r319531 "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops." 2017-12-01 16:17:24 +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