1//These 2 defines only change when switching between data sizes or base types to
2//keep this file manageable.
3#define __CLC_GENSIZE 8
4#define __CLC_SCALAR_GENTYPE char
5
6#define __CLC_GENTYPE char
7#define __CLC_U_GENTYPE uchar
8#define __CLC_S_GENTYPE char
9#define __CLC_SCALAR 1
10#define __CLC_VECSIZE
11#include __CLC_BODY
12#undef __CLC_VECSIZE
13#undef __CLC_SCALAR
14#undef __CLC_GENTYPE
15#undef __CLC_U_GENTYPE
16#undef __CLC_S_GENTYPE
17
18#define __CLC_GENTYPE char2
19#define __CLC_U_GENTYPE uchar2
20#define __CLC_S_GENTYPE char2
21#define __CLC_VECSIZE 2
22#include __CLC_BODY
23#undef __CLC_VECSIZE
24#undef __CLC_GENTYPE
25#undef __CLC_U_GENTYPE
26#undef __CLC_S_GENTYPE
27
28#define __CLC_GENTYPE char3
29#define __CLC_U_GENTYPE uchar3
30#define __CLC_S_GENTYPE char3
31#define __CLC_VECSIZE 3
32#include __CLC_BODY
33#undef __CLC_VECSIZE
34#undef __CLC_GENTYPE
35#undef __CLC_U_GENTYPE
36#undef __CLC_S_GENTYPE
37
38#define __CLC_GENTYPE char4
39#define __CLC_U_GENTYPE uchar4
40#define __CLC_S_GENTYPE char4
41#define __CLC_VECSIZE 4
42#include __CLC_BODY
43#undef __CLC_VECSIZE
44#undef __CLC_GENTYPE
45#undef __CLC_U_GENTYPE
46#undef __CLC_S_GENTYPE
47
48#define __CLC_GENTYPE char8
49#define __CLC_U_GENTYPE uchar8
50#define __CLC_S_GENTYPE char8
51#define __CLC_VECSIZE 8
52#include __CLC_BODY
53#undef __CLC_VECSIZE
54#undef __CLC_GENTYPE
55#undef __CLC_U_GENTYPE
56#undef __CLC_S_GENTYPE
57
58#define __CLC_GENTYPE char16
59#define __CLC_U_GENTYPE uchar16
60#define __CLC_S_GENTYPE char16
61#define __CLC_VECSIZE 16
62#include __CLC_BODY
63#undef __CLC_VECSIZE
64#undef __CLC_GENTYPE
65#undef __CLC_U_GENTYPE
66#undef __CLC_S_GENTYPE
67
68#undef __CLC_SCALAR_GENTYPE
69#define __CLC_SCALAR_GENTYPE uchar
70
71#define __CLC_GENTYPE uchar
72#define __CLC_U_GENTYPE uchar
73#define __CLC_S_GENTYPE char
74#define __CLC_SCALAR 1
75#define __CLC_VECSIZE
76#include __CLC_BODY
77#undef __CLC_VECSIZE
78#undef __CLC_SCALAR
79#undef __CLC_GENTYPE
80#undef __CLC_U_GENTYPE
81#undef __CLC_S_GENTYPE
82
83#define __CLC_GENTYPE uchar2
84#define __CLC_U_GENTYPE uchar2
85#define __CLC_S_GENTYPE char2
86#define __CLC_VECSIZE 2
87#include __CLC_BODY
88#undef __CLC_VECSIZE
89#undef __CLC_GENTYPE
90#undef __CLC_U_GENTYPE
91#undef __CLC_S_GENTYPE
92
93#define __CLC_GENTYPE uchar3
94#define __CLC_U_GENTYPE uchar3
95#define __CLC_S_GENTYPE char3
96#define __CLC_VECSIZE 3
97#include __CLC_BODY
98#undef __CLC_VECSIZE
99#undef __CLC_GENTYPE
100#undef __CLC_U_GENTYPE
101#undef __CLC_S_GENTYPE
102
103#define __CLC_GENTYPE uchar4
104#define __CLC_U_GENTYPE uchar4
105#define __CLC_S_GENTYPE char4
106#define __CLC_VECSIZE 4
107#include __CLC_BODY
108#undef __CLC_VECSIZE
109#undef __CLC_GENTYPE
110#undef __CLC_U_GENTYPE
111#undef __CLC_S_GENTYPE
112
113#define __CLC_GENTYPE uchar8
114#define __CLC_U_GENTYPE uchar8
115#define __CLC_S_GENTYPE char8
116#define __CLC_VECSIZE 8
117#include __CLC_BODY
118#undef __CLC_VECSIZE
119#undef __CLC_GENTYPE
120#undef __CLC_U_GENTYPE
121#undef __CLC_S_GENTYPE
122
123#define __CLC_GENTYPE uchar16
124#define __CLC_U_GENTYPE uchar16
125#define __CLC_S_GENTYPE char16
126#define __CLC_VECSIZE 16
127#include __CLC_BODY
128#undef __CLC_VECSIZE
129#undef __CLC_GENTYPE
130#undef __CLC_U_GENTYPE
131#undef __CLC_S_GENTYPE
132
133#undef __CLC_GENSIZE
134#define __CLC_GENSIZE 16
135#undef __CLC_SCALAR_GENTYPE
136#define __CLC_SCALAR_GENTYPE short
137
138#define __CLC_GENTYPE short
139#define __CLC_U_GENTYPE ushort
140#define __CLC_S_GENTYPE short
141#define __CLC_SCALAR 1
142#define __CLC_VECSIZE
143#include __CLC_BODY
144#undef __CLC_VECSIZE
145#undef __CLC_SCALAR
146#undef __CLC_GENTYPE
147#undef __CLC_U_GENTYPE
148#undef __CLC_S_GENTYPE
149
150#define __CLC_GENTYPE short2
151#define __CLC_U_GENTYPE ushort2
152#define __CLC_S_GENTYPE short2
153#define __CLC_VECSIZE 2
154#include __CLC_BODY
155#undef __CLC_VECSIZE
156#undef __CLC_GENTYPE
157#undef __CLC_U_GENTYPE
158#undef __CLC_S_GENTYPE
159
160#define __CLC_GENTYPE short3
161#define __CLC_U_GENTYPE ushort3
162#define __CLC_S_GENTYPE short3
163#define __CLC_VECSIZE 3
164#include __CLC_BODY
165#undef __CLC_VECSIZE
166#undef __CLC_GENTYPE
167#undef __CLC_U_GENTYPE
168#undef __CLC_S_GENTYPE
169
170#define __CLC_GENTYPE short4
171#define __CLC_U_GENTYPE ushort4
172#define __CLC_S_GENTYPE short4
173#define __CLC_VECSIZE 4
174#include __CLC_BODY
175#undef __CLC_VECSIZE
176#undef __CLC_GENTYPE
177#undef __CLC_U_GENTYPE
178#undef __CLC_S_GENTYPE
179
180#define __CLC_GENTYPE short8
181#define __CLC_U_GENTYPE ushort8
182#define __CLC_S_GENTYPE short8
183#define __CLC_VECSIZE 8
184#include __CLC_BODY
185#undef __CLC_VECSIZE
186#undef __CLC_GENTYPE
187#undef __CLC_U_GENTYPE
188#undef __CLC_S_GENTYPE
189
190#define __CLC_GENTYPE short16
191#define __CLC_U_GENTYPE ushort16
192#define __CLC_S_GENTYPE short16
193#define __CLC_VECSIZE 16
194#include __CLC_BODY
195#undef __CLC_VECSIZE
196#undef __CLC_GENTYPE
197#undef __CLC_U_GENTYPE
198#undef __CLC_S_GENTYPE
199
200#undef __CLC_SCALAR_GENTYPE
201#define __CLC_SCALAR_GENTYPE ushort
202
203#define __CLC_GENTYPE ushort
204#define __CLC_U_GENTYPE ushort
205#define __CLC_S_GENTYPE short
206#define __CLC_SCALAR 1
207#define __CLC_VECSIZE
208#include __CLC_BODY
209#undef __CLC_VECSIZE
210#undef __CLC_SCALAR
211#undef __CLC_GENTYPE
212#undef __CLC_U_GENTYPE
213#undef __CLC_S_GENTYPE
214
215#define __CLC_GENTYPE ushort2
216#define __CLC_U_GENTYPE ushort2
217#define __CLC_S_GENTYPE short2
218#define __CLC_VECSIZE 2
219#include __CLC_BODY
220#undef __CLC_VECSIZE
221#undef __CLC_GENTYPE
222#undef __CLC_U_GENTYPE
223#undef __CLC_S_GENTYPE
224
225#define __CLC_GENTYPE ushort3
226#define __CLC_U_GENTYPE ushort3
227#define __CLC_S_GENTYPE short3
228#define __CLC_VECSIZE 3
229#include __CLC_BODY
230#undef __CLC_VECSIZE
231#undef __CLC_GENTYPE
232#undef __CLC_U_GENTYPE
233#undef __CLC_S_GENTYPE
234
235#define __CLC_GENTYPE ushort4
236#define __CLC_U_GENTYPE ushort4
237#define __CLC_S_GENTYPE short4
238#define __CLC_VECSIZE 4
239#include __CLC_BODY
240#undef __CLC_VECSIZE
241#undef __CLC_GENTYPE
242#undef __CLC_U_GENTYPE
243#undef __CLC_S_GENTYPE
244
245#define __CLC_GENTYPE ushort8
246#define __CLC_U_GENTYPE ushort8
247#define __CLC_S_GENTYPE short8
248#define __CLC_VECSIZE 8
249#include __CLC_BODY
250#undef __CLC_VECSIZE
251#undef __CLC_GENTYPE
252#undef __CLC_U_GENTYPE
253#undef __CLC_S_GENTYPE
254
255#define __CLC_GENTYPE ushort16
256#define __CLC_U_GENTYPE ushort16
257#define __CLC_S_GENTYPE short16
258#define __CLC_VECSIZE 16
259#include __CLC_BODY
260#undef __CLC_VECSIZE
261#undef __CLC_GENTYPE
262#undef __CLC_U_GENTYPE
263#undef __CLC_S_GENTYPE
264
265#undef __CLC_GENSIZE
266#define __CLC_GENSIZE 32
267#undef __CLC_SCALAR_GENTYPE
268#define __CLC_SCALAR_GENTYPE int
269
270#define __CLC_GENTYPE int
271#define __CLC_U_GENTYPE uint
272#define __CLC_S_GENTYPE int
273#define __CLC_SCALAR 1
274#define __CLC_VECSIZE
275#include __CLC_BODY
276#undef __CLC_VECSIZE
277#undef __CLC_SCALAR
278#undef __CLC_GENTYPE
279#undef __CLC_U_GENTYPE
280#undef __CLC_S_GENTYPE
281
282#define __CLC_GENTYPE int2
283#define __CLC_U_GENTYPE uint2
284#define __CLC_S_GENTYPE int2
285#define __CLC_VECSIZE 2
286#include __CLC_BODY
287#undef __CLC_VECSIZE
288#undef __CLC_GENTYPE
289#undef __CLC_U_GENTYPE
290#undef __CLC_S_GENTYPE
291
292#define __CLC_GENTYPE int3
293#define __CLC_U_GENTYPE uint3
294#define __CLC_S_GENTYPE int3
295#define __CLC_VECSIZE 3
296#include __CLC_BODY
297#undef __CLC_VECSIZE
298#undef __CLC_GENTYPE
299#undef __CLC_U_GENTYPE
300#undef __CLC_S_GENTYPE
301
302#define __CLC_GENTYPE int4
303#define __CLC_U_GENTYPE uint4
304#define __CLC_S_GENTYPE int4
305#define __CLC_VECSIZE 4
306#include __CLC_BODY
307#undef __CLC_VECSIZE
308#undef __CLC_GENTYPE
309#undef __CLC_U_GENTYPE
310#undef __CLC_S_GENTYPE
311
312#define __CLC_GENTYPE int8
313#define __CLC_U_GENTYPE uint8
314#define __CLC_S_GENTYPE int8
315#define __CLC_VECSIZE 8
316#include __CLC_BODY
317#undef __CLC_VECSIZE
318#undef __CLC_GENTYPE
319#undef __CLC_U_GENTYPE
320#undef __CLC_S_GENTYPE
321
322#define __CLC_GENTYPE int16
323#define __CLC_U_GENTYPE uint16
324#define __CLC_S_GENTYPE int16
325#define __CLC_VECSIZE 16
326#include __CLC_BODY
327#undef __CLC_VECSIZE
328#undef __CLC_GENTYPE
329#undef __CLC_U_GENTYPE
330#undef __CLC_S_GENTYPE
331
332#undef __CLC_SCALAR_GENTYPE
333#define __CLC_SCALAR_GENTYPE uint
334
335#define __CLC_GENTYPE uint
336#define __CLC_U_GENTYPE uint
337#define __CLC_S_GENTYPE int
338#define __CLC_SCALAR 1
339#define __CLC_VECSIZE
340#include __CLC_BODY
341#undef __CLC_VECSIZE
342#undef __CLC_SCALAR
343#undef __CLC_GENTYPE
344#undef __CLC_U_GENTYPE
345#undef __CLC_S_GENTYPE
346
347#define __CLC_GENTYPE uint2
348#define __CLC_U_GENTYPE uint2
349#define __CLC_S_GENTYPE int2
350#define __CLC_VECSIZE 2
351#include __CLC_BODY
352#undef __CLC_VECSIZE
353#undef __CLC_GENTYPE
354#undef __CLC_U_GENTYPE
355#undef __CLC_S_GENTYPE
356
357#define __CLC_GENTYPE uint3
358#define __CLC_U_GENTYPE uint3
359#define __CLC_S_GENTYPE int3
360#define __CLC_VECSIZE 3
361#include __CLC_BODY
362#undef __CLC_VECSIZE
363#undef __CLC_GENTYPE
364#undef __CLC_U_GENTYPE
365#undef __CLC_S_GENTYPE
366
367#define __CLC_GENTYPE uint4
368#define __CLC_U_GENTYPE uint4
369#define __CLC_S_GENTYPE int4
370#define __CLC_VECSIZE 4
371#include __CLC_BODY
372#undef __CLC_VECSIZE
373#undef __CLC_GENTYPE
374#undef __CLC_U_GENTYPE
375#undef __CLC_S_GENTYPE
376
377#define __CLC_GENTYPE uint8
378#define __CLC_U_GENTYPE uint8
379#define __CLC_S_GENTYPE int8
380#define __CLC_VECSIZE 8
381#include __CLC_BODY
382#undef __CLC_VECSIZE
383#undef __CLC_GENTYPE
384#undef __CLC_U_GENTYPE
385#undef __CLC_S_GENTYPE
386
387#define __CLC_GENTYPE uint16
388#define __CLC_U_GENTYPE uint16
389#define __CLC_S_GENTYPE int16
390#define __CLC_VECSIZE 16
391#include __CLC_BODY
392#undef __CLC_VECSIZE
393#undef __CLC_GENTYPE
394#undef __CLC_U_GENTYPE
395#undef __CLC_S_GENTYPE
396
397#undef __CLC_GENSIZE
398#define __CLC_GENSIZE 64
399#undef __CLC_SCALAR_GENTYPE
400#define __CLC_SCALAR_GENTYPE long
401
402#define __CLC_GENTYPE long
403#define __CLC_U_GENTYPE ulong
404#define __CLC_S_GENTYPE long
405#define __CLC_SCALAR 1
406#define __CLC_VECSIZE
407#include __CLC_BODY
408#undef __CLC_VECSIZE
409#undef __CLC_SCALAR
410#undef __CLC_GENTYPE
411#undef __CLC_U_GENTYPE
412#undef __CLC_S_GENTYPE
413
414#define __CLC_GENTYPE long2
415#define __CLC_U_GENTYPE ulong2
416#define __CLC_S_GENTYPE long2
417#define __CLC_VECSIZE 2
418#include __CLC_BODY
419#undef __CLC_VECSIZE
420#undef __CLC_GENTYPE
421#undef __CLC_U_GENTYPE
422#undef __CLC_S_GENTYPE
423
424#define __CLC_GENTYPE long3
425#define __CLC_U_GENTYPE ulong3
426#define __CLC_S_GENTYPE long3
427#define __CLC_VECSIZE 3
428#include __CLC_BODY
429#undef __CLC_VECSIZE
430#undef __CLC_GENTYPE
431#undef __CLC_U_GENTYPE
432#undef __CLC_S_GENTYPE
433
434#define __CLC_GENTYPE long4
435#define __CLC_U_GENTYPE ulong4
436#define __CLC_S_GENTYPE long4
437#define __CLC_VECSIZE 4
438#include __CLC_BODY
439#undef __CLC_VECSIZE
440#undef __CLC_GENTYPE
441#undef __CLC_U_GENTYPE
442#undef __CLC_S_GENTYPE
443
444#define __CLC_GENTYPE long8
445#define __CLC_U_GENTYPE ulong8
446#define __CLC_S_GENTYPE long8
447#define __CLC_VECSIZE 8
448#include __CLC_BODY
449#undef __CLC_VECSIZE
450#undef __CLC_GENTYPE
451#undef __CLC_U_GENTYPE
452#undef __CLC_S_GENTYPE
453
454#define __CLC_GENTYPE long16
455#define __CLC_U_GENTYPE ulong16
456#define __CLC_S_GENTYPE long16
457#define __CLC_VECSIZE 16
458#include __CLC_BODY
459#undef __CLC_VECSIZE
460#undef __CLC_GENTYPE
461#undef __CLC_U_GENTYPE
462#undef __CLC_S_GENTYPE
463
464#undef __CLC_SCALAR_GENTYPE
465#define __CLC_SCALAR_GENTYPE ulong
466
467#define __CLC_GENTYPE ulong
468#define __CLC_U_GENTYPE ulong
469#define __CLC_S_GENTYPE long
470#define __CLC_SCALAR 1
471#define __CLC_VECSIZE
472#include __CLC_BODY
473#undef __CLC_VECSIZE
474#undef __CLC_SCALAR
475#undef __CLC_GENTYPE
476#undef __CLC_U_GENTYPE
477#undef __CLC_S_GENTYPE
478
479#define __CLC_GENTYPE ulong2
480#define __CLC_U_GENTYPE ulong2
481#define __CLC_S_GENTYPE long2
482#define __CLC_VECSIZE 2
483#include __CLC_BODY
484#undef __CLC_VECSIZE
485#undef __CLC_GENTYPE
486#undef __CLC_U_GENTYPE
487#undef __CLC_S_GENTYPE
488
489#define __CLC_GENTYPE ulong3
490#define __CLC_U_GENTYPE ulong3
491#define __CLC_S_GENTYPE long3
492#define __CLC_VECSIZE 3
493#include __CLC_BODY
494#undef __CLC_VECSIZE
495#undef __CLC_GENTYPE
496#undef __CLC_U_GENTYPE
497#undef __CLC_S_GENTYPE
498
499#define __CLC_GENTYPE ulong4
500#define __CLC_U_GENTYPE ulong4
501#define __CLC_S_GENTYPE long4
502#define __CLC_VECSIZE 4
503#include __CLC_BODY
504#undef __CLC_VECSIZE
505#undef __CLC_GENTYPE
506#undef __CLC_U_GENTYPE
507#undef __CLC_S_GENTYPE
508
509#define __CLC_GENTYPE ulong8
510#define __CLC_U_GENTYPE ulong8
511#define __CLC_S_GENTYPE long8
512#define __CLC_VECSIZE 8
513#include __CLC_BODY
514#undef __CLC_VECSIZE
515#undef __CLC_GENTYPE
516#undef __CLC_U_GENTYPE
517#undef __CLC_S_GENTYPE
518
519#define __CLC_GENTYPE ulong16
520#define __CLC_U_GENTYPE ulong16
521#define __CLC_S_GENTYPE long16
522#define __CLC_VECSIZE 16
523#include __CLC_BODY
524#undef __CLC_VECSIZE
525#undef __CLC_GENTYPE
526#undef __CLC_U_GENTYPE
527#undef __CLC_S_GENTYPE
528
529#undef __CLC_GENSIZE
530#undef __CLC_SCALAR_GENTYPE
531#undef __CLC_BODY
532