#include <metal_stdlib>

using namespace metal;
struct MyStruct {
  float f1;
};

struct tint_array_wrapper {
  float arr[10];
};

constant int v1 = 1;

constant uint v2 = 1u;

constant float v3 = 1.0f;

constant int3 v4 = int3(1);

constant uint3 v5 = uint3(1u);

constant float3 v6 = float3(1.0f);

constant float3x3 v7 = float3x3(float3(1.0f), float3(1.0f), float3(1.0f));

constant MyStruct v8 = {};

constant tint_array_wrapper v9 = {.arr={}};

struct tint_symbol_1 {
  float4 value [[color(0)]];
};

float4 tint_symbol_inner() {
  return float4(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;
}

