This patch implements legalization of EXTRACT_SUBVECTOR for the case
where the result needs promoting, and the input type is either legal
or requires splitting.
The idea is that the operation is broken down into simpler steps,
by first extracting a smaller subvector until the input vector
becomes legal or requires promotion.
It would not be best if NElts and IdxVal be the same type?
Both should be unsigned or uint64_t.
In the same topic, why getZExtValue the index?