[NFCI][IR] ConstantRangeTest: add basic scaffolding for next-gen precision/correctnes...
authorRoman Lebedev <lebedev.ri@gmail.com>
Thu, 24 Sep 2020 21:30:54 +0000 (00:30 +0300)
committerRoman Lebedev <lebedev.ri@gmail.com>
Thu, 24 Sep 2020 21:36:42 +0000 (00:36 +0300)
commit9bcf7b1c7a139a455400df109d81c638b9e75150
tree7be7d77a0e8fa64b7e0db77ccf20e17a371bbea5
parent31177949cb1d88d7dd32078d09a265b828d40826
[NFCI][IR] ConstantRangeTest: add basic scaffolding for next-gen precision/correctness testing

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:
1. That ConstantRange result is conservatively correct
2. That ConstantRange range is reasonable
3. 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.
llvm/unittests/IR/ConstantRangeTest.cpp