#include <metal_stdlib>

using namespace metal;
struct S {
  float a;
};
struct tint_array_wrapper {
  float arr[4];
};

kernel void tint_symbol() {
  thread bool tint_symbol_3 = bool();
  thread int tint_symbol_4 = int();
  thread uint tint_symbol_5 = uint();
  thread float tint_symbol_6 = float();
  thread int2 tint_symbol_7 = int2();
  thread uint3 tint_symbol_8 = uint3();
  thread float4 tint_symbol_9 = float4();
  thread float2x3 tint_symbol_10 = float2x3();
  thread tint_array_wrapper tint_symbol_11 = {.arr={}};
  thread S tint_symbol_12 = {};
  tint_symbol_3 = bool();
  tint_symbol_4 = int();
  tint_symbol_5 = uint();
  tint_symbol_6 = float();
  tint_symbol_7 = int2();
  tint_symbol_8 = uint3();
  tint_symbol_9 = float4();
  tint_symbol_10 = float2x3();
  tint_array_wrapper const tint_symbol_1 = {.arr={}};
  tint_symbol_11 = tint_symbol_1;
  S const tint_symbol_2 = {};
  tint_symbol_12 = tint_symbol_2;
  return;
}

