summaryrefslogtreecommitdiff
path: root/kernels/compiler_half_math.cl
blob: a11a9566cf0c2ff65b6a54ca72200246d256ef33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma OPENCL EXTENSION cl_khr_fp16 : enable

#define MATH_KERNEL_ARG1(NAME) \
    kernel void compiler_half_math_##NAME(global half *src, global half *dst) { \
    int i = get_global_id(0); \
    dst[i] = NAME(src[i]); \
  }

MATH_KERNEL_ARG1(sin);
MATH_KERNEL_ARG1(cos);
MATH_KERNEL_ARG1(sinh);
MATH_KERNEL_ARG1(cosh);
MATH_KERNEL_ARG1(tan);
MATH_KERNEL_ARG1(log10);
MATH_KERNEL_ARG1(log);
MATH_KERNEL_ARG1(trunc);
MATH_KERNEL_ARG1(exp);
MATH_KERNEL_ARG1(sqrt);
MATH_KERNEL_ARG1(ceil);

#define MATH_KERNEL_ARG2(NAME) \
    kernel void compiler_half_math_##NAME(global half4 *src0, global half4 *src1, global half4 *dst) { \
    int i = get_global_id(0); \
    dst[i] = NAME(src0[i], src1[i]); \
  }
MATH_KERNEL_ARG2(fmod);
MATH_KERNEL_ARG2(fmax);
MATH_KERNEL_ARG2(fmin);