clang 23.0.0git
__clang_spirv_libdevice_declares.h
Go to the documentation of this file.
1/*===-- __clang_spirv_libdevice_declares.h - decls for libdevice functions --===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10#ifndef __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
11#define __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
12
13#if defined(__cplusplus)
14extern "C" {
15#else
16_Pragma("push_macro(\"bool\")");
17#define bool _Bool
18#endif
19
20#define _CLC_OVERLOAD [[clang::overloadable]]
21#define _CLC_CONSTFN [[gnu::const]]
22// TODO: Add vector versions of the API in case it is required.
83_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fma(float, float, float);
84_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_fma(double, double, double);
124_CLC_OVERLOAD _CLC_CONSTFN double __spirv_ocl_remquo(double, double, int *);
141
142#if defined(__cplusplus)
143} // extern "C"
144#else
145_Pragma("pop_macro(\"bool\")");
146#endif
147#endif // __CLANG_SPIRV_LIBDEVICE_DECLARES_H__
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_ldexp(float, int)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_modf(float, float *)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmax(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_ceil(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cbrt(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_remainder(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_pow(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fabs(float)
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsFinite(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sqrt(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atanh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_remquo(float, float, int *)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tgamma(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sin(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cos(float)
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsNan(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_expm1(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log1p(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fma(float, float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log2(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atan(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_copysign(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sincos(float, float *)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_frexp(float, int *)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_nan(int)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_lgamma(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_acos(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_rsqrt(float)
_CLC_OVERLOAD _CLC_CONSTFN int __spirv_ocl_ilogb(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_acosh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_round(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fdim(float, float)
_CLC_OVERLOAD _CLC_CONSTFN unsigned int __spirv_ocl_s_abs(int)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log10(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sinh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_erf(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_hypot(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_nextafter(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_log(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_logb(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cospi(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_trunc(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_cosh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp10(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmin(float, float)
_CLC_OVERLOAD _CLC_CONSTFN bool __spirv_IsInf(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_floor(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_fmod(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_asinh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp2(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tanh(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_exp(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_erfc(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_tan(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_atan2(float, float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_sinpi(float)
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_asin(float)
_Pragma("push_macro(\"bool\")")
_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_pown(float, int)