1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 05:52:53 +02:00
llvm-mirror/test/Analysis/CostModel
Cong Hou cc25d3b7d5 Don't punish vectorized arithmetic instruction whose type will be split to multiple registers
Currently in LLVM's cost model, a vectorized arithmetic instruction will have
high cost if its type is split into multiple registers. However, this
punishment is too heavy and unnecessary. The overhead of the split should not
be on arithmetic instructions but instructions that implement the split. Note
that during vectorization we have calculated the register pressure, and we
only choose proper interleaving factor (and also vectorization factor) so
that we don't use more registers than the maximum number.

Here is a very simple example: if a vadd has the cost 1, and if we double VF
so that we need two registers to perform it, then its cost will become 4 with
the current implementation, which will prevent us to use larger VF.


Differential revision: http://reviews.llvm.org/D15159

llvm-svn: 254671
2015-12-04 00:36:58 +00:00
..
AArch64 [CostModel][AArch64] Remove amortization factor for some of the vector select instructions 2015-09-09 15:35:02 +00:00
AMDGPU AMDGPU: Report extractelement as free in cost model 2015-12-01 19:08:39 +00:00
ARM [ARM] Don't pessimize i32 vselect. 2015-11-17 17:25:15 +00:00
PowerPC [PowerPC] Include the permutation cost for unaligned vector loads 2015-09-03 21:23:18 +00:00
X86 Don't punish vectorized arithmetic instruction whose type will be split to multiple registers 2015-12-04 00:36:58 +00:00
no_info.ll Roll forward r243250 2015-07-26 19:10:03 +00:00