|
184 | 184 | return BUILTIN(x); \ |
185 | 185 | } |
186 | 186 |
|
| 187 | +#define _CLC_DEFINE_TERNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, \ |
| 188 | + ARG2_TYPE, ARG3_TYPE) \ |
| 189 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y, \ |
| 190 | + ARG3_TYPE z) { \ |
| 191 | + return BUILTIN(x, y, z); \ |
| 192 | + } \ |
| 193 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, ARG2_TYPE##2 y, \ |
| 194 | + ARG3_TYPE##2 z) { \ |
| 195 | + return BUILTIN(x, y, z); \ |
| 196 | + } \ |
| 197 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, ARG2_TYPE##3 y, \ |
| 198 | + ARG3_TYPE##3 z) { \ |
| 199 | + return BUILTIN(x, y, z); \ |
| 200 | + } \ |
| 201 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, ARG2_TYPE##4 y, \ |
| 202 | + ARG3_TYPE##4 z) { \ |
| 203 | + return BUILTIN(x, y, z); \ |
| 204 | + } \ |
| 205 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, ARG2_TYPE##8 y, \ |
| 206 | + ARG3_TYPE##8 z) { \ |
| 207 | + return BUILTIN(x, y, z); \ |
| 208 | + } \ |
| 209 | + _CLC_DEF _CLC_OVERLOAD RET_TYPE##16 FUNCTION( \ |
| 210 | + ARG1_TYPE##16 x, ARG2_TYPE##16 y, ARG3_TYPE##16 z) { \ |
| 211 | + return BUILTIN(x, y, z); \ |
| 212 | + } |
| 213 | + |
187 | 214 | #ifdef cl_khr_fp16 |
188 | 215 |
|
189 | 216 | #pragma OPENCL EXTENSION cl_khr_fp16 : enable |
|
0 commit comments