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

RWByteAddressBuffer v : register(u0, space0);
static uint i = 0u;

int idx1() {
  i = (i + 1u);
  return 1;
}

int idx2() {
  i = (i + 2u);
  return 1;
}

int idx3() {
  i = (i + 3u);
  return 1;
}

void foo() {
  float a[4] = (float[4])0;
  {
    const int tint_symbol_save = idx1();
    a[tint_symbol_save] = (a[tint_symbol_save] * 2.0f);
    while (true) {
      const int tint_symbol_2 = idx2();
      if (!((a[tint_symbol_2] < 10.0f))) {
        break;
      }
      {
      }
      {
        const int tint_symbol_1_save = idx3();
        a[tint_symbol_1_save] = (a[tint_symbol_1_save] + 1.0f);
      }
    }
  }
}
