def METHOD_NAME(input: Store, axis: int) -> Store:
    """
    Sum values along the chosen axis
    Parameters
    ----------
    input : Store
        Input to sum
    axis : int
        Axis along which the summation should be done
    Returns
    -------
    Store
        Summation result
    """
    sanitized = _sanitize_axis(axis, input.ndim)
    # Compute the output shape by removing the axis being summed over
    res_shape = tuple(
        ext for dim, ext in enumerate(input.shape) if dim != sanitized
    )
    result = context.create_store(input.type, res_shape)
    np.asarray(result).fill(0)
    # Broadcast the output along the contracting dimension
    promoted = result.promote(axis, input.shape[axis])
    assert promoted.shape == input.shape
    task = context.create_auto_task(OpCode.SUM_OVER_AXIS)
    task.add_input(input)
    task.add_reduction(promoted, ty.ReductionOp.ADD)
    task.add_alignment(input, promoted)
    task.execute()
    return result