[llvm] [Analysis] Adding convert_from_arbitrary_fp support in computeKnownFPClass. (PR #208585)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 10 09:12:47 PDT 2026
================
@@ -5709,6 +5709,36 @@ void computeKnownFPClass(const Value *V, const APInt &DemandedElts,
Known.knownNot(fcNan | fcInf | fcNegative);
break;
}
+ case Intrinsic::convert_from_arbitrary_fp: {
+ auto *MD = cast<MetadataAsValue>(II->getArgOperand(1))->getMetadata();
+ StringRef FormatStr = cast<MDString>(MD)->getString();
+ const fltSemantics *SrcSemanticsPtr =
+ APFloat::getArbitraryFPSemantics(FormatStr);
+ if (!SrcSemanticsPtr)
+ break;
+
+ const fltSemantics SrcSemantics = *SrcSemanticsPtr;
+ const fltSemantics DestSemantics = II->getType()->getFltSemantics();
+
+ int SrcMaxExp = APFloat::semanticsMaxExponent(SrcSemantics);
+ int DestMaxExp = APFloat::semanticsMaxExponent(DestSemantics);
+
+ if (!APFloat::semanticsHasInf(SrcSemantics) && (SrcMaxExp <= DestMaxExp))
----------------
arsenm wrote:
Not sure why you need the exponent check here?
https://github.com/llvm/llvm-project/pull/208585
More information about the llvm-commits
mailing list