#include <metal_stdlib>

using namespace metal;
uint tint_insert_bits(uint v, uint n, uint offset, uint count) {
  uint const s = min(offset, 32u);
  uint const e = min(32u, (s + count));
  return insert_bits(v, n, s, (e - s));
}

void f_1() {
  uint v = 0u;
  uint n = 0u;
  uint offset_1 = 0u;
  uint count = 0u;
  uint const x_14 = v;
  uint const x_15 = n;
  uint const x_16 = offset_1;
  uint const x_17 = count;
  uint const x_12 = tint_insert_bits(x_14, x_15, x_16, x_17);
  return;
}

kernel void f() {
  f_1();
  return;
}

