InstCombine: Don't claim to be able to evaluate any shl in a zexted type.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 10 May 2013 16:26:37 +0000 (16:26 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 10 May 2013 16:26:37 +0000 (16:26 +0000)
commit7159a307b9a0a53f9a33e416d24b9308ef547d97
tree90fef1983af353ee36a49cfacb202a153ea68e3b
parentc24a374331fc97dd215937c8f0a9bf5271f39657
InstCombine: Don't claim to be able to evaluate any shl in a zexted type.

The shift amount may be larger than the type leading to undefined behavior.
Limit the transform to constant shift amounts. While there update the bits to
clear in the result which may enable additional optimizations.

PR15959.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181604 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineCasts.cpp
test/Transforms/InstCombine/cast.ll