1 // function selection under type conversion
2 void foo1(double a, bool b) {}
3 void foo1(double a, uint b) {}
4 void foo1(double a, int b) {}
5 void foo1(double a, float b) {}
6 void foo1(double a, double b){}
9 void foo2(int a, bool b) {}
10 void foo2(int a, uint b) {}
11 void foo2(int a, int b) {}
12 void foo2(int a, float b) {}
13 void foo2(int a, double b){}
15 // everything can promote
22 // shorter forward chain better than longer or backward chain
30 // shape change is worse
36 void foo12(double3) {}
45 float4 PixelShaderFunction(float4 input) : COLOR0