We had been deferring to BasicTTI, and BasicTTI doesn't handle this correctly. It blindly returns a cost of 1 for each extract and insert. The net effect of this was that illegal build and explode vectors looked oddly cheap compared to their legal sub types.
Noticed this while playing around with SLP and -riscv-v-fixed-length-vector-lmul-max, but I don't believe this impacts default SLP codegen.
This probably should be sunk into BasicTTI. I even intend to try to do so after this lands, I just wanted to get the target specific test changes in first. The sinking into BasicTTI will be easier if it's NFC.