We do not have register classes for all possible vector
sizes, so round it up for extract vector element.
Also fixes selection of G_MERGE_VALUES when vectors are
not a power of two.
This has required to refactor getRegSplitParts() in way
that it can handle not just power of two vectors.
Ideally we would like RegSplitParts to be generated by
tablegen.
The selector shouldn't be trying to fix these up. The selector should only see directly selectable vector sizes. We can either widen the vector sources in the legalizer, or add the missing register classes. It's also not valid to use G_MERGE_VALUES on vectors. You have to use G_BUILD_VECTOR or G_CONCAT_VECTORS depending on whether the source is scalar or vector