#include <metal_stdlib>

using namespace metal;
struct tint_private_vars_struct {
  uint t;
};

uint4 m(thread tint_private_vars_struct* const tint_private_vars) {
  (*(tint_private_vars)).t = 1u;
  return uint4((*(tint_private_vars)).t);
}

void f(thread tint_private_vars_struct* const tint_private_vars) {
  uint4 const tint_symbol = m(tint_private_vars);
  float4 v = float4(tint_symbol);
}

