float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2);
float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2};
float a2 = 0.2, b2;
float a3, b3 = 0.3;
float a4, b4 = 0.4, c4;
float a5 = 0.5, b5, c5 = 1.5;

struct Single1 { int f; };
Single1 single1 = { 10 };

struct Single2 { uint2 v; };
Single2 single2 = { { 1, 2 } };

struct Single3 { Single1 s1; };
Single3 single3 = { { 3 } };

struct Single4 { Single2 s1; };
Single4 single4 = { { { 4u, 5u } } };

float4 ShaderFunction(float4 input) : COLOR0
{
    float4 a2 = float4(0.2, 0.3, 0.4, 0.5);
    struct S1 {
        float f;
        int i;
    };
    struct S2 {
        int  j;
        float g;
        S1 s1;
    };
    S2 s2i = { 9, a5, { (a3,a4), 12} }, s2 = S2(9, a5, S1((a3,a4), 12));
    float a8 = (a2, b2), a9 = a5;

    return input * a1;
}
