code: def _lstm_cudnn_allow_tf32(precision: lax.PrecisionLike) -> bool:
      # the logic from canonicalize_precision that we require here boils down to:
      #
      #   if precision is None and config.jax_default_matmul_precision is not None:
      #     precision = Precision(config.jax_default_matmul_precision)
      #   else:
      #     precision = None
      #
      # but we prefer to still invoke it here for consistency
      precision = lax.canonicalize_precision(precision)
      if precision is None:
          return True
      # cuDNN allows only one precision specifier per RNN op
      precision, _ = precision
      if precision == lax.Precision.HIGHEST:
          return False
      elif precision == lax.Precision.HIGH:
          return True
      elif precision == lax.Precision.DEFAULT:  # bfloat16
          raise NotImplementedError(
              "bfloat16 support not implemented for LSTM"
          )
      else:
          raise ValueError(
              f"Unexpected precision specifier value {precision}"
          )
  
imports: from functools import partial
  import math
  from typing import Any
  import jax
  import numpy
  from jax._src import core
  from jax.interpreters import mlir
  from jax.interpreters import xla
  from jax._src.custom_derivatives import custom_vjp
  from jax._src.typing import Array, Shape
  from jax._src.lax import lax
  import jax.numpy
label_desc: Use image node_id 9 for calling a global function with example usage: _lstm_cudnn_allow_tf32(precision) and returns: True, False, True