Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 48 additions & 25 deletions patches/clang/0005-OpenCL-support-cl_ext_float_atomics.patch
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
From 9b48f70bae77fdc752ee5e98949a7ed2c9373037 Mon Sep 17 00:00:00 2001
From 6ef0d9afd03c80671393f4d749ddbeb08f7291fe Mon Sep 17 00:00:00 2001
From: haonanya <haonan.yang@intel.com>
Date: Fri, 13 Aug 2021 10:00:02 +0800
Subject: [PATCH] [OpenCL] support cl_ext_float_atomics

Signed-off-by: haonanya <haonan.yang@intel.com>
Signed-off-by: Haonan Yang <haonan.yang@intel.com>
---
clang/lib/Headers/opencl-c-base.h | 22 +++
clang/lib/Headers/opencl-c.h | 208 ++++++++++++++++++++++++++
clang/test/Headers/opencl-c-header.cl | 96 ++++++++++++
3 files changed, 326 insertions(+)
clang/lib/Headers/opencl-c.h | 232 ++++++++++++++++++++++++++
clang/test/Headers/opencl-c-header.cl | 96 +++++++++++
3 files changed, 350 insertions(+)

diff --git a/clang/lib/Headers/opencl-c-base.h b/clang/lib/Headers/opencl-c-base.h
index 2cc688ccc3da..18d367de68ec 100644
Expand Down Expand Up @@ -45,10 +44,10 @@ index 2cc688ccc3da..18d367de68ec 100644
#ifndef __opencl_c_int64
#define __opencl_c_int64 1
diff --git a/clang/lib/Headers/opencl-c.h b/clang/lib/Headers/opencl-c.h
index d8173f0aa843..50515ac17a0c 100644
index d8173f0aa843..454469991d59 100644
--- a/clang/lib/Headers/opencl-c.h
+++ b/clang/lib/Headers/opencl-c.h
@@ -14354,6 +14354,214 @@ intptr_t __ovld atomic_fetch_max_explicit(
@@ -14354,6 +14354,238 @@ intptr_t __ovld atomic_fetch_max_explicit(
// defined(cl_khr_int64_extended_atomics)
#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0)

Expand Down Expand Up @@ -102,10 +101,12 @@ index d8173f0aa843..50515ac17a0c 100644
+float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
+ float operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \
+ defined(__opencl_c_ext_fp32_local_atomic_min_max)
+#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) &&
+ // defined(__opencl_c_ext_fp32_local_atomic_min_max)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max)
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_min(volatile __global atomic_double *object,
+ double operand);
+double __ovld atomic_fetch_max(volatile __global atomic_double *object,
Expand All @@ -120,9 +121,13 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max)
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_min_max)
+#if defined(__opencl_c_ext_fp64_local_atomic_min_max) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_min(volatile __local atomic_double *object,
+ double operand);
+double __ovld atomic_fetch_max(volatile __local atomic_double *object,
Expand All @@ -137,10 +142,14 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max)
+#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
+ defined(__opencl_c_ext_fp64_local_atomic_min_max)
+ defined(__opencl_c_ext_fp64_local_atomic_min_max) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_min(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_max(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
Expand All @@ -153,8 +162,10 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
+ defined(__opencl_c_ext_fp64_local_atomic_min_max)
+#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) &&
+ // defined(__opencl_c_ext_fp64_local_atomic_min_max) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#if defined(__opencl_c_ext_fp32_global_atomic_add)
+float __ovld atomic_fetch_add(volatile __global atomic_float *object,
Expand Down Expand Up @@ -204,10 +215,12 @@ index d8173f0aa843..50515ac17a0c 100644
+float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
+ float operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \
+ defined(__opencl_c_ext_fp32_local_atomic_add)
+#endif // defined(__opencl_c_ext_fp32_global_atomic_add) &&
+ // defined(__opencl_c_ext_fp32_local_atomic_add)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add)
+#if defined(__opencl_c_ext_fp64_global_atomic_add) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_add(volatile __global atomic_double *object,
+ double operand);
+double __ovld atomic_fetch_sub(volatile __global atomic_double *object,
Expand All @@ -222,9 +235,13 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add)
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#if defined(__opencl_c_ext_fp64_local_atomic_add)
+#if defined(__opencl_c_ext_fp64_local_atomic_add) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_add(volatile __local atomic_double *object,
+ double operand);
+double __ovld atomic_fetch_sub(volatile __local atomic_double *object,
Expand All @@ -239,10 +256,14 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_local_atomic_add)
+#endif // defined(__opencl_c_ext_fp64_local_atomic_add) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#if defined(__opencl_c_ext_fp64_global_atomic_add) && \
+ defined(__opencl_c_ext_fp64_local_atomic_add)
+ defined(__opencl_c_ext_fp64_local_atomic_add) && \
+ defined(cl_khr_int64_base_atomics) && \
+ defined(cl_khr_int64_extended_atomics)
+double __ovld atomic_fetch_add(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand);
+double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
Expand All @@ -255,8 +276,10 @@ index d8173f0aa843..50515ac17a0c 100644
+double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
+ double operand, memory_order order,
+ memory_scope scope);
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \
+ defined(__opencl_c_ext_fp64_local_atomic_add)
+#endif // defined(__opencl_c_ext_fp64_global_atomic_add) &&
+ // defined(__opencl_c_ext_fp64_local_atomic_add) &&
+ // defined(cl_khr_int64_base_atomics) &&
+ // defined(cl_khr_int64_extended_atomics)
+
+#endif // cl_ext_float_atomics
+
Expand Down
Loading