A build vector of two extracted elements is equivalent to an extract
subvector where the inner vector is any-extended to the
extract_vector_elt VT, because extract_vector_elt has the effect of an
any-extend.
(build_vector (extract_elt_i16_to_i32 vec Idx+0) (extract_elt_i16_to_i32 vec Idx+1)) => (extract_subvector (anyext_i16_to_i32 vec) Idx)
Depends on D130697
EXTRACT_SUBVECTOR has more stringent requires for it's index operand than EXTRACT_VECTOR_ELEMENT so you'll be better reconstructing it via getVectorIdxConstant.