This integrates the scalar integer analysis recently added to MLIR
into the SCCP pass, allowing for more substantial constant
propagation (as values that can be logically proven constant will be
made constant) in a way that mirrors LLVM's SCCP pass, and eliminating
the need for a test pass.
A motivating example for the new logic is the comparison
operations (and their associated selects) emitted by
expandAffineMap() for the modulus operator, which can be substantially
in the presence of proof that the input to the modulus argument is
non-negative.
Depends on D124022
rangeAnalysis.run(op)?