[PATCH] D147864: ValueTracking: Address todo for nan fmul handling in computeKnownFPClass
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 11 04:31:05 PDT 2023
nikic added inline comments.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4472
// Zero multiplied with infinity produces NaN.
- // FIXME: If neither side can be zero fmul never produces NaN.
- if (KnownLHS.isKnownNeverNaN() && KnownLHS.isKnownNeverInfinity())
+ // If neither side can be zero (or nan) fmul never produces NaN.
+ if ((KnownLHS.isKnownNeverInfinity() || KnownLHS.isKnownNeverZero()) &&
----------------
Add TODO to check correct pairs? E.g. `nofpclass(inf nan zero) fmul nofpclass(nan)` should be fine, right? We need inf on one side and zero on the other.
Also, can you please remind me what happens if we multiply a denormal with flush to zero semantics with inf? Does that become inf or nan?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147864/new/
https://reviews.llvm.org/D147864
More information about the llvm-commits
mailing list