This diff implements the progressive lowering of insert_strided_slice.
Two cases appear:
- when the source and dest vectors have different ranks, extract the dest
subvector at the proper offset and reduce to case 2.
- when they have the same rank N: a. if the source and dest type are the same, the insertion is trivial: just forward the source b. otherwise, iterate over all N-1 D subvectors and create an extract/insert_strided_slice/insert replacement, reducing the problem to vecotrs of the same N-1 rank.
This combines properly with the other conversion patterns to lower all the way to LLVM.
I think I have a helper function like this in VectorOps.cpp Need to unify these at some point.