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