#include <metal_stdlib>

using namespace metal;
struct UBO {
  /* 0x0000 */ int dynamic_idx;
};
struct tint_array_wrapper {
  int arr[64];
};
struct S {
  tint_array_wrapper data;
};
struct Result {
  /* 0x0000 */ int out;
};

void x(thread S* const p, const constant UBO* const tint_symbol) {
  (*(p)).data.arr[(*(tint_symbol)).dynamic_idx] = 1;
}

kernel void f(const constant UBO* tint_symbol_1 [[buffer(0)]], device Result* tint_symbol_2 [[buffer(1)]]) {
  S s = {};
  x(&(s), tint_symbol_1);
  (*(tint_symbol_2)).out = s.data.arr[3];
  return;
}

