Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
authorEli Friedman <eli.friedman@gmail.com>
Thu, 9 Jul 2009 22:01:03 +0000 (22:01 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Thu, 9 Jul 2009 22:01:03 +0000 (22:01 +0000)
commitc680ac90032bf455b2bba77de538fccea08eb267
tree00f8af7d1bfa6165c868a13adc39b98f4f7dd522
parent6dded67b0d6262964e22163d0ab37c9ee6957c0a
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
value.  Adjust other code to deal with that correctly.  Make
DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of
this new flexibility to simplify the code and make it deal with unusual
vectors (like <4 x i1>) correctly.  Fixes PR3037.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75176 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAGNodes.h
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
test/CodeGen/X86/2009-07-07-SplitICmp.ll [new file with mode: 0644]
test/CodeGen/X86/2009-07-09-ExtractBoolFromVector.ll [new file with mode: 0644]