[llvm] expandFMINIMUM_FMAXIMUM: FMAXNUM/FMINNUM treat +0>-0 (PR #137367)

YunQiang Su via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 18:22:03 PST 2025


================
@@ -8745,15 +8745,14 @@ SDValue TargetLowering::expandFMINIMUM_FMAXIMUM(SDNode *N,
   unsigned CompOpcIeee = IsMax ? ISD::FMAXNUM_IEEE : ISD::FMINNUM_IEEE;
   unsigned CompOpc = IsMax ? ISD::FMAXNUM : ISD::FMINNUM;
 
-  // FIXME: We should probably define fminnum/fmaxnum variants with correct
-  // signed zero behavior.
   bool MinMaxMustRespectOrderedZero = false;
 
   if (isOperationLegalOrCustom(CompOpcIeee, VT)) {
     MinMax = DAG.getNode(CompOpcIeee, DL, VT, LHS, RHS, Flags);
     MinMaxMustRespectOrderedZero = true;
   } else if (isOperationLegalOrCustom(CompOpc, VT)) {
     MinMax = DAG.getNode(CompOpc, DL, VT, LHS, RHS, Flags);
+    MinMaxMustRespectOrderedZero = true;
----------------
wzssyqa wrote:

This flag is used to skip ordering of +0 vs -0, as they are ordered if `isOperationLegalOrCustom(FMAXNUM_IEEE|FMAXNUM)`.

Maybe we need reword this flag to `isZeroOrdered`.

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


More information about the llvm-commits mailing list