[llvm] [InstCombine] Generalize ignoreSignBitOfZero/NaN to handle more cases (PR #141015)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu May 22 09:15:57 PDT 2025


================
@@ -2844,7 +2845,11 @@ static Instruction *foldSelectWithFCmpToFabs(SelectInst &SI,
     // Note: We require "nnan" for this fold because fcmp ignores the signbit
     //       of NAN, but IEEE-754 specifies the signbit of NAN values with
     //       fneg/fabs operations.
-    if (!ignoreSignBitOfZero(SI) || !ignoreSignBitOfNaN(SI))
+    if (!SI.hasNoSignedZeros() &&
+        !(SI.hasOneUse() && ignoreSignBitOfZero(*SI.use_begin())))
----------------
arsenm wrote:

```suggestion
        (!SI.hasOneUse() | !ignoreSignBitOfZero(*SI.use_begin())))
```

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


More information about the llvm-commits mailing list