diff options
Diffstat (limited to 'libclc/clc/lib/spirv')
-rw-r--r-- | libclc/clc/lib/spirv/SOURCES | 2 | ||||
-rw-r--r-- | libclc/clc/lib/spirv/math/clc_fmax.cl | 32 | ||||
-rw-r--r-- | libclc/clc/lib/spirv/math/clc_fmin.cl | 32 |
3 files changed, 66 insertions, 0 deletions
diff --git a/libclc/clc/lib/spirv/SOURCES b/libclc/clc/lib/spirv/SOURCES index cd6e0b2..07bc7aa 100644 --- a/libclc/clc/lib/spirv/SOURCES +++ b/libclc/clc/lib/spirv/SOURCES @@ -1 +1,3 @@ +math/clc_fmax.cl +math/clc_fmin.cl math/clc_runtime_has_hw_fma32.cl diff --git a/libclc/clc/lib/spirv/math/clc_fmax.cl b/libclc/clc/lib/spirv/math/clc_fmax.cl new file mode 100644 index 0000000..be660fe --- /dev/null +++ b/libclc/clc/lib/spirv/math/clc_fmax.cl @@ -0,0 +1,32 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include <clc/clcmacro.h> +#include <clc/internal/clc.h> + +_CLC_DEF _CLC_OVERLOAD float __clc_fmax(float x, float y) { + return __builtin_fmaxf(x, y); +} + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +_CLC_DEF _CLC_OVERLOAD double __clc_fmax(double x, double y) { + return __builtin_fmax(x, y); +} +#endif + +#ifdef cl_khr_fp16 +#pragma OPENCL EXTENSION cl_khr_fp16 : enable +_CLC_DEF _CLC_OVERLOAD half __clc_fmax(half x, half y) { + return __builtin_fmaxf16(x, y); +} +#endif + +#define FUNCTION __clc_fmax +#define __CLC_BODY <clc/shared/binary_def_scalarize.inc> +#include <clc/math/gentype.inc> diff --git a/libclc/clc/lib/spirv/math/clc_fmin.cl b/libclc/clc/lib/spirv/math/clc_fmin.cl new file mode 100644 index 0000000..9f3fa66 --- /dev/null +++ b/libclc/clc/lib/spirv/math/clc_fmin.cl @@ -0,0 +1,32 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include <clc/clcmacro.h> +#include <clc/internal/clc.h> + +_CLC_DEF _CLC_OVERLOAD float __clc_fmin(float x, float y) { + return __builtin_fminf(x, y); +} + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +_CLC_DEF _CLC_OVERLOAD double __clc_fmin(double x, double y) { + return __builtin_fmin(x, y); +} +#endif + +#ifdef cl_khr_fp16 +#pragma OPENCL EXTENSION cl_khr_fp16 : enable +_CLC_DEF _CLC_OVERLOAD half __clc_fmin(half x, half y) { + return __builtin_fminf16(x, y); +} +#endif + +#define FUNCTION __clc_fmin +#define __CLC_BODY <clc/shared/binary_def_scalarize.inc> +#include <clc/math/gentype.inc> |