diff --git a/libclc/amdgcn-amdhsa/libspirv/SOURCES b/libclc/amdgcn-amdhsa/libspirv/SOURCES index 6fee4b240253d..248230e2c4cda 100644 --- a/libclc/amdgcn-amdhsa/libspirv/SOURCES +++ b/libclc/amdgcn-amdhsa/libspirv/SOURCES @@ -31,9 +31,11 @@ math/fmin.cl math/fmod.cl math/frexp.cl math/hypot.cl +math/ilogb.cl math/ldexp.cl math/lgamma.cl math/log.cl +math/log2.cl math/log10.cl math/log1p.cl math/logb.cl @@ -41,6 +43,7 @@ math/mangle_common.h math/modf.cl math/nextafter.cl math/pow.cl +math/remainder.cl math/round.cl math/rsqrt.cl math/sin.cl diff --git a/libclc/amdgcn-amdhsa/libspirv/math/ilogb.cl b/libclc/amdgcn-amdhsa/libspirv/math/ilogb.cl new file mode 100644 index 0000000000000..42d3d681924d1 --- /dev/null +++ b/libclc/amdgcn-amdhsa/libspirv/math/ilogb.cl @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// +// 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 +#include + +int __ocml_ilogb_f64(double); +int __ocml_ilogb_f32(float); + +_CLC_DEFINE_UNARY_BUILTIN(int, __spirv_ocl_ilogb, __ocml_ilogb_f32, float) + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +_CLC_DEFINE_UNARY_BUILTIN(int, __spirv_ocl_ilogb, __ocml_ilogb_f64, double) +#endif + +#ifdef cl_khr_fp16 +#pragma OPENCL EXTENSION cl_khr_fp16 : enable + +_CLC_OVERLOAD _CLC_DEF int __spirv_ocl_ilogb(half x) { + float t = x; + return __spirv_ocl_ilogb(t); +} + +_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, __spirv_ocl_ilogb, half); +#endif + +#undef __CLC_BUILTIN +#undef __CLC_BUILTIN_F +#undef __CLC_FUNCTION diff --git a/libclc/amdgcn-amdhsa/libspirv/math/log2.cl b/libclc/amdgcn-amdhsa/libspirv/math/log2.cl new file mode 100644 index 0000000000000..63b9770bb6112 --- /dev/null +++ b/libclc/amdgcn-amdhsa/libspirv/math/log2.cl @@ -0,0 +1,19 @@ +//===----------------------------------------------------------------------===// +// +// 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 +#include + +double __ocml_log2_f64(double); +float __ocml_log2_f32(float); + +#define __CLC_FUNCTION __spirv_ocl_log2 +#define __CLC_BUILTIN __ocml_log2 +#define __CLC_BUILTIN_F __CLC_XCONCAT(__CLC_BUILTIN, _f32) +#define __CLC_BUILTIN_D __CLC_XCONCAT(__CLC_BUILTIN, _f64) +#include diff --git a/libclc/amdgcn-amdhsa/libspirv/math/remainder.cl b/libclc/amdgcn-amdhsa/libspirv/math/remainder.cl new file mode 100644 index 0000000000000..bb6f5ebc53d42 --- /dev/null +++ b/libclc/amdgcn-amdhsa/libspirv/math/remainder.cl @@ -0,0 +1,18 @@ +//===----------------------------------------------------------------------===// +// +// 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 + +float __ocml_remainder_f32(float,float); +double __ocml_remainder_f64(double,double); + +#define __CLC_FUNCTION __spirv_ocl_remainder +#define __CLC_BUILTIN __ocml_remainder +#define __CLC_BUILTIN_F __CLC_XCONCAT(__CLC_BUILTIN, _f32) +#define __CLC_BUILTIN_D __CLC_XCONCAT(__CLC_BUILTIN, _f64) +#include diff --git a/libclc/generic/libspirv/SOURCES b/libclc/generic/libspirv/SOURCES index 24fe03621928b..892148aed14e7 100644 --- a/libclc/generic/libspirv/SOURCES +++ b/libclc/generic/libspirv/SOURCES @@ -165,7 +165,7 @@ math/nextafter.cl math/pow.cl math/pown.cl math/powr.cl -math/remainer.cl +math/remainder.cl math/remquo.cl math/rint.cl math/rootn.cl diff --git a/libclc/generic/libspirv/math/remainer.cl b/libclc/generic/libspirv/math/remainder.cl similarity index 100% rename from libclc/generic/libspirv/math/remainer.cl rename to libclc/generic/libspirv/math/remainder.cl diff --git a/libclc/ptx-nvidiacl/libspirv/SOURCES b/libclc/ptx-nvidiacl/libspirv/SOURCES index 387f91ce39ab3..788ecc0426a0a 100644 --- a/libclc/ptx-nvidiacl/libspirv/SOURCES +++ b/libclc/ptx-nvidiacl/libspirv/SOURCES @@ -55,7 +55,7 @@ math/native_sqrt.cl math/native_tan.cl math/nextafter.cl math/pow.cl -math/remainer.cl +math/remainder.cl math/round.cl math/rsqrt.cl math/sin.cl diff --git a/libclc/ptx-nvidiacl/libspirv/math/remainer.cl b/libclc/ptx-nvidiacl/libspirv/math/remainder.cl similarity index 100% rename from libclc/ptx-nvidiacl/libspirv/math/remainer.cl rename to libclc/ptx-nvidiacl/libspirv/math/remainder.cl