uniform half4 colorGreen, colorRed;

float    returns_float()             { return float(1); }
float2   returns_float2()            { return float2(2); }
float3   returns_float3()            { return float3(3); }
float4   returns_float4()            { return float4(4); }
float2x2 returns_float2x2()          { return float2x2(2); }
float3x3 returns_float3x3()          { return float3x3(3); }
float4x4 returns_float4x4()          { return float4x4(4); }
half     returns_half()              { return half(1); }
half2    returns_half2()             { return half2(2); }
half3    returns_half3()             { return half3(3); }
half4    returns_half4()             { return half4(4); }
half2x2  returns_half2x2()           { return half2x2(2); }
half3x3  returns_half3x3()           { return half3x3(3); }
half4x4  returns_half4x4()           { return half4x4(4); }
bool     returns_bool()              { return bool(true); }
bool2    returns_bool2()             { return bool2(true); }
bool3    returns_bool3()             { return bool3(true); }
bool4    returns_bool4()             { return bool4(true); }
int      returns_int()               { return int(1); }
int2     returns_int2()              { return int2(2); }
int3     returns_int3()              { return int3(3); }
int4     returns_int4()              { return int4(4); }

half4 main(float2 coords) {
    float     x1  = returns_float();
    float2    x2  = returns_float2();
    float3    x3  = returns_float3();
    float4    x4  = returns_float4();
    float2x2  x5  = returns_float2x2();
    float3x3  x6  = returns_float3x3();
    float4x4  x7  = returns_float4x4();
    half      x8  = returns_half();
    half2     x9  = returns_half2();
    half3     x10 = returns_half3();
    half4     x11 = returns_half4();
    half2x2   x12 = returns_half2x2();
    half3x3   x13 = returns_half3x3();
    half4x4   x14 = returns_half4x4();
    bool      x15 = returns_bool();
    bool2     x16 = returns_bool2();
    bool3     x17 = returns_bool3();
    bool4     x18 = returns_bool4();
    int       x19 = returns_int();
    int2      x20 = returns_int2();
    int3      x21 = returns_int3();
    int4      x22 = returns_int4();

    return x1  == returns_float() &&
           x2  == returns_float2() &&
           x3  == returns_float3() &&
           x4  == returns_float4() &&
           x5  == returns_float2x2() &&
           x6  == returns_float3x3() &&
           x7  == returns_float4x4() &&
           x8  == returns_half() &&
           x9  == returns_half2() &&
           x10 == returns_half3() &&
           x11 == returns_half4() &&
           x12 == returns_half2x2() &&
           x13 == returns_half3x3() &&
           x14 == returns_half4x4() &&
           x15 == returns_bool() &&
           x16 == returns_bool2() &&
           x17 == returns_bool3() &&
           x18 == returns_bool4() &&
           x19 == returns_int() &&
           x20 == returns_int2() &&
           x21 == returns_int3() &&
           x22 == returns_int4() ? colorGreen : colorRed;
}
