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#define __global __attribute__((opencl_global))
30#define __local __attribute__((opencl_local))
31#define __private __attribute__((opencl_private))
32#define __constant __attribute__((opencl_constant))
33#ifdef __SYCL_DEVICE_ONLY__
36#define __generic __attribute__((opencl_generic))
45#if (__has_builtin(__builtin_spirv_num_workgroups))
46#define __SPIRV_BUILTIN_ALIAS(builtin) \
47 __attribute__((clang_builtin_alias(builtin)))
49#define __SPIRV_BUILTIN_ALIAS(builtin)
55 __spirv_BuiltInNumWorkgroups(
int);
57 __spirv_BuiltInWorkgroupSize(
int);
59 __spirv_BuiltInWorkgroupId(
int);
61 __spirv_BuiltInLocalInvocationId(
int);
63 __spirv_BuiltInGlobalInvocationId(
int);
66 __spirv_BuiltInGlobalSize(
int);
68 __spirv_BuiltInGlobalOffset(
int);
70 __spirv_BuiltInSubgroupSize();
72 __spirv_BuiltInSubgroupMaxSize();
74 __spirv_BuiltInNumSubgroups();
76 __spirv_BuiltInSubgroupId();
78 __uint32_t __spirv_BuiltInSubgroupLocalInvocationId();
160 return (
__global const volatile void *)p;
169 return (
__local const void *)p;
174 return (
__local volatile void *)p;
179 return (
__local const volatile void *)p;
198 return (
__private const volatile void *)p;
201#pragma pop_macro("__size_t")
202#pragma pop_macro("__uint32_t")
203#pragma pop_macro("__uint64_t")
205#undef __SPIRV_overloadable
206#undef __SPIRV_convergent
214#undef __SPIRV_BUILTIN_ALIAS
215#undef __SPIRV_NOEXCEPT
#define __SPIRV_BUILTIN_ALIAS(builtin)
__SPIRV_overloadable __global void * __spirv_GenericCastToPtrExplicit_ToGlobal(__generic void *, int) __SPIRV_NOEXCEPT
static __SPIRV_overloadable __SPIRV_inline __private void * __spirv_GenericCastToPtr_ToPrivate(__generic void *p, int) __SPIRV_NOEXCEPT
__SPIRV_overloadable __private void * __spirv_GenericCastToPtrExplicit_ToPrivate(__generic void *, int) __SPIRV_NOEXCEPT
__SPIRV_overloadable __local void * __spirv_GenericCastToPtrExplicit_ToLocal(__generic void *, int) __SPIRV_NOEXCEPT
static __SPIRV_overloadable __SPIRV_inline __local void * __spirv_GenericCastToPtr_ToLocal(__generic void *p, int) __SPIRV_NOEXCEPT
#define __SPIRV_overloadable
static __SPIRV_overloadable __SPIRV_inline __global void * __spirv_GenericCastToPtr_ToGlobal(__generic void *p, int) __SPIRV_NOEXCEPT