1 #ifndef cl_clang_storage_class_specifiers
2 #error Implementation requires cl_clang_storage_class_specifiers extension!
3 #endif
4 
5 #pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable
6 
7 #ifdef cl_khr_fp64
8 #pragma OPENCL EXTENSION cl_khr_fp64 : enable
9 #endif
10 
11 #ifdef cl_khr_fp16
12 #pragma OPENCL EXTENSION cl_khr_fp16 : enable
13 #endif
14 
15 /* Function Attributes */
16 #include <clc/clcfunc.h>
17 
18 /* 6.1 Supported Data Types */
19 #include <clc/clctypes.h>
20 
21 /* 6.2.3 Explicit Conversions */
22 #include <clc/convert.h>
23 
24 /* 6.2.4.2 Reinterpreting Types Using as_type() and as_typen() */
25 #include <clc/as_type.h>
26 
27 /* 6.9 Preprocessor Directives and Macros */
28 #include <clc/clcmacros.h>
29 
30 /* 6.11.1 Work-Item Functions */
31 #include <clc/workitem/get_global_size.h>
32 #include <clc/workitem/get_global_id.h>
33 #include <clc/workitem/get_local_size.h>
34 #include <clc/workitem/get_local_id.h>
35 #include <clc/workitem/get_num_groups.h>
36 #include <clc/workitem/get_group_id.h>
37 #include <clc/workitem/get_global_offset.h>
38 #include <clc/workitem/get_work_dim.h>
39 
40 /* 6.11.2 Math Functions */
41 #include <clc/math/acos.h>
42 #include <clc/math/acosh.h>
43 #include <clc/math/acospi.h>
44 #include <clc/math/asin.h>
45 #include <clc/math/asinh.h>
46 #include <clc/math/asinpi.h>
47 #include <clc/math/atan.h>
48 #include <clc/math/atan2.h>
49 #include <clc/math/atan2pi.h>
50 #include <clc/math/atanh.h>
51 #include <clc/math/atanpi.h>
52 #include <clc/math/cbrt.h>
53 #include <clc/math/copysign.h>
54 #include <clc/math/cos.h>
55 #include <clc/math/cosh.h>
56 #include <clc/math/cospi.h>
57 #include <clc/math/ceil.h>
58 #include <clc/math/erf.h>
59 #include <clc/math/erfc.h>
60 #include <clc/math/exp.h>
61 #include <clc/math/expm1.h>
62 #include <clc/math/exp10.h>
63 #include <clc/math/exp2.h>
64 #include <clc/math/fabs.h>
65 #include <clc/math/fdim.h>
66 #include <clc/math/floor.h>
67 #include <clc/math/fma.h>
68 #include <clc/math/fmax.h>
69 #include <clc/math/fmin.h>
70 #include <clc/math/fmod.h>
71 #include <clc/math/fract.h>
72 #include <clc/math/frexp.h>
73 #include <clc/math/half_cos.h>
74 #include <clc/math/half_divide.h>
75 #include <clc/math/half_exp.h>
76 #include <clc/math/half_exp10.h>
77 #include <clc/math/half_exp2.h>
78 #include <clc/math/half_log.h>
79 #include <clc/math/half_log10.h>
80 #include <clc/math/half_log2.h>
81 #include <clc/math/half_powr.h>
82 #include <clc/math/half_recip.h>
83 #include <clc/math/half_rsqrt.h>
84 #include <clc/math/half_sin.h>
85 #include <clc/math/half_sqrt.h>
86 #include <clc/math/half_tan.h>
87 #include <clc/math/hypot.h>
88 #include <clc/math/ilogb.h>
89 #include <clc/math/ldexp.h>
90 #include <clc/math/lgamma.h>
91 #include <clc/math/lgamma_r.h>
92 #include <clc/math/log.h>
93 #include <clc/math/log10.h>
94 #include <clc/math/log1p.h>
95 #include <clc/math/log2.h>
96 #include <clc/math/logb.h>
97 #include <clc/math/mad.h>
98 #include <clc/math/maxmag.h>
99 #include <clc/math/minmag.h>
100 #include <clc/math/modf.h>
101 #include <clc/math/nan.h>
102 #include <clc/math/nextafter.h>
103 #include <clc/math/pow.h>
104 #include <clc/math/pown.h>
105 #include <clc/math/powr.h>
106 #include <clc/math/remainder.h>
107 #include <clc/math/remquo.h>
108 #include <clc/math/rint.h>
109 #include <clc/math/rootn.h>
110 #include <clc/math/round.h>
111 #include <clc/math/sin.h>
112 #include <clc/math/sincos.h>
113 #include <clc/math/sinh.h>
114 #include <clc/math/sinpi.h>
115 #include <clc/math/sqrt.h>
116 #include <clc/math/tan.h>
117 #include <clc/math/tanh.h>
118 #include <clc/math/tanpi.h>
119 #include <clc/math/tgamma.h>
120 #include <clc/math/trunc.h>
121 #include <clc/math/native_cos.h>
122 #include <clc/math/native_divide.h>
123 #include <clc/math/native_exp.h>
124 #include <clc/math/native_exp10.h>
125 #include <clc/math/native_exp2.h>
126 #include <clc/math/native_log.h>
127 #include <clc/math/native_log10.h>
128 #include <clc/math/native_log2.h>
129 #include <clc/math/native_powr.h>
130 #include <clc/math/native_recip.h>
131 #include <clc/math/native_sin.h>
132 #include <clc/math/native_sqrt.h>
133 #include <clc/math/native_rsqrt.h>
134 #include <clc/math/native_tan.h>
135 #include <clc/math/rsqrt.h>
136 
137 /* 6.11.2.1 Floating-point macros */
138 #include <clc/float/definitions.h>
139 
140 /* 6.11.3 Integer Functions */
141 #include <clc/integer/abs.h>
142 #include <clc/integer/abs_diff.h>
143 #include <clc/integer/add_sat.h>
144 #include <clc/integer/clz.h>
145 #include <clc/integer/hadd.h>
146 #include <clc/integer/mad24.h>
147 #include <clc/integer/mad_hi.h>
148 #include <clc/integer/mad_sat.h>
149 #include <clc/integer/mul24.h>
150 #include <clc/integer/mul_hi.h>
151 #include <clc/integer/popcount.h>
152 #include <clc/integer/rhadd.h>
153 #include <clc/integer/rotate.h>
154 #include <clc/integer/sub_sat.h>
155 #include <clc/integer/upsample.h>
156 
157 /* 6.11.3 Integer Definitions */
158 #include <clc/integer/definitions.h>
159 
160 /* 6.11.2 and 6.11.3 Shared Integer/Math Functions */
161 #include <clc/shared/clamp.h>
162 #include <clc/shared/max.h>
163 #include <clc/shared/min.h>
164 #include <clc/shared/vload.h>
165 #include <clc/shared/vstore.h>
166 
167 /* 6.11.4 Common Functions */
168 #include <clc/common/degrees.h>
169 #include <clc/common/radians.h>
170 #include <clc/common/mix.h>
171 #include <clc/common/sign.h>
172 #include <clc/common/smoothstep.h>
173 #include <clc/common/step.h>
174 
175 /* 6.11.5 Geometric Functions */
176 #include <clc/geometric/cross.h>
177 #include <clc/geometric/distance.h>
178 #include <clc/geometric/dot.h>
179 #include <clc/geometric/fast_distance.h>
180 #include <clc/geometric/fast_length.h>
181 #include <clc/geometric/fast_normalize.h>
182 #include <clc/geometric/length.h>
183 #include <clc/geometric/normalize.h>
184 
185 /* 6.11.6 Relational Functions */
186 #include <clc/relational/all.h>
187 #include <clc/relational/any.h>
188 #include <clc/relational/bitselect.h>
189 #include <clc/relational/isequal.h>
190 #include <clc/relational/isfinite.h>
191 #include <clc/relational/isgreater.h>
192 #include <clc/relational/isgreaterequal.h>
193 #include <clc/relational/isinf.h>
194 #include <clc/relational/isless.h>
195 #include <clc/relational/islessequal.h>
196 #include <clc/relational/islessgreater.h>
197 #include <clc/relational/isnan.h>
198 #include <clc/relational/isnormal.h>
199 #include <clc/relational/isnotequal.h>
200 #include <clc/relational/isordered.h>
201 #include <clc/relational/isunordered.h>
202 #include <clc/relational/select.h>
203 #include <clc/relational/signbit.h>
204 
205 /* 6.11.8 Synchronization Functions */
206 #include <clc/synchronization/cl_mem_fence_flags.h>
207 #include <clc/synchronization/barrier.h>
208 
209 /* 6.11.9 Explicit Memory Fence Functions */
210 #include <clc/explicit_fence/explicit_memory_fence.h>
211 
212 /* 6.11.10 Async Copy and Prefetch Functions */
213 #include <clc/async/async_work_group_copy.h>
214 #include <clc/async/async_work_group_strided_copy.h>
215 #include <clc/async/prefetch.h>
216 #include <clc/async/wait_group_events.h>
217 
218 /* 6.11.11 Atomic Functions */
219 #include <clc/atomic/atomic_add.h>
220 #include <clc/atomic/atomic_and.h>
221 #include <clc/atomic/atomic_cmpxchg.h>
222 #include <clc/atomic/atomic_dec.h>
223 #include <clc/atomic/atomic_inc.h>
224 #include <clc/atomic/atomic_max.h>
225 #include <clc/atomic/atomic_min.h>
226 #include <clc/atomic/atomic_or.h>
227 #include <clc/atomic/atomic_sub.h>
228 #include <clc/atomic/atomic_xchg.h>
229 #include <clc/atomic/atomic_xor.h>
230 
231 /* cl_khr_global_int32_base_atomics Extension Functions */
232 #include <clc/cl_khr_global_int32_base_atomics/atom_add.h>
233 #include <clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h>
234 #include <clc/cl_khr_global_int32_base_atomics/atom_dec.h>
235 #include <clc/cl_khr_global_int32_base_atomics/atom_inc.h>
236 #include <clc/cl_khr_global_int32_base_atomics/atom_sub.h>
237 #include <clc/cl_khr_global_int32_base_atomics/atom_xchg.h>
238 
239 /* cl_khr_global_int32_extended_atomics Extension Functions */
240 #include <clc/cl_khr_global_int32_extended_atomics/atom_and.h>
241 #include <clc/cl_khr_global_int32_extended_atomics/atom_max.h>
242 #include <clc/cl_khr_global_int32_extended_atomics/atom_min.h>
243 #include <clc/cl_khr_global_int32_extended_atomics/atom_or.h>
244 #include <clc/cl_khr_global_int32_extended_atomics/atom_xor.h>
245 
246 /* cl_khr_local_int32_base_atomics Extension Functions */
247 #include <clc/cl_khr_local_int32_base_atomics/atom_add.h>
248 #include <clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h>
249 #include <clc/cl_khr_local_int32_base_atomics/atom_dec.h>
250 #include <clc/cl_khr_local_int32_base_atomics/atom_inc.h>
251 #include <clc/cl_khr_local_int32_base_atomics/atom_sub.h>
252 #include <clc/cl_khr_local_int32_base_atomics/atom_xchg.h>
253 
254 /* cl_khr_local_int32_extended_atomics Extension Functions */
255 #include <clc/cl_khr_local_int32_extended_atomics/atom_and.h>
256 #include <clc/cl_khr_local_int32_extended_atomics/atom_max.h>
257 #include <clc/cl_khr_local_int32_extended_atomics/atom_min.h>
258 #include <clc/cl_khr_local_int32_extended_atomics/atom_or.h>
259 #include <clc/cl_khr_local_int32_extended_atomics/atom_xor.h>
260 
261 /* cl_khr_int64_base_atomics Extension Functions */
262 #ifdef cl_khr_int64_base_atomics
263 #include <clc/cl_khr_int64_base_atomics/atom_add.h>
264 #include <clc/cl_khr_int64_base_atomics/atom_cmpxchg.h>
265 #include <clc/cl_khr_int64_base_atomics/atom_dec.h>
266 #include <clc/cl_khr_int64_base_atomics/atom_inc.h>
267 #include <clc/cl_khr_int64_base_atomics/atom_sub.h>
268 #include <clc/cl_khr_int64_base_atomics/atom_xchg.h>
269 #endif
270 
271 /* cl_khr_int64_extended_atomics Extension Functions */
272 #ifdef cl_khr_int64_base_atomics
273 #include <clc/cl_khr_int64_extended_atomics/atom_and.h>
274 #include <clc/cl_khr_int64_extended_atomics/atom_max.h>
275 #include <clc/cl_khr_int64_extended_atomics/atom_min.h>
276 #include <clc/cl_khr_int64_extended_atomics/atom_or.h>
277 #include <clc/cl_khr_int64_extended_atomics/atom_xor.h>
278 #endif
279 
280 /* 6.12.12 Miscellaneous Vector Functions */
281 #include <clc/misc/shuffle.h>
282 #include <clc/misc/shuffle2.h>
283 
284 /* 6.11.13 Image Read and Write Functions */
285 #include <clc/image/image_defines.h>
286 #include <clc/image/image.h>
287 
288 #pragma OPENCL EXTENSION all : disable
289