[llvm-branch-commits] [llvm] ValueTracking: Improve handling for fma/fmuladd (PR #175614)

Yingwei Zheng via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jan 13 08:50:45 PST 2026


================
@@ -332,6 +332,19 @@ KnownFPClass KnownFPClass::fmul(const KnownFPClass &KnownLHS,
   return Known;
 }
 
+KnownFPClass KnownFPClass::fma(const KnownFPClass &KnownLHS,
+                               const KnownFPClass &KnownRHS,
+                               const KnownFPClass &KnownAddend,
+                               DenormalMode Mode) {
+  return fadd(fmul(KnownLHS, KnownRHS, Mode), KnownAddend, Mode);
----------------
dtcxzyw wrote:

Does it really work for fused-mul-add? I cannot prove/disprove this. I'd suggest passing DenormalMode::Dynamic() to fmul/square since fma doesn't round the intermediate result (I assume FTZ/DAZ don't apply either).

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


More information about the llvm-branch-commits mailing list