[DropAssumes] Drop dereferenceable assumptions after vectorization. (#166947)
This patch adds another run of DropUnnecessaryAssumes after
vectorization, to clean up assumes that are not longer needed after this
point.
The main example of such an assume is currently dereferenceable
assumptions. This complements
https://github.com/llvm/llvm-project/pull/166945, which avoids sinking
code if it would mean remove a dereferenceable assumption.
There are a few additional cases where some unneeded assumes are left
over after vectorization that also get cleaned up.
The main motivation is to work together with
https://github.com/llvm/llvm-project/pull/166945, but there may be a
better solution.
Adding another instance of this pass to the pipeline is not great, but
compile-time impact seems in the noise:
https://llvm-compile-time-tracker.com/compare.php?from=55e71fe08b6406ec7ce2c81ce042e48717acf204&to=85da4ee3a74126f557cdc74c7b40e048dacb3fc4&stat=instructions:u
PR: https://github.com/llvm/llvm-project/pull/166947