#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct Uniforms {
    half4 colorGreen;
    half4 colorRed;
};
struct Inputs {
};
struct Outputs {
    half4 sk_FragColor [[color(0)]];
};

thread bool operator==(const float2x2 left, const float2x2 right);
thread bool operator!=(const float2x2 left, const float2x2 right);

thread bool operator==(const float3x3 left, const float3x3 right);
thread bool operator!=(const float3x3 left, const float3x3 right);

thread bool operator==(const float4x4 left, const float4x4 right);
thread bool operator!=(const float4x4 left, const float4x4 right);

thread bool operator==(const half2x2 left, const half2x2 right);
thread bool operator!=(const half2x2 left, const half2x2 right);

thread bool operator==(const half3x3 left, const half3x3 right);
thread bool operator!=(const half3x3 left, const half3x3 right);

thread bool operator==(const half4x4 left, const half4x4 right);
thread bool operator!=(const half4x4 left, const half4x4 right);
thread bool operator==(const float2x2 left, const float2x2 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]);
}
thread bool operator!=(const float2x2 left, const float2x2 right) {
    return !(left == right);
}
thread bool operator==(const float3x3 left, const float3x3 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]) &&
           all(left[2] == right[2]);
}
thread bool operator!=(const float3x3 left, const float3x3 right) {
    return !(left == right);
}
thread bool operator==(const float4x4 left, const float4x4 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]) &&
           all(left[2] == right[2]) &&
           all(left[3] == right[3]);
}
thread bool operator!=(const float4x4 left, const float4x4 right) {
    return !(left == right);
}
thread bool operator==(const half2x2 left, const half2x2 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]);
}
thread bool operator!=(const half2x2 left, const half2x2 right) {
    return !(left == right);
}
thread bool operator==(const half3x3 left, const half3x3 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]) &&
           all(left[2] == right[2]);
}
thread bool operator!=(const half3x3 left, const half3x3 right) {
    return !(left == right);
}
thread bool operator==(const half4x4 left, const half4x4 right) {
    return all(left[0] == right[0]) &&
           all(left[1] == right[1]) &&
           all(left[2] == right[2]) &&
           all(left[3] == right[3]);
}
thread bool operator!=(const half4x4 left, const half4x4 right) {
    return !(left == right);
}
float2 returns_float2_f2() {
    return float2(2.0);
}
float3 returns_float3_f3() {
    return float3(3.0);
}
float4 returns_float4_f4() {
    return float4(4.0);
}
float2x2 returns_float2x2_f22() {
    return float2x2(2.0);
}
float3x3 returns_float3x3_f33() {
    return float3x3(3.0);
}
float4x4 returns_float4x4_f44() {
    return float4x4(4.0);
}
half returns_half_h() {
    return 1.0h;
}
half2 returns_half2_h2() {
    return half2(2.0h);
}
half3 returns_half3_h3() {
    return half3(3.0h);
}
half4 returns_half4_h4() {
    return half4(4.0h);
}
half2x2 returns_half2x2_h22() {
    return half2x2(2.0h);
}
half3x3 returns_half3x3_h33() {
    return half3x3(3.0h);
}
half4x4 returns_half4x4_h44() {
    return half4x4(4.0h);
}
bool returns_bool_b() {
    return true;
}
bool2 returns_bool2_b2() {
    return bool2(true);
}
bool3 returns_bool3_b3() {
    return bool3(true);
}
bool4 returns_bool4_b4() {
    return bool4(true);
}
int returns_int_i() {
    return 1;
}
int2 returns_int2_i2() {
    return int2(2);
}
int3 returns_int3_i3() {
    return int3(3);
}
int4 returns_int4_i4() {
    return int4(4);
}
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
    Outputs _out;
    (void)_out;
    float x1 = 1.0;
    float2 x2 = float2(2.0);
    float3 x3 = float3(3.0);
    float4 x4 = float4(4.0);
    float2x2 x5 = float2x2(2.0);
    float3x3 x6 = float3x3(3.0);
    float4x4 x7 = float4x4(4.0);
    half x8 = 1.0h;
    half2 x9 = half2(2.0h);
    half3 x10 = half3(3.0h);
    half4 x11 = half4(4.0h);
    half2x2 x12 = half2x2(2.0h);
    half3x3 x13 = half3x3(3.0h);
    half4x4 x14 = half4x4(4.0h);
    bool x15 = true;
    bool2 x16 = bool2(true);
    bool3 x17 = bool3(true);
    bool4 x18 = bool4(true);
    int x19 = 1;
    int2 x20 = int2(2);
    int3 x21 = int3(3);
    int4 x22 = int4(4);
    _out.sk_FragColor = ((((((((((((((((((((x1 == 1.0 && all(x2 == returns_float2_f2())) && all(x3 == returns_float3_f3())) && all(x4 == returns_float4_f4())) && x5 == returns_float2x2_f22()) && x6 == returns_float3x3_f33()) && x7 == returns_float4x4_f44()) && x8 == returns_half_h()) && all(x9 == returns_half2_h2())) && all(x10 == returns_half3_h3())) && all(x11 == returns_half4_h4())) && x12 == returns_half2x2_h22()) && x13 == returns_half3x3_h33()) && x14 == returns_half4x4_h44()) && x15 == returns_bool_b()) && all(x16 == returns_bool2_b2())) && all(x17 == returns_bool3_b3())) && all(x18 == returns_bool4_b4())) && x19 == returns_int_i()) && all(x20 == returns_int2_i2())) && all(x21 == returns_int3_i3())) && all(x22 == returns_int4_i4()) ? _uniforms.colorGreen : _uniforms.colorRed;
    return _out;
}
