Simon Pilgrim
eaa41e103c
[CostModel][X86] Try to check against common prefixes before using target-specific cpu checks
...
SLM/GLM is still a mess so not all of them have been updated yet.
2020-02-24 11:59:07 +00:00
Simon Pilgrim
ac84005841
[CostModel][X86] Add vXi8 vector division by constants costs.
...
ISD::MULHS/ISD::MULHU lowering of vXi8 types means we expand these in TargetLowering BuildSDIV/BuildUDIV.
llvm-svn: 345175
2018-10-24 18:44:12 +00:00
Simon Pilgrim
2cce074e8c
[CostModel][X86] Enable non-uniform vector division by constants costs.
...
Non-uniform division/remainder handling was added back at D49248/D50765 - so share the 'mul+sub' costs that already exist for uniform cases.
llvm-svn: 345164
2018-10-24 17:30:29 +00:00
Simon Pilgrim
667a5b541f
[TargetTransformInfo] Add pow2 analysis for scalar constants
...
Add ConstantInt analysis to getOperandInfo so we get more realistic div/rem expansion costs comparable to the vector costs.
llvm-svn: 336827
2018-07-11 17:51:27 +00:00
Simon Pilgrim
dc113dc7ed
[CostModel][X86] Add SREM/UREM general and constant costs (PR38056)
...
We penalize general SDIV/UDIV costs but don't do the same for SREM/UREM.
This patch makes general vector SREM/UREM x20 as costly as scalar, the same approach as we do for SDIV/UDIV. The patch also extends the existing SDIV/UDIV constant costs for SREM/UREM - at the moment this means the additional cost of a MUL+SUB (see D48975).
Differential Revision: https://reviews.llvm.org/D48980
llvm-svn: 336486
2018-07-07 16:53:30 +00:00
Simon Pilgrim
8c3765dc6b
[CostModel][X86] Add UDIV/UREM by pow2 costs
...
Normally InstCombine would have simplified these to SRL/AND instructions but we may still see these during SLP vectorization etc.
llvm-svn: 336371
2018-07-05 16:56:28 +00:00
Simon Pilgrim
0ae4bba911
[CostModel][X86] Add div/rem tests for non-uniform constant divisors
...
llvm-svn: 330852
2018-04-25 18:03:31 +00:00
Simon Pilgrim
863ffeb750
[CostModel][X86] Add srem/urem constant cost tests
...
llvm-svn: 330436
2018-04-20 15:01:03 +00:00
Simon Pilgrim
8a15d72550
[CostModel][X86] Add SLM/GLM/BtVer2 compare + division/remainder cost tests
...
llvm-svn: 330435
2018-04-20 14:50:34 +00:00
Simon Pilgrim
06fba8b204
[CostModel][X86] Regenerate integer division/remainder tests with update_analyze_test_checks.py
...
llvm-svn: 329401
2018-04-06 15:23:26 +00:00
Simon Pilgrim
d09c04d267
[CostModel][X86] Added tests for current integer signed/unsigned remainder costs
...
llvm-svn: 284940
2016-10-23 18:35:02 +00:00