================
@@ -5749,12 +5743,39 @@ void computeKnownFPClass(const Value *V, const APInt
&DemandedElts,
Known.knownNot(fcSubnormal);
}
- if (!KnownRHS.isKnownNeverNaN())
- break;
-
- computeKnownFPClass(Op->getOperand(0), DemandedElts, NeedForNan, KnownLHS,
+ computeKnownFPClass(Op->getOperand(0), DemandedElts, fcAllFlags, KnownLHS,
Q, Depth + 1);
- if (!KnownLHS.isKnownNeverNaN())
+
+ // xor sign bit.
+ if ((KnownLHS.isKnownNever(fcNegative) &&
+ KnownRHS.isKnownNever(fcNegative)) ||
+ (KnownLHS.isKnownNever(fcPositive) &&
+ KnownRHS.isKnownNever(fcPositive)))
+ Known.knownNot(fcNegative);
+
+ if ((KnownLHS.isKnownAlways(fcNegative | fcNan) &&
+ KnownRHS.isKnownNever(fcNegative)) ||
+ (KnownLHS.isKnownNever(fcNegative) &&
+ KnownRHS.isKnownAlways(fcNegative | fcNan)))
+ Known.knownNot(fcPositive);
+
+ // inf * anything => inf or nan
+ if (KnownLHS.isKnownAlways(fcInf) || KnownRHS.isKnownAlways(fcInf))
----------------
dtcxzyw wrote:
```suggestion
if (KnownLHS.isKnownAlways(fcInf | fcNan) || KnownRHS.isKnownAlways(fcInf |
fcNan))
```
https://github.com/llvm/llvm-project/pull/173247
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits