code: def exhaustive_populate(
      dst,
      offset,
      BLOCK_SIZE: tl.constexpr,
      force_odd: tl.constexpr,
      output_bits: tl.constexpr,
      max_repr: tl.constexpr,
  ):
      idxs = tl.program_id(0) * BLOCK_SIZE + tl.arange(0, BLOCK_SIZE)
      vals = (idxs + offset).to(tl.uint32)
  
      # pseudorandom permutation:
      multiplier = vals << 1
      multiplier += 3511
      vals *= multiplier
  
      if force_odd:
          vals *= 2
          vals += 1
  
      if output_bits == 8:
          vals &= 0xFF
          avals = vals & 0x7F
      elif output_bits == 16:
          vals &= 0xFFFF
          avals = vals & 0x7FFF
      elif output_bits == 32:
          avals = vals & 0x7FFFFFFF
  
      vals = tl.where(avals <= max_repr, vals, 0)
  
      if output_bits == 8:
          vals = vals.to(tl.uint8)
      elif output_bits == 16:
          vals = vals.to(tl.uint16)
  
      vals = vals.to(dst.dtype.element_ty, bitcast=True)
      tl.store(dst + idxs, vals)
  
file_path: triton/python/test/unit/language/test_conversions.py
imports: import numpy
  import torch
  import pytest
  import triton
  import triton.language
label_desc: Use image node_id 4 for calling a global function with example usage: exhaustive_populate(dst, offset, BLOCK_SIZE, force_odd, output_bits, max_repr) without return types