[SCEV] Handle uge/ugt predicates in applyLoopGuards()
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 23 Apr 2021 20:02:27 +0000 (22:02 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 27 Apr 2021 20:41:05 +0000 (22:41 +0200)
commite45168c4fa7debe61ec0fdb6ddae347e18477d37
tree15221dedb087c97d36ef2c249c8009c074fe310f
parent1c0ab3411a7067d301ebf0315736ecf8945cb321
[SCEV] Handle uge/ugt predicates in applyLoopGuards()

These can be handled the same way as ule/ult, just using umax
instead of umin. This is useful in cases where the umax prevents
the upper bound from overflowing.

Differential Revision: https://reviews.llvm.org/D101196
llvm/lib/Analysis/ScalarEvolution.cpp
llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll