[PATCH] D148230: ValueTracking: fadd +0 cannot return -0

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 21 03:55:09 PDT 2023


foad added inline comments.


================
Comment at: llvm/include/llvm/Analysis/ValueTracking.h:281
+  /// Return true if it's known this can never be a positive subnormal
+  bool isKnownNeverPosSubnormal() const {
+    return isKnownNever(fcPosSubnormal);
----------------
Matter of taste I guess, but I don't think a helper function this simple actually helps.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:3936
   return isKnownNeverNegZero() &&
          (isKnownNeverNegSubnormal() || inputDenormalIsIEEE(F, Ty));
 }
----------------
Could use inputDenormalIsIEEEOrPosZero here.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:3943
+  return isKnownNeverPosZero() &&
+         (isKnownNeverSubnormal() || inputDenormalIsIEEEOrPosZero(F, Ty));
+}
----------------
This doesn't work. If denormal mode is PosZero then a denormal can be flushed to +0, so this function should return false.


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

https://reviews.llvm.org/D148230



More information about the llvm-commits mailing list