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