When trying to combine a DAG that builds a vector out of sign-extensions of vector extracts, the code assumes legal input types. Due to that, we have to disable this combine prior to legalization.
In some cases, the DAG will look slightly different after legalization so account for that in the matching code.
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=38087