#include <metal_stdlib>

using namespace metal;
struct tint_array_wrapper {
  /* 0x0000 */ uint arr[50];
};
struct Buf {
  /* 0x0000 */ uint count;
  /* 0x0004 */ tint_array_wrapper data;
};

kernel void tint_symbol(device Buf& b [[buffer(0)]]) {
  uint i = 0u;
  while (true) {
    if ((i >= b.count)) {
      break;
    }
    uint const p_save = i;
    if (((i % 2u) == 0u)) {
      {
        b.data.arr[p_save] = (b.data.arr[p_save] * 2u);
        i = (i + 1u);
      }
      continue;
    }
    b.data.arr[p_save] = 0u;
    {
      b.data.arr[p_save] = (b.data.arr[p_save] * 2u);
      i = (i + 1u);
    }
  }
  return;
}

