#include <metal_stdlib>
using namespace metal;

struct tint_immediate_data_struct {
  /* 0x0000 */ uint user_immediate_data;
  /* 0x0004 */ uint tint_non_constant_zero;
};

struct tint_module_vars_struct {
  device uint* output;
  const constant tint_immediate_data_struct* tint_immediate_data;
};

void foo(const constant uint* const p, tint_module_vars_struct tint_module_vars) {
  (*tint_module_vars.output) = (*p);
}

[[max_total_threads_per_threadgroup(1)]]
kernel void v(device uint* output [[buffer(0)]], const constant tint_immediate_data_struct* tint_immediate_data [[buffer(30)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.output=output, .tint_immediate_data=tint_immediate_data};
  (foo((&(*tint_module_vars.tint_immediate_data).user_immediate_data), tint_module_vars));
}
