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 /* Function Attributes */
12 #include <clc/clcfunc.h>
13 
14 /* 6.1 Supported Data Types */
15 #include <clc/clctypes.h>
16 
17 /* 6.2.3 Explicit Conversions */
18 #include <clc/convert.h>
19 
20 /* 6.2.4.2 Reinterpreting Types Using as_type() and as_typen() */
21 #include <clc/as_type.h>
22 
23 /* 6.9 Preprocessor Directives and Macros */
24 #include <clc/clcversion.h>
25 
26 /* 6.11.1 Work-Item Functions */
27 #include <clc/workitem/get_global_size.h>
28 #include <clc/workitem/get_global_id.h>
29 #include <clc/workitem/get_local_size.h>
30 #include <clc/workitem/get_local_id.h>
31 #include <clc/workitem/get_num_groups.h>
32 #include <clc/workitem/get_group_id.h>
33 #include <clc/workitem/get_global_offset.h>
34 
35 /* 6.11.2 Math Functions */
36 #include <clc/math/acos.h>
37 #include <clc/math/acosh.h>
38 #include <clc/math/acospi.h>
39 #include <clc/math/asin.h>
40 #include <clc/math/asinh.h>
41 #include <clc/math/asinpi.h>
42 #include <clc/math/atan.h>
43 #include <clc/math/atan2.h>
44 #include <clc/math/atan2pi.h>
45 #include <clc/math/atanh.h>
46 #include <clc/math/atanpi.h>
47 #include <clc/math/cbrt.h>
48 #include <clc/math/copysign.h>
49 #include <clc/math/cos.h>
50 #include <clc/math/cosh.h>
51 #include <clc/math/cospi.h>
52 #include <clc/math/ceil.h>
53 #include <clc/math/erf.h>
54 #include <clc/math/erfc.h>
55 #include <clc/math/exp.h>
56 #include <clc/math/exp10.h>
57 #include <clc/math/exp2.h>
58 #include <clc/math/fabs.h>
59 #include <clc/math/fdim.h>
60 #include <clc/math/floor.h>
61 #include <clc/math/fma.h>
62 #include <clc/math/fmax.h>
63 #include <clc/math/fmin.h>
64 #include <clc/math/fmod.h>
65 #include <clc/math/fract.h>
66 #include <clc/math/frexp.h>
67 #include <clc/math/half_rsqrt.h>
68 #include <clc/math/half_sqrt.h>
69 #include <clc/math/hypot.h>
70 #include <clc/math/ilogb.h>
71 #include <clc/math/ldexp.h>
72 #include <clc/math/lgamma.h>
73 #include <clc/math/lgamma_r.h>
74 #include <clc/math/log.h>
75 #include <clc/math/log10.h>
76 #include <clc/math/log1p.h>
77 #include <clc/math/log2.h>
78 #include <clc/math/mad.h>
79 #include <clc/math/modf.h>
80 #include <clc/math/nextafter.h>
81 #include <clc/math/pow.h>
82 #include <clc/math/pown.h>
83 #include <clc/math/rint.h>
84 #include <clc/math/round.h>
85 #include <clc/math/sin.h>
86 #include <clc/math/sincos.h>
87 #include <clc/math/sinpi.h>
88 #include <clc/math/sqrt.h>
89 #include <clc/math/tan.h>
90 #include <clc/math/tanh.h>
91 #include <clc/math/tgamma.h>
92 #include <clc/math/trunc.h>
93 #include <clc/math/native_cos.h>
94 #include <clc/math/native_divide.h>
95 #include <clc/math/native_exp.h>
96 #include <clc/math/native_exp10.h>
97 #include <clc/math/native_exp2.h>
98 #include <clc/math/native_log.h>
99 #include <clc/math/native_log2.h>
100 #include <clc/math/native_powr.h>
101 #include <clc/math/native_sin.h>
102 #include <clc/math/native_sqrt.h>
103 #include <clc/math/rsqrt.h>
104 
105 /* 6.11.2.1 Floating-point macros */
106 #include <clc/float/definitions.h>
107 
108 /* 6.11.3 Integer Functions */
109 #include <clc/integer/abs.h>
110 #include <clc/integer/abs_diff.h>
111 #include <clc/integer/add_sat.h>
112 #include <clc/integer/clz.h>
113 #include <clc/integer/hadd.h>
114 #include <clc/integer/mad24.h>
115 #include <clc/integer/mad_hi.h>
116 #include <clc/integer/mad_sat.h>
117 #include <clc/integer/mul24.h>
118 #include <clc/integer/mul_hi.h>
119 #include <clc/integer/rhadd.h>
120 #include <clc/integer/rotate.h>
121 #include <clc/integer/sub_sat.h>
122 #include <clc/integer/upsample.h>
123 
124 /* 6.11.3 Integer Definitions */
125 #include <clc/integer/definitions.h>
126 
127 /* 6.11.2 and 6.11.3 Shared Integer/Math Functions */
128 #include <clc/shared/clamp.h>
129 #include <clc/shared/max.h>
130 #include <clc/shared/min.h>
131 #include <clc/shared/vload.h>
132 #include <clc/shared/vstore.h>
133 
134 /* 6.11.4 Common Functions */
135 #include <clc/common/degrees.h>
136 #include <clc/common/radians.h>
137 #include <clc/common/mix.h>
138 #include <clc/common/sign.h>
139 #include <clc/common/smoothstep.h>
140 #include <clc/common/step.h>
141 
142 /* 6.11.5 Geometric Functions */
143 #include <clc/geometric/cross.h>
144 #include <clc/geometric/distance.h>
145 #include <clc/geometric/dot.h>
146 #include <clc/geometric/fast_distance.h>
147 #include <clc/geometric/fast_length.h>
148 #include <clc/geometric/fast_normalize.h>
149 #include <clc/geometric/length.h>
150 #include <clc/geometric/normalize.h>
151 
152 /* 6.11.6 Relational Functions */
153 #include <clc/relational/all.h>
154 #include <clc/relational/any.h>
155 #include <clc/relational/bitselect.h>
156 #include <clc/relational/isequal.h>
157 #include <clc/relational/isfinite.h>
158 #include <clc/relational/isgreater.h>
159 #include <clc/relational/isgreaterequal.h>
160 #include <clc/relational/isinf.h>
161 #include <clc/relational/isless.h>
162 #include <clc/relational/islessequal.h>
163 #include <clc/relational/islessgreater.h>
164 #include <clc/relational/isnan.h>
165 #include <clc/relational/isnormal.h>
166 #include <clc/relational/isnotequal.h>
167 #include <clc/relational/isordered.h>
168 #include <clc/relational/isunordered.h>
169 #include <clc/relational/select.h>
170 #include <clc/relational/signbit.h>
171 
172 /* 6.11.8 Synchronization Functions */
173 #include <clc/synchronization/cl_mem_fence_flags.h>
174 #include <clc/synchronization/barrier.h>
175 
176 /* 6.11.10 Async Copy and Prefetch Functions */
177 #include <clc/async/async_work_group_copy.h>
178 #include <clc/async/async_work_group_strided_copy.h>
179 #include <clc/async/prefetch.h>
180 #include <clc/async/wait_group_events.h>
181 
182 /* 6.11.11 Atomic Functions */
183 #include <clc/atomic/atomic_add.h>
184 #include <clc/atomic/atomic_and.h>
185 #include <clc/atomic/atomic_cmpxchg.h>
186 #include <clc/atomic/atomic_dec.h>
187 #include <clc/atomic/atomic_inc.h>
188 #include <clc/atomic/atomic_max.h>
189 #include <clc/atomic/atomic_min.h>
190 #include <clc/atomic/atomic_or.h>
191 #include <clc/atomic/atomic_sub.h>
192 #include <clc/atomic/atomic_xchg.h>
193 #include <clc/atomic/atomic_xor.h>
194 
195 /* cl_khr_global_int32_base_atomics Extension Functions */
196 #include <clc/cl_khr_global_int32_base_atomics/atom_add.h>
197 #include <clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h>
198 #include <clc/cl_khr_global_int32_base_atomics/atom_dec.h>
199 #include <clc/cl_khr_global_int32_base_atomics/atom_inc.h>
200 #include <clc/cl_khr_global_int32_base_atomics/atom_sub.h>
201 #include <clc/cl_khr_global_int32_base_atomics/atom_xchg.h>
202 
203 /* cl_khr_global_int32_extended_atomics Extension Functions */
204 #include <clc/cl_khr_global_int32_extended_atomics/atom_and.h>
205 #include <clc/cl_khr_global_int32_extended_atomics/atom_max.h>
206 #include <clc/cl_khr_global_int32_extended_atomics/atom_min.h>
207 #include <clc/cl_khr_global_int32_extended_atomics/atom_or.h>
208 #include <clc/cl_khr_global_int32_extended_atomics/atom_xor.h>
209 
210 /* cl_khr_local_int32_base_atomics Extension Functions */
211 #include <clc/cl_khr_local_int32_base_atomics/atom_add.h>
212 #include <clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h>
213 #include <clc/cl_khr_local_int32_base_atomics/atom_dec.h>
214 #include <clc/cl_khr_local_int32_base_atomics/atom_inc.h>
215 #include <clc/cl_khr_local_int32_base_atomics/atom_sub.h>
216 #include <clc/cl_khr_local_int32_base_atomics/atom_xchg.h>
217 
218 /* cl_khr_local_int32_extended_atomics Extension Functions */
219 #include <clc/cl_khr_local_int32_extended_atomics/atom_and.h>
220 #include <clc/cl_khr_local_int32_extended_atomics/atom_max.h>
221 #include <clc/cl_khr_local_int32_extended_atomics/atom_min.h>
222 #include <clc/cl_khr_local_int32_extended_atomics/atom_or.h>
223 #include <clc/cl_khr_local_int32_extended_atomics/atom_xor.h>
224 
225 /* 6.11.13 Image Read and Write Functions */
226 
227 #include <clc/image/image_defines.h>
228 #include <clc/image/image.h>
229 
230 /* libclc internal defintions */
231 #ifdef __CLC_INTERNAL
232 #include <math/clc_nextafter.h>
233 #endif
234 
235 #pragma OPENCL EXTENSION all : disable
236