This patch adds an interface, named AggregatedOpInterface, that decomposes complex operations into simpler ones.
This is WIP because I was wondering how we want to connect this, e.g., regular pass, transform dialect, etc.
To demonstrate the e2e use case, I went with a new the transform dialect op but it would have made sense to reuse the decompose one (albeit it won't work out of the box because that one only support linalg interfaces). I'm guessing we want to express the convolution decomposition in terms of interfaces as well. Anyhow, this is all up for discussion :).
I am sorry, I already polluted this name with the existing "decompose" op which actually does not in the same way.
We could rename the existing decompose as downscale_to_1d or something similar and you'd have the name for this more apt transformation you are adding.
This is fine for now, we can do the cleanup as a followup, but that should assuage your comment about reuse the decompose one (albeit it won't work out of the box because that one only support linalg interfaces) -> it is a different transform.