If we have:
(X & (-1 << Y)) outer>> Y
Or non-canonical
((X inner>> Y) << Y) outer>> Y
The mask is redundant, and can be dropped:
X outer>> Y
This is valid for both lshr and ashr` in both positions and any combination.
https://rise4fun.com/Alive/Vf1p
We must not preserve exact:
https://rise4fun.com/Alive/DYq
https://rise4fun.com/Alive/JXjy
Should fix PR42456