llvm-project/llvm/test/Analysis/LoopAccessAnalysis
Justin Lebar fe455464eb [SCEV] Simplify zext/trunc idiom that appears when handling bitmasks.
Summary:
Specifically, we transform

  zext(2^K * (trunc X to iN)) to iM ->
  2^K * (zext(trunc X to i{N-K}) to iM)<nuw>

This is helpful because pulling the 2^K out of the zext allows further
optimizations.

Reviewers: sanjoy

Subscribers: hiraditya, llvm-commits, timshen

Differential Revision: https://reviews.llvm.org/D48158

llvm-svn: 334737
2018-06-14 17:13:48 +00:00
..
backward-dep-different-types.ll
forward-loop-carried.ll
forward-loop-independent.ll
independent-interleaved.ll
interleave-innermost.ll
memcheck-for-loop-invariant.ll
memcheck-off-by-one-error.ll
memcheck-wrapping-pointers.ll
multiple-strides-rt-memory-checks.ll
non-wrapping-pointer.ll
nullptr.ll
number-of-memchecks.ll [SCEV] Add nuw/nsw to mul ops in StrengthenNoWrapFlags where safe. 2018-06-11 18:57:42 +00:00
pointer-with-unknown-bounds.ll
pr31098.ll
resort-to-memchecks-only.ll
reverse-memcheck-bounds.ll
safe-no-checks.ll
safe-with-dep-distance.ll
store-to-invariant-check1.ll
store-to-invariant-check2.ll
store-to-invariant-check3.ll
stride-access-dependence.ll
underlying-objects-1.ll
underlying-objects-2.ll
unsafe-and-rt-checks.ll
wrapping-pointer-versioning.ll [SCEV] Simplify zext/trunc idiom that appears when handling bitmasks. 2018-06-14 17:13:48 +00:00