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