uniform half4 colorWhite;

half4 main() {
    half4 x = colorWhite;

    // Verify that break is allowed in a for loop.
    for (half r = -5; r < 5; r += 1) {
        x.r = saturate(r);
        if (x.r == 0) break;
    }

    // Verify that continue is allowed in a for loop.
    for (half b = 5; b >= 0; b -= 1) {
        x.b = b;
        if (x.a == 1) continue; // should always happen
        x.g = 0;
    }

    // x contains green.
    return x;
}
