[llvm] [llvm] FloatingPointPredicateUtils declare template specializations (PR #141368)

Tim Gymnich via llvm-commits llvm-commits at lists.llvm.org
Sat May 24 13:16:22 PDT 2025


https://github.com/tgymnich created https://github.com/llvm/llvm-project/pull/141368

None

>From cfa098f336e4dec8d54733746b59ba572b9c6d5f Mon Sep 17 00:00:00 2001
From: Tim Gymnich <tim at gymni.ch>
Date: Sat, 24 May 2025 22:13:15 +0200
Subject: [PATCH] [llvm] FloatingPointPredicateUtils declare template
 specializations

---
 .../llvm/Analysis/FloatingPointPredicateUtils.h     | 12 ++++++++++++
 .../GlobalISel/MachineFloatingPointPredicateUtils.h | 13 +++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h b/llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
index c1824950b55c4..ea48de5974170 100644
--- a/llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
+++ b/llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
@@ -17,6 +17,18 @@ namespace llvm {
 using FloatingPointPredicateUtils =
     GenericFloatingPointPredicateUtils<SSAContext>;
 
+template <>
+DenormalMode FloatingPointPredicateUtils::queryDenormalMode(const Function &F,
+                                                            Value *Val);
+
+template <>
+bool FloatingPointPredicateUtils::lookThroughFAbs(const Function &F, Value *LHS,
+                                                  Value *&Src);
+
+template <>
+std::optional<APFloat>
+FloatingPointPredicateUtils::matchConstantFloat(const Function &F, Value *Val);
+
 /// Returns a pair of values, which if passed to llvm.is.fpclass, returns the
 /// same result as an fcmp with the given operands.
 ///
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h b/llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h
index d3a31165bb63e..26910978fa8c8 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h
@@ -17,6 +17,19 @@ namespace llvm {
 using MachineFloatingPointPredicateUtils =
     GenericFloatingPointPredicateUtils<MachineSSAContext>;
 
+template <>
+DenormalMode
+MachineFloatingPointPredicateUtils::queryDenormalMode(const MachineFunction &MF,
+                                                      Register Val);
+
+template <>
+bool MachineFloatingPointPredicateUtils::lookThroughFAbs(
+    const MachineFunction &MF, Register LHS, Register &Src);
+
+template <>
+std::optional<APFloat> MachineFloatingPointPredicateUtils::matchConstantFloat(
+    const MachineFunction &MF, Register Val);
+
 /// Compute the possible floating-point classes that \p LHS could be based on
 /// fcmp \Pred \p LHS, \p RHS.
 ///



More information about the llvm-commits mailing list