diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-12-04 09:18:49 -0500 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2022-12-20 12:52:59 -0500 |
commit | 41dd02e8575144e576e9ad111bbdc3f856c58445 (patch) | |
tree | 59c6cb904411e1b6831561dd532133c4d861ccbb /llvm/lib/Analysis/ValueTracking.cpp | |
parent | ef550ce36103aee83f289e09090b604672d823e3 (diff) | |
download | llvm-41dd02e8575144e576e9ad111bbdc3f856c58445.zip llvm-41dd02e8575144e576e9ad111bbdc3f856c58445.tar.gz llvm-41dd02e8575144e576e9ad111bbdc3f856c58445.tar.bz2 |
ValueTracking: Teach isKnownNeverInfinity about min/max functions
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index c25506e..4181831 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -3822,6 +3822,12 @@ bool llvm::isKnownNeverInfinity(const Value *V, const TargetLibraryInfo *TLI, case Intrinsic::fptrunc_round: // Requires knowing the value range. return false; + case Intrinsic::minnum: + case Intrinsic::maxnum: + case Intrinsic::minimum: + case Intrinsic::maximum: + return isKnownNeverInfinity(Inst->getOperand(0), TLI, Depth + 1) && + isKnownNeverInfinity(Inst->getOperand(1), TLI, Depth + 1); default: break; } |