llvm-project/llvm/test/Analysis/LoopAccessAnalysis
Keno Fischer a1a4adf4b9 [SCEV] Add explicit representations of umin/smin
Summary:
Currently we express umin as `~umax(~x, ~y)`. However, this becomes
a problem for operands in non-integral pointer spaces, because `~x`
is not something we can compute for `x` non-integral. However, since
comparisons are generally still allowed, we are actually able to
express `umin(x, y)` directly as long as we don't try to express is
as a umax. Support this by adding an explicit umin/smin representation
to SCEV. We do this by factoring the existing getUMax/getSMax functions
into a new function that does all four. The previous two functions were
largely identical.

Reviewed By: sanjoy
Differential Revision: https://reviews.llvm.org/D50167

llvm-svn: 360159
2019-05-07 15:28:47 +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-ni.ll [SCEV] Add explicit representations of umin/smin 2019-05-07 15:28:47 +00:00
memcheck-off-by-one-error.ll
memcheck-wrapping-pointers.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
multiple-strides-rt-memory-checks.ll
non-wrapping-pointer.ll
nullptr.ll
number-of-memchecks.ll Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
pointer-with-unknown-bounds.ll
pr31098.ll
resort-to-memchecks-only.ll
reverse-memcheck-bounds.ll [SCEV] Add explicit representations of umin/smin 2019-05-07 15:28:47 +00:00
safe-no-checks.ll
safe-with-dep-distance.ll
store-to-invariant-check1.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
store-to-invariant-check2.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
store-to-invariant-check3.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
stride-access-dependence.ll
underlying-objects-1.ll
underlying-objects-2.ll
unsafe-and-rt-checks.ll
wrapping-pointer-ni.ll [SCEV] Don't expand Wrap predicate using inttoptr in ni addrspaces 2018-07-26 21:55:06 +00:00
wrapping-pointer-versioning.ll [SCEV] Don't expand Wrap predicate using inttoptr in ni addrspaces 2018-07-26 21:55:06 +00:00