[PATCH] D148655: ValueTracking: Handle powi in computeKnownFPClass

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 19 01:47:31 PDT 2023


foad added inline comments.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4463
+
+        if (ExponentKnownBits.Zero.isOneBitSet(0)) { // Is even
+          Known.knownNot(KnownFPClass::OrderedLessThanZeroMask);
----------------
This is checking that bit 0 is the //only// bit known to be zero. I think you want `ExponentKnownBits.Zero[0]`.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4464
+        if (ExponentKnownBits.Zero.isOneBitSet(0)) { // Is even
+          Known.knownNot(KnownFPClass::OrderedLessThanZeroMask);
+          break;
----------------
I don't think the result can be -0 here either, can it?


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4479-4481
+        if (KnownSrc.cannotBeOrderedLessThanZero() &&
+            KnownSrc.isKnownNeverNegZero())
+          Known.knownNot(KnownFPClass::OrderedLessThanZeroMask);
----------------
I think this simplifies to:
```
  if (KnownSrc.isKnownNot(fcNegative))
    Known.knownNot(fcNegative);
```


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4484-4486
+      case Intrinsic::pow: {
+        break;
+      }
----------------
Remove this?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148655/new/

https://reviews.llvm.org/D148655



More information about the llvm-commits mailing list