Fixed a bug in SelectionDAG.cpp.
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Sun, 1 Jan 2012 16:22:47 +0000 (16:22 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Sun, 1 Jan 2012 16:22:47 +0000 (16:22 +0000)
commitac12855066ce2cfee11e68dcf0c15936f0730e6b
tree3e6284ad40c6769d6f524f8bb28717c59cce158b
parent45ba16588ddfd5365ab961e84513bd79feba0dce
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@147399 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
test/CodeGen/X86/avx-shuffle-x86_32.ll [new file with mode: 0755]