def METHOD_NAME(cls, op):
    in_tensor = op.input
    splits = op.outputs
    axis = op.axis
    acc_shapes = np.cumsum([s.shape[axis] for s in splits])
    out_kws = [dict() for _ in splits]
    for i, split in enumerate(splits):
        slc = slice(0 if i == 0 else acc_shapes[i - 1], acc_shapes[i])
        new_s = yield from recursive_tile(in_tensor[(slice(None),) * axis + (slc,)])
        out_kws[i]["chunks"] = new_s.chunks
        out_kws[i]["nsplits"] = new_s.nsplits
        out_kws[i]["shape"] = split.shape
        out_kws[i]["order"] = op.outputs[i].order
    new_op = op.copy()
    return new_op.new_tensors(op.inputs, kws=out_kws, output_limit=len(out_kws))