|
26 | 26 | #define __constant __attribute__((opencl_constant)) |
27 | 27 | #ifdef __SYCL_DEVICE_ONLY__ |
28 | 28 | #define __generic |
| 29 | +#define __SPIRV_SYCL_EXTERNAL __attribute__((sycl_device)) |
29 | 30 | #else |
30 | 31 | #define __generic __attribute__((opencl_generic)) |
| 32 | +#define __SPIRV_SYCL_EXTERNAL |
31 | 33 | #endif |
32 | 34 |
|
33 | 35 | // Check if SPIR-V builtins are supported. |
|
45 | 47 |
|
46 | 48 | // OpGenericCastToPtrExplicit |
47 | 49 |
|
48 | | -extern __SPIRV_overloadable |
| 50 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
49 | 51 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
50 | 52 | __global void *__spirv_GenericCastToPtrExplicit_ToGlobal(__generic void *, |
51 | 53 | int) __SPIRV_NOEXCEPT; |
52 | | -extern __SPIRV_overloadable |
| 54 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
53 | 55 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
54 | 56 | __global const void * |
55 | 57 | __spirv_GenericCastToPtrExplicit_ToGlobal(__generic const void *, |
56 | 58 | int) __SPIRV_NOEXCEPT; |
57 | | -extern __SPIRV_overloadable |
| 59 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
58 | 60 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
59 | 61 | __global volatile void * |
60 | 62 | __spirv_GenericCastToPtrExplicit_ToGlobal(__generic volatile void *, |
61 | 63 | int) __SPIRV_NOEXCEPT; |
62 | | -extern __SPIRV_overloadable |
| 64 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
63 | 65 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
64 | 66 | __global const volatile void * |
65 | 67 | __spirv_GenericCastToPtrExplicit_ToGlobal(__generic const volatile void *, |
66 | 68 | int) __SPIRV_NOEXCEPT; |
67 | | -extern __SPIRV_overloadable |
| 69 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
68 | 70 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
69 | 71 | __local void *__spirv_GenericCastToPtrExplicit_ToLocal(__generic void *, |
70 | 72 | int) __SPIRV_NOEXCEPT; |
71 | | -extern __SPIRV_overloadable |
| 73 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
72 | 74 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
73 | 75 | __local const void * |
74 | 76 | __spirv_GenericCastToPtrExplicit_ToLocal(__generic const void *, |
75 | 77 | int) __SPIRV_NOEXCEPT; |
76 | | -extern __SPIRV_overloadable |
| 78 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
77 | 79 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
78 | 80 | __local volatile void * |
79 | 81 | __spirv_GenericCastToPtrExplicit_ToLocal(__generic volatile void *, |
80 | 82 | int) __SPIRV_NOEXCEPT; |
81 | | -extern __SPIRV_overloadable |
| 83 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
82 | 84 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
83 | 85 | __local const volatile void * |
84 | 86 | __spirv_GenericCastToPtrExplicit_ToLocal(__generic const volatile void *, |
85 | 87 | int) __SPIRV_NOEXCEPT; |
86 | | -extern __SPIRV_overloadable |
| 88 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
87 | 89 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
88 | 90 | __private void * |
89 | 91 | __spirv_GenericCastToPtrExplicit_ToPrivate(__generic void *, |
90 | 92 | int) __SPIRV_NOEXCEPT; |
91 | | -extern __SPIRV_overloadable |
| 93 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
92 | 94 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
93 | 95 | __private const void * |
94 | 96 | __spirv_GenericCastToPtrExplicit_ToPrivate(__generic const void *, |
95 | 97 | int) __SPIRV_NOEXCEPT; |
96 | | -extern __SPIRV_overloadable |
| 98 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
97 | 99 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
98 | 100 | __private volatile void * |
99 | 101 | __spirv_GenericCastToPtrExplicit_ToPrivate(__generic volatile void *, |
100 | 102 | int) __SPIRV_NOEXCEPT; |
101 | | -extern __SPIRV_overloadable |
| 103 | +extern __SPIRV_overloadable __SPIRV_SYCL_EXTERNAL |
102 | 104 | __SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit) |
103 | 105 | __private const volatile void * |
104 | 106 | __spirv_GenericCastToPtrExplicit_ToPrivate(__generic const volatile void *, |
@@ -172,6 +174,7 @@ __spirv_GenericCastToPtr_ToPrivate(__generic const volatile void *p, |
172 | 174 | #undef __local |
173 | 175 | #undef __constant |
174 | 176 | #undef __generic |
| 177 | +#undef __SPIRV_SYCL_EXTERNAL |
175 | 178 |
|
176 | 179 | #undef __SPIRV_BUILTIN_ALIAS |
177 | 180 | #undef __SPIRV_NOEXCEPT |
|
0 commit comments