[llvm] [InstSimplify] Optimize maximumnum and minimumnum (PR #139581)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon May 12 10:20:09 PDT 2025
================
@@ -6711,7 +6712,16 @@ Value *llvm::simplifyBinaryIntrinsic(Intrinsic::ID IID, Type *ReturnType,
case Intrinsic::maxnum:
case Intrinsic::minnum:
case Intrinsic::maximum:
- case Intrinsic::minimum: {
+ case Intrinsic::minimum:
+ case Intrinsic::maximumnum:
+ case Intrinsic::minimumnum: {
+ // In several cases here, we deviate from exact IEEE 754 semantics
+ // to enable optimizations (as allowed by the LLVM IR spec).
+ //
+ // For instance, we often return one of the arguments unmodified instead of
+ // inserting an llvm.canonicalize to transform input sNaNs into qNaNs or to
+ // respect any FTZ semantics, and sometimes assume all NaN inputs are qNaNs.
----------------
arsenm wrote:
Comment is a bit off; FTZ is explicitly non-standard. Maybe just state this may drop a canonicalize
https://github.com/llvm/llvm-project/pull/139581
More information about the llvm-commits
mailing list