/*#pragma settings UsesPrecisionModifiers*/

uniform half4 colorGreen, colorRed;

half4 main(float2 coords) {
    float    f[4] = float[4](1, 2, 3, 4);
    half     h[4] = half[4](f);
    f = float[4](h);
    h =  half[4](f);

    int3     i3[3] = int3[3](int3(1), int3(2), int3(3));
    short3   s3[3] = short3[3](i3);
    i3 =   int3[3](s3);
    s3 = short3[3](i3);

    half2x2  h2x2[2] = half2x2[2](half2x2(1, 2, 3, 4), half2x2(5, 6, 7, 8));
    float2x2 f2x2[2] = float2x2[2](h2x2);
    f2x2 = float2x2[2](h2x2);
    h2x2 =  half2x2[2](f2x2);

    return (f == h && i3 == s3 && f2x2 == h2x2) ? colorGreen : colorRed;
}
