Split out from D61692 per @RKSimon's suggestion. Vector op legalization will automatically recursively legalize the returned SDValue, but we need to take care of the other results ourselves. Otherwise it will end up getting legalized only during op legalization, by which point it might be too late (though I'm not aware of any specific cases right now).
There are codegen differences because expansion occurs earlier now and we don't get a DAGCombiner run in between.