[llvm] [SelectionDAGBuilder] Remove NoNaNsFPMath uses (PR #169904)

via llvm-commits llvm-commits at lists.llvm.org
Sat Jan 3 04:46:10 PST 2026


================
@@ -6775,10 +6778,14 @@ static SDValue foldAndOrOfSETCC(SDNode *LogicOp, SelectionDAG &DAG) {
           NewOpcode = IsSigned ? ISD::SMAX : ISD::UMAX;
       } else if (OpVT.isFloatingPoint())
         NewOpcode = getMinMaxOpcodeForCompareFold(
-            Operand1, Operand2, CC, LogicOp->getOpcode(), DAG,
-            isFMAXNUMFMINNUM_IEEE, isFMAXNUMFMINNUM);
+            Operand1, Operand2,
+            LHSSetCCFlags.hasNoNaNs() && RHSSetCCFlags.hasNoNaNs(), CC,
+            LogicOp->getOpcode(), DAG, isFMAXNUMFMINNUM_IEEE, isFMAXNUMFMINNUM);
 
       if (NewOpcode != ISD::DELETED_NODE) {
+        // Propagate fast-math flags from setcc.
+        SelectionDAG::FlagInserter FlagInserter(DAG, LHS->getFlags() &
----------------
paperchalice wrote:

Unfortunately `getSetCC` doesn't support `SDNodeFlags`.

https://github.com/llvm/llvm-project/pull/169904


More information about the llvm-commits mailing list