#include <metal_stdlib>

using namespace metal;
struct tint_private_vars_struct {
  float2 v2f;
  int3 v3i;
  uint4 v4u;
  bool2 v2b;
};

void foo(thread tint_private_vars_struct* const tint_private_vars) {
  int i = 0;
  (*(tint_private_vars)).v2f[i] = 1.0f;
  (*(tint_private_vars)).v3i[i] = 1;
  (*(tint_private_vars)).v4u[i] = 1u;
  (*(tint_private_vars)).v2b[i] = true;
}

kernel void tint_symbol() {
  thread tint_private_vars_struct tint_private_vars = {};
  for(int i = 0; (i < 2); i = as_type<int>((as_type<uint>(i) + as_type<uint>(1)))) {
    foo(&(tint_private_vars));
  }
  return;
}

