summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/CostModel/X86/vector-extract.ll
Commit message (Collapse)AuthorAgeFilesLines
* [x86] add cost model special-case for insert/extract from element 0Sanjay Patel2019-12-061-22/+22
| | | | | | | | | | | | | | | | | This is a follow-up to D70607 where we made any extract element on SLM more costly than default. But that is pessimistic for extract from element 0 because that corresponds to x86 movd/movq instructions. These generally have >1 cycle latency, but they are probably implemented as single uop instructions. Note that no vectorization tests are affected by this change. Also, no targets besides SLM are affected because those are falling through to the default cost of 1 anyway. But this will become visible/important if we add more specializations via cost tables. Differential Revision: https://reviews.llvm.org/D71023
* [x86] make SLM extract vector element more expensive than defaultSanjay Patel2019-11-271-74/+606
| | | | | | | | | | | | | | | | | | | I'm not sure what the effect of this change will be on all of the affected tests or a larger benchmark, but it fixes the horizontal add/sub problems noted here: https://reviews.llvm.org/D59710?vs=227972&id=228095&whitespace=ignore-most#toc The costs are based on reciprocal throughput numbers in Agner's tables for PEXTR*; these appear to be very slow ops on Silvermont. This is a small step towards the larger motivation discussed in PR43605: https://bugs.llvm.org/show_bug.cgi?id=43605 Also, it seems likely that insert/extract is the source of perf regressions on other CPUs (up to 30%) that were cited as part of the reason to revert D59710, so maybe we'll extend the table-based approach to other subtargets. Differential Revision: https://reviews.llvm.org/D70607
* [CostModel][X86] Add tests for extractelement from non-immediate vector ↵Simon Pilgrim2019-10-091-0/+74
| | | | | | element indices llvm-svn: 374160
* [CostModel][X86] Add vector element insert/extract cost testsSimon Pilgrim2018-04-201-0/+359
llvm-svn: 330439
OpenPOWER on IntegriCloud