PR14562 - Truncation of left shift became undef
authorPaul Redmond <paul.redmond@intel.com>
Tue, 12 Feb 2013 15:21:21 +0000 (15:21 +0000)
committerPaul Redmond <paul.redmond@intel.com>
Tue, 12 Feb 2013 15:21:21 +0000 (15:21 +0000)
commit5c97450df748819381daa4c4d400c39b0d7378ae
tree248ac9d6c584c8abdf1caaab94aba84ca3d24715
parent7eacad03efda36e09ebd96e95d7891cadaaa9087
PR14562 - Truncation of left shift became undef

DAGCombiner::ReduceLoadWidth was converting (trunc i32 (shl i64 v, 32))
into (shl i32 v, 32) into undef. To prevent this, check the shift count
against the final result size.

Patch by: Kevin Schoedel
Reviewed by: Nadav Rotem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174972 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/pr14562.ll [new file with mode: 0644]