#version 450

in float  inf;
in flat ivec4  ini4;
out vec4  outf4;

float Test1(int bound)
{
    float r = 0;
    for (int x=0; x<bound; ++x)
        r += 0.5;
    return r;
}

float Test2(int bound)
{
    if (bound > 2)
        return Test1(bound);
    else
        return float(bound * 2 +
                     ini4.y * ini4.z +
                     ini4.x);
}

void main()
{
    outf4 = vec4(Test1(int(inf)) + 
                 Test2(int(inf)));
}