|
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