[InstCombine] Simplify (x >> y) <= x

This commit extends the patterns recognised by InstSimplify to also handle (x >> y) <= x in the same way as (x /u y) <= x.

The missing optimisation was found investigating why LLVM did not optimise away bound checks in a binary search: https://github.com/rust-lang/rust/pull/30917

Patch by Andrea Canciani!

Differential Revision: http://reviews.llvm.org/D16402

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258422 91177308-0d34-0410-b5e6-96231b3b80d8
2 files changed