1cb93a386Sopenharmony_ci
2cb93a386Sopenharmony_ciout vec4 sk_FragColor;
3cb93a386Sopenharmony_ciuniform vec4 colorGreen;
4cb93a386Sopenharmony_ciuniform vec4 colorRed;
5cb93a386Sopenharmony_cistruct S {
6cb93a386Sopenharmony_ci    int x;
7cb93a386Sopenharmony_ci    int y;
8cb93a386Sopenharmony_ci};
9cb93a386Sopenharmony_civec4 main() {
10cb93a386Sopenharmony_ci    float f1[4] = float[4](1.0, 2.0, 3.0, 4.0);
11cb93a386Sopenharmony_ci    float f2[4] = float[4](1.0, 2.0, 3.0, 4.0);
12cb93a386Sopenharmony_ci    float f3[4] = float[4](1.0, 2.0, 3.0, -4.0);
13cb93a386Sopenharmony_ci    ivec3 v1[2] = ivec3[2](ivec3(1, 2, 3), ivec3(4, 5, 6));
14cb93a386Sopenharmony_ci    ivec3 v2[2] = ivec3[2](ivec3(1, 2, 3), ivec3(4, 5, 6));
15cb93a386Sopenharmony_ci    ivec3 v3[2] = ivec3[2](ivec3(1, 2, 3), ivec3(4, 5, -6));
16cb93a386Sopenharmony_ci    mat2 m1[3] = mat2[3](mat2(1.0), mat2(2.0), mat2(3.0, 4.0, 5.0, 6.0));
17cb93a386Sopenharmony_ci    mat2 m2[3] = mat2[3](mat2(1.0), mat2(2.0), mat2(3.0, 4.0, 5.0, 6.0));
18cb93a386Sopenharmony_ci    mat2 m3[3] = mat2[3](mat2(1.0), mat2(2.0, 3.0, 4.0, 5.0), mat2(6.0));
19cb93a386Sopenharmony_ci    S s1[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
20cb93a386Sopenharmony_ci    S s2[3] = S[3](S(1, 2), S(0, 0), S(5, 6));
21cb93a386Sopenharmony_ci    S s3[3] = S[3](S(1, 2), S(3, 4), S(5, 6));
22cb93a386Sopenharmony_ci    return ((((((f1 == f2 && f1 != f3) && v1 == v2) && v1 != v3) && m1 == m2) && m1 != m3) && s1 != s2) && s3 == s1 ? colorGreen : colorRed;
23cb93a386Sopenharmony_ci}
24