This modelling isn't precise, much like the baseline shl() modelling,
so only conservative-correctness exaustive tests are performed.
Also, pending resolution of disscussion in D70043 whether or not
we should bother to ensure production of empty-set ranges for all-overflow inputs i've gone ahead with presumption that we will want that.
So all in all this is pretty similar to ConstantRange::mulWithNoWrap() modelling in D70043.