code: def test_jit_noinline() -> None:
      @triton.jit
      def kernel_add_device(a, b, o, N: tl.constexpr):
          add_fn(a, b, o, N)
  
      device = torch.cuda.current_device()
      assert len(kernel_add_device.cache[device]) == 0
      kernel_add_device.warmup(
          torch.float32, torch.float32, torch.float32, 32, grid=(1,)
      )
      assert len(kernel_add_device.cache[device]) == 1
      bins = list(kernel_add_device.cache[device].values())
      inline_ttir = bins[0].asm["ttir"]
      add_fn.noinline = True
      add_fn.hash = None
      kernel_add_device.hash = None
      kernel_add_device.cache[device].clear()
      kernel_add_device.warmup(
          torch.float32, torch.float32, torch.float32, 32, grid=(1,)
      )
      assert len(kernel_add_device.cache[device]) == 1
      bins = list(kernel_add_device.cache[device].values())
      noinline_ttir = bins[0].asm["ttir"]
      assert inline_ttir != noinline_ttir
  
imports: import importlib.util
  import os
  import shutil
  import tempfile
  import pytest
  import torch
  import triton
  import triton.language
  from triton.runtime.jit import JITFunction
label_desc: Use image node_id 19 for calling a global function with example usage: test_jit_noinline() without return types