13
13
#pragma clang diagnostic push
14
14
#pragma clang diagnostic ignored "-Wsycl-strict"
15
15
16
+ #pragma push_macro("SPIRV_NOEXCEPT")
17
+ #if __cplusplus >= 201103L
18
+ #define SPIRV_NOEXCEPT noexcept
19
+ #else
20
+ #define SPIRV_NOEXCEPT
21
+ #endif
22
+
16
23
#define __SPIRV_overloadable __attribute__ ((overloadable))
17
24
#define __SPIRV_convergent __attribute__ ((convergent))
18
25
#define __SPIRV_inline __attribute__ ((always_inline))
30
37
#define __generic __attribute__ ((opencl_generic))
31
38
#endif
32
39
33
- #ifdef __SYCL_DEVICE_ONLY__
34
- #else
35
- #endif
36
-
37
40
// Check if SPIR-V builtins are supported.
38
41
// As the translator doesn't use the LLVM intrinsics (which would be emitted if
39
42
// we use the SPIR-V builtins) we can't rely on the SPIRV32/SPIRV64 etc macros
40
- // to establish if we can use the builtin alias. We disable builtin altogether if we do not
41
- // intent to use the backend.
42
- // So instead of use target macros, rely on a __has_builtin test.
43
+ // to establish if we can use the builtin alias. We disable builtin altogether
44
+ // if we do not intent to use the backend. So instead of use target macros, rely
45
+ // on a __has_builtin test.
43
46
#if (__has_builtin(__builtin_spirv_generic_cast_to_ptr_explicit))
44
47
#define _SPIRV_BUILTIN_ALIAS (builtin ) \
45
48
__attribute__ ((clang_builtin_alias(builtin)))
54
57
55
58
// OpGenericCastToPtrExplicit
56
59
57
- __SPIRV_overloadable
60
+ extern __SPIRV_overloadable
58
61
_SPIRV_BUILTIN_ALIAS(__builtin_spirv_generic_cast_to_ptr_explicit)
59
- __global void * __spirv_GenericCastToPtrExplicit_ToGlobal (__generic void * , int );
60
- __SPIRV_overloadable
62
+ __global void *__spirv_GenericCastToPtrExplicit_ToGlobal(__generic void *,
63
+ int ) SPIRV_NOEXCEPT;
64
+ extern __SPIRV_overloadable
61
65
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
62
66
__global const void *
63
- __spirv_GenericCastToPtrExplicit_ToGlobal (__generic const void * , int );
64
- __SPIRV_overloadable
67
+ __spirv_GenericCastToPtrExplicit_ToGlobal(__generic const void *,
68
+ int ) SPIRV_NOEXCEPT;
69
+ extern __SPIRV_overloadable
65
70
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
66
71
__global volatile void *
67
- __spirv_GenericCastToPtrExplicit_ToGlobal (__generic volatile void * , int );
68
- __SPIRV_overloadable
72
+ __spirv_GenericCastToPtrExplicit_ToGlobal(__generic volatile void *,
73
+ int ) SPIRV_NOEXCEPT;
74
+ extern __SPIRV_overloadable
69
75
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
70
76
__global const volatile void *
71
- __spirv_GenericCastToPtrExplicit_ToGlobal (__generic const volatile void * , int );
72
- __SPIRV_overloadable
77
+ __spirv_GenericCastToPtrExplicit_ToGlobal(__generic const volatile void *,
78
+ int ) SPIRV_NOEXCEPT;
79
+ extern __SPIRV_overloadable
73
80
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
74
- __local void * __spirv_GenericCastToPtrExplicit_ToLocal (__generic void * , int );
75
- __SPIRV_overloadable
81
+ __local void *__spirv_GenericCastToPtrExplicit_ToLocal(__generic void *,
82
+ int ) SPIRV_NOEXCEPT;
83
+ extern __SPIRV_overloadable
76
84
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
77
85
__local const void *
78
- __spirv_GenericCastToPtrExplicit_ToLocal (__generic const void * , int );
79
- __SPIRV_overloadable
86
+ __spirv_GenericCastToPtrExplicit_ToLocal(__generic const void *,
87
+ int ) SPIRV_NOEXCEPT;
88
+ extern __SPIRV_overloadable
80
89
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
81
90
__local volatile void *
82
- __spirv_GenericCastToPtrExplicit_ToLocal (__generic volatile void * , int );
83
- __SPIRV_overloadable
91
+ __spirv_GenericCastToPtrExplicit_ToLocal(__generic volatile void *,
92
+ int ) SPIRV_NOEXCEPT;
93
+ extern __SPIRV_overloadable
84
94
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
85
95
__local const volatile void *
86
- __spirv_GenericCastToPtrExplicit_ToLocal (__generic const volatile void * , int );
87
- __SPIRV_overloadable
96
+ __spirv_GenericCastToPtrExplicit_ToLocal(__generic const volatile void *,
97
+ int ) SPIRV_NOEXCEPT;
98
+ extern __SPIRV_overloadable
88
99
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
89
100
__private void *__spirv_GenericCastToPtrExplicit_ToPrivate(__generic void *,
90
- int );
91
- __SPIRV_overloadable
101
+ int ) SPIRV_NOEXCEPT ;
102
+ extern __SPIRV_overloadable
92
103
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
93
104
__private const void *
94
- __spirv_GenericCastToPtrExplicit_ToPrivate (__generic const void * , int );
95
- __SPIRV_overloadable
105
+ __spirv_GenericCastToPtrExplicit_ToPrivate(__generic const void *,
106
+ int ) SPIRV_NOEXCEPT;
107
+ extern __SPIRV_overloadable
96
108
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
97
109
__private volatile void *
98
- __spirv_GenericCastToPtrExplicit_ToPrivate (__generic volatile void * , int );
99
- __SPIRV_overloadable
110
+ __spirv_GenericCastToPtrExplicit_ToPrivate(__generic volatile void *,
111
+ int ) SPIRV_NOEXCEPT;
112
+ extern __SPIRV_overloadable
100
113
_SPIRV_BUILTIN_ALIAS (__builtin_spirv_generic_cast_to_ptr_explicit)
101
114
__private const volatile void *
102
115
__spirv_GenericCastToPtrExplicit_ToPrivate(__generic const volatile void *,
103
- int );
116
+ int ) SPIRV_NOEXCEPT ;
104
117
105
118
// OpGenericCastToPtr
106
119
107
- __SPIRV_overloadable __SPIRV_inline __global void *
108
- __spirv_GenericCastToPtr_ToGlobal (__generic void * p , int ) {
120
+ static __SPIRV_overloadable __SPIRV_inline __global void *
121
+ __spirv_GenericCastToPtr_ToGlobal (__generic void *p, int ) SPIRV_NOEXCEPT {
109
122
return (__global void *)p;
110
123
}
111
- __SPIRV_overloadable __SPIRV_inline __global const void *
112
- __spirv_GenericCastToPtr_ToGlobal (__generic const void * p , int ) {
124
+ static __SPIRV_overloadable __SPIRV_inline __global const void *
125
+ __spirv_GenericCastToPtr_ToGlobal (__generic const void *p, int ) SPIRV_NOEXCEPT {
113
126
return (__global const void *)p;
114
127
}
115
- __SPIRV_overloadable __SPIRV_inline __global volatile void *
116
- __spirv_GenericCastToPtr_ToGlobal (__generic volatile void * p , int ) {
128
+ static __SPIRV_overloadable __SPIRV_inline __global volatile void *
129
+ __spirv_GenericCastToPtr_ToGlobal (__generic volatile void *p,
130
+ int ) SPIRV_NOEXCEPT {
117
131
return (__global volatile void *)p;
118
132
}
119
- __SPIRV_overloadable __SPIRV_inline __global const volatile void *
120
- __spirv_GenericCastToPtr_ToGlobal (__generic const volatile void * p , int ) {
133
+ static __SPIRV_overloadable __SPIRV_inline __global const volatile void *
134
+ __spirv_GenericCastToPtr_ToGlobal (__generic const volatile void *p,
135
+ int ) SPIRV_NOEXCEPT {
121
136
return (__global const volatile void *)p;
122
137
}
123
- __SPIRV_overloadable __SPIRV_inline __local void *
124
- __spirv_GenericCastToPtr_ToLocal (__generic void * p , int ) {
138
+ static __SPIRV_overloadable __SPIRV_inline __local void *
139
+ __spirv_GenericCastToPtr_ToLocal (__generic void *p, int ) SPIRV_NOEXCEPT {
125
140
return (__local void *)p;
126
141
}
127
- __SPIRV_overloadable __SPIRV_inline __local const void *
128
- __spirv_GenericCastToPtr_ToLocal (__generic const void * p , int ) {
142
+ static __SPIRV_overloadable __SPIRV_inline __local const void *
143
+ __spirv_GenericCastToPtr_ToLocal (__generic const void *p, int ) SPIRV_NOEXCEPT {
129
144
return (__local const void *)p;
130
145
}
131
- __SPIRV_overloadable __SPIRV_inline __local volatile void *
132
- __spirv_GenericCastToPtr_ToLocal (__generic volatile void * p , int ) {
146
+ static __SPIRV_overloadable __SPIRV_inline __local volatile void *
147
+ __spirv_GenericCastToPtr_ToLocal (__generic volatile void *p,
148
+ int ) SPIRV_NOEXCEPT {
133
149
return (__local volatile void *)p;
134
150
}
135
- __SPIRV_overloadable __SPIRV_inline __local const volatile void *
136
- __spirv_GenericCastToPtr_ToLocal (__generic const volatile void * p , int ) {
151
+ static __SPIRV_overloadable __SPIRV_inline __local const volatile void *
152
+ __spirv_GenericCastToPtr_ToLocal (__generic const volatile void *p,
153
+ int ) SPIRV_NOEXCEPT {
137
154
return (__local const volatile void *)p;
138
155
}
139
- __SPIRV_overloadable __SPIRV_inline __private void *
140
- __spirv_GenericCastToPtr_ToPrivate (__generic void * p , int ) {
156
+ static __SPIRV_overloadable __SPIRV_inline __private void *
157
+ __spirv_GenericCastToPtr_ToPrivate (__generic void *p, int ) SPIRV_NOEXCEPT {
141
158
return (__private void *)p;
142
159
}
143
- __SPIRV_overloadable __SPIRV_inline __private const void *
144
- __spirv_GenericCastToPtr_ToPrivate (__generic const void * p , int ) {
160
+ static __SPIRV_overloadable __SPIRV_inline __private const void *
161
+ __spirv_GenericCastToPtr_ToPrivate (__generic const void *p,
162
+ int ) SPIRV_NOEXCEPT {
145
163
return (__private const void *)p;
146
164
}
147
- __SPIRV_overloadable __SPIRV_inline __private volatile void *
148
- __spirv_GenericCastToPtr_ToPrivate (__generic volatile void * p , int ) {
165
+ static __SPIRV_overloadable __SPIRV_inline __private volatile void *
166
+ __spirv_GenericCastToPtr_ToPrivate (__generic volatile void *p,
167
+ int ) SPIRV_NOEXCEPT {
149
168
return (__private volatile void *)p;
150
169
}
151
- __SPIRV_overloadable __SPIRV_inline __private const volatile void *
152
- __spirv_GenericCastToPtr_ToPrivate (__generic const volatile void * p , int ) {
170
+ static __SPIRV_overloadable __SPIRV_inline __private const volatile void *
171
+ __spirv_GenericCastToPtr_ToPrivate (__generic const volatile void *p,
172
+ int ) SPIRV_NOEXCEPT {
153
173
return (__private const volatile void *)p;
154
174
}
155
175
@@ -169,6 +189,7 @@ __spirv_GenericCastToPtr_ToPrivate(__generic const volatile void *p, int) {
169
189
#undef _SPIRV_AVAILABILITY
170
190
#undef _SPIRV_AVAILABILITY_STAGE
171
191
192
+ #pragma pop_macro("SPIRV_NOEXCEPT")
172
193
#pragma clang diagnostic pop
173
194
174
195
#endif /* __SPIRV_BUILTIN_VARS_H */
0 commit comments