This patch enables us to peek through the shifted value if we don't demand all the bits/elts.
This is another step towards removing SelectionDAG::GetDemandedBits and just using TargetLowering::SimplifyMultipleUseDemandedBits.
There's a number of regressions that I'm still investigating, notably:
ARM's UXTB matching code DAGCombiner::MatchRotate is struggling as it only matches with legal types + operations X86 ends up splitting a funnel shift from another shift/lea
There a few cases where we end up with extra register moves which I think we can accept in exchange for the increased ILP.