
int f() {
  int i = int(0);
  int j = int(0);
  {
    uint2 tint_loop_idx = (4294967295u).xx;
    while(true) {
      if (all((tint_loop_idx == (0u).xx))) {
        break;
      }
      if ((i > int(4))) {
        return int(1);
      }
      {
        uint2 tint_loop_idx_1 = (4294967295u).xx;
        while(true) {
          if (all((tint_loop_idx_1 == (0u).xx))) {
            break;
          }
          if ((j > int(4))) {
            return int(2);
          }
          {
            uint tint_low_inc_1 = (tint_loop_idx_1.x - 1u);
            tint_loop_idx_1.x = tint_low_inc_1;
            uint tint_carry_1 = uint((tint_low_inc_1 == 4294967295u));
            tint_loop_idx_1.y = (tint_loop_idx_1.y - tint_carry_1);
            j = (j + int(1));
          }
          continue;
        }
      }
      /* unreachable */
      return int(0);
    }
  }
  /* unreachable */
  return int(0);
}

[numthreads(1, 1, 1)]
void unused_entry_point() {
}

