code: def glu(a: TensorLikeType, dim: int = -1) -> TensorLikeType:
      dim = utils.canonicalize_dims(a.ndim, dim)
      torch._check(
          a.shape[dim] % 2 == 0,
          lambda: f"Halving dimension must be even, but dimension {dim} is size {a.shape[dim]}",
      )
      b, c = torch.tensor_split(a, 2, dim)
  
      return b * torch.sigmoid(c)
  
imports: import math
  from functools import wraps
  from typing import Callable, Optional, Union
  import torch
  import torch._prims
  import torch._prims_common
  import torch._refs
  from torch._decomp import register_decomposition
  from torch._prims_common import ELEMENTWISE_TYPE_PROMOTION_KIND, NumberType, ShapeType, TensorLike, TensorLikeType
  from torch._prims_common.wrappers import elementwise_type_promotion_wrapper, elementwise_unary_scalar_wrapper, out_wrapper
  from torch._refs import _make_inplace
label_desc: Use image node_id 40 for calling a global function with example usage: glu(a, dim) and returns: unknown