Lines Matching refs:fn
1577 #define THUNK_NATIVE_F(fn) \
1578 float __attribute__((overloadable)) native_##fn(float v) { return fn(v);} \
1579 float2 __attribute__((overloadable)) native_##fn(float2 v) { return fn(v);} \
1580 float3 __attribute__((overloadable)) native_##fn(float3 v) { return fn(v);} \
1581 float4 __attribute__((overloadable)) native_##fn(float4 v) { return fn(v);}
1583 #define THUNK_NATIVE_F_F(fn) \
1584 float __attribute__((overloadable)) native_##fn(float v1, float v2) { return fn(v1, v2);} \
1585 float2 __attribute__((overloadable)) native_##fn(float2 v1, float2 v2) { return fn(v1, v2);} \
1586 float3 __attribute__((overloadable)) native_##fn(float3 v1, float3 v2) { return fn(v1, v2);} \
1587 float4 __attribute__((overloadable)) native_##fn(float4 v1, float4 v2) { return fn(v1, v2);}
1589 #define THUNK_NATIVE_F_FP(fn) \
1590 float __attribute__((overloadable)) native_##fn(float v1, float *v2) { return fn(v1, v2);} \
1591 float2 __attribute__((overloadable)) native_##fn(float2 v1, float2 *v2) { return fn(v1, v2);} \
1592 float3 __attribute__((overloadable)) native_##fn(float3 v1, float3 *v2) { return fn(v1, v2);} \
1593 float4 __attribute__((overloadable)) native_##fn(float4 v1, float4 *v2) { return fn(v1, v2);}
1595 #define THUNK_NATIVE_F_I(fn) \
1596 float __attribute__((overloadable)) native_##fn(float v1, int v2) { return fn(v1, v2);} \
1597 float2 __attribute__((overloadable)) native_##fn(float2 v1, int2 v2) { return fn(v1, v2);} \
1598 float3 __attribute__((overloadable)) native_##fn(float3 v1, int3 v2) { return fn(v1, v2);} \
1599 float4 __attribute__((overloadable)) native_##fn(float4 v1, int4 v2) { return fn(v1, v2);}
1683 * HN output = fn(HN input)
1686 #define HN_FUNC_HN(fn) \
1687 extern half __attribute__((overloadable)) fn(half h) { \
1688 return (half) fn((float) h); \
1690 extern half2 __attribute__((overloadable)) fn(half2 v) { \
1691 return convert_half2(fn(convert_float2(v))); \
1693 extern half3 __attribute__((overloadable)) fn(half3 v) { \
1694 return convert_half3(fn(convert_float3(v))); \
1696 extern half4 __attribute__((overloadable)) fn(half4 v) { \
1697 return convert_half4(fn(convert_float4(v))); \
1701 * HN output = fn(HN input1, HN input2)
1704 #define HN_FUNC_HN_HN(fn) \
1705 extern half __attribute__((overloadable)) fn(half h1, half h2) { \
1706 return (half) fn((float) h1, (float) h2); \
1708 extern half2 __attribute__((overloadable)) fn(half2 v1, half2 v2) { \
1709 return convert_half2(fn(convert_float2(v1), \
1712 extern half3 __attribute__((overloadable)) fn(half3 v1, half3 v2) { \
1713 return convert_half3(fn(convert_float3(v1), \
1716 extern half4 __attribute__((overloadable)) fn(half4 v1, half4 v2) { \
1717 return convert_half4(fn(convert_float4(v1), \
1722 * HN output = fn(HN input1, half input2)
1725 #define HN_FUNC_HN_H(fn) \
1726 extern half2 __attribute__((overloadable)) fn(half2 v1, half v2) { \
1727 return convert_half2(fn(convert_float2(v1), (float) v2)); \
1729 extern half3 __attribute__((overloadable)) fn(half3 v1, half v2) { \
1730 return convert_half3(fn(convert_float3(v1), (float) v2)); \
1732 extern half4 __attribute__((overloadable)) fn(half4 v1, half v2) { \
1733 return convert_half4(fn(convert_float4(v1), (float) v2)); \
1737 * HN output = fn(HN input1, HN input2, HN input3)
1740 #define HN_FUNC_HN_HN_HN(fn) \
1741 extern half __attribute__((overloadable)) fn(half h1, half h2, half h3) { \
1742 return (half) fn((float) h1, (float) h2, (float) h3); \
1744 extern half2 __attribute__((overloadable)) fn(half2 v1, half2 v2, half2 v3) { \
1745 return convert_half2(fn(convert_float2(v1), \
1749 extern half3 __attribute__((overloadable)) fn(half3 v1, half3 v2, half3 v3) { \
1750 return convert_half3(fn(convert_float3(v1), \
1754 extern half4 __attribute__((overloadable)) fn(half4 v1, half4 v2, half4 v3) { \
1755 return convert_half4(fn(convert_float4(v1), \
1761 * HN output = fn(HN input1, IN input2)
1765 #define HN_FUNC_HN_IN(fn) \
1766 extern half __attribute__((overloadable)) fn(half h1, int v) { \
1767 return (half) fn((float) h1, v); \
1769 extern half2 __attribute__((overloadable)) fn(half2 v1, int2 v2) { \
1770 return convert_half2(fn(convert_float2(v1), v2)); \
1772 extern half3 __attribute__((overloadable)) fn(half3 v1, int3 v2) { \
1773 return convert_half3(fn(convert_float3(v1), v2)); \
1775 extern half4 __attribute__((overloadable)) fn(half4 v1, int4 v2) { \
1776 return convert_half4(fn(convert_float4(v1), v2)); \
1780 * half output = fn(HN input1)
1783 #define H_FUNC_HN(fn) \
1784 extern half __attribute__((overloadable)) fn(half h) { \
1785 return (half) fn((float) h); \
1787 extern half __attribute__((overloadable)) fn(half2 v) { \
1788 return fn(convert_float2(v)); \
1790 extern half __attribute__((overloadable)) fn(half3 v) { \
1791 return fn(convert_float3(v)); \
1793 extern half __attribute__((overloadable)) fn(half4 v) { \
1794 return fn(convert_float4(v)); \
1798 * half output = fn(HN input1, HN input2)
1801 #define H_FUNC_HN_HN(fn) \
1802 extern half __attribute__((overloadable)) fn(half h1, half h2) { \
1803 return (half) fn((float) h1, (float) h2); \
1805 extern half __attribute__((overloadable)) fn(half2 v1, half2 v2) { \
1806 return fn(convert_float2(v1), convert_float2(v2)); \
1808 extern half __attribute__((overloadable)) fn(half3 v1, half3 v2) { \
1809 return fn(convert_float3(v1), convert_float3(v2)); \
1811 extern half __attribute__((overloadable)) fn(half4 v1, half4 v2) { \
1812 return fn(convert_float4(v1), convert_float4(v2)); \
1851 * HN output = fn(HN input1, HN input2)
1855 #define SCALARIZE_HN_FUNC_HN_HN(fn) \
1856 extern half2 __attribute__((overloadable)) fn(half2 v1, half2 v2) { \
1858 ret.x = fn(v1.x, v2.x); \
1859 ret.y = fn(v1.y, v2.y); \
1862 extern half3 __attribute__((overloadable)) fn(half3 v1, half3 v2) { \
1864 ret.x = fn(v1.x, v2.x); \
1865 ret.y = fn(v1.y, v2.y); \
1866 ret.z = fn(v1.z, v2.z); \
1869 extern half4 __attribute__((overloadable)) fn(half4 v1, half4 v2) { \
1871 ret.x = fn(v1.x, v2.x); \
1872 ret.y = fn(v1.y, v2.y); \
1873 ret.z = fn(v1.z, v2.z); \
1874 ret.w = fn(v1.w, v2.w); \