10#ifndef __SPIRV_BUILTIN_VARS_H
11#define __SPIRV_BUILTIN_VARS_H
13#if __cplusplus >= 201103L
14#define __SPIRV_NOEXCEPT noexcept
16#define __SPIRV_NOEXCEPT
19#pragma push_macro("__size_t")
20#pragma push_macro("__uint32_t")
21#pragma push_macro("__uint64_t")
22#define __size_t __SIZE_TYPE__
23#define __uint32_t __UINT32_TYPE__
25#define __SPIRV_overloadable __attribute__((overloadable))
26#define __SPIRV_convergent __attribute__((convergent))
27#define __SPIRV_inline __attribute__((always_inline))
29#ifdef SYCL_LANGUAGE_VERSION
30#define __SPIRV_GLOBALAS [[clang::sycl_global]]
31#define __SPIRV_LOCALAS [[clang::sycl_local]]
32#define __SPIRV_PRIVATEAS [[clang::sycl_private]]
33#define __SPIRV_GENERICAS [[clang::sycl_generic]]
35#define __SPIRV_GLOBALAS __attribute__((opencl_global))
36#define __SPIRV_LOCALAS __attribute__((opencl_local))
37#define __SPIRV_PRIVATEAS __attribute__((opencl_private))
38#define __SPIRV_GENERICAS __attribute__((opencl_generic))
47#if (__has_builtin(__builtin_spirv_num_workgroups))
48#define __SPIRV_BUILTIN_ALIAS(builtin) \
49 __attribute__((clang_builtin_alias(builtin)))
51#define __SPIRV_BUILTIN_ALIAS(builtin)
57 __spirv_BuiltInNumWorkgroups(
int);
59 __spirv_BuiltInWorkgroupSize(
int);
61 __spirv_BuiltInWorkgroupId(
int);
63 __spirv_BuiltInLocalInvocationId(
int);
65 __spirv_BuiltInGlobalInvocationId(
int);
68 __spirv_BuiltInGlobalSize(
int);
70 __spirv_BuiltInGlobalOffset(
int);
72 __spirv_BuiltInSubgroupSize();
74 __spirv_BuiltInSubgroupMaxSize();
76 __spirv_BuiltInNumSubgroups();
78 __spirv_BuiltInSubgroupId();
80 __uint32_t __spirv_BuiltInSubgroupLocalInvocationId();
94 *__spirv_GenericCastToPtrExplicit_ToGlobal(
109 __builtin_spirv_generic_cast_to_ptr_explicit)
volatile void __SPIRV_LOCALAS
114 volatile void __SPIRV_LOCALAS *__spirv_GenericCastToPtrExplicit_ToLocal(
126 *__spirv_GenericCastToPtrExplicit_ToPrivate(
198#pragma pop_macro("__size_t")
199#pragma pop_macro("__uint32_t")
200#pragma pop_macro("__uint64_t")
202#undef __SPIRV_overloadable
203#undef __SPIRV_convergent
206#undef __SPIRV_GLOBALAS
207#undef __SPIRV_LOCALAS
208#undef __SPIRV_PRIVATEAS
209#undef __SPIRV_GENERICAS
211#undef __SPIRV_BUILTIN_ALIAS
212#undef __SPIRV_NOEXCEPT
#define __SPIRV_BUILTIN_ALIAS(builtin)
static __SPIRV_overloadable __SPIRV_inline void __SPIRV_PRIVATEAS * __spirv_GenericCastToPtr_ToPrivate(void __SPIRV_GENERICAS *p, int) __SPIRV_NOEXCEPT
#define __SPIRV_GENERICAS
static __SPIRV_overloadable __SPIRV_inline void __SPIRV_GLOBALAS * __spirv_GenericCastToPtr_ToGlobal(void __SPIRV_GENERICAS *p, int) __SPIRV_NOEXCEPT
#define __SPIRV_PRIVATEAS
#define __SPIRV_overloadable
static __SPIRV_overloadable __SPIRV_inline void __SPIRV_LOCALAS * __spirv_GenericCastToPtr_ToLocal(void __SPIRV_GENERICAS *p, int) __SPIRV_NOEXCEPT