[X86] Fix assertion failure caused by a wrong folding of vector shifts by immediate...
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 14 Jan 2014 13:17:12 +0000 (13:17 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Tue, 14 Jan 2014 13:17:12 +0000 (13:17 +0000)
commit527fa8c18c56565caf4654965baad5f2c79d24a0
treead25ba6748140fa72c36b1723b2584854881bef3
parent6849f102ca2a3d2dcb252dd4f997db6f92443688
[X86] Fix assertion failure caused by a wrong folding of vector shifts by immediate count.

This fixes a regression intruced by r198113.

Revision r198113 introduced an algorithm that tries to fold a vector shift
by immediate count into a build_vector if the input vector is a known vector
of constants.

However the algorithm only worked under the assumption that the input vector
type and the shift type are exactly the same.

This patch disables the folding of vector shift by immediate count if the
input vector type and the shift value type are not the same.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199213 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vshift-6.ll [new file with mode: 0644]