[llvm] [GlobalISel] Port computeNumSignBits for G_MUL (PR #167311)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 10 19:58:39 PST 2025
================
@@ -2084,6 +2085,41 @@ unsigned GISelValueTracking::computeNumSignBits(Register R,
FirstAnswer = std::min(Src1NumSignBits, Src2NumSignBits) - 1;
break;
}
+ case TargetOpcode::G_MUL: {
+ Register Src1 = MI.getOperand(1).getReg();
+ Register Src2 = MI.getOperand(2).getReg();
+
+ KnownBits Known1 = getKnownBits(Src1, DemandedElts, Depth + 1);
+ KnownBits Known2 = getKnownBits(Src2, DemandedElts, Depth + 1);
+
+ if (Known1.isZero() || Known2.isZero())
+ return TyBits;
----------------
arsenm wrote:
I don't think you need to call getKnownBits at all here. The DAG version doesn't. 0 also shouldn't need a special case
https://github.com/llvm/llvm-project/pull/167311
More information about the llvm-commits
mailing list