diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-03-08 17:19:04 -0500 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-03-08 17:38:22 -0500 |
commit | 34d0d644ffa4a3282a03f6e47b5f420a09ff9848 (patch) | |
tree | 6808f8ce67118db180b39a1b3cc859cef830b795 /llvm/lib/Analysis/ValueTracking.cpp | |
parent | f7d73a6b9e8d6aad2039be1f6f42c9b3e012677f (diff) | |
download | llvm-34d0d644ffa4a3282a03f6e47b5f420a09ff9848.zip llvm-34d0d644ffa4a3282a03f6e47b5f420a09ff9848.tar.gz llvm-34d0d644ffa4a3282a03f6e47b5f420a09ff9848.tar.bz2 |
[ValueTracking] move/add helper to get inverse min/max; NFC
We will need to this functionality to improve min/max folds
in instcombine when we canonicalize to intrinsics.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 80f03d3..0a50718 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -5992,6 +5992,16 @@ SelectPatternFlavor llvm::getInverseMinMaxFlavor(SelectPatternFlavor SPF) { llvm_unreachable("unhandled!"); } +Intrinsic::ID llvm::getInverseMinMaxIntrinsic(Intrinsic::ID MinMaxID) { + switch (MinMaxID) { + case Intrinsic::smax: return Intrinsic::smin; + case Intrinsic::smin: return Intrinsic::smax; + case Intrinsic::umax: return Intrinsic::umin; + case Intrinsic::umin: return Intrinsic::umax; + default: llvm_unreachable("Unexpected intrinsic"); + } +} + CmpInst::Predicate llvm::getInverseMinMaxPred(SelectPatternFlavor SPF) { return getMinMaxPred(getInverseMinMaxFlavor(SPF)); } |