InstCombine may fold a left shift over a not (xor by -1).
This patch teaches ScalarEvolution to detect such patterns, creating
a SCEV based on the reverse fold. Without this patch the instcombine
rewrite could lead to missed oppurtunities later in the pipeline
due to not being able to calculate a SCEV for the xor.
An alternative solution could be to modify InstCombine (e.g. in
canShiftBinOpWithConstantRHS) to avoid the fold that creates the
xor that isn't recognized by ScalarEvolution.
clang-format not found in user's PATH; not linting file.