Previously we used to return a bogus result, 0, for IR like `ashr %val,
-1`.
I've also added an assert checking that ComputeNumSignBits at least
returns 1. That assert found an already checked in test case where we
were returning a bad result for ashr %val, -1.
Fixes PR32045.
Should it be == or >= ?