[NARY-REASSOCIATE] Support reassociation of min/max
authorEvgeniy Brevnov <ybrevnov@azul.com>
Tue, 2 Mar 2021 08:14:32 +0000 (15:14 +0700)
committerEvgeniy Brevnov <ybrevnov@azul.com>
Fri, 2 Apr 2021 08:30:13 +0000 (15:30 +0700)
commit2388aae401dcb0903b1aa904d2f810fcf30edbfc
tree9e1bc1ad2f1a004eae94fc7f1d13ed5a62bbbc5e
parenta26f1bf67ec70f72e64101cf483b26466928fc38
[NARY-REASSOCIATE] Support reassociation of min/max

Support reassociation for min/max. With that we should be able to transform min(min(a, b), c) -> min(min(a, c), b) if min(a, c) is already available.

Reviewed By: mkazantsev, lebedev.ri

Differential Revision: https://reviews.llvm.org/D88287
llvm/include/llvm/IR/PatternMatch.h
llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
llvm/lib/Transforms/Scalar/NaryReassociate.cpp
llvm/test/Transforms/NaryReassociate/nary-smax.ll
llvm/test/Transforms/NaryReassociate/nary-smin.ll
llvm/test/Transforms/NaryReassociate/nary-umax.ll
llvm/test/Transforms/NaryReassociate/nary-umin.ll