xref: /aosp_15_r20/external/skia/resources/sksl/inliner/InlinerCanBeDisabled.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker/*#pragma settings NoInline*/
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workeruniform half4 color;
4*c8dee2aaSAndroid Build Coastguard Worker
5*c8dee2aaSAndroid Build Coastguard Workerhalf singleuse() {
6*c8dee2aaSAndroid Build Coastguard Worker    return 1.25;
7*c8dee2aaSAndroid Build Coastguard Worker}
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Workerhalf add(half a, half b) {
10*c8dee2aaSAndroid Build Coastguard Worker    half c = a + b;
11*c8dee2aaSAndroid Build Coastguard Worker    return c;
12*c8dee2aaSAndroid Build Coastguard Worker}
13*c8dee2aaSAndroid Build Coastguard Worker
14*c8dee2aaSAndroid Build Coastguard Workerhalf mul(half a, half b) {
15*c8dee2aaSAndroid Build Coastguard Worker    return a * b;
16*c8dee2aaSAndroid Build Coastguard Worker}
17*c8dee2aaSAndroid Build Coastguard Worker
18*c8dee2aaSAndroid Build Coastguard Workerhalf fused_multiply_add(half a, half b, half c) {
19*c8dee2aaSAndroid Build Coastguard Worker    return add(mul(a, b), c);
20*c8dee2aaSAndroid Build Coastguard Worker}
21*c8dee2aaSAndroid Build Coastguard Worker
22*c8dee2aaSAndroid Build Coastguard Workervoid main() {
23*c8dee2aaSAndroid Build Coastguard Worker    // Functions used multiple times:
24*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = fused_multiply_add(color.x, color.y, color.z).xxxx;
25*c8dee2aaSAndroid Build Coastguard Worker    // Functions used only once:
26*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor *= singleuse();
27*c8dee2aaSAndroid Build Coastguard Worker    // Intrinsic functions:
28*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor *= blend_src_in(color.xxyy, color.zzww);
29*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor *= blend_dst_in(color.xxyy, color.zzww);
30*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor *= blend_hue(color, color.wwww);
31*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor *= blend_hue(color, color.wzyx);
32*c8dee2aaSAndroid Build Coastguard Worker}
33