1cb93a386Sopenharmony_ciuniform half4 colorRed, colorGreen;
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_cibool check_array_is_int_2(int[2] x) {
4cb93a386Sopenharmony_ci    return true;
5cb93a386Sopenharmony_ci}
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_cibool test() {
8cb93a386Sopenharmony_ci    const int two = 2;
9cb93a386Sopenharmony_ci    int a[int4(1, 2, 3, 4).y];
10cb93a386Sopenharmony_ci    int b[int(max(-5.5, 2.0))];
11cb93a386Sopenharmony_ci    int c[two];
12cb93a386Sopenharmony_ci    int d[int2(float2x2(1, 2, 3, 4)[0]).y];
13cb93a386Sopenharmony_ci    return check_array_is_int_2(a) &&
14cb93a386Sopenharmony_ci           check_array_is_int_2(b) &&
15cb93a386Sopenharmony_ci           check_array_is_int_2(c) &&
16cb93a386Sopenharmony_ci           check_array_is_int_2(d);
17cb93a386Sopenharmony_ci}
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_cibool check_array_is_float_3(float[3] x) {
20cb93a386Sopenharmony_ci    return true;
21cb93a386Sopenharmony_ci}
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_cibool test_param(float a[5*5-22], float b[1+1+1]) {
24cb93a386Sopenharmony_ci    return check_array_is_float_3(a) && check_array_is_float_3(b);
25cb93a386Sopenharmony_ci}
26cb93a386Sopenharmony_ci
27cb93a386Sopenharmony_cihalf4 main(float2 coords) {
28cb93a386Sopenharmony_ci    float f[3], g[3];
29cb93a386Sopenharmony_ci    return test() && test_param(f, g) ? colorGreen : colorRed;
30cb93a386Sopenharmony_ci}
31cb93a386Sopenharmony_ci
32