Add a new version of fusion on tensors that supports the following scenarios:
- support fusion on all levels of the tile loop nest
- fuse a producer result passed in via tile loop iteration arguments (update the tile loop iteration arguments)
- supports only linalg operations on tensors
- supports only scf::for
- cannot add an output to the tile loop nest
The LinalgFusionOnTensors pass tries to fuse all producers of tiled ops.
Can we keep the same name between the pass and the string? i.e. def LinalgFuseTensorOps.