|
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