// language: metal1.0
#include <metal_stdlib>
#include <simd/simd.h>

using metal::uint;

struct OurVertexShaderOutput {
    metal::float4 position;
    metal::float2 texcoord;
};

struct vsInput {
    metal::float2 xy [[attribute(0)]];
};
struct vsOutput_1 {
    metal::float4 position [[position]];
    metal::float2 texcoord [[user(loc0), center_perspective]];
};
vertex vsOutput_1 vs(
  vsInput varyings [[stage_in]]
) {
    const auto xy = varyings.xy;
    OurVertexShaderOutput vsOutput = {};
    vsOutput.position = metal::float4(xy, 0.0, 1.0);
    OurVertexShaderOutput _e6 = vsOutput;
    const auto _tmp = _e6;
    return vsOutput_1 { _tmp.position, _tmp.texcoord };
}


struct fsOutput {
    metal::float4 member_1 [[color(0)]];
};
fragment fsOutput fs(
) {
    return fsOutput { metal::float4(1.0, 0.0, 0.0, 1.0) };
}
