1cb93a386Sopenharmony_ciuniform float4 u1;
2cb93a386Sopenharmony_cifloat index_by_literal() {
3cb93a386Sopenharmony_ci    return u1[0];
4cb93a386Sopenharmony_ci}
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_ciuniform float4 u2;
7cb93a386Sopenharmony_cifloat index_by_loop() {
8cb93a386Sopenharmony_ci    float sum = 0;
9cb93a386Sopenharmony_ci    for (int i = 0; i < 4; ++i) {
10cb93a386Sopenharmony_ci        sum += u2[i];
11cb93a386Sopenharmony_ci    }
12cb93a386Sopenharmony_ci    return sum;
13cb93a386Sopenharmony_ci}
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_ciuniform float4 u3;
16cb93a386Sopenharmony_cifloat index_by_complex_loop() {
17cb93a386Sopenharmony_ci    float prod = 1;
18cb93a386Sopenharmony_ci    for (int i = 0; i < 4; ++i) {
19cb93a386Sopenharmony_ci        prod *= u3[i < 2 ? 0 : i];
20cb93a386Sopenharmony_ci    }
21cb93a386Sopenharmony_ci    return prod;
22cb93a386Sopenharmony_ci}
23cb93a386Sopenharmony_ci
24cb93a386Sopenharmony_ciuniform float4 u4;
25cb93a386Sopenharmony_cifloat index_clamped_out_of_bounds() {
26cb93a386Sopenharmony_ci    for (int i = 7; i < 8; i++) {
27cb93a386Sopenharmony_ci        return u4[i];
28cb93a386Sopenharmony_ci    }
29cb93a386Sopenharmony_ci}
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_cifloat4 main(float2 xy) {
32cb93a386Sopenharmony_ci    return float4(
33cb93a386Sopenharmony_ci        index_by_literal(),
34cb93a386Sopenharmony_ci        index_by_loop(),
35cb93a386Sopenharmony_ci        index_by_complex_loop(),
36cb93a386Sopenharmony_ci        index_clamped_out_of_bounds());
37cb93a386Sopenharmony_ci}
38