17 #ifndef __CL_PLATFORM_H
18 #define __CL_PLATFORM_H
20 #include <CL/cl_version.h>
28 #define CL_API_CALL __stdcall
29 #define CL_CALLBACK __stdcall
44 #ifndef CL_API_SUFFIX_USER
45 #define CL_API_SUFFIX_USER
48 #ifndef CL_API_PREFIX_USER
49 #define CL_API_PREFIX_USER
52 #define CL_API_SUFFIX_COMMON CL_API_SUFFIX_USER
53 #define CL_API_PREFIX_COMMON CL_API_PREFIX_USER
55 #define CL_API_SUFFIX__VERSION_1_0 CL_API_SUFFIX_COMMON
56 #define CL_API_SUFFIX__VERSION_1_1 CL_API_SUFFIX_COMMON
57 #define CL_API_SUFFIX__VERSION_1_2 CL_API_SUFFIX_COMMON
58 #define CL_API_SUFFIX__VERSION_2_0 CL_API_SUFFIX_COMMON
59 #define CL_API_SUFFIX__VERSION_2_1 CL_API_SUFFIX_COMMON
60 #define CL_API_SUFFIX__VERSION_2_2 CL_API_SUFFIX_COMMON
61 #define CL_API_SUFFIX__VERSION_3_0 CL_API_SUFFIX_COMMON
62 #define CL_API_SUFFIX__EXPERIMENTAL CL_API_SUFFIX_COMMON
66 #define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated))
67 #define CL_API_PREFIX_DEPRECATED
69 #define CL_API_SUFFIX_DEPRECATED
70 #define CL_API_PREFIX_DEPRECATED __declspec(deprecated)
72 #define CL_API_SUFFIX_DEPRECATED
73 #define CL_API_PREFIX_DEPRECATED
76 #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
77 #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON
78 #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON
80 #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
81 #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
84 #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
85 #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON
86 #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON
88 #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
89 #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
92 #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS
93 #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON
94 #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON
96 #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
97 #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
100 #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS
101 #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON
102 #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON
104 #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
105 #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
108 #ifdef CL_USE_DEPRECATED_OPENCL_2_1_APIS
109 #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON
110 #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON
112 #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
113 #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
116 #ifdef CL_USE_DEPRECATED_OPENCL_2_2_APIS
117 #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON
118 #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON
120 #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED
121 #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED
124 #if (defined (_WIN32) && defined(_MSC_VER))
127 typedef signed __int8 cl_char;
128 typedef unsigned __int8 cl_uchar;
129 typedef signed __int16 cl_short;
130 typedef unsigned __int16 cl_ushort;
131 typedef signed __int32 cl_int;
132 typedef unsigned __int32 cl_uint;
133 typedef signed __int64 cl_long;
134 typedef unsigned __int64 cl_ulong;
136 typedef unsigned __int16 cl_half;
137 typedef float cl_float;
138 typedef double cl_double;
141 #define CL_CHAR_BIT 8
142 #define CL_SCHAR_MAX 127
143 #define CL_SCHAR_MIN (-127-1)
144 #define CL_CHAR_MAX CL_SCHAR_MAX
145 #define CL_CHAR_MIN CL_SCHAR_MIN
146 #define CL_UCHAR_MAX 255
147 #define CL_SHRT_MAX 32767
148 #define CL_SHRT_MIN (-32767-1)
149 #define CL_USHRT_MAX 65535
150 #define CL_INT_MAX 2147483647
151 #define CL_INT_MIN (-2147483647-1)
152 #define CL_UINT_MAX 0xffffffffU
153 #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
154 #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
155 #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
158 #define CL_FLT_MANT_DIG 24
159 #define CL_FLT_MAX_10_EXP +38
160 #define CL_FLT_MAX_EXP +128
161 #define CL_FLT_MIN_10_EXP -37
162 #define CL_FLT_MIN_EXP -125
163 #define CL_FLT_RADIX 2
164 #define CL_FLT_MAX 340282346638528859811704183484516925440.0f
165 #define CL_FLT_MIN 1.175494350822287507969e-38f
166 #define CL_FLT_EPSILON 1.1920928955078125e-7f
168 #define CL_HALF_DIG 3
169 #define CL_HALF_MANT_DIG 11
170 #define CL_HALF_MAX_10_EXP +4
171 #define CL_HALF_MAX_EXP +16
172 #define CL_HALF_MIN_10_EXP -4
173 #define CL_HALF_MIN_EXP -13
174 #define CL_HALF_RADIX 2
175 #define CL_HALF_MAX 65504.0f
176 #define CL_HALF_MIN 6.103515625e-05f
177 #define CL_HALF_EPSILON 9.765625e-04f
179 #define CL_DBL_DIG 15
180 #define CL_DBL_MANT_DIG 53
181 #define CL_DBL_MAX_10_EXP +308
182 #define CL_DBL_MAX_EXP +1024
183 #define CL_DBL_MIN_10_EXP -307
184 #define CL_DBL_MIN_EXP -1021
185 #define CL_DBL_RADIX 2
186 #define CL_DBL_MAX 1.7976931348623158e+308
187 #define CL_DBL_MIN 2.225073858507201383090e-308
188 #define CL_DBL_EPSILON 2.220446049250313080847e-16
190 #define CL_M_E 2.7182818284590452354
191 #define CL_M_LOG2E 1.4426950408889634074
192 #define CL_M_LOG10E 0.43429448190325182765
193 #define CL_M_LN2 0.69314718055994530942
194 #define CL_M_LN10 2.30258509299404568402
195 #define CL_M_PI 3.14159265358979323846
196 #define CL_M_PI_2 1.57079632679489661923
197 #define CL_M_PI_4 0.78539816339744830962
198 #define CL_M_1_PI 0.31830988618379067154
199 #define CL_M_2_PI 0.63661977236758134308
200 #define CL_M_2_SQRTPI 1.12837916709551257390
201 #define CL_M_SQRT2 1.41421356237309504880
202 #define CL_M_SQRT1_2 0.70710678118654752440
204 #define CL_M_E_F 2.718281828f
205 #define CL_M_LOG2E_F 1.442695041f
206 #define CL_M_LOG10E_F 0.434294482f
207 #define CL_M_LN2_F 0.693147181f
208 #define CL_M_LN10_F 2.302585093f
209 #define CL_M_PI_F 3.141592654f
210 #define CL_M_PI_2_F 1.570796327f
211 #define CL_M_PI_4_F 0.785398163f
212 #define CL_M_1_PI_F 0.318309886f
213 #define CL_M_2_PI_F 0.636619772f
214 #define CL_M_2_SQRTPI_F 1.128379167f
215 #define CL_M_SQRT2_F 1.414213562f
216 #define CL_M_SQRT1_2_F 0.707106781f
218 #define CL_NAN (CL_INFINITY - CL_INFINITY)
219 #define CL_HUGE_VALF ((cl_float) 1e50)
220 #define CL_HUGE_VAL ((cl_double) 1e500)
221 #define CL_MAXFLOAT CL_FLT_MAX
222 #define CL_INFINITY CL_HUGE_VALF
229 typedef int8_t cl_char;
230 typedef uint8_t cl_uchar;
231 typedef int16_t cl_short;
232 typedef uint16_t cl_ushort;
233 typedef int32_t cl_int;
234 typedef uint32_t cl_uint;
235 typedef int64_t cl_long;
236 typedef uint64_t cl_ulong;
238 typedef uint16_t cl_half;
239 typedef float cl_float;
240 typedef double cl_double;
243 #define CL_CHAR_BIT 8
244 #define CL_SCHAR_MAX 127
245 #define CL_SCHAR_MIN (-127-1)
246 #define CL_CHAR_MAX CL_SCHAR_MAX
247 #define CL_CHAR_MIN CL_SCHAR_MIN
248 #define CL_UCHAR_MAX 255
249 #define CL_SHRT_MAX 32767
250 #define CL_SHRT_MIN (-32767-1)
251 #define CL_USHRT_MAX 65535
252 #define CL_INT_MAX 2147483647
253 #define CL_INT_MIN (-2147483647-1)
254 #define CL_UINT_MAX 0xffffffffU
255 #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
256 #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
257 #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
260 #define CL_FLT_MANT_DIG 24
261 #define CL_FLT_MAX_10_EXP +38
262 #define CL_FLT_MAX_EXP +128
263 #define CL_FLT_MIN_10_EXP -37
264 #define CL_FLT_MIN_EXP -125
265 #define CL_FLT_RADIX 2
266 #define CL_FLT_MAX 340282346638528859811704183484516925440.0f
267 #define CL_FLT_MIN 1.175494350822287507969e-38f
268 #define CL_FLT_EPSILON 1.1920928955078125e-7f
270 #define CL_HALF_DIG 3
271 #define CL_HALF_MANT_DIG 11
272 #define CL_HALF_MAX_10_EXP +4
273 #define CL_HALF_MAX_EXP +16
274 #define CL_HALF_MIN_10_EXP -4
275 #define CL_HALF_MIN_EXP -13
276 #define CL_HALF_RADIX 2
277 #define CL_HALF_MAX 65504.0f
278 #define CL_HALF_MIN 6.103515625e-05f
279 #define CL_HALF_EPSILON 9.765625e-04f
281 #define CL_DBL_DIG 15
282 #define CL_DBL_MANT_DIG 53
283 #define CL_DBL_MAX_10_EXP +308
284 #define CL_DBL_MAX_EXP +1024
285 #define CL_DBL_MIN_10_EXP -307
286 #define CL_DBL_MIN_EXP -1021
287 #define CL_DBL_RADIX 2
288 #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0
289 #define CL_DBL_MIN 2.225073858507201383090e-308
290 #define CL_DBL_EPSILON 2.220446049250313080847e-16
292 #define CL_M_E 2.7182818284590452354
293 #define CL_M_LOG2E 1.4426950408889634074
294 #define CL_M_LOG10E 0.43429448190325182765
295 #define CL_M_LN2 0.69314718055994530942
296 #define CL_M_LN10 2.30258509299404568402
297 #define CL_M_PI 3.14159265358979323846
298 #define CL_M_PI_2 1.57079632679489661923
299 #define CL_M_PI_4 0.78539816339744830962
300 #define CL_M_1_PI 0.31830988618379067154
301 #define CL_M_2_PI 0.63661977236758134308
302 #define CL_M_2_SQRTPI 1.12837916709551257390
303 #define CL_M_SQRT2 1.41421356237309504880
304 #define CL_M_SQRT1_2 0.70710678118654752440
306 #define CL_M_E_F 2.718281828f
307 #define CL_M_LOG2E_F 1.442695041f
308 #define CL_M_LOG10E_F 0.434294482f
309 #define CL_M_LN2_F 0.693147181f
310 #define CL_M_LN10_F 2.302585093f
311 #define CL_M_PI_F 3.141592654f
312 #define CL_M_PI_2_F 1.570796327f
313 #define CL_M_PI_4_F 0.785398163f
314 #define CL_M_1_PI_F 0.318309886f
315 #define CL_M_2_PI_F 0.636619772f
316 #define CL_M_2_SQRTPI_F 1.128379167f
317 #define CL_M_SQRT2_F 1.414213562f
318 #define CL_M_SQRT1_2_F 0.707106781f
320 #if defined( __GNUC__ )
321 #define CL_HUGE_VALF __builtin_huge_valf()
322 #define CL_HUGE_VAL __builtin_huge_val()
323 #define CL_NAN __builtin_nanf( "" )
325 #define CL_HUGE_VALF ((cl_float) 1e50)
326 #define CL_HUGE_VAL ((cl_double) 1e500)
327 float nanf(
const char * );
328 #define CL_NAN nanf( "" )
330 #define CL_MAXFLOAT CL_FLT_MAX
331 #define CL_INFINITY CL_HUGE_VALF
338 typedef unsigned int cl_GLuint;
339 typedef int cl_GLint;
340 typedef unsigned int cl_GLenum;
359 #if defined( __VEC__ )
360 #if !defined(__clang__)
363 typedef __vector
unsigned char __cl_uchar16;
364 typedef __vector
signed char __cl_char16;
365 typedef __vector
unsigned short __cl_ushort8;
366 typedef __vector
signed short __cl_short8;
367 typedef __vector
unsigned int __cl_uint4;
368 typedef __vector
signed int __cl_int4;
369 typedef __vector
float __cl_float4;
370 #define __CL_UCHAR16__ 1
371 #define __CL_CHAR16__ 1
372 #define __CL_USHORT8__ 1
373 #define __CL_SHORT8__ 1
374 #define __CL_UINT4__ 1
375 #define __CL_INT4__ 1
376 #define __CL_FLOAT4__ 1
379 #if defined( __SSE__ )
380 #if defined( __MINGW64__ )
383 #include <xmmintrin.h>
385 #if defined( __GNUC__ )
386 typedef float __cl_float4 __attribute__((vector_size(16)));
388 typedef __m128 __cl_float4;
390 #define __CL_FLOAT4__ 1
393 #if defined( __SSE2__ )
394 #if defined( __MINGW64__ )
397 #include <emmintrin.h>
399 #if defined( __GNUC__ )
400 typedef cl_uchar __cl_uchar16 __attribute__((vector_size(16)));
401 typedef cl_char __cl_char16 __attribute__((vector_size(16)));
402 typedef cl_ushort __cl_ushort8 __attribute__((vector_size(16)));
403 typedef cl_short __cl_short8 __attribute__((vector_size(16)));
404 typedef cl_uint __cl_uint4 __attribute__((vector_size(16)));
405 typedef cl_int __cl_int4 __attribute__((vector_size(16)));
406 typedef cl_ulong __cl_ulong2 __attribute__((vector_size(16)));
407 typedef cl_long __cl_long2 __attribute__((vector_size(16)));
408 typedef cl_double __cl_double2 __attribute__((vector_size(16)));
410 typedef __m128i __cl_uchar16;
411 typedef __m128i __cl_char16;
412 typedef __m128i __cl_ushort8;
413 typedef __m128i __cl_short8;
414 typedef __m128i __cl_uint4;
415 typedef __m128i __cl_int4;
416 typedef __m128i __cl_ulong2;
417 typedef __m128i __cl_long2;
418 typedef __m128d __cl_double2;
420 #define __CL_UCHAR16__ 1
421 #define __CL_CHAR16__ 1
422 #define __CL_USHORT8__ 1
423 #define __CL_SHORT8__ 1
424 #define __CL_INT4__ 1
425 #define __CL_UINT4__ 1
426 #define __CL_ULONG2__ 1
427 #define __CL_LONG2__ 1
428 #define __CL_DOUBLE2__ 1
431 #if defined( __MMX__ )
432 #include <mmintrin.h>
433 #if defined( __GNUC__ )
434 typedef cl_uchar __cl_uchar8 __attribute__((vector_size(8)));
435 typedef cl_char __cl_char8 __attribute__((vector_size(8)));
436 typedef cl_ushort __cl_ushort4 __attribute__((vector_size(8)));
437 typedef cl_short __cl_short4 __attribute__((vector_size(8)));
438 typedef cl_uint __cl_uint2 __attribute__((vector_size(8)));
439 typedef cl_int __cl_int2 __attribute__((vector_size(8)));
440 typedef cl_ulong __cl_ulong1 __attribute__((vector_size(8)));
441 typedef cl_long __cl_long1 __attribute__((vector_size(8)));
442 typedef cl_float __cl_float2 __attribute__((vector_size(8)));
444 typedef __m64 __cl_uchar8;
445 typedef __m64 __cl_char8;
446 typedef __m64 __cl_ushort4;
447 typedef __m64 __cl_short4;
448 typedef __m64 __cl_uint2;
449 typedef __m64 __cl_int2;
450 typedef __m64 __cl_ulong1;
451 typedef __m64 __cl_long1;
452 typedef __m64 __cl_float2;
454 #define __CL_UCHAR8__ 1
455 #define __CL_CHAR8__ 1
456 #define __CL_USHORT4__ 1
457 #define __CL_SHORT4__ 1
458 #define __CL_INT2__ 1
459 #define __CL_UINT2__ 1
460 #define __CL_ULONG1__ 1
461 #define __CL_LONG1__ 1
462 #define __CL_FLOAT2__ 1
465 #if defined( __AVX__ )
466 #if defined( __MINGW64__ )
469 #include <immintrin.h>
471 #if defined( __GNUC__ )
472 typedef cl_float __cl_float8 __attribute__((vector_size(32)));
473 typedef cl_double __cl_double4 __attribute__((vector_size(32)));
475 typedef __m256 __cl_float8;
476 typedef __m256d __cl_double4;
478 #define __CL_FLOAT8__ 1
479 #define __CL_DOUBLE4__ 1
483 #if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
484 #define __CL_HAS_ANON_STRUCT__ 1
485 #define __CL_ANON_STRUCT__
486 #elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
487 #define __CL_HAS_ANON_STRUCT__ 1
488 #define __CL_ANON_STRUCT__ __extension__
489 #elif defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__)
493 #define __CL_HAS_ANON_STRUCT__ 1
494 #define __CL_ANON_STRUCT__
497 #pragma warning( push )
498 #pragma warning( disable : 4201 )
501 #define __CL_HAS_ANON_STRUCT__ 0
502 #define __CL_ANON_STRUCT__
506 #if defined( __GNUC__ ) || defined(__INTEGRITY)
507 #define CL_ALIGNED(_x) __attribute__ ((aligned(_x)))
508 #elif defined( _WIN32) && (_MSC_VER)
513 #define CL_ALIGNED(_x)
515 #warning Need to implement some method to align data here
516 #define CL_ALIGNED(_x)
520 #if __CL_HAS_ANON_STRUCT__
522 #define CL_HAS_NAMED_VECTOR_FIELDS 1
524 #define CL_HAS_HI_LO_VECTOR_FIELDS 1
532 cl_char CL_ALIGNED(2) s[2];
533 #if __CL_HAS_ANON_STRUCT__
534 __CL_ANON_STRUCT__
struct{ cl_char x, y; };
535 __CL_ANON_STRUCT__
struct{ cl_char s0, s1; };
536 __CL_ANON_STRUCT__
struct{ cl_char lo, hi; };
538 #if defined( __CL_CHAR2__)
545 cl_char CL_ALIGNED(4) s[4];
546 #if __CL_HAS_ANON_STRUCT__
547 __CL_ANON_STRUCT__
struct{ cl_char x, y, z, w; };
548 __CL_ANON_STRUCT__
struct{ cl_char s0, s1, s2, s3; };
549 __CL_ANON_STRUCT__
struct{
cl_char2 lo, hi; };
551 #if defined( __CL_CHAR2__)
554 #if defined( __CL_CHAR4__)
564 cl_char CL_ALIGNED(8) s[8];
565 #if __CL_HAS_ANON_STRUCT__
566 __CL_ANON_STRUCT__
struct{ cl_char x, y, z, w; };
567 __CL_ANON_STRUCT__
struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; };
568 __CL_ANON_STRUCT__
struct{
cl_char4 lo, hi; };
570 #if defined( __CL_CHAR2__)
573 #if defined( __CL_CHAR4__)
576 #if defined( __CL_CHAR8__ )
583 cl_char CL_ALIGNED(16) s[16];
584 #if __CL_HAS_ANON_STRUCT__
585 __CL_ANON_STRUCT__
struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
586 __CL_ANON_STRUCT__
struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
587 __CL_ANON_STRUCT__
struct{
cl_char8 lo, hi; };
589 #if defined( __CL_CHAR2__)
592 #if defined( __CL_CHAR4__)
595 #if defined( __CL_CHAR8__ )
598 #if defined( __CL_CHAR16__ )
607 cl_uchar CL_ALIGNED(2) s[2];
608 #if __CL_HAS_ANON_STRUCT__
609 __CL_ANON_STRUCT__
struct{ cl_uchar x, y; };
610 __CL_ANON_STRUCT__
struct{ cl_uchar s0, s1; };
611 __CL_ANON_STRUCT__
struct{ cl_uchar lo, hi; };
613 #if defined( __cl_uchar2__)
620 cl_uchar CL_ALIGNED(4) s[4];
621 #if __CL_HAS_ANON_STRUCT__
622 __CL_ANON_STRUCT__
struct{ cl_uchar x, y, z, w; };
623 __CL_ANON_STRUCT__
struct{ cl_uchar s0, s1, s2, s3; };
624 __CL_ANON_STRUCT__
struct{
cl_uchar2 lo, hi; };
626 #if defined( __CL_UCHAR2__)
629 #if defined( __CL_UCHAR4__)
639 cl_uchar CL_ALIGNED(8) s[8];
640 #if __CL_HAS_ANON_STRUCT__
641 __CL_ANON_STRUCT__
struct{ cl_uchar x, y, z, w; };
642 __CL_ANON_STRUCT__
struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; };
643 __CL_ANON_STRUCT__
struct{
cl_uchar4 lo, hi; };
645 #if defined( __CL_UCHAR2__)
648 #if defined( __CL_UCHAR4__)
651 #if defined( __CL_UCHAR8__ )
658 cl_uchar CL_ALIGNED(16) s[16];
659 #if __CL_HAS_ANON_STRUCT__
660 __CL_ANON_STRUCT__
struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
661 __CL_ANON_STRUCT__
struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
662 __CL_ANON_STRUCT__
struct{
cl_uchar8 lo, hi; };
664 #if defined( __CL_UCHAR2__)
667 #if defined( __CL_UCHAR4__)
670 #if defined( __CL_UCHAR8__ )
673 #if defined( __CL_UCHAR16__ )
682 cl_short CL_ALIGNED(4) s[2];
683 #if __CL_HAS_ANON_STRUCT__
684 __CL_ANON_STRUCT__
struct{ cl_short x, y; };
685 __CL_ANON_STRUCT__
struct{ cl_short s0, s1; };
686 __CL_ANON_STRUCT__
struct{ cl_short lo, hi; };
688 #if defined( __CL_SHORT2__)
695 cl_short CL_ALIGNED(8) s[4];
696 #if __CL_HAS_ANON_STRUCT__
697 __CL_ANON_STRUCT__
struct{ cl_short x, y, z, w; };
698 __CL_ANON_STRUCT__
struct{ cl_short s0, s1, s2, s3; };
699 __CL_ANON_STRUCT__
struct{
cl_short2 lo, hi; };
701 #if defined( __CL_SHORT2__)
704 #if defined( __CL_SHORT4__)
714 cl_short CL_ALIGNED(16) s[8];
715 #if __CL_HAS_ANON_STRUCT__
716 __CL_ANON_STRUCT__
struct{ cl_short x, y, z, w; };
717 __CL_ANON_STRUCT__
struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; };
718 __CL_ANON_STRUCT__
struct{
cl_short4 lo, hi; };
720 #if defined( __CL_SHORT2__)
723 #if defined( __CL_SHORT4__)
726 #if defined( __CL_SHORT8__ )
733 cl_short CL_ALIGNED(32) s[16];
734 #if __CL_HAS_ANON_STRUCT__
735 __CL_ANON_STRUCT__
struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
736 __CL_ANON_STRUCT__
struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
737 __CL_ANON_STRUCT__
struct{
cl_short8 lo, hi; };
739 #if defined( __CL_SHORT2__)
742 #if defined( __CL_SHORT4__)
745 #if defined( __CL_SHORT8__ )
748 #if defined( __CL_SHORT16__ )
757 cl_ushort CL_ALIGNED(4) s[2];
758 #if __CL_HAS_ANON_STRUCT__
759 __CL_ANON_STRUCT__
struct{ cl_ushort x, y; };
760 __CL_ANON_STRUCT__
struct{ cl_ushort s0, s1; };
761 __CL_ANON_STRUCT__
struct{ cl_ushort lo, hi; };
763 #if defined( __CL_USHORT2__)
770 cl_ushort CL_ALIGNED(8) s[4];
771 #if __CL_HAS_ANON_STRUCT__
772 __CL_ANON_STRUCT__
struct{ cl_ushort x, y, z, w; };
773 __CL_ANON_STRUCT__
struct{ cl_ushort s0, s1, s2, s3; };
774 __CL_ANON_STRUCT__
struct{
cl_ushort2 lo, hi; };
776 #if defined( __CL_USHORT2__)
779 #if defined( __CL_USHORT4__)
789 cl_ushort CL_ALIGNED(16) s[8];
790 #if __CL_HAS_ANON_STRUCT__
791 __CL_ANON_STRUCT__
struct{ cl_ushort x, y, z, w; };
792 __CL_ANON_STRUCT__
struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; };
793 __CL_ANON_STRUCT__
struct{
cl_ushort4 lo, hi; };
795 #if defined( __CL_USHORT2__)
798 #if defined( __CL_USHORT4__)
801 #if defined( __CL_USHORT8__ )
808 cl_ushort CL_ALIGNED(32) s[16];
809 #if __CL_HAS_ANON_STRUCT__
810 __CL_ANON_STRUCT__
struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
811 __CL_ANON_STRUCT__
struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
812 __CL_ANON_STRUCT__
struct{
cl_ushort8 lo, hi; };
814 #if defined( __CL_USHORT2__)
817 #if defined( __CL_USHORT4__)
820 #if defined( __CL_USHORT8__ )
823 #if defined( __CL_USHORT16__ )
832 cl_half CL_ALIGNED(4) s[2];
833 #if __CL_HAS_ANON_STRUCT__
834 __CL_ANON_STRUCT__
struct{ cl_half x, y; };
835 __CL_ANON_STRUCT__
struct{ cl_half s0, s1; };
836 __CL_ANON_STRUCT__
struct{ cl_half lo, hi; };
838 #if defined( __CL_HALF2__)
845 cl_half CL_ALIGNED(8) s[4];
846 #if __CL_HAS_ANON_STRUCT__
847 __CL_ANON_STRUCT__
struct{ cl_half x, y, z, w; };
848 __CL_ANON_STRUCT__
struct{ cl_half s0, s1, s2, s3; };
849 __CL_ANON_STRUCT__
struct{
cl_half2 lo, hi; };
851 #if defined( __CL_HALF2__)
854 #if defined( __CL_HALF4__)
864 cl_half CL_ALIGNED(16) s[8];
865 #if __CL_HAS_ANON_STRUCT__
866 __CL_ANON_STRUCT__
struct{ cl_half x, y, z, w; };
867 __CL_ANON_STRUCT__
struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7; };
868 __CL_ANON_STRUCT__
struct{
cl_half4 lo, hi; };
870 #if defined( __CL_HALF2__)
873 #if defined( __CL_HALF4__)
876 #if defined( __CL_HALF8__ )
883 cl_half CL_ALIGNED(32) s[16];
884 #if __CL_HAS_ANON_STRUCT__
885 __CL_ANON_STRUCT__
struct{ cl_half x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
886 __CL_ANON_STRUCT__
struct{ cl_half s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
887 __CL_ANON_STRUCT__
struct{
cl_half8 lo, hi; };
889 #if defined( __CL_HALF2__)
892 #if defined( __CL_HALF4__)
895 #if defined( __CL_HALF8__ )
898 #if defined( __CL_HALF16__ )
906 cl_int CL_ALIGNED(8) s[2];
907 #if __CL_HAS_ANON_STRUCT__
908 __CL_ANON_STRUCT__
struct{ cl_int x, y; };
909 __CL_ANON_STRUCT__
struct{ cl_int s0, s1; };
910 __CL_ANON_STRUCT__
struct{ cl_int lo, hi; };
912 #if defined( __CL_INT2__)
919 cl_int CL_ALIGNED(16) s[4];
920 #if __CL_HAS_ANON_STRUCT__
921 __CL_ANON_STRUCT__
struct{ cl_int x, y, z, w; };
922 __CL_ANON_STRUCT__
struct{ cl_int s0, s1, s2, s3; };
923 __CL_ANON_STRUCT__
struct{
cl_int2 lo, hi; };
925 #if defined( __CL_INT2__)
928 #if defined( __CL_INT4__)
938 cl_int CL_ALIGNED(32) s[8];
939 #if __CL_HAS_ANON_STRUCT__
940 __CL_ANON_STRUCT__
struct{ cl_int x, y, z, w; };
941 __CL_ANON_STRUCT__
struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; };
942 __CL_ANON_STRUCT__
struct{
cl_int4 lo, hi; };
944 #if defined( __CL_INT2__)
947 #if defined( __CL_INT4__)
950 #if defined( __CL_INT8__ )
957 cl_int CL_ALIGNED(64) s[16];
958 #if __CL_HAS_ANON_STRUCT__
959 __CL_ANON_STRUCT__
struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
960 __CL_ANON_STRUCT__
struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
961 __CL_ANON_STRUCT__
struct{
cl_int8 lo, hi; };
963 #if defined( __CL_INT2__)
966 #if defined( __CL_INT4__)
969 #if defined( __CL_INT8__ )
972 #if defined( __CL_INT16__ )
981 cl_uint CL_ALIGNED(8) s[2];
982 #if __CL_HAS_ANON_STRUCT__
983 __CL_ANON_STRUCT__
struct{ cl_uint x, y; };
984 __CL_ANON_STRUCT__
struct{ cl_uint s0, s1; };
985 __CL_ANON_STRUCT__
struct{ cl_uint lo, hi; };
987 #if defined( __CL_UINT2__)
994 cl_uint CL_ALIGNED(16) s[4];
995 #if __CL_HAS_ANON_STRUCT__
996 __CL_ANON_STRUCT__
struct{ cl_uint x, y, z, w; };
997 __CL_ANON_STRUCT__
struct{ cl_uint s0, s1, s2, s3; };
998 __CL_ANON_STRUCT__
struct{
cl_uint2 lo, hi; };
1000 #if defined( __CL_UINT2__)
1003 #if defined( __CL_UINT4__)
1013 cl_uint CL_ALIGNED(32) s[8];
1014 #if __CL_HAS_ANON_STRUCT__
1015 __CL_ANON_STRUCT__
struct{ cl_uint x, y, z, w; };
1016 __CL_ANON_STRUCT__
struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; };
1017 __CL_ANON_STRUCT__
struct{
cl_uint4 lo, hi; };
1019 #if defined( __CL_UINT2__)
1022 #if defined( __CL_UINT4__)
1025 #if defined( __CL_UINT8__ )
1032 cl_uint CL_ALIGNED(64) s[16];
1033 #if __CL_HAS_ANON_STRUCT__
1034 __CL_ANON_STRUCT__
struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1035 __CL_ANON_STRUCT__
struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1036 __CL_ANON_STRUCT__
struct{
cl_uint8 lo, hi; };
1038 #if defined( __CL_UINT2__)
1041 #if defined( __CL_UINT4__)
1044 #if defined( __CL_UINT8__ )
1047 #if defined( __CL_UINT16__ )
1055 cl_long CL_ALIGNED(16) s[2];
1056 #if __CL_HAS_ANON_STRUCT__
1057 __CL_ANON_STRUCT__
struct{ cl_long x, y; };
1058 __CL_ANON_STRUCT__
struct{ cl_long s0, s1; };
1059 __CL_ANON_STRUCT__
struct{ cl_long lo, hi; };
1061 #if defined( __CL_LONG2__)
1068 cl_long CL_ALIGNED(32) s[4];
1069 #if __CL_HAS_ANON_STRUCT__
1070 __CL_ANON_STRUCT__
struct{ cl_long x, y, z, w; };
1071 __CL_ANON_STRUCT__
struct{ cl_long s0, s1, s2, s3; };
1072 __CL_ANON_STRUCT__
struct{
cl_long2 lo, hi; };
1074 #if defined( __CL_LONG2__)
1077 #if defined( __CL_LONG4__)
1087 cl_long CL_ALIGNED(64) s[8];
1088 #if __CL_HAS_ANON_STRUCT__
1089 __CL_ANON_STRUCT__
struct{ cl_long x, y, z, w; };
1090 __CL_ANON_STRUCT__
struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; };
1091 __CL_ANON_STRUCT__
struct{
cl_long4 lo, hi; };
1093 #if defined( __CL_LONG2__)
1096 #if defined( __CL_LONG4__)
1099 #if defined( __CL_LONG8__ )
1106 cl_long CL_ALIGNED(128) s[16];
1107 #if __CL_HAS_ANON_STRUCT__
1108 __CL_ANON_STRUCT__
struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1109 __CL_ANON_STRUCT__
struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1110 __CL_ANON_STRUCT__
struct{
cl_long8 lo, hi; };
1112 #if defined( __CL_LONG2__)
1115 #if defined( __CL_LONG4__)
1118 #if defined( __CL_LONG8__ )
1121 #if defined( __CL_LONG16__ )
1130 cl_ulong CL_ALIGNED(16) s[2];
1131 #if __CL_HAS_ANON_STRUCT__
1132 __CL_ANON_STRUCT__
struct{ cl_ulong x, y; };
1133 __CL_ANON_STRUCT__
struct{ cl_ulong s0, s1; };
1134 __CL_ANON_STRUCT__
struct{ cl_ulong lo, hi; };
1136 #if defined( __CL_ULONG2__)
1143 cl_ulong CL_ALIGNED(32) s[4];
1144 #if __CL_HAS_ANON_STRUCT__
1145 __CL_ANON_STRUCT__
struct{ cl_ulong x, y, z, w; };
1146 __CL_ANON_STRUCT__
struct{ cl_ulong s0, s1, s2, s3; };
1147 __CL_ANON_STRUCT__
struct{
cl_ulong2 lo, hi; };
1149 #if defined( __CL_ULONG2__)
1152 #if defined( __CL_ULONG4__)
1162 cl_ulong CL_ALIGNED(64) s[8];
1163 #if __CL_HAS_ANON_STRUCT__
1164 __CL_ANON_STRUCT__
struct{ cl_ulong x, y, z, w; };
1165 __CL_ANON_STRUCT__
struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; };
1166 __CL_ANON_STRUCT__
struct{
cl_ulong4 lo, hi; };
1168 #if defined( __CL_ULONG2__)
1171 #if defined( __CL_ULONG4__)
1174 #if defined( __CL_ULONG8__ )
1181 cl_ulong CL_ALIGNED(128) s[16];
1182 #if __CL_HAS_ANON_STRUCT__
1183 __CL_ANON_STRUCT__
struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1184 __CL_ANON_STRUCT__
struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1185 __CL_ANON_STRUCT__
struct{
cl_ulong8 lo, hi; };
1187 #if defined( __CL_ULONG2__)
1190 #if defined( __CL_ULONG4__)
1193 #if defined( __CL_ULONG8__ )
1196 #if defined( __CL_ULONG16__ )
1206 cl_float CL_ALIGNED(8) s[2];
1207 #if __CL_HAS_ANON_STRUCT__
1208 __CL_ANON_STRUCT__
struct{ cl_float x, y; };
1209 __CL_ANON_STRUCT__
struct{ cl_float s0, s1; };
1210 __CL_ANON_STRUCT__
struct{ cl_float lo, hi; };
1212 #if defined( __CL_FLOAT2__)
1219 cl_float CL_ALIGNED(16) s[4];
1220 #if __CL_HAS_ANON_STRUCT__
1221 __CL_ANON_STRUCT__
struct{ cl_float x, y, z, w; };
1222 __CL_ANON_STRUCT__
struct{ cl_float s0, s1, s2, s3; };
1223 __CL_ANON_STRUCT__
struct{
cl_float2 lo, hi; };
1225 #if defined( __CL_FLOAT2__)
1228 #if defined( __CL_FLOAT4__)
1238 cl_float CL_ALIGNED(32) s[8];
1239 #if __CL_HAS_ANON_STRUCT__
1240 __CL_ANON_STRUCT__
struct{ cl_float x, y, z, w; };
1241 __CL_ANON_STRUCT__
struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; };
1242 __CL_ANON_STRUCT__
struct{
cl_float4 lo, hi; };
1244 #if defined( __CL_FLOAT2__)
1247 #if defined( __CL_FLOAT4__)
1250 #if defined( __CL_FLOAT8__ )
1257 cl_float CL_ALIGNED(64) s[16];
1258 #if __CL_HAS_ANON_STRUCT__
1259 __CL_ANON_STRUCT__
struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1260 __CL_ANON_STRUCT__
struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1261 __CL_ANON_STRUCT__
struct{
cl_float8 lo, hi; };
1263 #if defined( __CL_FLOAT2__)
1266 #if defined( __CL_FLOAT4__)
1269 #if defined( __CL_FLOAT8__ )
1272 #if defined( __CL_FLOAT16__ )
1281 cl_double CL_ALIGNED(16) s[2];
1282 #if __CL_HAS_ANON_STRUCT__
1283 __CL_ANON_STRUCT__
struct{ cl_double x, y; };
1284 __CL_ANON_STRUCT__
struct{ cl_double s0, s1; };
1285 __CL_ANON_STRUCT__
struct{ cl_double lo, hi; };
1287 #if defined( __CL_DOUBLE2__)
1294 cl_double CL_ALIGNED(32) s[4];
1295 #if __CL_HAS_ANON_STRUCT__
1296 __CL_ANON_STRUCT__
struct{ cl_double x, y, z, w; };
1297 __CL_ANON_STRUCT__
struct{ cl_double s0, s1, s2, s3; };
1298 __CL_ANON_STRUCT__
struct{
cl_double2 lo, hi; };
1300 #if defined( __CL_DOUBLE2__)
1303 #if defined( __CL_DOUBLE4__)
1313 cl_double CL_ALIGNED(64) s[8];
1314 #if __CL_HAS_ANON_STRUCT__
1315 __CL_ANON_STRUCT__
struct{ cl_double x, y, z, w; };
1316 __CL_ANON_STRUCT__
struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; };
1317 __CL_ANON_STRUCT__
struct{
cl_double4 lo, hi; };
1319 #if defined( __CL_DOUBLE2__)
1322 #if defined( __CL_DOUBLE4__)
1325 #if defined( __CL_DOUBLE8__ )
1332 cl_double CL_ALIGNED(128) s[16];
1333 #if __CL_HAS_ANON_STRUCT__
1334 __CL_ANON_STRUCT__
struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1335 __CL_ANON_STRUCT__
struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1336 __CL_ANON_STRUCT__
struct{
cl_double8 lo, hi; };
1338 #if defined( __CL_DOUBLE2__)
1341 #if defined( __CL_DOUBLE4__)
1344 #if defined( __CL_DOUBLE8__ )
1347 #if defined( __CL_DOUBLE16__ )
1372 #define __CL_STRINGIFY( _x ) # _x
1373 #define _CL_STRINGIFY( _x ) __CL_STRINGIFY( _x )
1374 #define CL_PROGRAM_STRING_DEBUG_INFO "#line " _CL_STRINGIFY(__LINE__) " \"" __FILE__ "\" \n\n"
1380 #if defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__)
1382 #pragma warning( pop )