The attached patch teaches ComputeNumSignBits that when a number is divided by a positive constant then the top floor(log(n)) bits are identical.
I think this result can become larger than the bitwidth if your numerator is very small and your denominator is very large.
Arithmetically, the result of such a division would be zero but we might not have simplified it yet.
An example of this would be
%and = and i32 %x, 1
The number of sign bits in %and is 31 and they are all zero.