[llvm] [GlobalISel] Add G_SUB for computeNumSignBits (PR #158384)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 19 05:50:04 PDT 2025


================
@@ -1976,6 +1976,41 @@ unsigned GISelValueTracking::computeNumSignBits(Register R,
 
     break;
   }
+  case TargetOpcode::G_SUB: {
+    Register Src2 = MI.getOperand(2).getReg();
+    unsigned Src2NumSignBits =
+        computeNumSignBits(Src2, DemandedElts, Depth + 1);
+    if (Src2NumSignBits == 1)
+      return 1; // Early out.
+
+    // Handle NEG.
+    Register Src1 = MI.getOperand(1).getReg();
+    KnownBits Known1 = getKnownBits(Src1, DemandedElts, Depth);
+    if (Known1.Zero.isAllOnes()) {
----------------
RKSimon wrote:

Just use `Known1.isZero()` for clarity?

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


More information about the llvm-commits mailing list