Merging r195635:
authorDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 25 Nov 2013 15:53:39 +0000 (15:53 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 25 Nov 2013 15:53:39 +0000 (15:53 +0000)
commit975e958dbc12ba412385b721100fc1c830b0e3ab
treef4970cf0f88acd5b21f574a0f11810c867a487e8
parentf6312d4b2d7effce08db0ee07e3946bc3c7cb9aa
Merging r195635:
------------------------------------------------------------------------
r195635 | dsanders | 2013-11-25 11:14:43 +0000 (Mon, 25 Nov 2013) | 19 lines

Fixed tryFoldToZero() for vector types that need expansion.

Summary:
Moved the requirement for SelectionDAG::getConstant() to return legally
typed nodes slightly earlier. There were two optional DAGCombine passes
that were missed out and were required to produce type-legal DAGs.

Simplified a code-path in tryFoldToZero() to use SelectionDAG::getConstant().
This provides support for both promoted and expanded vector types whereas the
previous code only supported promoted vector types.

Fixes a "Type for zero vector elements is not legal" assertion detected by
an llvm-stress generated test.

Reviewers: resistor

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2251
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195651 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
test/CodeGen/Mips/msa/llvm-stress-s3926023935.ll [new file with mode: 0644]