ARM cost model: Correct cost for some cheap float to integer conversions
authorArnold Schwaighofer <aschwaighofer@apple.com>
Mon, 18 Mar 2013 22:47:06 +0000 (22:47 +0000)
committerArnold Schwaighofer <aschwaighofer@apple.com>
Mon, 18 Mar 2013 22:47:06 +0000 (22:47 +0000)
commit6c9c3a8b9942e3a7b836949d18094d9558111dbd
treeb244b7505be5e17c40b2da93b3faa71c2257e863
parent7b8f738227424f9c8105bf1db2bb067d596b228e
ARM cost model: Correct cost for some cheap float to integer conversions

Fix cost of some "cheap" cast instructions. Before this patch we used to
estimate for example:
  cost of 16 for instruction:   %r = fptoui <4 x float> %v0 to <4 x i16>

While we would emit:
  vcvt.s32.f32  q8, q8
  vmovn.i32 d16, q8
  vuzp.8  d16, d17

All other costs are left to the values assigned by the fallback logic. Theses
costs are mostly reasonable in the sense that they get progressively more
expensive as the instruction sequences emitted get longer.

radar://13434072

llvm-svn: 177333
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
llvm/test/Analysis/CostModel/ARM/cast.ll