1uniform half4 color; 2 3half fma(half a, half b) { return 0; /* allowed */ } 4half fma(half a, half b, half c) { return 0; /* error: overloads a builtin */ } 5half fma(half a, half b, half c, half d) { return 0; /* allowed */ } 6 7half2 sin(half2 a) { return half2(0); /* error: overloads a builtin */ } 8float3 sin(float3 a) { return float3(0); /* error: overloads a builtin */ } 9float4 sin(inout float4 a) { return float4(0); /* error: overloads a builtin */ } 10half2x2 sin(half2x2 a) { return half2x2(0); /* allowed */ } 11float3x3 sin(float3x3 a) { return float3x3(0); /* allowed */ } 12 13half cos(half2 a) { return 0; /* error: overloads a builtin (despite return type mismatch) */ } 14float2 cos(half2 a) { return 0; /* error: overloads a builtin (despite return type mismatch) */ } 15int cos(out half3 a) { return 0; /* error: overloads a builtin (despite return type mismatch) */ } 16 17float pow(float x, float y) { return 0; /* error: overloads a builtin */ } 18float pow(float2 x, float y) { return 0; /* allowed */ } 19float pow(half x, float y) { return 0; /* allowed */ } 20 21/*%%* 22duplicate definition of intrinsic function 'fma' 23duplicate definition of intrinsic function 'sin' 24duplicate definition of intrinsic function 'sin' 25modifiers on parameter 1 differ between declaration and definition 26duplicate definition of intrinsic function 'cos' 27functions 'float2 cos(half2 a)' and '$pure $genHType cos($genHType 28functions 'int cos(out half3 a)' and '$pure $genHType cos($genHType 29duplicate definition of intrinsic function 'pow' 30*%%*/ 31 32// The `cos` errors are truncated early because the message differs between debug builds 33// (which retain the parameter names on intrinsic functions) and release builds (which 34// minify the parameter names to save space). 35