Fixed a bug in SelectionDAG.cpp.
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Tue, 3 Jan 2012 11:59:04 +0000 (11:59 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Tue, 3 Jan 2012 11:59:04 +0000 (11:59 +0000)
commitce58a03587ca46d9c9fe48e2bf433bcd57bb2b3a
tree87d867b13b453f0ed68161f6392ad35f4ed52782
parent0f8cd56bfdd32af4edb253654db02fb3143b25a8
Fixed a bug in SelectionDAG.cpp.
The failure seen on win32, when i64 type is illegal.
It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR.

The failure message is:
llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed.

I added a special test that checks vector shuffle on win32.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147445 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
test/CodeGen/X86/avx-shuffle-x86_32.ll [new file with mode: 0755]