================ @@ -0,0 +1,137 @@ +/*===-- __clang_spirv_libdevice_declares.h - decls for libdevice functions --=== + * + * 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 + * + *===-----------------------------------------------------------------------=== + */ + +#ifndef __CLANG_SPIRV_LIBDEVICE_DECLARES_H__ +#define __CLANG_SPIRV_LIBDEVICE_DECLARES_H__ + +#if defined(__cplusplus) +extern "C" { +#endif + +#define _CLC_OVERLOAD [[clang::overloadable]] +#define _CLC_CONSTFN [[gnu::const]] +_CLC_OVERLOAD _CLC_CONSTFN unsigned int __spirv_ocl_s_abs(int); +_CLC_OVERLOAD _CLC_CONSTFN float __spirv_ocl_acos(float); ---------------- vmaksimo wrote:
Argument and result types could also be vectors. Should there be an explicit declaration of such builtin as well? (the question relates to most of the builtins, see the spec https://registry.khronos.org/SPIR-V/specs/unified1/OpenCL.ExtendedInstructionSet.100.html) https://github.com/llvm/llvm-project/pull/182215 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
