[llvm-branch-commits] [llvm] [GlobalISel] Add computeNumSignBits for G_BUILD_VECTOR. (PR #139506)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon May 12 03:07:26 PDT 2025


================
@@ -874,6 +874,23 @@ unsigned GISelValueTracking::computeNumSignBits(Register R,
                                        SrcTy.getScalarSizeInBits());
     break;
   }
+  case TargetOpcode::G_BUILD_VECTOR: {
+    // Collect the known bits that are shared by every demanded vector element.
+    FirstAnswer = TyBits;
+    for (unsigned i = 0, e = MI.getNumOperands() - 1; i < e; ++i) {
+      if (!DemandedElts[i])
+        continue;
+
+      unsigned Tmp2 = computeNumSignBits(MI.getOperand(i + 1).getReg(),
+                                         APInt(1, 1), Depth + 1);
----------------
arsenm wrote:

Avoid constructing the APInt every iteration? 

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


More information about the llvm-branch-commits mailing list