|
1 | | -From 389fc0f80da472af9746d3b34e77ad8c7ee2f70e Mon Sep 17 00:00:00 2001 |
| 1 | +From 675413e70657ab393a097c70fd7f2b4423d2983b Mon Sep 17 00:00:00 2001 |
2 | 2 | From: haonanya < [email protected]> |
3 | | -Date: Fri, 13 Aug 2021 10:00:02 +0800 |
| 3 | +Date: Wed, 9 Feb 2022 08:53:06 +0800 |
4 | 4 | Subject: [PATCH] support cl_ext_float_atomics |
5 | 5 |
|
6 | 6 | This backports https://reviews.llvm.org/D106343 and https://reviews.llvm.org/D109740 |
7 | 7 |
|
8 | 8 | Signed-off-by: haonanya < [email protected]> |
9 | 9 | --- |
10 | 10 | clang/lib/Headers/opencl-c-base.h | 22 ++ |
11 | | - clang/lib/Headers/opencl-c.h | 372 ++++++++++++++++++++++++++ |
| 11 | + clang/lib/Headers/opencl-c.h | 378 ++++++++++++++++++++++++++ |
12 | 12 | clang/lib/Sema/Sema.cpp | 3 + |
13 | 13 | clang/test/Headers/opencl-c-header.cl | 96 +++++++ |
14 | | - 4 files changed, 493 insertions(+) |
| 14 | + 4 files changed, 499 insertions(+) |
15 | 15 |
|
16 | 16 | diff --git a/clang/lib/Headers/opencl-c-base.h b/clang/lib/Headers/opencl-c-base.h |
17 | 17 | index 2cc688ccc3da..18d367de68ec 100644 |
@@ -47,10 +47,10 @@ index 2cc688ccc3da..18d367de68ec 100644 |
47 | 47 | #ifndef __opencl_c_int64 |
48 | 48 | #define __opencl_c_int64 1 |
49 | 49 | diff --git a/clang/lib/Headers/opencl-c.h b/clang/lib/Headers/opencl-c.h |
50 | | -index d8173f0aa843..be39b1ca8c78 100644 |
| 50 | +index d8173f0aa843..efeaea950715 100644 |
51 | 51 | --- a/clang/lib/Headers/opencl-c.h |
52 | 52 | +++ b/clang/lib/Headers/opencl-c.h |
53 | | -@@ -14354,6 +14354,378 @@ intptr_t __ovld atomic_fetch_max_explicit( |
| 53 | +@@ -14354,6 +14354,384 @@ intptr_t __ovld atomic_fetch_max_explicit( |
54 | 54 | // defined(cl_khr_int64_extended_atomics) |
55 | 55 | #endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0) |
56 | 56 |
|
@@ -220,6 +220,7 @@ index d8173f0aa843..be39b1ca8c78 100644 |
220 | 220 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \ |
221 | 221 | + defined(__opencl_c_ext_fp32_local_atomic_min_max) |
222 | 222 | + |
| 223 | ++#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) |
223 | 224 | +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) |
224 | 225 | +double __ovld atomic_fetch_min(volatile __global atomic_double *object, |
225 | 226 | + double operand); |
@@ -270,6 +271,8 @@ index d8173f0aa843..be39b1ca8c78 100644 |
270 | 271 | + memory_scope scope); |
271 | 272 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \ |
272 | 273 | + defined(__opencl_c_ext_fp64_local_atomic_min_max) |
| 274 | ++#endif // defined(cl_khr_int64_base_atomics) && |
| 275 | ++ // defined(cl_khr_int64_extended_atomics) |
273 | 276 | + |
274 | 277 | +#if defined(__opencl_c_ext_fp16_global_atomic_add) |
275 | 278 | +half __ovld atomic_fetch_add(volatile __global atomic_half *object, |
@@ -373,6 +376,7 @@ index d8173f0aa843..be39b1ca8c78 100644 |
373 | 376 | +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \ |
374 | 377 | + defined(__opencl_c_ext_fp32_local_atomic_add) |
375 | 378 | + |
| 379 | ++#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) |
376 | 380 | +#if defined(__opencl_c_ext_fp64_global_atomic_add) |
377 | 381 | +double __ovld atomic_fetch_add(volatile __global atomic_double *object, |
378 | 382 | + double operand); |
@@ -423,6 +427,8 @@ index d8173f0aa843..be39b1ca8c78 100644 |
423 | 427 | + memory_scope scope); |
424 | 428 | +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \ |
425 | 429 | + defined(__opencl_c_ext_fp64_local_atomic_add) |
| 430 | ++#endif // defined(cl_khr_int64_base_atomics) && |
| 431 | ++ // defined(cl_khr_int64_extended_atomics) |
426 | 432 | + |
427 | 433 | +#endif // cl_ext_float_atomics |
428 | 434 | + |
@@ -548,5 +554,5 @@ index 2716076acdcf..7f720cf28142 100644 |
548 | 554 | + |
549 | 555 | +#endif // defined(__SPIR__) |
550 | 556 | -- |
551 | | -2.17.1 |
| 557 | +2.29.2 |
552 | 558 |
|
0 commit comments