1cb93a386Sopenharmony_ci/*#pragma settings UsesPrecisionModifiers*/
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ciuniform half4 colorGreen, colorRed;
4cb93a386Sopenharmony_ci
5cb93a386Sopenharmony_cihalf4 main(float2 coords) {
6cb93a386Sopenharmony_ci    float    f[4] = float[4](1, 2, 3, 4);
7cb93a386Sopenharmony_ci    half     h[4] = half[4](f);
8cb93a386Sopenharmony_ci    f = float[4](h);
9cb93a386Sopenharmony_ci    h =  half[4](f);
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci    int3     i3[3] = int3[3](int3(1), int3(2), int3(3));
12cb93a386Sopenharmony_ci    short3   s3[3] = short3[3](i3);
13cb93a386Sopenharmony_ci    i3 =   int3[3](s3);
14cb93a386Sopenharmony_ci    s3 = short3[3](i3);
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ci    half2x2  h2x2[2] = half2x2[2](half2x2(1, 2, 3, 4), half2x2(5, 6, 7, 8));
17cb93a386Sopenharmony_ci    float2x2 f2x2[2] = float2x2[2](h2x2);
18cb93a386Sopenharmony_ci    f2x2 = float2x2[2](h2x2);
19cb93a386Sopenharmony_ci    h2x2 =  half2x2[2](f2x2);
20cb93a386Sopenharmony_ci
21cb93a386Sopenharmony_ci    return (f == h && i3 == s3 && f2x2 == h2x2) ? colorGreen : colorRed;
22cb93a386Sopenharmony_ci}
23