#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={}};
float4 tint_symbol_inner() {
  return float4(0.0f, 0.0f, 0.0f, 0.0f);
}

fragment tint_symbol_1 tint_symbol() {
  float4 const inner_result = tint_symbol_inner();
  tint_symbol_1 wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

