[llvm] DAG: Skip 0 sign handling in minimum/maximum lowering for _ieee case (PR #91326)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed May 8 09:36:42 PDT 2024


================
@@ -8400,8 +8400,14 @@ SDValue TargetLowering::expandFMINIMUM_FMAXIMUM(SDNode *N,
   SDValue MinMax;
   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
----------------
arsenm wrote:

I mean where -0 is definitely ordered less than +0. I mean add even more opcode variants. Really what we should have is:

fmin/fmax = libm behavior, uncertain signed zero handling and no sNaN quieting
minnum_ieee_2008 = ieee behavior, uncertain signed zero handling and inverted sNaN handling 
minnum_ieee_2019 = ieee behavior, certain signed zero handling with inverted sNaN handling

<something I don't know what to call> = fmin snan handling with defined signed zero handling. This is the case the comment most directly refers to 



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


More information about the llvm-commits mailing list