shuffle (ins ?, X, C1), (ins ?, Y, C2), Mask --> concat X, Y
This is another shuffle problem seen with PR42024:
https://bugs.llvm.org/show_bug.cgi?id=42024
We have this small crack in legalization/lowering/combining/demanded that allows forming a vperm2f128 of high halves with AVX1 when we could do better by peeking through the insert_subvector nodes. AFAICT, it requires IR as shown in the diffs - much larger than legal vectors - to avoid all of the usual folds.
Another option might be to allow forming the 256-bit vperm here and then doing custom shuffle combining on that opcode.