1cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed;
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_cistruct S {
4cb93a386Sopenharmony_ci    int x, y;
5cb93a386Sopenharmony_ci};
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_cihalf4 main(float2 coords) {
8cb93a386Sopenharmony_ci    float f1[4] = float[4](1, 2, 3, 4);
9cb93a386Sopenharmony_ci    float f2[4] = float[4](1, 2, 3, 4);
10cb93a386Sopenharmony_ci    float f3[4] = float[4](1, 2, 3, -4);
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ci    int3 v1[2] = int3[2](int3(1, 2, 3), int3(4, 5, 6));
13cb93a386Sopenharmony_ci    int3 v2[2] = int3[2](int3(1, 2, 3), int3(4, 5, 6));
14cb93a386Sopenharmony_ci    int3 v3[2] = int3[2](int3(1, 2, 3), int3(4, 5, -6));
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ci    half2x2 m1[3] = half2x2[3](half2x2(1), half2x2(2), half2x2(3, 4, 5, 6));
17cb93a386Sopenharmony_ci    half2x2 m2[3] = half2x2[3](half2x2(1), half2x2(2), half2x2(3, 4, 5, 6));
18cb93a386Sopenharmony_ci    half2x2 m3[3] = half2x2[3](half2x2(1), half2x2(2, 3, 4, 5), half2x2(6));
19cb93a386Sopenharmony_ci
20cb93a386Sopenharmony_ci    S s1[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
21cb93a386Sopenharmony_ci    S s2[3] = S[3](S(1, 2), S(0, 0), S(5, 6));
22cb93a386Sopenharmony_ci    S s3[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
23cb93a386Sopenharmony_ci
24cb93a386Sopenharmony_ci    return (f1 == f2) && (f1 != f3) &&
25cb93a386Sopenharmony_ci           (v1 == v2) && (v1 != v3) &&
26cb93a386Sopenharmony_ci           (m1 == m2) && (m1 != m3) &&
27cb93a386Sopenharmony_ci           (s1 != s2) && (s3 == s1) ? colorGreen : colorRed;
28cb93a386Sopenharmony_ci}
29