[llvm] [DAG] - computeKnownFPClass - ISD::FMAXIMUM/ISD::FMINIMUM + ISD::FMAXIMUMNUM/ISD::FMINIMUMNUM (PR #190465)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 17 11:53:22 PDT 2026


================
@@ -6026,10 +6026,43 @@ KnownFPClass SelectionDAG::computeKnownFPClass(SDValue Op,
   return computeKnownFPClass(Op, DemandedElts, InterestedClasses, Depth);
 }
 
+static KnownFPClass::MinMaxKind getMinMaxKindForFPOpcode(unsigned Opcode) {
+  switch (Opcode) {
+  case ISD::FMAXNUM:
+    return KnownFPClass::MinMaxKind::maxnum;
+  case ISD::FMINNUM:
+    return KnownFPClass::MinMaxKind::minnum;
+  case ISD::FMAXIMUM:
+    return KnownFPClass::MinMaxKind::maximum;
+  case ISD::FMINIMUM:
+    return KnownFPClass::MinMaxKind::minimum;
+  case ISD::FMAXIMUMNUM:
+    return KnownFPClass::MinMaxKind::maximumnum;
+  case ISD::FMINIMUMNUM:
+    return KnownFPClass::MinMaxKind::minimumnum;
+  default:
+    llvm_unreachable("Illegal FP min/max opcode");
+  }
+}
+
 KnownFPClass SelectionDAG::computeKnownFPClass(SDValue Op,
                                                const APInt &DemandedElts,
                                                FPClassTest InterestedClasses,
                                                unsigned Depth) const {
+
+  auto GetMinMaxKnownFPClass = [&](SDValue LHS, SDValue RHS,
----------------
arsenm wrote:

This should still just be inlined directly into the switch, it has a single use 

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


More information about the llvm-commits mailing list