code: def ifftshift(x, axes=None):
      """The inverse of :meth:`fftshift`.
  
      Args:
          x (cupy.ndarray): Input array.
          axes (int or tuple of ints): Axes over which to shift. Default is
              ``None``, which shifts all axes.
  
      Returns:
          cupy.ndarray: The shifted array.
  
      .. seealso:: :func:`numpy.fft.ifftshift`
      """
      x = cupy.asarray(x)
      if axes is None:
          axes = list(range(x.ndim))
      elif isinstance(axes, np.compat.integer_types):
          axes = (axes,)
      return cupy.roll(
          x, [-(x.shape[axis] // 2) for axis in axes], axes
      )
  
imports: import functools
  import math
  import numpy
  import cupy
  from cupy.fft import config
  from cupy.fft._cache import get_plan_cache
label_desc: Use image node_id 34 for calling a global function with example usage: ifftshift(x, axes) and returns: cupy