Improve long vector sext/zext lowering on ARM
authorRenato Golin <renato.golin@linaro.org>
Tue, 19 Mar 2013 08:15:38 +0000 (08:15 +0000)
committerRenato Golin <renato.golin@linaro.org>
Tue, 19 Mar 2013 08:15:38 +0000 (08:15 +0000)
commit5ad5f5931e34d5be410b1e901640bc1c2d308612
tree4cb257e7333a6d8337a30fc6ca7aeec8e54b3713
parent54e57f8cb79bdc23ed8289cf2a558fa7c9602972
Improve long vector sext/zext lowering on ARM

The ARM backend currently has poor codegen for long sext/zext
operations, such as v8i8 -> v8i32. This patch addresses this
by performing a custom expansion in ARMISelLowering. It also
adds/changes the cost of such lowering in ARMTTI.

This partially addresses PR14867.

Patch by Pete Couperus

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