half4 main() {
    half4 color = half4(0);

    for (int counter=0; counter<10; ++counter) ;
    for (int counter=0; counter<10; ++counter) {}
    for (int counter=0; counter<10; ++counter) { false, 1 == 2; sqrt(7); }

    if (sqrt(1) == 1) color.g = 1; else 1;
    if (sqrt(1) == 2) 0; else color.a = 1;
    if (sqrt(1) == 3) 0; else 1;

    while (sqrt(1) == 2) 1 + 2 + 3;

    do 1 * 2 * 3; while (sqrt(1) == 2);

    return color;
}
