SCEVs ExprValueMap currently tracks not only which IR Values correspond to a given SCEV expression, but additionally stores that it may be expanded in the form X+Offset. In theory, this allows reusing existing IR Values in more cases.
In practice, this doesn't seem to be particularly useful (the test changes are rather underwhelming) and adds a good bit of complexity. Per https://github.com/llvm/llvm-project/issues/53905, we seems to have an invalidation issue with these offseted expressions.
So I was wondering whether this functionality it really worthwhile, and whether we would be better off dropping it entirely.
clang-format: please reformat the code