[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 17 06:35:27 PDT 2026


================
@@ -5727,6 +5727,42 @@ 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 DstSemantics =
+          II->getType()->getScalarType()->getFltSemantics();
+
+      if (!APFloat::semanticsHasNaN(SrcSemantics))
+        Known.knownNot(fcNan);
+      if (!APFloat::semanticsHasInf(SrcSemantics) &&
----------------
arsenm wrote:

Maybe worth commenting on the isRepresentableBy check

https://github.com/llvm/llvm-project/pull/208585


More information about the llvm-commits mailing list