[SDAG] Move TRUNCATE splitting logic into a helper, and use
authorJames Molloy <james.molloy@arm.com>
Tue, 31 Mar 2015 10:20:58 +0000 (10:20 +0000)
committerJames Molloy <james.molloy@arm.com>
Tue, 31 Mar 2015 10:20:58 +0000 (10:20 +0000)
commit369ee1b1f475bd92079ff71498c503cb68d5ddb9
tree6f171d81e36529cf30bab84d3906cc8a946ce24c
parentcd83d5b5071f072882ad06cc4b904b2d27d1e54a
[SDAG] Move TRUNCATE splitting logic into a helper, and use
 it more liberally.

SplitVecOp_TRUNCATE has logic for recursively splitting oversize vectors
that need more than one round of splitting to become legal. There are many
other ISD nodes that could benefit from this logic, so factor it out and
use it for FP_TO_UINT,FP_TO_SINT,SINT_TO_FP,UINT_TO_FP and FTRUNC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233681 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeTypes.h
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
test/CodeGen/AArch64/arm64-convert-v4f64.ll
test/CodeGen/AArch64/vcvt-oversize.ll [new file with mode: 0644]
test/CodeGen/ARM/vcvt.ll