1cb93a386Sopenharmony_ci 2cb93a386Sopenharmony_ciout vec4 sk_FragColor; 3cb93a386Sopenharmony_ciuniform vec4 colorGreen; 4cb93a386Sopenharmony_ciuniform vec4 colorRed; 5cb93a386Sopenharmony_cibool test_half_b() { 6cb93a386Sopenharmony_ci bool ok = true; 7cb93a386Sopenharmony_ci ok = ok && mat3(2.0) + 4.0 == mat3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); 8cb93a386Sopenharmony_ci ok = ok && mat3(2.0) - 4.0 == mat3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); 9cb93a386Sopenharmony_ci ok = ok && mat3(2.0) * 4.0 == mat3(8.0); 10cb93a386Sopenharmony_ci ok = ok && mat3(2.0) / 4.0 == mat3(0.5); 11cb93a386Sopenharmony_ci ok = ok && 4.0 + mat3(2.0) == mat3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); 12cb93a386Sopenharmony_ci ok = ok && 4.0 - mat3(2.0) == mat3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); 13cb93a386Sopenharmony_ci ok = ok && 4.0 * mat3(2.0) == mat3(8.0); 14cb93a386Sopenharmony_ci ok = ok && 4.0 / mat2(2.0, 2.0, 2.0, 2.0) == mat2(2.0, 2.0, 2.0, 2.0); 15cb93a386Sopenharmony_ci return ok; 16cb93a386Sopenharmony_ci} 17cb93a386Sopenharmony_civec4 main() { 18cb93a386Sopenharmony_ci bool _0_ok = true; 19cb93a386Sopenharmony_ci _0_ok = _0_ok && mat3(2.0) + 4.0 == mat3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); 20cb93a386Sopenharmony_ci _0_ok = _0_ok && mat3(2.0) - 4.0 == mat3(-2.0, -4.0, -4.0, -4.0, -2.0, -4.0, -4.0, -4.0, -2.0); 21cb93a386Sopenharmony_ci _0_ok = _0_ok && mat3(2.0) * 4.0 == mat3(8.0); 22cb93a386Sopenharmony_ci _0_ok = _0_ok && mat3(2.0) / 4.0 == mat3(0.5); 23cb93a386Sopenharmony_ci _0_ok = _0_ok && 4.0 + mat3(2.0) == mat3(6.0, 4.0, 4.0, 4.0, 6.0, 4.0, 4.0, 4.0, 6.0); 24cb93a386Sopenharmony_ci _0_ok = _0_ok && 4.0 - mat3(2.0) == mat3(2.0, 4.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 2.0); 25cb93a386Sopenharmony_ci _0_ok = _0_ok && 4.0 * mat3(2.0) == mat3(8.0); 26cb93a386Sopenharmony_ci _0_ok = _0_ok && 4.0 / mat2(2.0, 2.0, 2.0, 2.0) == mat2(2.0, 2.0, 2.0, 2.0); 27cb93a386Sopenharmony_ci return _0_ok && test_half_b() ? colorGreen : colorRed; 28cb93a386Sopenharmony_ci} 29