[llvm] SelectionDAG/expandFMINIMUMNUM_FMAXIMUMNUM: FCANONICALIZE is needed only for sNaN (PR #108180)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 11 03:00:05 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-selectiondag
Author: YunQiang Su (wzssyqa)
<details>
<summary>Changes</summary>
If we are sure that it is not sNaN, even it may be qNaN, we can use it directly.
---
Full diff: https://github.com/llvm/llvm-project/pull/108180.diff
1 Files Affected:
- (modified) llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (+2-2)
``````````diff
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 03010c1df00145..042661af1c8f96 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -8614,8 +8614,8 @@ SDValue TargetLowering::expandFMINIMUMNUM_FMAXIMUMNUM(SDNode *Node,
SDValue MinMax =
DAG.getSelectCC(DL, LHS, RHS, LHS, RHS, IsMax ? ISD::SETGT : ISD::SETLT);
// If MinMax is NaN, let's quiet it.
- if (!Flags.hasNoNaNs() && !DAG.isKnownNeverNaN(LHS) &&
- !DAG.isKnownNeverNaN(RHS)) {
+ if (!Flags.hasNoNaNs() && !DAG.isKnownNeverSNaN(LHS) &&
+ !DAG.isKnownNeverSNaN(RHS)) {
MinMax = DAG.getNode(ISD::FCANONICALIZE, DL, VT, MinMax, Flags);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/108180
More information about the llvm-commits
mailing list