[llvm] [SelectionDAG] Add more cases for UDIV and SDIV (PR #86452)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 25 03:56:12 PDT 2024


================
@@ -979,7 +979,9 @@ KnownBits KnownBits::udiv(const KnownBits &LHS, const KnownBits &RHS,
   assert(!LHS.hasConflict() && !RHS.hasConflict());
   KnownBits Known(BitWidth);
 
-  if (LHS.isZero() || RHS.isZero()) {
+  // if LHS < RHS, then LHS / RHS is 0.
+  std::optional<bool> ult = KnownBits::ult(LHS, RHS);
+  if (LHS.isZero() || RHS.isZero() || (ult && *ult)) {
----------------
jayfoad wrote:

Please split this into a separate patch with unit test coverage.

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


More information about the llvm-commits mailing list