This patch add cost model support for the new llvm.experimental.vector.{extract,insert} intrinsics, using the existing getExtractSubvectorOverhead/getInsertSubvectorOverhead functions for shuffles.
Previously this case would throw an assertion.
Depends on D92094
llvm.experimental.vector.extract can also extract a scalable from a scalable -- should we also change this FixedVectorType to VectorType too?
I suppose this cost model breaks down a bit when we're extracting/inserting a scalable into a scalable, since we don't know how many elements we have to 'work on'. But I think that it might be possible for this code to crash in the same way as before if we don't address this case.