ARM cost model: Increase cost of some vector selects we do terrible on
authorArnold Schwaighofer <aschwaighofer@apple.com>
Thu, 14 Mar 2013 19:17:02 +0000 (19:17 +0000)
committerArnold Schwaighofer <aschwaighofer@apple.com>
Thu, 14 Mar 2013 19:17:02 +0000 (19:17 +0000)
commitd81511f0a671a9271d7ba10cce6c27331b57f553
tree776bf66db17ca79ca91b4e7b7ba8ae5bb29d4df0
parent042b79625f315da6378d06b5480b15894d6b06b1
ARM cost model: Increase cost of some vector selects we do terrible on

By terrible I mean we store/load from the stack.

This matters on PAQp8 in _Z5trainPsS_ii (which is inlined into Mixer::update)
where we decide to vectorize a loop with a VF of 8 resulting in a 25%
degradation on a cortex-a8.

LV: Found an estimated cost of 2 for VF 8 For instruction:   icmp slt i32
LV: Found an estimated cost of 2 for VF 8 For instruction:   select i1, i32, i32

The bug that tracks the CodeGen part is PR14868.

radar://13403975

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177105 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMTargetTransformInfo.cpp
test/Analysis/CostModel/ARM/select.ll
test/CodeGen/ARM/vselect_imax.ll