[llvm] ValueTracking: Handle tracking nan through powi (PR #179311)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 5 06:33:37 PST 2026
================
@@ -675,9 +675,21 @@ KnownFPClass KnownFPClass::ldexp(const KnownFPClass &KnownSrc,
return Known;
}
+// TODO: Detect no-infinity cases
KnownFPClass KnownFPClass::powi(const KnownFPClass &KnownSrc,
const KnownBits &ExponentKnownBits) {
KnownFPClass Known;
+ Known.propagateNaN(KnownSrc);
+
+ if (ExponentKnownBits.isZero()) {
+ // powi(QNaN, 0) returns 1.0, and powi(SNaN, 0) may non-deterministically
+ // return 1.0 or a NaN.
+ FPClassTest PossibleVals =
+ KnownSrc.isKnownNever(fcSNan) ? fcPosNormal | fcNan : fcPosNormal;
----------------
arsenm wrote:
This was right the first time
https://github.com/llvm/llvm-project/pull/179311
More information about the llvm-commits
mailing list