uniform half4 colorGreen; noinline half4 multiplyByAlpha(half4 x) { return x * x.aaaa; } noinline half add(half a, half b) { half c = a + b; return c; } noinline half mul(half a, half b) { return a * b; } noinline half fma(half a, half b, half c) { return add(mul(a, b), c); } half4 main(float2 coords) { // Functions used multiple times: half4 result = fma(colorGreen.a, colorGreen.g, colorGreen.r).0x0x; // Functions used only once: result = multiplyByAlpha(result); return result; }