[llvm] [ValueTracking] Fix assertion failure when `computeKnownFPClass` returns fcNone (PR #92355)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu May 16 01:14:14 PDT 2024
================
@@ -1126,8 +1126,13 @@ static void computeKnownBitsFromOperator(const Operator *I,
KnownFPClass Result = computeKnownFPClass(V, fcAllFlags, Depth + 1, Q);
FPClassTest FPClasses = Result.KnownFPClasses;
- if (FPClasses != fcNone &&
- Result.isKnownNever(fcNormal | fcSubnormal | fcNan)) {
+ // Treat it as zero if the use of I is unreachable.
+ if (FPClasses == fcNone) {
+ Known.setAllZero();
+ break;
+ }
----------------
arsenm wrote:
It's probably OK as long as we handle undef correctly inside computeKnownFPClass, the contradictory paths implies UB happened somewhere
https://github.com/llvm/llvm-project/pull/92355
More information about the llvm-commits
mailing list