================
@@ -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

Reply via email to