~ubuntu-branches/ubuntu/maverick/nvidia-graphics-drivers/maverick

« back to all changes in this revision

Viewing changes to debian/headers/cl_platform.h

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone
  • Date: 2010-10-04 15:02:13 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20101004150213-z4wzi7rnd2kcwzzw
Tags: 260.19.06-0ubuntu1
* New upstream release:
  - Fixed an interaction problem with a change in X server
    behavior that caused slow text rendering on X.Org xserver
    1.9 (LP: #629910).
  - Enhanced VDPAU to support interop with CUDA and OpenGL
    when Xinerama is active.
  - Fixed a bug in VDPAU that prevented temporal-spatial
    de-interlacing from operating when temporal de-interlacing
    was not also enabled.
  - Added support for configuring the dithering depth used when
    driving a flat panel with a GeForce 8 family or Quadro
    4600/5600 or newer GPU. See the "Dithering Controls" in the
    Flat Panel page in nvidia-settings.
* debian/headers, nvidia-current-dev.install{.in}:
 - Put the headers from 256.53 in debian/headers and install
   them in nvidia-current-dev as usual. Starting from the 260
   series, these headers are no longer distributed with the
   Nvidia installer. In Natty we'll package them separately
   but for now we'll keep them in nvidia-current-dev.
* debian/dkms/patches/nvidia-2.6.36-ioctl.patch:
  - Refresh patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**********************************************************************************
 
2
 * Copyright (c) 2008-2009 The Khronos Group Inc.
 
3
 *
 
4
 * Permission is hereby granted, free of charge, to any person obtaining a
 
5
 * copy of this software and/or associated documentation files (the
 
6
 * "Materials"), to deal in the Materials without restriction, including
 
7
 * without limitation the rights to use, copy, modify, merge, publish,
 
8
 * distribute, sublicense, and/or sell copies of the Materials, and to
 
9
 * permit persons to whom the Materials are furnished to do so, subject to
 
10
 * the following conditions:
 
11
 *
 
12
 * The above copyright notice and this permission notice shall be included
 
13
 * in all copies or substantial portions of the Materials.
 
14
 *
 
15
 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
16
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
17
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
18
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 
19
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 
20
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 
21
 * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
 
22
 **********************************************************************************/
 
23
 
 
24
/* $Revision: 10327 $ on $Date: 2010-02-11 00:24:35 +0530 (Thu, 11 Feb 2010) $ */
 
25
 
 
26
#ifndef __CL_PLATFORM_H
 
27
#define __CL_PLATFORM_H
 
28
 
 
29
#ifdef __APPLE__
 
30
    /* Contains #defines for AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER below */
 
31
    #include <AvailabilityMacros.h>
 
32
#endif
 
33
 
 
34
#ifdef __cplusplus
 
35
extern "C" {
 
36
#endif
 
37
 
 
38
#if defined(_WIN32)
 
39
#define CL_API_ENTRY
 
40
#define CL_API_CALL __stdcall
 
41
#else
 
42
#define CL_API_ENTRY
 
43
#define CL_API_CALL
 
44
#endif
 
45
 
 
46
#ifdef __APPLE__
 
47
#define CL_API_SUFFIX__VERSION_1_0   AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
 
48
#define CL_API_SUFFIX__VERSION_1_1   
 
49
#define CL_EXTENSION_WEAK_LINK       __attribute__((weak_import))       
 
50
#else
 
51
#define CL_API_SUFFIX__VERSION_1_0
 
52
#define CL_API_SUFFIX__VERSION_1_1
 
53
#define CL_EXTENSION_WEAK_LINK                         
 
54
#endif
 
55
 
 
56
#if (defined (_WIN32) && defined(_MSC_VER))
 
57
 
 
58
/* scalar types  */
 
59
typedef signed   __int8         cl_char;
 
60
typedef unsigned __int8         cl_uchar;
 
61
typedef signed   __int16        cl_short;
 
62
typedef unsigned __int16        cl_ushort;
 
63
typedef signed   __int32        cl_int;
 
64
typedef unsigned __int32        cl_uint;
 
65
typedef signed   __int64        cl_long;
 
66
typedef unsigned __int64        cl_ulong;
 
67
 
 
68
typedef unsigned __int16        cl_half;
 
69
typedef float                   cl_float;
 
70
typedef double                  cl_double;
 
71
 
 
72
/* Macro names and corresponding values defined by OpenCL */
 
73
#define CL_CHAR_BIT         8
 
74
#define CL_SCHAR_MAX        127
 
75
#define CL_SCHAR_MIN        (-127-1)
 
76
#define CL_CHAR_MAX         CL_SCHAR_MAX
 
77
#define CL_CHAR_MIN         CL_SCHAR_MIN
 
78
#define CL_UCHAR_MAX        255
 
79
#define CL_SHRT_MAX         32767
 
80
#define CL_SHRT_MIN         (-32767-1)
 
81
#define CL_USHRT_MAX        65535
 
82
#define CL_INT_MAX          2147483647
 
83
#define CL_INT_MIN          (-2147483647-1)
 
84
#define CL_UINT_MAX         0xffffffffU
 
85
#define CL_LONG_MAX         ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
 
86
#define CL_LONG_MIN         ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
 
87
#define CL_ULONG_MAX        ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
 
88
 
 
89
#define CL_FLT_DIG          6
 
90
#define CL_FLT_MANT_DIG     24
 
91
#define CL_FLT_MAX_10_EXP   +38
 
92
#define CL_FLT_MAX_EXP      +128
 
93
#define CL_FLT_MIN_10_EXP   -37
 
94
#define CL_FLT_MIN_EXP      -125
 
95
#define CL_FLT_RADIX        2
 
96
#define CL_FLT_MAX          340282346638528859811704183484516925440.0f
 
97
#define CL_FLT_MIN          1.175494350822287507969e-38f
 
98
#define CL_FLT_EPSILON      0x1.0p-23f
 
99
 
 
100
#define CL_DBL_DIG          15
 
101
#define CL_DBL_MANT_DIG     53
 
102
#define CL_DBL_MAX_10_EXP   +308
 
103
#define CL_DBL_MAX_EXP      +1024
 
104
#define CL_DBL_MIN_10_EXP   -307
 
105
#define CL_DBL_MIN_EXP      -1021
 
106
#define CL_DBL_RADIX        2
 
107
#define CL_DBL_MAX          179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0
 
108
#define CL_DBL_MIN          2.225073858507201383090e-308
 
109
#define CL_DBL_EPSILON      2.220446049250313080847e-16
 
110
 
 
111
#define CL_NAN              (CL_INFINITY - CL_INFINITY)
 
112
#define CL_HUGE_VALF        ((cl_float) 1e50)
 
113
#define CL_HUGE_VAL         ((cl_double) 1e500)
 
114
#define CL_MAXFLOAT         CL_FLT_MAX
 
115
#define CL_INFINITY         CL_HUGE_VALF
 
116
 
 
117
#else
 
118
 
 
119
#include <stdint.h>
 
120
 
 
121
/* scalar types  */
 
122
typedef int8_t          cl_char;
 
123
typedef uint8_t         cl_uchar;
 
124
typedef int16_t         cl_short    __attribute__((aligned(2)));
 
125
typedef uint16_t        cl_ushort   __attribute__((aligned(2)));
 
126
typedef int32_t         cl_int      __attribute__((aligned(4)));
 
127
typedef uint32_t        cl_uint     __attribute__((aligned(4)));
 
128
typedef int64_t         cl_long     __attribute__((aligned(8)));
 
129
typedef uint64_t        cl_ulong    __attribute__((aligned(8)));
 
130
 
 
131
typedef uint16_t        cl_half     __attribute__((aligned(2)));
 
132
typedef float           cl_float    __attribute__((aligned(4)));
 
133
typedef double          cl_double   __attribute__((aligned(8)));
 
134
 
 
135
/* Macro names and corresponding values defined by OpenCL */
 
136
#define CL_CHAR_BIT         8
 
137
#define CL_SCHAR_MAX        127
 
138
#define CL_SCHAR_MIN        (-127-1)
 
139
#define CL_CHAR_MAX         CL_SCHAR_MAX
 
140
#define CL_CHAR_MIN         CL_SCHAR_MIN
 
141
#define CL_UCHAR_MAX        255
 
142
#define CL_SHRT_MAX         32767
 
143
#define CL_SHRT_MIN         (-32767-1)
 
144
#define CL_USHRT_MAX        65535
 
145
#define CL_INT_MAX          2147483647
 
146
#define CL_INT_MIN          (-2147483647-1)
 
147
#define CL_UINT_MAX         0xffffffffU
 
148
#define CL_LONG_MAX         ((cl_long) 0x7FFFFFFFFFFFFFFFLL)
 
149
#define CL_LONG_MIN         ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)
 
150
#define CL_ULONG_MAX        ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)
 
151
 
 
152
#define CL_FLT_DIG          6
 
153
#define CL_FLT_MANT_DIG     24
 
154
#define CL_FLT_MAX_10_EXP   +38
 
155
#define CL_FLT_MAX_EXP      +128
 
156
#define CL_FLT_MIN_10_EXP   -37
 
157
#define CL_FLT_MIN_EXP      -125
 
158
#define CL_FLT_RADIX        2
 
159
#define CL_FLT_MAX          0x1.fffffep127f
 
160
#define CL_FLT_MIN          0x1.0p-126f
 
161
#define CL_FLT_EPSILON      0x1.0p-23f
 
162
 
 
163
#define CL_DBL_DIG          15
 
164
#define CL_DBL_MANT_DIG     53
 
165
#define CL_DBL_MAX_10_EXP   +308
 
166
#define CL_DBL_MAX_EXP      +1024
 
167
#define CL_DBL_MIN_10_EXP   -307
 
168
#define CL_DBL_MIN_EXP      -1021
 
169
#define CL_DBL_RADIX        2
 
170
#define CL_DBL_MAX          0x1.fffffffffffffp1023
 
171
#define CL_DBL_MIN          0x1.0p-1022
 
172
#define CL_DBL_EPSILON      0x1.0p-52
 
173
 
 
174
#if defined( __GNUC__ )
 
175
   #define CL_HUGE_VALF     __builtin_huge_valf()
 
176
   #define CL_HUGE_VAL      __builtin_huge_val()
 
177
   #define CL_NAN           __builtin_nanf( "" )
 
178
#else
 
179
   #define CL_HUGE_VALF     ((cl_float) 1e50)
 
180
   #define CL_HUGE_VAL      ((cl_double) 1e500)
 
181
   float nanf( const char * );
 
182
   #define CL_NAN           nanf( "" )  
 
183
#endif
 
184
#define CL_MAXFLOAT         CL_FLT_MAX
 
185
#define CL_INFINITY         CL_HUGE_VALF
 
186
 
 
187
#endif
 
188
 
 
189
#include <stddef.h>
 
190
 
 
191
/* Mirror types to GL types. Mirror types allow us to avoid deciding which headers to load based on whether we are using GL or GLES here. */
 
192
typedef unsigned int cl_GLuint;
 
193
typedef int          cl_GLint;
 
194
typedef unsigned int cl_GLenum;
 
195
 
 
196
/*
 
197
 * Vector types 
 
198
 *
 
199
 *  Note:   OpenCL requires that all types be naturally aligned. 
 
200
 *          This means that vector types must be naturally aligned.
 
201
 *          For example, a vector of four floats must be aligned to
 
202
 *          a 16 byte boundary (calculated as 4 * the natural 4-byte 
 
203
 *          alignment of the float).  The alignment qualifiers here
 
204
 *          will only function properly if your compiler supports them
 
205
 *          and if you don't actively work to defeat them.  For example,
 
206
 *          in order for a cl_float4 to be 16 byte aligned in a struct,
 
207
 *          the start of the struct must itself be 16-byte aligned. 
 
208
 *
 
209
 *          Maintaining proper alignment is the user's responsibility.
 
210
 */
 
211
 
 
212
/* Define basic vector types */
 
213
#if defined( __VEC__ )
 
214
   #include <altivec.h>   /* may be omitted depending on compiler. AltiVec spec provides no way to detect whether the header is required. */
 
215
   typedef vector unsigned char     __cl_uchar16;
 
216
   typedef vector signed char       __cl_char16;
 
217
   typedef vector unsigned short    __cl_ushort8;
 
218
   typedef vector signed short      __cl_short8;
 
219
   typedef vector unsigned int      __cl_uint4;
 
220
   typedef vector signed int        __cl_int4;
 
221
   typedef vector float             __cl_float4;
 
222
   #define  __CL_UCHAR16__  1
 
223
   #define  __CL_CHAR16__   1
 
224
   #define  __CL_USHORT8__  1
 
225
   #define  __CL_SHORT8__   1
 
226
   #define  __CL_UINT4__    1
 
227
   #define  __CL_INT4__     1
 
228
   #define  __CL_FLOAT4__   1
 
229
#endif
 
230
 
 
231
#if defined( __SSE__ )
 
232
    #if defined( __MINGW64__ )
 
233
        #include <intrin.h>
 
234
    #else
 
235
        #include <xmmintrin.h>
 
236
    #endif
 
237
    #if defined( __GNUC__ )
 
238
        typedef float __cl_float4   __attribute__((vector_size(16)));
 
239
    #else
 
240
        typedef __m128 __cl_float4;
 
241
    #endif
 
242
    #define __CL_FLOAT4__   1
 
243
#endif
 
244
 
 
245
#if defined( __SSE2__ )
 
246
    #if defined( __MINGW64__ )
 
247
        #include <intrin.h>
 
248
    #else
 
249
        #include <emmintrin.h>
 
250
    #endif
 
251
    #if defined( __GNUC__ )
 
252
        typedef cl_uchar    __cl_uchar16    __attribute__((vector_size(16)));
 
253
        typedef cl_char     __cl_char16     __attribute__((vector_size(16)));
 
254
        typedef cl_ushort   __cl_ushort8    __attribute__((vector_size(16)));
 
255
        typedef cl_short    __cl_short8     __attribute__((vector_size(16)));
 
256
        typedef cl_uint     __cl_uint4      __attribute__((vector_size(16)));
 
257
        typedef cl_int      __cl_int4       __attribute__((vector_size(16)));
 
258
        typedef cl_ulong    __cl_ulong2     __attribute__((vector_size(16)));
 
259
        typedef cl_long     __cl_long2      __attribute__((vector_size(16)));
 
260
        typedef cl_double   __cl_double2    __attribute__((vector_size(16)));
 
261
    #else
 
262
        typedef __m128i __cl_uchar16;
 
263
        typedef __m128i __cl_char16;
 
264
        typedef __m128i __cl_ushort8;
 
265
        typedef __m128i __cl_short8;
 
266
        typedef __m128i __cl_uint4;
 
267
        typedef __m128i __cl_int4;
 
268
        typedef __m128i __cl_ulong2;
 
269
        typedef __m128i __cl_long2;
 
270
        typedef __m128d __cl_double2;
 
271
    #endif
 
272
    #define __CL_UCHAR16__  1
 
273
    #define __CL_CHAR16__   1
 
274
    #define __CL_USHORT8__  1
 
275
    #define __CL_SHORT8__   1
 
276
    #define __CL_INT4__     1
 
277
    #define __CL_UINT4__    1
 
278
    #define __CL_ULONG2__   1
 
279
    #define __CL_LONG2__    1
 
280
    #define __CL_DOUBLE2__  1
 
281
#endif
 
282
 
 
283
#if defined( __MMX__ )
 
284
    #include <mmintrin.h>
 
285
    #if defined( __GNUC__ )
 
286
        typedef cl_uchar    __cl_uchar8     __attribute__((vector_size(8)));
 
287
        typedef cl_char     __cl_char8      __attribute__((vector_size(8)));
 
288
        typedef cl_ushort   __cl_ushort4    __attribute__((vector_size(8)));
 
289
        typedef cl_short    __cl_short4     __attribute__((vector_size(8)));
 
290
        typedef cl_uint     __cl_uint2      __attribute__((vector_size(8)));
 
291
        typedef cl_int      __cl_int2       __attribute__((vector_size(8)));
 
292
        typedef cl_ulong    __cl_ulong1     __attribute__((vector_size(8)));
 
293
        typedef cl_long     __cl_long1      __attribute__((vector_size(8)));
 
294
        typedef cl_float    __cl_float2     __attribute__((vector_size(8)));
 
295
    #else
 
296
        typedef __m64       __cl_uchar8;
 
297
        typedef __m64       __cl_char8;
 
298
        typedef __m64       __cl_ushort4;
 
299
        typedef __m64       __cl_short4;
 
300
        typedef __m64       __cl_uint2;
 
301
        typedef __m64       __cl_int2;
 
302
        typedef __m64       __cl_ulong1;
 
303
        typedef __m64       __cl_long1;
 
304
        typedef __m64       __cl_float2;
 
305
    #endif
 
306
    #define __CL_UCHAR8__   1
 
307
    #define __CL_CHAR8__    1
 
308
    #define __CL_USHORT4__  1
 
309
    #define __CL_SHORT4__   1
 
310
    #define __CL_INT2__     1
 
311
    #define __CL_UINT2__    1
 
312
    #define __CL_ULONG1__   1
 
313
    #define __CL_LONG1__    1
 
314
    #define __CL_FLOAT2__   1
 
315
#endif
 
316
 
 
317
#if defined( __AVX__ )
 
318
    #include <gmmintrin.h> 
 
319
    #if defined( __GNUC__ )
 
320
        typedef cl_float    __cl_float8     __attribute__((vector_size(32)));
 
321
        typedef cl_double   __cl_double4    __attribute__((vector_size(32)));
 
322
    #else
 
323
        typedef __m256      __cl_float8;
 
324
        typedef __m256d     __cl_double4;
 
325
    #endif
 
326
    #define __CL_FLOAT8__   1
 
327
    #define __CL_DOUBLE4__  1
 
328
#endif
 
329
 
 
330
/* Define alignment keys */
 
331
#if defined( __GNUC__ )
 
332
    #define CL_ALIGNED(_x)          __attribute__ ((aligned(_x)))
 
333
#elif defined( _WIN32) && (_MSC_VER)
 
334
    /* Alignment keys neutered on windows because MSVC can't swallow function arguments with alignment requirements     */
 
335
    /* http://msdn.microsoft.com/en-us/library/373ak2y1%28VS.71%29.aspx                                                 */
 
336
    /* #include <crtdefs.h>                                                                                             */
 
337
    /* #define CL_ALIGNED(_x)          _CRT_ALIGN(_x)                                                                   */
 
338
    #define CL_ALIGNED(_x)
 
339
#else
 
340
   #warning  Need to implement some method to align data here
 
341
   #define  CL_ALIGNED(_x)
 
342
#endif
 
343
 
 
344
/* Indicate whether .xyzw, .s0123 and .hi.lo are supported */
 
345
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
346
    /* .xyzw and .s0123...{f|F} are supported */
 
347
    #define CL_HAS_NAMED_VECTOR_FIELDS 1
 
348
    /* .hi and .lo are supported */
 
349
    #define CL_HAS_HI_LO_VECTOR_FIELDS 1
 
350
#endif
 
351
 
 
352
/* Define cl_vector types */
 
353
 
 
354
/* ---- cl_charn ---- */
 
355
typedef union
 
356
{
 
357
    cl_char  CL_ALIGNED(2) s[2];
 
358
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
359
   __extension__ struct{ cl_char  x, y; };
 
360
   __extension__ struct{ cl_char  s0, s1; };
 
361
   __extension__ struct{ cl_char  lo, hi; };
 
362
#endif
 
363
#if defined( __CL_CHAR2__) 
 
364
    __cl_char2     v2;
 
365
#endif
 
366
}cl_char2;
 
367
 
 
368
typedef union
 
369
{
 
370
    cl_char  CL_ALIGNED(4) s[4];
 
371
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
372
   __extension__ struct{ cl_char  x, y, z, w; };
 
373
   __extension__ struct{ cl_char  s0, s1, s2, s3; };
 
374
   __extension__ struct{ cl_char2 lo, hi; };
 
375
#endif
 
376
#if defined( __CL_CHAR2__) 
 
377
    __cl_char2     v2[2];
 
378
#endif
 
379
#if defined( __CL_CHAR4__) 
 
380
    __cl_char4     v4;
 
381
#endif
 
382
}cl_char4;
 
383
 
 
384
typedef union
 
385
{
 
386
    cl_char   CL_ALIGNED(8) s[8];
 
387
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
388
   __extension__ struct{ cl_char  x, y, z, w; };
 
389
   __extension__ struct{ cl_char  s0, s1, s2, s3, s4, s5, s6, s7; };
 
390
   __extension__ struct{ cl_char4 lo, hi; };
 
391
#endif
 
392
#if defined( __CL_CHAR2__) 
 
393
    __cl_char2     v2[4];
 
394
#endif
 
395
#if defined( __CL_CHAR4__) 
 
396
    __cl_char4     v4[2];
 
397
#endif
 
398
#if defined( __CL_CHAR8__ )
 
399
    __cl_char8     v8;
 
400
#endif
 
401
}cl_char8;
 
402
 
 
403
typedef union
 
404
{
 
405
    cl_char  CL_ALIGNED(16) s[16];
 
406
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
407
   __extension__ struct{ cl_char  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
408
   __extension__ struct{ cl_char  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
409
   __extension__ struct{ cl_char8 lo, hi; };
 
410
#endif
 
411
#if defined( __CL_CHAR2__) 
 
412
    __cl_char2     v2[8];
 
413
#endif
 
414
#if defined( __CL_CHAR4__) 
 
415
    __cl_char4     v4[4];
 
416
#endif
 
417
#if defined( __CL_CHAR8__ )
 
418
    __cl_char8     v8[2];
 
419
#endif
 
420
#if defined( __CL_CHAR16__ )
 
421
    __cl_char16    v16;
 
422
#endif
 
423
}cl_char16;
 
424
 
 
425
 
 
426
/* ---- cl_ucharn ---- */
 
427
typedef union
 
428
{
 
429
    cl_uchar  CL_ALIGNED(2) s[2];
 
430
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
431
   __extension__ struct{ cl_uchar  x, y; };
 
432
   __extension__ struct{ cl_uchar  s0, s1; };
 
433
   __extension__ struct{ cl_uchar  lo, hi; };
 
434
#endif
 
435
#if defined( __cl_uchar2__) 
 
436
    __cl_uchar2     v2;
 
437
#endif
 
438
}cl_uchar2;
 
439
 
 
440
typedef union
 
441
{
 
442
    cl_uchar  CL_ALIGNED(4) s[4];
 
443
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
444
   __extension__ struct{ cl_uchar  x, y, z, w; };
 
445
   __extension__ struct{ cl_uchar  s0, s1, s2, s3; };
 
446
   __extension__ struct{ cl_uchar2 lo, hi; };
 
447
#endif
 
448
#if defined( __CL_UCHAR2__) 
 
449
    __cl_uchar2     v2[2];
 
450
#endif
 
451
#if defined( __CL_UCHAR4__) 
 
452
    __cl_uchar4     v4;
 
453
#endif
 
454
}cl_uchar4;
 
455
 
 
456
typedef union
 
457
{
 
458
    cl_uchar   CL_ALIGNED(8) s[8];
 
459
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
460
   __extension__ struct{ cl_uchar  x, y, z, w; };
 
461
   __extension__ struct{ cl_uchar  s0, s1, s2, s3, s4, s5, s6, s7; };
 
462
   __extension__ struct{ cl_uchar4 lo, hi; };
 
463
#endif
 
464
#if defined( __CL_UCHAR2__) 
 
465
    __cl_uchar2     v2[4];
 
466
#endif
 
467
#if defined( __CL_UCHAR4__) 
 
468
    __cl_uchar4     v4[2];
 
469
#endif
 
470
#if defined( __CL_UCHAR8__ )
 
471
    __cl_uchar8     v8;
 
472
#endif
 
473
}cl_uchar8;
 
474
 
 
475
typedef union
 
476
{
 
477
    cl_uchar  CL_ALIGNED(16) s[16];
 
478
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
479
   __extension__ struct{ cl_uchar  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
480
   __extension__ struct{ cl_uchar  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
481
   __extension__ struct{ cl_uchar8 lo, hi; };
 
482
#endif
 
483
#if defined( __CL_UCHAR2__) 
 
484
    __cl_uchar2     v2[8];
 
485
#endif
 
486
#if defined( __CL_UCHAR4__) 
 
487
    __cl_uchar4     v4[4];
 
488
#endif
 
489
#if defined( __CL_UCHAR8__ )
 
490
    __cl_uchar8     v8[2];
 
491
#endif
 
492
#if defined( __CL_UCHAR16__ )
 
493
    __cl_uchar16    v16;
 
494
#endif
 
495
}cl_uchar16;
 
496
 
 
497
 
 
498
/* ---- cl_shortn ---- */
 
499
typedef union
 
500
{
 
501
    cl_short  CL_ALIGNED(4) s[2];
 
502
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
503
   __extension__ struct{ cl_short  x, y; };
 
504
   __extension__ struct{ cl_short  s0, s1; };
 
505
   __extension__ struct{ cl_short  lo, hi; };
 
506
#endif
 
507
#if defined( __CL_SHORT2__) 
 
508
    __cl_short2     v2;
 
509
#endif
 
510
}cl_short2;
 
511
 
 
512
typedef union
 
513
{
 
514
    cl_short  CL_ALIGNED(8) s[4];
 
515
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
516
   __extension__ struct{ cl_short  x, y, z, w; };
 
517
   __extension__ struct{ cl_short  s0, s1, s2, s3; };
 
518
   __extension__ struct{ cl_short2 lo, hi; };
 
519
#endif
 
520
#if defined( __CL_SHORT2__) 
 
521
    __cl_short2     v2[2];
 
522
#endif
 
523
#if defined( __CL_SHORT4__) 
 
524
    __cl_short4     v4;
 
525
#endif
 
526
}cl_short4;
 
527
 
 
528
typedef union
 
529
{
 
530
    cl_short   CL_ALIGNED(16) s[8];
 
531
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
532
   __extension__ struct{ cl_short  x, y, z, w; };
 
533
   __extension__ struct{ cl_short  s0, s1, s2, s3, s4, s5, s6, s7; };
 
534
   __extension__ struct{ cl_short4 lo, hi; };
 
535
#endif
 
536
#if defined( __CL_SHORT2__) 
 
537
    __cl_short2     v2[4];
 
538
#endif
 
539
#if defined( __CL_SHORT4__) 
 
540
    __cl_short4     v4[2];
 
541
#endif
 
542
#if defined( __CL_SHORT8__ )
 
543
    __cl_short8     v8;
 
544
#endif
 
545
}cl_short8;
 
546
 
 
547
typedef union
 
548
{
 
549
    cl_short  CL_ALIGNED(32) s[16];
 
550
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
551
   __extension__ struct{ cl_short  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
552
   __extension__ struct{ cl_short  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
553
   __extension__ struct{ cl_short8 lo, hi; };
 
554
#endif
 
555
#if defined( __CL_SHORT2__) 
 
556
    __cl_short2     v2[8];
 
557
#endif
 
558
#if defined( __CL_SHORT4__) 
 
559
    __cl_short4     v4[4];
 
560
#endif
 
561
#if defined( __CL_SHORT8__ )
 
562
    __cl_short8     v8[2];
 
563
#endif
 
564
#if defined( __CL_SHORT16__ )
 
565
    __cl_short16    v16;
 
566
#endif
 
567
}cl_short16;
 
568
 
 
569
 
 
570
/* ---- cl_ushortn ---- */
 
571
typedef union
 
572
{
 
573
    cl_ushort  CL_ALIGNED(4) s[2];
 
574
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
575
   __extension__ struct{ cl_ushort  x, y; };
 
576
   __extension__ struct{ cl_ushort  s0, s1; };
 
577
   __extension__ struct{ cl_ushort  lo, hi; };
 
578
#endif
 
579
#if defined( __CL_USHORT2__) 
 
580
    __cl_ushort2     v2;
 
581
#endif
 
582
}cl_ushort2;
 
583
 
 
584
typedef union
 
585
{
 
586
    cl_ushort  CL_ALIGNED(8) s[4];
 
587
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
588
   __extension__ struct{ cl_ushort  x, y, z, w; };
 
589
   __extension__ struct{ cl_ushort  s0, s1, s2, s3; };
 
590
   __extension__ struct{ cl_ushort2 lo, hi; };
 
591
#endif
 
592
#if defined( __CL_USHORT2__) 
 
593
    __cl_ushort2     v2[2];
 
594
#endif
 
595
#if defined( __CL_USHORT4__) 
 
596
    __cl_ushort4     v4;
 
597
#endif
 
598
}cl_ushort4;
 
599
 
 
600
typedef union
 
601
{
 
602
    cl_ushort   CL_ALIGNED(16) s[8];
 
603
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
604
   __extension__ struct{ cl_ushort  x, y, z, w; };
 
605
   __extension__ struct{ cl_ushort  s0, s1, s2, s3, s4, s5, s6, s7; };
 
606
   __extension__ struct{ cl_ushort4 lo, hi; };
 
607
#endif
 
608
#if defined( __CL_USHORT2__) 
 
609
    __cl_ushort2     v2[4];
 
610
#endif
 
611
#if defined( __CL_USHORT4__) 
 
612
    __cl_ushort4     v4[2];
 
613
#endif
 
614
#if defined( __CL_USHORT8__ )
 
615
    __cl_ushort8     v8;
 
616
#endif
 
617
}cl_ushort8;
 
618
 
 
619
typedef union
 
620
{
 
621
    cl_ushort  CL_ALIGNED(32) s[16];
 
622
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
623
   __extension__ struct{ cl_ushort  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
624
   __extension__ struct{ cl_ushort  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
625
   __extension__ struct{ cl_ushort8 lo, hi; };
 
626
#endif
 
627
#if defined( __CL_USHORT2__) 
 
628
    __cl_ushort2     v2[8];
 
629
#endif
 
630
#if defined( __CL_USHORT4__) 
 
631
    __cl_ushort4     v4[4];
 
632
#endif
 
633
#if defined( __CL_USHORT8__ )
 
634
    __cl_ushort8     v8[2];
 
635
#endif
 
636
#if defined( __CL_USHORT16__ )
 
637
    __cl_ushort16    v16;
 
638
#endif
 
639
}cl_ushort16;
 
640
 
 
641
/* ---- cl_intn ---- */
 
642
typedef union
 
643
{
 
644
    cl_int  CL_ALIGNED(8) s[2];
 
645
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
646
   __extension__ struct{ cl_int  x, y; };
 
647
   __extension__ struct{ cl_int  s0, s1; };
 
648
   __extension__ struct{ cl_int  lo, hi; };
 
649
#endif
 
650
#if defined( __CL_INT2__) 
 
651
    __cl_int2     v2;
 
652
#endif
 
653
}cl_int2;
 
654
 
 
655
typedef union
 
656
{
 
657
    cl_int  CL_ALIGNED(16) s[4];
 
658
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
659
   __extension__ struct{ cl_int  x, y, z, w; };
 
660
   __extension__ struct{ cl_int  s0, s1, s2, s3; };
 
661
   __extension__ struct{ cl_int2 lo, hi; };
 
662
#endif
 
663
#if defined( __CL_INT2__) 
 
664
    __cl_int2     v2[2];
 
665
#endif
 
666
#if defined( __CL_INT4__) 
 
667
    __cl_int4     v4;
 
668
#endif
 
669
}cl_int4;
 
670
 
 
671
typedef union
 
672
{
 
673
    cl_int   CL_ALIGNED(32) s[8];
 
674
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
675
   __extension__ struct{ cl_int  x, y, z, w; };
 
676
   __extension__ struct{ cl_int  s0, s1, s2, s3, s4, s5, s6, s7; };
 
677
   __extension__ struct{ cl_int4 lo, hi; };
 
678
#endif
 
679
#if defined( __CL_INT2__) 
 
680
    __cl_int2     v2[4];
 
681
#endif
 
682
#if defined( __CL_INT4__) 
 
683
    __cl_int4     v4[2];
 
684
#endif
 
685
#if defined( __CL_INT8__ )
 
686
    __cl_int8     v8;
 
687
#endif
 
688
}cl_int8;
 
689
 
 
690
typedef union
 
691
{
 
692
    cl_int  CL_ALIGNED(64) s[16];
 
693
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
694
   __extension__ struct{ cl_int  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
695
   __extension__ struct{ cl_int  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
696
   __extension__ struct{ cl_int8 lo, hi; };
 
697
#endif
 
698
#if defined( __CL_INT2__) 
 
699
    __cl_int2     v2[8];
 
700
#endif
 
701
#if defined( __CL_INT4__) 
 
702
    __cl_int4     v4[4];
 
703
#endif
 
704
#if defined( __CL_INT8__ )
 
705
    __cl_int8     v8[2];
 
706
#endif
 
707
#if defined( __CL_INT16__ )
 
708
    __cl_int16    v16;
 
709
#endif
 
710
}cl_int16;
 
711
 
 
712
 
 
713
/* ---- cl_uintn ---- */
 
714
typedef union
 
715
{
 
716
    cl_uint  CL_ALIGNED(8) s[2];
 
717
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
718
   __extension__ struct{ cl_uint  x, y; };
 
719
   __extension__ struct{ cl_uint  s0, s1; };
 
720
   __extension__ struct{ cl_uint  lo, hi; };
 
721
#endif
 
722
#if defined( __CL_UINT2__) 
 
723
    __cl_uint2     v2;
 
724
#endif
 
725
}cl_uint2;
 
726
 
 
727
typedef union
 
728
{
 
729
    cl_uint  CL_ALIGNED(16) s[4];
 
730
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
731
   __extension__ struct{ cl_uint  x, y, z, w; };
 
732
   __extension__ struct{ cl_uint  s0, s1, s2, s3; };
 
733
   __extension__ struct{ cl_uint2 lo, hi; };
 
734
#endif
 
735
#if defined( __CL_UINT2__) 
 
736
    __cl_uint2     v2[2];
 
737
#endif
 
738
#if defined( __CL_UINT4__) 
 
739
    __cl_uint4     v4;
 
740
#endif
 
741
}cl_uint4;
 
742
 
 
743
typedef union
 
744
{
 
745
    cl_uint   CL_ALIGNED(32) s[8];
 
746
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
747
   __extension__ struct{ cl_uint  x, y, z, w; };
 
748
   __extension__ struct{ cl_uint  s0, s1, s2, s3, s4, s5, s6, s7; };
 
749
   __extension__ struct{ cl_uint4 lo, hi; };
 
750
#endif
 
751
#if defined( __CL_UINT2__) 
 
752
    __cl_uint2     v2[4];
 
753
#endif
 
754
#if defined( __CL_UINT4__) 
 
755
    __cl_uint4     v4[2];
 
756
#endif
 
757
#if defined( __CL_UINT8__ )
 
758
    __cl_uint8     v8;
 
759
#endif
 
760
}cl_uint8;
 
761
 
 
762
typedef union
 
763
{
 
764
    cl_uint  CL_ALIGNED(64) s[16];
 
765
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
766
   __extension__ struct{ cl_uint  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
767
   __extension__ struct{ cl_uint  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
768
   __extension__ struct{ cl_uint8 lo, hi; };
 
769
#endif
 
770
#if defined( __CL_UINT2__) 
 
771
    __cl_uint2     v2[8];
 
772
#endif
 
773
#if defined( __CL_UINT4__) 
 
774
    __cl_uint4     v4[4];
 
775
#endif
 
776
#if defined( __CL_UINT8__ )
 
777
    __cl_uint8     v8[2];
 
778
#endif
 
779
#if defined( __CL_UINT16__ )
 
780
    __cl_uint16    v16;
 
781
#endif
 
782
}cl_uint16;
 
783
 
 
784
/* ---- cl_longn ---- */
 
785
typedef union
 
786
{
 
787
    cl_long  CL_ALIGNED(16) s[2];
 
788
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
789
   __extension__ struct{ cl_long  x, y; };
 
790
   __extension__ struct{ cl_long  s0, s1; };
 
791
   __extension__ struct{ cl_long  lo, hi; };
 
792
#endif
 
793
#if defined( __CL_LONG2__) 
 
794
    __cl_long2     v2;
 
795
#endif
 
796
}cl_long2;
 
797
 
 
798
typedef union
 
799
{
 
800
    cl_long  CL_ALIGNED(32) s[4];
 
801
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
802
   __extension__ struct{ cl_long  x, y, z, w; };
 
803
   __extension__ struct{ cl_long  s0, s1, s2, s3; };
 
804
   __extension__ struct{ cl_long2 lo, hi; };
 
805
#endif
 
806
#if defined( __CL_LONG2__) 
 
807
    __cl_long2     v2[2];
 
808
#endif
 
809
#if defined( __CL_LONG4__) 
 
810
    __cl_long4     v4;
 
811
#endif
 
812
}cl_long4;
 
813
 
 
814
typedef union
 
815
{
 
816
    cl_long   CL_ALIGNED(64) s[8];
 
817
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
818
   __extension__ struct{ cl_long  x, y, z, w; };
 
819
   __extension__ struct{ cl_long  s0, s1, s2, s3, s4, s5, s6, s7; };
 
820
   __extension__ struct{ cl_long4 lo, hi; };
 
821
#endif
 
822
#if defined( __CL_LONG2__) 
 
823
    __cl_long2     v2[4];
 
824
#endif
 
825
#if defined( __CL_LONG4__) 
 
826
    __cl_long4     v4[2];
 
827
#endif
 
828
#if defined( __CL_LONG8__ )
 
829
    __cl_long8     v8;
 
830
#endif
 
831
}cl_long8;
 
832
 
 
833
typedef union
 
834
{
 
835
    cl_long  CL_ALIGNED(128) s[16];
 
836
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
837
   __extension__ struct{ cl_long  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
838
   __extension__ struct{ cl_long  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
839
   __extension__ struct{ cl_long8 lo, hi; };
 
840
#endif
 
841
#if defined( __CL_LONG2__) 
 
842
    __cl_long2     v2[8];
 
843
#endif
 
844
#if defined( __CL_LONG4__) 
 
845
    __cl_long4     v4[4];
 
846
#endif
 
847
#if defined( __CL_LONG8__ )
 
848
    __cl_long8     v8[2];
 
849
#endif
 
850
#if defined( __CL_LONG16__ )
 
851
    __cl_long16    v16;
 
852
#endif
 
853
}cl_long16;
 
854
 
 
855
 
 
856
/* ---- cl_ulongn ---- */
 
857
typedef union
 
858
{
 
859
    cl_ulong  CL_ALIGNED(16) s[2];
 
860
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
861
   __extension__ struct{ cl_ulong  x, y; };
 
862
   __extension__ struct{ cl_ulong  s0, s1; };
 
863
   __extension__ struct{ cl_ulong  lo, hi; };
 
864
#endif
 
865
#if defined( __CL_ULONG2__) 
 
866
    __cl_ulong2     v2;
 
867
#endif
 
868
}cl_ulong2;
 
869
 
 
870
typedef union
 
871
{
 
872
    cl_ulong  CL_ALIGNED(32) s[4];
 
873
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
874
   __extension__ struct{ cl_ulong  x, y, z, w; };
 
875
   __extension__ struct{ cl_ulong  s0, s1, s2, s3; };
 
876
   __extension__ struct{ cl_ulong2 lo, hi; };
 
877
#endif
 
878
#if defined( __CL_ULONG2__) 
 
879
    __cl_ulong2     v2[2];
 
880
#endif
 
881
#if defined( __CL_ULONG4__) 
 
882
    __cl_ulong4     v4;
 
883
#endif
 
884
}cl_ulong4;
 
885
 
 
886
typedef union
 
887
{
 
888
    cl_ulong   CL_ALIGNED(64) s[8];
 
889
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
890
   __extension__ struct{ cl_ulong  x, y, z, w; };
 
891
   __extension__ struct{ cl_ulong  s0, s1, s2, s3, s4, s5, s6, s7; };
 
892
   __extension__ struct{ cl_ulong4 lo, hi; };
 
893
#endif
 
894
#if defined( __CL_ULONG2__) 
 
895
    __cl_ulong2     v2[4];
 
896
#endif
 
897
#if defined( __CL_ULONG4__) 
 
898
    __cl_ulong4     v4[2];
 
899
#endif
 
900
#if defined( __CL_ULONG8__ )
 
901
    __cl_ulong8     v8;
 
902
#endif
 
903
}cl_ulong8;
 
904
 
 
905
typedef union
 
906
{
 
907
    cl_ulong  CL_ALIGNED(128) s[16];
 
908
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
909
   __extension__ struct{ cl_ulong  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
910
   __extension__ struct{ cl_ulong  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
911
   __extension__ struct{ cl_ulong8 lo, hi; };
 
912
#endif
 
913
#if defined( __CL_ULONG2__) 
 
914
    __cl_ulong2     v2[8];
 
915
#endif
 
916
#if defined( __CL_ULONG4__) 
 
917
    __cl_ulong4     v4[4];
 
918
#endif
 
919
#if defined( __CL_ULONG8__ )
 
920
    __cl_ulong8     v8[2];
 
921
#endif
 
922
#if defined( __CL_ULONG16__ )
 
923
    __cl_ulong16    v16;
 
924
#endif
 
925
}cl_ulong16;
 
926
 
 
927
 
 
928
/* --- cl_floatn ---- */
 
929
 
 
930
typedef union
 
931
{
 
932
    cl_float  CL_ALIGNED(8) s[2];
 
933
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
934
   __extension__ struct{ cl_float  x, y; };
 
935
   __extension__ struct{ cl_float  s0, s1; };
 
936
   __extension__ struct{ cl_float  lo, hi; };
 
937
#endif
 
938
#if defined( __CL_FLOAT2__) 
 
939
    __cl_float2     v2;
 
940
#endif
 
941
}cl_float2;
 
942
 
 
943
typedef union
 
944
{
 
945
    cl_float  CL_ALIGNED(16) s[4];
 
946
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
947
   __extension__ struct{ cl_float   x, y, z, w; };
 
948
   __extension__ struct{ cl_float   s0, s1, s2, s3; };
 
949
   __extension__ struct{ cl_float2  lo, hi; };
 
950
#endif
 
951
#if defined( __CL_FLOAT2__) 
 
952
    __cl_float2     v2[2];
 
953
#endif
 
954
#if defined( __CL_FLOAT4__) 
 
955
    __cl_float4     v4;
 
956
#endif
 
957
}cl_float4;
 
958
 
 
959
typedef union
 
960
{
 
961
    cl_float   CL_ALIGNED(32) s[8];
 
962
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
963
   __extension__ struct{ cl_float   x, y, z, w; };
 
964
   __extension__ struct{ cl_float   s0, s1, s2, s3, s4, s5, s6, s7; };
 
965
   __extension__ struct{ cl_float4  lo, hi; };
 
966
#endif
 
967
#if defined( __CL_FLOAT2__) 
 
968
    __cl_float2     v2[4];
 
969
#endif
 
970
#if defined( __CL_FLOAT4__) 
 
971
    __cl_float4     v4[2];
 
972
#endif
 
973
#if defined( __CL_FLOAT8__ )
 
974
    __cl_float8     v8;
 
975
#endif
 
976
}cl_float8;
 
977
 
 
978
typedef union
 
979
{
 
980
    cl_float  CL_ALIGNED(64) s[16];
 
981
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
982
   __extension__ struct{ cl_float  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
983
   __extension__ struct{ cl_float  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
984
   __extension__ struct{ cl_float8 lo, hi; };
 
985
#endif
 
986
#if defined( __CL_FLOAT2__) 
 
987
    __cl_float2     v2[8];
 
988
#endif
 
989
#if defined( __CL_FLOAT4__) 
 
990
    __cl_float4     v4[4];
 
991
#endif
 
992
#if defined( __CL_FLOAT8__ )
 
993
    __cl_float8     v8[2];
 
994
#endif
 
995
#if defined( __CL_FLOAT16__ )
 
996
    __cl_float16    v16;
 
997
#endif
 
998
}cl_float16;
 
999
 
 
1000
/* --- cl_doublen ---- */
 
1001
 
 
1002
typedef union
 
1003
{
 
1004
    cl_double  CL_ALIGNED(16) s[2];
 
1005
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
1006
   __extension__ struct{ cl_double  x, y; };
 
1007
   __extension__ struct{ cl_double s0, s1; };
 
1008
   __extension__ struct{ cl_double lo, hi; };
 
1009
#endif
 
1010
#if defined( __CL_DOUBLE2__) 
 
1011
    __cl_double2     v2;
 
1012
#endif
 
1013
}cl_double2;
 
1014
 
 
1015
typedef union
 
1016
{
 
1017
    cl_double  CL_ALIGNED(32) s[4];
 
1018
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
1019
   __extension__ struct{ cl_double  x, y, z, w; };
 
1020
   __extension__ struct{ cl_double  s0, s1, s2, s3; };
 
1021
   __extension__ struct{ cl_double2 lo, hi; };
 
1022
#endif
 
1023
#if defined( __CL_DOUBLE2__) 
 
1024
    __cl_double2     v2[2];
 
1025
#endif
 
1026
#if defined( __CL_DOUBLE4__) 
 
1027
    __cl_double4     v4;
 
1028
#endif
 
1029
}cl_double4;
 
1030
 
 
1031
typedef union
 
1032
{
 
1033
    cl_double   CL_ALIGNED(64) s[8];
 
1034
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
1035
   __extension__ struct{ cl_double  x, y, z, w; };
 
1036
   __extension__ struct{ cl_double  s0, s1, s2, s3, s4, s5, s6, s7; };
 
1037
   __extension__ struct{ cl_double4 lo, hi; };
 
1038
#endif
 
1039
#if defined( __CL_DOUBLE2__) 
 
1040
    __cl_double2     v2[4];
 
1041
#endif
 
1042
#if defined( __CL_DOUBLE4__) 
 
1043
    __cl_double4     v4[2];
 
1044
#endif
 
1045
#if defined( __CL_DOUBLE8__ )
 
1046
    __cl_double8     v8;
 
1047
#endif
 
1048
}cl_double8;
 
1049
 
 
1050
typedef union
 
1051
{
 
1052
    cl_double  CL_ALIGNED(128) s[16];
 
1053
#if defined( __GNUC__) && ! defined( __STRICT_ANSI__ )
 
1054
   __extension__ struct{ cl_double  x, y, z, w, __spacer4, __spacer5, __spacer6, __spacer7, __spacer8, __spacer9, sa, sb, sc, sd, se, sf; };
 
1055
   __extension__ struct{ cl_double  s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF; };
 
1056
   __extension__ struct{ cl_double8 lo, hi; };
 
1057
#endif
 
1058
#if defined( __CL_DOUBLE2__) 
 
1059
    __cl_double2     v2[8];
 
1060
#endif
 
1061
#if defined( __CL_DOUBLE4__) 
 
1062
    __cl_double4     v4[4];
 
1063
#endif
 
1064
#if defined( __CL_DOUBLE8__ )
 
1065
    __cl_double8     v8[2];
 
1066
#endif
 
1067
#if defined( __CL_DOUBLE16__ )
 
1068
    __cl_double16    v16;
 
1069
#endif
 
1070
}cl_double16;
 
1071
 
 
1072
  
 
1073
#ifdef __cplusplus
 
1074
}
 
1075
#endif
 
1076
 
 
1077
#endif  /* __CL_PLATFORM_H  */