message: Support negative axis for tf.signal.fftshift
  This PR tries to address the issue raised in 38172 where
  negative axis is not supported for tf.signal.fftshift
  This PR use tf.where to adjust the axis when it is less than zero.
  This PR fixes 38172.
diff: @@ -398,6 +398,9 @@ def fftshift(x, axes=None, name=None):
  elif isinstance(axes, int):
  shift = _array_ops.shape(x)[axes] // 2
  else:
  + rank = _array_ops.rank(x)
  + # allows negative axis
  + axes = _array_ops.where(_math_ops.less(axes, 0), axes + rank, axes)
  shift = _array_ops.gather(_array_ops.shape(x), axes) // 2
  return manip_ops.roll(x, shift, axes, name)
  