diff options
author | Naveen Saini <naveen.kumar.saini@intel.com> | 2021-08-20 09:45:23 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2021-08-24 10:41:24 +0800 |
commit | 109fe9679337315fe80c1f97491fe4059fdf05cb (patch) | |
tree | b6c5e3bdea0f2e70964a41dd727e18693ca0ea72 /dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch | |
parent | 3838f1d263aceef8f94c340593323b67391a26fa (diff) | |
download | meta-intel-109fe9679337315fe80c1f97491fe4059fdf05cb.tar.gz |
llvm/10.0.0: apply opencl-clang recommend patches
https://github.com/intel/opencl-clang/tree/ocl-open-100/patches
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch')
-rw-r--r-- | dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch new file mode 100644 index 00000000..f7d191ff --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-devtools/clang/files/llvm10-0007-support-cl_ext_float_atomics.patch | |||
@@ -0,0 +1,377 @@ | |||
1 | From a685de6fc45afcdbe4a7120e9d5b33e175dd71cd Mon Sep 17 00:00:00 2001 | ||
2 | From: haonanya <haonan.yang@intel.com> | ||
3 | Date: Fri, 13 Aug 2021 10:00:02 +0800 | ||
4 | Subject: [PATCH 7/7] support cl_ext_float_atomics | ||
5 | |||
6 | Upstream-Status: Backport [Taken from opencl-clang patches; https://github.com/intel/opencl-clang/blob/ocl-open-100/patches/clang/0005-OpenCL-support-cl_ext_float_atomics.patch] | ||
7 | |||
8 | Signed-off-by: haonanya <haonan.yang@intel.com> | ||
9 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
10 | --- | ||
11 | clang/lib/Headers/opencl-c-base.h | 25 ++++ | ||
12 | clang/lib/Headers/opencl-c.h | 208 ++++++++++++++++++++++++++ | ||
13 | clang/test/Headers/opencl-c-header.cl | 96 ++++++++++++ | ||
14 | 3 files changed, 329 insertions(+) | ||
15 | |||
16 | diff --git a/clang/lib/Headers/opencl-c-base.h b/clang/lib/Headers/opencl-c-base.h | ||
17 | index 2cc688ccc3da..86bbee12fdf8 100644 | ||
18 | --- a/clang/lib/Headers/opencl-c-base.h | ||
19 | +++ b/clang/lib/Headers/opencl-c-base.h | ||
20 | @@ -14,6 +14,31 @@ | ||
21 | #define CL_VERSION_3_0 300 | ||
22 | #endif | ||
23 | |||
24 | +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) | ||
25 | +// For SPIR all extensions are supported. | ||
26 | +#if defined(__SPIR__) | ||
27 | +#define cl_ext_float_atomics 1 | ||
28 | +#ifdef cl_khr_fp16 | ||
29 | +#define __opencl_c_ext_fp16_global_atomic_load_store 1 | ||
30 | +#define __opencl_c_ext_fp16_local_atomic_load_store 1 | ||
31 | +#define __opencl_c_ext_fp16_global_atomic_add 1 | ||
32 | +#define __opencl_c_ext_fp16_local_atomic_add 1 | ||
33 | +#define __opencl_c_ext_fp16_global_atomic_min_max 1 | ||
34 | +#define __opencl_c_ext_fp16_local_atomic_min_max 1 | ||
35 | +#endif | ||
36 | +#ifdef __opencl_c_fp64 | ||
37 | +#define __opencl_c_ext_fp64_global_atomic_add 1 | ||
38 | +#define __opencl_c_ext_fp64_local_atomic_add 1 | ||
39 | +#define __opencl_c_ext_fp64_global_atomic_min_max 1 | ||
40 | +#define __opencl_c_ext_fp64_local_atomic_min_max 1 | ||
41 | +#endif | ||
42 | +#define __opencl_c_ext_fp32_global_atomic_add 1 | ||
43 | +#define __opencl_c_ext_fp32_local_atomic_add 1 | ||
44 | +#define __opencl_c_ext_fp32_global_atomic_min_max 1 | ||
45 | +#define __opencl_c_ext_fp32_local_atomic_min_max 1 | ||
46 | +#endif // defined(__SPIR__) | ||
47 | +#endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) | ||
48 | + | ||
49 | // Define features for 2.0 for header backward compatibility | ||
50 | #ifndef __opencl_c_int64 | ||
51 | #define __opencl_c_int64 1 | ||
52 | diff --git a/clang/lib/Headers/opencl-c.h b/clang/lib/Headers/opencl-c.h | ||
53 | index 67d900eb1c3d..b463e702d95e 100644 | ||
54 | --- a/clang/lib/Headers/opencl-c.h | ||
55 | +++ b/clang/lib/Headers/opencl-c.h | ||
56 | @@ -14354,6 +14354,214 @@ intptr_t __ovld atomic_fetch_max_explicit( | ||
57 | // defined(cl_khr_int64_extended_atomics) | ||
58 | #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0) | ||
59 | |||
60 | +#if defined(cl_ext_float_atomics) | ||
61 | + | ||
62 | +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) | ||
63 | +float __ovld atomic_fetch_min(volatile __global atomic_float *object, | ||
64 | + float operand); | ||
65 | +float __ovld atomic_fetch_max(volatile __global atomic_float *object, | ||
66 | + float operand); | ||
67 | +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object, | ||
68 | + float operand, memory_order order); | ||
69 | +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object, | ||
70 | + float operand, memory_order order); | ||
71 | +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object, | ||
72 | + float operand, memory_order order, | ||
73 | + memory_scope scope); | ||
74 | +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object, | ||
75 | + float operand, memory_order order, | ||
76 | + memory_scope scope); | ||
77 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) | ||
78 | + | ||
79 | +#if defined(__opencl_c_ext_fp32_local_atomic_min_max) | ||
80 | +float __ovld atomic_fetch_min(volatile __local atomic_float *object, | ||
81 | + float operand); | ||
82 | +float __ovld atomic_fetch_max(volatile __local atomic_float *object, | ||
83 | + float operand); | ||
84 | +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object, | ||
85 | + float operand, memory_order order); | ||
86 | +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object, | ||
87 | + float operand, memory_order order); | ||
88 | +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object, | ||
89 | + float operand, memory_order order, | ||
90 | + memory_scope scope); | ||
91 | +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object, | ||
92 | + float operand, memory_order order, | ||
93 | + memory_scope scope); | ||
94 | +#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max) | ||
95 | + | ||
96 | +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) || \ | ||
97 | + defined(__opencl_c_ext_fp32_local_atomic_min_max) | ||
98 | +float __ovld atomic_fetch_min(volatile atomic_float *object, float operand); | ||
99 | +float __ovld atomic_fetch_max(volatile atomic_float *object, float operand); | ||
100 | +float __ovld atomic_fetch_min_explicit(volatile atomic_float *object, | ||
101 | + float operand, memory_order order); | ||
102 | +float __ovld atomic_fetch_max_explicit(volatile atomic_float *object, | ||
103 | + float operand, memory_order order); | ||
104 | +float __ovld atomic_fetch_min_explicit(volatile atomic_float *object, | ||
105 | + float operand, memory_order order, | ||
106 | + memory_scope scope); | ||
107 | +float __ovld atomic_fetch_max_explicit(volatile atomic_float *object, | ||
108 | + float operand, memory_order order, | ||
109 | + memory_scope scope); | ||
110 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) || \ | ||
111 | + defined(__opencl_c_ext_fp32_local_atomic_min_max) | ||
112 | + | ||
113 | +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) | ||
114 | +double __ovld atomic_fetch_min(volatile __global atomic_double *object, | ||
115 | + double operand); | ||
116 | +double __ovld atomic_fetch_max(volatile __global atomic_double *object, | ||
117 | + double operand); | ||
118 | +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object, | ||
119 | + double operand, memory_order order); | ||
120 | +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object, | ||
121 | + double operand, memory_order order); | ||
122 | +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object, | ||
123 | + double operand, memory_order order, | ||
124 | + memory_scope scope); | ||
125 | +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object, | ||
126 | + double operand, memory_order order, | ||
127 | + memory_scope scope); | ||
128 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) | ||
129 | + | ||
130 | +#if defined(__opencl_c_ext_fp64_local_atomic_min_max) | ||
131 | +double __ovld atomic_fetch_min(volatile __local atomic_double *object, | ||
132 | + double operand); | ||
133 | +double __ovld atomic_fetch_max(volatile __local atomic_double *object, | ||
134 | + double operand); | ||
135 | +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object, | ||
136 | + double operand, memory_order order); | ||
137 | +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object, | ||
138 | + double operand, memory_order order); | ||
139 | +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object, | ||
140 | + double operand, memory_order order, | ||
141 | + memory_scope scope); | ||
142 | +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object, | ||
143 | + double operand, memory_order order, | ||
144 | + memory_scope scope); | ||
145 | +#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max) | ||
146 | + | ||
147 | +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) || \ | ||
148 | + defined(__opencl_c_ext_fp64_local_atomic_min_max) | ||
149 | +double __ovld atomic_fetch_min(volatile atomic_double *object, double operand); | ||
150 | +double __ovld atomic_fetch_max(volatile atomic_double *object, double operand); | ||
151 | +double __ovld atomic_fetch_min_explicit(volatile atomic_double *object, | ||
152 | + double operand, memory_order order); | ||
153 | +double __ovld atomic_fetch_max_explicit(volatile atomic_double *object, | ||
154 | + double operand, memory_order order); | ||
155 | +double __ovld atomic_fetch_min_explicit(volatile atomic_double *object, | ||
156 | + double operand, memory_order order, | ||
157 | + memory_scope scope); | ||
158 | +double __ovld atomic_fetch_max_explicit(volatile atomic_double *object, | ||
159 | + double operand, memory_order order, | ||
160 | + memory_scope scope); | ||
161 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) || \ | ||
162 | + defined(__opencl_c_ext_fp64_local_atomic_min_max) | ||
163 | + | ||
164 | +#if defined(__opencl_c_ext_fp32_global_atomic_add) | ||
165 | +float __ovld atomic_fetch_add(volatile __global atomic_float *object, | ||
166 | + float operand); | ||
167 | +float __ovld atomic_fetch_sub(volatile __global atomic_float *object, | ||
168 | + float operand); | ||
169 | +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object, | ||
170 | + float operand, memory_order order); | ||
171 | +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object, | ||
172 | + float operand, memory_order order); | ||
173 | +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object, | ||
174 | + float operand, memory_order order, | ||
175 | + memory_scope scope); | ||
176 | +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object, | ||
177 | + float operand, memory_order order, | ||
178 | + memory_scope scope); | ||
179 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) | ||
180 | + | ||
181 | +#if defined(__opencl_c_ext_fp32_local_atomic_add) | ||
182 | +float __ovld atomic_fetch_add(volatile __local atomic_float *object, | ||
183 | + float operand); | ||
184 | +float __ovld atomic_fetch_sub(volatile __local atomic_float *object, | ||
185 | + float operand); | ||
186 | +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object, | ||
187 | + float operand, memory_order order); | ||
188 | +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object, | ||
189 | + float operand, memory_order order); | ||
190 | +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object, | ||
191 | + float operand, memory_order order, | ||
192 | + memory_scope scope); | ||
193 | +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object, | ||
194 | + float operand, memory_order order, | ||
195 | + memory_scope scope); | ||
196 | +#endif // defined(__opencl_c_ext_fp32_local_atomic_add) | ||
197 | + | ||
198 | +#if defined(__opencl_c_ext_fp32_global_atomic_add) || \ | ||
199 | + defined(__opencl_c_ext_fp32_local_atomic_add) | ||
200 | +float __ovld atomic_fetch_add(volatile atomic_float *object, float operand); | ||
201 | +float __ovld atomic_fetch_sub(volatile atomic_float *object, float operand); | ||
202 | +float __ovld atomic_fetch_add_explicit(volatile atomic_float *object, | ||
203 | + float operand, memory_order order); | ||
204 | +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object, | ||
205 | + float operand, memory_order order); | ||
206 | +float __ovld atomic_fetch_add_explicit(volatile atomic_float *object, | ||
207 | + float operand, memory_order order, | ||
208 | + memory_scope scope); | ||
209 | +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object, | ||
210 | + float operand, memory_order order, | ||
211 | + memory_scope scope); | ||
212 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) || \ | ||
213 | + defined(__opencl_c_ext_fp32_local_atomic_add) | ||
214 | + | ||
215 | +#if defined(__opencl_c_ext_fp64_global_atomic_add) | ||
216 | +double __ovld atomic_fetch_add(volatile __global atomic_double *object, | ||
217 | + double operand); | ||
218 | +double __ovld atomic_fetch_sub(volatile __global atomic_double *object, | ||
219 | + double operand); | ||
220 | +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object, | ||
221 | + double operand, memory_order order); | ||
222 | +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object, | ||
223 | + double operand, memory_order order); | ||
224 | +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object, | ||
225 | + double operand, memory_order order, | ||
226 | + memory_scope scope); | ||
227 | +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object, | ||
228 | + double operand, memory_order order, | ||
229 | + memory_scope scope); | ||
230 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) | ||
231 | + | ||
232 | +#if defined(__opencl_c_ext_fp64_local_atomic_add) | ||
233 | +double __ovld atomic_fetch_add(volatile __local atomic_double *object, | ||
234 | + double operand); | ||
235 | +double __ovld atomic_fetch_sub(volatile __local atomic_double *object, | ||
236 | + double operand); | ||
237 | +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object, | ||
238 | + double operand, memory_order order); | ||
239 | +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object, | ||
240 | + double operand, memory_order order); | ||
241 | +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object, | ||
242 | + double operand, memory_order order, | ||
243 | + memory_scope scope); | ||
244 | +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object, | ||
245 | + double operand, memory_order order, | ||
246 | + memory_scope scope); | ||
247 | +#endif // defined(__opencl_c_ext_fp64_local_atomic_add) | ||
248 | + | ||
249 | +#if defined(__opencl_c_ext_fp64_global_atomic_add) || \ | ||
250 | + defined(__opencl_c_ext_fp64_local_atomic_add) | ||
251 | +double __ovld atomic_fetch_add(volatile atomic_double *object, double operand); | ||
252 | +double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand); | ||
253 | +double __ovld atomic_fetch_add_explicit(volatile atomic_double *object, | ||
254 | + double operand, memory_order order); | ||
255 | +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object, | ||
256 | + double operand, memory_order order); | ||
257 | +double __ovld atomic_fetch_add_explicit(volatile atomic_double *object, | ||
258 | + double operand, memory_order order, | ||
259 | + memory_scope scope); | ||
260 | +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object, | ||
261 | + double operand, memory_order order, | ||
262 | + memory_scope scope); | ||
263 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) || \ | ||
264 | + defined(__opencl_c_ext_fp64_local_atomic_add) | ||
265 | + | ||
266 | +#endif // cl_ext_float_atomics | ||
267 | + | ||
268 | // atomic_store() | ||
269 | |||
270 | #if defined(__opencl_c_atomic_scope_device) && \ | ||
271 | diff --git a/clang/test/Headers/opencl-c-header.cl b/clang/test/Headers/opencl-c-header.cl | ||
272 | index 2716076acdcf..7f720cf28142 100644 | ||
273 | --- a/clang/test/Headers/opencl-c-header.cl | ||
274 | +++ b/clang/test/Headers/opencl-c-header.cl | ||
275 | @@ -98,3 +98,99 @@ global atomic_int z = ATOMIC_VAR_INIT(99); | ||
276 | #pragma OPENCL EXTENSION cl_intel_planar_yuv : enable | ||
277 | |||
278 | // CHECK-MOD: Reading modules | ||
279 | + | ||
280 | +// For SPIR all extensions are supported. | ||
281 | +#if defined(__SPIR__) | ||
282 | + | ||
283 | +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) | ||
284 | + | ||
285 | +#if __opencl_c_ext_fp16_global_atomic_load_store != 1 | ||
286 | +#error "Incorrectly defined __opencl_c_ext_fp16_global_atomic_load_store" | ||
287 | +#endif | ||
288 | +#if __opencl_c_ext_fp16_local_atomic_load_store != 1 | ||
289 | +#error "Incorrectly defined __opencl_c_ext_fp16_local_atomic_load_store" | ||
290 | +#endif | ||
291 | +#if __opencl_c_ext_fp16_global_atomic_add != 1 | ||
292 | +#error "Incorrectly defined __opencl_c_ext_fp16_global_atomic_add" | ||
293 | +#endif | ||
294 | +#if __opencl_c_ext_fp32_global_atomic_add != 1 | ||
295 | +#error "Incorrectly defined __opencl_c_ext_fp32_global_atomic_add" | ||
296 | +#endif | ||
297 | +#if __opencl_c_ext_fp64_global_atomic_add != 1 | ||
298 | +#error "Incorrectly defined __opencl_c_ext_fp64_global_atomic_add" | ||
299 | +#endif | ||
300 | +#if __opencl_c_ext_fp16_local_atomic_add != 1 | ||
301 | +#error "Incorrectly defined __opencl_c_ext_fp16_local_atomic_add" | ||
302 | +#endif | ||
303 | +#if __opencl_c_ext_fp32_local_atomic_add != 1 | ||
304 | +#error "Incorrectly defined __opencl_c_ext_fp32_local_atomic_add" | ||
305 | +#endif | ||
306 | +#if __opencl_c_ext_fp64_local_atomic_add != 1 | ||
307 | +#error "Incorrectly defined __opencl_c_ext_fp64_local_atomic_add" | ||
308 | +#endif | ||
309 | +#if __opencl_c_ext_fp16_global_atomic_min_max != 1 | ||
310 | +#error "Incorrectly defined __opencl_c_ext_fp16_global_atomic_min_max" | ||
311 | +#endif | ||
312 | +#if __opencl_c_ext_fp32_global_atomic_min_max != 1 | ||
313 | +#error "Incorrectly defined __opencl_c_ext_fp32_global_atomic_min_max" | ||
314 | +#endif | ||
315 | +#if __opencl_c_ext_fp64_global_atomic_min_max != 1 | ||
316 | +#error "Incorrectly defined __opencl_c_ext_fp64_global_atomic_min_max" | ||
317 | +#endif | ||
318 | +#if __opencl_c_ext_fp16_local_atomic_min_max != 1 | ||
319 | +#error "Incorrectly defined __opencl_c_ext_fp16_local_atomic_min_max" | ||
320 | +#endif | ||
321 | +#if __opencl_c_ext_fp32_local_atomic_min_max != 1 | ||
322 | +#error "Incorrectly defined __opencl_c_ext_fp32_local_atomic_min_max" | ||
323 | +#endif | ||
324 | +#if __opencl_c_ext_fp64_local_atomic_min_max != 1 | ||
325 | +#error "Incorrectly defined __opencl_c_ext_fp64_local_atomic_min_max" | ||
326 | +#endif | ||
327 | +#else | ||
328 | + | ||
329 | +#ifdef __opencl_c_ext_fp16_global_atomic_load_store | ||
330 | +#error "Incorrectly __opencl_c_ext_fp16_global_atomic_load_store defined" | ||
331 | +#endif | ||
332 | +#ifdef __opencl_c_ext_fp16_local_atomic_load_store | ||
333 | +#error "Incorrectly __opencl_c_ext_fp16_local_atomic_load_store defined" | ||
334 | +#endif | ||
335 | +#ifdef __opencl_c_ext_fp16_global_atomic_add | ||
336 | +#error "Incorrectly __opencl_c_ext_fp16_global_atomic_add defined" | ||
337 | +#endif | ||
338 | +#ifdef __opencl_c_ext_fp32_global_atomic_add | ||
339 | +#error "Incorrectly __opencl_c_ext_fp32_global_atomic_add defined" | ||
340 | +#endif | ||
341 | +#ifdef __opencl_c_ext_fp64_global_atomic_add | ||
342 | +#error "Incorrectly __opencl_c_ext_fp64_global_atomic_add defined" | ||
343 | +#endif | ||
344 | +#ifdef __opencl_c_ext_fp16_local_atomic_add | ||
345 | +#error "Incorrectly __opencl_c_ext_fp16_local_atomic_add defined" | ||
346 | +#endif | ||
347 | +#ifdef __opencl_c_ext_fp32_local_atomic_add | ||
348 | +#error "Incorrectly __opencl_c_ext_fp32_local_atomic_add defined" | ||
349 | +#endif | ||
350 | +#ifdef __opencl_c_ext_fp64_local_atomic_add | ||
351 | +#error "Incorrectly __opencl_c_ext_fp64_local_atomic_add defined" | ||
352 | +#endif | ||
353 | +#ifdef __opencl_c_ext_fp16_global_atomic_min_max | ||
354 | +#error "Incorrectly __opencl_c_ext_fp16_global_atomic_min_max defined" | ||
355 | +#endif | ||
356 | +#ifdef __opencl_c_ext_fp32_global_atomic_min_max | ||
357 | +#error "Incorrectly __opencl_c_ext_fp32_global_atomic_min_max defined" | ||
358 | +#endif | ||
359 | +#ifdef __opencl_c_ext_fp64_global_atomic_min_max | ||
360 | +#error "Incorrectly __opencl_c_ext_fp64_global_atomic_min_max defined" | ||
361 | +#endif | ||
362 | +#ifdef __opencl_c_ext_fp16_local_atomic_min_max | ||
363 | +#error "Incorrectly __opencl_c_ext_fp16_local_atomic_min_max defined" | ||
364 | +#endif | ||
365 | +#ifdef __opencl_c_ext_fp32_local_atomic_min_max | ||
366 | +#error "Incorrectly __opencl_c_ext_fp32_local_atomic_min_max defined" | ||
367 | +#endif | ||
368 | +#ifdef __opencl_c_ext_fp64_local_atomic_min_max | ||
369 | +#error "Incorrectly __opencl_c_ext_fp64_local_atomic_min_max defined" | ||
370 | +#endif | ||
371 | + | ||
372 | +#endif //(defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) | ||
373 | + | ||
374 | +#endif // defined(__SPIR__) | ||
375 | -- | ||
376 | 2.17.1 | ||
377 | |||