[llvm] [DAG] computeKnownFPClass - add ISD::SINT_TO_FP/UINT_TO_FP handling (PR #190539)

Max Graey via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 5 13:36:00 PDT 2026


================
@@ -6082,6 +6082,14 @@ KnownFPClass SelectionDAG::computeKnownFPClass(SDValue Op,
     Known = computeKnownFPClass(Op.getOperand(0), InterestedClasses, Depth + 1);
     break;
   }
+  case ISD::SINT_TO_FP:
+  case ISD::UINT_TO_FP: {
+    Known.knownNot(fcNan);
+
+    if (Opcode == ISD::UINT_TO_FP)
+      Known.knownNot(fcNegative);
+    break;
+  }
----------------
MaxGraey wrote:

How about somethin like this?
```suggestion
  case ISD::SINT_TO_FP:
  case ISD::UINT_TO_FP: {
    Known.knownNot(fcNan | fcNegZero | fcSubnormal);
    if (Opcode == ISD::UINT_TO_FP) {
      Known.knownNot(fcNegative);
      break;
    }
    KnownBits KnownSrc = 
        computeKnownBits(Op.getOperand(0), DemandedElts, Depth + 1);
    if (KnownSrc.isNonNegative())
      Known.knownNot(fcNegative);
    if (KnownSrc.isZero())
      Known.known(fcZero);
    else if (KnownSrc.isNonZero())
      Known.knownNot(fcZero);
    break;
  }
```

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


More information about the llvm-commits mailing list