1uniform shader shaderGreen, shaderRed; 2uniform half4 colorGreen; 3 4// This code generates a 2^n fan-out of specialized functions. 5 6noinline half4 fn(shader a, shader b, shader c, shader d, shader e, shader f, shader g) { 7 return colorGreen; 8} 9 10noinline half4 fn(shader a, shader b, shader c, shader d, shader e, shader f) { 11 return fn(a, b, c, d, e, f, shaderGreen) * fn(a, b, c, d, e, f, shaderRed); 12} 13 14noinline half4 fn(shader a, shader b, shader c, shader d, shader e) { 15 return fn(a, b, c, d, e, shaderGreen) * fn(a, b, c, d, e, shaderRed); 16} 17 18noinline half4 fn(shader a, shader b, shader c, shader d) { 19 return fn(a, b, c, d, shaderGreen) * fn(a, b, c, d, shaderRed); 20} 21 22noinline half4 fn(shader a, shader b, shader c) { 23 return fn(a, b, c, shaderGreen) * fn(a, b, c, shaderRed); 24} 25 26noinline half4 fn(shader a, shader b) { 27 return fn(a, b, shaderGreen) * fn(a, b, shaderRed); 28} 29 30noinline half4 fn(shader a) { 31 return fn(a, shaderGreen) * fn(a, shaderRed); 32} 33 34half4 main(float2) { 35 return fn(shaderGreen) * fn(shaderRed); 36} 37