1cb93a386Sopenharmony_ci/*#pragma settings NoInline*/ 2cb93a386Sopenharmony_ci 3cb93a386Sopenharmony_ciuniform half4 color; 4cb93a386Sopenharmony_ci 5cb93a386Sopenharmony_cihalf singleuse() { 6cb93a386Sopenharmony_ci return 1.25; 7cb93a386Sopenharmony_ci} 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_cihalf add(half a, half b) { 10cb93a386Sopenharmony_ci half c = a + b; 11cb93a386Sopenharmony_ci return c; 12cb93a386Sopenharmony_ci} 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_cihalf mul(half a, half b) { 15cb93a386Sopenharmony_ci return a * b; 16cb93a386Sopenharmony_ci} 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_cihalf fma(half a, half b, half c) { 19cb93a386Sopenharmony_ci return add(mul(a, b), c); 20cb93a386Sopenharmony_ci} 21cb93a386Sopenharmony_ci 22cb93a386Sopenharmony_civoid main() { 23cb93a386Sopenharmony_ci // Functions used multiple times: 24cb93a386Sopenharmony_ci sk_FragColor = fma(color.x, color.y, color.z).xxxx; 25cb93a386Sopenharmony_ci // Functions used only once: 26cb93a386Sopenharmony_ci sk_FragColor *= singleuse(); 27cb93a386Sopenharmony_ci // Intrinsic functions: 28cb93a386Sopenharmony_ci sk_FragColor *= blend_src_in(color.xxyy, color.zzww); 29cb93a386Sopenharmony_ci sk_FragColor *= blend_dst_in(color.xxyy, color.zzww); 30cb93a386Sopenharmony_ci sk_FragColor *= blend_hue(color, color.wwww); 31cb93a386Sopenharmony_ci sk_FragColor *= blend_hue(color, color.wzyx); 32cb93a386Sopenharmony_ci} 33