[DAGCombiner] Merge SIGN_EXTEND_INREG vector constant folding methods. NCI.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 3 Oct 2015 16:26:52 +0000 (16:26 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 3 Oct 2015 16:26:52 +0000 (16:26 +0000)
commiteae7090e1c02785e81be0ea2ec562875ae43a907
treefbb54d9b2824f8780f6a951856edc74a5dae639b
parent2e700c9bf60cb173d7636eac836b25cfdc95e473
[DAGCombiner] Merge SIGN_EXTEND_INREG vector constant folding methods. NCI.

visitSIGN_EXTEND_INREG calls SelectionDAG::getNode to constant fold scalar constants but handles vector constants itself, despite getNode being capable of dealing with them.

This required a minor change to the getNode implementation to actually deal with cases where the scalars of a BUILD_VECTOR were wider integers than the vector type - which was the only extra ability of the visitSIGN_EXTEND_INREG implementation.

No codegen intended and all existing tests remain the same.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249236 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp