#include <metal_stdlib>

using namespace metal;
struct MyStruct {
  float f1;
};
struct tint_array_wrapper {
  float arr[10];
};
struct tint_symbol_1 {
  float4 value [[color(0)]];
};

constant int v1 = 1;
constant uint v2 = 1u;
constant float v3 = 1.0f;
constant int3 v4 = int3(1, 1, 1);
constant uint3 v5 = uint3(1u, 1u, 1u);
constant float3 v6 = float3(1.0f, 1.0f, 1.0f);
constant float3x3 v7 = float3x3(float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f));
constant MyStruct v8 = {};
constant tint_array_wrapper v9 = {.arr={}};
fragment tint_symbol_1 tint_symbol() {
  tint_symbol_1 const tint_symbol_2 = {.value=float4(0.0f, 0.0f, 0.0f, 0.0f)};
  return tint_symbol_2;
}

