llvm-project/llvm/test/Transforms/InstSimplify
David Majnemer 3af5bf30e3 [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

llvm-svn: 258422
2016-01-21 18:55:54 +00:00
..
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll [InstSimplify] Don't assume getAggregateElement will succeed 2015-08-18 22:07:25 +00:00
2011-10-27-BinOpCrash.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll
add-mask.ll [ValueTracking] Recognize that and(x, add (x, -1)) clears the low bit 2015-11-10 18:46:14 +00:00
apint-or.ll Merge or combine tests and convert to FileCheck. 2015-09-08 18:36:56 +00:00
assume.ll
bswap.ll Extend known bits to understand @llvm.bswap 2015-10-06 20:20:45 +00:00
call-callconv.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
call.ll [MemoryBuiltins] Remove isOperatorNewLike by consolidating non-null inference handling 2016-01-04 22:49:23 +00:00
compare.ll [InstCombine] Simplify (x >> y) <= x 2016-01-21 18:55:54 +00:00
dead-code-removal.ll
exact-nsw-nuw.ll
fast-math.ll [InstSimplify] Allow folding of fdiv X, X with just NaNs ignored 2015-06-16 14:57:29 +00:00
fdiv.ll
floating-point-arithmetic.ll Fix really obscure bug in CannotBeNegativeZero() (PR22688) 2015-02-25 18:00:15 +00:00
floating-point-compare.ll CannotBeOrderedLessThanZero: add some missing cases 2016-01-12 23:37:30 +00:00
fold-builtin-fma.ll
gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
implies.ll [ValueTracking] Teach isImpliedCondition a new bitwise trick 2015-11-10 23:56:20 +00:00
load.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
maxmin.ll
noalias-ptr.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
past-the-end.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
phi.ll
ptr_diff.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
reassociate.ll
rem.ll
select.ll
shift-128-kb.ll Handle non-constant shifts in computeKnownBits, and use computeKnownBits for constant folding in InstCombine/Simplify 2015-10-23 20:37:08 +00:00
shr-nop.ll Fix CHECK directives that weren't checking. 2015-08-31 21:10:35 +00:00
undef.ll [InstSimplify] Teach InstSimplify how to simplify extractelement 2015-07-13 01:15:53 +00:00
vector_gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
vector_ptr_bitcast.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00