I have long complained that while we have exhaustive tests
for ConstantRange, they are, uh, not good.
The approach of groking our own constant range
via exhaustive enumeration is, mysterious.
It neither tells us without doubt that the result is
conservatively correct, nor the precise match to the ConstantRange
result tells us that the result is precise.
But yeah, it's fast, i give it that.
In short, there are three things that we need to check:
- That ConstantRange result is conservatively correct
- That ConstantRange range is reasonable
- That ConstantRange result is reasonably precise
So let's not just check the middle one, but all three.
This provides precision test coverage for D88178.
clang-tidy: warning: invalid case style for function 'GetNumValuesInConstantRange' [readability-identifier-naming]
not useful