code: def cummin(
      x: paddle.Tensor,
      /,
      *,
      axis: int = 0,
      exclusive: bool = False,
      reverse: bool = False,
      dtype: Optional[paddle.dtype] = None,
      out: Optional[paddle.Tensor] = None,
  ) -> paddle.Tensor:
      dtype = dtype if dtype is not None else x.dtype
      if reverse:
          x = paddle.flip(x, axis=[axis])
      x_unstacked = paddle.unbind(x, axis=axis)
      cummin_x_unstacked = []
      cummin_x_unstacked.append(x_unstacked[0])
      for i, x_sub in enumerate(x_unstacked[1:]):
          cummin_x_sub = paddle.minimum(cummin_x_unstacked[i], x_sub)
          cummin_x_unstacked.append(cummin_x_sub)
      cummin_x = paddle.stack(cummin_x_unstacked, axis=axis)
      if reverse:
          cummin_x = paddle.flip(cummin_x, axis=[axis])
      return cummin_x.cast(dtype)
  
imports: from typing import Optional, Union, Tuple, Sequence, Any
  import paddle
  import ivy.functional.backends.paddle
  import ivy
  from copy import deepcopy
  from ivy.func_wrapper import with_unsupported_device_and_dtypes, with_supported_dtypes
  from .None import backend_version
label_desc: Use image node_id 22 for calling a global function with example usage: cummin() and returns: cummin_x