DAG: Handle odd vector sizes in calling conv splitting
This already worked if only one register piece was used,
but didn't if a type was split into multiple, unequal
Fixes not splitting 3i16/v3f16 into two registers for
This will also allow fixing the ABI for 16-bit vectors
in a future commit so that it's the same for all subtargets.