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