1cb93a386Sopenharmony_cihalf4 main(float2 coords) {
2cb93a386Sopenharmony_ci    half4 result = half4(0);
3cb93a386Sopenharmony_ci
4cb93a386Sopenharmony_ci    // Two variables, both used
5cb93a386Sopenharmony_ci    for (half a = 0, b = 0; a < 10 && b < 10; ++a, ++b) {
6cb93a386Sopenharmony_ci        result.r += a;
7cb93a386Sopenharmony_ci        result.g += b;
8cb93a386Sopenharmony_ci    }
9cb93a386Sopenharmony_ci
10cb93a386Sopenharmony_ci    // Two variables, one dead
11cb93a386Sopenharmony_ci    for (int c = 0, d = 0; c < 10; ++c) {
12cb93a386Sopenharmony_ci        result.b += 1;
13cb93a386Sopenharmony_ci    }
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ci    // Three variables, all used, some array-typed
16cb93a386Sopenharmony_ci    for (float d[2] = float[2](0, 10), e[4] = float[4](1,2,3,4), f = 9; d[0] < d[1]; ++d[0]) {
17cb93a386Sopenharmony_ci        result.a = half(e[0] * f);
18cb93a386Sopenharmony_ci    }
19cb93a386Sopenharmony_ci
20cb93a386Sopenharmony_ci    // Four variables, all dead
21cb93a386Sopenharmony_ci    for (half4 x, y, z, w;; ) break;
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_ci    // Just referencing a variable instead of declaring it--legal, if not meaningful.
24cb93a386Sopenharmony_ci    for (result;; ) break;
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_ci    return result;
27cb93a386Sopenharmony_ci}
28