6 #if defined (WIN32) && !defined(__GNUC__)
8 #ifndef CL_DISABLE_SSE2
14 #if defined(WIN32) && (defined(__MINGW32__) == 0)
59 #ifndef __CL_PLATFORM_H
60 #define __CL_PLATFORM_H
64 #include <AvailabilityMacros.h>
73 #define CL_API_CALL __stdcall
74 #define CL_CALLBACK __stdcall
82 #define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
83 #define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
84 #define CL_EXT_SUFFIX__VERSION_1_0 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
85 #define CL_API_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
86 #define CL_EXT_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
87 #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
89 #define CL_EXTENSION_WEAK_LINK
90 #define CL_API_SUFFIX__VERSION_1_0
91 #define CL_EXT_SUFFIX__VERSION_1_0
92 #define CL_API_SUFFIX__VERSION_1_1
93 #define CL_EXT_SUFFIX__VERSION_1_1
94 #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
97 #if (defined (_WIN32) && defined(_MSC_VER))
102 typedef signed __int16 cl_short;
103 typedef unsigned __int16 cl_ushort;
104 typedef signed __int32 cl_int;
105 typedef unsigned __int32 cl_uint;
106 typedef signed __int64 cl_long;
107 typedef unsigned __int64 cl_ulong;
109 typedef unsigned __int16 cl_half;
110 typedef float cl_float;
111 typedef double cl_double;
114 #define CL_CHAR_BIT 8
115 #define CL_SCHAR_MAX 127
116 #define CL_SCHAR_MIN (-127-1)
117 #define CL_CHAR_MAX CL_SCHAR_MAX
118 #define CL_CHAR_MIN CL_SCHAR_MIN
119 #define CL_UCHAR_MAX 255
120 #define CL_SHRT_MAX 32767
121 #define CL_SHRT_MIN (-32767-1)
122 #define CL_USHRT_MAX 65535
123 #define CL_INT_MAX 2147483647
124 #define CL_INT_MIN (-2147483647-1)
125 #define CL_UINT_MAX 0xffffffffU
126 #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
127 #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
128 #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
131 #define CL_FLT_MANT_DIG 24
132 #define CL_FLT_MAX_10_EXP +38
133 #define CL_FLT_MAX_EXP +128
134 #define CL_FLT_MIN_10_EXP -37
135 #define CL_FLT_MIN_EXP -125
136 #define CL_FLT_RADIX 2
137 #define CL_FLT_MAX 340282346638528859811704183484516925440.0f
138 #define CL_FLT_MIN 1.175494350822287507969e-38f
139 #define CL_FLT_EPSILON 0x1.0p-23f
141 #define CL_DBL_DIG 15
142 #define CL_DBL_MANT_DIG 53
143 #define CL_DBL_MAX_10_EXP +308
144 #define CL_DBL_MAX_EXP +1024
145 #define CL_DBL_MIN_10_EXP -307
146 #define CL_DBL_MIN_EXP -1021
147 #define CL_DBL_RADIX 2
148 #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0
149 #define CL_DBL_MIN 2.225073858507201383090e-308
150 #define CL_DBL_EPSILON 2.220446049250313080847e-16
152 #define CL_M_E 2.718281828459045090796
153 #define CL_M_LOG2E 1.442695040888963387005
154 #define CL_M_LOG10E 0.434294481903251816668
155 #define CL_M_LN2 0.693147180559945286227
156 #define CL_M_LN10 2.302585092994045901094
157 #define CL_M_PI 3.141592653589793115998
158 #define CL_M_PI_2 1.570796326794896557999
159 #define CL_M_PI_4 0.785398163397448278999
160 #define CL_M_1_PI 0.318309886183790691216
161 #define CL_M_2_PI 0.636619772367581382433
162 #define CL_M_2_SQRTPI 1.128379167095512558561
163 #define CL_M_SQRT2 1.414213562373095145475
164 #define CL_M_SQRT1_2 0.707106781186547572737
166 #define CL_M_E_F 2.71828174591064f
167 #define CL_M_LOG2E_F 1.44269502162933f
168 #define CL_M_LOG10E_F 0.43429449200630f
169 #define CL_M_LN2_F 0.69314718246460f
170 #define CL_M_LN10_F 2.30258512496948f
171 #define CL_M_PI_F 3.14159274101257f
172 #define CL_M_PI_2_F 1.57079637050629f
173 #define CL_M_PI_4_F 0.78539818525314f
174 #define CL_M_1_PI_F 0.31830987334251f
175 #define CL_M_2_PI_F 0.63661974668503f
176 #define CL_M_2_SQRTPI_F 1.12837922573090f
177 #define CL_M_SQRT2_F 1.41421353816986f
178 #define CL_M_SQRT1_2_F 0.70710676908493f
180 #define CL_NAN (CL_INFINITY - CL_INFINITY)
181 #define CL_HUGE_VALF ((cl_float) 1e50)
182 #define CL_HUGE_VAL ((cl_double) 1e500)
183 #define CL_MAXFLOAT CL_FLT_MAX
184 #define CL_INFINITY CL_HUGE_VALF
205 #define CL_CHAR_BIT 8
206 #define CL_SCHAR_MAX 127
207 #define CL_SCHAR_MIN (-127-1)
208 #define CL_CHAR_MAX CL_SCHAR_MAX
209 #define CL_CHAR_MIN CL_SCHAR_MIN
210 #define CL_UCHAR_MAX 255
211 #define CL_SHRT_MAX 32767
212 #define CL_SHRT_MIN (-32767-1)
213 #define CL_USHRT_MAX 65535
214 #define CL_INT_MAX 2147483647
215 #define CL_INT_MIN (-2147483647-1)
216 #define CL_UINT_MAX 0xffffffffU
217 #define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
218 #define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
219 #define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
222 #define CL_FLT_MANT_DIG 24
223 #define CL_FLT_MAX_10_EXP +38
224 #define CL_FLT_MAX_EXP +128
225 #define CL_FLT_MIN_10_EXP -37
226 #define CL_FLT_MIN_EXP -125
227 #define CL_FLT_RADIX 2
228 #define CL_FLT_MAX 0x1.fffffep127f
229 #define CL_FLT_MIN 0x1.0p-126f
230 #define CL_FLT_EPSILON 0x1.0p-23f
232 #define CL_DBL_DIG 15
233 #define CL_DBL_MANT_DIG 53
234 #define CL_DBL_MAX_10_EXP +308
235 #define CL_DBL_MAX_EXP +1024
236 #define CL_DBL_MIN_10_EXP -307
237 #define CL_DBL_MIN_EXP -1021
238 #define CL_DBL_RADIX 2
239 #define CL_DBL_MAX 0x1.fffffffffffffp1023
240 #define CL_DBL_MIN 0x1.0p-1022
241 #define CL_DBL_EPSILON 0x1.0p-52
243 #define CL_M_E 2.718281828459045090796
244 #define CL_M_LOG2E 1.442695040888963387005
245 #define CL_M_LOG10E 0.434294481903251816668
246 #define CL_M_LN2 0.693147180559945286227
247 #define CL_M_LN10 2.302585092994045901094
248 #define CL_M_PI 3.141592653589793115998
249 #define CL_M_PI_2 1.570796326794896557999
250 #define CL_M_PI_4 0.785398163397448278999
251 #define CL_M_1_PI 0.318309886183790691216
252 #define CL_M_2_PI 0.636619772367581382433
253 #define CL_M_2_SQRTPI 1.128379167095512558561
254 #define CL_M_SQRT2 1.414213562373095145475
255 #define CL_M_SQRT1_2 0.707106781186547572737
257 #define CL_M_E_F 2.71828174591064f
258 #define CL_M_LOG2E_F 1.44269502162933f
259 #define CL_M_LOG10E_F 0.43429449200630f
260 #define CL_M_LN2_F 0.69314718246460f
261 #define CL_M_LN10_F 2.30258512496948f
262 #define CL_M_PI_F 3.14159274101257f
263 #define CL_M_PI_2_F 1.57079637050629f
264 #define CL_M_PI_4_F 0.78539818525314f
265 #define CL_M_1_PI_F 0.31830987334251f
266 #define CL_M_2_PI_F 0.63661974668503f
267 #define CL_M_2_SQRTPI_F 1.12837922573090f
268 #define CL_M_SQRT2_F 1.41421353816986f
269 #define CL_M_SQRT1_2_F 0.70710676908493f
271 #if (defined( __GNUC__ ) || defined( __IBMC__ ))
272 #define CL_HUGE_VALF __builtin_huge_valf()
273 #define CL_HUGE_VAL __builtin_huge_val()
274 #define CL_NAN __builtin_nanf( "" )
276 #define CL_HUGE_VALF ((cl_float) 1e50)
277 #define CL_HUGE_VAL ((cl_double) 1e500)
278 float nanf(
const char * );
279 #define CL_NAN nanf( "" )
281 #define CL_MAXFLOAT CL_FLT_MAX
282 #define CL_INFINITY CL_HUGE_VALF
310 #if defined( __VEC__ )
312 typedef vector
unsigned char __cl_uchar16;
313 typedef vector
signed char __cl_char16;
314 typedef vector
unsigned short __cl_ushort8;
315 typedef vector
signed short __cl_short8;
316 typedef vector
unsigned int __cl_uint4;
317 typedef vector
signed int __cl_int4;
318 typedef vector
float __cl_float4;
319 #define __CL_UCHAR16__ 1
320 #define __CL_CHAR16__ 1
321 #define __CL_USHORT8__ 1
322 #define __CL_SHORT8__ 1
323 #define __CL_UINT4__ 1
324 #define __CL_INT4__ 1
325 #define __CL_FLOAT4__ 1
328 #if defined( __SSE__ )
329 #if defined( __MINGW64__ )
332 #include <xmmintrin.h>
334 #if defined( __GNUC__ )
337 typedef __m128 __cl_float4;
339 #define __CL_FLOAT4__ 1
342 #if defined( __SSE2__ )
343 #if defined( __MINGW64__ )
346 #include <emmintrin.h>
348 #if defined( __GNUC__ )
349 typedef cl_uchar __cl_uchar16
__attribute__((vector_size(16)));
350 typedef cl_char __cl_char16
__attribute__((vector_size(16)));
351 typedef cl_ushort __cl_ushort8
__attribute__((vector_size(16)));
352 typedef cl_short __cl_short8
__attribute__((vector_size(16)));
355 typedef cl_ulong __cl_ulong2
__attribute__((vector_size(16)));
357 typedef cl_double __cl_double2
__attribute__((vector_size(16)));
359 typedef __m128i __cl_uchar16;
360 typedef __m128i __cl_char16;
361 typedef __m128i __cl_ushort8;
362 typedef __m128i __cl_short8;
363 typedef __m128i __cl_uint4;
364 typedef __m128i __cl_int4;
365 typedef __m128i __cl_ulong2;
366 typedef __m128i __cl_long2;
367 typedef __m128d __cl_double2;
369 #define __CL_UCHAR16__ 1
370 #define __CL_CHAR16__ 1
371 #define __CL_USHORT8__ 1
372 #define __CL_SHORT8__ 1
373 #define __CL_INT4__ 1
374 #define __CL_UINT4__ 1
375 #define __CL_ULONG2__ 1
376 #define __CL_LONG2__ 1
377 #define __CL_DOUBLE2__ 1
380 #if defined( __MMX__ )
381 #include <mmintrin.h>
382 #if defined( __GNUC__ )
383 typedef cl_uchar __cl_uchar8
__attribute__((vector_size(8)));
385 typedef cl_ushort __cl_ushort4
__attribute__((vector_size(8)));
386 typedef cl_short __cl_short4
__attribute__((vector_size(8)));
389 typedef cl_ulong __cl_ulong1
__attribute__((vector_size(8)));
391 typedef cl_float __cl_float2
__attribute__((vector_size(8)));
393 typedef __m64 __cl_uchar8;
394 typedef __m64 __cl_char8;
395 typedef __m64 __cl_ushort4;
396 typedef __m64 __cl_short4;
397 typedef __m64 __cl_uint2;
398 typedef __m64 __cl_int2;
399 typedef __m64 __cl_ulong1;
400 typedef __m64 __cl_long1;
401 typedef __m64 __cl_float2;
403 #define __CL_UCHAR8__ 1
404 #define __CL_CHAR8__ 1
405 #define __CL_USHORT4__ 1
406 #define __CL_SHORT4__ 1
407 #define __CL_INT2__ 1
408 #define __CL_UINT2__ 1
409 #define __CL_ULONG1__ 1
410 #define __CL_LONG1__ 1
411 #define __CL_FLOAT2__ 1
414 #if defined( __AVX__ )
415 #if defined( __MINGW64__ )
418 #include <immintrin.h>
420 #if defined( __GNUC__ )
421 typedef cl_float __cl_float8
__attribute__((vector_size(32)));
422 typedef cl_double __cl_double4
__attribute__((vector_size(32)));
424 typedef __m256 __cl_float8;
425 typedef __m256d __cl_double4;
427 #define __CL_FLOAT8__ 1
428 #define __CL_DOUBLE4__ 1
432 #if (defined( __GNUC__ ) || defined( __IBMC__ ))
433 #define CL_ALIGNED(_x) __attribute__ ((aligned(_x)))
434 #elif defined( _WIN32) && (_MSC_VER)
439 #define CL_ALIGNED(_x)
441 #warning Need to implement some method to align data here
442 #define CL_ALIGNED(_x)
446 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
448 #define CL_HAS_NAMED_VECTOR_FIELDS 1
450 #define CL_HAS_HI_LO_VECTOR_FIELDS 1
459 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
460 __extension__
struct{ cl_char x, y; };
461 __extension__
struct{ cl_char s0, s1; };
462 __extension__
struct{ cl_char lo, hi; };
464 #if defined( __CL_CHAR2__)
472 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
473 __extension__
struct{ cl_char x, y, z, w; };
474 __extension__
struct{ cl_char s0, s1, s2, s3; };
475 __extension__
struct{
cl_char2 lo, hi; };
477 #if defined( __CL_CHAR2__)
480 #if defined( __CL_CHAR4__)
491 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
492 __extension__
struct{ cl_char x, y, z, w; };
493 __extension__
struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7; };
494 __extension__
struct{
cl_char4 lo, hi; };
496 #if defined( __CL_CHAR2__)
499 #if defined( __CL_CHAR4__)
502 #if defined( __CL_CHAR8__ )
510 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
511 __extension__
struct{ cl_char x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
512 __extension__
struct{ cl_char s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
513 __extension__
struct{
cl_char8 lo, hi; };
515 #if defined( __CL_CHAR2__)
518 #if defined( __CL_CHAR4__)
521 #if defined( __CL_CHAR8__ )
524 #if defined( __CL_CHAR16__ )
534 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
535 __extension__
struct{ cl_uchar x, y; };
536 __extension__
struct{ cl_uchar s0, s1; };
537 __extension__
struct{ cl_uchar lo, hi; };
539 #if defined( __cl_uchar2__)
547 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
548 __extension__
struct{ cl_uchar x, y, z, w; };
549 __extension__
struct{ cl_uchar s0, s1, s2, s3; };
550 __extension__
struct{
cl_uchar2 lo, hi; };
552 #if defined( __CL_UCHAR2__)
555 #if defined( __CL_UCHAR4__)
566 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
567 __extension__
struct{ cl_uchar x, y, z, w; };
568 __extension__
struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7; };
569 __extension__
struct{
cl_uchar4 lo, hi; };
571 #if defined( __CL_UCHAR2__)
574 #if defined( __CL_UCHAR4__)
577 #if defined( __CL_UCHAR8__ )
585 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
586 __extension__
struct{ cl_uchar x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
587 __extension__
struct{ cl_uchar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
588 __extension__
struct{
cl_uchar8 lo, hi; };
590 #if defined( __CL_UCHAR2__)
593 #if defined( __CL_UCHAR4__)
596 #if defined( __CL_UCHAR8__ )
599 #if defined( __CL_UCHAR16__ )
609 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
610 __extension__
struct{ cl_short x, y; };
611 __extension__
struct{ cl_short s0, s1; };
612 __extension__
struct{ cl_short lo, hi; };
614 #if defined( __CL_SHORT2__)
622 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
623 __extension__
struct{ cl_short x, y, z, w; };
624 __extension__
struct{ cl_short s0, s1, s2, s3; };
625 __extension__
struct{
cl_short2 lo, hi; };
627 #if defined( __CL_SHORT2__)
630 #if defined( __CL_SHORT4__)
641 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
642 __extension__
struct{ cl_short x, y, z, w; };
643 __extension__
struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7; };
644 __extension__
struct{
cl_short4 lo, hi; };
646 #if defined( __CL_SHORT2__)
649 #if defined( __CL_SHORT4__)
652 #if defined( __CL_SHORT8__ )
660 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
661 __extension__
struct{ cl_short x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
662 __extension__
struct{ cl_short s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
663 __extension__
struct{
cl_short8 lo, hi; };
665 #if defined( __CL_SHORT2__)
668 #if defined( __CL_SHORT4__)
671 #if defined( __CL_SHORT8__ )
674 #if defined( __CL_SHORT16__ )
684 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
685 __extension__
struct{ cl_ushort x, y; };
686 __extension__
struct{ cl_ushort s0, s1; };
687 __extension__
struct{ cl_ushort lo, hi; };
689 #if defined( __CL_USHORT2__)
697 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
698 __extension__
struct{ cl_ushort x, y, z, w; };
699 __extension__
struct{ cl_ushort s0, s1, s2, s3; };
702 #if defined( __CL_USHORT2__)
705 #if defined( __CL_USHORT4__)
716 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
717 __extension__
struct{ cl_ushort x, y, z, w; };
718 __extension__
struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7; };
721 #if defined( __CL_USHORT2__)
724 #if defined( __CL_USHORT4__)
727 #if defined( __CL_USHORT8__ )
735 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
736 __extension__
struct{ cl_ushort x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
737 __extension__
struct{ cl_ushort s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
740 #if defined( __CL_USHORT2__)
743 #if defined( __CL_USHORT4__)
746 #if defined( __CL_USHORT8__ )
749 #if defined( __CL_USHORT16__ )
758 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
759 __extension__
struct{ cl_int x, y; };
760 __extension__
struct{ cl_int s0, s1; };
761 __extension__
struct{ cl_int lo, hi; };
763 #if defined( __CL_INT2__)
771 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
772 __extension__
struct{ cl_int x, y, z, w; };
773 __extension__
struct{ cl_int s0, s1, s2, s3; };
774 __extension__
struct{
cl_int2 lo, hi; };
776 #if defined( __CL_INT2__)
779 #if defined( __CL_INT4__)
790 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
791 __extension__
struct{ cl_int x, y, z, w; };
792 __extension__
struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7; };
793 __extension__
struct{
cl_int4 lo, hi; };
795 #if defined( __CL_INT2__)
798 #if defined( __CL_INT4__)
801 #if defined( __CL_INT8__ )
809 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
810 __extension__
struct{ cl_int x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
811 __extension__
struct{ cl_int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
812 __extension__
struct{
cl_int8 lo, hi; };
814 #if defined( __CL_INT2__)
817 #if defined( __CL_INT4__)
820 #if defined( __CL_INT8__ )
823 #if defined( __CL_INT16__ )
833 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
834 __extension__
struct{ cl_uint x, y; };
835 __extension__
struct{ cl_uint s0, s1; };
836 __extension__
struct{ cl_uint lo, hi; };
838 #if defined( __CL_UINT2__)
846 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
847 __extension__
struct{ cl_uint x, y, z, w; };
848 __extension__
struct{ cl_uint s0, s1, s2, s3; };
849 __extension__
struct{
cl_uint2 lo, hi; };
851 #if defined( __CL_UINT2__)
854 #if defined( __CL_UINT4__)
865 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
866 __extension__
struct{ cl_uint x, y, z, w; };
867 __extension__
struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7; };
868 __extension__
struct{
cl_uint4 lo, hi; };
870 #if defined( __CL_UINT2__)
873 #if defined( __CL_UINT4__)
876 #if defined( __CL_UINT8__ )
884 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
885 __extension__
struct{ cl_uint x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
886 __extension__
struct{ cl_uint s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
887 __extension__
struct{
cl_uint8 lo, hi; };
889 #if defined( __CL_UINT2__)
892 #if defined( __CL_UINT4__)
895 #if defined( __CL_UINT8__ )
898 #if defined( __CL_UINT16__ )
907 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
908 __extension__
struct{ cl_long x, y; };
909 __extension__
struct{ cl_long s0, s1; };
910 __extension__
struct{ cl_long lo, hi; };
912 #if defined( __CL_LONG2__)
920 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
921 __extension__
struct{ cl_long x, y, z, w; };
922 __extension__
struct{ cl_long s0, s1, s2, s3; };
923 __extension__
struct{
cl_long2 lo, hi; };
925 #if defined( __CL_LONG2__)
928 #if defined( __CL_LONG4__)
939 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
940 __extension__
struct{ cl_long x, y, z, w; };
941 __extension__
struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7; };
942 __extension__
struct{
cl_long4 lo, hi; };
944 #if defined( __CL_LONG2__)
947 #if defined( __CL_LONG4__)
950 #if defined( __CL_LONG8__ )
958 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
959 __extension__
struct{ cl_long x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
960 __extension__
struct{ cl_long s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
961 __extension__
struct{
cl_long8 lo, hi; };
963 #if defined( __CL_LONG2__)
966 #if defined( __CL_LONG4__)
969 #if defined( __CL_LONG8__ )
972 #if defined( __CL_LONG16__ )
982 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
983 __extension__
struct{ cl_ulong x, y; };
984 __extension__
struct{ cl_ulong s0, s1; };
985 __extension__
struct{ cl_ulong lo, hi; };
987 #if defined( __CL_ULONG2__)
995 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
996 __extension__
struct{ cl_ulong x, y, z, w; };
997 __extension__
struct{ cl_ulong s0, s1, s2, s3; };
998 __extension__
struct{
cl_ulong2 lo, hi; };
1000 #if defined( __CL_ULONG2__)
1003 #if defined( __CL_ULONG4__)
1014 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1015 __extension__
struct{ cl_ulong x, y, z, w; };
1016 __extension__
struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7; };
1017 __extension__
struct{
cl_ulong4 lo, hi; };
1019 #if defined( __CL_ULONG2__)
1022 #if defined( __CL_ULONG4__)
1025 #if defined( __CL_ULONG8__ )
1033 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1034 __extension__
struct{ cl_ulong x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1035 __extension__
struct{ cl_ulong s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1036 __extension__
struct{
cl_ulong8 lo, hi; };
1038 #if defined( __CL_ULONG2__)
1041 #if defined( __CL_ULONG4__)
1044 #if defined( __CL_ULONG8__ )
1047 #if defined( __CL_ULONG16__ )
1058 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1059 __extension__
struct{ cl_float x, y; };
1060 __extension__
struct{ cl_float s0, s1; };
1061 __extension__
struct{ cl_float lo, hi; };
1063 #if defined( __CL_FLOAT2__)
1071 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1072 __extension__
struct{ cl_float x, y, z, w; };
1073 __extension__
struct{ cl_float s0, s1, s2, s3; };
1074 __extension__
struct{
cl_float2 lo, hi; };
1076 #if defined( __CL_FLOAT2__)
1079 #if defined( __CL_FLOAT4__)
1090 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1091 __extension__
struct{ cl_float x, y, z, w; };
1092 __extension__
struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7; };
1093 __extension__
struct{
cl_float4 lo, hi; };
1095 #if defined( __CL_FLOAT2__)
1098 #if defined( __CL_FLOAT4__)
1101 #if defined( __CL_FLOAT8__ )
1109 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1110 __extension__
struct{ cl_float x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1111 __extension__
struct{ cl_float s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1112 __extension__
struct{
cl_float8 lo, hi; };
1114 #if defined( __CL_FLOAT2__)
1117 #if defined( __CL_FLOAT4__)
1120 #if defined( __CL_FLOAT8__ )
1123 #if defined( __CL_FLOAT16__ )
1133 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1134 __extension__
struct{ cl_double x, y; };
1135 __extension__
struct{ cl_double s0, s1; };
1136 __extension__
struct{ cl_double lo, hi; };
1138 #if defined( __CL_DOUBLE2__)
1146 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1147 __extension__
struct{ cl_double x, y, z, w; };
1148 __extension__
struct{ cl_double s0, s1, s2, s3; };
1151 #if defined( __CL_DOUBLE2__)
1154 #if defined( __CL_DOUBLE4__)
1165 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1166 __extension__
struct{ cl_double x, y, z, w; };
1167 __extension__
struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7; };
1170 #if defined( __CL_DOUBLE2__)
1173 #if defined( __CL_DOUBLE4__)
1176 #if defined( __CL_DOUBLE8__ )
1184 #if (defined( __GNUC__) || defined( __IBMC__ )) && ! defined( __STRICT_ANSI__ )
1185 __extension__
struct{ cl_double x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
1186 __extension__
struct{ cl_double s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
1189 #if defined( __CL_DOUBLE2__)
1192 #if defined( __CL_DOUBLE4__)
1195 #if defined( __CL_DOUBLE8__ )
1198 #if defined( __CL_DOUBLE16__ )
1223 #define __CL_STRINGIFY( _x ) # _x
1224 #define _CL_STRINGIFY( _x ) __CL_STRINGIFY( _x )
1225 #define CL_PROGRAM_STRING_DEBUG_INFO "#line " _CL_STRINGIFY(__LINE__) " \"" __FILE__ "\" \n\n"