OSDN Git Service

[DAGTypeLegalizer] Handle SIGN/ZERO_EXTEND in WidenVecRes_Convert().
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Fri, 27 Jan 2017 07:46:26 +0000 (07:46 +0000)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Fri, 27 Jan 2017 07:46:26 +0000 (07:46 +0000)
commit0fa88773d572638c348463ef4ca959560d2be917
tree1ec873703383cd8348b2614a337ba31d26f8c971
parent2276fd31f36aa58f39397c435a8be6632d8c8505
[DAGTypeLegalizer] Handle SIGN/ZERO_EXTEND in WidenVecRes_Convert().

In case of a SIGN/ZERO_EXTEND of an incomplete vector type (using only a
partial number of available vector elements), WidenVecRes_Convert() used to
resort to scalarization.

This patch adds a handling of the (common) case where an input vector can be
found of same width as the widened result vector, by converting the node to
SIGN/ZERO_EXTEND_VECTOR_INREG.

Review: Eli Friedman

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293268 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
test/CodeGen/SystemZ/vec-sext.ll [new file with mode: 0644]
test/CodeGen/SystemZ/vec-zext.ll [new file with mode: 0644]