1//===--- opencl-c.h - OpenCL C language builtin function header -----------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef _OPENCL_H_
11#define _OPENCL_H_
12
13#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14#ifndef cl_khr_depth_images
15#define cl_khr_depth_images
16#endif //cl_khr_depth_images
17#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
18
19#define __ovld __attribute__((overloadable))
20
21// Optimizations
22#define __purefn __attribute__((pure))
23#define __cnfn __attribute__((const))
24
25// built-in scalar data types:
26
27/**
28 * An unsigned 8-bit integer.
29 */
30typedef unsigned char uchar;
31
32/**
33 * An unsigned 16-bit integer.
34 */
35typedef unsigned short ushort;
36
37/**
38 * An unsigned 32-bit integer.
39 */
40typedef unsigned int uint;
41
42/**
43 * An unsigned 64-bit integer.
44 */
45typedef unsigned long ulong;
46
47/**
48 * The unsigned integer type of the result of the sizeof operator. This
49 * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS
50 * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if
51 * CL_DEVICE_ADDRESS_BITS is 64-bits.
52 */
53typedef __SIZE_TYPE__ size_t;
54
55/**
56 * A signed integer type that is the result of subtracting two pointers.
57 * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS
58 * defined in table 4.3 is 32-bits and is a 64-bit signed integer if
59 * CL_DEVICE_ADDRESS_BITS is 64-bits.
60 */
61typedef __PTRDIFF_TYPE__ ptrdiff_t;
62
63/**
64* A signed integer type with the property that any valid pointer to
65* void can be converted to this type, then converted back to pointer
66* to void, and the result will compare equal to the original pointer.
67*/
68typedef __INTPTR_TYPE__ intptr_t;
69
70/**
71* An unsigned integer type with the property that any valid pointer to
72* void can be converted to this type, then converted back to pointer
73* to void, and the result will compare equal to the original pointer.
74*/
75typedef __UINTPTR_TYPE__ uintptr_t;
76
77// built-in vector data types:
78typedef char char2 __attribute__((ext_vector_type(2)));
79typedef char char3 __attribute__((ext_vector_type(3)));
80typedef char char4 __attribute__((ext_vector_type(4)));
81typedef char char8 __attribute__((ext_vector_type(8)));
82typedef char char16 __attribute__((ext_vector_type(16)));
83typedef uchar uchar2 __attribute__((ext_vector_type(2)));
84typedef uchar uchar3 __attribute__((ext_vector_type(3)));
85typedef uchar uchar4 __attribute__((ext_vector_type(4)));
86typedef uchar uchar8 __attribute__((ext_vector_type(8)));
87typedef uchar uchar16 __attribute__((ext_vector_type(16)));
88typedef short short2 __attribute__((ext_vector_type(2)));
89typedef short short3 __attribute__((ext_vector_type(3)));
90typedef short short4 __attribute__((ext_vector_type(4)));
91typedef short short8 __attribute__((ext_vector_type(8)));
92typedef short short16 __attribute__((ext_vector_type(16)));
93typedef ushort ushort2 __attribute__((ext_vector_type(2)));
94typedef ushort ushort3 __attribute__((ext_vector_type(3)));
95typedef ushort ushort4 __attribute__((ext_vector_type(4)));
96typedef ushort ushort8 __attribute__((ext_vector_type(8)));
97typedef ushort ushort16 __attribute__((ext_vector_type(16)));
98typedef int int2 __attribute__((ext_vector_type(2)));
99typedef int int3 __attribute__((ext_vector_type(3)));
100typedef int int4 __attribute__((ext_vector_type(4)));
101typedef int int8 __attribute__((ext_vector_type(8)));
102typedef int int16 __attribute__((ext_vector_type(16)));
103typedef uint uint2 __attribute__((ext_vector_type(2)));
104typedef uint uint3 __attribute__((ext_vector_type(3)));
105typedef uint uint4 __attribute__((ext_vector_type(4)));
106typedef uint uint8 __attribute__((ext_vector_type(8)));
107typedef uint uint16 __attribute__((ext_vector_type(16)));
108typedef long long2 __attribute__((ext_vector_type(2)));
109typedef long long3 __attribute__((ext_vector_type(3)));
110typedef long long4 __attribute__((ext_vector_type(4)));
111typedef long long8 __attribute__((ext_vector_type(8)));
112typedef long long16 __attribute__((ext_vector_type(16)));
113typedef ulong ulong2 __attribute__((ext_vector_type(2)));
114typedef ulong ulong3 __attribute__((ext_vector_type(3)));
115typedef ulong ulong4 __attribute__((ext_vector_type(4)));
116typedef ulong ulong8 __attribute__((ext_vector_type(8)));
117typedef ulong ulong16 __attribute__((ext_vector_type(16)));
118typedef float float2 __attribute__((ext_vector_type(2)));
119typedef float float3 __attribute__((ext_vector_type(3)));
120typedef float float4 __attribute__((ext_vector_type(4)));
121typedef float float8 __attribute__((ext_vector_type(8)));
122typedef float float16 __attribute__((ext_vector_type(16)));
123#ifdef cl_khr_fp16
124#pragma OPENCL EXTENSION cl_khr_fp16 : enable
125typedef half half2 __attribute__((ext_vector_type(2)));
126typedef half half3 __attribute__((ext_vector_type(3)));
127typedef half half4 __attribute__((ext_vector_type(4)));
128typedef half half8 __attribute__((ext_vector_type(8)));
129typedef half half16 __attribute__((ext_vector_type(16)));
130#endif
131#ifdef cl_khr_fp64
132#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
133#pragma OPENCL EXTENSION cl_khr_fp64 : enable
134#endif
135typedef double double2 __attribute__((ext_vector_type(2)));
136typedef double double3 __attribute__((ext_vector_type(3)));
137typedef double double4 __attribute__((ext_vector_type(4)));
138typedef double double8 __attribute__((ext_vector_type(8)));
139typedef double double16 __attribute__((ext_vector_type(16)));
140#endif
141
142#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
143#define NULL ((void*)0)
144#endif
145
146/**
147 * Value of maximum non-infinite single-precision floating-point
148 * number.
149 */
150#define MAXFLOAT 0x1.fffffep127f
151
152/**
153 * A positive float constant expression. HUGE_VALF evaluates
154 * to +infinity. Used as an error value returned by the built-in
155 * math functions.
156 */
157#define HUGE_VALF (__builtin_huge_valf())
158
159/**
160 * A positive double constant expression. HUGE_VAL evaluates
161 * to +infinity. Used as an error value returned by the built-in
162 * math functions.
163 */
164#define HUGE_VAL (__builtin_huge_val())
165
166/**
167 * A constant expression of type float representing positive or
168 * unsigned infinity.
169 */
170#define INFINITY (__builtin_inff())
171
172/**
173 * A constant expression of type float representing a quiet NaN.
174 */
175#define NAN as_float(INT_MAX)
176
177#define FP_ILOGB0    INT_MIN
178#define FP_ILOGBNAN    INT_MAX
179
180#define FLT_DIG 6
181#define FLT_MANT_DIG 24
182#define FLT_MAX_10_EXP +38
183#define FLT_MAX_EXP +128
184#define FLT_MIN_10_EXP -37
185#define FLT_MIN_EXP -125
186#define FLT_RADIX 2
187#define FLT_MAX 0x1.fffffep127f
188#define FLT_MIN 0x1.0p-126f
189#define FLT_EPSILON 0x1.0p-23f
190
191#define M_E_F         2.71828182845904523536028747135266250f
192#define M_LOG2E_F     1.44269504088896340735992468100189214f
193#define M_LOG10E_F    0.434294481903251827651128918916605082f
194#define M_LN2_F       0.693147180559945309417232121458176568f
195#define M_LN10_F      2.30258509299404568401799145468436421f
196#define M_PI_F        3.14159265358979323846264338327950288f
197#define M_PI_2_F      1.57079632679489661923132169163975144f
198#define M_PI_4_F      0.785398163397448309615660845819875721f
199#define M_1_PI_F      0.318309886183790671537767526745028724f
200#define M_2_PI_F      0.636619772367581343075535053490057448f
201#define M_2_SQRTPI_F  1.12837916709551257389615890312154517f
202#define M_SQRT2_F     1.41421356237309504880168872420969808f
203#define M_SQRT1_2_F   0.707106781186547524400844362104849039f
204
205#define DBL_DIG 15
206#define DBL_MANT_DIG 53
207#define DBL_MAX_10_EXP +308
208#define DBL_MAX_EXP +1024
209#define DBL_MIN_10_EXP -307
210#define DBL_MIN_EXP -1021
211#define DBL_RADIX 2
212#define DBL_MAX 0x1.fffffffffffffp1023
213#define DBL_MIN 0x1.0p-1022
214#define DBL_EPSILON 0x1.0p-52
215
216#define M_E           0x1.5bf0a8b145769p+1
217#define M_LOG2E       0x1.71547652b82fep+0
218#define M_LOG10E      0x1.bcb7b1526e50ep-2
219#define M_LN2         0x1.62e42fefa39efp-1
220#define M_LN10        0x1.26bb1bbb55516p+1
221#define M_PI          0x1.921fb54442d18p+1
222#define M_PI_2        0x1.921fb54442d18p+0
223#define M_PI_4        0x1.921fb54442d18p-1
224#define M_1_PI        0x1.45f306dc9c883p-2
225#define M_2_PI        0x1.45f306dc9c883p-1
226#define M_2_SQRTPI    0x1.20dd750429b6dp+0
227#define M_SQRT2       0x1.6a09e667f3bcdp+0
228#define M_SQRT1_2     0x1.6a09e667f3bcdp-1
229
230#ifdef cl_khr_fp16
231
232#define HALF_DIG 3
233#define HALF_MANT_DIG 11
234#define HALF_MAX_10_EXP +4
235#define HALF_MAX_EXP +16
236#define HALF_MIN_10_EXP -4
237#define HALF_MIN_EXP -13
238#define HALF_RADIX 2
239#define HALF_MAX ((0x1.ffcp15h))
240#define HALF_MIN ((0x1.0p-14h))
241#define HALF_EPSILON ((0x1.0p-10h))
242
243#define M_E_H         2.71828182845904523536028747135266250h
244#define M_LOG2E_H     1.44269504088896340735992468100189214h
245#define M_LOG10E_H    0.434294481903251827651128918916605082h
246#define M_LN2_H       0.693147180559945309417232121458176568h
247#define M_LN10_H      2.30258509299404568401799145468436421h
248#define M_PI_H        3.14159265358979323846264338327950288h
249#define M_PI_2_H      1.57079632679489661923132169163975144h
250#define M_PI_4_H      0.785398163397448309615660845819875721h
251#define M_1_PI_H      0.318309886183790671537767526745028724h
252#define M_2_PI_H      0.636619772367581343075535053490057448h
253#define M_2_SQRTPI_H  1.12837916709551257389615890312154517h
254#define M_SQRT2_H     1.41421356237309504880168872420969808h
255#define M_SQRT1_2_H   0.707106781186547524400844362104849039h
256
257#endif //cl_khr_fp16
258
259#define CHAR_BIT    8
260#define SCHAR_MAX  127
261#define SCHAR_MIN  (-128)
262#define UCHAR_MAX  255
263#define CHAR_MAX  SCHAR_MAX
264#define CHAR_MIN  SCHAR_MIN
265#define USHRT_MAX  65535
266#define SHRT_MAX  32767
267#define SHRT_MIN  (-32768)
268#define UINT_MAX  0xffffffff
269#define INT_MAX    2147483647
270#define INT_MIN    (-2147483647-1)
271#define ULONG_MAX  0xffffffffffffffffUL
272#define LONG_MAX  0x7fffffffffffffffL
273#define LONG_MIN  (-0x7fffffffffffffffL-1)
274
275// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
276
277char __ovld __cnfn convert_char_rte(char);
278char __ovld __cnfn convert_char_sat_rte(char);
279char __ovld __cnfn convert_char_rtz(char);
280char __ovld __cnfn convert_char_sat_rtz(char);
281char __ovld __cnfn convert_char_rtp(char);
282char __ovld __cnfn convert_char_sat_rtp(char);
283char __ovld __cnfn convert_char_rtn(char);
284char __ovld __cnfn convert_char_sat_rtn(char);
285char __ovld __cnfn convert_char(char);
286char __ovld __cnfn convert_char_sat(char);
287char __ovld __cnfn convert_char_rte(uchar);
288char __ovld __cnfn convert_char_sat_rte(uchar);
289char __ovld __cnfn convert_char_rtz(uchar);
290char __ovld __cnfn convert_char_sat_rtz(uchar);
291char __ovld __cnfn convert_char_rtp(uchar);
292char __ovld __cnfn convert_char_sat_rtp(uchar);
293char __ovld __cnfn convert_char_rtn(uchar);
294char __ovld __cnfn convert_char_sat_rtn(uchar);
295char __ovld __cnfn convert_char(uchar);
296char __ovld __cnfn convert_char_sat(uchar);
297char __ovld __cnfn convert_char_rte(short);
298char __ovld __cnfn convert_char_sat_rte(short);
299char __ovld __cnfn convert_char_rtz(short);
300char __ovld __cnfn convert_char_sat_rtz(short);
301char __ovld __cnfn convert_char_rtp(short);
302char __ovld __cnfn convert_char_sat_rtp(short);
303char __ovld __cnfn convert_char_rtn(short);
304char __ovld __cnfn convert_char_sat_rtn(short);
305char __ovld __cnfn convert_char(short);
306char __ovld __cnfn convert_char_sat(short);
307char __ovld __cnfn convert_char_rte(ushort);
308char __ovld __cnfn convert_char_sat_rte(ushort);
309char __ovld __cnfn convert_char_rtz(ushort);
310char __ovld __cnfn convert_char_sat_rtz(ushort);
311char __ovld __cnfn convert_char_rtp(ushort);
312char __ovld __cnfn convert_char_sat_rtp(ushort);
313char __ovld __cnfn convert_char_rtn(ushort);
314char __ovld __cnfn convert_char_sat_rtn(ushort);
315char __ovld __cnfn convert_char(ushort);
316char __ovld __cnfn convert_char_sat(ushort);
317char __ovld __cnfn convert_char_rte(int);
318char __ovld __cnfn convert_char_sat_rte(int);
319char __ovld __cnfn convert_char_rtz(int);
320char __ovld __cnfn convert_char_sat_rtz(int);
321char __ovld __cnfn convert_char_rtp(int);
322char __ovld __cnfn convert_char_sat_rtp(int);
323char __ovld __cnfn convert_char_rtn(int);
324char __ovld __cnfn convert_char_sat_rtn(int);
325char __ovld __cnfn convert_char(int);
326char __ovld __cnfn convert_char_sat(int);
327char __ovld __cnfn convert_char_rte(uint);
328char __ovld __cnfn convert_char_sat_rte(uint);
329char __ovld __cnfn convert_char_rtz(uint);
330char __ovld __cnfn convert_char_sat_rtz(uint);
331char __ovld __cnfn convert_char_rtp(uint);
332char __ovld __cnfn convert_char_sat_rtp(uint);
333char __ovld __cnfn convert_char_rtn(uint);
334char __ovld __cnfn convert_char_sat_rtn(uint);
335char __ovld __cnfn convert_char(uint);
336char __ovld __cnfn convert_char_sat(uint);
337char __ovld __cnfn convert_char_rte(long);
338char __ovld __cnfn convert_char_sat_rte(long);
339char __ovld __cnfn convert_char_rtz(long);
340char __ovld __cnfn convert_char_sat_rtz(long);
341char __ovld __cnfn convert_char_rtp(long);
342char __ovld __cnfn convert_char_sat_rtp(long);
343char __ovld __cnfn convert_char_rtn(long);
344char __ovld __cnfn convert_char_sat_rtn(long);
345char __ovld __cnfn convert_char(long);
346char __ovld __cnfn convert_char_sat(long);
347char __ovld __cnfn convert_char_rte(ulong);
348char __ovld __cnfn convert_char_sat_rte(ulong);
349char __ovld __cnfn convert_char_rtz(ulong);
350char __ovld __cnfn convert_char_sat_rtz(ulong);
351char __ovld __cnfn convert_char_rtp(ulong);
352char __ovld __cnfn convert_char_sat_rtp(ulong);
353char __ovld __cnfn convert_char_rtn(ulong);
354char __ovld __cnfn convert_char_sat_rtn(ulong);
355char __ovld __cnfn convert_char(ulong);
356char __ovld __cnfn convert_char_sat(ulong);
357char __ovld __cnfn convert_char_rte(float);
358char __ovld __cnfn convert_char_sat_rte(float);
359char __ovld __cnfn convert_char_rtz(float);
360char __ovld __cnfn convert_char_sat_rtz(float);
361char __ovld __cnfn convert_char_rtp(float);
362char __ovld __cnfn convert_char_sat_rtp(float);
363char __ovld __cnfn convert_char_rtn(float);
364char __ovld __cnfn convert_char_sat_rtn(float);
365char __ovld __cnfn convert_char(float);
366char __ovld __cnfn convert_char_sat(float);
367uchar __ovld __cnfn convert_uchar_rte(char);
368uchar __ovld __cnfn convert_uchar_sat_rte(char);
369uchar __ovld __cnfn convert_uchar_rtz(char);
370uchar __ovld __cnfn convert_uchar_sat_rtz(char);
371uchar __ovld __cnfn convert_uchar_rtp(char);
372uchar __ovld __cnfn convert_uchar_sat_rtp(char);
373uchar __ovld __cnfn convert_uchar_rtn(char);
374uchar __ovld __cnfn convert_uchar_sat_rtn(char);
375uchar __ovld __cnfn convert_uchar(char);
376uchar __ovld __cnfn convert_uchar_sat(char);
377uchar __ovld __cnfn convert_uchar_rte(uchar);
378uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
379uchar __ovld __cnfn convert_uchar_rtz(uchar);
380uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
381uchar __ovld __cnfn convert_uchar_rtp(uchar);
382uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
383uchar __ovld __cnfn convert_uchar_rtn(uchar);
384uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
385uchar __ovld __cnfn convert_uchar(uchar);
386uchar __ovld __cnfn convert_uchar_sat(uchar);
387uchar __ovld __cnfn convert_uchar_rte(short);
388uchar __ovld __cnfn convert_uchar_sat_rte(short);
389uchar __ovld __cnfn convert_uchar_rtz(short);
390uchar __ovld __cnfn convert_uchar_sat_rtz(short);
391uchar __ovld __cnfn convert_uchar_rtp(short);
392uchar __ovld __cnfn convert_uchar_sat_rtp(short);
393uchar __ovld __cnfn convert_uchar_rtn(short);
394uchar __ovld __cnfn convert_uchar_sat_rtn(short);
395uchar __ovld __cnfn convert_uchar(short);
396uchar __ovld __cnfn convert_uchar_sat(short);
397uchar __ovld __cnfn convert_uchar_rte(ushort);
398uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
399uchar __ovld __cnfn convert_uchar_rtz(ushort);
400uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
401uchar __ovld __cnfn convert_uchar_rtp(ushort);
402uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
403uchar __ovld __cnfn convert_uchar_rtn(ushort);
404uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
405uchar __ovld __cnfn convert_uchar(ushort);
406uchar __ovld __cnfn convert_uchar_sat(ushort);
407uchar __ovld __cnfn convert_uchar_rte(int);
408uchar __ovld __cnfn convert_uchar_sat_rte(int);
409uchar __ovld __cnfn convert_uchar_rtz(int);
410uchar __ovld __cnfn convert_uchar_sat_rtz(int);
411uchar __ovld __cnfn convert_uchar_rtp(int);
412uchar __ovld __cnfn convert_uchar_sat_rtp(int);
413uchar __ovld __cnfn convert_uchar_rtn(int);
414uchar __ovld __cnfn convert_uchar_sat_rtn(int);
415uchar __ovld __cnfn convert_uchar(int);
416uchar __ovld __cnfn convert_uchar_sat(int);
417uchar __ovld __cnfn convert_uchar_rte(uint);
418uchar __ovld __cnfn convert_uchar_sat_rte(uint);
419uchar __ovld __cnfn convert_uchar_rtz(uint);
420uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
421uchar __ovld __cnfn convert_uchar_rtp(uint);
422uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
423uchar __ovld __cnfn convert_uchar_rtn(uint);
424uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
425uchar __ovld __cnfn convert_uchar(uint);
426uchar __ovld __cnfn convert_uchar_sat(uint);
427uchar __ovld __cnfn convert_uchar_rte(long);
428uchar __ovld __cnfn convert_uchar_sat_rte(long);
429uchar __ovld __cnfn convert_uchar_rtz(long);
430uchar __ovld __cnfn convert_uchar_sat_rtz(long);
431uchar __ovld __cnfn convert_uchar_rtp(long);
432uchar __ovld __cnfn convert_uchar_sat_rtp(long);
433uchar __ovld __cnfn convert_uchar_rtn(long);
434uchar __ovld __cnfn convert_uchar_sat_rtn(long);
435uchar __ovld __cnfn convert_uchar(long);
436uchar __ovld __cnfn convert_uchar_sat(long);
437uchar __ovld __cnfn convert_uchar_rte(ulong);
438uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
439uchar __ovld __cnfn convert_uchar_rtz(ulong);
440uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
441uchar __ovld __cnfn convert_uchar_rtp(ulong);
442uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
443uchar __ovld __cnfn convert_uchar_rtn(ulong);
444uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
445uchar __ovld __cnfn convert_uchar(ulong);
446uchar __ovld __cnfn convert_uchar_sat(ulong);
447uchar __ovld __cnfn convert_uchar_rte(float);
448uchar __ovld __cnfn convert_uchar_sat_rte(float);
449uchar __ovld __cnfn convert_uchar_rtz(float);
450uchar __ovld __cnfn convert_uchar_sat_rtz(float);
451uchar __ovld __cnfn convert_uchar_rtp(float);
452uchar __ovld __cnfn convert_uchar_sat_rtp(float);
453uchar __ovld __cnfn convert_uchar_rtn(float);
454uchar __ovld __cnfn convert_uchar_sat_rtn(float);
455uchar __ovld __cnfn convert_uchar(float);
456uchar __ovld __cnfn convert_uchar_sat(float);
457
458short __ovld __cnfn convert_short_rte(char);
459short __ovld __cnfn convert_short_sat_rte(char);
460short __ovld __cnfn convert_short_rtz(char);
461short __ovld __cnfn convert_short_sat_rtz(char);
462short __ovld __cnfn convert_short_rtp(char);
463short __ovld __cnfn convert_short_sat_rtp(char);
464short __ovld __cnfn convert_short_rtn(char);
465short __ovld __cnfn convert_short_sat_rtn(char);
466short __ovld __cnfn convert_short(char);
467short __ovld __cnfn convert_short_sat(char);
468short __ovld __cnfn convert_short_rte(uchar);
469short __ovld __cnfn convert_short_sat_rte(uchar);
470short __ovld __cnfn convert_short_rtz(uchar);
471short __ovld __cnfn convert_short_sat_rtz(uchar);
472short __ovld __cnfn convert_short_rtp(uchar);
473short __ovld __cnfn convert_short_sat_rtp(uchar);
474short __ovld __cnfn convert_short_rtn(uchar);
475short __ovld __cnfn convert_short_sat_rtn(uchar);
476short __ovld __cnfn convert_short(uchar);
477short __ovld __cnfn convert_short_sat(uchar);
478short __ovld __cnfn convert_short_rte(short);
479short __ovld __cnfn convert_short_sat_rte(short);
480short __ovld __cnfn convert_short_rtz(short);
481short __ovld __cnfn convert_short_sat_rtz(short);
482short __ovld __cnfn convert_short_rtp(short);
483short __ovld __cnfn convert_short_sat_rtp(short);
484short __ovld __cnfn convert_short_rtn(short);
485short __ovld __cnfn convert_short_sat_rtn(short);
486short __ovld __cnfn convert_short(short);
487short __ovld __cnfn convert_short_sat(short);
488short __ovld __cnfn convert_short_rte(ushort);
489short __ovld __cnfn convert_short_sat_rte(ushort);
490short __ovld __cnfn convert_short_rtz(ushort);
491short __ovld __cnfn convert_short_sat_rtz(ushort);
492short __ovld __cnfn convert_short_rtp(ushort);
493short __ovld __cnfn convert_short_sat_rtp(ushort);
494short __ovld __cnfn convert_short_rtn(ushort);
495short __ovld __cnfn convert_short_sat_rtn(ushort);
496short __ovld __cnfn convert_short(ushort);
497short __ovld __cnfn convert_short_sat(ushort);
498short __ovld __cnfn convert_short_rte(int);
499short __ovld __cnfn convert_short_sat_rte(int);
500short __ovld __cnfn convert_short_rtz(int);
501short __ovld __cnfn convert_short_sat_rtz(int);
502short __ovld __cnfn convert_short_rtp(int);
503short __ovld __cnfn convert_short_sat_rtp(int);
504short __ovld __cnfn convert_short_rtn(int);
505short __ovld __cnfn convert_short_sat_rtn(int);
506short __ovld __cnfn convert_short(int);
507short __ovld __cnfn convert_short_sat(int);
508short __ovld __cnfn convert_short_rte(uint);
509short __ovld __cnfn convert_short_sat_rte(uint);
510short __ovld __cnfn convert_short_rtz(uint);
511short __ovld __cnfn convert_short_sat_rtz(uint);
512short __ovld __cnfn convert_short_rtp(uint);
513short __ovld __cnfn convert_short_sat_rtp(uint);
514short __ovld __cnfn convert_short_rtn(uint);
515short __ovld __cnfn convert_short_sat_rtn(uint);
516short __ovld __cnfn convert_short(uint);
517short __ovld __cnfn convert_short_sat(uint);
518short __ovld __cnfn convert_short_rte(long);
519short __ovld __cnfn convert_short_sat_rte(long);
520short __ovld __cnfn convert_short_rtz(long);
521short __ovld __cnfn convert_short_sat_rtz(long);
522short __ovld __cnfn convert_short_rtp(long);
523short __ovld __cnfn convert_short_sat_rtp(long);
524short __ovld __cnfn convert_short_rtn(long);
525short __ovld __cnfn convert_short_sat_rtn(long);
526short __ovld __cnfn convert_short(long);
527short __ovld __cnfn convert_short_sat(long);
528short __ovld __cnfn convert_short_rte(ulong);
529short __ovld __cnfn convert_short_sat_rte(ulong);
530short __ovld __cnfn convert_short_rtz(ulong);
531short __ovld __cnfn convert_short_sat_rtz(ulong);
532short __ovld __cnfn convert_short_rtp(ulong);
533short __ovld __cnfn convert_short_sat_rtp(ulong);
534short __ovld __cnfn convert_short_rtn(ulong);
535short __ovld __cnfn convert_short_sat_rtn(ulong);
536short __ovld __cnfn convert_short(ulong);
537short __ovld __cnfn convert_short_sat(ulong);
538short __ovld __cnfn convert_short_rte(float);
539short __ovld __cnfn convert_short_sat_rte(float);
540short __ovld __cnfn convert_short_rtz(float);
541short __ovld __cnfn convert_short_sat_rtz(float);
542short __ovld __cnfn convert_short_rtp(float);
543short __ovld __cnfn convert_short_sat_rtp(float);
544short __ovld __cnfn convert_short_rtn(float);
545short __ovld __cnfn convert_short_sat_rtn(float);
546short __ovld __cnfn convert_short(float);
547short __ovld __cnfn convert_short_sat(float);
548ushort __ovld __cnfn convert_ushort_rte(char);
549ushort __ovld __cnfn convert_ushort_sat_rte(char);
550ushort __ovld __cnfn convert_ushort_rtz(char);
551ushort __ovld __cnfn convert_ushort_sat_rtz(char);
552ushort __ovld __cnfn convert_ushort_rtp(char);
553ushort __ovld __cnfn convert_ushort_sat_rtp(char);
554ushort __ovld __cnfn convert_ushort_rtn(char);
555ushort __ovld __cnfn convert_ushort_sat_rtn(char);
556ushort __ovld __cnfn convert_ushort(char);
557ushort __ovld __cnfn convert_ushort_sat(char);
558ushort __ovld __cnfn convert_ushort_rte(uchar);
559ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
560ushort __ovld __cnfn convert_ushort_rtz(uchar);
561ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
562ushort __ovld __cnfn convert_ushort_rtp(uchar);
563ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
564ushort __ovld __cnfn convert_ushort_rtn(uchar);
565ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
566ushort __ovld __cnfn convert_ushort(uchar);
567ushort __ovld __cnfn convert_ushort_sat(uchar);
568ushort __ovld __cnfn convert_ushort_rte(short);
569ushort __ovld __cnfn convert_ushort_sat_rte(short);
570ushort __ovld __cnfn convert_ushort_rtz(short);
571ushort __ovld __cnfn convert_ushort_sat_rtz(short);
572ushort __ovld __cnfn convert_ushort_rtp(short);
573ushort __ovld __cnfn convert_ushort_sat_rtp(short);
574ushort __ovld __cnfn convert_ushort_rtn(short);
575ushort __ovld __cnfn convert_ushort_sat_rtn(short);
576ushort __ovld __cnfn convert_ushort(short);
577ushort __ovld __cnfn convert_ushort_sat(short);
578ushort __ovld __cnfn convert_ushort_rte(ushort);
579ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
580ushort __ovld __cnfn convert_ushort_rtz(ushort);
581ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
582ushort __ovld __cnfn convert_ushort_rtp(ushort);
583ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
584ushort __ovld __cnfn convert_ushort_rtn(ushort);
585ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
586ushort __ovld __cnfn convert_ushort(ushort);
587ushort __ovld __cnfn convert_ushort_sat(ushort);
588ushort __ovld __cnfn convert_ushort_rte(int);
589ushort __ovld __cnfn convert_ushort_sat_rte(int);
590ushort __ovld __cnfn convert_ushort_rtz(int);
591ushort __ovld __cnfn convert_ushort_sat_rtz(int);
592ushort __ovld __cnfn convert_ushort_rtp(int);
593ushort __ovld __cnfn convert_ushort_sat_rtp(int);
594ushort __ovld __cnfn convert_ushort_rtn(int);
595ushort __ovld __cnfn convert_ushort_sat_rtn(int);
596ushort __ovld __cnfn convert_ushort(int);
597ushort __ovld __cnfn convert_ushort_sat(int);
598ushort __ovld __cnfn convert_ushort_rte(uint);
599ushort __ovld __cnfn convert_ushort_sat_rte(uint);
600ushort __ovld __cnfn convert_ushort_rtz(uint);
601ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
602ushort __ovld __cnfn convert_ushort_rtp(uint);
603ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
604ushort __ovld __cnfn convert_ushort_rtn(uint);
605ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
606ushort __ovld __cnfn convert_ushort(uint);
607ushort __ovld __cnfn convert_ushort_sat(uint);
608ushort __ovld __cnfn convert_ushort_rte(long);
609ushort __ovld __cnfn convert_ushort_sat_rte(long);
610ushort __ovld __cnfn convert_ushort_rtz(long);
611ushort __ovld __cnfn convert_ushort_sat_rtz(long);
612ushort __ovld __cnfn convert_ushort_rtp(long);
613ushort __ovld __cnfn convert_ushort_sat_rtp(long);
614ushort __ovld __cnfn convert_ushort_rtn(long);
615ushort __ovld __cnfn convert_ushort_sat_rtn(long);
616ushort __ovld __cnfn convert_ushort(long);
617ushort __ovld __cnfn convert_ushort_sat(long);
618ushort __ovld __cnfn convert_ushort_rte(ulong);
619ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
620ushort __ovld __cnfn convert_ushort_rtz(ulong);
621ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
622ushort __ovld __cnfn convert_ushort_rtp(ulong);
623ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
624ushort __ovld __cnfn convert_ushort_rtn(ulong);
625ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
626ushort __ovld __cnfn convert_ushort(ulong);
627ushort __ovld __cnfn convert_ushort_sat(ulong);
628ushort __ovld __cnfn convert_ushort_rte(float);
629ushort __ovld __cnfn convert_ushort_sat_rte(float);
630ushort __ovld __cnfn convert_ushort_rtz(float);
631ushort __ovld __cnfn convert_ushort_sat_rtz(float);
632ushort __ovld __cnfn convert_ushort_rtp(float);
633ushort __ovld __cnfn convert_ushort_sat_rtp(float);
634ushort __ovld __cnfn convert_ushort_rtn(float);
635ushort __ovld __cnfn convert_ushort_sat_rtn(float);
636ushort __ovld __cnfn convert_ushort(float);
637ushort __ovld __cnfn convert_ushort_sat(float);
638int __ovld __cnfn convert_int_rte(char);
639int __ovld __cnfn convert_int_sat_rte(char);
640int __ovld __cnfn convert_int_rtz(char);
641int __ovld __cnfn convert_int_sat_rtz(char);
642int __ovld __cnfn convert_int_rtp(char);
643int __ovld __cnfn convert_int_sat_rtp(char);
644int __ovld __cnfn convert_int_rtn(char);
645int __ovld __cnfn convert_int_sat_rtn(char);
646int __ovld __cnfn convert_int(char);
647int __ovld __cnfn convert_int_sat(char);
648int __ovld __cnfn convert_int_rte(uchar);
649int __ovld __cnfn convert_int_sat_rte(uchar);
650int __ovld __cnfn convert_int_rtz(uchar);
651int __ovld __cnfn convert_int_sat_rtz(uchar);
652int __ovld __cnfn convert_int_rtp(uchar);
653int __ovld __cnfn convert_int_sat_rtp(uchar);
654int __ovld __cnfn convert_int_rtn(uchar);
655int __ovld __cnfn convert_int_sat_rtn(uchar);
656int __ovld __cnfn convert_int(uchar);
657int __ovld __cnfn convert_int_sat(uchar);
658int __ovld __cnfn convert_int_rte(short);
659int __ovld __cnfn convert_int_sat_rte(short);
660int __ovld __cnfn convert_int_rtz(short);
661int __ovld __cnfn convert_int_sat_rtz(short);
662int __ovld __cnfn convert_int_rtp(short);
663int __ovld __cnfn convert_int_sat_rtp(short);
664int __ovld __cnfn convert_int_rtn(short);
665int __ovld __cnfn convert_int_sat_rtn(short);
666int __ovld __cnfn convert_int(short);
667int __ovld __cnfn convert_int_sat(short);
668int __ovld __cnfn convert_int_rte(ushort);
669int __ovld __cnfn convert_int_sat_rte(ushort);
670int __ovld __cnfn convert_int_rtz(ushort);
671int __ovld __cnfn convert_int_sat_rtz(ushort);
672int __ovld __cnfn convert_int_rtp(ushort);
673int __ovld __cnfn convert_int_sat_rtp(ushort);
674int __ovld __cnfn convert_int_rtn(ushort);
675int __ovld __cnfn convert_int_sat_rtn(ushort);
676int __ovld __cnfn convert_int(ushort);
677int __ovld __cnfn convert_int_sat(ushort);
678int __ovld __cnfn convert_int_rte(int);
679int __ovld __cnfn convert_int_sat_rte(int);
680int __ovld __cnfn convert_int_rtz(int);
681int __ovld __cnfn convert_int_sat_rtz(int);
682int __ovld __cnfn convert_int_rtp(int);
683int __ovld __cnfn convert_int_sat_rtp(int);
684int __ovld __cnfn convert_int_rtn(int);
685int __ovld __cnfn convert_int_sat_rtn(int);
686int __ovld __cnfn convert_int(int);
687int __ovld __cnfn convert_int_sat(int);
688int __ovld __cnfn convert_int_rte(uint);
689int __ovld __cnfn convert_int_sat_rte(uint);
690int __ovld __cnfn convert_int_rtz(uint);
691int __ovld __cnfn convert_int_sat_rtz(uint);
692int __ovld __cnfn convert_int_rtp(uint);
693int __ovld __cnfn convert_int_sat_rtp(uint);
694int __ovld __cnfn convert_int_rtn(uint);
695int __ovld __cnfn convert_int_sat_rtn(uint);
696int __ovld __cnfn convert_int(uint);
697int __ovld __cnfn convert_int_sat(uint);
698int __ovld __cnfn convert_int_rte(long);
699int __ovld __cnfn convert_int_sat_rte(long);
700int __ovld __cnfn convert_int_rtz(long);
701int __ovld __cnfn convert_int_sat_rtz(long);
702int __ovld __cnfn convert_int_rtp(long);
703int __ovld __cnfn convert_int_sat_rtp(long);
704int __ovld __cnfn convert_int_rtn(long);
705int __ovld __cnfn convert_int_sat_rtn(long);
706int __ovld __cnfn convert_int(long);
707int __ovld __cnfn convert_int_sat(long);
708int __ovld __cnfn convert_int_rte(ulong);
709int __ovld __cnfn convert_int_sat_rte(ulong);
710int __ovld __cnfn convert_int_rtz(ulong);
711int __ovld __cnfn convert_int_sat_rtz(ulong);
712int __ovld __cnfn convert_int_rtp(ulong);
713int __ovld __cnfn convert_int_sat_rtp(ulong);
714int __ovld __cnfn convert_int_rtn(ulong);
715int __ovld __cnfn convert_int_sat_rtn(ulong);
716int __ovld __cnfn convert_int(ulong);
717int __ovld __cnfn convert_int_sat(ulong);
718int __ovld __cnfn convert_int_rte(float);
719int __ovld __cnfn convert_int_sat_rte(float);
720int __ovld __cnfn convert_int_rtz(float);
721int __ovld __cnfn convert_int_sat_rtz(float);
722int __ovld __cnfn convert_int_rtp(float);
723int __ovld __cnfn convert_int_sat_rtp(float);
724int __ovld __cnfn convert_int_rtn(float);
725int __ovld __cnfn convert_int_sat_rtn(float);
726int __ovld __cnfn convert_int(float);
727int __ovld __cnfn convert_int_sat(float);
728uint __ovld __cnfn convert_uint_rte(char);
729uint __ovld __cnfn convert_uint_sat_rte(char);
730uint __ovld __cnfn convert_uint_rtz(char);
731uint __ovld __cnfn convert_uint_sat_rtz(char);
732uint __ovld __cnfn convert_uint_rtp(char);
733uint __ovld __cnfn convert_uint_sat_rtp(char);
734uint __ovld __cnfn convert_uint_rtn(char);
735uint __ovld __cnfn convert_uint_sat_rtn(char);
736uint __ovld __cnfn convert_uint(char);
737uint __ovld __cnfn convert_uint_sat(char);
738uint __ovld __cnfn convert_uint_rte(uchar);
739uint __ovld __cnfn convert_uint_sat_rte(uchar);
740uint __ovld __cnfn convert_uint_rtz(uchar);
741uint __ovld __cnfn convert_uint_sat_rtz(uchar);
742uint __ovld __cnfn convert_uint_rtp(uchar);
743uint __ovld __cnfn convert_uint_sat_rtp(uchar);
744uint __ovld __cnfn convert_uint_rtn(uchar);
745uint __ovld __cnfn convert_uint_sat_rtn(uchar);
746uint __ovld __cnfn convert_uint(uchar);
747uint __ovld __cnfn convert_uint_sat(uchar);
748uint __ovld __cnfn convert_uint_rte(short);
749uint __ovld __cnfn convert_uint_sat_rte(short);
750uint __ovld __cnfn convert_uint_rtz(short);
751uint __ovld __cnfn convert_uint_sat_rtz(short);
752uint __ovld __cnfn convert_uint_rtp(short);
753uint __ovld __cnfn convert_uint_sat_rtp(short);
754uint __ovld __cnfn convert_uint_rtn(short);
755uint __ovld __cnfn convert_uint_sat_rtn(short);
756uint __ovld __cnfn convert_uint(short);
757uint __ovld __cnfn convert_uint_sat(short);
758uint __ovld __cnfn convert_uint_rte(ushort);
759uint __ovld __cnfn convert_uint_sat_rte(ushort);
760uint __ovld __cnfn convert_uint_rtz(ushort);
761uint __ovld __cnfn convert_uint_sat_rtz(ushort);
762uint __ovld __cnfn convert_uint_rtp(ushort);
763uint __ovld __cnfn convert_uint_sat_rtp(ushort);
764uint __ovld __cnfn convert_uint_rtn(ushort);
765uint __ovld __cnfn convert_uint_sat_rtn(ushort);
766uint __ovld __cnfn convert_uint(ushort);
767uint __ovld __cnfn convert_uint_sat(ushort);
768uint __ovld __cnfn convert_uint_rte(int);
769uint __ovld __cnfn convert_uint_sat_rte(int);
770uint __ovld __cnfn convert_uint_rtz(int);
771uint __ovld __cnfn convert_uint_sat_rtz(int);
772uint __ovld __cnfn convert_uint_rtp(int);
773uint __ovld __cnfn convert_uint_sat_rtp(int);
774uint __ovld __cnfn convert_uint_rtn(int);
775uint __ovld __cnfn convert_uint_sat_rtn(int);
776uint __ovld __cnfn convert_uint(int);
777uint __ovld __cnfn convert_uint_sat(int);
778uint __ovld __cnfn convert_uint_rte(uint);
779uint __ovld __cnfn convert_uint_sat_rte(uint);
780uint __ovld __cnfn convert_uint_rtz(uint);
781uint __ovld __cnfn convert_uint_sat_rtz(uint);
782uint __ovld __cnfn convert_uint_rtp(uint);
783uint __ovld __cnfn convert_uint_sat_rtp(uint);
784uint __ovld __cnfn convert_uint_rtn(uint);
785uint __ovld __cnfn convert_uint_sat_rtn(uint);
786uint __ovld __cnfn convert_uint(uint);
787uint __ovld __cnfn convert_uint_sat(uint);
788uint __ovld __cnfn convert_uint_rte(long);
789uint __ovld __cnfn convert_uint_sat_rte(long);
790uint __ovld __cnfn convert_uint_rtz(long);
791uint __ovld __cnfn convert_uint_sat_rtz(long);
792uint __ovld __cnfn convert_uint_rtp(long);
793uint __ovld __cnfn convert_uint_sat_rtp(long);
794uint __ovld __cnfn convert_uint_rtn(long);
795uint __ovld __cnfn convert_uint_sat_rtn(long);
796uint __ovld __cnfn convert_uint(long);
797uint __ovld __cnfn convert_uint_sat(long);
798uint __ovld __cnfn convert_uint_rte(ulong);
799uint __ovld __cnfn convert_uint_sat_rte(ulong);
800uint __ovld __cnfn convert_uint_rtz(ulong);
801uint __ovld __cnfn convert_uint_sat_rtz(ulong);
802uint __ovld __cnfn convert_uint_rtp(ulong);
803uint __ovld __cnfn convert_uint_sat_rtp(ulong);
804uint __ovld __cnfn convert_uint_rtn(ulong);
805uint __ovld __cnfn convert_uint_sat_rtn(ulong);
806uint __ovld __cnfn convert_uint(ulong);
807uint __ovld __cnfn convert_uint_sat(ulong);
808uint __ovld __cnfn convert_uint_rte(float);
809uint __ovld __cnfn convert_uint_sat_rte(float);
810uint __ovld __cnfn convert_uint_rtz(float);
811uint __ovld __cnfn convert_uint_sat_rtz(float);
812uint __ovld __cnfn convert_uint_rtp(float);
813uint __ovld __cnfn convert_uint_sat_rtp(float);
814uint __ovld __cnfn convert_uint_rtn(float);
815uint __ovld __cnfn convert_uint_sat_rtn(float);
816uint __ovld __cnfn convert_uint(float);
817uint __ovld __cnfn convert_uint_sat(float);
818long __ovld __cnfn convert_long_rte(char);
819long __ovld __cnfn convert_long_sat_rte(char);
820long __ovld __cnfn convert_long_rtz(char);
821long __ovld __cnfn convert_long_sat_rtz(char);
822long __ovld __cnfn convert_long_rtp(char);
823long __ovld __cnfn convert_long_sat_rtp(char);
824long __ovld __cnfn convert_long_rtn(char);
825long __ovld __cnfn convert_long_sat_rtn(char);
826long __ovld __cnfn convert_long(char);
827long __ovld __cnfn convert_long_sat(char);
828long __ovld __cnfn convert_long_rte(uchar);
829long __ovld __cnfn convert_long_sat_rte(uchar);
830long __ovld __cnfn convert_long_rtz(uchar);
831long __ovld __cnfn convert_long_sat_rtz(uchar);
832long __ovld __cnfn convert_long_rtp(uchar);
833long __ovld __cnfn convert_long_sat_rtp(uchar);
834long __ovld __cnfn convert_long_rtn(uchar);
835long __ovld __cnfn convert_long_sat_rtn(uchar);
836long __ovld __cnfn convert_long(uchar);
837long __ovld __cnfn convert_long_sat(uchar);
838long __ovld __cnfn convert_long_rte(short);
839long __ovld __cnfn convert_long_sat_rte(short);
840long __ovld __cnfn convert_long_rtz(short);
841long __ovld __cnfn convert_long_sat_rtz(short);
842long __ovld __cnfn convert_long_rtp(short);
843long __ovld __cnfn convert_long_sat_rtp(short);
844long __ovld __cnfn convert_long_rtn(short);
845long __ovld __cnfn convert_long_sat_rtn(short);
846long __ovld __cnfn convert_long(short);
847long __ovld __cnfn convert_long_sat(short);
848long __ovld __cnfn convert_long_rte(ushort);
849long __ovld __cnfn convert_long_sat_rte(ushort);
850long __ovld __cnfn convert_long_rtz(ushort);
851long __ovld __cnfn convert_long_sat_rtz(ushort);
852long __ovld __cnfn convert_long_rtp(ushort);
853long __ovld __cnfn convert_long_sat_rtp(ushort);
854long __ovld __cnfn convert_long_rtn(ushort);
855long __ovld __cnfn convert_long_sat_rtn(ushort);
856long __ovld __cnfn convert_long(ushort);
857long __ovld __cnfn convert_long_sat(ushort);
858long __ovld __cnfn convert_long_rte(int);
859long __ovld __cnfn convert_long_sat_rte(int);
860long __ovld __cnfn convert_long_rtz(int);
861long __ovld __cnfn convert_long_sat_rtz(int);
862long __ovld __cnfn convert_long_rtp(int);
863long __ovld __cnfn convert_long_sat_rtp(int);
864long __ovld __cnfn convert_long_rtn(int);
865long __ovld __cnfn convert_long_sat_rtn(int);
866long __ovld __cnfn convert_long(int);
867long __ovld __cnfn convert_long_sat(int);
868long __ovld __cnfn convert_long_rte(uint);
869long __ovld __cnfn convert_long_sat_rte(uint);
870long __ovld __cnfn convert_long_rtz(uint);
871long __ovld __cnfn convert_long_sat_rtz(uint);
872long __ovld __cnfn convert_long_rtp(uint);
873long __ovld __cnfn convert_long_sat_rtp(uint);
874long __ovld __cnfn convert_long_rtn(uint);
875long __ovld __cnfn convert_long_sat_rtn(uint);
876long __ovld __cnfn convert_long(uint);
877long __ovld __cnfn convert_long_sat(uint);
878long __ovld __cnfn convert_long_rte(long);
879long __ovld __cnfn convert_long_sat_rte(long);
880long __ovld __cnfn convert_long_rtz(long);
881long __ovld __cnfn convert_long_sat_rtz(long);
882long __ovld __cnfn convert_long_rtp(long);
883long __ovld __cnfn convert_long_sat_rtp(long);
884long __ovld __cnfn convert_long_rtn(long);
885long __ovld __cnfn convert_long_sat_rtn(long);
886long __ovld __cnfn convert_long(long);
887long __ovld __cnfn convert_long_sat(long);
888long __ovld __cnfn convert_long_rte(ulong);
889long __ovld __cnfn convert_long_sat_rte(ulong);
890long __ovld __cnfn convert_long_rtz(ulong);
891long __ovld __cnfn convert_long_sat_rtz(ulong);
892long __ovld __cnfn convert_long_rtp(ulong);
893long __ovld __cnfn convert_long_sat_rtp(ulong);
894long __ovld __cnfn convert_long_rtn(ulong);
895long __ovld __cnfn convert_long_sat_rtn(ulong);
896long __ovld __cnfn convert_long(ulong);
897long __ovld __cnfn convert_long_sat(ulong);
898long __ovld __cnfn convert_long_rte(float);
899long __ovld __cnfn convert_long_sat_rte(float);
900long __ovld __cnfn convert_long_rtz(float);
901long __ovld __cnfn convert_long_sat_rtz(float);
902long __ovld __cnfn convert_long_rtp(float);
903long __ovld __cnfn convert_long_sat_rtp(float);
904long __ovld __cnfn convert_long_rtn(float);
905long __ovld __cnfn convert_long_sat_rtn(float);
906long __ovld __cnfn convert_long(float);
907long __ovld __cnfn convert_long_sat(float);
908ulong __ovld __cnfn convert_ulong_rte(char);
909ulong __ovld __cnfn convert_ulong_sat_rte(char);
910ulong __ovld __cnfn convert_ulong_rtz(char);
911ulong __ovld __cnfn convert_ulong_sat_rtz(char);
912ulong __ovld __cnfn convert_ulong_rtp(char);
913ulong __ovld __cnfn convert_ulong_sat_rtp(char);
914ulong __ovld __cnfn convert_ulong_rtn(char);
915ulong __ovld __cnfn convert_ulong_sat_rtn(char);
916ulong __ovld __cnfn convert_ulong(char);
917ulong __ovld __cnfn convert_ulong_sat(char);
918ulong __ovld __cnfn convert_ulong_rte(uchar);
919ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
920ulong __ovld __cnfn convert_ulong_rtz(uchar);
921ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
922ulong __ovld __cnfn convert_ulong_rtp(uchar);
923ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
924ulong __ovld __cnfn convert_ulong_rtn(uchar);
925ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
926ulong __ovld __cnfn convert_ulong(uchar);
927ulong __ovld __cnfn convert_ulong_sat(uchar);
928ulong __ovld __cnfn convert_ulong_rte(short);
929ulong __ovld __cnfn convert_ulong_sat_rte(short);
930ulong __ovld __cnfn convert_ulong_rtz(short);
931ulong __ovld __cnfn convert_ulong_sat_rtz(short);
932ulong __ovld __cnfn convert_ulong_rtp(short);
933ulong __ovld __cnfn convert_ulong_sat_rtp(short);
934ulong __ovld __cnfn convert_ulong_rtn(short);
935ulong __ovld __cnfn convert_ulong_sat_rtn(short);
936ulong __ovld __cnfn convert_ulong(short);
937ulong __ovld __cnfn convert_ulong_sat(short);
938ulong __ovld __cnfn convert_ulong_rte(ushort);
939ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
940ulong __ovld __cnfn convert_ulong_rtz(ushort);
941ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
942ulong __ovld __cnfn convert_ulong_rtp(ushort);
943ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
944ulong __ovld __cnfn convert_ulong_rtn(ushort);
945ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
946ulong __ovld __cnfn convert_ulong(ushort);
947ulong __ovld __cnfn convert_ulong_sat(ushort);
948ulong __ovld __cnfn convert_ulong_rte(int);
949ulong __ovld __cnfn convert_ulong_sat_rte(int);
950ulong __ovld __cnfn convert_ulong_rtz(int);
951ulong __ovld __cnfn convert_ulong_sat_rtz(int);
952ulong __ovld __cnfn convert_ulong_rtp(int);
953ulong __ovld __cnfn convert_ulong_sat_rtp(int);
954ulong __ovld __cnfn convert_ulong_rtn(int);
955ulong __ovld __cnfn convert_ulong_sat_rtn(int);
956ulong __ovld __cnfn convert_ulong(int);
957ulong __ovld __cnfn convert_ulong_sat(int);
958ulong __ovld __cnfn convert_ulong_rte(uint);
959ulong __ovld __cnfn convert_ulong_sat_rte(uint);
960ulong __ovld __cnfn convert_ulong_rtz(uint);
961ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
962ulong __ovld __cnfn convert_ulong_rtp(uint);
963ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
964ulong __ovld __cnfn convert_ulong_rtn(uint);
965ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
966ulong __ovld __cnfn convert_ulong(uint);
967ulong __ovld __cnfn convert_ulong_sat(uint);
968ulong __ovld __cnfn convert_ulong_rte(long);
969ulong __ovld __cnfn convert_ulong_sat_rte(long);
970ulong __ovld __cnfn convert_ulong_rtz(long);
971ulong __ovld __cnfn convert_ulong_sat_rtz(long);
972ulong __ovld __cnfn convert_ulong_rtp(long);
973ulong __ovld __cnfn convert_ulong_sat_rtp(long);
974ulong __ovld __cnfn convert_ulong_rtn(long);
975ulong __ovld __cnfn convert_ulong_sat_rtn(long);
976ulong __ovld __cnfn convert_ulong(long);
977ulong __ovld __cnfn convert_ulong_sat(long);
978ulong __ovld __cnfn convert_ulong_rte(ulong);
979ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
980ulong __ovld __cnfn convert_ulong_rtz(ulong);
981ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
982ulong __ovld __cnfn convert_ulong_rtp(ulong);
983ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
984ulong __ovld __cnfn convert_ulong_rtn(ulong);
985ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
986ulong __ovld __cnfn convert_ulong(ulong);
987ulong __ovld __cnfn convert_ulong_sat(ulong);
988ulong __ovld __cnfn convert_ulong_rte(float);
989ulong __ovld __cnfn convert_ulong_sat_rte(float);
990ulong __ovld __cnfn convert_ulong_rtz(float);
991ulong __ovld __cnfn convert_ulong_sat_rtz(float);
992ulong __ovld __cnfn convert_ulong_rtp(float);
993ulong __ovld __cnfn convert_ulong_sat_rtp(float);
994ulong __ovld __cnfn convert_ulong_rtn(float);
995ulong __ovld __cnfn convert_ulong_sat_rtn(float);
996ulong __ovld __cnfn convert_ulong(float);
997ulong __ovld __cnfn convert_ulong_sat(float);
998float __ovld __cnfn convert_float_rte(char);
999float __ovld __cnfn convert_float_rtz(char);
1000float __ovld __cnfn convert_float_rtp(char);
1001float __ovld __cnfn convert_float_rtn(char);
1002float __ovld __cnfn convert_float(char);
1003float __ovld __cnfn convert_float_rte(uchar);
1004float __ovld __cnfn convert_float_rtz(uchar);
1005float __ovld __cnfn convert_float_rtp(uchar);
1006float __ovld __cnfn convert_float_rtn(uchar);
1007float __ovld __cnfn convert_float(uchar);
1008float __ovld __cnfn convert_float_rte(short);
1009float __ovld __cnfn convert_float_rtz(short);
1010float __ovld __cnfn convert_float_rtp(short);
1011float __ovld __cnfn convert_float_rtn(short);
1012float __ovld __cnfn convert_float(short);
1013float __ovld __cnfn convert_float_rte(ushort);
1014float __ovld __cnfn convert_float_rtz(ushort);
1015float __ovld __cnfn convert_float_rtp(ushort);
1016float __ovld __cnfn convert_float_rtn(ushort);
1017float __ovld __cnfn convert_float(ushort);
1018float __ovld __cnfn convert_float_rte(int);
1019float __ovld __cnfn convert_float_rtz(int);
1020float __ovld __cnfn convert_float_rtp(int);
1021float __ovld __cnfn convert_float_rtn(int);
1022float __ovld __cnfn convert_float(int);
1023float __ovld __cnfn convert_float_rte(uint);
1024float __ovld __cnfn convert_float_rtz(uint);
1025float __ovld __cnfn convert_float_rtp(uint);
1026float __ovld __cnfn convert_float_rtn(uint);
1027float __ovld __cnfn convert_float(uint);
1028float __ovld __cnfn convert_float_rte(long);
1029float __ovld __cnfn convert_float_rtz(long);
1030float __ovld __cnfn convert_float_rtp(long);
1031float __ovld __cnfn convert_float_rtn(long);
1032float __ovld __cnfn convert_float(long);
1033float __ovld __cnfn convert_float_rte(ulong);
1034float __ovld __cnfn convert_float_rtz(ulong);
1035float __ovld __cnfn convert_float_rtp(ulong);
1036float __ovld __cnfn convert_float_rtn(ulong);
1037float __ovld __cnfn convert_float(ulong);
1038float __ovld __cnfn convert_float_rte(float);
1039float __ovld __cnfn convert_float_rtz(float);
1040float __ovld __cnfn convert_float_rtp(float);
1041float __ovld __cnfn convert_float_rtn(float);
1042float __ovld __cnfn convert_float(float);
1043char2 __ovld __cnfn convert_char2_rte(char2);
1044char2 __ovld __cnfn convert_char2_sat_rte(char2);
1045char2 __ovld __cnfn convert_char2_rtz(char2);
1046char2 __ovld __cnfn convert_char2_sat_rtz(char2);
1047char2 __ovld __cnfn convert_char2_rtp(char2);
1048char2 __ovld __cnfn convert_char2_sat_rtp(char2);
1049char2 __ovld __cnfn convert_char2_rtn(char2);
1050char2 __ovld __cnfn convert_char2_sat_rtn(char2);
1051char2 __ovld __cnfn convert_char2(char2);
1052char2 __ovld __cnfn convert_char2_sat(char2);
1053char2 __ovld __cnfn convert_char2_rte(uchar2);
1054char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
1055char2 __ovld __cnfn convert_char2_rtz(uchar2);
1056char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
1057char2 __ovld __cnfn convert_char2_rtp(uchar2);
1058char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
1059char2 __ovld __cnfn convert_char2_rtn(uchar2);
1060char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
1061char2 __ovld __cnfn convert_char2(uchar2);
1062char2 __ovld __cnfn convert_char2_sat(uchar2);
1063char2 __ovld __cnfn convert_char2_rte(short2);
1064char2 __ovld __cnfn convert_char2_sat_rte(short2);
1065char2 __ovld __cnfn convert_char2_rtz(short2);
1066char2 __ovld __cnfn convert_char2_sat_rtz(short2);
1067char2 __ovld __cnfn convert_char2_rtp(short2);
1068char2 __ovld __cnfn convert_char2_sat_rtp(short2);
1069char2 __ovld __cnfn convert_char2_rtn(short2);
1070char2 __ovld __cnfn convert_char2_sat_rtn(short2);
1071char2 __ovld __cnfn convert_char2(short2);
1072char2 __ovld __cnfn convert_char2_sat(short2);
1073char2 __ovld __cnfn convert_char2_rte(ushort2);
1074char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
1075char2 __ovld __cnfn convert_char2_rtz(ushort2);
1076char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
1077char2 __ovld __cnfn convert_char2_rtp(ushort2);
1078char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
1079char2 __ovld __cnfn convert_char2_rtn(ushort2);
1080char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
1081char2 __ovld __cnfn convert_char2(ushort2);
1082char2 __ovld __cnfn convert_char2_sat(ushort2);
1083char2 __ovld __cnfn convert_char2_rte(int2);
1084char2 __ovld __cnfn convert_char2_sat_rte(int2);
1085char2 __ovld __cnfn convert_char2_rtz(int2);
1086char2 __ovld __cnfn convert_char2_sat_rtz(int2);
1087char2 __ovld __cnfn convert_char2_rtp(int2);
1088char2 __ovld __cnfn convert_char2_sat_rtp(int2);
1089char2 __ovld __cnfn convert_char2_rtn(int2);
1090char2 __ovld __cnfn convert_char2_sat_rtn(int2);
1091char2 __ovld __cnfn convert_char2(int2);
1092char2 __ovld __cnfn convert_char2_sat(int2);
1093char2 __ovld __cnfn convert_char2_rte(uint2);
1094char2 __ovld __cnfn convert_char2_sat_rte(uint2);
1095char2 __ovld __cnfn convert_char2_rtz(uint2);
1096char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
1097char2 __ovld __cnfn convert_char2_rtp(uint2);
1098char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
1099char2 __ovld __cnfn convert_char2_rtn(uint2);
1100char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
1101char2 __ovld __cnfn convert_char2(uint2);
1102char2 __ovld __cnfn convert_char2_sat(uint2);
1103char2 __ovld __cnfn convert_char2_rte(long2);
1104char2 __ovld __cnfn convert_char2_sat_rte(long2);
1105char2 __ovld __cnfn convert_char2_rtz(long2);
1106char2 __ovld __cnfn convert_char2_sat_rtz(long2);
1107char2 __ovld __cnfn convert_char2_rtp(long2);
1108char2 __ovld __cnfn convert_char2_sat_rtp(long2);
1109char2 __ovld __cnfn convert_char2_rtn(long2);
1110char2 __ovld __cnfn convert_char2_sat_rtn(long2);
1111char2 __ovld __cnfn convert_char2(long2);
1112char2 __ovld __cnfn convert_char2_sat(long2);
1113char2 __ovld __cnfn convert_char2_rte(ulong2);
1114char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
1115char2 __ovld __cnfn convert_char2_rtz(ulong2);
1116char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
1117char2 __ovld __cnfn convert_char2_rtp(ulong2);
1118char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
1119char2 __ovld __cnfn convert_char2_rtn(ulong2);
1120char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
1121char2 __ovld __cnfn convert_char2(ulong2);
1122char2 __ovld __cnfn convert_char2_sat(ulong2);
1123char2 __ovld __cnfn convert_char2_rte(float2);
1124char2 __ovld __cnfn convert_char2_sat_rte(float2);
1125char2 __ovld __cnfn convert_char2_rtz(float2);
1126char2 __ovld __cnfn convert_char2_sat_rtz(float2);
1127char2 __ovld __cnfn convert_char2_rtp(float2);
1128char2 __ovld __cnfn convert_char2_sat_rtp(float2);
1129char2 __ovld __cnfn convert_char2_rtn(float2);
1130char2 __ovld __cnfn convert_char2_sat_rtn(float2);
1131char2 __ovld __cnfn convert_char2(float2);
1132char2 __ovld __cnfn convert_char2_sat(float2);
1133uchar2 __ovld __cnfn convert_uchar2_rte(char2);
1134uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
1135uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
1136uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
1137uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
1138uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
1139uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
1140uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
1141uchar2 __ovld __cnfn convert_uchar2(char2);
1142uchar2 __ovld __cnfn convert_uchar2_sat(char2);
1143uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
1144uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
1145uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
1146uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
1147uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
1148uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
1149uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
1150uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
1151uchar2 __ovld __cnfn convert_uchar2(uchar2);
1152uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
1153uchar2 __ovld __cnfn convert_uchar2_rte(short2);
1154uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
1155uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
1156uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
1157uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
1158uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
1159uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
1160uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
1161uchar2 __ovld __cnfn convert_uchar2(short2);
1162uchar2 __ovld __cnfn convert_uchar2_sat(short2);
1163uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
1164uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
1165uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
1166uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
1167uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
1168uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
1169uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
1170uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
1171uchar2 __ovld __cnfn convert_uchar2(ushort2);
1172uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
1173uchar2 __ovld __cnfn convert_uchar2_rte(int2);
1174uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
1175uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
1176uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
1177uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
1178uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
1179uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
1180uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
1181uchar2 __ovld __cnfn convert_uchar2(int2);
1182uchar2 __ovld __cnfn convert_uchar2_sat(int2);
1183uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
1184uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
1185uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
1186uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
1187uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
1188uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
1189uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
1190uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
1191uchar2 __ovld __cnfn convert_uchar2(uint2);
1192uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
1193uchar2 __ovld __cnfn convert_uchar2_rte(long2);
1194uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
1195uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
1196uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
1197uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
1198uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
1199uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
1200uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
1201uchar2 __ovld __cnfn convert_uchar2(long2);
1202uchar2 __ovld __cnfn convert_uchar2_sat(long2);
1203uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
1204uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
1205uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
1206uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
1207uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
1208uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
1209uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
1210uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
1211uchar2 __ovld __cnfn convert_uchar2(ulong2);
1212uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
1213uchar2 __ovld __cnfn convert_uchar2_rte(float2);
1214uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
1215uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
1216uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
1217uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
1218uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
1219uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
1220uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
1221uchar2 __ovld __cnfn convert_uchar2(float2);
1222uchar2 __ovld __cnfn convert_uchar2_sat(float2);
1223short2 __ovld __cnfn convert_short2_rte(char2);
1224short2 __ovld __cnfn convert_short2_sat_rte(char2);
1225short2 __ovld __cnfn convert_short2_rtz(char2);
1226short2 __ovld __cnfn convert_short2_sat_rtz(char2);
1227short2 __ovld __cnfn convert_short2_rtp(char2);
1228short2 __ovld __cnfn convert_short2_sat_rtp(char2);
1229short2 __ovld __cnfn convert_short2_rtn(char2);
1230short2 __ovld __cnfn convert_short2_sat_rtn(char2);
1231short2 __ovld __cnfn convert_short2(char2);
1232short2 __ovld __cnfn convert_short2_sat(char2);
1233short2 __ovld __cnfn convert_short2_rte(uchar2);
1234short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1235short2 __ovld __cnfn convert_short2_rtz(uchar2);
1236short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1237short2 __ovld __cnfn convert_short2_rtp(uchar2);
1238short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1239short2 __ovld __cnfn convert_short2_rtn(uchar2);
1240short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1241short2 __ovld __cnfn convert_short2(uchar2);
1242short2 __ovld __cnfn convert_short2_sat(uchar2);
1243short2 __ovld __cnfn convert_short2_rte(short2);
1244short2 __ovld __cnfn convert_short2_sat_rte(short2);
1245short2 __ovld __cnfn convert_short2_rtz(short2);
1246short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1247short2 __ovld __cnfn convert_short2_rtp(short2);
1248short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1249short2 __ovld __cnfn convert_short2_rtn(short2);
1250short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1251short2 __ovld __cnfn convert_short2(short2);
1252short2 __ovld __cnfn convert_short2_sat(short2);
1253short2 __ovld __cnfn convert_short2_rte(ushort2);
1254short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1255short2 __ovld __cnfn convert_short2_rtz(ushort2);
1256short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1257short2 __ovld __cnfn convert_short2_rtp(ushort2);
1258short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1259short2 __ovld __cnfn convert_short2_rtn(ushort2);
1260short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1261short2 __ovld __cnfn convert_short2(ushort2);
1262short2 __ovld __cnfn convert_short2_sat(ushort2);
1263short2 __ovld __cnfn convert_short2_rte(int2);
1264short2 __ovld __cnfn convert_short2_sat_rte(int2);
1265short2 __ovld __cnfn convert_short2_rtz(int2);
1266short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1267short2 __ovld __cnfn convert_short2_rtp(int2);
1268short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1269short2 __ovld __cnfn convert_short2_rtn(int2);
1270short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1271short2 __ovld __cnfn convert_short2(int2);
1272short2 __ovld __cnfn convert_short2_sat(int2);
1273short2 __ovld __cnfn convert_short2_rte(uint2);
1274short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1275short2 __ovld __cnfn convert_short2_rtz(uint2);
1276short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1277short2 __ovld __cnfn convert_short2_rtp(uint2);
1278short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1279short2 __ovld __cnfn convert_short2_rtn(uint2);
1280short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1281short2 __ovld __cnfn convert_short2(uint2);
1282short2 __ovld __cnfn convert_short2_sat(uint2);
1283short2 __ovld __cnfn convert_short2_rte(long2);
1284short2 __ovld __cnfn convert_short2_sat_rte(long2);
1285short2 __ovld __cnfn convert_short2_rtz(long2);
1286short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1287short2 __ovld __cnfn convert_short2_rtp(long2);
1288short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1289short2 __ovld __cnfn convert_short2_rtn(long2);
1290short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1291short2 __ovld __cnfn convert_short2(long2);
1292short2 __ovld __cnfn convert_short2_sat(long2);
1293short2 __ovld __cnfn convert_short2_rte(ulong2);
1294short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1295short2 __ovld __cnfn convert_short2_rtz(ulong2);
1296short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1297short2 __ovld __cnfn convert_short2_rtp(ulong2);
1298short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1299short2 __ovld __cnfn convert_short2_rtn(ulong2);
1300short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1301short2 __ovld __cnfn convert_short2(ulong2);
1302short2 __ovld __cnfn convert_short2_sat(ulong2);
1303short2 __ovld __cnfn convert_short2_rte(float2);
1304short2 __ovld __cnfn convert_short2_sat_rte(float2);
1305short2 __ovld __cnfn convert_short2_rtz(float2);
1306short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1307short2 __ovld __cnfn convert_short2_rtp(float2);
1308short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1309short2 __ovld __cnfn convert_short2_rtn(float2);
1310short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1311short2 __ovld __cnfn convert_short2(float2);
1312short2 __ovld __cnfn convert_short2_sat(float2);
1313ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1314ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1315ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1316ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1317ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1318ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1319ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1320ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1321ushort2 __ovld __cnfn convert_ushort2(char2);
1322ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1323ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1324ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1325ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1326ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1327ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1328ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1329ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1330ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1331ushort2 __ovld __cnfn convert_ushort2(uchar2);
1332ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1333ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1334ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1335ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1336ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1337ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1338ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1339ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1340ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1341ushort2 __ovld __cnfn convert_ushort2(short2);
1342ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1343ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1344ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1345ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1346ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1347ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1348ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1349ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1350ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1351ushort2 __ovld __cnfn convert_ushort2(ushort2);
1352ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1353ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1354ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1355ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1356ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1357ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1358ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1359ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1360ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1361ushort2 __ovld __cnfn convert_ushort2(int2);
1362ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1363ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1364ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1365ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1366ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1367ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1368ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1369ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1370ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1371ushort2 __ovld __cnfn convert_ushort2(uint2);
1372ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1373ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1374ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1375ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1376ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1377ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1378ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1379ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1380ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1381ushort2 __ovld __cnfn convert_ushort2(long2);
1382ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1383ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1384ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1385ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1386ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1387ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1388ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1389ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1390ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1391ushort2 __ovld __cnfn convert_ushort2(ulong2);
1392ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1393ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1394ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1395ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1396ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1397ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1398ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1399ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1400ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1401ushort2 __ovld __cnfn convert_ushort2(float2);
1402ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1403int2 __ovld __cnfn convert_int2_rte(char2);
1404int2 __ovld __cnfn convert_int2_sat_rte(char2);
1405int2 __ovld __cnfn convert_int2_rtz(char2);
1406int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1407int2 __ovld __cnfn convert_int2_rtp(char2);
1408int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1409int2 __ovld __cnfn convert_int2_rtn(char2);
1410int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1411int2 __ovld __cnfn convert_int2(char2);
1412int2 __ovld __cnfn convert_int2_sat(char2);
1413int2 __ovld __cnfn convert_int2_rte(uchar2);
1414int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1415int2 __ovld __cnfn convert_int2_rtz(uchar2);
1416int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1417int2 __ovld __cnfn convert_int2_rtp(uchar2);
1418int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1419int2 __ovld __cnfn convert_int2_rtn(uchar2);
1420int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1421int2 __ovld __cnfn convert_int2(uchar2);
1422int2 __ovld __cnfn convert_int2_sat(uchar2);
1423int2 __ovld __cnfn convert_int2_rte(short2);
1424int2 __ovld __cnfn convert_int2_sat_rte(short2);
1425int2 __ovld __cnfn convert_int2_rtz(short2);
1426int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1427int2 __ovld __cnfn convert_int2_rtp(short2);
1428int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1429int2 __ovld __cnfn convert_int2_rtn(short2);
1430int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1431int2 __ovld __cnfn convert_int2(short2);
1432int2 __ovld __cnfn convert_int2_sat(short2);
1433int2 __ovld __cnfn convert_int2_rte(ushort2);
1434int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1435int2 __ovld __cnfn convert_int2_rtz(ushort2);
1436int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1437int2 __ovld __cnfn convert_int2_rtp(ushort2);
1438int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1439int2 __ovld __cnfn convert_int2_rtn(ushort2);
1440int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1441int2 __ovld __cnfn convert_int2(ushort2);
1442int2 __ovld __cnfn convert_int2_sat(ushort2);
1443int2 __ovld __cnfn convert_int2_rte(int2);
1444int2 __ovld __cnfn convert_int2_sat_rte(int2);
1445int2 __ovld __cnfn convert_int2_rtz(int2);
1446int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1447int2 __ovld __cnfn convert_int2_rtp(int2);
1448int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1449int2 __ovld __cnfn convert_int2_rtn(int2);
1450int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1451int2 __ovld __cnfn convert_int2(int2);
1452int2 __ovld __cnfn convert_int2_sat(int2);
1453int2 __ovld __cnfn convert_int2_rte(uint2);
1454int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1455int2 __ovld __cnfn convert_int2_rtz(uint2);
1456int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1457int2 __ovld __cnfn convert_int2_rtp(uint2);
1458int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1459int2 __ovld __cnfn convert_int2_rtn(uint2);
1460int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1461int2 __ovld __cnfn convert_int2(uint2);
1462int2 __ovld __cnfn convert_int2_sat(uint2);
1463int2 __ovld __cnfn convert_int2_rte(long2);
1464int2 __ovld __cnfn convert_int2_sat_rte(long2);
1465int2 __ovld __cnfn convert_int2_rtz(long2);
1466int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1467int2 __ovld __cnfn convert_int2_rtp(long2);
1468int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1469int2 __ovld __cnfn convert_int2_rtn(long2);
1470int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1471int2 __ovld __cnfn convert_int2(long2);
1472int2 __ovld __cnfn convert_int2_sat(long2);
1473int2 __ovld __cnfn convert_int2_rte(ulong2);
1474int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1475int2 __ovld __cnfn convert_int2_rtz(ulong2);
1476int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1477int2 __ovld __cnfn convert_int2_rtp(ulong2);
1478int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1479int2 __ovld __cnfn convert_int2_rtn(ulong2);
1480int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1481int2 __ovld __cnfn convert_int2(ulong2);
1482int2 __ovld __cnfn convert_int2_sat(ulong2);
1483int2 __ovld __cnfn convert_int2_rte(float2);
1484int2 __ovld __cnfn convert_int2_sat_rte(float2);
1485int2 __ovld __cnfn convert_int2_rtz(float2);
1486int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1487int2 __ovld __cnfn convert_int2_rtp(float2);
1488int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1489int2 __ovld __cnfn convert_int2_rtn(float2);
1490int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1491int2 __ovld __cnfn convert_int2(float2);
1492int2 __ovld __cnfn convert_int2_sat(float2);
1493uint2 __ovld __cnfn convert_uint2_rte(char2);
1494uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1495uint2 __ovld __cnfn convert_uint2_rtz(char2);
1496uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1497uint2 __ovld __cnfn convert_uint2_rtp(char2);
1498uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1499uint2 __ovld __cnfn convert_uint2_rtn(char2);
1500uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1501uint2 __ovld __cnfn convert_uint2(char2);
1502uint2 __ovld __cnfn convert_uint2_sat(char2);
1503uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1504uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1505uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1506uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1507uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1508uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1509uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1510uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1511uint2 __ovld __cnfn convert_uint2(uchar2);
1512uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1513uint2 __ovld __cnfn convert_uint2_rte(short2);
1514uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1515uint2 __ovld __cnfn convert_uint2_rtz(short2);
1516uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1517uint2 __ovld __cnfn convert_uint2_rtp(short2);
1518uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1519uint2 __ovld __cnfn convert_uint2_rtn(short2);
1520uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1521uint2 __ovld __cnfn convert_uint2(short2);
1522uint2 __ovld __cnfn convert_uint2_sat(short2);
1523uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1524uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1525uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1526uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1527uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1528uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1529uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1530uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1531uint2 __ovld __cnfn convert_uint2(ushort2);
1532uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1533uint2 __ovld __cnfn convert_uint2_rte(int2);
1534uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1535uint2 __ovld __cnfn convert_uint2_rtz(int2);
1536uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1537uint2 __ovld __cnfn convert_uint2_rtp(int2);
1538uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1539uint2 __ovld __cnfn convert_uint2_rtn(int2);
1540uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1541uint2 __ovld __cnfn convert_uint2(int2);
1542uint2 __ovld __cnfn convert_uint2_sat(int2);
1543uint2 __ovld __cnfn convert_uint2_rte(uint2);
1544uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1545uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1546uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1547uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1548uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1549uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1550uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1551uint2 __ovld __cnfn convert_uint2(uint2);
1552uint2 __ovld __cnfn convert_uint2_sat(uint2);
1553uint2 __ovld __cnfn convert_uint2_rte(long2);
1554uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1555uint2 __ovld __cnfn convert_uint2_rtz(long2);
1556uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1557uint2 __ovld __cnfn convert_uint2_rtp(long2);
1558uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1559uint2 __ovld __cnfn convert_uint2_rtn(long2);
1560uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1561uint2 __ovld __cnfn convert_uint2(long2);
1562uint2 __ovld __cnfn convert_uint2_sat(long2);
1563uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1564uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1565uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1566uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1567uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1568uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1569uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1570uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1571uint2 __ovld __cnfn convert_uint2(ulong2);
1572uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1573uint2 __ovld __cnfn convert_uint2_rte(float2);
1574uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1575uint2 __ovld __cnfn convert_uint2_rtz(float2);
1576uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1577uint2 __ovld __cnfn convert_uint2_rtp(float2);
1578uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1579uint2 __ovld __cnfn convert_uint2_rtn(float2);
1580uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1581uint2 __ovld __cnfn convert_uint2(float2);
1582uint2 __ovld __cnfn convert_uint2_sat(float2);
1583long2 __ovld __cnfn convert_long2_rte(char2);
1584long2 __ovld __cnfn convert_long2_sat_rte(char2);
1585long2 __ovld __cnfn convert_long2_rtz(char2);
1586long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1587long2 __ovld __cnfn convert_long2_rtp(char2);
1588long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1589long2 __ovld __cnfn convert_long2_rtn(char2);
1590long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1591long2 __ovld __cnfn convert_long2(char2);
1592long2 __ovld __cnfn convert_long2_sat(char2);
1593long2 __ovld __cnfn convert_long2_rte(uchar2);
1594long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1595long2 __ovld __cnfn convert_long2_rtz(uchar2);
1596long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1597long2 __ovld __cnfn convert_long2_rtp(uchar2);
1598long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1599long2 __ovld __cnfn convert_long2_rtn(uchar2);
1600long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1601long2 __ovld __cnfn convert_long2(uchar2);
1602long2 __ovld __cnfn convert_long2_sat(uchar2);
1603long2 __ovld __cnfn convert_long2_rte(short2);
1604long2 __ovld __cnfn convert_long2_sat_rte(short2);
1605long2 __ovld __cnfn convert_long2_rtz(short2);
1606long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1607long2 __ovld __cnfn convert_long2_rtp(short2);
1608long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1609long2 __ovld __cnfn convert_long2_rtn(short2);
1610long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1611long2 __ovld __cnfn convert_long2(short2);
1612long2 __ovld __cnfn convert_long2_sat(short2);
1613long2 __ovld __cnfn convert_long2_rte(ushort2);
1614long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1615long2 __ovld __cnfn convert_long2_rtz(ushort2);
1616long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1617long2 __ovld __cnfn convert_long2_rtp(ushort2);
1618long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1619long2 __ovld __cnfn convert_long2_rtn(ushort2);
1620long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1621long2 __ovld __cnfn convert_long2(ushort2);
1622long2 __ovld __cnfn convert_long2_sat(ushort2);
1623long2 __ovld __cnfn convert_long2_rte(int2);
1624long2 __ovld __cnfn convert_long2_sat_rte(int2);
1625long2 __ovld __cnfn convert_long2_rtz(int2);
1626long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1627long2 __ovld __cnfn convert_long2_rtp(int2);
1628long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1629long2 __ovld __cnfn convert_long2_rtn(int2);
1630long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1631long2 __ovld __cnfn convert_long2(int2);
1632long2 __ovld __cnfn convert_long2_sat(int2);
1633long2 __ovld __cnfn convert_long2_rte(uint2);
1634long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1635long2 __ovld __cnfn convert_long2_rtz(uint2);
1636long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1637long2 __ovld __cnfn convert_long2_rtp(uint2);
1638long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1639long2 __ovld __cnfn convert_long2_rtn(uint2);
1640long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1641long2 __ovld __cnfn convert_long2(uint2);
1642long2 __ovld __cnfn convert_long2_sat(uint2);
1643long2 __ovld __cnfn convert_long2_rte(long2);
1644long2 __ovld __cnfn convert_long2_sat_rte(long2);
1645long2 __ovld __cnfn convert_long2_rtz(long2);
1646long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1647long2 __ovld __cnfn convert_long2_rtp(long2);
1648long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1649long2 __ovld __cnfn convert_long2_rtn(long2);
1650long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1651long2 __ovld __cnfn convert_long2(long2);
1652long2 __ovld __cnfn convert_long2_sat(long2);
1653long2 __ovld __cnfn convert_long2_rte(ulong2);
1654long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1655long2 __ovld __cnfn convert_long2_rtz(ulong2);
1656long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1657long2 __ovld __cnfn convert_long2_rtp(ulong2);
1658long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1659long2 __ovld __cnfn convert_long2_rtn(ulong2);
1660long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1661long2 __ovld __cnfn convert_long2(ulong2);
1662long2 __ovld __cnfn convert_long2_sat(ulong2);
1663long2 __ovld __cnfn convert_long2_rte(float2);
1664long2 __ovld __cnfn convert_long2_sat_rte(float2);
1665long2 __ovld __cnfn convert_long2_rtz(float2);
1666long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1667long2 __ovld __cnfn convert_long2_rtp(float2);
1668long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1669long2 __ovld __cnfn convert_long2_rtn(float2);
1670long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1671long2 __ovld __cnfn convert_long2(float2);
1672long2 __ovld __cnfn convert_long2_sat(float2);
1673ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1674ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1675ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1676ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1677ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1678ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1679ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1680ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1681ulong2 __ovld __cnfn convert_ulong2(char2);
1682ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1683ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1684ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1685ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1686ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1687ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1688ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1689ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1690ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1691ulong2 __ovld __cnfn convert_ulong2(uchar2);
1692ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1693ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1694ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1695ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1696ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1697ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1698ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1699ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1700ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1701ulong2 __ovld __cnfn convert_ulong2(short2);
1702ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1703ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1704ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1705ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1706ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1707ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1708ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1709ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1710ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1711ulong2 __ovld __cnfn convert_ulong2(ushort2);
1712ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1713ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1714ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1715ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1716ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1717ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1718ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1719ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1720ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1721ulong2 __ovld __cnfn convert_ulong2(int2);
1722ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1723ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1724ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1725ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1726ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1727ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1728ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1729ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1730ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1731ulong2 __ovld __cnfn convert_ulong2(uint2);
1732ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1733ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1734ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1735ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1736ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1737ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1738ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1739ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1740ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1741ulong2 __ovld __cnfn convert_ulong2(long2);
1742ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1743ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1744ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1745ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1746ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1747ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1748ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1749ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1750ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1751ulong2 __ovld __cnfn convert_ulong2(ulong2);
1752ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1753ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1754ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1755ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1756ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1757ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1758ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1759ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1760ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1761ulong2 __ovld __cnfn convert_ulong2(float2);
1762ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1763float2 __ovld __cnfn convert_float2_rte(char2);
1764float2 __ovld __cnfn convert_float2_rtz(char2);
1765float2 __ovld __cnfn convert_float2_rtp(char2);
1766float2 __ovld __cnfn convert_float2_rtn(char2);
1767float2 __ovld __cnfn convert_float2(char2);
1768float2 __ovld __cnfn convert_float2_rte(uchar2);
1769float2 __ovld __cnfn convert_float2_rtz(uchar2);
1770float2 __ovld __cnfn convert_float2_rtp(uchar2);
1771float2 __ovld __cnfn convert_float2_rtn(uchar2);
1772float2 __ovld __cnfn convert_float2(uchar2);
1773float2 __ovld __cnfn convert_float2_rte(short2);
1774float2 __ovld __cnfn convert_float2_rtz(short2);
1775float2 __ovld __cnfn convert_float2_rtp(short2);
1776float2 __ovld __cnfn convert_float2_rtn(short2);
1777float2 __ovld __cnfn convert_float2(short2);
1778float2 __ovld __cnfn convert_float2_rte(ushort2);
1779float2 __ovld __cnfn convert_float2_rtz(ushort2);
1780float2 __ovld __cnfn convert_float2_rtp(ushort2);
1781float2 __ovld __cnfn convert_float2_rtn(ushort2);
1782float2 __ovld __cnfn convert_float2(ushort2);
1783float2 __ovld __cnfn convert_float2_rte(int2);
1784float2 __ovld __cnfn convert_float2_rtz(int2);
1785float2 __ovld __cnfn convert_float2_rtp(int2);
1786float2 __ovld __cnfn convert_float2_rtn(int2);
1787float2 __ovld __cnfn convert_float2(int2);
1788float2 __ovld __cnfn convert_float2_rte(uint2);
1789float2 __ovld __cnfn convert_float2_rtz(uint2);
1790float2 __ovld __cnfn convert_float2_rtp(uint2);
1791float2 __ovld __cnfn convert_float2_rtn(uint2);
1792float2 __ovld __cnfn convert_float2(uint2);
1793float2 __ovld __cnfn convert_float2_rte(long2);
1794float2 __ovld __cnfn convert_float2_rtz(long2);
1795float2 __ovld __cnfn convert_float2_rtp(long2);
1796float2 __ovld __cnfn convert_float2_rtn(long2);
1797float2 __ovld __cnfn convert_float2(long2);
1798float2 __ovld __cnfn convert_float2_rte(ulong2);
1799float2 __ovld __cnfn convert_float2_rtz(ulong2);
1800float2 __ovld __cnfn convert_float2_rtp(ulong2);
1801float2 __ovld __cnfn convert_float2_rtn(ulong2);
1802float2 __ovld __cnfn convert_float2(ulong2);
1803float2 __ovld __cnfn convert_float2_rte(float2);
1804float2 __ovld __cnfn convert_float2_rtz(float2);
1805float2 __ovld __cnfn convert_float2_rtp(float2);
1806float2 __ovld __cnfn convert_float2_rtn(float2);
1807float2 __ovld __cnfn convert_float2(float2);
1808char3 __ovld __cnfn convert_char3_rte(char3);
1809char3 __ovld __cnfn convert_char3_sat_rte(char3);
1810char3 __ovld __cnfn convert_char3_rtz(char3);
1811char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1812char3 __ovld __cnfn convert_char3_rtp(char3);
1813char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1814char3 __ovld __cnfn convert_char3_rtn(char3);
1815char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1816char3 __ovld __cnfn convert_char3(char3);
1817char3 __ovld __cnfn convert_char3_sat(char3);
1818char3 __ovld __cnfn convert_char3_rte(uchar3);
1819char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1820char3 __ovld __cnfn convert_char3_rtz(uchar3);
1821char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1822char3 __ovld __cnfn convert_char3_rtp(uchar3);
1823char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1824char3 __ovld __cnfn convert_char3_rtn(uchar3);
1825char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1826char3 __ovld __cnfn convert_char3(uchar3);
1827char3 __ovld __cnfn convert_char3_sat(uchar3);
1828char3 __ovld __cnfn convert_char3_rte(short3);
1829char3 __ovld __cnfn convert_char3_sat_rte(short3);
1830char3 __ovld __cnfn convert_char3_rtz(short3);
1831char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1832char3 __ovld __cnfn convert_char3_rtp(short3);
1833char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1834char3 __ovld __cnfn convert_char3_rtn(short3);
1835char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1836char3 __ovld __cnfn convert_char3(short3);
1837char3 __ovld __cnfn convert_char3_sat(short3);
1838char3 __ovld __cnfn convert_char3_rte(ushort3);
1839char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1840char3 __ovld __cnfn convert_char3_rtz(ushort3);
1841char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1842char3 __ovld __cnfn convert_char3_rtp(ushort3);
1843char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1844char3 __ovld __cnfn convert_char3_rtn(ushort3);
1845char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1846char3 __ovld __cnfn convert_char3(ushort3);
1847char3 __ovld __cnfn convert_char3_sat(ushort3);
1848char3 __ovld __cnfn convert_char3_rte(int3);
1849char3 __ovld __cnfn convert_char3_sat_rte(int3);
1850char3 __ovld __cnfn convert_char3_rtz(int3);
1851char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1852char3 __ovld __cnfn convert_char3_rtp(int3);
1853char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1854char3 __ovld __cnfn convert_char3_rtn(int3);
1855char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1856char3 __ovld __cnfn convert_char3(int3);
1857char3 __ovld __cnfn convert_char3_sat(int3);
1858char3 __ovld __cnfn convert_char3_rte(uint3);
1859char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1860char3 __ovld __cnfn convert_char3_rtz(uint3);
1861char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1862char3 __ovld __cnfn convert_char3_rtp(uint3);
1863char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1864char3 __ovld __cnfn convert_char3_rtn(uint3);
1865char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1866char3 __ovld __cnfn convert_char3(uint3);
1867char3 __ovld __cnfn convert_char3_sat(uint3);
1868char3 __ovld __cnfn convert_char3_rte(long3);
1869char3 __ovld __cnfn convert_char3_sat_rte(long3);
1870char3 __ovld __cnfn convert_char3_rtz(long3);
1871char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1872char3 __ovld __cnfn convert_char3_rtp(long3);
1873char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1874char3 __ovld __cnfn convert_char3_rtn(long3);
1875char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1876char3 __ovld __cnfn convert_char3(long3);
1877char3 __ovld __cnfn convert_char3_sat(long3);
1878char3 __ovld __cnfn convert_char3_rte(ulong3);
1879char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1880char3 __ovld __cnfn convert_char3_rtz(ulong3);
1881char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1882char3 __ovld __cnfn convert_char3_rtp(ulong3);
1883char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1884char3 __ovld __cnfn convert_char3_rtn(ulong3);
1885char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1886char3 __ovld __cnfn convert_char3(ulong3);
1887char3 __ovld __cnfn convert_char3_sat(ulong3);
1888char3 __ovld __cnfn convert_char3_rte(float3);
1889char3 __ovld __cnfn convert_char3_sat_rte(float3);
1890char3 __ovld __cnfn convert_char3_rtz(float3);
1891char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1892char3 __ovld __cnfn convert_char3_rtp(float3);
1893char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1894char3 __ovld __cnfn convert_char3_rtn(float3);
1895char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1896char3 __ovld __cnfn convert_char3(float3);
1897char3 __ovld __cnfn convert_char3_sat(float3);
1898uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1899uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1900uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1901uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1902uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1903uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1904uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1905uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1906uchar3 __ovld __cnfn convert_uchar3(char3);
1907uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1908uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1909uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1910uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1911uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1912uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1913uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1914uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1915uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1916uchar3 __ovld __cnfn convert_uchar3(uchar3);
1917uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1918uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1919uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1920uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1921uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1922uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1923uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1924uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1925uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1926uchar3 __ovld __cnfn convert_uchar3(short3);
1927uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1928uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1929uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1930uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1931uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1932uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1933uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1934uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1935uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1936uchar3 __ovld __cnfn convert_uchar3(ushort3);
1937uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1938uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1939uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1940uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1941uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1942uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1943uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1944uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1945uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1946uchar3 __ovld __cnfn convert_uchar3(int3);
1947uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1948uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1949uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1950uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1951uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1952uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1953uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1954uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1955uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1956uchar3 __ovld __cnfn convert_uchar3(uint3);
1957uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1958uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1959uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1960uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1961uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1962uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1963uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1964uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1965uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1966uchar3 __ovld __cnfn convert_uchar3(long3);
1967uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1968uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1969uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1970uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1971uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1972uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1973uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1974uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1975uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1976uchar3 __ovld __cnfn convert_uchar3(ulong3);
1977uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1978uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1979uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1980uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1981uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1982uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1983uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1984uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
1985uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
1986uchar3 __ovld __cnfn convert_uchar3(float3);
1987uchar3 __ovld __cnfn convert_uchar3_sat(float3);
1988short3 __ovld __cnfn convert_short3_rte(char3);
1989short3 __ovld __cnfn convert_short3_sat_rte(char3);
1990short3 __ovld __cnfn convert_short3_rtz(char3);
1991short3 __ovld __cnfn convert_short3_sat_rtz(char3);
1992short3 __ovld __cnfn convert_short3_rtp(char3);
1993short3 __ovld __cnfn convert_short3_sat_rtp(char3);
1994short3 __ovld __cnfn convert_short3_rtn(char3);
1995short3 __ovld __cnfn convert_short3_sat_rtn(char3);
1996short3 __ovld __cnfn convert_short3(char3);
1997short3 __ovld __cnfn convert_short3_sat(char3);
1998short3 __ovld __cnfn convert_short3_rte(uchar3);
1999short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
2000short3 __ovld __cnfn convert_short3_rtz(uchar3);
2001short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
2002short3 __ovld __cnfn convert_short3_rtp(uchar3);
2003short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
2004short3 __ovld __cnfn convert_short3_rtn(uchar3);
2005short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
2006short3 __ovld __cnfn convert_short3(uchar3);
2007short3 __ovld __cnfn convert_short3_sat(uchar3);
2008short3 __ovld __cnfn convert_short3_rte(short3);
2009short3 __ovld __cnfn convert_short3_sat_rte(short3);
2010short3 __ovld __cnfn convert_short3_rtz(short3);
2011short3 __ovld __cnfn convert_short3_sat_rtz(short3);
2012short3 __ovld __cnfn convert_short3_rtp(short3);
2013short3 __ovld __cnfn convert_short3_sat_rtp(short3);
2014short3 __ovld __cnfn convert_short3_rtn(short3);
2015short3 __ovld __cnfn convert_short3_sat_rtn(short3);
2016short3 __ovld __cnfn convert_short3(short3);
2017short3 __ovld __cnfn convert_short3_sat(short3);
2018short3 __ovld __cnfn convert_short3_rte(ushort3);
2019short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
2020short3 __ovld __cnfn convert_short3_rtz(ushort3);
2021short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
2022short3 __ovld __cnfn convert_short3_rtp(ushort3);
2023short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
2024short3 __ovld __cnfn convert_short3_rtn(ushort3);
2025short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
2026short3 __ovld __cnfn convert_short3(ushort3);
2027short3 __ovld __cnfn convert_short3_sat(ushort3);
2028short3 __ovld __cnfn convert_short3_rte(int3);
2029short3 __ovld __cnfn convert_short3_sat_rte(int3);
2030short3 __ovld __cnfn convert_short3_rtz(int3);
2031short3 __ovld __cnfn convert_short3_sat_rtz(int3);
2032short3 __ovld __cnfn convert_short3_rtp(int3);
2033short3 __ovld __cnfn convert_short3_sat_rtp(int3);
2034short3 __ovld __cnfn convert_short3_rtn(int3);
2035short3 __ovld __cnfn convert_short3_sat_rtn(int3);
2036short3 __ovld __cnfn convert_short3(int3);
2037short3 __ovld __cnfn convert_short3_sat(int3);
2038short3 __ovld __cnfn convert_short3_rte(uint3);
2039short3 __ovld __cnfn convert_short3_sat_rte(uint3);
2040short3 __ovld __cnfn convert_short3_rtz(uint3);
2041short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
2042short3 __ovld __cnfn convert_short3_rtp(uint3);
2043short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
2044short3 __ovld __cnfn convert_short3_rtn(uint3);
2045short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
2046short3 __ovld __cnfn convert_short3(uint3);
2047short3 __ovld __cnfn convert_short3_sat(uint3);
2048short3 __ovld __cnfn convert_short3_rte(long3);
2049short3 __ovld __cnfn convert_short3_sat_rte(long3);
2050short3 __ovld __cnfn convert_short3_rtz(long3);
2051short3 __ovld __cnfn convert_short3_sat_rtz(long3);
2052short3 __ovld __cnfn convert_short3_rtp(long3);
2053short3 __ovld __cnfn convert_short3_sat_rtp(long3);
2054short3 __ovld __cnfn convert_short3_rtn(long3);
2055short3 __ovld __cnfn convert_short3_sat_rtn(long3);
2056short3 __ovld __cnfn convert_short3(long3);
2057short3 __ovld __cnfn convert_short3_sat(long3);
2058short3 __ovld __cnfn convert_short3_rte(ulong3);
2059short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
2060short3 __ovld __cnfn convert_short3_rtz(ulong3);
2061short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
2062short3 __ovld __cnfn convert_short3_rtp(ulong3);
2063short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
2064short3 __ovld __cnfn convert_short3_rtn(ulong3);
2065short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
2066short3 __ovld __cnfn convert_short3(ulong3);
2067short3 __ovld __cnfn convert_short3_sat(ulong3);
2068short3 __ovld __cnfn convert_short3_rte(float3);
2069short3 __ovld __cnfn convert_short3_sat_rte(float3);
2070short3 __ovld __cnfn convert_short3_rtz(float3);
2071short3 __ovld __cnfn convert_short3_sat_rtz(float3);
2072short3 __ovld __cnfn convert_short3_rtp(float3);
2073short3 __ovld __cnfn convert_short3_sat_rtp(float3);
2074short3 __ovld __cnfn convert_short3_rtn(float3);
2075short3 __ovld __cnfn convert_short3_sat_rtn(float3);
2076short3 __ovld __cnfn convert_short3(float3);
2077short3 __ovld __cnfn convert_short3_sat(float3);
2078ushort3 __ovld __cnfn convert_ushort3_rte(char3);
2079ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
2080ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
2081ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
2082ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
2083ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
2084ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
2085ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
2086ushort3 __ovld __cnfn convert_ushort3(char3);
2087ushort3 __ovld __cnfn convert_ushort3_sat(char3);
2088ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
2089ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
2090ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
2091ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
2092ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
2093ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
2094ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
2095ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
2096ushort3 __ovld __cnfn convert_ushort3(uchar3);
2097ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
2098ushort3 __ovld __cnfn convert_ushort3_rte(short3);
2099ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
2100ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
2101ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
2102ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
2103ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
2104ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
2105ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
2106ushort3 __ovld __cnfn convert_ushort3(short3);
2107ushort3 __ovld __cnfn convert_ushort3_sat(short3);
2108ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
2109ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
2110ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
2111ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
2112ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
2113ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
2114ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
2115ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
2116ushort3 __ovld __cnfn convert_ushort3(ushort3);
2117ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
2118ushort3 __ovld __cnfn convert_ushort3_rte(int3);
2119ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
2120ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
2121ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
2122ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
2123ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
2124ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
2125ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
2126ushort3 __ovld __cnfn convert_ushort3(int3);
2127ushort3 __ovld __cnfn convert_ushort3_sat(int3);
2128ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
2129ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
2130ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
2131ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
2132ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
2133ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
2134ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
2135ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
2136ushort3 __ovld __cnfn convert_ushort3(uint3);
2137ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
2138ushort3 __ovld __cnfn convert_ushort3_rte(long3);
2139ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
2140ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
2141ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
2142ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
2143ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
2144ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
2145ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
2146ushort3 __ovld __cnfn convert_ushort3(long3);
2147ushort3 __ovld __cnfn convert_ushort3_sat(long3);
2148ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
2149ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
2150ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
2151ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
2152ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
2153ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
2154ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
2155ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
2156ushort3 __ovld __cnfn convert_ushort3(ulong3);
2157ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
2158ushort3 __ovld __cnfn convert_ushort3_rte(float3);
2159ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
2160ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
2161ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
2162ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
2163ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
2164ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
2165ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
2166ushort3 __ovld __cnfn convert_ushort3(float3);
2167ushort3 __ovld __cnfn convert_ushort3_sat(float3);
2168int3 __ovld __cnfn convert_int3_rte(char3);
2169int3 __ovld __cnfn convert_int3_sat_rte(char3);
2170int3 __ovld __cnfn convert_int3_rtz(char3);
2171int3 __ovld __cnfn convert_int3_sat_rtz(char3);
2172int3 __ovld __cnfn convert_int3_rtp(char3);
2173int3 __ovld __cnfn convert_int3_sat_rtp(char3);
2174int3 __ovld __cnfn convert_int3_rtn(char3);
2175int3 __ovld __cnfn convert_int3_sat_rtn(char3);
2176int3 __ovld __cnfn convert_int3(char3);
2177int3 __ovld __cnfn convert_int3_sat(char3);
2178int3 __ovld __cnfn convert_int3_rte(uchar3);
2179int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
2180int3 __ovld __cnfn convert_int3_rtz(uchar3);
2181int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
2182int3 __ovld __cnfn convert_int3_rtp(uchar3);
2183int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
2184int3 __ovld __cnfn convert_int3_rtn(uchar3);
2185int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
2186int3 __ovld __cnfn convert_int3(uchar3);
2187int3 __ovld __cnfn convert_int3_sat(uchar3);
2188int3 __ovld __cnfn convert_int3_rte(short3);
2189int3 __ovld __cnfn convert_int3_sat_rte(short3);
2190int3 __ovld __cnfn convert_int3_rtz(short3);
2191int3 __ovld __cnfn convert_int3_sat_rtz(short3);
2192int3 __ovld __cnfn convert_int3_rtp(short3);
2193int3 __ovld __cnfn convert_int3_sat_rtp(short3);
2194int3 __ovld __cnfn convert_int3_rtn(short3);
2195int3 __ovld __cnfn convert_int3_sat_rtn(short3);
2196int3 __ovld __cnfn convert_int3(short3);
2197int3 __ovld __cnfn convert_int3_sat(short3);
2198int3 __ovld __cnfn convert_int3_rte(ushort3);
2199int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
2200int3 __ovld __cnfn convert_int3_rtz(ushort3);
2201int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
2202int3 __ovld __cnfn convert_int3_rtp(ushort3);
2203int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
2204int3 __ovld __cnfn convert_int3_rtn(ushort3);
2205int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
2206int3 __ovld __cnfn convert_int3(ushort3);
2207int3 __ovld __cnfn convert_int3_sat(ushort3);
2208int3 __ovld __cnfn convert_int3_rte(int3);
2209int3 __ovld __cnfn convert_int3_sat_rte(int3);
2210int3 __ovld __cnfn convert_int3_rtz(int3);
2211int3 __ovld __cnfn convert_int3_sat_rtz(int3);
2212int3 __ovld __cnfn convert_int3_rtp(int3);
2213int3 __ovld __cnfn convert_int3_sat_rtp(int3);
2214int3 __ovld __cnfn convert_int3_rtn(int3);
2215int3 __ovld __cnfn convert_int3_sat_rtn(int3);
2216int3 __ovld __cnfn convert_int3(int3);
2217int3 __ovld __cnfn convert_int3_sat(int3);
2218int3 __ovld __cnfn convert_int3_rte(uint3);
2219int3 __ovld __cnfn convert_int3_sat_rte(uint3);
2220int3 __ovld __cnfn convert_int3_rtz(uint3);
2221int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
2222int3 __ovld __cnfn convert_int3_rtp(uint3);
2223int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
2224int3 __ovld __cnfn convert_int3_rtn(uint3);
2225int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
2226int3 __ovld __cnfn convert_int3(uint3);
2227int3 __ovld __cnfn convert_int3_sat(uint3);
2228int3 __ovld __cnfn convert_int3_rte(long3);
2229int3 __ovld __cnfn convert_int3_sat_rte(long3);
2230int3 __ovld __cnfn convert_int3_rtz(long3);
2231int3 __ovld __cnfn convert_int3_sat_rtz(long3);
2232int3 __ovld __cnfn convert_int3_rtp(long3);
2233int3 __ovld __cnfn convert_int3_sat_rtp(long3);
2234int3 __ovld __cnfn convert_int3_rtn(long3);
2235int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2236int3 __ovld __cnfn convert_int3(long3);
2237int3 __ovld __cnfn convert_int3_sat(long3);
2238int3 __ovld __cnfn convert_int3_rte(ulong3);
2239int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2240int3 __ovld __cnfn convert_int3_rtz(ulong3);
2241int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2242int3 __ovld __cnfn convert_int3_rtp(ulong3);
2243int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2244int3 __ovld __cnfn convert_int3_rtn(ulong3);
2245int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2246int3 __ovld __cnfn convert_int3(ulong3);
2247int3 __ovld __cnfn convert_int3_sat(ulong3);
2248int3 __ovld __cnfn convert_int3_rte(float3);
2249int3 __ovld __cnfn convert_int3_sat_rte(float3);
2250int3 __ovld __cnfn convert_int3_rtz(float3);
2251int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2252int3 __ovld __cnfn convert_int3_rtp(float3);
2253int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2254int3 __ovld __cnfn convert_int3_rtn(float3);
2255int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2256int3 __ovld __cnfn convert_int3(float3);
2257int3 __ovld __cnfn convert_int3_sat(float3);
2258uint3 __ovld __cnfn convert_uint3_rte(char3);
2259uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2260uint3 __ovld __cnfn convert_uint3_rtz(char3);
2261uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2262uint3 __ovld __cnfn convert_uint3_rtp(char3);
2263uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2264uint3 __ovld __cnfn convert_uint3_rtn(char3);
2265uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2266uint3 __ovld __cnfn convert_uint3(char3);
2267uint3 __ovld __cnfn convert_uint3_sat(char3);
2268uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2269uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2270uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2271uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2272uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2273uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2274uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2275uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2276uint3 __ovld __cnfn convert_uint3(uchar3);
2277uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2278uint3 __ovld __cnfn convert_uint3_rte(short3);
2279uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2280uint3 __ovld __cnfn convert_uint3_rtz(short3);
2281uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2282uint3 __ovld __cnfn convert_uint3_rtp(short3);
2283uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2284uint3 __ovld __cnfn convert_uint3_rtn(short3);
2285uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2286uint3 __ovld __cnfn convert_uint3(short3);
2287uint3 __ovld __cnfn convert_uint3_sat(short3);
2288uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2289uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2290uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2291uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2292uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2293uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2294uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2295uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2296uint3 __ovld __cnfn convert_uint3(ushort3);
2297uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2298uint3 __ovld __cnfn convert_uint3_rte(int3);
2299uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2300uint3 __ovld __cnfn convert_uint3_rtz(int3);
2301uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2302uint3 __ovld __cnfn convert_uint3_rtp(int3);
2303uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2304uint3 __ovld __cnfn convert_uint3_rtn(int3);
2305uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2306uint3 __ovld __cnfn convert_uint3(int3);
2307uint3 __ovld __cnfn convert_uint3_sat(int3);
2308uint3 __ovld __cnfn convert_uint3_rte(uint3);
2309uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2310uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2311uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2312uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2313uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2314uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2315uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2316uint3 __ovld __cnfn convert_uint3(uint3);
2317uint3 __ovld __cnfn convert_uint3_sat(uint3);
2318uint3 __ovld __cnfn convert_uint3_rte(long3);
2319uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2320uint3 __ovld __cnfn convert_uint3_rtz(long3);
2321uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2322uint3 __ovld __cnfn convert_uint3_rtp(long3);
2323uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2324uint3 __ovld __cnfn convert_uint3_rtn(long3);
2325uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2326uint3 __ovld __cnfn convert_uint3(long3);
2327uint3 __ovld __cnfn convert_uint3_sat(long3);
2328uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2329uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2330uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2331uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2332uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2333uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2334uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2335uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2336uint3 __ovld __cnfn convert_uint3(ulong3);
2337uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2338uint3 __ovld __cnfn convert_uint3_rte(float3);
2339uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2340uint3 __ovld __cnfn convert_uint3_rtz(float3);
2341uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2342uint3 __ovld __cnfn convert_uint3_rtp(float3);
2343uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2344uint3 __ovld __cnfn convert_uint3_rtn(float3);
2345uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2346uint3 __ovld __cnfn convert_uint3(float3);
2347uint3 __ovld __cnfn convert_uint3_sat(float3);
2348long3 __ovld __cnfn convert_long3_rte(char3);
2349long3 __ovld __cnfn convert_long3_sat_rte(char3);
2350long3 __ovld __cnfn convert_long3_rtz(char3);
2351long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2352long3 __ovld __cnfn convert_long3_rtp(char3);
2353long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2354long3 __ovld __cnfn convert_long3_rtn(char3);
2355long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2356long3 __ovld __cnfn convert_long3(char3);
2357long3 __ovld __cnfn convert_long3_sat(char3);
2358long3 __ovld __cnfn convert_long3_rte(uchar3);
2359long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2360long3 __ovld __cnfn convert_long3_rtz(uchar3);
2361long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2362long3 __ovld __cnfn convert_long3_rtp(uchar3);
2363long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2364long3 __ovld __cnfn convert_long3_rtn(uchar3);
2365long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2366long3 __ovld __cnfn convert_long3(uchar3);
2367long3 __ovld __cnfn convert_long3_sat(uchar3);
2368long3 __ovld __cnfn convert_long3_rte(short3);
2369long3 __ovld __cnfn convert_long3_sat_rte(short3);
2370long3 __ovld __cnfn convert_long3_rtz(short3);
2371long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2372long3 __ovld __cnfn convert_long3_rtp(short3);
2373long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2374long3 __ovld __cnfn convert_long3_rtn(short3);
2375long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2376long3 __ovld __cnfn convert_long3(short3);
2377long3 __ovld __cnfn convert_long3_sat(short3);
2378long3 __ovld __cnfn convert_long3_rte(ushort3);
2379long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2380long3 __ovld __cnfn convert_long3_rtz(ushort3);
2381long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2382long3 __ovld __cnfn convert_long3_rtp(ushort3);
2383long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2384long3 __ovld __cnfn convert_long3_rtn(ushort3);
2385long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2386long3 __ovld __cnfn convert_long3(ushort3);
2387long3 __ovld __cnfn convert_long3_sat(ushort3);
2388long3 __ovld __cnfn convert_long3_rte(int3);
2389long3 __ovld __cnfn convert_long3_sat_rte(int3);
2390long3 __ovld __cnfn convert_long3_rtz(int3);
2391long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2392long3 __ovld __cnfn convert_long3_rtp(int3);
2393long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2394long3 __ovld __cnfn convert_long3_rtn(int3);
2395long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2396long3 __ovld __cnfn convert_long3(int3);
2397long3 __ovld __cnfn convert_long3_sat(int3);
2398long3 __ovld __cnfn convert_long3_rte(uint3);
2399long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2400long3 __ovld __cnfn convert_long3_rtz(uint3);
2401long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2402long3 __ovld __cnfn convert_long3_rtp(uint3);
2403long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2404long3 __ovld __cnfn convert_long3_rtn(uint3);
2405long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2406long3 __ovld __cnfn convert_long3(uint3);
2407long3 __ovld __cnfn convert_long3_sat(uint3);
2408long3 __ovld __cnfn convert_long3_rte(long3);
2409long3 __ovld __cnfn convert_long3_sat_rte(long3);
2410long3 __ovld __cnfn convert_long3_rtz(long3);
2411long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2412long3 __ovld __cnfn convert_long3_rtp(long3);
2413long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2414long3 __ovld __cnfn convert_long3_rtn(long3);
2415long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2416long3 __ovld __cnfn convert_long3(long3);
2417long3 __ovld __cnfn convert_long3_sat(long3);
2418long3 __ovld __cnfn convert_long3_rte(ulong3);
2419long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2420long3 __ovld __cnfn convert_long3_rtz(ulong3);
2421long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2422long3 __ovld __cnfn convert_long3_rtp(ulong3);
2423long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2424long3 __ovld __cnfn convert_long3_rtn(ulong3);
2425long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2426long3 __ovld __cnfn convert_long3(ulong3);
2427long3 __ovld __cnfn convert_long3_sat(ulong3);
2428long3 __ovld __cnfn convert_long3_rte(float3);
2429long3 __ovld __cnfn convert_long3_sat_rte(float3);
2430long3 __ovld __cnfn convert_long3_rtz(float3);
2431long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2432long3 __ovld __cnfn convert_long3_rtp(float3);
2433long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2434long3 __ovld __cnfn convert_long3_rtn(float3);
2435long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2436long3 __ovld __cnfn convert_long3(float3);
2437long3 __ovld __cnfn convert_long3_sat(float3);
2438ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2439ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2440ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2441ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2442ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2443ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2444ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2445ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2446ulong3 __ovld __cnfn convert_ulong3(char3);
2447ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2448ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2449ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2450ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2451ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2452ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2453ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2454ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2455ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2456ulong3 __ovld __cnfn convert_ulong3(uchar3);
2457ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2458ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2459ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2460ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2461ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2462ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2463ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2464ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2465ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2466ulong3 __ovld __cnfn convert_ulong3(short3);
2467ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2468ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2469ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2470ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2471ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2472ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2473ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2474ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2475ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2476ulong3 __ovld __cnfn convert_ulong3(ushort3);
2477ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2478ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2479ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2480ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2481ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2482ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2483ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2484ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2485ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2486ulong3 __ovld __cnfn convert_ulong3(int3);
2487ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2488ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2489ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2490ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2491ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2492ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2493ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2494ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2495ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2496ulong3 __ovld __cnfn convert_ulong3(uint3);
2497ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2498ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2499ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2500ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2501ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2502ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2503ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2504ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2505ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2506ulong3 __ovld __cnfn convert_ulong3(long3);
2507ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2508ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2509ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2510ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2511ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2512ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2513ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2514ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2515ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2516ulong3 __ovld __cnfn convert_ulong3(ulong3);
2517ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2518ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2519ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2520ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2521ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2522ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2523ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2524ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2525ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2526ulong3 __ovld __cnfn convert_ulong3(float3);
2527ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2528float3 __ovld __cnfn convert_float3_rte(char3);
2529float3 __ovld __cnfn convert_float3_rtz(char3);
2530float3 __ovld __cnfn convert_float3_rtp(char3);
2531float3 __ovld __cnfn convert_float3_rtn(char3);
2532float3 __ovld __cnfn convert_float3(char3);
2533float3 __ovld __cnfn convert_float3_rte(uchar3);
2534float3 __ovld __cnfn convert_float3_rtz(uchar3);
2535float3 __ovld __cnfn convert_float3_rtp(uchar3);
2536float3 __ovld __cnfn convert_float3_rtn(uchar3);
2537float3 __ovld __cnfn convert_float3(uchar3);
2538float3 __ovld __cnfn convert_float3_rte(short3);
2539float3 __ovld __cnfn convert_float3_rtz(short3);
2540float3 __ovld __cnfn convert_float3_rtp(short3);
2541float3 __ovld __cnfn convert_float3_rtn(short3);
2542float3 __ovld __cnfn convert_float3(short3);
2543float3 __ovld __cnfn convert_float3_rte(ushort3);
2544float3 __ovld __cnfn convert_float3_rtz(ushort3);
2545float3 __ovld __cnfn convert_float3_rtp(ushort3);
2546float3 __ovld __cnfn convert_float3_rtn(ushort3);
2547float3 __ovld __cnfn convert_float3(ushort3);
2548float3 __ovld __cnfn convert_float3_rte(int3);
2549float3 __ovld __cnfn convert_float3_rtz(int3);
2550float3 __ovld __cnfn convert_float3_rtp(int3);
2551float3 __ovld __cnfn convert_float3_rtn(int3);
2552float3 __ovld __cnfn convert_float3(int3);
2553float3 __ovld __cnfn convert_float3_rte(uint3);
2554float3 __ovld __cnfn convert_float3_rtz(uint3);
2555float3 __ovld __cnfn convert_float3_rtp(uint3);
2556float3 __ovld __cnfn convert_float3_rtn(uint3);
2557float3 __ovld __cnfn convert_float3(uint3);
2558float3 __ovld __cnfn convert_float3_rte(long3);
2559float3 __ovld __cnfn convert_float3_rtz(long3);
2560float3 __ovld __cnfn convert_float3_rtp(long3);
2561float3 __ovld __cnfn convert_float3_rtn(long3);
2562float3 __ovld __cnfn convert_float3(long3);
2563float3 __ovld __cnfn convert_float3_rte(ulong3);
2564float3 __ovld __cnfn convert_float3_rtz(ulong3);
2565float3 __ovld __cnfn convert_float3_rtp(ulong3);
2566float3 __ovld __cnfn convert_float3_rtn(ulong3);
2567float3 __ovld __cnfn convert_float3(ulong3);
2568float3 __ovld __cnfn convert_float3_rte(float3);
2569float3 __ovld __cnfn convert_float3_rtz(float3);
2570float3 __ovld __cnfn convert_float3_rtp(float3);
2571float3 __ovld __cnfn convert_float3_rtn(float3);
2572float3 __ovld __cnfn convert_float3(float3);
2573char4 __ovld __cnfn convert_char4_rte(char4);
2574char4 __ovld __cnfn convert_char4_sat_rte(char4);
2575char4 __ovld __cnfn convert_char4_rtz(char4);
2576char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2577char4 __ovld __cnfn convert_char4_rtp(char4);
2578char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2579char4 __ovld __cnfn convert_char4_rtn(char4);
2580char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2581char4 __ovld __cnfn convert_char4(char4);
2582char4 __ovld __cnfn convert_char4_sat(char4);
2583char4 __ovld __cnfn convert_char4_rte(uchar4);
2584char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2585char4 __ovld __cnfn convert_char4_rtz(uchar4);
2586char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2587char4 __ovld __cnfn convert_char4_rtp(uchar4);
2588char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2589char4 __ovld __cnfn convert_char4_rtn(uchar4);
2590char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2591char4 __ovld __cnfn convert_char4(uchar4);
2592char4 __ovld __cnfn convert_char4_sat(uchar4);
2593char4 __ovld __cnfn convert_char4_rte(short4);
2594char4 __ovld __cnfn convert_char4_sat_rte(short4);
2595char4 __ovld __cnfn convert_char4_rtz(short4);
2596char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2597char4 __ovld __cnfn convert_char4_rtp(short4);
2598char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2599char4 __ovld __cnfn convert_char4_rtn(short4);
2600char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2601char4 __ovld __cnfn convert_char4(short4);
2602char4 __ovld __cnfn convert_char4_sat(short4);
2603char4 __ovld __cnfn convert_char4_rte(ushort4);
2604char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2605char4 __ovld __cnfn convert_char4_rtz(ushort4);
2606char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2607char4 __ovld __cnfn convert_char4_rtp(ushort4);
2608char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2609char4 __ovld __cnfn convert_char4_rtn(ushort4);
2610char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2611char4 __ovld __cnfn convert_char4(ushort4);
2612char4 __ovld __cnfn convert_char4_sat(ushort4);
2613char4 __ovld __cnfn convert_char4_rte(int4);
2614char4 __ovld __cnfn convert_char4_sat_rte(int4);
2615char4 __ovld __cnfn convert_char4_rtz(int4);
2616char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2617char4 __ovld __cnfn convert_char4_rtp(int4);
2618char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2619char4 __ovld __cnfn convert_char4_rtn(int4);
2620char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2621char4 __ovld __cnfn convert_char4(int4);
2622char4 __ovld __cnfn convert_char4_sat(int4);
2623char4 __ovld __cnfn convert_char4_rte(uint4);
2624char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2625char4 __ovld __cnfn convert_char4_rtz(uint4);
2626char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2627char4 __ovld __cnfn convert_char4_rtp(uint4);
2628char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2629char4 __ovld __cnfn convert_char4_rtn(uint4);
2630char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2631char4 __ovld __cnfn convert_char4(uint4);
2632char4 __ovld __cnfn convert_char4_sat(uint4);
2633char4 __ovld __cnfn convert_char4_rte(long4);
2634char4 __ovld __cnfn convert_char4_sat_rte(long4);
2635char4 __ovld __cnfn convert_char4_rtz(long4);
2636char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2637char4 __ovld __cnfn convert_char4_rtp(long4);
2638char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2639char4 __ovld __cnfn convert_char4_rtn(long4);
2640char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2641char4 __ovld __cnfn convert_char4(long4);
2642char4 __ovld __cnfn convert_char4_sat(long4);
2643char4 __ovld __cnfn convert_char4_rte(ulong4);
2644char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2645char4 __ovld __cnfn convert_char4_rtz(ulong4);
2646char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2647char4 __ovld __cnfn convert_char4_rtp(ulong4);
2648char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2649char4 __ovld __cnfn convert_char4_rtn(ulong4);
2650char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2651char4 __ovld __cnfn convert_char4(ulong4);
2652char4 __ovld __cnfn convert_char4_sat(ulong4);
2653char4 __ovld __cnfn convert_char4_rte(float4);
2654char4 __ovld __cnfn convert_char4_sat_rte(float4);
2655char4 __ovld __cnfn convert_char4_rtz(float4);
2656char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2657char4 __ovld __cnfn convert_char4_rtp(float4);
2658char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2659char4 __ovld __cnfn convert_char4_rtn(float4);
2660char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2661char4 __ovld __cnfn convert_char4(float4);
2662char4 __ovld __cnfn convert_char4_sat(float4);
2663uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2664uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2665uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2666uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2667uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2668uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2669uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2670uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2671uchar4 __ovld __cnfn convert_uchar4(char4);
2672uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2673uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2674uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2675uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2676uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2677uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2678uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2679uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2680uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2681uchar4 __ovld __cnfn convert_uchar4(uchar4);
2682uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2683uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2684uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2685uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2686uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2687uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2688uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2689uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2690uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2691uchar4 __ovld __cnfn convert_uchar4(short4);
2692uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2693uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2694uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2695uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2696uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2697uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2698uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2699uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2700uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2701uchar4 __ovld __cnfn convert_uchar4(ushort4);
2702uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2703uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2704uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2705uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2706uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2707uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2708uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2709uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2710uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2711uchar4 __ovld __cnfn convert_uchar4(int4);
2712uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2713uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2714uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2715uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2716uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2717uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2718uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2719uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2720uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2721uchar4 __ovld __cnfn convert_uchar4(uint4);
2722uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2723uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2724uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2725uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2726uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2727uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2728uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2729uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2730uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2731uchar4 __ovld __cnfn convert_uchar4(long4);
2732uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2733uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2734uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2735uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2736uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2737uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2738uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2739uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2740uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2741uchar4 __ovld __cnfn convert_uchar4(ulong4);
2742uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2743uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2744uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2745uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2746uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2747uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2748uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2749uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2750uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2751uchar4 __ovld __cnfn convert_uchar4(float4);
2752uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2753short4 __ovld __cnfn convert_short4_rte(char4);
2754short4 __ovld __cnfn convert_short4_sat_rte(char4);
2755short4 __ovld __cnfn convert_short4_rtz(char4);
2756short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2757short4 __ovld __cnfn convert_short4_rtp(char4);
2758short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2759short4 __ovld __cnfn convert_short4_rtn(char4);
2760short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2761short4 __ovld __cnfn convert_short4(char4);
2762short4 __ovld __cnfn convert_short4_sat(char4);
2763short4 __ovld __cnfn convert_short4_rte(uchar4);
2764short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2765short4 __ovld __cnfn convert_short4_rtz(uchar4);
2766short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2767short4 __ovld __cnfn convert_short4_rtp(uchar4);
2768short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2769short4 __ovld __cnfn convert_short4_rtn(uchar4);
2770short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2771short4 __ovld __cnfn convert_short4(uchar4);
2772short4 __ovld __cnfn convert_short4_sat(uchar4);
2773short4 __ovld __cnfn convert_short4_rte(short4);
2774short4 __ovld __cnfn convert_short4_sat_rte(short4);
2775short4 __ovld __cnfn convert_short4_rtz(short4);
2776short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2777short4 __ovld __cnfn convert_short4_rtp(short4);
2778short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2779short4 __ovld __cnfn convert_short4_rtn(short4);
2780short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2781short4 __ovld __cnfn convert_short4(short4);
2782short4 __ovld __cnfn convert_short4_sat(short4);
2783short4 __ovld __cnfn convert_short4_rte(ushort4);
2784short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2785short4 __ovld __cnfn convert_short4_rtz(ushort4);
2786short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2787short4 __ovld __cnfn convert_short4_rtp(ushort4);
2788short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2789short4 __ovld __cnfn convert_short4_rtn(ushort4);
2790short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2791short4 __ovld __cnfn convert_short4(ushort4);
2792short4 __ovld __cnfn convert_short4_sat(ushort4);
2793short4 __ovld __cnfn convert_short4_rte(int4);
2794short4 __ovld __cnfn convert_short4_sat_rte(int4);
2795short4 __ovld __cnfn convert_short4_rtz(int4);
2796short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2797short4 __ovld __cnfn convert_short4_rtp(int4);
2798short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2799short4 __ovld __cnfn convert_short4_rtn(int4);
2800short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2801short4 __ovld __cnfn convert_short4(int4);
2802short4 __ovld __cnfn convert_short4_sat(int4);
2803short4 __ovld __cnfn convert_short4_rte(uint4);
2804short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2805short4 __ovld __cnfn convert_short4_rtz(uint4);
2806short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2807short4 __ovld __cnfn convert_short4_rtp(uint4);
2808short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2809short4 __ovld __cnfn convert_short4_rtn(uint4);
2810short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2811short4 __ovld __cnfn convert_short4(uint4);
2812short4 __ovld __cnfn convert_short4_sat(uint4);
2813short4 __ovld __cnfn convert_short4_rte(long4);
2814short4 __ovld __cnfn convert_short4_sat_rte(long4);
2815short4 __ovld __cnfn convert_short4_rtz(long4);
2816short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2817short4 __ovld __cnfn convert_short4_rtp(long4);
2818short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2819short4 __ovld __cnfn convert_short4_rtn(long4);
2820short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2821short4 __ovld __cnfn convert_short4(long4);
2822short4 __ovld __cnfn convert_short4_sat(long4);
2823short4 __ovld __cnfn convert_short4_rte(ulong4);
2824short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2825short4 __ovld __cnfn convert_short4_rtz(ulong4);
2826short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2827short4 __ovld __cnfn convert_short4_rtp(ulong4);
2828short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2829short4 __ovld __cnfn convert_short4_rtn(ulong4);
2830short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2831short4 __ovld __cnfn convert_short4(ulong4);
2832short4 __ovld __cnfn convert_short4_sat(ulong4);
2833short4 __ovld __cnfn convert_short4_rte(float4);
2834short4 __ovld __cnfn convert_short4_sat_rte(float4);
2835short4 __ovld __cnfn convert_short4_rtz(float4);
2836short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2837short4 __ovld __cnfn convert_short4_rtp(float4);
2838short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2839short4 __ovld __cnfn convert_short4_rtn(float4);
2840short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2841short4 __ovld __cnfn convert_short4(float4);
2842short4 __ovld __cnfn convert_short4_sat(float4);
2843ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2844ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2845ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2846ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2847ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2848ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2849ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2850ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2851ushort4 __ovld __cnfn convert_ushort4(char4);
2852ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2853ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2854ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2855ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2856ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2857ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2858ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2859ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2860ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2861ushort4 __ovld __cnfn convert_ushort4(uchar4);
2862ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2863ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2864ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2865ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2866ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2867ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2868ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2869ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2870ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2871ushort4 __ovld __cnfn convert_ushort4(short4);
2872ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2873ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2874ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2875ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2876ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2877ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2878ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2879ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2880ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2881ushort4 __ovld __cnfn convert_ushort4(ushort4);
2882ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2883ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2884ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2885ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2886ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2887ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2888ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2889ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2890ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2891ushort4 __ovld __cnfn convert_ushort4(int4);
2892ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2893ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2894ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2895ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2896ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2897ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2898ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2899ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2900ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2901ushort4 __ovld __cnfn convert_ushort4(uint4);
2902ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2903ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2904ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2905ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2906ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2907ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2908ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2909ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2910ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2911ushort4 __ovld __cnfn convert_ushort4(long4);
2912ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2913ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2914ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2915ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2916ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2917ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2918ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2919ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2920ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2921ushort4 __ovld __cnfn convert_ushort4(ulong4);
2922ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2923ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2924ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2925ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2926ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2927ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2928ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2929ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2930ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2931ushort4 __ovld __cnfn convert_ushort4(float4);
2932ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2933int4 __ovld __cnfn convert_int4_rte(char4);
2934int4 __ovld __cnfn convert_int4_sat_rte(char4);
2935int4 __ovld __cnfn convert_int4_rtz(char4);
2936int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2937int4 __ovld __cnfn convert_int4_rtp(char4);
2938int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2939int4 __ovld __cnfn convert_int4_rtn(char4);
2940int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2941int4 __ovld __cnfn convert_int4(char4);
2942int4 __ovld __cnfn convert_int4_sat(char4);
2943int4 __ovld __cnfn convert_int4_rte(uchar4);
2944int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2945int4 __ovld __cnfn convert_int4_rtz(uchar4);
2946int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2947int4 __ovld __cnfn convert_int4_rtp(uchar4);
2948int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2949int4 __ovld __cnfn convert_int4_rtn(uchar4);
2950int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2951int4 __ovld __cnfn convert_int4(uchar4);
2952int4 __ovld __cnfn convert_int4_sat(uchar4);
2953int4 __ovld __cnfn convert_int4_rte(short4);
2954int4 __ovld __cnfn convert_int4_sat_rte(short4);
2955int4 __ovld __cnfn convert_int4_rtz(short4);
2956int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2957int4 __ovld __cnfn convert_int4_rtp(short4);
2958int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2959int4 __ovld __cnfn convert_int4_rtn(short4);
2960int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2961int4 __ovld __cnfn convert_int4(short4);
2962int4 __ovld __cnfn convert_int4_sat(short4);
2963int4 __ovld __cnfn convert_int4_rte(ushort4);
2964int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2965int4 __ovld __cnfn convert_int4_rtz(ushort4);
2966int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2967int4 __ovld __cnfn convert_int4_rtp(ushort4);
2968int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2969int4 __ovld __cnfn convert_int4_rtn(ushort4);
2970int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2971int4 __ovld __cnfn convert_int4(ushort4);
2972int4 __ovld __cnfn convert_int4_sat(ushort4);
2973int4 __ovld __cnfn convert_int4_rte(int4);
2974int4 __ovld __cnfn convert_int4_sat_rte(int4);
2975int4 __ovld __cnfn convert_int4_rtz(int4);
2976int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2977int4 __ovld __cnfn convert_int4_rtp(int4);
2978int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2979int4 __ovld __cnfn convert_int4_rtn(int4);
2980int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2981int4 __ovld __cnfn convert_int4(int4);
2982int4 __ovld __cnfn convert_int4_sat(int4);
2983int4 __ovld __cnfn convert_int4_rte(uint4);
2984int4 __ovld __cnfn convert_int4_sat_rte(uint4);
2985int4 __ovld __cnfn convert_int4_rtz(uint4);
2986int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
2987int4 __ovld __cnfn convert_int4_rtp(uint4);
2988int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
2989int4 __ovld __cnfn convert_int4_rtn(uint4);
2990int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
2991int4 __ovld __cnfn convert_int4(uint4);
2992int4 __ovld __cnfn convert_int4_sat(uint4);
2993int4 __ovld __cnfn convert_int4_rte(long4);
2994int4 __ovld __cnfn convert_int4_sat_rte(long4);
2995int4 __ovld __cnfn convert_int4_rtz(long4);
2996int4 __ovld __cnfn convert_int4_sat_rtz(long4);
2997int4 __ovld __cnfn convert_int4_rtp(long4);
2998int4 __ovld __cnfn convert_int4_sat_rtp(long4);
2999int4 __ovld __cnfn convert_int4_rtn(long4);
3000int4 __ovld __cnfn convert_int4_sat_rtn(long4);
3001int4 __ovld __cnfn convert_int4(long4);
3002int4 __ovld __cnfn convert_int4_sat(long4);
3003int4 __ovld __cnfn convert_int4_rte(ulong4);
3004int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
3005int4 __ovld __cnfn convert_int4_rtz(ulong4);
3006int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
3007int4 __ovld __cnfn convert_int4_rtp(ulong4);
3008int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
3009int4 __ovld __cnfn convert_int4_rtn(ulong4);
3010int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
3011int4 __ovld __cnfn convert_int4(ulong4);
3012int4 __ovld __cnfn convert_int4_sat(ulong4);
3013int4 __ovld __cnfn convert_int4_rte(float4);
3014int4 __ovld __cnfn convert_int4_sat_rte(float4);
3015int4 __ovld __cnfn convert_int4_rtz(float4);
3016int4 __ovld __cnfn convert_int4_sat_rtz(float4);
3017int4 __ovld __cnfn convert_int4_rtp(float4);
3018int4 __ovld __cnfn convert_int4_sat_rtp(float4);
3019int4 __ovld __cnfn convert_int4_rtn(float4);
3020int4 __ovld __cnfn convert_int4_sat_rtn(float4);
3021int4 __ovld __cnfn convert_int4(float4);
3022int4 __ovld __cnfn convert_int4_sat(float4);
3023uint4 __ovld __cnfn convert_uint4_rte(char4);
3024uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
3025uint4 __ovld __cnfn convert_uint4_rtz(char4);
3026uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
3027uint4 __ovld __cnfn convert_uint4_rtp(char4);
3028uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
3029uint4 __ovld __cnfn convert_uint4_rtn(char4);
3030uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
3031uint4 __ovld __cnfn convert_uint4(char4);
3032uint4 __ovld __cnfn convert_uint4_sat(char4);
3033uint4 __ovld __cnfn convert_uint4_rte(uchar4);
3034uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
3035uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
3036uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
3037uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
3038uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
3039uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
3040uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
3041uint4 __ovld __cnfn convert_uint4(uchar4);
3042uint4 __ovld __cnfn convert_uint4_sat(uchar4);
3043uint4 __ovld __cnfn convert_uint4_rte(short4);
3044uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
3045uint4 __ovld __cnfn convert_uint4_rtz(short4);
3046uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
3047uint4 __ovld __cnfn convert_uint4_rtp(short4);
3048uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
3049uint4 __ovld __cnfn convert_uint4_rtn(short4);
3050uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
3051uint4 __ovld __cnfn convert_uint4(short4);
3052uint4 __ovld __cnfn convert_uint4_sat(short4);
3053uint4 __ovld __cnfn convert_uint4_rte(ushort4);
3054uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
3055uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
3056uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
3057uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
3058uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
3059uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
3060uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
3061uint4 __ovld __cnfn convert_uint4(ushort4);
3062uint4 __ovld __cnfn convert_uint4_sat(ushort4);
3063uint4 __ovld __cnfn convert_uint4_rte(int4);
3064uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
3065uint4 __ovld __cnfn convert_uint4_rtz(int4);
3066uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
3067uint4 __ovld __cnfn convert_uint4_rtp(int4);
3068uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
3069uint4 __ovld __cnfn convert_uint4_rtn(int4);
3070uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
3071uint4 __ovld __cnfn convert_uint4(int4);
3072uint4 __ovld __cnfn convert_uint4_sat(int4);
3073uint4 __ovld __cnfn convert_uint4_rte(uint4);
3074uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
3075uint4 __ovld __cnfn convert_uint4_rtz(uint4);
3076uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
3077uint4 __ovld __cnfn convert_uint4_rtp(uint4);
3078uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
3079uint4 __ovld __cnfn convert_uint4_rtn(uint4);
3080uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
3081uint4 __ovld __cnfn convert_uint4(uint4);
3082uint4 __ovld __cnfn convert_uint4_sat(uint4);
3083uint4 __ovld __cnfn convert_uint4_rte(long4);
3084uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
3085uint4 __ovld __cnfn convert_uint4_rtz(long4);
3086uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
3087uint4 __ovld __cnfn convert_uint4_rtp(long4);
3088uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
3089uint4 __ovld __cnfn convert_uint4_rtn(long4);
3090uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
3091uint4 __ovld __cnfn convert_uint4(long4);
3092uint4 __ovld __cnfn convert_uint4_sat(long4);
3093uint4 __ovld __cnfn convert_uint4_rte(ulong4);
3094uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
3095uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
3096uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
3097uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
3098uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
3099uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
3100uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
3101uint4 __ovld __cnfn convert_uint4(ulong4);
3102uint4 __ovld __cnfn convert_uint4_sat(ulong4);
3103uint4 __ovld __cnfn convert_uint4_rte(float4);
3104uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
3105uint4 __ovld __cnfn convert_uint4_rtz(float4);
3106uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
3107uint4 __ovld __cnfn convert_uint4_rtp(float4);
3108uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
3109uint4 __ovld __cnfn convert_uint4_rtn(float4);
3110uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
3111uint4 __ovld __cnfn convert_uint4(float4);
3112uint4 __ovld __cnfn convert_uint4_sat(float4);
3113long4 __ovld __cnfn convert_long4_rte(char4);
3114long4 __ovld __cnfn convert_long4_sat_rte(char4);
3115long4 __ovld __cnfn convert_long4_rtz(char4);
3116long4 __ovld __cnfn convert_long4_sat_rtz(char4);
3117long4 __ovld __cnfn convert_long4_rtp(char4);
3118long4 __ovld __cnfn convert_long4_sat_rtp(char4);
3119long4 __ovld __cnfn convert_long4_rtn(char4);
3120long4 __ovld __cnfn convert_long4_sat_rtn(char4);
3121long4 __ovld __cnfn convert_long4(char4);
3122long4 __ovld __cnfn convert_long4_sat(char4);
3123long4 __ovld __cnfn convert_long4_rte(uchar4);
3124long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
3125long4 __ovld __cnfn convert_long4_rtz(uchar4);
3126long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
3127long4 __ovld __cnfn convert_long4_rtp(uchar4);
3128long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
3129long4 __ovld __cnfn convert_long4_rtn(uchar4);
3130long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
3131long4 __ovld __cnfn convert_long4(uchar4);
3132long4 __ovld __cnfn convert_long4_sat(uchar4);
3133long4 __ovld __cnfn convert_long4_rte(short4);
3134long4 __ovld __cnfn convert_long4_sat_rte(short4);
3135long4 __ovld __cnfn convert_long4_rtz(short4);
3136long4 __ovld __cnfn convert_long4_sat_rtz(short4);
3137long4 __ovld __cnfn convert_long4_rtp(short4);
3138long4 __ovld __cnfn convert_long4_sat_rtp(short4);
3139long4 __ovld __cnfn convert_long4_rtn(short4);
3140long4 __ovld __cnfn convert_long4_sat_rtn(short4);
3141long4 __ovld __cnfn convert_long4(short4);
3142long4 __ovld __cnfn convert_long4_sat(short4);
3143long4 __ovld __cnfn convert_long4_rte(ushort4);
3144long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
3145long4 __ovld __cnfn convert_long4_rtz(ushort4);
3146long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
3147long4 __ovld __cnfn convert_long4_rtp(ushort4);
3148long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
3149long4 __ovld __cnfn convert_long4_rtn(ushort4);
3150long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
3151long4 __ovld __cnfn convert_long4(ushort4);
3152long4 __ovld __cnfn convert_long4_sat(ushort4);
3153long4 __ovld __cnfn convert_long4_rte(int4);
3154long4 __ovld __cnfn convert_long4_sat_rte(int4);
3155long4 __ovld __cnfn convert_long4_rtz(int4);
3156long4 __ovld __cnfn convert_long4_sat_rtz(int4);
3157long4 __ovld __cnfn convert_long4_rtp(int4);
3158long4 __ovld __cnfn convert_long4_sat_rtp(int4);
3159long4 __ovld __cnfn convert_long4_rtn(int4);
3160long4 __ovld __cnfn convert_long4_sat_rtn(int4);
3161long4 __ovld __cnfn convert_long4(int4);
3162long4 __ovld __cnfn convert_long4_sat(int4);
3163long4 __ovld __cnfn convert_long4_rte(uint4);
3164long4 __ovld __cnfn convert_long4_sat_rte(uint4);
3165long4 __ovld __cnfn convert_long4_rtz(uint4);
3166long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
3167long4 __ovld __cnfn convert_long4_rtp(uint4);
3168long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
3169long4 __ovld __cnfn convert_long4_rtn(uint4);
3170long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
3171long4 __ovld __cnfn convert_long4(uint4);
3172long4 __ovld __cnfn convert_long4_sat(uint4);
3173long4 __ovld __cnfn convert_long4_rte(long4);
3174long4 __ovld __cnfn convert_long4_sat_rte(long4);
3175long4 __ovld __cnfn convert_long4_rtz(long4);
3176long4 __ovld __cnfn convert_long4_sat_rtz(long4);
3177long4 __ovld __cnfn convert_long4_rtp(long4);
3178long4 __ovld __cnfn convert_long4_sat_rtp(long4);
3179long4 __ovld __cnfn convert_long4_rtn(long4);
3180long4 __ovld __cnfn convert_long4_sat_rtn(long4);
3181long4 __ovld __cnfn convert_long4(long4);
3182long4 __ovld __cnfn convert_long4_sat(long4);
3183long4 __ovld __cnfn convert_long4_rte(ulong4);
3184long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
3185long4 __ovld __cnfn convert_long4_rtz(ulong4);
3186long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
3187long4 __ovld __cnfn convert_long4_rtp(ulong4);
3188long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
3189long4 __ovld __cnfn convert_long4_rtn(ulong4);
3190long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
3191long4 __ovld __cnfn convert_long4(ulong4);
3192long4 __ovld __cnfn convert_long4_sat(ulong4);
3193long4 __ovld __cnfn convert_long4_rte(float4);
3194long4 __ovld __cnfn convert_long4_sat_rte(float4);
3195long4 __ovld __cnfn convert_long4_rtz(float4);
3196long4 __ovld __cnfn convert_long4_sat_rtz(float4);
3197long4 __ovld __cnfn convert_long4_rtp(float4);
3198long4 __ovld __cnfn convert_long4_sat_rtp(float4);
3199long4 __ovld __cnfn convert_long4_rtn(float4);
3200long4 __ovld __cnfn convert_long4_sat_rtn(float4);
3201long4 __ovld __cnfn convert_long4(float4);
3202long4 __ovld __cnfn convert_long4_sat(float4);
3203ulong4 __ovld __cnfn convert_ulong4_rte(char4);
3204ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
3205ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
3206ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
3207ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
3208ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
3209ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
3210ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
3211ulong4 __ovld __cnfn convert_ulong4(char4);
3212ulong4 __ovld __cnfn convert_ulong4_sat(char4);
3213ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
3214ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
3215ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
3216ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
3217ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
3218ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
3219ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
3220ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
3221ulong4 __ovld __cnfn convert_ulong4(uchar4);
3222ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
3223ulong4 __ovld __cnfn convert_ulong4_rte(short4);
3224ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
3225ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
3226ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
3227ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
3228ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
3229ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
3230ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
3231ulong4 __ovld __cnfn convert_ulong4(short4);
3232ulong4 __ovld __cnfn convert_ulong4_sat(short4);
3233ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
3234ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3235ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3236ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3237ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3238ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3239ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3240ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3241ulong4 __ovld __cnfn convert_ulong4(ushort4);
3242ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3243ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3244ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3245ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3246ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3247ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3248ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3249ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3250ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3251ulong4 __ovld __cnfn convert_ulong4(int4);
3252ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3253ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3254ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3255ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3256ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3257ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3258ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3259ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3260ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3261ulong4 __ovld __cnfn convert_ulong4(uint4);
3262ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3263ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3264ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3265ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3266ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3267ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3268ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3269ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3270ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3271ulong4 __ovld __cnfn convert_ulong4(long4);
3272ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3273ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3274ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3275ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3276ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3277ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3278ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3279ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3280ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3281ulong4 __ovld __cnfn convert_ulong4(ulong4);
3282ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3283ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3284ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3285ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3286ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3287ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3288ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3289ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3290ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3291ulong4 __ovld __cnfn convert_ulong4(float4);
3292ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3293float4 __ovld __cnfn convert_float4_rte(char4);
3294float4 __ovld __cnfn convert_float4_rtz(char4);
3295float4 __ovld __cnfn convert_float4_rtp(char4);
3296float4 __ovld __cnfn convert_float4_rtn(char4);
3297float4 __ovld __cnfn convert_float4(char4);
3298float4 __ovld __cnfn convert_float4_rte(uchar4);
3299float4 __ovld __cnfn convert_float4_rtz(uchar4);
3300float4 __ovld __cnfn convert_float4_rtp(uchar4);
3301float4 __ovld __cnfn convert_float4_rtn(uchar4);
3302float4 __ovld __cnfn convert_float4(uchar4);
3303float4 __ovld __cnfn convert_float4_rte(short4);
3304float4 __ovld __cnfn convert_float4_rtz(short4);
3305float4 __ovld __cnfn convert_float4_rtp(short4);
3306float4 __ovld __cnfn convert_float4_rtn(short4);
3307float4 __ovld __cnfn convert_float4(short4);
3308float4 __ovld __cnfn convert_float4_rte(ushort4);
3309float4 __ovld __cnfn convert_float4_rtz(ushort4);
3310float4 __ovld __cnfn convert_float4_rtp(ushort4);
3311float4 __ovld __cnfn convert_float4_rtn(ushort4);
3312float4 __ovld __cnfn convert_float4(ushort4);
3313float4 __ovld __cnfn convert_float4_rte(int4);
3314float4 __ovld __cnfn convert_float4_rtz(int4);
3315float4 __ovld __cnfn convert_float4_rtp(int4);
3316float4 __ovld __cnfn convert_float4_rtn(int4);
3317float4 __ovld __cnfn convert_float4(int4);
3318float4 __ovld __cnfn convert_float4_rte(uint4);
3319float4 __ovld __cnfn convert_float4_rtz(uint4);
3320float4 __ovld __cnfn convert_float4_rtp(uint4);
3321float4 __ovld __cnfn convert_float4_rtn(uint4);
3322float4 __ovld __cnfn convert_float4(uint4);
3323float4 __ovld __cnfn convert_float4_rte(long4);
3324float4 __ovld __cnfn convert_float4_rtz(long4);
3325float4 __ovld __cnfn convert_float4_rtp(long4);
3326float4 __ovld __cnfn convert_float4_rtn(long4);
3327float4 __ovld __cnfn convert_float4(long4);
3328float4 __ovld __cnfn convert_float4_rte(ulong4);
3329float4 __ovld __cnfn convert_float4_rtz(ulong4);
3330float4 __ovld __cnfn convert_float4_rtp(ulong4);
3331float4 __ovld __cnfn convert_float4_rtn(ulong4);
3332float4 __ovld __cnfn convert_float4(ulong4);
3333float4 __ovld __cnfn convert_float4_rte(float4);
3334float4 __ovld __cnfn convert_float4_rtz(float4);
3335float4 __ovld __cnfn convert_float4_rtp(float4);
3336float4 __ovld __cnfn convert_float4_rtn(float4);
3337float4 __ovld __cnfn convert_float4(float4);
3338char8 __ovld __cnfn convert_char8_rte(char8);
3339char8 __ovld __cnfn convert_char8_sat_rte(char8);
3340char8 __ovld __cnfn convert_char8_rtz(char8);
3341char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3342char8 __ovld __cnfn convert_char8_rtp(char8);
3343char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3344char8 __ovld __cnfn convert_char8_rtn(char8);
3345char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3346char8 __ovld __cnfn convert_char8(char8);
3347char8 __ovld __cnfn convert_char8_sat(char8);
3348char8 __ovld __cnfn convert_char8_rte(uchar8);
3349char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3350char8 __ovld __cnfn convert_char8_rtz(uchar8);
3351char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3352char8 __ovld __cnfn convert_char8_rtp(uchar8);
3353char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3354char8 __ovld __cnfn convert_char8_rtn(uchar8);
3355char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3356char8 __ovld __cnfn convert_char8(uchar8);
3357char8 __ovld __cnfn convert_char8_sat(uchar8);
3358char8 __ovld __cnfn convert_char8_rte(short8);
3359char8 __ovld __cnfn convert_char8_sat_rte(short8);
3360char8 __ovld __cnfn convert_char8_rtz(short8);
3361char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3362char8 __ovld __cnfn convert_char8_rtp(short8);
3363char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3364char8 __ovld __cnfn convert_char8_rtn(short8);
3365char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3366char8 __ovld __cnfn convert_char8(short8);
3367char8 __ovld __cnfn convert_char8_sat(short8);
3368char8 __ovld __cnfn convert_char8_rte(ushort8);
3369char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3370char8 __ovld __cnfn convert_char8_rtz(ushort8);
3371char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3372char8 __ovld __cnfn convert_char8_rtp(ushort8);
3373char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3374char8 __ovld __cnfn convert_char8_rtn(ushort8);
3375char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3376char8 __ovld __cnfn convert_char8(ushort8);
3377char8 __ovld __cnfn convert_char8_sat(ushort8);
3378char8 __ovld __cnfn convert_char8_rte(int8);
3379char8 __ovld __cnfn convert_char8_sat_rte(int8);
3380char8 __ovld __cnfn convert_char8_rtz(int8);
3381char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3382char8 __ovld __cnfn convert_char8_rtp(int8);
3383char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3384char8 __ovld __cnfn convert_char8_rtn(int8);
3385char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3386char8 __ovld __cnfn convert_char8(int8);
3387char8 __ovld __cnfn convert_char8_sat(int8);
3388char8 __ovld __cnfn convert_char8_rte(uint8);
3389char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3390char8 __ovld __cnfn convert_char8_rtz(uint8);
3391char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3392char8 __ovld __cnfn convert_char8_rtp(uint8);
3393char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3394char8 __ovld __cnfn convert_char8_rtn(uint8);
3395char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3396char8 __ovld __cnfn convert_char8(uint8);
3397char8 __ovld __cnfn convert_char8_sat(uint8);
3398char8 __ovld __cnfn convert_char8_rte(long8);
3399char8 __ovld __cnfn convert_char8_sat_rte(long8);
3400char8 __ovld __cnfn convert_char8_rtz(long8);
3401char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3402char8 __ovld __cnfn convert_char8_rtp(long8);
3403char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3404char8 __ovld __cnfn convert_char8_rtn(long8);
3405char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3406char8 __ovld __cnfn convert_char8(long8);
3407char8 __ovld __cnfn convert_char8_sat(long8);
3408char8 __ovld __cnfn convert_char8_rte(ulong8);
3409char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3410char8 __ovld __cnfn convert_char8_rtz(ulong8);
3411char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3412char8 __ovld __cnfn convert_char8_rtp(ulong8);
3413char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3414char8 __ovld __cnfn convert_char8_rtn(ulong8);
3415char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3416char8 __ovld __cnfn convert_char8(ulong8);
3417char8 __ovld __cnfn convert_char8_sat(ulong8);
3418char8 __ovld __cnfn convert_char8_rte(float8);
3419char8 __ovld __cnfn convert_char8_sat_rte(float8);
3420char8 __ovld __cnfn convert_char8_rtz(float8);
3421char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3422char8 __ovld __cnfn convert_char8_rtp(float8);
3423char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3424char8 __ovld __cnfn convert_char8_rtn(float8);
3425char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3426char8 __ovld __cnfn convert_char8(float8);
3427char8 __ovld __cnfn convert_char8_sat(float8);
3428uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3429uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3430uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3431uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3432uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3433uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3434uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3435uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3436uchar8 __ovld __cnfn convert_uchar8(char8);
3437uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3438uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3439uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3440uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3441uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3442uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3443uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3444uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3445uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3446uchar8 __ovld __cnfn convert_uchar8(uchar8);
3447uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3448uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3449uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3450uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3451uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3452uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3453uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3454uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3455uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3456uchar8 __ovld __cnfn convert_uchar8(short8);
3457uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3458uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3459uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3460uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3461uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3462uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3463uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3464uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3465uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3466uchar8 __ovld __cnfn convert_uchar8(ushort8);
3467uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3468uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3469uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3470uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3471uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3472uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3473uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3474uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3475uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3476uchar8 __ovld __cnfn convert_uchar8(int8);
3477uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3478uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3479uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3480uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3481uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3482uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3483uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3484uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3485uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3486uchar8 __ovld __cnfn convert_uchar8(uint8);
3487uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3488uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3489uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3490uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3491uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3492uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3493uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3494uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3495uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3496uchar8 __ovld __cnfn convert_uchar8(long8);
3497uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3498uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3499uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3500uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3501uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3502uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3503uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3504uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3505uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3506uchar8 __ovld __cnfn convert_uchar8(ulong8);
3507uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3508uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3509uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3510uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3511uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3512uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3513uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3514uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3515uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3516uchar8 __ovld __cnfn convert_uchar8(float8);
3517uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3518short8 __ovld __cnfn convert_short8_rte(char8);
3519short8 __ovld __cnfn convert_short8_sat_rte(char8);
3520short8 __ovld __cnfn convert_short8_rtz(char8);
3521short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3522short8 __ovld __cnfn convert_short8_rtp(char8);
3523short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3524short8 __ovld __cnfn convert_short8_rtn(char8);
3525short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3526short8 __ovld __cnfn convert_short8(char8);
3527short8 __ovld __cnfn convert_short8_sat(char8);
3528short8 __ovld __cnfn convert_short8_rte(uchar8);
3529short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3530short8 __ovld __cnfn convert_short8_rtz(uchar8);
3531short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3532short8 __ovld __cnfn convert_short8_rtp(uchar8);
3533short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3534short8 __ovld __cnfn convert_short8_rtn(uchar8);
3535short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3536short8 __ovld __cnfn convert_short8(uchar8);
3537short8 __ovld __cnfn convert_short8_sat(uchar8);
3538short8 __ovld __cnfn convert_short8_rte(short8);
3539short8 __ovld __cnfn convert_short8_sat_rte(short8);
3540short8 __ovld __cnfn convert_short8_rtz(short8);
3541short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3542short8 __ovld __cnfn convert_short8_rtp(short8);
3543short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3544short8 __ovld __cnfn convert_short8_rtn(short8);
3545short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3546short8 __ovld __cnfn convert_short8(short8);
3547short8 __ovld __cnfn convert_short8_sat(short8);
3548short8 __ovld __cnfn convert_short8_rte(ushort8);
3549short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3550short8 __ovld __cnfn convert_short8_rtz(ushort8);
3551short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3552short8 __ovld __cnfn convert_short8_rtp(ushort8);
3553short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3554short8 __ovld __cnfn convert_short8_rtn(ushort8);
3555short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3556short8 __ovld __cnfn convert_short8(ushort8);
3557short8 __ovld __cnfn convert_short8_sat(ushort8);
3558short8 __ovld __cnfn convert_short8_rte(int8);
3559short8 __ovld __cnfn convert_short8_sat_rte(int8);
3560short8 __ovld __cnfn convert_short8_rtz(int8);
3561short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3562short8 __ovld __cnfn convert_short8_rtp(int8);
3563short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3564short8 __ovld __cnfn convert_short8_rtn(int8);
3565short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3566short8 __ovld __cnfn convert_short8(int8);
3567short8 __ovld __cnfn convert_short8_sat(int8);
3568short8 __ovld __cnfn convert_short8_rte(uint8);
3569short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3570short8 __ovld __cnfn convert_short8_rtz(uint8);
3571short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3572short8 __ovld __cnfn convert_short8_rtp(uint8);
3573short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3574short8 __ovld __cnfn convert_short8_rtn(uint8);
3575short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3576short8 __ovld __cnfn convert_short8(uint8);
3577short8 __ovld __cnfn convert_short8_sat(uint8);
3578short8 __ovld __cnfn convert_short8_rte(long8);
3579short8 __ovld __cnfn convert_short8_sat_rte(long8);
3580short8 __ovld __cnfn convert_short8_rtz(long8);
3581short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3582short8 __ovld __cnfn convert_short8_rtp(long8);
3583short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3584short8 __ovld __cnfn convert_short8_rtn(long8);
3585short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3586short8 __ovld __cnfn convert_short8(long8);
3587short8 __ovld __cnfn convert_short8_sat(long8);
3588short8 __ovld __cnfn convert_short8_rte(ulong8);
3589short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3590short8 __ovld __cnfn convert_short8_rtz(ulong8);
3591short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3592short8 __ovld __cnfn convert_short8_rtp(ulong8);
3593short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3594short8 __ovld __cnfn convert_short8_rtn(ulong8);
3595short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3596short8 __ovld __cnfn convert_short8(ulong8);
3597short8 __ovld __cnfn convert_short8_sat(ulong8);
3598short8 __ovld __cnfn convert_short8_rte(float8);
3599short8 __ovld __cnfn convert_short8_sat_rte(float8);
3600short8 __ovld __cnfn convert_short8_rtz(float8);
3601short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3602short8 __ovld __cnfn convert_short8_rtp(float8);
3603short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3604short8 __ovld __cnfn convert_short8_rtn(float8);
3605short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3606short8 __ovld __cnfn convert_short8(float8);
3607short8 __ovld __cnfn convert_short8_sat(float8);
3608ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3609ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3610ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3611ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3612ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3613ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3614ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3615ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3616ushort8 __ovld __cnfn convert_ushort8(char8);
3617ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3618ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3619ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3620ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3621ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3622ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3623ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3624ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3625ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3626ushort8 __ovld __cnfn convert_ushort8(uchar8);
3627ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3628ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3629ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3630ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3631ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3632ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3633ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3634ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3635ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3636ushort8 __ovld __cnfn convert_ushort8(short8);
3637ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3638ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3639ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3640ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3641ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3642ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3643ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3644ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3645ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3646ushort8 __ovld __cnfn convert_ushort8(ushort8);
3647ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3648ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3649ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3650ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3651ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3652ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3653ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3654ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3655ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3656ushort8 __ovld __cnfn convert_ushort8(int8);
3657ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3658ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3659ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3660ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3661ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3662ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3663ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3664ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3665ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3666ushort8 __ovld __cnfn convert_ushort8(uint8);
3667ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3668ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3669ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3670ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3671ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3672ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3673ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3674ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3675ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3676ushort8 __ovld __cnfn convert_ushort8(long8);
3677ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3678ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3679ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3680ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3681ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3682ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3683ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3684ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3685ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3686ushort8 __ovld __cnfn convert_ushort8(ulong8);
3687ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3688ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3689ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3690ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3691ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3692ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3693ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3694ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3695ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3696ushort8 __ovld __cnfn convert_ushort8(float8);
3697ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3698int8 __ovld __cnfn convert_int8_rte(char8);
3699int8 __ovld __cnfn convert_int8_sat_rte(char8);
3700int8 __ovld __cnfn convert_int8_rtz(char8);
3701int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3702int8 __ovld __cnfn convert_int8_rtp(char8);
3703int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3704int8 __ovld __cnfn convert_int8_rtn(char8);
3705int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3706int8 __ovld __cnfn convert_int8(char8);
3707int8 __ovld __cnfn convert_int8_sat(char8);
3708int8 __ovld __cnfn convert_int8_rte(uchar8);
3709int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3710int8 __ovld __cnfn convert_int8_rtz(uchar8);
3711int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3712int8 __ovld __cnfn convert_int8_rtp(uchar8);
3713int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3714int8 __ovld __cnfn convert_int8_rtn(uchar8);
3715int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3716int8 __ovld __cnfn convert_int8(uchar8);
3717int8 __ovld __cnfn convert_int8_sat(uchar8);
3718int8 __ovld __cnfn convert_int8_rte(short8);
3719int8 __ovld __cnfn convert_int8_sat_rte(short8);
3720int8 __ovld __cnfn convert_int8_rtz(short8);
3721int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3722int8 __ovld __cnfn convert_int8_rtp(short8);
3723int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3724int8 __ovld __cnfn convert_int8_rtn(short8);
3725int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3726int8 __ovld __cnfn convert_int8(short8);
3727int8 __ovld __cnfn convert_int8_sat(short8);
3728int8 __ovld __cnfn convert_int8_rte(ushort8);
3729int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3730int8 __ovld __cnfn convert_int8_rtz(ushort8);
3731int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3732int8 __ovld __cnfn convert_int8_rtp(ushort8);
3733int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3734int8 __ovld __cnfn convert_int8_rtn(ushort8);
3735int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3736int8 __ovld __cnfn convert_int8(ushort8);
3737int8 __ovld __cnfn convert_int8_sat(ushort8);
3738int8 __ovld __cnfn convert_int8_rte(int8);
3739int8 __ovld __cnfn convert_int8_sat_rte(int8);
3740int8 __ovld __cnfn convert_int8_rtz(int8);
3741int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3742int8 __ovld __cnfn convert_int8_rtp(int8);
3743int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3744int8 __ovld __cnfn convert_int8_rtn(int8);
3745int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3746int8 __ovld __cnfn convert_int8(int8);
3747int8 __ovld __cnfn convert_int8_sat(int8);
3748int8 __ovld __cnfn convert_int8_rte(uint8);
3749int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3750int8 __ovld __cnfn convert_int8_rtz(uint8);
3751int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3752int8 __ovld __cnfn convert_int8_rtp(uint8);
3753int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3754int8 __ovld __cnfn convert_int8_rtn(uint8);
3755int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3756int8 __ovld __cnfn convert_int8(uint8);
3757int8 __ovld __cnfn convert_int8_sat(uint8);
3758int8 __ovld __cnfn convert_int8_rte(long8);
3759int8 __ovld __cnfn convert_int8_sat_rte(long8);
3760int8 __ovld __cnfn convert_int8_rtz(long8);
3761int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3762int8 __ovld __cnfn convert_int8_rtp(long8);
3763int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3764int8 __ovld __cnfn convert_int8_rtn(long8);
3765int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3766int8 __ovld __cnfn convert_int8(long8);
3767int8 __ovld __cnfn convert_int8_sat(long8);
3768int8 __ovld __cnfn convert_int8_rte(ulong8);
3769int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3770int8 __ovld __cnfn convert_int8_rtz(ulong8);
3771int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3772int8 __ovld __cnfn convert_int8_rtp(ulong8);
3773int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3774int8 __ovld __cnfn convert_int8_rtn(ulong8);
3775int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3776int8 __ovld __cnfn convert_int8(ulong8);
3777int8 __ovld __cnfn convert_int8_sat(ulong8);
3778int8 __ovld __cnfn convert_int8_rte(float8);
3779int8 __ovld __cnfn convert_int8_sat_rte(float8);
3780int8 __ovld __cnfn convert_int8_rtz(float8);
3781int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3782int8 __ovld __cnfn convert_int8_rtp(float8);
3783int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3784int8 __ovld __cnfn convert_int8_rtn(float8);
3785int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3786int8 __ovld __cnfn convert_int8(float8);
3787int8 __ovld __cnfn convert_int8_sat(float8);
3788uint8 __ovld __cnfn convert_uint8_rte(char8);
3789uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3790uint8 __ovld __cnfn convert_uint8_rtz(char8);
3791uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3792uint8 __ovld __cnfn convert_uint8_rtp(char8);
3793uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3794uint8 __ovld __cnfn convert_uint8_rtn(char8);
3795uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3796uint8 __ovld __cnfn convert_uint8(char8);
3797uint8 __ovld __cnfn convert_uint8_sat(char8);
3798uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3799uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3800uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3801uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3802uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3803uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3804uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3805uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3806uint8 __ovld __cnfn convert_uint8(uchar8);
3807uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3808uint8 __ovld __cnfn convert_uint8_rte(short8);
3809uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3810uint8 __ovld __cnfn convert_uint8_rtz(short8);
3811uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3812uint8 __ovld __cnfn convert_uint8_rtp(short8);
3813uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3814uint8 __ovld __cnfn convert_uint8_rtn(short8);
3815uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3816uint8 __ovld __cnfn convert_uint8(short8);
3817uint8 __ovld __cnfn convert_uint8_sat(short8);
3818uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3819uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3820uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3821uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3822uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3823uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3824uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3825uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3826uint8 __ovld __cnfn convert_uint8(ushort8);
3827uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3828uint8 __ovld __cnfn convert_uint8_rte(int8);
3829uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3830uint8 __ovld __cnfn convert_uint8_rtz(int8);
3831uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3832uint8 __ovld __cnfn convert_uint8_rtp(int8);
3833uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3834uint8 __ovld __cnfn convert_uint8_rtn(int8);
3835uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3836uint8 __ovld __cnfn convert_uint8(int8);
3837uint8 __ovld __cnfn convert_uint8_sat(int8);
3838uint8 __ovld __cnfn convert_uint8_rte(uint8);
3839uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3840uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3841uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3842uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3843uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3844uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3845uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3846uint8 __ovld __cnfn convert_uint8(uint8);
3847uint8 __ovld __cnfn convert_uint8_sat(uint8);
3848uint8 __ovld __cnfn convert_uint8_rte(long8);
3849uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3850uint8 __ovld __cnfn convert_uint8_rtz(long8);
3851uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3852uint8 __ovld __cnfn convert_uint8_rtp(long8);
3853uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3854uint8 __ovld __cnfn convert_uint8_rtn(long8);
3855uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3856uint8 __ovld __cnfn convert_uint8(long8);
3857uint8 __ovld __cnfn convert_uint8_sat(long8);
3858uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3859uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3860uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3861uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3862uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3863uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3864uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3865uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3866uint8 __ovld __cnfn convert_uint8(ulong8);
3867uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3868uint8 __ovld __cnfn convert_uint8_rte(float8);
3869uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3870uint8 __ovld __cnfn convert_uint8_rtz(float8);
3871uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3872uint8 __ovld __cnfn convert_uint8_rtp(float8);
3873uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3874uint8 __ovld __cnfn convert_uint8_rtn(float8);
3875uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3876uint8 __ovld __cnfn convert_uint8(float8);
3877uint8 __ovld __cnfn convert_uint8_sat(float8);
3878long8 __ovld __cnfn convert_long8_rte(char8);
3879long8 __ovld __cnfn convert_long8_sat_rte(char8);
3880long8 __ovld __cnfn convert_long8_rtz(char8);
3881long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3882long8 __ovld __cnfn convert_long8_rtp(char8);
3883long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3884long8 __ovld __cnfn convert_long8_rtn(char8);
3885long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3886long8 __ovld __cnfn convert_long8(char8);
3887long8 __ovld __cnfn convert_long8_sat(char8);
3888long8 __ovld __cnfn convert_long8_rte(uchar8);
3889long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3890long8 __ovld __cnfn convert_long8_rtz(uchar8);
3891long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3892long8 __ovld __cnfn convert_long8_rtp(uchar8);
3893long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3894long8 __ovld __cnfn convert_long8_rtn(uchar8);
3895long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3896long8 __ovld __cnfn convert_long8(uchar8);
3897long8 __ovld __cnfn convert_long8_sat(uchar8);
3898long8 __ovld __cnfn convert_long8_rte(short8);
3899long8 __ovld __cnfn convert_long8_sat_rte(short8);
3900long8 __ovld __cnfn convert_long8_rtz(short8);
3901long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3902long8 __ovld __cnfn convert_long8_rtp(short8);
3903long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3904long8 __ovld __cnfn convert_long8_rtn(short8);
3905long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3906long8 __ovld __cnfn convert_long8(short8);
3907long8 __ovld __cnfn convert_long8_sat(short8);
3908long8 __ovld __cnfn convert_long8_rte(ushort8);
3909long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3910long8 __ovld __cnfn convert_long8_rtz(ushort8);
3911long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3912long8 __ovld __cnfn convert_long8_rtp(ushort8);
3913long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3914long8 __ovld __cnfn convert_long8_rtn(ushort8);
3915long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3916long8 __ovld __cnfn convert_long8(ushort8);
3917long8 __ovld __cnfn convert_long8_sat(ushort8);
3918long8 __ovld __cnfn convert_long8_rte(int8);
3919long8 __ovld __cnfn convert_long8_sat_rte(int8);
3920long8 __ovld __cnfn convert_long8_rtz(int8);
3921long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3922long8 __ovld __cnfn convert_long8_rtp(int8);
3923long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3924long8 __ovld __cnfn convert_long8_rtn(int8);
3925long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3926long8 __ovld __cnfn convert_long8(int8);
3927long8 __ovld __cnfn convert_long8_sat(int8);
3928long8 __ovld __cnfn convert_long8_rte(uint8);
3929long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3930long8 __ovld __cnfn convert_long8_rtz(uint8);
3931long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3932long8 __ovld __cnfn convert_long8_rtp(uint8);
3933long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3934long8 __ovld __cnfn convert_long8_rtn(uint8);
3935long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3936long8 __ovld __cnfn convert_long8(uint8);
3937long8 __ovld __cnfn convert_long8_sat(uint8);
3938long8 __ovld __cnfn convert_long8_rte(long8);
3939long8 __ovld __cnfn convert_long8_sat_rte(long8);
3940long8 __ovld __cnfn convert_long8_rtz(long8);
3941long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3942long8 __ovld __cnfn convert_long8_rtp(long8);
3943long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3944long8 __ovld __cnfn convert_long8_rtn(long8);
3945long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3946long8 __ovld __cnfn convert_long8(long8);
3947long8 __ovld __cnfn convert_long8_sat(long8);
3948long8 __ovld __cnfn convert_long8_rte(ulong8);
3949long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3950long8 __ovld __cnfn convert_long8_rtz(ulong8);
3951long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3952long8 __ovld __cnfn convert_long8_rtp(ulong8);
3953long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3954long8 __ovld __cnfn convert_long8_rtn(ulong8);
3955long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3956long8 __ovld __cnfn convert_long8(ulong8);
3957long8 __ovld __cnfn convert_long8_sat(ulong8);
3958long8 __ovld __cnfn convert_long8_rte(float8);
3959long8 __ovld __cnfn convert_long8_sat_rte(float8);
3960long8 __ovld __cnfn convert_long8_rtz(float8);
3961long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3962long8 __ovld __cnfn convert_long8_rtp(float8);
3963long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3964long8 __ovld __cnfn convert_long8_rtn(float8);
3965long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3966long8 __ovld __cnfn convert_long8(float8);
3967long8 __ovld __cnfn convert_long8_sat(float8);
3968ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3969ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3970ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3971ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3972ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3973ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3974ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3975ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3976ulong8 __ovld __cnfn convert_ulong8(char8);
3977ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3978ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3979ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3980ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3981ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3982ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3983ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3984ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
3985ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
3986ulong8 __ovld __cnfn convert_ulong8(uchar8);
3987ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
3988ulong8 __ovld __cnfn convert_ulong8_rte(short8);
3989ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
3990ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
3991ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
3992ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
3993ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
3994ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
3995ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
3996ulong8 __ovld __cnfn convert_ulong8(short8);
3997ulong8 __ovld __cnfn convert_ulong8_sat(short8);
3998ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
3999ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
4000ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
4001ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
4002ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
4003ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
4004ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
4005ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
4006ulong8 __ovld __cnfn convert_ulong8(ushort8);
4007ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
4008ulong8 __ovld __cnfn convert_ulong8_rte(int8);
4009ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
4010ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
4011ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
4012ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
4013ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
4014ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
4015ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
4016ulong8 __ovld __cnfn convert_ulong8(int8);
4017ulong8 __ovld __cnfn convert_ulong8_sat(int8);
4018ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
4019ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
4020ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
4021ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
4022ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
4023ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
4024ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
4025ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
4026ulong8 __ovld __cnfn convert_ulong8(uint8);
4027ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
4028ulong8 __ovld __cnfn convert_ulong8_rte(long8);
4029ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
4030ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
4031ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
4032ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
4033ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
4034ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
4035ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
4036ulong8 __ovld __cnfn convert_ulong8(long8);
4037ulong8 __ovld __cnfn convert_ulong8_sat(long8);
4038ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
4039ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
4040ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
4041ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
4042ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
4043ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
4044ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
4045ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
4046ulong8 __ovld __cnfn convert_ulong8(ulong8);
4047ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
4048ulong8 __ovld __cnfn convert_ulong8_rte(float8);
4049ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
4050ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
4051ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
4052ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
4053ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
4054ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
4055ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
4056ulong8 __ovld __cnfn convert_ulong8(float8);
4057ulong8 __ovld __cnfn convert_ulong8_sat(float8);
4058float8 __ovld __cnfn convert_float8_rte(char8);
4059float8 __ovld __cnfn convert_float8_rtz(char8);
4060float8 __ovld __cnfn convert_float8_rtp(char8);
4061float8 __ovld __cnfn convert_float8_rtn(char8);
4062float8 __ovld __cnfn convert_float8(char8);
4063float8 __ovld __cnfn convert_float8_rte(uchar8);
4064float8 __ovld __cnfn convert_float8_rtz(uchar8);
4065float8 __ovld __cnfn convert_float8_rtp(uchar8);
4066float8 __ovld __cnfn convert_float8_rtn(uchar8);
4067float8 __ovld __cnfn convert_float8(uchar8);
4068float8 __ovld __cnfn convert_float8_rte(short8);
4069float8 __ovld __cnfn convert_float8_rtz(short8);
4070float8 __ovld __cnfn convert_float8_rtp(short8);
4071float8 __ovld __cnfn convert_float8_rtn(short8);
4072float8 __ovld __cnfn convert_float8(short8);
4073float8 __ovld __cnfn convert_float8_rte(ushort8);
4074float8 __ovld __cnfn convert_float8_rtz(ushort8);
4075float8 __ovld __cnfn convert_float8_rtp(ushort8);
4076float8 __ovld __cnfn convert_float8_rtn(ushort8);
4077float8 __ovld __cnfn convert_float8(ushort8);
4078float8 __ovld __cnfn convert_float8_rte(int8);
4079float8 __ovld __cnfn convert_float8_rtz(int8);
4080float8 __ovld __cnfn convert_float8_rtp(int8);
4081float8 __ovld __cnfn convert_float8_rtn(int8);
4082float8 __ovld __cnfn convert_float8(int8);
4083float8 __ovld __cnfn convert_float8_rte(uint8);
4084float8 __ovld __cnfn convert_float8_rtz(uint8);
4085float8 __ovld __cnfn convert_float8_rtp(uint8);
4086float8 __ovld __cnfn convert_float8_rtn(uint8);
4087float8 __ovld __cnfn convert_float8(uint8);
4088float8 __ovld __cnfn convert_float8_rte(long8);
4089float8 __ovld __cnfn convert_float8_rtz(long8);
4090float8 __ovld __cnfn convert_float8_rtp(long8);
4091float8 __ovld __cnfn convert_float8_rtn(long8);
4092float8 __ovld __cnfn convert_float8(long8);
4093float8 __ovld __cnfn convert_float8_rte(ulong8);
4094float8 __ovld __cnfn convert_float8_rtz(ulong8);
4095float8 __ovld __cnfn convert_float8_rtp(ulong8);
4096float8 __ovld __cnfn convert_float8_rtn(ulong8);
4097float8 __ovld __cnfn convert_float8(ulong8);
4098float8 __ovld __cnfn convert_float8_rte(float8);
4099float8 __ovld __cnfn convert_float8_rtz(float8);
4100float8 __ovld __cnfn convert_float8_rtp(float8);
4101float8 __ovld __cnfn convert_float8_rtn(float8);
4102float8 __ovld __cnfn convert_float8(float8);
4103char16 __ovld __cnfn convert_char16_rte(char16);
4104char16 __ovld __cnfn convert_char16_sat_rte(char16);
4105char16 __ovld __cnfn convert_char16_rtz(char16);
4106char16 __ovld __cnfn convert_char16_sat_rtz(char16);
4107char16 __ovld __cnfn convert_char16_rtp(char16);
4108char16 __ovld __cnfn convert_char16_sat_rtp(char16);
4109char16 __ovld __cnfn convert_char16_rtn(char16);
4110char16 __ovld __cnfn convert_char16_sat_rtn(char16);
4111char16 __ovld __cnfn convert_char16(char16);
4112char16 __ovld __cnfn convert_char16_sat(char16);
4113char16 __ovld __cnfn convert_char16_rte(uchar16);
4114char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
4115char16 __ovld __cnfn convert_char16_rtz(uchar16);
4116char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
4117char16 __ovld __cnfn convert_char16_rtp(uchar16);
4118char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
4119char16 __ovld __cnfn convert_char16_rtn(uchar16);
4120char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
4121char16 __ovld __cnfn convert_char16(uchar16);
4122char16 __ovld __cnfn convert_char16_sat(uchar16);
4123char16 __ovld __cnfn convert_char16_rte(short16);
4124char16 __ovld __cnfn convert_char16_sat_rte(short16);
4125char16 __ovld __cnfn convert_char16_rtz(short16);
4126char16 __ovld __cnfn convert_char16_sat_rtz(short16);
4127char16 __ovld __cnfn convert_char16_rtp(short16);
4128char16 __ovld __cnfn convert_char16_sat_rtp(short16);
4129char16 __ovld __cnfn convert_char16_rtn(short16);
4130char16 __ovld __cnfn convert_char16_sat_rtn(short16);
4131char16 __ovld __cnfn convert_char16(short16);
4132char16 __ovld __cnfn convert_char16_sat(short16);
4133char16 __ovld __cnfn convert_char16_rte(ushort16);
4134char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
4135char16 __ovld __cnfn convert_char16_rtz(ushort16);
4136char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
4137char16 __ovld __cnfn convert_char16_rtp(ushort16);
4138char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
4139char16 __ovld __cnfn convert_char16_rtn(ushort16);
4140char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
4141char16 __ovld __cnfn convert_char16(ushort16);
4142char16 __ovld __cnfn convert_char16_sat(ushort16);
4143char16 __ovld __cnfn convert_char16_rte(int16);
4144char16 __ovld __cnfn convert_char16_sat_rte(int16);
4145char16 __ovld __cnfn convert_char16_rtz(int16);
4146char16 __ovld __cnfn convert_char16_sat_rtz(int16);
4147char16 __ovld __cnfn convert_char16_rtp(int16);
4148char16 __ovld __cnfn convert_char16_sat_rtp(int16);
4149char16 __ovld __cnfn convert_char16_rtn(int16);
4150char16 __ovld __cnfn convert_char16_sat_rtn(int16);
4151char16 __ovld __cnfn convert_char16(int16);
4152char16 __ovld __cnfn convert_char16_sat(int16);
4153char16 __ovld __cnfn convert_char16_rte(uint16);
4154char16 __ovld __cnfn convert_char16_sat_rte(uint16);
4155char16 __ovld __cnfn convert_char16_rtz(uint16);
4156char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
4157char16 __ovld __cnfn convert_char16_rtp(uint16);
4158char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
4159char16 __ovld __cnfn convert_char16_rtn(uint16);
4160char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
4161char16 __ovld __cnfn convert_char16(uint16);
4162char16 __ovld __cnfn convert_char16_sat(uint16);
4163char16 __ovld __cnfn convert_char16_rte(long16);
4164char16 __ovld __cnfn convert_char16_sat_rte(long16);
4165char16 __ovld __cnfn convert_char16_rtz(long16);
4166char16 __ovld __cnfn convert_char16_sat_rtz(long16);
4167char16 __ovld __cnfn convert_char16_rtp(long16);
4168char16 __ovld __cnfn convert_char16_sat_rtp(long16);
4169char16 __ovld __cnfn convert_char16_rtn(long16);
4170char16 __ovld __cnfn convert_char16_sat_rtn(long16);
4171char16 __ovld __cnfn convert_char16(long16);
4172char16 __ovld __cnfn convert_char16_sat(long16);
4173char16 __ovld __cnfn convert_char16_rte(ulong16);
4174char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
4175char16 __ovld __cnfn convert_char16_rtz(ulong16);
4176char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
4177char16 __ovld __cnfn convert_char16_rtp(ulong16);
4178char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
4179char16 __ovld __cnfn convert_char16_rtn(ulong16);
4180char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
4181char16 __ovld __cnfn convert_char16(ulong16);
4182char16 __ovld __cnfn convert_char16_sat(ulong16);
4183char16 __ovld __cnfn convert_char16_rte(float16);
4184char16 __ovld __cnfn convert_char16_sat_rte(float16);
4185char16 __ovld __cnfn convert_char16_rtz(float16);
4186char16 __ovld __cnfn convert_char16_sat_rtz(float16);
4187char16 __ovld __cnfn convert_char16_rtp(float16);
4188char16 __ovld __cnfn convert_char16_sat_rtp(float16);
4189char16 __ovld __cnfn convert_char16_rtn(float16);
4190char16 __ovld __cnfn convert_char16_sat_rtn(float16);
4191char16 __ovld __cnfn convert_char16(float16);
4192char16 __ovld __cnfn convert_char16_sat(float16);
4193uchar16 __ovld __cnfn convert_uchar16_rte(char16);
4194uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
4195uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
4196uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
4197uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
4198uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
4199uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
4200uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
4201uchar16 __ovld __cnfn convert_uchar16(char16);
4202uchar16 __ovld __cnfn convert_uchar16_sat(char16);
4203uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
4204uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
4205uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
4206uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
4207uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
4208uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
4209uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
4210uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
4211uchar16 __ovld __cnfn convert_uchar16(uchar16);
4212uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
4213uchar16 __ovld __cnfn convert_uchar16_rte(short16);
4214uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
4215uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
4216uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
4217uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
4218uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
4219uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
4220uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
4221uchar16 __ovld __cnfn convert_uchar16(short16);
4222uchar16 __ovld __cnfn convert_uchar16_sat(short16);
4223uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
4224uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
4225uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
4226uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
4227uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
4228uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
4229uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
4230uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
4231uchar16 __ovld __cnfn convert_uchar16(ushort16);
4232uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
4233uchar16 __ovld __cnfn convert_uchar16_rte(int16);
4234uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4235uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4236uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4237uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4238uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4239uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4240uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4241uchar16 __ovld __cnfn convert_uchar16(int16);
4242uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4243uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4244uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4245uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4246uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4247uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4248uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4249uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4250uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4251uchar16 __ovld __cnfn convert_uchar16(uint16);
4252uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4253uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4254uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4255uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4256uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4257uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4258uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4259uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4260uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4261uchar16 __ovld __cnfn convert_uchar16(long16);
4262uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4263uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4264uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4265uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4266uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4267uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4268uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4269uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4270uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4271uchar16 __ovld __cnfn convert_uchar16(ulong16);
4272uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4273uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4274uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4275uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4276uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4277uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4278uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4279uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4280uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4281uchar16 __ovld __cnfn convert_uchar16(float16);
4282uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4283short16 __ovld __cnfn convert_short16_rte(char16);
4284short16 __ovld __cnfn convert_short16_sat_rte(char16);
4285short16 __ovld __cnfn convert_short16_rtz(char16);
4286short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4287short16 __ovld __cnfn convert_short16_rtp(char16);
4288short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4289short16 __ovld __cnfn convert_short16_rtn(char16);
4290short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4291short16 __ovld __cnfn convert_short16(char16);
4292short16 __ovld __cnfn convert_short16_sat(char16);
4293short16 __ovld __cnfn convert_short16_rte(uchar16);
4294short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4295short16 __ovld __cnfn convert_short16_rtz(uchar16);
4296short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4297short16 __ovld __cnfn convert_short16_rtp(uchar16);
4298short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4299short16 __ovld __cnfn convert_short16_rtn(uchar16);
4300short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4301short16 __ovld __cnfn convert_short16(uchar16);
4302short16 __ovld __cnfn convert_short16_sat(uchar16);
4303short16 __ovld __cnfn convert_short16_rte(short16);
4304short16 __ovld __cnfn convert_short16_sat_rte(short16);
4305short16 __ovld __cnfn convert_short16_rtz(short16);
4306short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4307short16 __ovld __cnfn convert_short16_rtp(short16);
4308short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4309short16 __ovld __cnfn convert_short16_rtn(short16);
4310short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4311short16 __ovld __cnfn convert_short16(short16);
4312short16 __ovld __cnfn convert_short16_sat(short16);
4313short16 __ovld __cnfn convert_short16_rte(ushort16);
4314short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4315short16 __ovld __cnfn convert_short16_rtz(ushort16);
4316short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4317short16 __ovld __cnfn convert_short16_rtp(ushort16);
4318short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4319short16 __ovld __cnfn convert_short16_rtn(ushort16);
4320short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4321short16 __ovld __cnfn convert_short16(ushort16);
4322short16 __ovld __cnfn convert_short16_sat(ushort16);
4323short16 __ovld __cnfn convert_short16_rte(int16);
4324short16 __ovld __cnfn convert_short16_sat_rte(int16);
4325short16 __ovld __cnfn convert_short16_rtz(int16);
4326short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4327short16 __ovld __cnfn convert_short16_rtp(int16);
4328short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4329short16 __ovld __cnfn convert_short16_rtn(int16);
4330short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4331short16 __ovld __cnfn convert_short16(int16);
4332short16 __ovld __cnfn convert_short16_sat(int16);
4333short16 __ovld __cnfn convert_short16_rte(uint16);
4334short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4335short16 __ovld __cnfn convert_short16_rtz(uint16);
4336short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4337short16 __ovld __cnfn convert_short16_rtp(uint16);
4338short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4339short16 __ovld __cnfn convert_short16_rtn(uint16);
4340short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4341short16 __ovld __cnfn convert_short16(uint16);
4342short16 __ovld __cnfn convert_short16_sat(uint16);
4343short16 __ovld __cnfn convert_short16_rte(long16);
4344short16 __ovld __cnfn convert_short16_sat_rte(long16);
4345short16 __ovld __cnfn convert_short16_rtz(long16);
4346short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4347short16 __ovld __cnfn convert_short16_rtp(long16);
4348short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4349short16 __ovld __cnfn convert_short16_rtn(long16);
4350short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4351short16 __ovld __cnfn convert_short16(long16);
4352short16 __ovld __cnfn convert_short16_sat(long16);
4353short16 __ovld __cnfn convert_short16_rte(ulong16);
4354short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4355short16 __ovld __cnfn convert_short16_rtz(ulong16);
4356short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4357short16 __ovld __cnfn convert_short16_rtp(ulong16);
4358short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4359short16 __ovld __cnfn convert_short16_rtn(ulong16);
4360short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4361short16 __ovld __cnfn convert_short16(ulong16);
4362short16 __ovld __cnfn convert_short16_sat(ulong16);
4363short16 __ovld __cnfn convert_short16_rte(float16);
4364short16 __ovld __cnfn convert_short16_sat_rte(float16);
4365short16 __ovld __cnfn convert_short16_rtz(float16);
4366short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4367short16 __ovld __cnfn convert_short16_rtp(float16);
4368short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4369short16 __ovld __cnfn convert_short16_rtn(float16);
4370short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4371short16 __ovld __cnfn convert_short16(float16);
4372short16 __ovld __cnfn convert_short16_sat(float16);
4373ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4374ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4375ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4376ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4377ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4378ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4379ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4380ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4381ushort16 __ovld __cnfn convert_ushort16(char16);
4382ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4383ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4384ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4385ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4386ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4387ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4388ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4389ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4390ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4391ushort16 __ovld __cnfn convert_ushort16(uchar16);
4392ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4393ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4394ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4395ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4396ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4397ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4398ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4399ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4400ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4401ushort16 __ovld __cnfn convert_ushort16(short16);
4402ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4403ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4404ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4405ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4406ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4407ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4408ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4409ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4410ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4411ushort16 __ovld __cnfn convert_ushort16(ushort16);
4412ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4413ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4414ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4415ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4416ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4417ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4418ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4419ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4420ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4421ushort16 __ovld __cnfn convert_ushort16(int16);
4422ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4423ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4424ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4425ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4426ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4427ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4428ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4429ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4430ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4431ushort16 __ovld __cnfn convert_ushort16(uint16);
4432ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4433ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4434ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4435ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4436ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4437ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4438ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4439ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4440ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4441ushort16 __ovld __cnfn convert_ushort16(long16);
4442ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4443ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4444ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4445ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4446ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4447ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4448ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4449ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4450ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4451ushort16 __ovld __cnfn convert_ushort16(ulong16);
4452ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4453ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4454ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4455ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4456ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4457ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4458ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4459ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4460ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4461ushort16 __ovld __cnfn convert_ushort16(float16);
4462ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4463int16 __ovld __cnfn convert_int16_rte(char16);
4464int16 __ovld __cnfn convert_int16_sat_rte(char16);
4465int16 __ovld __cnfn convert_int16_rtz(char16);
4466int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4467int16 __ovld __cnfn convert_int16_rtp(char16);
4468int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4469int16 __ovld __cnfn convert_int16_rtn(char16);
4470int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4471int16 __ovld __cnfn convert_int16(char16);
4472int16 __ovld __cnfn convert_int16_sat(char16);
4473int16 __ovld __cnfn convert_int16_rte(uchar16);
4474int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4475int16 __ovld __cnfn convert_int16_rtz(uchar16);
4476int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4477int16 __ovld __cnfn convert_int16_rtp(uchar16);
4478int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4479int16 __ovld __cnfn convert_int16_rtn(uchar16);
4480int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4481int16 __ovld __cnfn convert_int16(uchar16);
4482int16 __ovld __cnfn convert_int16_sat(uchar16);
4483int16 __ovld __cnfn convert_int16_rte(short16);
4484int16 __ovld __cnfn convert_int16_sat_rte(short16);
4485int16 __ovld __cnfn convert_int16_rtz(short16);
4486int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4487int16 __ovld __cnfn convert_int16_rtp(short16);
4488int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4489int16 __ovld __cnfn convert_int16_rtn(short16);
4490int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4491int16 __ovld __cnfn convert_int16(short16);
4492int16 __ovld __cnfn convert_int16_sat(short16);
4493int16 __ovld __cnfn convert_int16_rte(ushort16);
4494int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4495int16 __ovld __cnfn convert_int16_rtz(ushort16);
4496int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4497int16 __ovld __cnfn convert_int16_rtp(ushort16);
4498int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4499int16 __ovld __cnfn convert_int16_rtn(ushort16);
4500int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4501int16 __ovld __cnfn convert_int16(ushort16);
4502int16 __ovld __cnfn convert_int16_sat(ushort16);
4503int16 __ovld __cnfn convert_int16_rte(int16);
4504int16 __ovld __cnfn convert_int16_sat_rte(int16);
4505int16 __ovld __cnfn convert_int16_rtz(int16);
4506int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4507int16 __ovld __cnfn convert_int16_rtp(int16);
4508int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4509int16 __ovld __cnfn convert_int16_rtn(int16);
4510int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4511int16 __ovld __cnfn convert_int16(int16);
4512int16 __ovld __cnfn convert_int16_sat(int16);
4513int16 __ovld __cnfn convert_int16_rte(uint16);
4514int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4515int16 __ovld __cnfn convert_int16_rtz(uint16);
4516int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4517int16 __ovld __cnfn convert_int16_rtp(uint16);
4518int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4519int16 __ovld __cnfn convert_int16_rtn(uint16);
4520int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4521int16 __ovld __cnfn convert_int16(uint16);
4522int16 __ovld __cnfn convert_int16_sat(uint16);
4523int16 __ovld __cnfn convert_int16_rte(long16);
4524int16 __ovld __cnfn convert_int16_sat_rte(long16);
4525int16 __ovld __cnfn convert_int16_rtz(long16);
4526int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4527int16 __ovld __cnfn convert_int16_rtp(long16);
4528int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4529int16 __ovld __cnfn convert_int16_rtn(long16);
4530int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4531int16 __ovld __cnfn convert_int16(long16);
4532int16 __ovld __cnfn convert_int16_sat(long16);
4533int16 __ovld __cnfn convert_int16_rte(ulong16);
4534int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4535int16 __ovld __cnfn convert_int16_rtz(ulong16);
4536int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4537int16 __ovld __cnfn convert_int16_rtp(ulong16);
4538int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4539int16 __ovld __cnfn convert_int16_rtn(ulong16);
4540int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4541int16 __ovld __cnfn convert_int16(ulong16);
4542int16 __ovld __cnfn convert_int16_sat(ulong16);
4543int16 __ovld __cnfn convert_int16_rte(float16);
4544int16 __ovld __cnfn convert_int16_sat_rte(float16);
4545int16 __ovld __cnfn convert_int16_rtz(float16);
4546int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4547int16 __ovld __cnfn convert_int16_rtp(float16);
4548int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4549int16 __ovld __cnfn convert_int16_rtn(float16);
4550int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4551int16 __ovld __cnfn convert_int16(float16);
4552int16 __ovld __cnfn convert_int16_sat(float16);
4553uint16 __ovld __cnfn convert_uint16_rte(char16);
4554uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4555uint16 __ovld __cnfn convert_uint16_rtz(char16);
4556uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4557uint16 __ovld __cnfn convert_uint16_rtp(char16);
4558uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4559uint16 __ovld __cnfn convert_uint16_rtn(char16);
4560uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4561uint16 __ovld __cnfn convert_uint16(char16);
4562uint16 __ovld __cnfn convert_uint16_sat(char16);
4563uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4564uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4565uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4566uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4567uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4568uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4569uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4570uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4571uint16 __ovld __cnfn convert_uint16(uchar16);
4572uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4573uint16 __ovld __cnfn convert_uint16_rte(short16);
4574uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4575uint16 __ovld __cnfn convert_uint16_rtz(short16);
4576uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4577uint16 __ovld __cnfn convert_uint16_rtp(short16);
4578uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4579uint16 __ovld __cnfn convert_uint16_rtn(short16);
4580uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4581uint16 __ovld __cnfn convert_uint16(short16);
4582uint16 __ovld __cnfn convert_uint16_sat(short16);
4583uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4584uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4585uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4586uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4587uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4588uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4589uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4590uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4591uint16 __ovld __cnfn convert_uint16(ushort16);
4592uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4593uint16 __ovld __cnfn convert_uint16_rte(int16);
4594uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4595uint16 __ovld __cnfn convert_uint16_rtz(int16);
4596uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4597uint16 __ovld __cnfn convert_uint16_rtp(int16);
4598uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4599uint16 __ovld __cnfn convert_uint16_rtn(int16);
4600uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4601uint16 __ovld __cnfn convert_uint16(int16);
4602uint16 __ovld __cnfn convert_uint16_sat(int16);
4603uint16 __ovld __cnfn convert_uint16_rte(uint16);
4604uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4605uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4606uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4607uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4608uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4609uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4610uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4611uint16 __ovld __cnfn convert_uint16(uint16);
4612uint16 __ovld __cnfn convert_uint16_sat(uint16);
4613uint16 __ovld __cnfn convert_uint16_rte(long16);
4614uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4615uint16 __ovld __cnfn convert_uint16_rtz(long16);
4616uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4617uint16 __ovld __cnfn convert_uint16_rtp(long16);
4618uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4619uint16 __ovld __cnfn convert_uint16_rtn(long16);
4620uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4621uint16 __ovld __cnfn convert_uint16(long16);
4622uint16 __ovld __cnfn convert_uint16_sat(long16);
4623uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4624uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4625uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4626uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4627uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4628uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4629uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4630uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4631uint16 __ovld __cnfn convert_uint16(ulong16);
4632uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4633uint16 __ovld __cnfn convert_uint16_rte(float16);
4634uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4635uint16 __ovld __cnfn convert_uint16_rtz(float16);
4636uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4637uint16 __ovld __cnfn convert_uint16_rtp(float16);
4638uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4639uint16 __ovld __cnfn convert_uint16_rtn(float16);
4640uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4641uint16 __ovld __cnfn convert_uint16(float16);
4642uint16 __ovld __cnfn convert_uint16_sat(float16);
4643long16 __ovld __cnfn convert_long16_rte(char16);
4644long16 __ovld __cnfn convert_long16_sat_rte(char16);
4645long16 __ovld __cnfn convert_long16_rtz(char16);
4646long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4647long16 __ovld __cnfn convert_long16_rtp(char16);
4648long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4649long16 __ovld __cnfn convert_long16_rtn(char16);
4650long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4651long16 __ovld __cnfn convert_long16(char16);
4652long16 __ovld __cnfn convert_long16_sat(char16);
4653long16 __ovld __cnfn convert_long16_rte(uchar16);
4654long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4655long16 __ovld __cnfn convert_long16_rtz(uchar16);
4656long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4657long16 __ovld __cnfn convert_long16_rtp(uchar16);
4658long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4659long16 __ovld __cnfn convert_long16_rtn(uchar16);
4660long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4661long16 __ovld __cnfn convert_long16(uchar16);
4662long16 __ovld __cnfn convert_long16_sat(uchar16);
4663long16 __ovld __cnfn convert_long16_rte(short16);
4664long16 __ovld __cnfn convert_long16_sat_rte(short16);
4665long16 __ovld __cnfn convert_long16_rtz(short16);
4666long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4667long16 __ovld __cnfn convert_long16_rtp(short16);
4668long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4669long16 __ovld __cnfn convert_long16_rtn(short16);
4670long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4671long16 __ovld __cnfn convert_long16(short16);
4672long16 __ovld __cnfn convert_long16_sat(short16);
4673long16 __ovld __cnfn convert_long16_rte(ushort16);
4674long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4675long16 __ovld __cnfn convert_long16_rtz(ushort16);
4676long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4677long16 __ovld __cnfn convert_long16_rtp(ushort16);
4678long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4679long16 __ovld __cnfn convert_long16_rtn(ushort16);
4680long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4681long16 __ovld __cnfn convert_long16(ushort16);
4682long16 __ovld __cnfn convert_long16_sat(ushort16);
4683long16 __ovld __cnfn convert_long16_rte(int16);
4684long16 __ovld __cnfn convert_long16_sat_rte(int16);
4685long16 __ovld __cnfn convert_long16_rtz(int16);
4686long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4687long16 __ovld __cnfn convert_long16_rtp(int16);
4688long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4689long16 __ovld __cnfn convert_long16_rtn(int16);
4690long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4691long16 __ovld __cnfn convert_long16(int16);
4692long16 __ovld __cnfn convert_long16_sat(int16);
4693long16 __ovld __cnfn convert_long16_rte(uint16);
4694long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4695long16 __ovld __cnfn convert_long16_rtz(uint16);
4696long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4697long16 __ovld __cnfn convert_long16_rtp(uint16);
4698long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4699long16 __ovld __cnfn convert_long16_rtn(uint16);
4700long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4701long16 __ovld __cnfn convert_long16(uint16);
4702long16 __ovld __cnfn convert_long16_sat(uint16);
4703long16 __ovld __cnfn convert_long16_rte(long16);
4704long16 __ovld __cnfn convert_long16_sat_rte(long16);
4705long16 __ovld __cnfn convert_long16_rtz(long16);
4706long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4707long16 __ovld __cnfn convert_long16_rtp(long16);
4708long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4709long16 __ovld __cnfn convert_long16_rtn(long16);
4710long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4711long16 __ovld __cnfn convert_long16(long16);
4712long16 __ovld __cnfn convert_long16_sat(long16);
4713long16 __ovld __cnfn convert_long16_rte(ulong16);
4714long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4715long16 __ovld __cnfn convert_long16_rtz(ulong16);
4716long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4717long16 __ovld __cnfn convert_long16_rtp(ulong16);
4718long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4719long16 __ovld __cnfn convert_long16_rtn(ulong16);
4720long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4721long16 __ovld __cnfn convert_long16(ulong16);
4722long16 __ovld __cnfn convert_long16_sat(ulong16);
4723long16 __ovld __cnfn convert_long16_rte(float16);
4724long16 __ovld __cnfn convert_long16_sat_rte(float16);
4725long16 __ovld __cnfn convert_long16_rtz(float16);
4726long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4727long16 __ovld __cnfn convert_long16_rtp(float16);
4728long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4729long16 __ovld __cnfn convert_long16_rtn(float16);
4730long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4731long16 __ovld __cnfn convert_long16(float16);
4732long16 __ovld __cnfn convert_long16_sat(float16);
4733ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4734ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4735ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4736ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4737ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4738ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4739ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4740ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4741ulong16 __ovld __cnfn convert_ulong16(char16);
4742ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4743ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4744ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4745ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4746ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4747ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4748ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4749ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4750ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4751ulong16 __ovld __cnfn convert_ulong16(uchar16);
4752ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4753ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4754ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4755ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4756ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4757ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4758ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4759ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4760ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4761ulong16 __ovld __cnfn convert_ulong16(short16);
4762ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4763ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4764ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4765ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4766ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4767ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4768ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4769ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4770ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4771ulong16 __ovld __cnfn convert_ulong16(ushort16);
4772ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4773ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4774ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4775ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4776ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4777ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4778ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4779ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4780ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4781ulong16 __ovld __cnfn convert_ulong16(int16);
4782ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4783ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4784ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4785ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4786ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4787ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4788ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4789ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4790ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4791ulong16 __ovld __cnfn convert_ulong16(uint16);
4792ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4793ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4794ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4795ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4796ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4797ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4798ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4799ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4800ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4801ulong16 __ovld __cnfn convert_ulong16(long16);
4802ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4803ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4804ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4805ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4806ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4807ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4808ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4809ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4810ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4811ulong16 __ovld __cnfn convert_ulong16(ulong16);
4812ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4813ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4814ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4815ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4816ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4817ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4818ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4819ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4820ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4821ulong16 __ovld __cnfn convert_ulong16(float16);
4822ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4823float16 __ovld __cnfn convert_float16_rte(char16);
4824float16 __ovld __cnfn convert_float16_rtz(char16);
4825float16 __ovld __cnfn convert_float16_rtp(char16);
4826float16 __ovld __cnfn convert_float16_rtn(char16);
4827float16 __ovld __cnfn convert_float16(char16);
4828float16 __ovld __cnfn convert_float16_rte(uchar16);
4829float16 __ovld __cnfn convert_float16_rtz(uchar16);
4830float16 __ovld __cnfn convert_float16_rtp(uchar16);
4831float16 __ovld __cnfn convert_float16_rtn(uchar16);
4832float16 __ovld __cnfn convert_float16(uchar16);
4833float16 __ovld __cnfn convert_float16_rte(short16);
4834float16 __ovld __cnfn convert_float16_rtz(short16);
4835float16 __ovld __cnfn convert_float16_rtp(short16);
4836float16 __ovld __cnfn convert_float16_rtn(short16);
4837float16 __ovld __cnfn convert_float16(short16);
4838float16 __ovld __cnfn convert_float16_rte(ushort16);
4839float16 __ovld __cnfn convert_float16_rtz(ushort16);
4840float16 __ovld __cnfn convert_float16_rtp(ushort16);
4841float16 __ovld __cnfn convert_float16_rtn(ushort16);
4842float16 __ovld __cnfn convert_float16(ushort16);
4843float16 __ovld __cnfn convert_float16_rte(int16);
4844float16 __ovld __cnfn convert_float16_rtz(int16);
4845float16 __ovld __cnfn convert_float16_rtp(int16);
4846float16 __ovld __cnfn convert_float16_rtn(int16);
4847float16 __ovld __cnfn convert_float16(int16);
4848float16 __ovld __cnfn convert_float16_rte(uint16);
4849float16 __ovld __cnfn convert_float16_rtz(uint16);
4850float16 __ovld __cnfn convert_float16_rtp(uint16);
4851float16 __ovld __cnfn convert_float16_rtn(uint16);
4852float16 __ovld __cnfn convert_float16(uint16);
4853float16 __ovld __cnfn convert_float16_rte(long16);
4854float16 __ovld __cnfn convert_float16_rtz(long16);
4855float16 __ovld __cnfn convert_float16_rtp(long16);
4856float16 __ovld __cnfn convert_float16_rtn(long16);
4857float16 __ovld __cnfn convert_float16(long16);
4858float16 __ovld __cnfn convert_float16_rte(ulong16);
4859float16 __ovld __cnfn convert_float16_rtz(ulong16);
4860float16 __ovld __cnfn convert_float16_rtp(ulong16);
4861float16 __ovld __cnfn convert_float16_rtn(ulong16);
4862float16 __ovld __cnfn convert_float16(ulong16);
4863float16 __ovld __cnfn convert_float16_rte(float16);
4864float16 __ovld __cnfn convert_float16_rtz(float16);
4865float16 __ovld __cnfn convert_float16_rtp(float16);
4866float16 __ovld __cnfn convert_float16_rtn(float16);
4867float16 __ovld __cnfn convert_float16(float16);
4868
4869// Conversions with double data type parameters or return value.
4870
4871#ifdef cl_khr_fp64
4872char __ovld __cnfn convert_char(double);
4873char __ovld __cnfn convert_char_rte(double);
4874char __ovld __cnfn convert_char_rtn(double);
4875char __ovld __cnfn convert_char_rtp(double);
4876char __ovld __cnfn convert_char_rtz(double);
4877char __ovld __cnfn convert_char_sat(double);
4878char __ovld __cnfn convert_char_sat_rte(double);
4879char __ovld __cnfn convert_char_sat_rtn(double);
4880char __ovld __cnfn convert_char_sat_rtp(double);
4881char __ovld __cnfn convert_char_sat_rtz(double);
4882char2 __ovld __cnfn convert_char2(double2);
4883char2 __ovld __cnfn convert_char2_rte(double2);
4884char2 __ovld __cnfn convert_char2_rtn(double2);
4885char2 __ovld __cnfn convert_char2_rtp(double2);
4886char2 __ovld __cnfn convert_char2_rtz(double2);
4887char2 __ovld __cnfn convert_char2_sat(double2);
4888char2 __ovld __cnfn convert_char2_sat_rte(double2);
4889char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4890char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4891char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4892char3 __ovld __cnfn convert_char3(double3);
4893char3 __ovld __cnfn convert_char3_rte(double3);
4894char3 __ovld __cnfn convert_char3_rtn(double3);
4895char3 __ovld __cnfn convert_char3_rtp(double3);
4896char3 __ovld __cnfn convert_char3_rtz(double3);
4897char3 __ovld __cnfn convert_char3_sat(double3);
4898char3 __ovld __cnfn convert_char3_sat_rte(double3);
4899char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4900char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4901char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4902char4 __ovld __cnfn convert_char4(double4);
4903char4 __ovld __cnfn convert_char4_rte(double4);
4904char4 __ovld __cnfn convert_char4_rtn(double4);
4905char4 __ovld __cnfn convert_char4_rtp(double4);
4906char4 __ovld __cnfn convert_char4_rtz(double4);
4907char4 __ovld __cnfn convert_char4_sat(double4);
4908char4 __ovld __cnfn convert_char4_sat_rte(double4);
4909char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4910char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4911char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4912char8 __ovld __cnfn convert_char8(double8);
4913char8 __ovld __cnfn convert_char8_rte(double8);
4914char8 __ovld __cnfn convert_char8_rtn(double8);
4915char8 __ovld __cnfn convert_char8_rtp(double8);
4916char8 __ovld __cnfn convert_char8_rtz(double8);
4917char8 __ovld __cnfn convert_char8_sat(double8);
4918char8 __ovld __cnfn convert_char8_sat_rte(double8);
4919char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4920char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4921char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4922char16 __ovld __cnfn convert_char16(double16);
4923char16 __ovld __cnfn convert_char16_rte(double16);
4924char16 __ovld __cnfn convert_char16_rtn(double16);
4925char16 __ovld __cnfn convert_char16_rtp(double16);
4926char16 __ovld __cnfn convert_char16_rtz(double16);
4927char16 __ovld __cnfn convert_char16_sat(double16);
4928char16 __ovld __cnfn convert_char16_sat_rte(double16);
4929char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4930char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4931char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4932
4933uchar __ovld __cnfn convert_uchar(double);
4934uchar __ovld __cnfn convert_uchar_rte(double);
4935uchar __ovld __cnfn convert_uchar_rtn(double);
4936uchar __ovld __cnfn convert_uchar_rtp(double);
4937uchar __ovld __cnfn convert_uchar_rtz(double);
4938uchar __ovld __cnfn convert_uchar_sat(double);
4939uchar __ovld __cnfn convert_uchar_sat_rte(double);
4940uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4941uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4942uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4943uchar2 __ovld __cnfn convert_uchar2(double2);
4944uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4945uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4946uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4947uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4948uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4949uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4950uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4951uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4952uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4953uchar3 __ovld __cnfn convert_uchar3(double3);
4954uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4955uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4956uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4957uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4958uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4959uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4960uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4961uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4962uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4963uchar4 __ovld __cnfn convert_uchar4(double4);
4964uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4965uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4966uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4967uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4968uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4969uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4970uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4971uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4972uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4973uchar8 __ovld __cnfn convert_uchar8(double8);
4974uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4975uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4976uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4977uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4978uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4979uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4980uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4981uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4982uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4983uchar16 __ovld __cnfn convert_uchar16(double16);
4984uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4985uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4986uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4987uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4988uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4989uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4990uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4991uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4992uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4993
4994short __ovld __cnfn convert_short(double);
4995short __ovld __cnfn convert_short_rte(double);
4996short __ovld __cnfn convert_short_rtn(double);
4997short __ovld __cnfn convert_short_rtp(double);
4998short __ovld __cnfn convert_short_rtz(double);
4999short __ovld __cnfn convert_short_sat(double);
5000short __ovld __cnfn convert_short_sat_rte(double);
5001short __ovld __cnfn convert_short_sat_rtn(double);
5002short __ovld __cnfn convert_short_sat_rtp(double);
5003short __ovld __cnfn convert_short_sat_rtz(double);
5004short2 __ovld __cnfn convert_short2(double2);
5005short2 __ovld __cnfn convert_short2_rte(double2);
5006short2 __ovld __cnfn convert_short2_rtn(double2);
5007short2 __ovld __cnfn convert_short2_rtp(double2);
5008short2 __ovld __cnfn convert_short2_rtz(double2);
5009short2 __ovld __cnfn convert_short2_sat(double2);
5010short2 __ovld __cnfn convert_short2_sat_rte(double2);
5011short2 __ovld __cnfn convert_short2_sat_rtn(double2);
5012short2 __ovld __cnfn convert_short2_sat_rtp(double2);
5013short2 __ovld __cnfn convert_short2_sat_rtz(double2);
5014short3 __ovld __cnfn convert_short3(double3);
5015short3 __ovld __cnfn convert_short3_rte(double3);
5016short3 __ovld __cnfn convert_short3_rtn(double3);
5017short3 __ovld __cnfn convert_short3_rtp(double3);
5018short3 __ovld __cnfn convert_short3_rtz(double3);
5019short3 __ovld __cnfn convert_short3_sat(double3);
5020short3 __ovld __cnfn convert_short3_sat_rte(double3);
5021short3 __ovld __cnfn convert_short3_sat_rtn(double3);
5022short3 __ovld __cnfn convert_short3_sat_rtp(double3);
5023short3 __ovld __cnfn convert_short3_sat_rtz(double3);
5024short4 __ovld __cnfn convert_short4(double4);
5025short4 __ovld __cnfn convert_short4_rte(double4);
5026short4 __ovld __cnfn convert_short4_rtn(double4);
5027short4 __ovld __cnfn convert_short4_rtp(double4);
5028short4 __ovld __cnfn convert_short4_rtz(double4);
5029short4 __ovld __cnfn convert_short4_sat(double4);
5030short4 __ovld __cnfn convert_short4_sat_rte(double4);
5031short4 __ovld __cnfn convert_short4_sat_rtn(double4);
5032short4 __ovld __cnfn convert_short4_sat_rtp(double4);
5033short4 __ovld __cnfn convert_short4_sat_rtz(double4);
5034short8 __ovld __cnfn convert_short8(double8);
5035short8 __ovld __cnfn convert_short8_rte(double8);
5036short8 __ovld __cnfn convert_short8_rtn(double8);
5037short8 __ovld __cnfn convert_short8_rtp(double8);
5038short8 __ovld __cnfn convert_short8_rtz(double8);
5039short8 __ovld __cnfn convert_short8_sat(double8);
5040short8 __ovld __cnfn convert_short8_sat_rte(double8);
5041short8 __ovld __cnfn convert_short8_sat_rtn(double8);
5042short8 __ovld __cnfn convert_short8_sat_rtp(double8);
5043short8 __ovld __cnfn convert_short8_sat_rtz(double8);
5044short16 __ovld __cnfn convert_short16(double16);
5045short16 __ovld __cnfn convert_short16_rte(double16);
5046short16 __ovld __cnfn convert_short16_rtn(double16);
5047short16 __ovld __cnfn convert_short16_rtp(double16);
5048short16 __ovld __cnfn convert_short16_rtz(double16);
5049short16 __ovld __cnfn convert_short16_sat(double16);
5050short16 __ovld __cnfn convert_short16_sat_rte(double16);
5051short16 __ovld __cnfn convert_short16_sat_rtn(double16);
5052short16 __ovld __cnfn convert_short16_sat_rtp(double16);
5053short16 __ovld __cnfn convert_short16_sat_rtz(double16);
5054
5055ushort __ovld __cnfn convert_ushort(double);
5056ushort __ovld __cnfn convert_ushort_rte(double);
5057ushort __ovld __cnfn convert_ushort_rtn(double);
5058ushort __ovld __cnfn convert_ushort_rtp(double);
5059ushort __ovld __cnfn convert_ushort_rtz(double);
5060ushort __ovld __cnfn convert_ushort_sat(double);
5061ushort __ovld __cnfn convert_ushort_sat_rte(double);
5062ushort __ovld __cnfn convert_ushort_sat_rtn(double);
5063ushort __ovld __cnfn convert_ushort_sat_rtp(double);
5064ushort __ovld __cnfn convert_ushort_sat_rtz(double);
5065ushort2 __ovld __cnfn convert_ushort2(double2);
5066ushort2 __ovld __cnfn convert_ushort2_rte(double2);
5067ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
5068ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
5069ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
5070ushort2 __ovld __cnfn convert_ushort2_sat(double2);
5071ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
5072ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
5073ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
5074ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
5075ushort3 __ovld __cnfn convert_ushort3(double3);
5076ushort3 __ovld __cnfn convert_ushort3_rte(double3);
5077ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
5078ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
5079ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
5080ushort3 __ovld __cnfn convert_ushort3_sat(double3);
5081ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
5082ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
5083ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
5084ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
5085ushort4 __ovld __cnfn convert_ushort4(double4);
5086ushort4 __ovld __cnfn convert_ushort4_rte(double4);
5087ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
5088ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
5089ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
5090ushort4 __ovld __cnfn convert_ushort4_sat(double4);
5091ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
5092ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
5093ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
5094ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
5095ushort8 __ovld __cnfn convert_ushort8(double8);
5096ushort8 __ovld __cnfn convert_ushort8_rte(double8);
5097ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
5098ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
5099ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
5100ushort8 __ovld __cnfn convert_ushort8_sat(double8);
5101ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
5102ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
5103ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
5104ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
5105ushort16 __ovld __cnfn convert_ushort16(double16);
5106ushort16 __ovld __cnfn convert_ushort16_rte(double16);
5107ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
5108ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
5109ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
5110ushort16 __ovld __cnfn convert_ushort16_sat(double16);
5111ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
5112ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
5113ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
5114ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
5115
5116int __ovld __cnfn convert_int(double);
5117int __ovld __cnfn convert_int_rte(double);
5118int __ovld __cnfn convert_int_rtn(double);
5119int __ovld __cnfn convert_int_rtp(double);
5120int __ovld __cnfn convert_int_rtz(double);
5121int __ovld __cnfn convert_int_sat(double);
5122int __ovld __cnfn convert_int_sat_rte(double);
5123int __ovld __cnfn convert_int_sat_rtn(double);
5124int __ovld __cnfn convert_int_sat_rtp(double);
5125int __ovld __cnfn convert_int_sat_rtz(double);
5126int2 __ovld __cnfn convert_int2(double2);
5127int2 __ovld __cnfn convert_int2_rte(double2);
5128int2 __ovld __cnfn convert_int2_rtn(double2);
5129int2 __ovld __cnfn convert_int2_rtp(double2);
5130int2 __ovld __cnfn convert_int2_rtz(double2);
5131int2 __ovld __cnfn convert_int2_sat(double2);
5132int2 __ovld __cnfn convert_int2_sat_rte(double2);
5133int2 __ovld __cnfn convert_int2_sat_rtn(double2);
5134int2 __ovld __cnfn convert_int2_sat_rtp(double2);
5135int2 __ovld __cnfn convert_int2_sat_rtz(double2);
5136int3 __ovld __cnfn convert_int3(double3);
5137int3 __ovld __cnfn convert_int3_rte(double3);
5138int3 __ovld __cnfn convert_int3_rtn(double3);
5139int3 __ovld __cnfn convert_int3_rtp(double3);
5140int3 __ovld __cnfn convert_int3_rtz(double3);
5141int3 __ovld __cnfn convert_int3_sat(double3);
5142int3 __ovld __cnfn convert_int3_sat_rte(double3);
5143int3 __ovld __cnfn convert_int3_sat_rtn(double3);
5144int3 __ovld __cnfn convert_int3_sat_rtp(double3);
5145int3 __ovld __cnfn convert_int3_sat_rtz(double3);
5146int4 __ovld __cnfn convert_int4(double4);
5147int4 __ovld __cnfn convert_int4_rte(double4);
5148int4 __ovld __cnfn convert_int4_rtn(double4);
5149int4 __ovld __cnfn convert_int4_rtp(double4);
5150int4 __ovld __cnfn convert_int4_rtz(double4);
5151int4 __ovld __cnfn convert_int4_sat(double4);
5152int4 __ovld __cnfn convert_int4_sat_rte(double4);
5153int4 __ovld __cnfn convert_int4_sat_rtn(double4);
5154int4 __ovld __cnfn convert_int4_sat_rtp(double4);
5155int4 __ovld __cnfn convert_int4_sat_rtz(double4);
5156int8 __ovld __cnfn convert_int8(double8);
5157int8 __ovld __cnfn convert_int8_rte(double8);
5158int8 __ovld __cnfn convert_int8_rtn(double8);
5159int8 __ovld __cnfn convert_int8_rtp(double8);
5160int8 __ovld __cnfn convert_int8_rtz(double8);
5161int8 __ovld __cnfn convert_int8_sat(double8);
5162int8 __ovld __cnfn convert_int8_sat_rte(double8);
5163int8 __ovld __cnfn convert_int8_sat_rtn(double8);
5164int8 __ovld __cnfn convert_int8_sat_rtp(double8);
5165int8 __ovld __cnfn convert_int8_sat_rtz(double8);
5166int16 __ovld __cnfn convert_int16(double16);
5167int16 __ovld __cnfn convert_int16_rte(double16);
5168int16 __ovld __cnfn convert_int16_rtn(double16);
5169int16 __ovld __cnfn convert_int16_rtp(double16);
5170int16 __ovld __cnfn convert_int16_rtz(double16);
5171int16 __ovld __cnfn convert_int16_sat(double16);
5172int16 __ovld __cnfn convert_int16_sat_rte(double16);
5173int16 __ovld __cnfn convert_int16_sat_rtn(double16);
5174int16 __ovld __cnfn convert_int16_sat_rtp(double16);
5175int16 __ovld __cnfn convert_int16_sat_rtz(double16);
5176
5177uint __ovld __cnfn convert_uint(double);
5178uint __ovld __cnfn convert_uint_rte(double);
5179uint __ovld __cnfn convert_uint_rtn(double);
5180uint __ovld __cnfn convert_uint_rtp(double);
5181uint __ovld __cnfn convert_uint_rtz(double);
5182uint __ovld __cnfn convert_uint_sat(double);
5183uint __ovld __cnfn convert_uint_sat_rte(double);
5184uint __ovld __cnfn convert_uint_sat_rtn(double);
5185uint __ovld __cnfn convert_uint_sat_rtp(double);
5186uint __ovld __cnfn convert_uint_sat_rtz(double);
5187uint2 __ovld __cnfn convert_uint2(double2);
5188uint2 __ovld __cnfn convert_uint2_rte(double2);
5189uint2 __ovld __cnfn convert_uint2_rtn(double2);
5190uint2 __ovld __cnfn convert_uint2_rtp(double2);
5191uint2 __ovld __cnfn convert_uint2_rtz(double2);
5192uint2 __ovld __cnfn convert_uint2_sat(double2);
5193uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
5194uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
5195uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
5196uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
5197uint3 __ovld __cnfn convert_uint3(double3);
5198uint3 __ovld __cnfn convert_uint3_rte(double3);
5199uint3 __ovld __cnfn convert_uint3_rtn(double3);
5200uint3 __ovld __cnfn convert_uint3_rtp(double3);
5201uint3 __ovld __cnfn convert_uint3_rtz(double3);
5202uint3 __ovld __cnfn convert_uint3_sat(double3);
5203uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
5204uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
5205uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
5206uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
5207uint4 __ovld __cnfn convert_uint4(double4);
5208uint4 __ovld __cnfn convert_uint4_rte(double4);
5209uint4 __ovld __cnfn convert_uint4_rtn(double4);
5210uint4 __ovld __cnfn convert_uint4_rtp(double4);
5211uint4 __ovld __cnfn convert_uint4_rtz(double4);
5212uint4 __ovld __cnfn convert_uint4_sat(double4);
5213uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
5214uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
5215uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
5216uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
5217uint8 __ovld __cnfn convert_uint8(double8);
5218uint8 __ovld __cnfn convert_uint8_rte(double8);
5219uint8 __ovld __cnfn convert_uint8_rtn(double8);
5220uint8 __ovld __cnfn convert_uint8_rtp(double8);
5221uint8 __ovld __cnfn convert_uint8_rtz(double8);
5222uint8 __ovld __cnfn convert_uint8_sat(double8);
5223uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
5224uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
5225uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
5226uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
5227uint16 __ovld __cnfn convert_uint16(double16);
5228uint16 __ovld __cnfn convert_uint16_rte(double16);
5229uint16 __ovld __cnfn convert_uint16_rtn(double16);
5230uint16 __ovld __cnfn convert_uint16_rtp(double16);
5231uint16 __ovld __cnfn convert_uint16_rtz(double16);
5232uint16 __ovld __cnfn convert_uint16_sat(double16);
5233uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5234uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5235uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5236uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5237
5238long __ovld __cnfn convert_long(double);
5239long __ovld __cnfn convert_long_rte(double);
5240long __ovld __cnfn convert_long_rtn(double);
5241long __ovld __cnfn convert_long_rtp(double);
5242long __ovld __cnfn convert_long_rtz(double);
5243long __ovld __cnfn convert_long_sat(double);
5244long __ovld __cnfn convert_long_sat_rte(double);
5245long __ovld __cnfn convert_long_sat_rtn(double);
5246long __ovld __cnfn convert_long_sat_rtp(double);
5247long __ovld __cnfn convert_long_sat_rtz(double);
5248long2 __ovld __cnfn convert_long2(double2);
5249long2 __ovld __cnfn convert_long2_rte(double2);
5250long2 __ovld __cnfn convert_long2_rtn(double2);
5251long2 __ovld __cnfn convert_long2_rtp(double2);
5252long2 __ovld __cnfn convert_long2_rtz(double2);
5253long2 __ovld __cnfn convert_long2_sat(double2);
5254long2 __ovld __cnfn convert_long2_sat_rte(double2);
5255long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5256long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5257long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5258long3 __ovld __cnfn convert_long3(double3);
5259long3 __ovld __cnfn convert_long3_rte(double3);
5260long3 __ovld __cnfn convert_long3_rtn(double3);
5261long3 __ovld __cnfn convert_long3_rtp(double3);
5262long3 __ovld __cnfn convert_long3_rtz(double3);
5263long3 __ovld __cnfn convert_long3_sat(double3);
5264long3 __ovld __cnfn convert_long3_sat_rte(double3);
5265long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5266long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5267long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5268long4 __ovld __cnfn convert_long4(double4);
5269long4 __ovld __cnfn convert_long4_rte(double4);
5270long4 __ovld __cnfn convert_long4_rtn(double4);
5271long4 __ovld __cnfn convert_long4_rtp(double4);
5272long4 __ovld __cnfn convert_long4_rtz(double4);
5273long4 __ovld __cnfn convert_long4_sat(double4);
5274long4 __ovld __cnfn convert_long4_sat_rte(double4);
5275long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5276long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5277long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5278long8 __ovld __cnfn convert_long8(double8);
5279long8 __ovld __cnfn convert_long8_rte(double8);
5280long8 __ovld __cnfn convert_long8_rtn(double8);
5281long8 __ovld __cnfn convert_long8_rtp(double8);
5282long8 __ovld __cnfn convert_long8_rtz(double8);
5283long8 __ovld __cnfn convert_long8_sat(double8);
5284long8 __ovld __cnfn convert_long8_sat_rte(double8);
5285long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5286long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5287long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5288long16 __ovld __cnfn convert_long16(double16);
5289long16 __ovld __cnfn convert_long16_rte(double16);
5290long16 __ovld __cnfn convert_long16_rtn(double16);
5291long16 __ovld __cnfn convert_long16_rtp(double16);
5292long16 __ovld __cnfn convert_long16_rtz(double16);
5293long16 __ovld __cnfn convert_long16_sat(double16);
5294long16 __ovld __cnfn convert_long16_sat_rte(double16);
5295long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5296long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5297long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5298
5299ulong __ovld __cnfn convert_ulong(double);
5300ulong __ovld __cnfn convert_ulong_rte(double);
5301ulong __ovld __cnfn convert_ulong_rtn(double);
5302ulong __ovld __cnfn convert_ulong_rtp(double);
5303ulong __ovld __cnfn convert_ulong_rtz(double);
5304ulong __ovld __cnfn convert_ulong_sat(double);
5305ulong __ovld __cnfn convert_ulong_sat_rte(double);
5306ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5307ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5308ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5309ulong2 __ovld __cnfn convert_ulong2(double2);
5310ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5311ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5312ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5313ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5314ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5315ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5316ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5317ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5318ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5319ulong3 __ovld __cnfn convert_ulong3(double3);
5320ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5321ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5322ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5323ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5324ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5325ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5326ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5327ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5328ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5329ulong4 __ovld __cnfn convert_ulong4(double4);
5330ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5331ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5332ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5333ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5334ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5335ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5336ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5337ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5338ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5339ulong8 __ovld __cnfn convert_ulong8(double8);
5340ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5341ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5342ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5343ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5344ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5345ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5346ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5347ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5348ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5349ulong16 __ovld __cnfn convert_ulong16(double16);
5350ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5351ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5352ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5353ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5354ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5355ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5356ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5357ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5358ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5359
5360float __ovld __cnfn convert_float(double);
5361float __ovld __cnfn convert_float_rte(double);
5362float __ovld __cnfn convert_float_rtn(double);
5363float __ovld __cnfn convert_float_rtp(double);
5364float __ovld __cnfn convert_float_rtz(double);
5365float2 __ovld __cnfn convert_float2(double2);
5366float2 __ovld __cnfn convert_float2_rte(double2);
5367float2 __ovld __cnfn convert_float2_rtn(double2);
5368float2 __ovld __cnfn convert_float2_rtp(double2);
5369float2 __ovld __cnfn convert_float2_rtz(double2);
5370float3 __ovld __cnfn convert_float3(double3);
5371float3 __ovld __cnfn convert_float3_rte(double3);
5372float3 __ovld __cnfn convert_float3_rtn(double3);
5373float3 __ovld __cnfn convert_float3_rtp(double3);
5374float3 __ovld __cnfn convert_float3_rtz(double3);
5375float4 __ovld __cnfn convert_float4(double4);
5376float4 __ovld __cnfn convert_float4_rte(double4);
5377float4 __ovld __cnfn convert_float4_rtn(double4);
5378float4 __ovld __cnfn convert_float4_rtp(double4);
5379float4 __ovld __cnfn convert_float4_rtz(double4);
5380float8 __ovld __cnfn convert_float8(double8);
5381float8 __ovld __cnfn convert_float8_rte(double8);
5382float8 __ovld __cnfn convert_float8_rtn(double8);
5383float8 __ovld __cnfn convert_float8_rtp(double8);
5384float8 __ovld __cnfn convert_float8_rtz(double8);
5385float16 __ovld __cnfn convert_float16(double16);
5386float16 __ovld __cnfn convert_float16_rte(double16);
5387float16 __ovld __cnfn convert_float16_rtn(double16);
5388float16 __ovld __cnfn convert_float16_rtp(double16);
5389float16 __ovld __cnfn convert_float16_rtz(double16);
5390
5391double __ovld __cnfn convert_double(char);
5392double __ovld __cnfn convert_double(double);
5393double __ovld __cnfn convert_double(float);
5394double __ovld __cnfn convert_double(int);
5395double __ovld __cnfn convert_double(long);
5396double __ovld __cnfn convert_double(short);
5397double __ovld __cnfn convert_double(uchar);
5398double __ovld __cnfn convert_double(uint);
5399double __ovld __cnfn convert_double(ulong);
5400double __ovld __cnfn convert_double(ushort);
5401double __ovld __cnfn convert_double_rte(char);
5402double __ovld __cnfn convert_double_rte(double);
5403double __ovld __cnfn convert_double_rte(float);
5404double __ovld __cnfn convert_double_rte(int);
5405double __ovld __cnfn convert_double_rte(long);
5406double __ovld __cnfn convert_double_rte(short);
5407double __ovld __cnfn convert_double_rte(uchar);
5408double __ovld __cnfn convert_double_rte(uint);
5409double __ovld __cnfn convert_double_rte(ulong);
5410double __ovld __cnfn convert_double_rte(ushort);
5411double __ovld __cnfn convert_double_rtn(char);
5412double __ovld __cnfn convert_double_rtn(double);
5413double __ovld __cnfn convert_double_rtn(float);
5414double __ovld __cnfn convert_double_rtn(int);
5415double __ovld __cnfn convert_double_rtn(long);
5416double __ovld __cnfn convert_double_rtn(short);
5417double __ovld __cnfn convert_double_rtn(uchar);
5418double __ovld __cnfn convert_double_rtn(uint);
5419double __ovld __cnfn convert_double_rtn(ulong);
5420double __ovld __cnfn convert_double_rtn(ushort);
5421double __ovld __cnfn convert_double_rtp(char);
5422double __ovld __cnfn convert_double_rtp(double);
5423double __ovld __cnfn convert_double_rtp(float);
5424double __ovld __cnfn convert_double_rtp(int);
5425double __ovld __cnfn convert_double_rtp(long);
5426double __ovld __cnfn convert_double_rtp(short);
5427double __ovld __cnfn convert_double_rtp(uchar);
5428double __ovld __cnfn convert_double_rtp(uint);
5429double __ovld __cnfn convert_double_rtp(ulong);
5430double __ovld __cnfn convert_double_rtp(ushort);
5431double __ovld __cnfn convert_double_rtz(char);
5432double __ovld __cnfn convert_double_rtz(double);
5433double __ovld __cnfn convert_double_rtz(float);
5434double __ovld __cnfn convert_double_rtz(int);
5435double __ovld __cnfn convert_double_rtz(long);
5436double __ovld __cnfn convert_double_rtz(short);
5437double __ovld __cnfn convert_double_rtz(uchar);
5438double __ovld __cnfn convert_double_rtz(uint);
5439double __ovld __cnfn convert_double_rtz(ulong);
5440double __ovld __cnfn convert_double_rtz(ushort);
5441double2 __ovld __cnfn convert_double2(char2);
5442double2 __ovld __cnfn convert_double2(double2);
5443double2 __ovld __cnfn convert_double2(float2);
5444double2 __ovld __cnfn convert_double2(int2);
5445double2 __ovld __cnfn convert_double2(long2);
5446double2 __ovld __cnfn convert_double2(short2);
5447double2 __ovld __cnfn convert_double2(uchar2);
5448double2 __ovld __cnfn convert_double2(uint2);
5449double2 __ovld __cnfn convert_double2(ulong2);
5450double2 __ovld __cnfn convert_double2(ushort2);
5451double2 __ovld __cnfn convert_double2_rte(char2);
5452double2 __ovld __cnfn convert_double2_rte(double2);
5453double2 __ovld __cnfn convert_double2_rte(float2);
5454double2 __ovld __cnfn convert_double2_rte(int2);
5455double2 __ovld __cnfn convert_double2_rte(long2);
5456double2 __ovld __cnfn convert_double2_rte(short2);
5457double2 __ovld __cnfn convert_double2_rte(uchar2);
5458double2 __ovld __cnfn convert_double2_rte(uint2);
5459double2 __ovld __cnfn convert_double2_rte(ulong2);
5460double2 __ovld __cnfn convert_double2_rte(ushort2);
5461double2 __ovld __cnfn convert_double2_rtn(char2);
5462double2 __ovld __cnfn convert_double2_rtn(double2);
5463double2 __ovld __cnfn convert_double2_rtn(float2);
5464double2 __ovld __cnfn convert_double2_rtn(int2);
5465double2 __ovld __cnfn convert_double2_rtn(long2);
5466double2 __ovld __cnfn convert_double2_rtn(short2);
5467double2 __ovld __cnfn convert_double2_rtn(uchar2);
5468double2 __ovld __cnfn convert_double2_rtn(uint2);
5469double2 __ovld __cnfn convert_double2_rtn(ulong2);
5470double2 __ovld __cnfn convert_double2_rtn(ushort2);
5471double2 __ovld __cnfn convert_double2_rtp(char2);
5472double2 __ovld __cnfn convert_double2_rtp(double2);
5473double2 __ovld __cnfn convert_double2_rtp(float2);
5474double2 __ovld __cnfn convert_double2_rtp(int2);
5475double2 __ovld __cnfn convert_double2_rtp(long2);
5476double2 __ovld __cnfn convert_double2_rtp(short2);
5477double2 __ovld __cnfn convert_double2_rtp(uchar2);
5478double2 __ovld __cnfn convert_double2_rtp(uint2);
5479double2 __ovld __cnfn convert_double2_rtp(ulong2);
5480double2 __ovld __cnfn convert_double2_rtp(ushort2);
5481double2 __ovld __cnfn convert_double2_rtz(char2);
5482double2 __ovld __cnfn convert_double2_rtz(double2);
5483double2 __ovld __cnfn convert_double2_rtz(float2);
5484double2 __ovld __cnfn convert_double2_rtz(int2);
5485double2 __ovld __cnfn convert_double2_rtz(long2);
5486double2 __ovld __cnfn convert_double2_rtz(short2);
5487double2 __ovld __cnfn convert_double2_rtz(uchar2);
5488double2 __ovld __cnfn convert_double2_rtz(uint2);
5489double2 __ovld __cnfn convert_double2_rtz(ulong2);
5490double2 __ovld __cnfn convert_double2_rtz(ushort2);
5491double3 __ovld __cnfn convert_double3(char3);
5492double3 __ovld __cnfn convert_double3(double3);
5493double3 __ovld __cnfn convert_double3(float3);
5494double3 __ovld __cnfn convert_double3(int3);
5495double3 __ovld __cnfn convert_double3(long3);
5496double3 __ovld __cnfn convert_double3(short3);
5497double3 __ovld __cnfn convert_double3(uchar3);
5498double3 __ovld __cnfn convert_double3(uint3);
5499double3 __ovld __cnfn convert_double3(ulong3);
5500double3 __ovld __cnfn convert_double3(ushort3);
5501double3 __ovld __cnfn convert_double3_rte(char3);
5502double3 __ovld __cnfn convert_double3_rte(double3);
5503double3 __ovld __cnfn convert_double3_rte(float3);
5504double3 __ovld __cnfn convert_double3_rte(int3);
5505double3 __ovld __cnfn convert_double3_rte(long3);
5506double3 __ovld __cnfn convert_double3_rte(short3);
5507double3 __ovld __cnfn convert_double3_rte(uchar3);
5508double3 __ovld __cnfn convert_double3_rte(uint3);
5509double3 __ovld __cnfn convert_double3_rte(ulong3);
5510double3 __ovld __cnfn convert_double3_rte(ushort3);
5511double3 __ovld __cnfn convert_double3_rtn(char3);
5512double3 __ovld __cnfn convert_double3_rtn(double3);
5513double3 __ovld __cnfn convert_double3_rtn(float3);
5514double3 __ovld __cnfn convert_double3_rtn(int3);
5515double3 __ovld __cnfn convert_double3_rtn(long3);
5516double3 __ovld __cnfn convert_double3_rtn(short3);
5517double3 __ovld __cnfn convert_double3_rtn(uchar3);
5518double3 __ovld __cnfn convert_double3_rtn(uint3);
5519double3 __ovld __cnfn convert_double3_rtn(ulong3);
5520double3 __ovld __cnfn convert_double3_rtn(ushort3);
5521double3 __ovld __cnfn convert_double3_rtp(char3);
5522double3 __ovld __cnfn convert_double3_rtp(double3);
5523double3 __ovld __cnfn convert_double3_rtp(float3);
5524double3 __ovld __cnfn convert_double3_rtp(int3);
5525double3 __ovld __cnfn convert_double3_rtp(long3);
5526double3 __ovld __cnfn convert_double3_rtp(short3);
5527double3 __ovld __cnfn convert_double3_rtp(uchar3);
5528double3 __ovld __cnfn convert_double3_rtp(uint3);
5529double3 __ovld __cnfn convert_double3_rtp(ulong3);
5530double3 __ovld __cnfn convert_double3_rtp(ushort3);
5531double3 __ovld __cnfn convert_double3_rtz(char3);
5532double3 __ovld __cnfn convert_double3_rtz(double3);
5533double3 __ovld __cnfn convert_double3_rtz(float3);
5534double3 __ovld __cnfn convert_double3_rtz(int3);
5535double3 __ovld __cnfn convert_double3_rtz(long3);
5536double3 __ovld __cnfn convert_double3_rtz(short3);
5537double3 __ovld __cnfn convert_double3_rtz(uchar3);
5538double3 __ovld __cnfn convert_double3_rtz(uint3);
5539double3 __ovld __cnfn convert_double3_rtz(ulong3);
5540double3 __ovld __cnfn convert_double3_rtz(ushort3);
5541double4 __ovld __cnfn convert_double4(char4);
5542double4 __ovld __cnfn convert_double4(double4);
5543double4 __ovld __cnfn convert_double4(float4);
5544double4 __ovld __cnfn convert_double4(int4);
5545double4 __ovld __cnfn convert_double4(long4);
5546double4 __ovld __cnfn convert_double4(short4);
5547double4 __ovld __cnfn convert_double4(uchar4);
5548double4 __ovld __cnfn convert_double4(uint4);
5549double4 __ovld __cnfn convert_double4(ulong4);
5550double4 __ovld __cnfn convert_double4(ushort4);
5551double4 __ovld __cnfn convert_double4_rte(char4);
5552double4 __ovld __cnfn convert_double4_rte(double4);
5553double4 __ovld __cnfn convert_double4_rte(float4);
5554double4 __ovld __cnfn convert_double4_rte(int4);
5555double4 __ovld __cnfn convert_double4_rte(long4);
5556double4 __ovld __cnfn convert_double4_rte(short4);
5557double4 __ovld __cnfn convert_double4_rte(uchar4);
5558double4 __ovld __cnfn convert_double4_rte(uint4);
5559double4 __ovld __cnfn convert_double4_rte(ulong4);
5560double4 __ovld __cnfn convert_double4_rte(ushort4);
5561double4 __ovld __cnfn convert_double4_rtn(char4);
5562double4 __ovld __cnfn convert_double4_rtn(double4);
5563double4 __ovld __cnfn convert_double4_rtn(float4);
5564double4 __ovld __cnfn convert_double4_rtn(int4);
5565double4 __ovld __cnfn convert_double4_rtn(long4);
5566double4 __ovld __cnfn convert_double4_rtn(short4);
5567double4 __ovld __cnfn convert_double4_rtn(uchar4);
5568double4 __ovld __cnfn convert_double4_rtn(uint4);
5569double4 __ovld __cnfn convert_double4_rtn(ulong4);
5570double4 __ovld __cnfn convert_double4_rtn(ushort4);
5571double4 __ovld __cnfn convert_double4_rtp(char4);
5572double4 __ovld __cnfn convert_double4_rtp(double4);
5573double4 __ovld __cnfn convert_double4_rtp(float4);
5574double4 __ovld __cnfn convert_double4_rtp(int4);
5575double4 __ovld __cnfn convert_double4_rtp(long4);
5576double4 __ovld __cnfn convert_double4_rtp(short4);
5577double4 __ovld __cnfn convert_double4_rtp(uchar4);
5578double4 __ovld __cnfn convert_double4_rtp(uint4);
5579double4 __ovld __cnfn convert_double4_rtp(ulong4);
5580double4 __ovld __cnfn convert_double4_rtp(ushort4);
5581double4 __ovld __cnfn convert_double4_rtz(char4);
5582double4 __ovld __cnfn convert_double4_rtz(double4);
5583double4 __ovld __cnfn convert_double4_rtz(float4);
5584double4 __ovld __cnfn convert_double4_rtz(int4);
5585double4 __ovld __cnfn convert_double4_rtz(long4);
5586double4 __ovld __cnfn convert_double4_rtz(short4);
5587double4 __ovld __cnfn convert_double4_rtz(uchar4);
5588double4 __ovld __cnfn convert_double4_rtz(uint4);
5589double4 __ovld __cnfn convert_double4_rtz(ulong4);
5590double4 __ovld __cnfn convert_double4_rtz(ushort4);
5591double8 __ovld __cnfn convert_double8(char8);
5592double8 __ovld __cnfn convert_double8(double8);
5593double8 __ovld __cnfn convert_double8(float8);
5594double8 __ovld __cnfn convert_double8(int8);
5595double8 __ovld __cnfn convert_double8(long8);
5596double8 __ovld __cnfn convert_double8(short8);
5597double8 __ovld __cnfn convert_double8(uchar8);
5598double8 __ovld __cnfn convert_double8(uint8);
5599double8 __ovld __cnfn convert_double8(ulong8);
5600double8 __ovld __cnfn convert_double8(ushort8);
5601double8 __ovld __cnfn convert_double8_rte(char8);
5602double8 __ovld __cnfn convert_double8_rte(double8);
5603double8 __ovld __cnfn convert_double8_rte(float8);
5604double8 __ovld __cnfn convert_double8_rte(int8);
5605double8 __ovld __cnfn convert_double8_rte(long8);
5606double8 __ovld __cnfn convert_double8_rte(short8);
5607double8 __ovld __cnfn convert_double8_rte(uchar8);
5608double8 __ovld __cnfn convert_double8_rte(uint8);
5609double8 __ovld __cnfn convert_double8_rte(ulong8);
5610double8 __ovld __cnfn convert_double8_rte(ushort8);
5611double8 __ovld __cnfn convert_double8_rtn(char8);
5612double8 __ovld __cnfn convert_double8_rtn(double8);
5613double8 __ovld __cnfn convert_double8_rtn(float8);
5614double8 __ovld __cnfn convert_double8_rtn(int8);
5615double8 __ovld __cnfn convert_double8_rtn(long8);
5616double8 __ovld __cnfn convert_double8_rtn(short8);
5617double8 __ovld __cnfn convert_double8_rtn(uchar8);
5618double8 __ovld __cnfn convert_double8_rtn(uint8);
5619double8 __ovld __cnfn convert_double8_rtn(ulong8);
5620double8 __ovld __cnfn convert_double8_rtn(ushort8);
5621double8 __ovld __cnfn convert_double8_rtp(char8);
5622double8 __ovld __cnfn convert_double8_rtp(double8);
5623double8 __ovld __cnfn convert_double8_rtp(float8);
5624double8 __ovld __cnfn convert_double8_rtp(int8);
5625double8 __ovld __cnfn convert_double8_rtp(long8);
5626double8 __ovld __cnfn convert_double8_rtp(short8);
5627double8 __ovld __cnfn convert_double8_rtp(uchar8);
5628double8 __ovld __cnfn convert_double8_rtp(uint8);
5629double8 __ovld __cnfn convert_double8_rtp(ulong8);
5630double8 __ovld __cnfn convert_double8_rtp(ushort8);
5631double8 __ovld __cnfn convert_double8_rtz(char8);
5632double8 __ovld __cnfn convert_double8_rtz(double8);
5633double8 __ovld __cnfn convert_double8_rtz(float8);
5634double8 __ovld __cnfn convert_double8_rtz(int8);
5635double8 __ovld __cnfn convert_double8_rtz(long8);
5636double8 __ovld __cnfn convert_double8_rtz(short8);
5637double8 __ovld __cnfn convert_double8_rtz(uchar8);
5638double8 __ovld __cnfn convert_double8_rtz(uint8);
5639double8 __ovld __cnfn convert_double8_rtz(ulong8);
5640double8 __ovld __cnfn convert_double8_rtz(ushort8);
5641double16 __ovld __cnfn convert_double16(char16);
5642double16 __ovld __cnfn convert_double16(double16);
5643double16 __ovld __cnfn convert_double16(float16);
5644double16 __ovld __cnfn convert_double16(int16);
5645double16 __ovld __cnfn convert_double16(long16);
5646double16 __ovld __cnfn convert_double16(short16);
5647double16 __ovld __cnfn convert_double16(uchar16);
5648double16 __ovld __cnfn convert_double16(uint16);
5649double16 __ovld __cnfn convert_double16(ulong16);
5650double16 __ovld __cnfn convert_double16(ushort16);
5651double16 __ovld __cnfn convert_double16_rte(char16);
5652double16 __ovld __cnfn convert_double16_rte(double16);
5653double16 __ovld __cnfn convert_double16_rte(float16);
5654double16 __ovld __cnfn convert_double16_rte(int16);
5655double16 __ovld __cnfn convert_double16_rte(long16);
5656double16 __ovld __cnfn convert_double16_rte(short16);
5657double16 __ovld __cnfn convert_double16_rte(uchar16);
5658double16 __ovld __cnfn convert_double16_rte(uint16);
5659double16 __ovld __cnfn convert_double16_rte(ulong16);
5660double16 __ovld __cnfn convert_double16_rte(ushort16);
5661double16 __ovld __cnfn convert_double16_rtn(char16);
5662double16 __ovld __cnfn convert_double16_rtn(double16);
5663double16 __ovld __cnfn convert_double16_rtn(float16);
5664double16 __ovld __cnfn convert_double16_rtn(int16);
5665double16 __ovld __cnfn convert_double16_rtn(long16);
5666double16 __ovld __cnfn convert_double16_rtn(short16);
5667double16 __ovld __cnfn convert_double16_rtn(uchar16);
5668double16 __ovld __cnfn convert_double16_rtn(uint16);
5669double16 __ovld __cnfn convert_double16_rtn(ulong16);
5670double16 __ovld __cnfn convert_double16_rtn(ushort16);
5671double16 __ovld __cnfn convert_double16_rtp(char16);
5672double16 __ovld __cnfn convert_double16_rtp(double16);
5673double16 __ovld __cnfn convert_double16_rtp(float16);
5674double16 __ovld __cnfn convert_double16_rtp(int16);
5675double16 __ovld __cnfn convert_double16_rtp(long16);
5676double16 __ovld __cnfn convert_double16_rtp(short16);
5677double16 __ovld __cnfn convert_double16_rtp(uchar16);
5678double16 __ovld __cnfn convert_double16_rtp(uint16);
5679double16 __ovld __cnfn convert_double16_rtp(ulong16);
5680double16 __ovld __cnfn convert_double16_rtp(ushort16);
5681double16 __ovld __cnfn convert_double16_rtz(char16);
5682double16 __ovld __cnfn convert_double16_rtz(double16);
5683double16 __ovld __cnfn convert_double16_rtz(float16);
5684double16 __ovld __cnfn convert_double16_rtz(int16);
5685double16 __ovld __cnfn convert_double16_rtz(long16);
5686double16 __ovld __cnfn convert_double16_rtz(short16);
5687double16 __ovld __cnfn convert_double16_rtz(uchar16);
5688double16 __ovld __cnfn convert_double16_rtz(uint16);
5689double16 __ovld __cnfn convert_double16_rtz(ulong16);
5690double16 __ovld __cnfn convert_double16_rtz(ushort16);
5691#endif //cl_khr_fp64
5692
5693#ifdef cl_khr_fp16
5694// Convert half types to non-double types.
5695uchar __ovld __cnfn convert_uchar(half);
5696uchar __ovld __cnfn convert_uchar_rte(half);
5697uchar __ovld __cnfn convert_uchar_rtp(half);
5698uchar __ovld __cnfn convert_uchar_rtn(half);
5699uchar __ovld __cnfn convert_uchar_rtz(half);
5700uchar __ovld __cnfn convert_uchar_sat(half);
5701uchar __ovld __cnfn convert_uchar_sat_rte(half);
5702uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5703uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5704uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5705uchar2 __ovld __cnfn convert_uchar2(half2);
5706uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5707uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5708uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5709uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5710uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5711uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5712uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5713uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5714uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5715uchar3 __ovld __cnfn convert_uchar3(half3);
5716uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5717uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5718uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5719uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5720uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5721uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5722uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5723uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5724uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5725uchar4 __ovld __cnfn convert_uchar4(half4);
5726uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5727uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5728uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5729uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5730uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5731uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5732uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5733uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5734uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5735uchar8 __ovld __cnfn convert_uchar8(half8);
5736uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5737uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5738uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5739uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5740uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5741uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5742uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5743uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5744uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5745uchar16 __ovld __cnfn convert_uchar16(half16);
5746uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5747uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5748uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5749uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5750uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5751uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5752uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5753uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5754uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5755ushort __ovld __cnfn convert_ushort(half);
5756ushort __ovld __cnfn convert_ushort_rte(half);
5757ushort __ovld __cnfn convert_ushort_rtp(half);
5758ushort __ovld __cnfn convert_ushort_rtn(half);
5759ushort __ovld __cnfn convert_ushort_rtz(half);
5760ushort __ovld __cnfn convert_ushort_sat(half);
5761ushort __ovld __cnfn convert_ushort_sat_rte(half);
5762ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5763ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5764ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5765ushort2 __ovld __cnfn convert_ushort2(half2);
5766ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5767ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5768ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5769ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5770ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5771ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5772ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5773ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5774ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5775ushort3 __ovld __cnfn convert_ushort3(half3);
5776ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5777ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5778ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5779ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5780ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5781ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5782ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5783ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5784ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5785ushort4 __ovld __cnfn convert_ushort4(half4);
5786ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5787ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5788ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5789ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5790ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5791ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5792ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5793ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5794ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5795ushort8 __ovld __cnfn convert_ushort8(half8);
5796ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5797ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5798ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5799ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5800ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5801ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5802ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5803ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5804ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5805ushort16 __ovld __cnfn convert_ushort16(half16);
5806ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5807ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5808ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5809ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5810ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5811ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5812ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5813ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5814ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5815uint __ovld __cnfn convert_uint(half);
5816uint __ovld __cnfn convert_uint_rte(half);
5817uint __ovld __cnfn convert_uint_rtp(half);
5818uint __ovld __cnfn convert_uint_rtn(half);
5819uint __ovld __cnfn convert_uint_rtz(half);
5820uint __ovld __cnfn convert_uint_sat(half);
5821uint __ovld __cnfn convert_uint_sat_rte(half);
5822uint __ovld __cnfn convert_uint_sat_rtp(half);
5823uint __ovld __cnfn convert_uint_sat_rtn(half);
5824uint __ovld __cnfn convert_uint_sat_rtz(half);
5825uint2 __ovld __cnfn convert_uint2(half2);
5826uint2 __ovld __cnfn convert_uint2_rte(half2);
5827uint2 __ovld __cnfn convert_uint2_rtp(half2);
5828uint2 __ovld __cnfn convert_uint2_rtn(half2);
5829uint2 __ovld __cnfn convert_uint2_rtz(half2);
5830uint2 __ovld __cnfn convert_uint2_sat(half2);
5831uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5832uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5833uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5834uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5835uint3 __ovld __cnfn convert_uint3(half3);
5836uint3 __ovld __cnfn convert_uint3_rte(half3);
5837uint3 __ovld __cnfn convert_uint3_rtp(half3);
5838uint3 __ovld __cnfn convert_uint3_rtn(half3);
5839uint3 __ovld __cnfn convert_uint3_rtz(half3);
5840uint3 __ovld __cnfn convert_uint3_sat(half3);
5841uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5842uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5843uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5844uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5845uint4 __ovld __cnfn convert_uint4(half4);
5846uint4 __ovld __cnfn convert_uint4_rte(half4);
5847uint4 __ovld __cnfn convert_uint4_rtp(half4);
5848uint4 __ovld __cnfn convert_uint4_rtn(half4);
5849uint4 __ovld __cnfn convert_uint4_rtz(half4);
5850uint4 __ovld __cnfn convert_uint4_sat(half4);
5851uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5852uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5853uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5854uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5855uint8 __ovld __cnfn convert_uint8(half8);
5856uint8 __ovld __cnfn convert_uint8_rte(half8);
5857uint8 __ovld __cnfn convert_uint8_rtp(half8);
5858uint8 __ovld __cnfn convert_uint8_rtn(half8);
5859uint8 __ovld __cnfn convert_uint8_rtz(half8);
5860uint8 __ovld __cnfn convert_uint8_sat(half8);
5861uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5862uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5863uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5864uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5865uint16 __ovld __cnfn convert_uint16(half16);
5866uint16 __ovld __cnfn convert_uint16_rte(half16);
5867uint16 __ovld __cnfn convert_uint16_rtp(half16);
5868uint16 __ovld __cnfn convert_uint16_rtn(half16);
5869uint16 __ovld __cnfn convert_uint16_rtz(half16);
5870uint16 __ovld __cnfn convert_uint16_sat(half16);
5871uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5872uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5873uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5874uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5875ulong __ovld __cnfn convert_ulong(half);
5876ulong __ovld __cnfn convert_ulong_rte(half);
5877ulong __ovld __cnfn convert_ulong_rtp(half);
5878ulong __ovld __cnfn convert_ulong_rtn(half);
5879ulong __ovld __cnfn convert_ulong_rtz(half);
5880ulong __ovld __cnfn convert_ulong_sat(half);
5881ulong __ovld __cnfn convert_ulong_sat_rte(half);
5882ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5883ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5884ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5885ulong2 __ovld __cnfn convert_ulong2(half2);
5886ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5887ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5888ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5889ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5890ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5891ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5892ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5893ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5894ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5895ulong3 __ovld __cnfn convert_ulong3(half3);
5896ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5897ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5898ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5899ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5900ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5901ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5902ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5903ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5904ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5905ulong4 __ovld __cnfn convert_ulong4(half4);
5906ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5907ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5908ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5909ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5910ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5911ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5912ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5913ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5914ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5915ulong8 __ovld __cnfn convert_ulong8(half8);
5916ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5917ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5918ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5919ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5920ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5921ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5922ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5923ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5924ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5925ulong16 __ovld __cnfn convert_ulong16(half16);
5926ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5927ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5928ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5929ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5930ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5931ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5932ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5933ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5934ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5935char __ovld __cnfn convert_char(half);
5936char __ovld __cnfn convert_char_rte(half);
5937char __ovld __cnfn convert_char_rtp(half);
5938char __ovld __cnfn convert_char_rtn(half);
5939char __ovld __cnfn convert_char_rtz(half);
5940char __ovld __cnfn convert_char_sat(half);
5941char __ovld __cnfn convert_char_sat_rte(half);
5942char __ovld __cnfn convert_char_sat_rtp(half);
5943char __ovld __cnfn convert_char_sat_rtn(half);
5944char __ovld __cnfn convert_char_sat_rtz(half);
5945char2 __ovld __cnfn convert_char2(half2);
5946char2 __ovld __cnfn convert_char2_rte(half2);
5947char2 __ovld __cnfn convert_char2_rtp(half2);
5948char2 __ovld __cnfn convert_char2_rtn(half2);
5949char2 __ovld __cnfn convert_char2_rtz(half2);
5950char2 __ovld __cnfn convert_char2_sat(half2);
5951char2 __ovld __cnfn convert_char2_sat_rte(half2);
5952char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5953char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5954char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5955char3 __ovld __cnfn convert_char3(half3);
5956char3 __ovld __cnfn convert_char3_rte(half3);
5957char3 __ovld __cnfn convert_char3_rtp(half3);
5958char3 __ovld __cnfn convert_char3_rtn(half3);
5959char3 __ovld __cnfn convert_char3_rtz(half3);
5960char3 __ovld __cnfn convert_char3_sat(half3);
5961char3 __ovld __cnfn convert_char3_sat_rte(half3);
5962char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5963char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5964char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5965char4 __ovld __cnfn convert_char4(half4);
5966char4 __ovld __cnfn convert_char4_rte(half4);
5967char4 __ovld __cnfn convert_char4_rtp(half4);
5968char4 __ovld __cnfn convert_char4_rtn(half4);
5969char4 __ovld __cnfn convert_char4_rtz(half4);
5970char4 __ovld __cnfn convert_char4_sat(half4);
5971char4 __ovld __cnfn convert_char4_sat_rte(half4);
5972char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5973char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5974char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5975char8 __ovld __cnfn convert_char8(half8);
5976char8 __ovld __cnfn convert_char8_rte(half8);
5977char8 __ovld __cnfn convert_char8_rtp(half8);
5978char8 __ovld __cnfn convert_char8_rtn(half8);
5979char8 __ovld __cnfn convert_char8_rtz(half8);
5980char8 __ovld __cnfn convert_char8_sat(half8);
5981char8 __ovld __cnfn convert_char8_sat_rte(half8);
5982char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5983char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5984char8 __ovld __cnfn convert_char8_sat_rtz(half8);
5985char16 __ovld __cnfn convert_char16(half16);
5986char16 __ovld __cnfn convert_char16_rte(half16);
5987char16 __ovld __cnfn convert_char16_rtp(half16);
5988char16 __ovld __cnfn convert_char16_rtn(half16);
5989char16 __ovld __cnfn convert_char16_rtz(half16);
5990char16 __ovld __cnfn convert_char16_sat(half16);
5991char16 __ovld __cnfn convert_char16_sat_rte(half16);
5992char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5993char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5994char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5995short __ovld __cnfn convert_short(half);
5996short __ovld __cnfn convert_short_rte(half);
5997short __ovld __cnfn convert_short_rtp(half);
5998short __ovld __cnfn convert_short_rtn(half);
5999short __ovld __cnfn convert_short_rtz(half);
6000short __ovld __cnfn convert_short_sat(half);
6001short __ovld __cnfn convert_short_sat_rte(half);
6002short __ovld __cnfn convert_short_sat_rtp(half);
6003short __ovld __cnfn convert_short_sat_rtn(half);
6004short __ovld __cnfn convert_short_sat_rtz(half);
6005short2 __ovld __cnfn convert_short2(half2);
6006short2 __ovld __cnfn convert_short2_rte(half2);
6007short2 __ovld __cnfn convert_short2_rtp(half2);
6008short2 __ovld __cnfn convert_short2_rtn(half2);
6009short2 __ovld __cnfn convert_short2_rtz(half2);
6010short2 __ovld __cnfn convert_short2_sat(half2);
6011short2 __ovld __cnfn convert_short2_sat_rte(half2);
6012short2 __ovld __cnfn convert_short2_sat_rtp(half2);
6013short2 __ovld __cnfn convert_short2_sat_rtn(half2);
6014short2 __ovld __cnfn convert_short2_sat_rtz(half2);
6015short3 __ovld __cnfn convert_short3(half3);
6016short3 __ovld __cnfn convert_short3_rte(half3);
6017short3 __ovld __cnfn convert_short3_rtp(half3);
6018short3 __ovld __cnfn convert_short3_rtn(half3);
6019short3 __ovld __cnfn convert_short3_rtz(half3);
6020short3 __ovld __cnfn convert_short3_sat(half3);
6021short3 __ovld __cnfn convert_short3_sat_rte(half3);
6022short3 __ovld __cnfn convert_short3_sat_rtp(half3);
6023short3 __ovld __cnfn convert_short3_sat_rtn(half3);
6024short3 __ovld __cnfn convert_short3_sat_rtz(half3);
6025short4 __ovld __cnfn convert_short4(half4);
6026short4 __ovld __cnfn convert_short4_rte(half4);
6027short4 __ovld __cnfn convert_short4_rtp(half4);
6028short4 __ovld __cnfn convert_short4_rtn(half4);
6029short4 __ovld __cnfn convert_short4_rtz(half4);
6030short4 __ovld __cnfn convert_short4_sat(half4);
6031short4 __ovld __cnfn convert_short4_sat_rte(half4);
6032short4 __ovld __cnfn convert_short4_sat_rtp(half4);
6033short4 __ovld __cnfn convert_short4_sat_rtn(half4);
6034short4 __ovld __cnfn convert_short4_sat_rtz(half4);
6035short8 __ovld __cnfn convert_short8(half8);
6036short8 __ovld __cnfn convert_short8_rte(half8);
6037short8 __ovld __cnfn convert_short8_rtp(half8);
6038short8 __ovld __cnfn convert_short8_rtn(half8);
6039short8 __ovld __cnfn convert_short8_rtz(half8);
6040short8 __ovld __cnfn convert_short8_sat(half8);
6041short8 __ovld __cnfn convert_short8_sat_rte(half8);
6042short8 __ovld __cnfn convert_short8_sat_rtp(half8);
6043short8 __ovld __cnfn convert_short8_sat_rtn(half8);
6044short8 __ovld __cnfn convert_short8_sat_rtz(half8);
6045short16 __ovld __cnfn convert_short16(half16);
6046short16 __ovld __cnfn convert_short16_rte(half16);
6047short16 __ovld __cnfn convert_short16_rtp(half16);
6048short16 __ovld __cnfn convert_short16_rtn(half16);
6049short16 __ovld __cnfn convert_short16_rtz(half16);
6050short16 __ovld __cnfn convert_short16_sat(half16);
6051short16 __ovld __cnfn convert_short16_sat_rte(half16);
6052short16 __ovld __cnfn convert_short16_sat_rtp(half16);
6053short16 __ovld __cnfn convert_short16_sat_rtn(half16);
6054short16 __ovld __cnfn convert_short16_sat_rtz(half16);
6055int __ovld __cnfn convert_int(half);
6056int __ovld __cnfn convert_int_rte(half);
6057int __ovld __cnfn convert_int_rtp(half);
6058int __ovld __cnfn convert_int_rtn(half);
6059int __ovld __cnfn convert_int_rtz(half);
6060int __ovld __cnfn convert_int_sat(half);
6061int __ovld __cnfn convert_int_sat_rte(half);
6062int __ovld __cnfn convert_int_sat_rtp(half);
6063int __ovld __cnfn convert_int_sat_rtn(half);
6064int __ovld __cnfn convert_int_sat_rtz(half);
6065int2 __ovld __cnfn convert_int2(half2);
6066int2 __ovld __cnfn convert_int2_rte(half2);
6067int2 __ovld __cnfn convert_int2_rtp(half2);
6068int2 __ovld __cnfn convert_int2_rtn(half2);
6069int2 __ovld __cnfn convert_int2_rtz(half2);
6070int2 __ovld __cnfn convert_int2_sat(half2);
6071int2 __ovld __cnfn convert_int2_sat_rte(half2);
6072int2 __ovld __cnfn convert_int2_sat_rtp(half2);
6073int2 __ovld __cnfn convert_int2_sat_rtn(half2);
6074int2 __ovld __cnfn convert_int2_sat_rtz(half2);
6075int3 __ovld __cnfn convert_int3(half3);
6076int3 __ovld __cnfn convert_int3_rte(half3);
6077int3 __ovld __cnfn convert_int3_rtp(half3);
6078int3 __ovld __cnfn convert_int3_rtn(half3);
6079int3 __ovld __cnfn convert_int3_rtz(half3);
6080int3 __ovld __cnfn convert_int3_sat(half3);
6081int3 __ovld __cnfn convert_int3_sat_rte(half3);
6082int3 __ovld __cnfn convert_int3_sat_rtp(half3);
6083int3 __ovld __cnfn convert_int3_sat_rtn(half3);
6084int3 __ovld __cnfn convert_int3_sat_rtz(half3);
6085int4 __ovld __cnfn convert_int4(half4);
6086int4 __ovld __cnfn convert_int4_rte(half4);
6087int4 __ovld __cnfn convert_int4_rtp(half4);
6088int4 __ovld __cnfn convert_int4_rtn(half4);
6089int4 __ovld __cnfn convert_int4_rtz(half4);
6090int4 __ovld __cnfn convert_int4_sat(half4);
6091int4 __ovld __cnfn convert_int4_sat_rte(half4);
6092int4 __ovld __cnfn convert_int4_sat_rtp(half4);
6093int4 __ovld __cnfn convert_int4_sat_rtn(half4);
6094int4 __ovld __cnfn convert_int4_sat_rtz(half4);
6095int8 __ovld __cnfn convert_int8(half8);
6096int8 __ovld __cnfn convert_int8_rte(half8);
6097int8 __ovld __cnfn convert_int8_rtp(half8);
6098int8 __ovld __cnfn convert_int8_rtn(half8);
6099int8 __ovld __cnfn convert_int8_rtz(half8);
6100int8 __ovld __cnfn convert_int8_sat(half8);
6101int8 __ovld __cnfn convert_int8_sat_rte(half8);
6102int8 __ovld __cnfn convert_int8_sat_rtp(half8);
6103int8 __ovld __cnfn convert_int8_sat_rtn(half8);
6104int8 __ovld __cnfn convert_int8_sat_rtz(half8);
6105int16 __ovld __cnfn convert_int16(half16);
6106int16 __ovld __cnfn convert_int16_rte(half16);
6107int16 __ovld __cnfn convert_int16_rtp(half16);
6108int16 __ovld __cnfn convert_int16_rtn(half16);
6109int16 __ovld __cnfn convert_int16_rtz(half16);
6110int16 __ovld __cnfn convert_int16_sat(half16);
6111int16 __ovld __cnfn convert_int16_sat_rte(half16);
6112int16 __ovld __cnfn convert_int16_sat_rtp(half16);
6113int16 __ovld __cnfn convert_int16_sat_rtn(half16);
6114int16 __ovld __cnfn convert_int16_sat_rtz(half16);
6115long __ovld __cnfn convert_long(half);
6116long __ovld __cnfn convert_long_rte(half);
6117long __ovld __cnfn convert_long_rtp(half);
6118long __ovld __cnfn convert_long_rtn(half);
6119long __ovld __cnfn convert_long_rtz(half);
6120long __ovld __cnfn convert_long_sat(half);
6121long __ovld __cnfn convert_long_sat_rte(half);
6122long __ovld __cnfn convert_long_sat_rtp(half);
6123long __ovld __cnfn convert_long_sat_rtn(half);
6124long __ovld __cnfn convert_long_sat_rtz(half);
6125long2 __ovld __cnfn convert_long2(half2);
6126long2 __ovld __cnfn convert_long2_rte(half2);
6127long2 __ovld __cnfn convert_long2_rtp(half2);
6128long2 __ovld __cnfn convert_long2_rtn(half2);
6129long2 __ovld __cnfn convert_long2_rtz(half2);
6130long2 __ovld __cnfn convert_long2_sat(half2);
6131long2 __ovld __cnfn convert_long2_sat_rte(half2);
6132long2 __ovld __cnfn convert_long2_sat_rtp(half2);
6133long2 __ovld __cnfn convert_long2_sat_rtn(half2);
6134long2 __ovld __cnfn convert_long2_sat_rtz(half2);
6135long3 __ovld __cnfn convert_long3(half3);
6136long3 __ovld __cnfn convert_long3_rte(half3);
6137long3 __ovld __cnfn convert_long3_rtp(half3);
6138long3 __ovld __cnfn convert_long3_rtn(half3);
6139long3 __ovld __cnfn convert_long3_rtz(half3);
6140long3 __ovld __cnfn convert_long3_sat(half3);
6141long3 __ovld __cnfn convert_long3_sat_rte(half3);
6142long3 __ovld __cnfn convert_long3_sat_rtp(half3);
6143long3 __ovld __cnfn convert_long3_sat_rtn(half3);
6144long3 __ovld __cnfn convert_long3_sat_rtz(half3);
6145long4 __ovld __cnfn convert_long4(half4);
6146long4 __ovld __cnfn convert_long4_rte(half4);
6147long4 __ovld __cnfn convert_long4_rtp(half4);
6148long4 __ovld __cnfn convert_long4_rtn(half4);
6149long4 __ovld __cnfn convert_long4_rtz(half4);
6150long4 __ovld __cnfn convert_long4_sat(half4);
6151long4 __ovld __cnfn convert_long4_sat_rte(half4);
6152long4 __ovld __cnfn convert_long4_sat_rtp(half4);
6153long4 __ovld __cnfn convert_long4_sat_rtn(half4);
6154long4 __ovld __cnfn convert_long4_sat_rtz(half4);
6155long8 __ovld __cnfn convert_long8(half8);
6156long8 __ovld __cnfn convert_long8_rte(half8);
6157long8 __ovld __cnfn convert_long8_rtp(half8);
6158long8 __ovld __cnfn convert_long8_rtn(half8);
6159long8 __ovld __cnfn convert_long8_rtz(half8);
6160long8 __ovld __cnfn convert_long8_sat(half8);
6161long8 __ovld __cnfn convert_long8_sat_rte(half8);
6162long8 __ovld __cnfn convert_long8_sat_rtp(half8);
6163long8 __ovld __cnfn convert_long8_sat_rtn(half8);
6164long8 __ovld __cnfn convert_long8_sat_rtz(half8);
6165long16 __ovld __cnfn convert_long16(half16);
6166long16 __ovld __cnfn convert_long16_rte(half16);
6167long16 __ovld __cnfn convert_long16_rtp(half16);
6168long16 __ovld __cnfn convert_long16_rtn(half16);
6169long16 __ovld __cnfn convert_long16_rtz(half16);
6170long16 __ovld __cnfn convert_long16_sat(half16);
6171long16 __ovld __cnfn convert_long16_sat_rte(half16);
6172long16 __ovld __cnfn convert_long16_sat_rtp(half16);
6173long16 __ovld __cnfn convert_long16_sat_rtn(half16);
6174long16 __ovld __cnfn convert_long16_sat_rtz(half16);
6175float __ovld __cnfn convert_float(half);
6176float __ovld __cnfn convert_float_rte(half);
6177float __ovld __cnfn convert_float_rtp(half);
6178float __ovld __cnfn convert_float_rtn(half);
6179float __ovld __cnfn convert_float_rtz(half);
6180float2 __ovld __cnfn convert_float2(half2);
6181float2 __ovld __cnfn convert_float2_rte(half2);
6182float2 __ovld __cnfn convert_float2_rtp(half2);
6183float2 __ovld __cnfn convert_float2_rtn(half2);
6184float2 __ovld __cnfn convert_float2_rtz(half2);
6185float3 __ovld __cnfn convert_float3(half3);
6186float3 __ovld __cnfn convert_float3_rte(half3);
6187float3 __ovld __cnfn convert_float3_rtp(half3);
6188float3 __ovld __cnfn convert_float3_rtn(half3);
6189float3 __ovld __cnfn convert_float3_rtz(half3);
6190float4 __ovld __cnfn convert_float4(half4);
6191float4 __ovld __cnfn convert_float4_rte(half4);
6192float4 __ovld __cnfn convert_float4_rtp(half4);
6193float4 __ovld __cnfn convert_float4_rtn(half4);
6194float4 __ovld __cnfn convert_float4_rtz(half4);
6195float8 __ovld __cnfn convert_float8(half8);
6196float8 __ovld __cnfn convert_float8_rte(half8);
6197float8 __ovld __cnfn convert_float8_rtp(half8);
6198float8 __ovld __cnfn convert_float8_rtn(half8);
6199float8 __ovld __cnfn convert_float8_rtz(half8);
6200float16 __ovld __cnfn convert_float16(half16);
6201float16 __ovld __cnfn convert_float16_rte(half16);
6202float16 __ovld __cnfn convert_float16_rtp(half16);
6203float16 __ovld __cnfn convert_float16_rtn(half16);
6204float16 __ovld __cnfn convert_float16_rtz(half16);
6205
6206// Convert non-double types to half types.
6207half __ovld __cnfn convert_half(uchar);
6208half __ovld __cnfn convert_half(ushort);
6209half __ovld __cnfn convert_half(uint);
6210half __ovld __cnfn convert_half(ulong);
6211half __ovld __cnfn convert_half(char);
6212half __ovld __cnfn convert_half(short);
6213half __ovld __cnfn convert_half(int);
6214half __ovld __cnfn convert_half(long);
6215half __ovld __cnfn convert_half(float);
6216half __ovld __cnfn convert_half(half);
6217half __ovld __cnfn convert_half_rte(uchar);
6218half __ovld __cnfn convert_half_rte(ushort);
6219half __ovld __cnfn convert_half_rte(uint);
6220half __ovld __cnfn convert_half_rte(ulong);
6221half __ovld __cnfn convert_half_rte(char);
6222half __ovld __cnfn convert_half_rte(short);
6223half __ovld __cnfn convert_half_rte(int);
6224half __ovld __cnfn convert_half_rte(long);
6225half __ovld __cnfn convert_half_rte(float);
6226half __ovld __cnfn convert_half_rte(half);
6227half __ovld __cnfn convert_half_rtp(uchar);
6228half __ovld __cnfn convert_half_rtp(ushort);
6229half __ovld __cnfn convert_half_rtp(uint);
6230half __ovld __cnfn convert_half_rtp(ulong);
6231half __ovld __cnfn convert_half_rtp(char);
6232half __ovld __cnfn convert_half_rtp(short);
6233half __ovld __cnfn convert_half_rtp(int);
6234half __ovld __cnfn convert_half_rtp(long);
6235half __ovld __cnfn convert_half_rtp(float);
6236half __ovld __cnfn convert_half_rtp(half);
6237half __ovld __cnfn convert_half_rtn(uchar);
6238half __ovld __cnfn convert_half_rtn(ushort);
6239half __ovld __cnfn convert_half_rtn(uint);
6240half __ovld __cnfn convert_half_rtn(ulong);
6241half __ovld __cnfn convert_half_rtn(char);
6242half __ovld __cnfn convert_half_rtn(short);
6243half __ovld __cnfn convert_half_rtn(int);
6244half __ovld __cnfn convert_half_rtn(long);
6245half __ovld __cnfn convert_half_rtn(float);
6246half __ovld __cnfn convert_half_rtn(half);
6247half __ovld __cnfn convert_half_rtz(uchar);
6248half __ovld __cnfn convert_half_rtz(ushort);
6249half __ovld __cnfn convert_half_rtz(uint);
6250half __ovld __cnfn convert_half_rtz(ulong);
6251half __ovld __cnfn convert_half_rtz(char);
6252half __ovld __cnfn convert_half_rtz(short);
6253half __ovld __cnfn convert_half_rtz(int);
6254half __ovld __cnfn convert_half_rtz(long);
6255half __ovld __cnfn convert_half_rtz(float);
6256half __ovld __cnfn convert_half_rtz(half);
6257half2 __ovld __cnfn convert_half2(char2);
6258half2 __ovld __cnfn convert_half2(uchar2);
6259half2 __ovld __cnfn convert_half2(short2);
6260half2 __ovld __cnfn convert_half2(ushort2);
6261half2 __ovld __cnfn convert_half2(int2);
6262half2 __ovld __cnfn convert_half2(uint2);
6263half2 __ovld __cnfn convert_half2(long2);
6264half2 __ovld __cnfn convert_half2(ulong2);
6265half2 __ovld __cnfn convert_half2(float2);
6266half2 __ovld __cnfn convert_half2(half2);
6267half2 __ovld __cnfn convert_half2_rte(char2);
6268half2 __ovld __cnfn convert_half2_rte(uchar2);
6269half2 __ovld __cnfn convert_half2_rte(short2);
6270half2 __ovld __cnfn convert_half2_rte(ushort2);
6271half2 __ovld __cnfn convert_half2_rte(int2);
6272half2 __ovld __cnfn convert_half2_rte(uint2);
6273half2 __ovld __cnfn convert_half2_rte(long2);
6274half2 __ovld __cnfn convert_half2_rte(ulong2);
6275half2 __ovld __cnfn convert_half2_rte(float2);
6276half2 __ovld __cnfn convert_half2_rte(half2);
6277half2 __ovld __cnfn convert_half2_rtp(char2);
6278half2 __ovld __cnfn convert_half2_rtp(uchar2);
6279half2 __ovld __cnfn convert_half2_rtp(short2);
6280half2 __ovld __cnfn convert_half2_rtp(ushort2);
6281half2 __ovld __cnfn convert_half2_rtp(int2);
6282half2 __ovld __cnfn convert_half2_rtp(uint2);
6283half2 __ovld __cnfn convert_half2_rtp(long2);
6284half2 __ovld __cnfn convert_half2_rtp(ulong2);
6285half2 __ovld __cnfn convert_half2_rtp(float2);
6286half2 __ovld __cnfn convert_half2_rtp(half2);
6287half2 __ovld __cnfn convert_half2_rtn(char2);
6288half2 __ovld __cnfn convert_half2_rtn(uchar2);
6289half2 __ovld __cnfn convert_half2_rtn(short2);
6290half2 __ovld __cnfn convert_half2_rtn(ushort2);
6291half2 __ovld __cnfn convert_half2_rtn(int2);
6292half2 __ovld __cnfn convert_half2_rtn(uint2);
6293half2 __ovld __cnfn convert_half2_rtn(long2);
6294half2 __ovld __cnfn convert_half2_rtn(ulong2);
6295half2 __ovld __cnfn convert_half2_rtn(float2);
6296half2 __ovld __cnfn convert_half2_rtn(half2);
6297half2 __ovld __cnfn convert_half2_rtz(char2);
6298half2 __ovld __cnfn convert_half2_rtz(uchar2);
6299half2 __ovld __cnfn convert_half2_rtz(short2);
6300half2 __ovld __cnfn convert_half2_rtz(ushort2);
6301half2 __ovld __cnfn convert_half2_rtz(int2);
6302half2 __ovld __cnfn convert_half2_rtz(uint2);
6303half2 __ovld __cnfn convert_half2_rtz(long2);
6304half2 __ovld __cnfn convert_half2_rtz(ulong2);
6305half2 __ovld __cnfn convert_half2_rtz(float2);
6306half2 __ovld __cnfn convert_half2_rtz(half2);
6307half3 __ovld __cnfn convert_half3(char3);
6308half3 __ovld __cnfn convert_half3(uchar3);
6309half3 __ovld __cnfn convert_half3(short3);
6310half3 __ovld __cnfn convert_half3(ushort3);
6311half3 __ovld __cnfn convert_half3(int3);
6312half3 __ovld __cnfn convert_half3(uint3);
6313half3 __ovld __cnfn convert_half3(long3);
6314half3 __ovld __cnfn convert_half3(ulong3);
6315half3 __ovld __cnfn convert_half3(float3);
6316half3 __ovld __cnfn convert_half3(half3);
6317half3 __ovld __cnfn convert_half3_rte(char3);
6318half3 __ovld __cnfn convert_half3_rte(uchar3);
6319half3 __ovld __cnfn convert_half3_rte(short3);
6320half3 __ovld __cnfn convert_half3_rte(ushort3);
6321half3 __ovld __cnfn convert_half3_rte(int3);
6322half3 __ovld __cnfn convert_half3_rte(uint3);
6323half3 __ovld __cnfn convert_half3_rte(long3);
6324half3 __ovld __cnfn convert_half3_rte(ulong3);
6325half3 __ovld __cnfn convert_half3_rte(float3);
6326half3 __ovld __cnfn convert_half3_rte(half3);
6327half3 __ovld __cnfn convert_half3_rtp(char3);
6328half3 __ovld __cnfn convert_half3_rtp(uchar3);
6329half3 __ovld __cnfn convert_half3_rtp(short3);
6330half3 __ovld __cnfn convert_half3_rtp(ushort3);
6331half3 __ovld __cnfn convert_half3_rtp(int3);
6332half3 __ovld __cnfn convert_half3_rtp(uint3);
6333half3 __ovld __cnfn convert_half3_rtp(long3);
6334half3 __ovld __cnfn convert_half3_rtp(ulong3);
6335half3 __ovld __cnfn convert_half3_rtp(float3);
6336half3 __ovld __cnfn convert_half3_rtp(half3);
6337half3 __ovld __cnfn convert_half3_rtn(char3);
6338half3 __ovld __cnfn convert_half3_rtn(uchar3);
6339half3 __ovld __cnfn convert_half3_rtn(short3);
6340half3 __ovld __cnfn convert_half3_rtn(ushort3);
6341half3 __ovld __cnfn convert_half3_rtn(int3);
6342half3 __ovld __cnfn convert_half3_rtn(uint3);
6343half3 __ovld __cnfn convert_half3_rtn(long3);
6344half3 __ovld __cnfn convert_half3_rtn(ulong3);
6345half3 __ovld __cnfn convert_half3_rtn(float3);
6346half3 __ovld __cnfn convert_half3_rtn(half3);
6347half3 __ovld __cnfn convert_half3_rtz(char3);
6348half3 __ovld __cnfn convert_half3_rtz(uchar3);
6349half3 __ovld __cnfn convert_half3_rtz(short3);
6350half3 __ovld __cnfn convert_half3_rtz(ushort3);
6351half3 __ovld __cnfn convert_half3_rtz(int3);
6352half3 __ovld __cnfn convert_half3_rtz(uint3);
6353half3 __ovld __cnfn convert_half3_rtz(long3);
6354half3 __ovld __cnfn convert_half3_rtz(ulong3);
6355half3 __ovld __cnfn convert_half3_rtz(float3);
6356half3 __ovld __cnfn convert_half3_rtz(half3);
6357half4 __ovld __cnfn convert_half4(char4);
6358half4 __ovld __cnfn convert_half4(uchar4);
6359half4 __ovld __cnfn convert_half4(short4);
6360half4 __ovld __cnfn convert_half4(ushort4);
6361half4 __ovld __cnfn convert_half4(int4);
6362half4 __ovld __cnfn convert_half4(uint4);
6363half4 __ovld __cnfn convert_half4(long4);
6364half4 __ovld __cnfn convert_half4(ulong4);
6365half4 __ovld __cnfn convert_half4(float4);
6366half4 __ovld __cnfn convert_half4(half4);
6367half4 __ovld __cnfn convert_half4_rte(char4);
6368half4 __ovld __cnfn convert_half4_rte(uchar4);
6369half4 __ovld __cnfn convert_half4_rte(short4);
6370half4 __ovld __cnfn convert_half4_rte(ushort4);
6371half4 __ovld __cnfn convert_half4_rte(int4);
6372half4 __ovld __cnfn convert_half4_rte(uint4);
6373half4 __ovld __cnfn convert_half4_rte(long4);
6374half4 __ovld __cnfn convert_half4_rte(ulong4);
6375half4 __ovld __cnfn convert_half4_rte(float4);
6376half4 __ovld __cnfn convert_half4_rte(half4);
6377half4 __ovld __cnfn convert_half4_rtp(char4);
6378half4 __ovld __cnfn convert_half4_rtp(uchar4);
6379half4 __ovld __cnfn convert_half4_rtp(short4);
6380half4 __ovld __cnfn convert_half4_rtp(ushort4);
6381half4 __ovld __cnfn convert_half4_rtp(int4);
6382half4 __ovld __cnfn convert_half4_rtp(uint4);
6383half4 __ovld __cnfn convert_half4_rtp(long4);
6384half4 __ovld __cnfn convert_half4_rtp(ulong4);
6385half4 __ovld __cnfn convert_half4_rtp(float4);
6386half4 __ovld __cnfn convert_half4_rtp(half4);
6387half4 __ovld __cnfn convert_half4_rtn(char4);
6388half4 __ovld __cnfn convert_half4_rtn(uchar4);
6389half4 __ovld __cnfn convert_half4_rtn(short4);
6390half4 __ovld __cnfn convert_half4_rtn(ushort4);
6391half4 __ovld __cnfn convert_half4_rtn(int4);
6392half4 __ovld __cnfn convert_half4_rtn(uint4);
6393half4 __ovld __cnfn convert_half4_rtn(long4);
6394half4 __ovld __cnfn convert_half4_rtn(ulong4);
6395half4 __ovld __cnfn convert_half4_rtn(float4);
6396half4 __ovld __cnfn convert_half4_rtn(half4);
6397half4 __ovld __cnfn convert_half4_rtz(char4);
6398half4 __ovld __cnfn convert_half4_rtz(uchar4);
6399half4 __ovld __cnfn convert_half4_rtz(short4);
6400half4 __ovld __cnfn convert_half4_rtz(ushort4);
6401half4 __ovld __cnfn convert_half4_rtz(int4);
6402half4 __ovld __cnfn convert_half4_rtz(uint4);
6403half4 __ovld __cnfn convert_half4_rtz(long4);
6404half4 __ovld __cnfn convert_half4_rtz(ulong4);
6405half4 __ovld __cnfn convert_half4_rtz(float4);
6406half4 __ovld __cnfn convert_half4_rtz(half4);
6407half8 __ovld __cnfn convert_half8(char8);
6408half8 __ovld __cnfn convert_half8(uchar8);
6409half8 __ovld __cnfn convert_half8(short8);
6410half8 __ovld __cnfn convert_half8(ushort8);
6411half8 __ovld __cnfn convert_half8(int8);
6412half8 __ovld __cnfn convert_half8(uint8);
6413half8 __ovld __cnfn convert_half8(long8);
6414half8 __ovld __cnfn convert_half8(ulong8);
6415half8 __ovld __cnfn convert_half8(float8);
6416half8 __ovld __cnfn convert_half8(half8);
6417half8 __ovld __cnfn convert_half8_rte(char8);
6418half8 __ovld __cnfn convert_half8_rte(uchar8);
6419half8 __ovld __cnfn convert_half8_rte(short8);
6420half8 __ovld __cnfn convert_half8_rte(ushort8);
6421half8 __ovld __cnfn convert_half8_rte(int8);
6422half8 __ovld __cnfn convert_half8_rte(uint8);
6423half8 __ovld __cnfn convert_half8_rte(long8);
6424half8 __ovld __cnfn convert_half8_rte(ulong8);
6425half8 __ovld __cnfn convert_half8_rte(float8);
6426half8 __ovld __cnfn convert_half8_rte(half8);
6427half8 __ovld __cnfn convert_half8_rtp(char8);
6428half8 __ovld __cnfn convert_half8_rtp(uchar8);
6429half8 __ovld __cnfn convert_half8_rtp(short8);
6430half8 __ovld __cnfn convert_half8_rtp(ushort8);
6431half8 __ovld __cnfn convert_half8_rtp(int8);
6432half8 __ovld __cnfn convert_half8_rtp(uint8);
6433half8 __ovld __cnfn convert_half8_rtp(long8);
6434half8 __ovld __cnfn convert_half8_rtp(ulong8);
6435half8 __ovld __cnfn convert_half8_rtp(float8);
6436half8 __ovld __cnfn convert_half8_rtp(half8);
6437half8 __ovld __cnfn convert_half8_rtn(char8);
6438half8 __ovld __cnfn convert_half8_rtn(uchar8);
6439half8 __ovld __cnfn convert_half8_rtn(short8);
6440half8 __ovld __cnfn convert_half8_rtn(ushort8);
6441half8 __ovld __cnfn convert_half8_rtn(int8);
6442half8 __ovld __cnfn convert_half8_rtn(uint8);
6443half8 __ovld __cnfn convert_half8_rtn(long8);
6444half8 __ovld __cnfn convert_half8_rtn(ulong8);
6445half8 __ovld __cnfn convert_half8_rtn(float8);
6446half8 __ovld __cnfn convert_half8_rtn(half8);
6447half8 __ovld __cnfn convert_half8_rtz(char8);
6448half8 __ovld __cnfn convert_half8_rtz(uchar8);
6449half8 __ovld __cnfn convert_half8_rtz(short8);
6450half8 __ovld __cnfn convert_half8_rtz(ushort8);
6451half8 __ovld __cnfn convert_half8_rtz(int8);
6452half8 __ovld __cnfn convert_half8_rtz(uint8);
6453half8 __ovld __cnfn convert_half8_rtz(long8);
6454half8 __ovld __cnfn convert_half8_rtz(ulong8);
6455half8 __ovld __cnfn convert_half8_rtz(float8);
6456half8 __ovld __cnfn convert_half8_rtz(half8);
6457half16 __ovld __cnfn convert_half16(char16);
6458half16 __ovld __cnfn convert_half16(uchar16);
6459half16 __ovld __cnfn convert_half16(short16);
6460half16 __ovld __cnfn convert_half16(ushort16);
6461half16 __ovld __cnfn convert_half16(int16);
6462half16 __ovld __cnfn convert_half16(uint16);
6463half16 __ovld __cnfn convert_half16(long16);
6464half16 __ovld __cnfn convert_half16(ulong16);
6465half16 __ovld __cnfn convert_half16(float16);
6466half16 __ovld __cnfn convert_half16(half16);
6467half16 __ovld __cnfn convert_half16_rte(char16);
6468half16 __ovld __cnfn convert_half16_rte(uchar16);
6469half16 __ovld __cnfn convert_half16_rte(short16);
6470half16 __ovld __cnfn convert_half16_rte(ushort16);
6471half16 __ovld __cnfn convert_half16_rte(int16);
6472half16 __ovld __cnfn convert_half16_rte(uint16);
6473half16 __ovld __cnfn convert_half16_rte(long16);
6474half16 __ovld __cnfn convert_half16_rte(ulong16);
6475half16 __ovld __cnfn convert_half16_rte(float16);
6476half16 __ovld __cnfn convert_half16_rte(half16);
6477half16 __ovld __cnfn convert_half16_rtp(char16);
6478half16 __ovld __cnfn convert_half16_rtp(uchar16);
6479half16 __ovld __cnfn convert_half16_rtp(short16);
6480half16 __ovld __cnfn convert_half16_rtp(ushort16);
6481half16 __ovld __cnfn convert_half16_rtp(int16);
6482half16 __ovld __cnfn convert_half16_rtp(uint16);
6483half16 __ovld __cnfn convert_half16_rtp(long16);
6484half16 __ovld __cnfn convert_half16_rtp(ulong16);
6485half16 __ovld __cnfn convert_half16_rtp(float16);
6486half16 __ovld __cnfn convert_half16_rtp(half16);
6487half16 __ovld __cnfn convert_half16_rtn(char16);
6488half16 __ovld __cnfn convert_half16_rtn(uchar16);
6489half16 __ovld __cnfn convert_half16_rtn(short16);
6490half16 __ovld __cnfn convert_half16_rtn(ushort16);
6491half16 __ovld __cnfn convert_half16_rtn(int16);
6492half16 __ovld __cnfn convert_half16_rtn(uint16);
6493half16 __ovld __cnfn convert_half16_rtn(long16);
6494half16 __ovld __cnfn convert_half16_rtn(ulong16);
6495half16 __ovld __cnfn convert_half16_rtn(float16);
6496half16 __ovld __cnfn convert_half16_rtn(half16);
6497half16 __ovld __cnfn convert_half16_rtz(char16);
6498half16 __ovld __cnfn convert_half16_rtz(uchar16);
6499half16 __ovld __cnfn convert_half16_rtz(short16);
6500half16 __ovld __cnfn convert_half16_rtz(ushort16);
6501half16 __ovld __cnfn convert_half16_rtz(int16);
6502half16 __ovld __cnfn convert_half16_rtz(uint16);
6503half16 __ovld __cnfn convert_half16_rtz(long16);
6504half16 __ovld __cnfn convert_half16_rtz(ulong16);
6505half16 __ovld __cnfn convert_half16_rtz(float16);
6506half16 __ovld __cnfn convert_half16_rtz(half16);
6507
6508// Convert half types to double types.
6509#ifdef cl_khr_fp64
6510double __ovld __cnfn convert_double(half);
6511double __ovld __cnfn convert_double_rte(half);
6512double __ovld __cnfn convert_double_rtp(half);
6513double __ovld __cnfn convert_double_rtn(half);
6514double __ovld __cnfn convert_double_rtz(half);
6515double2 __ovld __cnfn convert_double2(half2);
6516double2 __ovld __cnfn convert_double2_rte(half2);
6517double2 __ovld __cnfn convert_double2_rtp(half2);
6518double2 __ovld __cnfn convert_double2_rtn(half2);
6519double2 __ovld __cnfn convert_double2_rtz(half2);
6520double3 __ovld __cnfn convert_double3(half3);
6521double3 __ovld __cnfn convert_double3_rte(half3);
6522double3 __ovld __cnfn convert_double3_rtp(half3);
6523double3 __ovld __cnfn convert_double3_rtn(half3);
6524double3 __ovld __cnfn convert_double3_rtz(half3);
6525double4 __ovld __cnfn convert_double4(half4);
6526double4 __ovld __cnfn convert_double4_rte(half4);
6527double4 __ovld __cnfn convert_double4_rtp(half4);
6528double4 __ovld __cnfn convert_double4_rtn(half4);
6529double4 __ovld __cnfn convert_double4_rtz(half4);
6530double8 __ovld __cnfn convert_double8(half8);
6531double8 __ovld __cnfn convert_double8_rte(half8);
6532double8 __ovld __cnfn convert_double8_rtp(half8);
6533double8 __ovld __cnfn convert_double8_rtn(half8);
6534double8 __ovld __cnfn convert_double8_rtz(half8);
6535double16 __ovld __cnfn convert_double16(half16);
6536double16 __ovld __cnfn convert_double16_rte(half16);
6537double16 __ovld __cnfn convert_double16_rtp(half16);
6538double16 __ovld __cnfn convert_double16_rtn(half16);
6539double16 __ovld __cnfn convert_double16_rtz(half16);
6540
6541// Convert double types to half types.
6542half __ovld __cnfn convert_half(double);
6543half __ovld __cnfn convert_half_rte(double);
6544half __ovld __cnfn convert_half_rtp(double);
6545half __ovld __cnfn convert_half_rtn(double);
6546half __ovld __cnfn convert_half_rtz(double);
6547half2 __ovld __cnfn convert_half2(double2);
6548half2 __ovld __cnfn convert_half2_rte(double2);
6549half2 __ovld __cnfn convert_half2_rtp(double2);
6550half2 __ovld __cnfn convert_half2_rtn(double2);
6551half2 __ovld __cnfn convert_half2_rtz(double2);
6552half3 __ovld __cnfn convert_half3(double3);
6553half3 __ovld __cnfn convert_half3_rte(double3);
6554half3 __ovld __cnfn convert_half3_rtp(double3);
6555half3 __ovld __cnfn convert_half3_rtn(double3);
6556half3 __ovld __cnfn convert_half3_rtz(double3);
6557half4 __ovld __cnfn convert_half4(double4);
6558half4 __ovld __cnfn convert_half4_rte(double4);
6559half4 __ovld __cnfn convert_half4_rtp(double4);
6560half4 __ovld __cnfn convert_half4_rtn(double4);
6561half4 __ovld __cnfn convert_half4_rtz(double4);
6562half8 __ovld __cnfn convert_half8(double8);
6563half8 __ovld __cnfn convert_half8_rte(double8);
6564half8 __ovld __cnfn convert_half8_rtp(double8);
6565half8 __ovld __cnfn convert_half8_rtn(double8);
6566half8 __ovld __cnfn convert_half8_rtz(double8);
6567half16 __ovld __cnfn convert_half16(double16);
6568half16 __ovld __cnfn convert_half16_rte(double16);
6569half16 __ovld __cnfn convert_half16_rtp(double16);
6570half16 __ovld __cnfn convert_half16_rtn(double16);
6571half16 __ovld __cnfn convert_half16_rtz(double16);
6572#endif //cl_khr_fp64
6573
6574#endif // cl_khr_fp16
6575
6576/**
6577 * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
6578 * Reinterprets a data type as another data type of the same size
6579 */
6580char __ovld __cnfn as_char(char);
6581char __ovld __cnfn as_char(uchar);
6582
6583char2 __ovld __cnfn as_char2(char2);
6584char2 __ovld __cnfn as_char2(uchar2);
6585char2 __ovld __cnfn as_char2(short);
6586char2 __ovld __cnfn as_char2(ushort);
6587
6588char3 __ovld __cnfn as_char3(char3);
6589char3 __ovld __cnfn as_char3(char4);
6590char3 __ovld __cnfn as_char3(uchar3);
6591char3 __ovld __cnfn as_char3(uchar4);
6592char3 __ovld __cnfn as_char3(short2);
6593char3 __ovld __cnfn as_char3(ushort2);
6594char3 __ovld __cnfn as_char3(int);
6595char3 __ovld __cnfn as_char3(uint);
6596char3 __ovld __cnfn as_char3(float);
6597
6598char4 __ovld __cnfn as_char4(char3);
6599char4 __ovld __cnfn as_char4(char4);
6600char4 __ovld __cnfn as_char4(uchar3);
6601char4 __ovld __cnfn as_char4(uchar4);
6602char4 __ovld __cnfn as_char4(short2);
6603char4 __ovld __cnfn as_char4(ushort2);
6604char4 __ovld __cnfn as_char4(int);
6605char4 __ovld __cnfn as_char4(uint);
6606char4 __ovld __cnfn as_char4(float);
6607
6608char8 __ovld __cnfn as_char8(char8);
6609char8 __ovld __cnfn as_char8(uchar8);
6610char8 __ovld __cnfn as_char8(short3);
6611char8 __ovld __cnfn as_char8(short4);
6612char8 __ovld __cnfn as_char8(ushort3);
6613char8 __ovld __cnfn as_char8(ushort4);
6614char8 __ovld __cnfn as_char8(int2);
6615char8 __ovld __cnfn as_char8(uint2);
6616char8 __ovld __cnfn as_char8(long);
6617char8 __ovld __cnfn as_char8(ulong);
6618char8 __ovld __cnfn as_char8(float2);
6619
6620char16 __ovld __cnfn as_char16(char16);
6621char16 __ovld __cnfn as_char16(uchar16);
6622char16 __ovld __cnfn as_char16(short8);
6623char16 __ovld __cnfn as_char16(ushort8);
6624char16 __ovld __cnfn as_char16(int3);
6625char16 __ovld __cnfn as_char16(int4);
6626char16 __ovld __cnfn as_char16(uint3);
6627char16 __ovld __cnfn as_char16(uint4);
6628char16 __ovld __cnfn as_char16(long2);
6629char16 __ovld __cnfn as_char16(ulong2);
6630char16 __ovld __cnfn as_char16(float3);
6631char16 __ovld __cnfn as_char16(float4);
6632
6633uchar __ovld __cnfn as_uchar(char);
6634uchar __ovld __cnfn as_uchar(uchar);
6635
6636uchar2 __ovld __cnfn as_uchar2(char2);
6637uchar2 __ovld __cnfn as_uchar2(uchar2);
6638uchar2 __ovld __cnfn as_uchar2(short);
6639uchar2 __ovld __cnfn as_uchar2(ushort);
6640
6641uchar3 __ovld __cnfn as_uchar3(char3);
6642uchar3 __ovld __cnfn as_uchar3(char4);
6643uchar3 __ovld __cnfn as_uchar3(uchar3);
6644uchar3 __ovld __cnfn as_uchar3(uchar4);
6645uchar3 __ovld __cnfn as_uchar3(short2);
6646uchar3 __ovld __cnfn as_uchar3(ushort2);
6647uchar3 __ovld __cnfn as_uchar3(int);
6648uchar3 __ovld __cnfn as_uchar3(uint);
6649uchar3 __ovld __cnfn as_uchar3(float);
6650
6651uchar4 __ovld __cnfn as_uchar4(char3);
6652uchar4 __ovld __cnfn as_uchar4(char4);
6653uchar4 __ovld __cnfn as_uchar4(uchar3);
6654uchar4 __ovld __cnfn as_uchar4(uchar4);
6655uchar4 __ovld __cnfn as_uchar4(short2);
6656uchar4 __ovld __cnfn as_uchar4(ushort2);
6657uchar4 __ovld __cnfn as_uchar4(int);
6658uchar4 __ovld __cnfn as_uchar4(uint);
6659uchar4 __ovld __cnfn as_uchar4(float);
6660
6661uchar8 __ovld __cnfn as_uchar8(char8);
6662uchar8 __ovld __cnfn as_uchar8(uchar8);
6663uchar8 __ovld __cnfn as_uchar8(short3);
6664uchar8 __ovld __cnfn as_uchar8(short4);
6665uchar8 __ovld __cnfn as_uchar8(ushort3);
6666uchar8 __ovld __cnfn as_uchar8(ushort4);
6667uchar8 __ovld __cnfn as_uchar8(int2);
6668uchar8 __ovld __cnfn as_uchar8(uint2);
6669uchar8 __ovld __cnfn as_uchar8(long);
6670uchar8 __ovld __cnfn as_uchar8(ulong);
6671uchar8 __ovld __cnfn as_uchar8(float2);
6672
6673uchar16 __ovld __cnfn as_uchar16(char16);
6674uchar16 __ovld __cnfn as_uchar16(uchar16);
6675uchar16 __ovld __cnfn as_uchar16(short8);
6676uchar16 __ovld __cnfn as_uchar16(ushort8);
6677uchar16 __ovld __cnfn as_uchar16(int3);
6678uchar16 __ovld __cnfn as_uchar16(int4);
6679uchar16 __ovld __cnfn as_uchar16(uint3);
6680uchar16 __ovld __cnfn as_uchar16(uint4);
6681uchar16 __ovld __cnfn as_uchar16(long2);
6682uchar16 __ovld __cnfn as_uchar16(ulong2);
6683uchar16 __ovld __cnfn as_uchar16(float3);
6684uchar16 __ovld __cnfn as_uchar16(float4);
6685
6686short __ovld __cnfn as_short(char2);
6687short __ovld __cnfn as_short(uchar2);
6688short __ovld __cnfn as_short(short);
6689short __ovld __cnfn as_short(ushort);
6690
6691short2 __ovld __cnfn as_short2(char3);
6692short2 __ovld __cnfn as_short2(char4);
6693short2 __ovld __cnfn as_short2(uchar3);
6694short2 __ovld __cnfn as_short2(uchar4);
6695short2 __ovld __cnfn as_short2(short2);
6696short2 __ovld __cnfn as_short2(ushort2);
6697short2 __ovld __cnfn as_short2(int);
6698short2 __ovld __cnfn as_short2(uint);
6699short2 __ovld __cnfn as_short2(float);
6700
6701short3 __ovld __cnfn as_short3(char8);
6702short3 __ovld __cnfn as_short3(uchar8);
6703short3 __ovld __cnfn as_short3(short3);
6704short3 __ovld __cnfn as_short3(short4);
6705short3 __ovld __cnfn as_short3(ushort3);
6706short3 __ovld __cnfn as_short3(ushort4);
6707short3 __ovld __cnfn as_short3(int2);
6708short3 __ovld __cnfn as_short3(uint2);
6709short3 __ovld __cnfn as_short3(long);
6710short3 __ovld __cnfn as_short3(ulong);
6711short3 __ovld __cnfn as_short3(float2);
6712
6713short4 __ovld __cnfn as_short4(char8);
6714short4 __ovld __cnfn as_short4(uchar8);
6715short4 __ovld __cnfn as_short4(short3);
6716short4 __ovld __cnfn as_short4(short4);
6717short4 __ovld __cnfn as_short4(ushort3);
6718short4 __ovld __cnfn as_short4(ushort4);
6719short4 __ovld __cnfn as_short4(int2);
6720short4 __ovld __cnfn as_short4(uint2);
6721short4 __ovld __cnfn as_short4(long);
6722short4 __ovld __cnfn as_short4(ulong);
6723short4 __ovld __cnfn as_short4(float2);
6724
6725short8 __ovld __cnfn as_short8(char16);
6726short8 __ovld __cnfn as_short8(uchar16);
6727short8 __ovld __cnfn as_short8(short8);
6728short8 __ovld __cnfn as_short8(ushort8);
6729short8 __ovld __cnfn as_short8(int3);
6730short8 __ovld __cnfn as_short8(int4);
6731short8 __ovld __cnfn as_short8(uint3);
6732short8 __ovld __cnfn as_short8(uint4);
6733short8 __ovld __cnfn as_short8(long2);
6734short8 __ovld __cnfn as_short8(ulong2);
6735short8 __ovld __cnfn as_short8(float3);
6736short8 __ovld __cnfn as_short8(float4);
6737
6738short16 __ovld __cnfn as_short16(short16);
6739short16 __ovld __cnfn as_short16(ushort16);
6740short16 __ovld __cnfn as_short16(int8);
6741short16 __ovld __cnfn as_short16(uint8);
6742short16 __ovld __cnfn as_short16(long3);
6743short16 __ovld __cnfn as_short16(long4);
6744short16 __ovld __cnfn as_short16(ulong3);
6745short16 __ovld __cnfn as_short16(ulong4);
6746short16 __ovld __cnfn as_short16(float8);
6747
6748ushort __ovld __cnfn as_ushort(char2);
6749ushort __ovld __cnfn as_ushort(uchar2);
6750ushort __ovld __cnfn as_ushort(short);
6751ushort __ovld __cnfn as_ushort(ushort);
6752
6753ushort2 __ovld __cnfn as_ushort2(char3);
6754ushort2 __ovld __cnfn as_ushort2(char4);
6755ushort2 __ovld __cnfn as_ushort2(uchar3);
6756ushort2 __ovld __cnfn as_ushort2(uchar4);
6757ushort2 __ovld __cnfn as_ushort2(short2);
6758ushort2 __ovld __cnfn as_ushort2(ushort2);
6759ushort2 __ovld __cnfn as_ushort2(int);
6760ushort2 __ovld __cnfn as_ushort2(uint);
6761ushort2 __ovld __cnfn as_ushort2(float);
6762
6763ushort3 __ovld __cnfn as_ushort3(char8);
6764ushort3 __ovld __cnfn as_ushort3(uchar8);
6765ushort3 __ovld __cnfn as_ushort3(short3);
6766ushort3 __ovld __cnfn as_ushort3(short4);
6767ushort3 __ovld __cnfn as_ushort3(ushort3);
6768ushort3 __ovld __cnfn as_ushort3(ushort4);
6769ushort3 __ovld __cnfn as_ushort3(int2);
6770ushort3 __ovld __cnfn as_ushort3(uint2);
6771ushort3 __ovld __cnfn as_ushort3(long);
6772ushort3 __ovld __cnfn as_ushort3(ulong);
6773ushort3 __ovld __cnfn as_ushort3(float2);
6774
6775ushort4 __ovld __cnfn as_ushort4(char8);
6776ushort4 __ovld __cnfn as_ushort4(uchar8);
6777ushort4 __ovld __cnfn as_ushort4(short3);
6778ushort4 __ovld __cnfn as_ushort4(short4);
6779ushort4 __ovld __cnfn as_ushort4(ushort3);
6780ushort4 __ovld __cnfn as_ushort4(ushort4);
6781ushort4 __ovld __cnfn as_ushort4(int2);
6782ushort4 __ovld __cnfn as_ushort4(uint2);
6783ushort4 __ovld __cnfn as_ushort4(long);
6784ushort4 __ovld __cnfn as_ushort4(ulong);
6785ushort4 __ovld __cnfn as_ushort4(float2);
6786
6787ushort8 __ovld __cnfn as_ushort8(char16);
6788ushort8 __ovld __cnfn as_ushort8(uchar16);
6789ushort8 __ovld __cnfn as_ushort8(short8);
6790ushort8 __ovld __cnfn as_ushort8(ushort8);
6791ushort8 __ovld __cnfn as_ushort8(int3);
6792ushort8 __ovld __cnfn as_ushort8(int4);
6793ushort8 __ovld __cnfn as_ushort8(uint3);
6794ushort8 __ovld __cnfn as_ushort8(uint4);
6795ushort8 __ovld __cnfn as_ushort8(long2);
6796ushort8 __ovld __cnfn as_ushort8(ulong2);
6797ushort8 __ovld __cnfn as_ushort8(float3);
6798ushort8 __ovld __cnfn as_ushort8(float4);
6799
6800ushort16 __ovld __cnfn as_ushort16(short16);
6801ushort16 __ovld __cnfn as_ushort16(ushort16);
6802ushort16 __ovld __cnfn as_ushort16(int8);
6803ushort16 __ovld __cnfn as_ushort16(uint8);
6804ushort16 __ovld __cnfn as_ushort16(long3);
6805ushort16 __ovld __cnfn as_ushort16(long4);
6806ushort16 __ovld __cnfn as_ushort16(ulong3);
6807ushort16 __ovld __cnfn as_ushort16(ulong4);
6808ushort16 __ovld __cnfn as_ushort16(float8);
6809
6810int __ovld __cnfn as_int(char3);
6811int __ovld __cnfn as_int(char4);
6812int __ovld __cnfn as_int(uchar3);
6813int __ovld __cnfn as_int(uchar4);
6814int __ovld __cnfn as_int(short2);
6815int __ovld __cnfn as_int(ushort2);
6816int __ovld __cnfn as_int(int);
6817int __ovld __cnfn as_int(uint);
6818int __ovld __cnfn as_int(float);
6819
6820int2 __ovld __cnfn as_int2(char8);
6821int2 __ovld __cnfn as_int2(uchar8);
6822int2 __ovld __cnfn as_int2(short3);
6823int2 __ovld __cnfn as_int2(short4);
6824int2 __ovld __cnfn as_int2(ushort3);
6825int2 __ovld __cnfn as_int2(ushort4);
6826int2 __ovld __cnfn as_int2(int2);
6827int2 __ovld __cnfn as_int2(uint2);
6828int2 __ovld __cnfn as_int2(long);
6829int2 __ovld __cnfn as_int2(ulong);
6830int2 __ovld __cnfn as_int2(float2);
6831
6832int3 __ovld __cnfn as_int3(char16);
6833int3 __ovld __cnfn as_int3(uchar16);
6834int3 __ovld __cnfn as_int3(short8);
6835int3 __ovld __cnfn as_int3(ushort8);
6836int3 __ovld __cnfn as_int3(int3);
6837int3 __ovld __cnfn as_int3(int4);
6838int3 __ovld __cnfn as_int3(uint3);
6839int3 __ovld __cnfn as_int3(uint4);
6840int3 __ovld __cnfn as_int3(long2);
6841int3 __ovld __cnfn as_int3(ulong2);
6842int3 __ovld __cnfn as_int3(float3);
6843int3 __ovld __cnfn as_int3(float4);
6844
6845int4 __ovld __cnfn as_int4(char16);
6846int4 __ovld __cnfn as_int4(uchar16);
6847int4 __ovld __cnfn as_int4(short8);
6848int4 __ovld __cnfn as_int4(ushort8);
6849int4 __ovld __cnfn as_int4(int3);
6850int4 __ovld __cnfn as_int4(int4);
6851int4 __ovld __cnfn as_int4(uint3);
6852int4 __ovld __cnfn as_int4(uint4);
6853int4 __ovld __cnfn as_int4(long2);
6854int4 __ovld __cnfn as_int4(ulong2);
6855int4 __ovld __cnfn as_int4(float3);
6856int4 __ovld __cnfn as_int4(float4);
6857
6858int8 __ovld __cnfn as_int8(short16);
6859int8 __ovld __cnfn as_int8(ushort16);
6860int8 __ovld __cnfn as_int8(int8);
6861int8 __ovld __cnfn as_int8(uint8);
6862int8 __ovld __cnfn as_int8(long3);
6863int8 __ovld __cnfn as_int8(long4);
6864int8 __ovld __cnfn as_int8(ulong3);
6865int8 __ovld __cnfn as_int8(ulong4);
6866int8 __ovld __cnfn as_int8(float8);
6867
6868int16 __ovld __cnfn as_int16(int16);
6869int16 __ovld __cnfn as_int16(uint16);
6870int16 __ovld __cnfn as_int16(long8);
6871int16 __ovld __cnfn as_int16(ulong8);
6872int16 __ovld __cnfn as_int16(float16);
6873
6874uint __ovld __cnfn as_uint(char3);
6875uint __ovld __cnfn as_uint(char4);
6876uint __ovld __cnfn as_uint(uchar3);
6877uint __ovld __cnfn as_uint(uchar4);
6878uint __ovld __cnfn as_uint(short2);
6879uint __ovld __cnfn as_uint(ushort2);
6880uint __ovld __cnfn as_uint(int);
6881uint __ovld __cnfn as_uint(uint);
6882uint __ovld __cnfn as_uint(float);
6883
6884uint2 __ovld __cnfn as_uint2(char8);
6885uint2 __ovld __cnfn as_uint2(uchar8);
6886uint2 __ovld __cnfn as_uint2(short3);
6887uint2 __ovld __cnfn as_uint2(short4);
6888uint2 __ovld __cnfn as_uint2(ushort3);
6889uint2 __ovld __cnfn as_uint2(ushort4);
6890uint2 __ovld __cnfn as_uint2(int2);
6891uint2 __ovld __cnfn as_uint2(uint2);
6892uint2 __ovld __cnfn as_uint2(long);
6893uint2 __ovld __cnfn as_uint2(ulong);
6894uint2 __ovld __cnfn as_uint2(float2);
6895
6896uint3 __ovld __cnfn as_uint3(char16);
6897uint3 __ovld __cnfn as_uint3(uchar16);
6898uint3 __ovld __cnfn as_uint3(short8);
6899uint3 __ovld __cnfn as_uint3(ushort8);
6900uint3 __ovld __cnfn as_uint3(int3);
6901uint3 __ovld __cnfn as_uint3(int4);
6902uint3 __ovld __cnfn as_uint3(uint3);
6903uint3 __ovld __cnfn as_uint3(uint4);
6904uint3 __ovld __cnfn as_uint3(long2);
6905uint3 __ovld __cnfn as_uint3(ulong2);
6906uint3 __ovld __cnfn as_uint3(float3);
6907uint3 __ovld __cnfn as_uint3(float4);
6908
6909uint4 __ovld __cnfn as_uint4(char16);
6910uint4 __ovld __cnfn as_uint4(uchar16);
6911uint4 __ovld __cnfn as_uint4(short8);
6912uint4 __ovld __cnfn as_uint4(ushort8);
6913uint4 __ovld __cnfn as_uint4(int3);
6914uint4 __ovld __cnfn as_uint4(int4);
6915uint4 __ovld __cnfn as_uint4(uint3);
6916uint4 __ovld __cnfn as_uint4(uint4);
6917uint4 __ovld __cnfn as_uint4(long2);
6918uint4 __ovld __cnfn as_uint4(ulong2);
6919uint4 __ovld __cnfn as_uint4(float3);
6920uint4 __ovld __cnfn as_uint4(float4);
6921
6922uint8 __ovld __cnfn as_uint8(short16);
6923uint8 __ovld __cnfn as_uint8(ushort16);
6924uint8 __ovld __cnfn as_uint8(int8);
6925uint8 __ovld __cnfn as_uint8(uint8);
6926uint8 __ovld __cnfn as_uint8(long3);
6927uint8 __ovld __cnfn as_uint8(long4);
6928uint8 __ovld __cnfn as_uint8(ulong3);
6929uint8 __ovld __cnfn as_uint8(ulong4);
6930uint8 __ovld __cnfn as_uint8(float8);
6931
6932uint16 __ovld __cnfn as_uint16(int16);
6933uint16 __ovld __cnfn as_uint16(uint16);
6934uint16 __ovld __cnfn as_uint16(long8);
6935uint16 __ovld __cnfn as_uint16(ulong8);
6936uint16 __ovld __cnfn as_uint16(float16);
6937
6938long __ovld __cnfn as_long(char8);
6939long __ovld __cnfn as_long(uchar8);
6940long __ovld __cnfn as_long(short3);
6941long __ovld __cnfn as_long(short4);
6942long __ovld __cnfn as_long(ushort3);
6943long __ovld __cnfn as_long(ushort4);
6944long __ovld __cnfn as_long(int2);
6945long __ovld __cnfn as_long(uint2);
6946long __ovld __cnfn as_long(long);
6947long __ovld __cnfn as_long(ulong);
6948long __ovld __cnfn as_long(float2);
6949
6950long2 __ovld __cnfn as_long2(char16);
6951long2 __ovld __cnfn as_long2(uchar16);
6952long2 __ovld __cnfn as_long2(short8);
6953long2 __ovld __cnfn as_long2(ushort8);
6954long2 __ovld __cnfn as_long2(int3);
6955long2 __ovld __cnfn as_long2(int4);
6956long2 __ovld __cnfn as_long2(uint3);
6957long2 __ovld __cnfn as_long2(uint4);
6958long2 __ovld __cnfn as_long2(long2);
6959long2 __ovld __cnfn as_long2(ulong2);
6960long2 __ovld __cnfn as_long2(float3);
6961long2 __ovld __cnfn as_long2(float4);
6962
6963long3 __ovld __cnfn as_long3(short16);
6964long3 __ovld __cnfn as_long3(ushort16);
6965long3 __ovld __cnfn as_long3(int8);
6966long3 __ovld __cnfn as_long3(uint8);
6967long3 __ovld __cnfn as_long3(long3);
6968long3 __ovld __cnfn as_long3(long4);
6969long3 __ovld __cnfn as_long3(ulong3);
6970long3 __ovld __cnfn as_long3(ulong4);
6971long3 __ovld __cnfn as_long3(float8);
6972
6973long4 __ovld __cnfn as_long4(short16);
6974long4 __ovld __cnfn as_long4(ushort16);
6975long4 __ovld __cnfn as_long4(int8);
6976long4 __ovld __cnfn as_long4(uint8);
6977long4 __ovld __cnfn as_long4(long3);
6978long4 __ovld __cnfn as_long4(long4);
6979long4 __ovld __cnfn as_long4(ulong3);
6980long4 __ovld __cnfn as_long4(ulong4);
6981long4 __ovld __cnfn as_long4(float8);
6982
6983long8 __ovld __cnfn as_long8(int16);
6984long8 __ovld __cnfn as_long8(uint16);
6985long8 __ovld __cnfn as_long8(long8);
6986long8 __ovld __cnfn as_long8(ulong8);
6987long8 __ovld __cnfn as_long8(float16);
6988
6989long16 __ovld __cnfn as_long16(long16);
6990long16 __ovld __cnfn as_long16(ulong16);
6991
6992ulong __ovld __cnfn as_ulong(char8);
6993ulong __ovld __cnfn as_ulong(uchar8);
6994ulong __ovld __cnfn as_ulong(short3);
6995ulong __ovld __cnfn as_ulong(short4);
6996ulong __ovld __cnfn as_ulong(ushort3);
6997ulong __ovld __cnfn as_ulong(ushort4);
6998ulong __ovld __cnfn as_ulong(int2);
6999ulong __ovld __cnfn as_ulong(uint2);
7000ulong __ovld __cnfn as_ulong(long);
7001ulong __ovld __cnfn as_ulong(ulong);
7002ulong __ovld __cnfn as_ulong(float2);
7003
7004ulong2 __ovld __cnfn as_ulong2(char16);
7005ulong2 __ovld __cnfn as_ulong2(uchar16);
7006ulong2 __ovld __cnfn as_ulong2(short8);
7007ulong2 __ovld __cnfn as_ulong2(ushort8);
7008ulong2 __ovld __cnfn as_ulong2(int3);
7009ulong2 __ovld __cnfn as_ulong2(int4);
7010ulong2 __ovld __cnfn as_ulong2(uint3);
7011ulong2 __ovld __cnfn as_ulong2(uint4);
7012ulong2 __ovld __cnfn as_ulong2(long2);
7013ulong2 __ovld __cnfn as_ulong2(ulong2);
7014ulong2 __ovld __cnfn as_ulong2(float3);
7015ulong2 __ovld __cnfn as_ulong2(float4);
7016
7017ulong3 __ovld __cnfn as_ulong3(short16);
7018ulong3 __ovld __cnfn as_ulong3(ushort16);
7019ulong3 __ovld __cnfn as_ulong3(int8);
7020ulong3 __ovld __cnfn as_ulong3(uint8);
7021ulong3 __ovld __cnfn as_ulong3(long3);
7022ulong3 __ovld __cnfn as_ulong3(long4);
7023ulong3 __ovld __cnfn as_ulong3(ulong3);
7024ulong3 __ovld __cnfn as_ulong3(ulong4);
7025ulong3 __ovld __cnfn as_ulong3(float8);
7026
7027ulong4 __ovld __cnfn as_ulong4(short16);
7028ulong4 __ovld __cnfn as_ulong4(ushort16);
7029ulong4 __ovld __cnfn as_ulong4(int8);
7030ulong4 __ovld __cnfn as_ulong4(uint8);
7031ulong4 __ovld __cnfn as_ulong4(long3);
7032ulong4 __ovld __cnfn as_ulong4(long4);
7033ulong4 __ovld __cnfn as_ulong4(ulong3);
7034ulong4 __ovld __cnfn as_ulong4(ulong4);
7035ulong4 __ovld __cnfn as_ulong4(float8);
7036
7037ulong8 __ovld __cnfn as_ulong8(int16);
7038ulong8 __ovld __cnfn as_ulong8(uint16);
7039ulong8 __ovld __cnfn as_ulong8(long8);
7040ulong8 __ovld __cnfn as_ulong8(ulong8);
7041ulong8 __ovld __cnfn as_ulong8(float16);
7042
7043ulong16 __ovld __cnfn as_ulong16(long16);
7044ulong16 __ovld __cnfn as_ulong16(ulong16);
7045
7046float __ovld __cnfn as_float(char3);
7047float __ovld __cnfn as_float(char4);
7048float __ovld __cnfn as_float(uchar3);
7049float __ovld __cnfn as_float(uchar4);
7050float __ovld __cnfn as_float(short2);
7051float __ovld __cnfn as_float(ushort2);
7052float __ovld __cnfn as_float(int);
7053float __ovld __cnfn as_float(uint);
7054float __ovld __cnfn as_float(float);
7055
7056float2 __ovld __cnfn as_float2(char8);
7057float2 __ovld __cnfn as_float2(uchar8);
7058float2 __ovld __cnfn as_float2(short3);
7059float2 __ovld __cnfn as_float2(short4);
7060float2 __ovld __cnfn as_float2(ushort3);
7061float2 __ovld __cnfn as_float2(ushort4);
7062float2 __ovld __cnfn as_float2(int2);
7063float2 __ovld __cnfn as_float2(uint2);
7064float2 __ovld __cnfn as_float2(long);
7065float2 __ovld __cnfn as_float2(ulong);
7066float2 __ovld __cnfn as_float2(float2);
7067
7068float3 __ovld __cnfn as_float3(char16);
7069float3 __ovld __cnfn as_float3(uchar16);
7070float3 __ovld __cnfn as_float3(short8);
7071float3 __ovld __cnfn as_float3(ushort8);
7072float3 __ovld __cnfn as_float3(int3);
7073float3 __ovld __cnfn as_float3(int4);
7074float3 __ovld __cnfn as_float3(uint3);
7075float3 __ovld __cnfn as_float3(uint4);
7076float3 __ovld __cnfn as_float3(long2);
7077float3 __ovld __cnfn as_float3(ulong2);
7078float3 __ovld __cnfn as_float3(float3);
7079float3 __ovld __cnfn as_float3(float4);
7080
7081float4 __ovld __cnfn as_float4(char16);
7082float4 __ovld __cnfn as_float4(uchar16);
7083float4 __ovld __cnfn as_float4(short8);
7084float4 __ovld __cnfn as_float4(ushort8);
7085float4 __ovld __cnfn as_float4(int3);
7086float4 __ovld __cnfn as_float4(int4);
7087float4 __ovld __cnfn as_float4(uint3);
7088float4 __ovld __cnfn as_float4(uint4);
7089float4 __ovld __cnfn as_float4(long2);
7090float4 __ovld __cnfn as_float4(ulong2);
7091float4 __ovld __cnfn as_float4(float3);
7092float4 __ovld __cnfn as_float4(float4);
7093
7094float8 __ovld __cnfn as_float8(short16);
7095float8 __ovld __cnfn as_float8(ushort16);
7096float8 __ovld __cnfn as_float8(int8);
7097float8 __ovld __cnfn as_float8(uint8);
7098float8 __ovld __cnfn as_float8(long3);
7099float8 __ovld __cnfn as_float8(long4);
7100float8 __ovld __cnfn as_float8(ulong3);
7101float8 __ovld __cnfn as_float8(ulong4);
7102float8 __ovld __cnfn as_float8(float8);
7103
7104float16 __ovld __cnfn as_float16(int16);
7105float16 __ovld __cnfn as_float16(uint16);
7106float16 __ovld __cnfn as_float16(long8);
7107float16 __ovld __cnfn as_float16(ulong8);
7108float16 __ovld __cnfn as_float16(float16);
7109
7110#ifdef cl_khr_fp64
7111char8 __ovld __cnfn as_char8(double);
7112char16 __ovld __cnfn as_char16(double2);
7113uchar8 __ovld __cnfn as_uchar8(double);
7114uchar16 __ovld __cnfn as_uchar16(double2);
7115short3 __ovld __cnfn as_short3(double);
7116short4 __ovld __cnfn as_short4(double);
7117short8 __ovld __cnfn as_short8(double2);
7118short16 __ovld __cnfn as_short16(double3);
7119short16 __ovld __cnfn as_short16(double4);
7120ushort3 __ovld __cnfn as_ushort3(double);
7121ushort4 __ovld __cnfn as_ushort4(double);
7122ushort8 __ovld __cnfn as_ushort8(double2);
7123ushort16 __ovld __cnfn as_ushort16(double3);
7124ushort16 __ovld __cnfn as_ushort16(double4);
7125int2 __ovld __cnfn as_int2(double);
7126int3 __ovld __cnfn as_int3(double2);
7127int4 __ovld __cnfn as_int4(double2);
7128int8 __ovld __cnfn as_int8(double3);
7129int8 __ovld __cnfn as_int8(double4);
7130int16 __ovld __cnfn as_int16(double8);
7131uint2 __ovld __cnfn as_uint2(double);
7132uint3 __ovld __cnfn as_uint3(double2);
7133uint4 __ovld __cnfn as_uint4(double2);
7134uint8 __ovld __cnfn as_uint8(double3);
7135uint8 __ovld __cnfn as_uint8(double4);
7136uint16 __ovld __cnfn as_uint16(double8);
7137long __ovld __cnfn as_long(double);
7138long2 __ovld __cnfn as_long2(double2);
7139long3 __ovld __cnfn as_long3(double3);
7140long3 __ovld __cnfn as_long3(double4);
7141long4 __ovld __cnfn as_long4(double3);
7142long4 __ovld __cnfn as_long4(double4);
7143long8 __ovld __cnfn as_long8(double8);
7144long16 __ovld __cnfn as_long16(double16);
7145ulong __ovld __cnfn as_ulong(double);
7146ulong2 __ovld __cnfn as_ulong2(double2);
7147ulong3 __ovld __cnfn as_ulong3(double3);
7148ulong3 __ovld __cnfn as_ulong3(double4);
7149ulong4 __ovld __cnfn as_ulong4(double3);
7150ulong4 __ovld __cnfn as_ulong4(double4);
7151ulong8 __ovld __cnfn as_ulong8(double8);
7152ulong16 __ovld __cnfn as_ulong16(double16);
7153float2 __ovld __cnfn as_float2(double);
7154float3 __ovld __cnfn as_float3(double2);
7155float4 __ovld __cnfn as_float4(double2);
7156float8 __ovld __cnfn as_float8(double3);
7157float8 __ovld __cnfn as_float8(double4);
7158float16 __ovld __cnfn as_float16(double8);
7159double __ovld __cnfn as_double(char8);
7160double __ovld __cnfn as_double(uchar8);
7161double __ovld __cnfn as_double(short3);
7162double __ovld __cnfn as_double(short4);
7163double __ovld __cnfn as_double(ushort3);
7164double __ovld __cnfn as_double(ushort4);
7165double __ovld __cnfn as_double(int2);
7166double __ovld __cnfn as_double(uint2);
7167double __ovld __cnfn as_double(long);
7168double __ovld __cnfn as_double(ulong);
7169double __ovld __cnfn as_double(float2);
7170double __ovld __cnfn as_double(double);
7171double2 __ovld __cnfn as_double2(char16);
7172double2 __ovld __cnfn as_double2(uchar16);
7173double2 __ovld __cnfn as_double2(short8);
7174double2 __ovld __cnfn as_double2(ushort8);
7175double2 __ovld __cnfn as_double2(int3);
7176double2 __ovld __cnfn as_double2(int4);
7177double2 __ovld __cnfn as_double2(uint3);
7178double2 __ovld __cnfn as_double2(uint4);
7179double2 __ovld __cnfn as_double2(long2);
7180double2 __ovld __cnfn as_double2(ulong2);
7181double2 __ovld __cnfn as_double2(float3);
7182double2 __ovld __cnfn as_double2(float4);
7183double2 __ovld __cnfn as_double2(double2);
7184double3 __ovld __cnfn as_double3(short16);
7185double3 __ovld __cnfn as_double3(ushort16);
7186double3 __ovld __cnfn as_double3(int8);
7187double3 __ovld __cnfn as_double3(uint8);
7188double3 __ovld __cnfn as_double3(long3);
7189double3 __ovld __cnfn as_double3(long4);
7190double3 __ovld __cnfn as_double3(ulong3);
7191double3 __ovld __cnfn as_double3(ulong4);
7192double3 __ovld __cnfn as_double3(float8);
7193double3 __ovld __cnfn as_double3(double3);
7194double3 __ovld __cnfn as_double3(double4);
7195double4 __ovld __cnfn as_double4(short16);
7196double4 __ovld __cnfn as_double4(ushort16);
7197double4 __ovld __cnfn as_double4(int8);
7198double4 __ovld __cnfn as_double4(uint8);
7199double4 __ovld __cnfn as_double4(long3);
7200double4 __ovld __cnfn as_double4(long4);
7201double4 __ovld __cnfn as_double4(ulong3);
7202double4 __ovld __cnfn as_double4(ulong4);
7203double4 __ovld __cnfn as_double4(float8);
7204double4 __ovld __cnfn as_double4(double3);
7205double4 __ovld __cnfn as_double4(double4);
7206double8 __ovld __cnfn as_double8(int16);
7207double8 __ovld __cnfn as_double8(uint16);
7208double8 __ovld __cnfn as_double8(long8);
7209double8 __ovld __cnfn as_double8(ulong8);
7210double8 __ovld __cnfn as_double8(float16);
7211double8 __ovld __cnfn as_double8(double8);
7212double16 __ovld __cnfn as_double16(long16);
7213double16 __ovld __cnfn as_double16(ulong16);
7214double16 __ovld __cnfn as_double16(double16);
7215#endif //cl_khr_fp64
7216
7217#ifdef cl_khr_fp16
7218char2 __ovld __cnfn as_char2(half);
7219char3 __ovld __cnfn as_char3(half2);
7220char4 __ovld __cnfn as_char4(half2);
7221char8 __ovld __cnfn as_char8(half3);
7222char8 __ovld __cnfn as_char8(half4);
7223char16 __ovld __cnfn as_char16(half8);
7224uchar2 __ovld __cnfn as_uchar2(half);
7225uchar3 __ovld __cnfn as_uchar3(half2);
7226uchar4 __ovld __cnfn as_uchar4(half2);
7227uchar8 __ovld __cnfn as_uchar8(half3);
7228uchar8 __ovld __cnfn as_uchar8(half4);
7229uchar16 __ovld __cnfn as_uchar16(half8);
7230short __ovld __cnfn as_short(half);
7231short2 __ovld __cnfn as_short2(half2);
7232short3 __ovld __cnfn as_short3(half3);
7233short3 __ovld __cnfn as_short3(half4);
7234short4 __ovld __cnfn as_short4(half3);
7235short4 __ovld __cnfn as_short4(half4);
7236short8 __ovld __cnfn as_short8(half8);
7237short16 __ovld __cnfn as_short16(half16);
7238ushort __ovld __cnfn as_ushort(half);
7239ushort2 __ovld __cnfn as_ushort2(half2);
7240ushort3 __ovld __cnfn as_ushort3(half3);
7241ushort3 __ovld __cnfn as_ushort3(half4);
7242ushort4 __ovld __cnfn as_ushort4(half3);
7243ushort4 __ovld __cnfn as_ushort4(half4);
7244ushort8 __ovld __cnfn as_ushort8(half8);
7245ushort16 __ovld __cnfn as_ushort16(half16);
7246int __ovld __cnfn as_int(half2);
7247int2 __ovld __cnfn as_int2(half3);
7248int2 __ovld __cnfn as_int2(half4);
7249int3 __ovld __cnfn as_int3(half8);
7250int4 __ovld __cnfn as_int4(half8);
7251int8 __ovld __cnfn as_int8(half16);
7252uint __ovld __cnfn as_uint(half2);
7253uint2 __ovld __cnfn as_uint2(half3);
7254uint2 __ovld __cnfn as_uint2(half4);
7255uint3 __ovld __cnfn as_uint3(half8);
7256uint4 __ovld __cnfn as_uint4(half8);
7257uint8 __ovld __cnfn as_uint8(half16);
7258long __ovld __cnfn as_long(half3);
7259long __ovld __cnfn as_long(half4);
7260long2 __ovld __cnfn as_long2(half8);
7261long3 __ovld __cnfn as_long3(half16);
7262long4 __ovld __cnfn as_long4(half16);
7263ulong __ovld __cnfn as_ulong(half3);
7264ulong __ovld __cnfn as_ulong(half4);
7265ulong2 __ovld __cnfn as_ulong2(half8);
7266ulong3 __ovld __cnfn as_ulong3(half16);
7267ulong4 __ovld __cnfn as_ulong4(half16);
7268half __ovld __cnfn as_half(char2);
7269half __ovld __cnfn as_half(uchar2);
7270half __ovld __cnfn as_half(short);
7271half __ovld __cnfn as_half(ushort);
7272half __ovld __cnfn as_half(half);
7273half2 __ovld __cnfn as_half2(char3);
7274half2 __ovld __cnfn as_half2(char4);
7275half2 __ovld __cnfn as_half2(uchar3);
7276half2 __ovld __cnfn as_half2(uchar4);
7277half2 __ovld __cnfn as_half2(short2);
7278half2 __ovld __cnfn as_half2(ushort2);
7279half2 __ovld __cnfn as_half2(int);
7280half2 __ovld __cnfn as_half2(uint);
7281half2 __ovld __cnfn as_half2(half2);
7282half2 __ovld __cnfn as_half2(float);
7283half3 __ovld __cnfn as_half3(char8);
7284half3 __ovld __cnfn as_half3(uchar8);
7285half3 __ovld __cnfn as_half3(short3);
7286half3 __ovld __cnfn as_half3(short4);
7287half3 __ovld __cnfn as_half3(ushort3);
7288half3 __ovld __cnfn as_half3(ushort4);
7289half3 __ovld __cnfn as_half3(int2);
7290half3 __ovld __cnfn as_half3(uint2);
7291half3 __ovld __cnfn as_half3(long);
7292half3 __ovld __cnfn as_half3(ulong);
7293half3 __ovld __cnfn as_half3(half3);
7294half3 __ovld __cnfn as_half3(half4);
7295half3 __ovld __cnfn as_half3(float2);
7296half4 __ovld __cnfn as_half4(char8);
7297half4 __ovld __cnfn as_half4(uchar8);
7298half4 __ovld __cnfn as_half4(short3);
7299half4 __ovld __cnfn as_half4(short4);
7300half4 __ovld __cnfn as_half4(ushort3);
7301half4 __ovld __cnfn as_half4(ushort4);
7302half4 __ovld __cnfn as_half4(int2);
7303half4 __ovld __cnfn as_half4(uint2);
7304half4 __ovld __cnfn as_half4(long);
7305half4 __ovld __cnfn as_half4(ulong);
7306half4 __ovld __cnfn as_half4(half3);
7307half4 __ovld __cnfn as_half4(half4);
7308half4 __ovld __cnfn as_half4(float2);
7309half8 __ovld __cnfn as_half8(char16);
7310half8 __ovld __cnfn as_half8(uchar16);
7311half8 __ovld __cnfn as_half8(short8);
7312half8 __ovld __cnfn as_half8(ushort8);
7313half8 __ovld __cnfn as_half8(int3);
7314half8 __ovld __cnfn as_half8(int4);
7315half8 __ovld __cnfn as_half8(uint3);
7316half8 __ovld __cnfn as_half8(uint4);
7317half8 __ovld __cnfn as_half8(long2);
7318half8 __ovld __cnfn as_half8(ulong2);
7319half8 __ovld __cnfn as_half8(half8);
7320half8 __ovld __cnfn as_half8(float3);
7321half8 __ovld __cnfn as_half8(float4);
7322half16 __ovld __cnfn as_half16(short16);
7323half16 __ovld __cnfn as_half16(ushort16);
7324half16 __ovld __cnfn as_half16(int8);
7325half16 __ovld __cnfn as_half16(uint8);
7326half16 __ovld __cnfn as_half16(long3);
7327half16 __ovld __cnfn as_half16(long4);
7328half16 __ovld __cnfn as_half16(ulong3);
7329half16 __ovld __cnfn as_half16(ulong4);
7330half16 __ovld __cnfn as_half16(half16);
7331half16 __ovld __cnfn as_half16(float8);
7332float __ovld __cnfn as_float(half2);
7333float2 __ovld __cnfn as_float2(half3);
7334float2 __ovld __cnfn as_float2(half4);
7335float3 __ovld __cnfn as_float3(half8);
7336float4 __ovld __cnfn as_float4(half8);
7337float8 __ovld __cnfn as_float8(half16);
7338
7339#ifdef cl_khr_fp64
7340half3 __ovld __cnfn as_half3(double);
7341half4 __ovld __cnfn as_half4(double);
7342half8 __ovld __cnfn as_half8(double2);
7343half16 __ovld __cnfn as_half16(double3);
7344half16 __ovld __cnfn as_half16(double4);
7345double __ovld __cnfn as_double(half3);
7346double __ovld __cnfn as_double(half4);
7347double2 __ovld __cnfn as_double2(half8);
7348double3 __ovld __cnfn as_double3(half16);
7349double4 __ovld __cnfn as_double4(half16);
7350#endif //cl_khr_fp64
7351#endif //cl_khr_fp16
7352
7353// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
7354
7355#define __kernel_exec(X, typen) __kernel \
7356	__attribute__((work_group_size_hint(X, 1, 1))) \
7357	__attribute__((vec_type_hint(typen)))
7358
7359#define kernel_exec(X, typen) __kernel \
7360	__attribute__((work_group_size_hint(X, 1, 1))) \
7361	__attribute__((vec_type_hint(typen)))
7362
7363// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
7364
7365/**
7366 * Returns the number of dimensions in use. This is the
7367 * value given to the work_dim argument specified in
7368 * clEnqueueNDRangeKernel.
7369 * For clEnqueueTask, this returns 1.
7370 */
7371uint __ovld __cnfn get_work_dim(void);
7372
7373/**
7374 * Returns the number of global work-items specified for
7375 * dimension identified by dimindx. This value is given by
7376 * the global_work_size argument to
7377 * clEnqueueNDRangeKernel. Valid values of dimindx
7378 * are 0 to get_work_dim() - 1. For other values of
7379 * dimindx, get_global_size() returns 1.
7380 * For clEnqueueTask, this always returns 1.
7381 */
7382size_t __ovld __cnfn get_global_size(uint dimindx);
7383
7384/**
7385 * Returns the unique global work-item ID value for
7386 * dimension identified by dimindx. The global work-item
7387 * ID specifies the work-item ID based on the number of
7388 * global work-items specified to execute the kernel. Valid
7389 * values of dimindx are 0 to get_work_dim() - 1. For
7390 * other values of dimindx, get_global_id() returns 0.
7391 * For clEnqueueTask, this returns 0.
7392 */
7393size_t __ovld __cnfn get_global_id(uint dimindx);
7394
7395/**
7396 * Returns the number of local work-items specified in
7397 * dimension identified by dimindx. This value is given by
7398 * the local_work_size argument to
7399 * clEnqueueNDRangeKernel if local_work_size is not
7400 * NULL; otherwise the OpenCL implementation chooses
7401 * an appropriate local_work_size value which is returned
7402 * by this function. Valid values of dimindx are 0 to
7403 * get_work_dim() - 1. For other values of dimindx,
7404 * get_local_size() returns 1.
7405 * For clEnqueueTask, this always returns 1.
7406 */
7407size_t __ovld __cnfn get_local_size(uint dimindx);
7408
7409/**
7410 * Returns the unique local work-item ID i.e. a work-item
7411 * within a specific work-group for dimension identified by
7412 * dimindx. Valid values of dimindx are 0 to
7413 * get_work_dim() - 1. For other values of dimindx,
7414 * get_local_id() returns 0.
7415 * For clEnqueueTask, this returns 0.
7416 */
7417size_t __ovld __cnfn get_local_id(uint dimindx);
7418
7419/**
7420 * Returns the number of work-groups that will execute a
7421 * kernel for dimension identified by dimindx.
7422 * Valid values of dimindx are 0 to get_work_dim() - 1.
7423 * For other values of dimindx, get_num_groups () returns
7424 * 1.
7425 * For clEnqueueTask, this always returns 1.
7426 */
7427size_t __ovld __cnfn get_num_groups(uint dimindx);
7428
7429/**
7430 * get_group_id returns the work-group ID which is a
7431 * number from 0 .. get_num_groups(dimindx) - 1.
7432 * Valid values of dimindx are 0 to get_work_dim() - 1.
7433 * For other values, get_group_id() returns 0.
7434 * For clEnqueueTask, this returns 0.
7435 */
7436size_t __ovld __cnfn get_group_id(uint dimindx);
7437
7438/**
7439 * get_global_offset returns the offset values specified in
7440 * global_work_offset argument to
7441 * clEnqueueNDRangeKernel.
7442 * Valid values of dimindx are 0 to get_work_dim() - 1.
7443 * For other values, get_global_offset() returns 0.
7444 * For clEnqueueTask, this returns 0.
7445 */
7446size_t __ovld __cnfn get_global_offset(uint dimindx);
7447
7448#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7449size_t __ovld get_enqueued_local_size(uint dimindx);
7450size_t __ovld get_global_linear_id(void);
7451size_t __ovld get_local_linear_id(void);
7452#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7453
7454// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
7455
7456/**
7457 * Arc cosine function.
7458 */
7459float __ovld __cnfn acos(float);
7460float2 __ovld __cnfn acos(float2);
7461float3 __ovld __cnfn acos(float3);
7462float4 __ovld __cnfn acos(float4);
7463float8 __ovld __cnfn acos(float8);
7464float16 __ovld __cnfn acos(float16);
7465#ifdef cl_khr_fp64
7466double __ovld __cnfn acos(double);
7467double2 __ovld __cnfn acos(double2);
7468double3 __ovld __cnfn acos(double3);
7469double4 __ovld __cnfn acos(double4);
7470double8 __ovld __cnfn acos(double8);
7471double16 __ovld __cnfn acos(double16);
7472#endif //cl_khr_fp64
7473#ifdef cl_khr_fp16
7474half __ovld __cnfn acos(half);
7475half2 __ovld __cnfn acos(half2);
7476half3 __ovld __cnfn acos(half3);
7477half4 __ovld __cnfn acos(half4);
7478half8 __ovld __cnfn acos(half8);
7479half16 __ovld __cnfn acos(half16);
7480#endif //cl_khr_fp16
7481
7482/**
7483 * Inverse hyperbolic cosine.
7484 */
7485float __ovld __cnfn acosh(float);
7486float2 __ovld __cnfn acosh(float2);
7487float3 __ovld __cnfn acosh(float3);
7488float4 __ovld __cnfn acosh(float4);
7489float8 __ovld __cnfn acosh(float8);
7490float16 __ovld __cnfn acosh(float16);
7491#ifdef cl_khr_fp64
7492double __ovld __cnfn acosh(double);
7493double2 __ovld __cnfn acosh(double2);
7494double3 __ovld __cnfn acosh(double3);
7495double4 __ovld __cnfn acosh(double4);
7496double8 __ovld __cnfn acosh(double8);
7497double16 __ovld __cnfn acosh(double16);
7498#endif //cl_khr_fp64
7499#ifdef cl_khr_fp16
7500half __ovld __cnfn acosh(half);
7501half2 __ovld __cnfn acosh(half2);
7502half3 __ovld __cnfn acosh(half3);
7503half4 __ovld __cnfn acosh(half4);
7504half8 __ovld __cnfn acosh(half8);
7505half16 __ovld __cnfn acosh(half16);
7506#endif //cl_khr_fp16
7507
7508/**
7509 * Compute acos (x) / PI.
7510 */
7511float __ovld __cnfn acospi(float x);
7512float2 __ovld __cnfn acospi(float2 x);
7513float3 __ovld __cnfn acospi(float3 x);
7514float4 __ovld __cnfn acospi(float4 x);
7515float8 __ovld __cnfn acospi(float8 x);
7516float16 __ovld __cnfn acospi(float16 x);
7517#ifdef cl_khr_fp64
7518double __ovld __cnfn acospi(double x);
7519double2 __ovld __cnfn acospi(double2 x);
7520double3 __ovld __cnfn acospi(double3 x);
7521double4 __ovld __cnfn acospi(double4 x);
7522double8 __ovld __cnfn acospi(double8 x);
7523double16 __ovld __cnfn acospi(double16 x);
7524#endif //cl_khr_fp64
7525#ifdef cl_khr_fp16
7526half __ovld __cnfn acospi(half x);
7527half2 __ovld __cnfn acospi(half2 x);
7528half3 __ovld __cnfn acospi(half3 x);
7529half4 __ovld __cnfn acospi(half4 x);
7530half8 __ovld __cnfn acospi(half8 x);
7531half16 __ovld __cnfn acospi(half16 x);
7532#endif //cl_khr_fp16
7533
7534/**
7535 * Arc sine function.
7536 */
7537float __ovld __cnfn asin(float);
7538float2 __ovld __cnfn asin(float2);
7539float3 __ovld __cnfn asin(float3);
7540float4 __ovld __cnfn asin(float4);
7541float8 __ovld __cnfn asin(float8);
7542float16 __ovld __cnfn asin(float16);
7543#ifdef cl_khr_fp64
7544double __ovld __cnfn asin(double);
7545double2 __ovld __cnfn asin(double2);
7546double3 __ovld __cnfn asin(double3);
7547double4 __ovld __cnfn asin(double4);
7548double8 __ovld __cnfn asin(double8);
7549double16 __ovld __cnfn asin(double16);
7550#endif //cl_khr_fp64
7551#ifdef cl_khr_fp16
7552half __ovld __cnfn asin(half);
7553half2 __ovld __cnfn asin(half2);
7554half3 __ovld __cnfn asin(half3);
7555half4 __ovld __cnfn asin(half4);
7556half8 __ovld __cnfn asin(half8);
7557half16 __ovld __cnfn asin(half16);
7558#endif //cl_khr_fp16
7559
7560/**
7561 * Inverse hyperbolic sine.
7562 */
7563float __ovld __cnfn asinh(float);
7564float2 __ovld __cnfn asinh(float2);
7565float3 __ovld __cnfn asinh(float3);
7566float4 __ovld __cnfn asinh(float4);
7567float8 __ovld __cnfn asinh(float8);
7568float16 __ovld __cnfn asinh(float16);
7569#ifdef cl_khr_fp64
7570double __ovld __cnfn asinh(double);
7571double2 __ovld __cnfn asinh(double2);
7572double3 __ovld __cnfn asinh(double3);
7573double4 __ovld __cnfn asinh(double4);
7574double8 __ovld __cnfn asinh(double8);
7575double16 __ovld __cnfn asinh(double16);
7576#endif //cl_khr_fp64
7577#ifdef cl_khr_fp16
7578half __ovld __cnfn asinh(half);
7579half2 __ovld __cnfn asinh(half2);
7580half3 __ovld __cnfn asinh(half3);
7581half4 __ovld __cnfn asinh(half4);
7582half8 __ovld __cnfn asinh(half8);
7583half16 __ovld __cnfn asinh(half16);
7584#endif //cl_khr_fp16
7585
7586/**
7587 * Compute asin (x) / PI.
7588 */
7589float __ovld __cnfn asinpi(float x);
7590float2 __ovld __cnfn asinpi(float2 x);
7591float3 __ovld __cnfn asinpi(float3 x);
7592float4 __ovld __cnfn asinpi(float4 x);
7593float8 __ovld __cnfn asinpi(float8 x);
7594float16 __ovld __cnfn asinpi(float16 x);
7595#ifdef cl_khr_fp64
7596double __ovld __cnfn asinpi(double x);
7597double2 __ovld __cnfn asinpi(double2 x);
7598double3 __ovld __cnfn asinpi(double3 x);
7599double4 __ovld __cnfn asinpi(double4 x);
7600double8 __ovld __cnfn asinpi(double8 x);
7601double16 __ovld __cnfn asinpi(double16 x);
7602#endif //cl_khr_fp64
7603#ifdef cl_khr_fp16
7604half __ovld __cnfn asinpi(half x);
7605half2 __ovld __cnfn asinpi(half2 x);
7606half3 __ovld __cnfn asinpi(half3 x);
7607half4 __ovld __cnfn asinpi(half4 x);
7608half8 __ovld __cnfn asinpi(half8 x);
7609half16 __ovld __cnfn asinpi(half16 x);
7610#endif //cl_khr_fp16
7611
7612/**
7613 * Arc tangent function.
7614 */
7615float __ovld __cnfn atan(float y_over_x);
7616float2 __ovld __cnfn atan(float2 y_over_x);
7617float3 __ovld __cnfn atan(float3 y_over_x);
7618float4 __ovld __cnfn atan(float4 y_over_x);
7619float8 __ovld __cnfn atan(float8 y_over_x);
7620float16 __ovld __cnfn atan(float16 y_over_x);
7621#ifdef cl_khr_fp64
7622double __ovld __cnfn atan(double y_over_x);
7623double2 __ovld __cnfn atan(double2 y_over_x);
7624double3 __ovld __cnfn atan(double3 y_over_x);
7625double4 __ovld __cnfn atan(double4 y_over_x);
7626double8 __ovld __cnfn atan(double8 y_over_x);
7627double16 __ovld __cnfn atan(double16 y_over_x);
7628#endif //cl_khr_fp64
7629#ifdef cl_khr_fp16
7630half __ovld __cnfn atan(half y_over_x);
7631half2 __ovld __cnfn atan(half2 y_over_x);
7632half3 __ovld __cnfn atan(half3 y_over_x);
7633half4 __ovld __cnfn atan(half4 y_over_x);
7634half8 __ovld __cnfn atan(half8 y_over_x);
7635half16 __ovld __cnfn atan(half16 y_over_x);
7636#endif //cl_khr_fp16
7637
7638/**
7639 * Arc tangent of y / x.
7640 */
7641float __ovld __cnfn atan2(float y, float x);
7642float2 __ovld __cnfn atan2(float2 y, float2 x);
7643float3 __ovld __cnfn atan2(float3 y, float3 x);
7644float4 __ovld __cnfn atan2(float4 y, float4 x);
7645float8 __ovld __cnfn atan2(float8 y, float8 x);
7646float16 __ovld __cnfn atan2(float16 y, float16 x);
7647#ifdef cl_khr_fp64
7648double __ovld __cnfn atan2(double y, double x);
7649double2 __ovld __cnfn atan2(double2 y, double2 x);
7650double3 __ovld __cnfn atan2(double3 y, double3 x);
7651double4 __ovld __cnfn atan2(double4 y, double4 x);
7652double8 __ovld __cnfn atan2(double8 y, double8 x);
7653double16 __ovld __cnfn atan2(double16 y, double16 x);
7654#endif //cl_khr_fp64
7655#ifdef cl_khr_fp16
7656half __ovld __cnfn atan2(half y, half x);
7657half2 __ovld __cnfn atan2(half2 y, half2 x);
7658half3 __ovld __cnfn atan2(half3 y, half3 x);
7659half4 __ovld __cnfn atan2(half4 y, half4 x);
7660half8 __ovld __cnfn atan2(half8 y, half8 x);
7661half16 __ovld __cnfn atan2(half16 y, half16 x);
7662#endif //cl_khr_fp16
7663
7664/**
7665 * Hyperbolic arc tangent.
7666 */
7667float __ovld __cnfn atanh(float);
7668float2 __ovld __cnfn atanh(float2);
7669float3 __ovld __cnfn atanh(float3);
7670float4 __ovld __cnfn atanh(float4);
7671float8 __ovld __cnfn atanh(float8);
7672float16 __ovld __cnfn atanh(float16);
7673#ifdef cl_khr_fp64
7674double __ovld __cnfn atanh(double);
7675double2 __ovld __cnfn atanh(double2);
7676double3 __ovld __cnfn atanh(double3);
7677double4 __ovld __cnfn atanh(double4);
7678double8 __ovld __cnfn atanh(double8);
7679double16 __ovld __cnfn atanh(double16);
7680#endif //cl_khr_fp64
7681#ifdef cl_khr_fp16
7682half __ovld __cnfn atanh(half);
7683half2 __ovld __cnfn atanh(half2);
7684half3 __ovld __cnfn atanh(half3);
7685half4 __ovld __cnfn atanh(half4);
7686half8 __ovld __cnfn atanh(half8);
7687half16 __ovld __cnfn atanh(half16);
7688#endif //cl_khr_fp16
7689
7690/**
7691 * Compute atan (x) / PI.
7692 */
7693float __ovld __cnfn atanpi(float x);
7694float2 __ovld __cnfn atanpi(float2 x);
7695float3 __ovld __cnfn atanpi(float3 x);
7696float4 __ovld __cnfn atanpi(float4 x);
7697float8 __ovld __cnfn atanpi(float8 x);
7698float16 __ovld __cnfn atanpi(float16 x);
7699#ifdef cl_khr_fp64
7700double __ovld __cnfn atanpi(double x);
7701double2 __ovld __cnfn atanpi(double2 x);
7702double3 __ovld __cnfn atanpi(double3 x);
7703double4 __ovld __cnfn atanpi(double4 x);
7704double8 __ovld __cnfn atanpi(double8 x);
7705double16 __ovld __cnfn atanpi(double16 x);
7706#endif //cl_khr_fp64
7707#ifdef cl_khr_fp16
7708half __ovld __cnfn atanpi(half x);
7709half2 __ovld __cnfn atanpi(half2 x);
7710half3 __ovld __cnfn atanpi(half3 x);
7711half4 __ovld __cnfn atanpi(half4 x);
7712half8 __ovld __cnfn atanpi(half8 x);
7713half16 __ovld __cnfn atanpi(half16 x);
7714#endif //cl_khr_fp16
7715
7716/**
7717 * Compute atan2 (y, x) / PI.
7718 */
7719float __ovld __cnfn atan2pi(float y, float x);
7720float2 __ovld __cnfn atan2pi(float2 y, float2 x);
7721float3 __ovld __cnfn atan2pi(float3 y, float3 x);
7722float4 __ovld __cnfn atan2pi(float4 y, float4 x);
7723float8 __ovld __cnfn atan2pi(float8 y, float8 x);
7724float16 __ovld __cnfn atan2pi(float16 y, float16 x);
7725#ifdef cl_khr_fp64
7726double __ovld __cnfn atan2pi(double y, double x);
7727double2 __ovld __cnfn atan2pi(double2 y, double2 x);
7728double3 __ovld __cnfn atan2pi(double3 y, double3 x);
7729double4 __ovld __cnfn atan2pi(double4 y, double4 x);
7730double8 __ovld __cnfn atan2pi(double8 y, double8 x);
7731double16 __ovld __cnfn atan2pi(double16 y, double16 x);
7732#endif //cl_khr_fp64
7733#ifdef cl_khr_fp16
7734half __ovld __cnfn atan2pi(half y, half x);
7735half2 __ovld __cnfn atan2pi(half2 y, half2 x);
7736half3 __ovld __cnfn atan2pi(half3 y, half3 x);
7737half4 __ovld __cnfn atan2pi(half4 y, half4 x);
7738half8 __ovld __cnfn atan2pi(half8 y, half8 x);
7739half16 __ovld __cnfn atan2pi(half16 y, half16 x);
7740#endif //cl_khr_fp16
7741
7742/**
7743 * Compute cube-root.
7744 */
7745float __ovld __cnfn cbrt(float);
7746float2 __ovld __cnfn cbrt(float2);
7747float3 __ovld __cnfn cbrt(float3);
7748float4 __ovld __cnfn cbrt(float4);
7749float8 __ovld __cnfn cbrt(float8);
7750float16 __ovld __cnfn cbrt(float16);
7751#ifdef cl_khr_fp64
7752double __ovld __cnfn cbrt(double);
7753double2 __ovld __cnfn cbrt(double2);
7754double3 __ovld __cnfn cbrt(double3);
7755double4 __ovld __cnfn cbrt(double4);
7756double8 __ovld __cnfn cbrt(double8);
7757double16 __ovld __cnfn cbrt(double16);
7758#endif //cl_khr_fp64
7759#ifdef cl_khr_fp16
7760half __ovld __cnfn cbrt(half);
7761half2 __ovld __cnfn cbrt(half2);
7762half3 __ovld __cnfn cbrt(half3);
7763half4 __ovld __cnfn cbrt(half4);
7764half8 __ovld __cnfn cbrt(half8);
7765half16 __ovld __cnfn cbrt(half16);
7766#endif //cl_khr_fp16
7767
7768/**
7769 * Round to integral value using the round to positive
7770 * infinity rounding mode.
7771 */
7772float __ovld __cnfn ceil(float);
7773float2 __ovld __cnfn ceil(float2);
7774float3 __ovld __cnfn ceil(float3);
7775float4 __ovld __cnfn ceil(float4);
7776float8 __ovld __cnfn ceil(float8);
7777float16 __ovld __cnfn ceil(float16);
7778#ifdef cl_khr_fp64
7779double __ovld __cnfn ceil(double);
7780double2 __ovld __cnfn ceil(double2);
7781double3 __ovld __cnfn ceil(double3);
7782double4 __ovld __cnfn ceil(double4);
7783double8 __ovld __cnfn ceil(double8);
7784double16 __ovld __cnfn ceil(double16);
7785#endif //cl_khr_fp64
7786#ifdef cl_khr_fp16
7787half __ovld __cnfn ceil(half);
7788half2 __ovld __cnfn ceil(half2);
7789half3 __ovld __cnfn ceil(half3);
7790half4 __ovld __cnfn ceil(half4);
7791half8 __ovld __cnfn ceil(half8);
7792half16 __ovld __cnfn ceil(half16);
7793#endif //cl_khr_fp16
7794
7795/**
7796 * Returns x with its sign changed to match the sign of y.
7797 */
7798float __ovld __cnfn copysign(float x, float y);
7799float2 __ovld __cnfn copysign(float2 x, float2 y);
7800float3 __ovld __cnfn copysign(float3 x, float3 y);
7801float4 __ovld __cnfn copysign(float4 x, float4 y);
7802float8 __ovld __cnfn copysign(float8 x, float8 y);
7803float16 __ovld __cnfn copysign(float16 x, float16 y);
7804#ifdef cl_khr_fp64
7805double __ovld __cnfn copysign(double x, double y);
7806double2 __ovld __cnfn copysign(double2 x, double2 y);
7807double3 __ovld __cnfn copysign(double3 x, double3 y);
7808double4 __ovld __cnfn copysign(double4 x, double4 y);
7809double8 __ovld __cnfn copysign(double8 x, double8 y);
7810double16 __ovld __cnfn copysign(double16 x, double16 y);
7811#endif //cl_khr_fp64
7812#ifdef cl_khr_fp16
7813half __ovld __cnfn copysign(half x, half y);
7814half2 __ovld __cnfn copysign(half2 x, half2 y);
7815half3 __ovld __cnfn copysign(half3 x, half3 y);
7816half4 __ovld __cnfn copysign(half4 x, half4 y);
7817half8 __ovld __cnfn copysign(half8 x, half8 y);
7818half16 __ovld __cnfn copysign(half16 x, half16 y);
7819#endif //cl_khr_fp16
7820
7821/**
7822 * Compute cosine.
7823 */
7824float __ovld __cnfn cos(float);
7825float2 __ovld __cnfn cos(float2);
7826float3 __ovld __cnfn cos(float3);
7827float4 __ovld __cnfn cos(float4);
7828float8 __ovld __cnfn cos(float8);
7829float16 __ovld __cnfn cos(float16);
7830#ifdef cl_khr_fp64
7831double __ovld __cnfn cos(double);
7832double2 __ovld __cnfn cos(double2);
7833double3 __ovld __cnfn cos(double3);
7834double4 __ovld __cnfn cos(double4);
7835double8 __ovld __cnfn cos(double8);
7836double16 __ovld __cnfn cos(double16);
7837#endif //cl_khr_fp64
7838#ifdef cl_khr_fp16
7839half __ovld __cnfn cos(half);
7840half2 __ovld __cnfn cos(half2);
7841half3 __ovld __cnfn cos(half3);
7842half4 __ovld __cnfn cos(half4);
7843half8 __ovld __cnfn cos(half8);
7844half16 __ovld __cnfn cos(half16);
7845#endif //cl_khr_fp16
7846
7847/**
7848 * Compute hyperbolic cosine.
7849 */
7850float __ovld __cnfn cosh(float);
7851float2 __ovld __cnfn cosh(float2);
7852float3 __ovld __cnfn cosh(float3);
7853float4 __ovld __cnfn cosh(float4);
7854float8 __ovld __cnfn cosh(float8);
7855float16 __ovld __cnfn cosh(float16);
7856#ifdef cl_khr_fp64
7857double __ovld __cnfn cosh(double);
7858double2 __ovld __cnfn cosh(double2);
7859double3 __ovld __cnfn cosh(double3);
7860double4 __ovld __cnfn cosh(double4);
7861double8 __ovld __cnfn cosh(double8);
7862double16 __ovld __cnfn cosh(double16);
7863#endif //cl_khr_fp64
7864#ifdef cl_khr_fp16
7865half __ovld __cnfn cosh(half);
7866half2 __ovld __cnfn cosh(half2);
7867half3 __ovld __cnfn cosh(half3);
7868half4 __ovld __cnfn cosh(half4);
7869half8 __ovld __cnfn cosh(half8);
7870half16 __ovld __cnfn cosh(half16);
7871#endif //cl_khr_fp16
7872
7873/**
7874 * Compute cos (PI * x).
7875 */
7876float __ovld __cnfn cospi(float x);
7877float2 __ovld __cnfn cospi(float2 x);
7878float3 __ovld __cnfn cospi(float3 x);
7879float4 __ovld __cnfn cospi(float4 x);
7880float8 __ovld __cnfn cospi(float8 x);
7881float16 __ovld __cnfn cospi(float16 x);
7882#ifdef cl_khr_fp64
7883double __ovld __cnfn cospi(double x);
7884double2 __ovld __cnfn cospi(double2 x);
7885double3 __ovld __cnfn cospi(double3 x);
7886double4 __ovld __cnfn cospi(double4 x);
7887double8 __ovld __cnfn cospi(double8 x);
7888double16 __ovld __cnfn cospi(double16 x);
7889#endif //cl_khr_fp64
7890#ifdef cl_khr_fp16
7891half __ovld __cnfn cospi(half x);
7892half2 __ovld __cnfn cospi(half2 x);
7893half3 __ovld __cnfn cospi(half3 x);
7894half4 __ovld __cnfn cospi(half4 x);
7895half8 __ovld __cnfn cospi(half8 x);
7896half16 __ovld __cnfn cospi(half16 x);
7897#endif //cl_khr_fp16
7898
7899/**
7900 * Complementary error function.
7901 */
7902float __ovld __cnfn erfc(float);
7903float2 __ovld __cnfn erfc(float2);
7904float3 __ovld __cnfn erfc(float3);
7905float4 __ovld __cnfn erfc(float4);
7906float8 __ovld __cnfn erfc(float8);
7907float16 __ovld __cnfn erfc(float16);
7908#ifdef cl_khr_fp64
7909double __ovld __cnfn erfc(double);
7910double2 __ovld __cnfn erfc(double2);
7911double3 __ovld __cnfn erfc(double3);
7912double4 __ovld __cnfn erfc(double4);
7913double8 __ovld __cnfn erfc(double8);
7914double16 __ovld __cnfn erfc(double16);
7915#endif //cl_khr_fp64
7916#ifdef cl_khr_fp16
7917half __ovld __cnfn erfc(half);
7918half2 __ovld __cnfn erfc(half2);
7919half3 __ovld __cnfn erfc(half3);
7920half4 __ovld __cnfn erfc(half4);
7921half8 __ovld __cnfn erfc(half8);
7922half16 __ovld __cnfn erfc(half16);
7923#endif //cl_khr_fp16
7924
7925/**
7926 * Error function encountered in integrating the
7927 * normal distribution.
7928 */
7929float __ovld __cnfn erf(float);
7930float2 __ovld __cnfn erf(float2);
7931float3 __ovld __cnfn erf(float3);
7932float4 __ovld __cnfn erf(float4);
7933float8 __ovld __cnfn erf(float8);
7934float16 __ovld __cnfn erf(float16);
7935#ifdef cl_khr_fp64
7936double __ovld __cnfn erf(double);
7937double2 __ovld __cnfn erf(double2);
7938double3 __ovld __cnfn erf(double3);
7939double4 __ovld __cnfn erf(double4);
7940double8 __ovld __cnfn erf(double8);
7941double16 __ovld __cnfn erf(double16);
7942#endif //cl_khr_fp64
7943#ifdef cl_khr_fp16
7944half __ovld __cnfn erf(half);
7945half2 __ovld __cnfn erf(half2);
7946half3 __ovld __cnfn erf(half3);
7947half4 __ovld __cnfn erf(half4);
7948half8 __ovld __cnfn erf(half8);
7949half16 __ovld __cnfn erf(half16);
7950#endif //cl_khr_fp16
7951
7952/**
7953 * Compute the base e exponential function of x.
7954 */
7955float __ovld __cnfn exp(float x);
7956float2 __ovld __cnfn exp(float2 x);
7957float3 __ovld __cnfn exp(float3 x);
7958float4 __ovld __cnfn exp(float4 x);
7959float8 __ovld __cnfn exp(float8 x);
7960float16 __ovld __cnfn exp(float16 x);
7961#ifdef cl_khr_fp64
7962double __ovld __cnfn exp(double x);
7963double2 __ovld __cnfn exp(double2 x);
7964double3 __ovld __cnfn exp(double3 x);
7965double4 __ovld __cnfn exp(double4 x);
7966double8 __ovld __cnfn exp(double8 x);
7967double16 __ovld __cnfn exp(double16 x);
7968#endif //cl_khr_fp64
7969#ifdef cl_khr_fp16
7970half __ovld __cnfn exp(half x);
7971half2 __ovld __cnfn exp(half2 x);
7972half3 __ovld __cnfn exp(half3 x);
7973half4 __ovld __cnfn exp(half4 x);
7974half8 __ovld __cnfn exp(half8 x);
7975half16 __ovld __cnfn exp(half16 x);
7976#endif //cl_khr_fp16
7977
7978/**
7979 * Exponential base 2 function.
7980 */
7981float __ovld __cnfn exp2(float);
7982float2 __ovld __cnfn exp2(float2);
7983float3 __ovld __cnfn exp2(float3);
7984float4 __ovld __cnfn exp2(float4);
7985float8 __ovld __cnfn exp2(float8);
7986float16 __ovld __cnfn exp2(float16);
7987#ifdef cl_khr_fp64
7988double __ovld __cnfn exp2(double);
7989double2 __ovld __cnfn exp2(double2);
7990double3 __ovld __cnfn exp2(double3);
7991double4 __ovld __cnfn exp2(double4);
7992double8 __ovld __cnfn exp2(double8);
7993double16 __ovld __cnfn exp2(double16);
7994#endif //cl_khr_fp64
7995#ifdef cl_khr_fp16
7996half __ovld __cnfn exp2(half);
7997half2 __ovld __cnfn exp2(half2);
7998half3 __ovld __cnfn exp2(half3);
7999half4 __ovld __cnfn exp2(half4);
8000half8 __ovld __cnfn exp2(half8);
8001half16 __ovld __cnfn exp2(half16);
8002#endif //cl_khr_fp16
8003
8004/**
8005 * Exponential base 10 function.
8006 */
8007float __ovld __cnfn exp10(float);
8008float2 __ovld __cnfn exp10(float2);
8009float3 __ovld __cnfn exp10(float3);
8010float4 __ovld __cnfn exp10(float4);
8011float8 __ovld __cnfn exp10(float8);
8012float16 __ovld __cnfn exp10(float16);
8013#ifdef cl_khr_fp64
8014double __ovld __cnfn exp10(double);
8015double2 __ovld __cnfn exp10(double2);
8016double3 __ovld __cnfn exp10(double3);
8017double4 __ovld __cnfn exp10(double4);
8018double8 __ovld __cnfn exp10(double8);
8019double16 __ovld __cnfn exp10(double16);
8020#endif //cl_khr_fp64
8021#ifdef cl_khr_fp16
8022half __ovld __cnfn exp10(half);
8023half2 __ovld __cnfn exp10(half2);
8024half3 __ovld __cnfn exp10(half3);
8025half4 __ovld __cnfn exp10(half4);
8026half8 __ovld __cnfn exp10(half8);
8027half16 __ovld __cnfn exp10(half16);
8028#endif //cl_khr_fp16
8029
8030/**
8031 * Compute e^x- 1.0.
8032 */
8033float __ovld __cnfn expm1(float x);
8034float2 __ovld __cnfn expm1(float2 x);
8035float3 __ovld __cnfn expm1(float3 x);
8036float4 __ovld __cnfn expm1(float4 x);
8037float8 __ovld __cnfn expm1(float8 x);
8038float16 __ovld __cnfn expm1(float16 x);
8039#ifdef cl_khr_fp64
8040double __ovld __cnfn expm1(double x);
8041double2 __ovld __cnfn expm1(double2 x);
8042double3 __ovld __cnfn expm1(double3 x);
8043double4 __ovld __cnfn expm1(double4 x);
8044double8 __ovld __cnfn expm1(double8 x);
8045double16 __ovld __cnfn expm1(double16 x);
8046#endif //cl_khr_fp64
8047#ifdef cl_khr_fp16
8048half __ovld __cnfn expm1(half x);
8049half2 __ovld __cnfn expm1(half2 x);
8050half3 __ovld __cnfn expm1(half3 x);
8051half4 __ovld __cnfn expm1(half4 x);
8052half8 __ovld __cnfn expm1(half8 x);
8053half16 __ovld __cnfn expm1(half16 x);
8054#endif //cl_khr_fp16
8055
8056/**
8057 * Compute absolute value of a floating-point number.
8058 */
8059float __ovld __cnfn fabs(float);
8060float2 __ovld __cnfn fabs(float2);
8061float3 __ovld __cnfn fabs(float3);
8062float4 __ovld __cnfn fabs(float4);
8063float8 __ovld __cnfn fabs(float8);
8064float16 __ovld __cnfn fabs(float16);
8065#ifdef cl_khr_fp64
8066double __ovld __cnfn fabs(double);
8067double2 __ovld __cnfn fabs(double2);
8068double3 __ovld __cnfn fabs(double3);
8069double4 __ovld __cnfn fabs(double4);
8070double8 __ovld __cnfn fabs(double8);
8071double16 __ovld __cnfn fabs(double16);
8072#endif //cl_khr_fp64
8073#ifdef cl_khr_fp16
8074half __ovld __cnfn fabs(half);
8075half2 __ovld __cnfn fabs(half2);
8076half3 __ovld __cnfn fabs(half3);
8077half4 __ovld __cnfn fabs(half4);
8078half8 __ovld __cnfn fabs(half8);
8079half16 __ovld __cnfn fabs(half16);
8080#endif //cl_khr_fp16
8081
8082/**
8083 * x - y if x > y, +0 if x is less than or equal to y.
8084 */
8085float __ovld __cnfn fdim(float x, float y);
8086float2 __ovld __cnfn fdim(float2 x, float2 y);
8087float3 __ovld __cnfn fdim(float3 x, float3 y);
8088float4 __ovld __cnfn fdim(float4 x, float4 y);
8089float8 __ovld __cnfn fdim(float8 x, float8 y);
8090float16 __ovld __cnfn fdim(float16 x, float16 y);
8091#ifdef cl_khr_fp64
8092double __ovld __cnfn fdim(double x, double y);
8093double2 __ovld __cnfn fdim(double2 x, double2 y);
8094double3 __ovld __cnfn fdim(double3 x, double3 y);
8095double4 __ovld __cnfn fdim(double4 x, double4 y);
8096double8 __ovld __cnfn fdim(double8 x, double8 y);
8097double16 __ovld __cnfn fdim(double16 x, double16 y);
8098#endif //cl_khr_fp64
8099#ifdef cl_khr_fp16
8100half __ovld __cnfn fdim(half x, half y);
8101half2 __ovld __cnfn fdim(half2 x, half2 y);
8102half3 __ovld __cnfn fdim(half3 x, half3 y);
8103half4 __ovld __cnfn fdim(half4 x, half4 y);
8104half8 __ovld __cnfn fdim(half8 x, half8 y);
8105half16 __ovld __cnfn fdim(half16 x, half16 y);
8106#endif //cl_khr_fp16
8107
8108/**
8109 * Round to integral value using the round to -ve
8110 * infinity rounding mode.
8111 */
8112float __ovld __cnfn floor(float);
8113float2 __ovld __cnfn floor(float2);
8114float3 __ovld __cnfn floor(float3);
8115float4 __ovld __cnfn floor(float4);
8116float8 __ovld __cnfn floor(float8);
8117float16 __ovld __cnfn floor(float16);
8118#ifdef cl_khr_fp64
8119double __ovld __cnfn floor(double);
8120double2 __ovld __cnfn floor(double2);
8121double3 __ovld __cnfn floor(double3);
8122double4 __ovld __cnfn floor(double4);
8123double8 __ovld __cnfn floor(double8);
8124double16 __ovld __cnfn floor(double16);
8125#endif //cl_khr_fp64
8126#ifdef cl_khr_fp16
8127half __ovld __cnfn floor(half);
8128half2 __ovld __cnfn floor(half2);
8129half3 __ovld __cnfn floor(half3);
8130half4 __ovld __cnfn floor(half4);
8131half8 __ovld __cnfn floor(half8);
8132half16 __ovld __cnfn floor(half16);
8133#endif //cl_khr_fp16
8134
8135/**
8136 * Returns the correctly rounded floating-point
8137 * representation of the sum of c with the infinitely
8138 * precise product of a and b. Rounding of
8139 * intermediate products shall not occur. Edge case
8140 * behavior is per the IEEE 754-2008 standard.
8141 */
8142float __ovld __cnfn fma(float a, float b, float c);
8143float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
8144float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
8145float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
8146float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
8147float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
8148#ifdef cl_khr_fp64
8149double __ovld __cnfn fma(double a, double b, double c);
8150double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
8151double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
8152double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
8153double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
8154double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
8155#endif //cl_khr_fp64
8156#ifdef cl_khr_fp16
8157half __ovld __cnfn fma(half a, half b, half c);
8158half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
8159half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
8160half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
8161half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
8162half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
8163#endif //cl_khr_fp16
8164
8165/**
8166 * Returns y if x < y, otherwise it returns x. If one
8167 * argument is a NaN, fmax() returns the other
8168 * argument. If both arguments are NaNs, fmax()
8169 * returns a NaN.
8170 */
8171float __ovld __cnfn fmax(float x, float y);
8172float2 __ovld __cnfn fmax(float2 x, float2 y);
8173float3 __ovld __cnfn fmax(float3 x, float3 y);
8174float4 __ovld __cnfn fmax(float4 x, float4 y);
8175float8 __ovld __cnfn fmax(float8 x, float8 y);
8176float16 __ovld __cnfn fmax(float16 x, float16 y);
8177float2 __ovld __cnfn fmax(float2 x, float y);
8178float3 __ovld __cnfn fmax(float3 x, float y);
8179float4 __ovld __cnfn fmax(float4 x, float y);
8180float8 __ovld __cnfn fmax(float8 x, float y);
8181float16 __ovld __cnfn fmax(float16 x, float y);
8182#ifdef cl_khr_fp64
8183double __ovld __cnfn fmax(double x, double y);
8184double2 __ovld __cnfn fmax(double2 x, double2 y);
8185double3 __ovld __cnfn fmax(double3 x, double3 y);
8186double4 __ovld __cnfn fmax(double4 x, double4 y);
8187double8 __ovld __cnfn fmax(double8 x, double8 y);
8188double16 __ovld __cnfn fmax(double16 x, double16 y);
8189double2 __ovld __cnfn fmax(double2 x, double y);
8190double3 __ovld __cnfn fmax(double3 x, double y);
8191double4 __ovld __cnfn fmax(double4 x, double y);
8192double8 __ovld __cnfn fmax(double8 x, double y);
8193double16 __ovld __cnfn fmax(double16 x, double y);
8194#endif //cl_khr_fp64
8195#ifdef cl_khr_fp16
8196half __ovld __cnfn fmax(half x, half y);
8197half2 __ovld __cnfn fmax(half2 x, half2 y);
8198half3 __ovld __cnfn fmax(half3 x, half3 y);
8199half4 __ovld __cnfn fmax(half4 x, half4 y);
8200half8 __ovld __cnfn fmax(half8 x, half8 y);
8201half16 __ovld __cnfn fmax(half16 x, half16 y);
8202half2 __ovld __cnfn fmax(half2 x, half y);
8203half3 __ovld __cnfn fmax(half3 x, half y);
8204half4 __ovld __cnfn fmax(half4 x, half y);
8205half8 __ovld __cnfn fmax(half8 x, half y);
8206half16 __ovld __cnfn fmax(half16 x, half y);
8207#endif //cl_khr_fp16
8208
8209/**
8210 * Returns y if y < x, otherwise it returns x. If one
8211 * argument is a NaN, fmin() returns the other
8212 * argument. If both arguments are NaNs, fmin()
8213 * returns a NaN.
8214 */
8215float __ovld __cnfn fmin(float x, float y);
8216float2 __ovld __cnfn fmin(float2 x, float2 y);
8217float3 __ovld __cnfn fmin(float3 x, float3 y);
8218float4 __ovld __cnfn fmin(float4 x, float4 y);
8219float8 __ovld __cnfn fmin(float8 x, float8 y);
8220float16 __ovld __cnfn fmin(float16 x, float16 y);
8221float2 __ovld __cnfn fmin(float2 x, float y);
8222float3 __ovld __cnfn fmin(float3 x, float y);
8223float4 __ovld __cnfn fmin(float4 x, float y);
8224float8 __ovld __cnfn fmin(float8 x, float y);
8225float16 __ovld __cnfn fmin(float16 x, float y);
8226#ifdef cl_khr_fp64
8227double __ovld __cnfn fmin(double x, double y);
8228double2 __ovld __cnfn fmin(double2 x, double2 y);
8229double3 __ovld __cnfn fmin(double3 x, double3 y);
8230double4 __ovld __cnfn fmin(double4 x, double4 y);
8231double8 __ovld __cnfn fmin(double8 x, double8 y);
8232double16 __ovld __cnfn fmin(double16 x, double16 y);
8233double2 __ovld __cnfn fmin(double2 x, double y);
8234double3 __ovld __cnfn fmin(double3 x, double y);
8235double4 __ovld __cnfn fmin(double4 x, double y);
8236double8 __ovld __cnfn fmin(double8 x, double y);
8237double16 __ovld __cnfn fmin(double16 x, double y);
8238#endif //cl_khr_fp64
8239#ifdef cl_khr_fp16
8240half __ovld __cnfn fmin(half x, half y);
8241half2 __ovld __cnfn fmin(half2 x, half2 y);
8242half3 __ovld __cnfn fmin(half3 x, half3 y);
8243half4 __ovld __cnfn fmin(half4 x, half4 y);
8244half8 __ovld __cnfn fmin(half8 x, half8 y);
8245half16 __ovld __cnfn fmin(half16 x, half16 y);
8246half2 __ovld __cnfn fmin(half2 x, half y);
8247half3 __ovld __cnfn fmin(half3 x, half y);
8248half4 __ovld __cnfn fmin(half4 x, half y);
8249half8 __ovld __cnfn fmin(half8 x, half y);
8250half16 __ovld __cnfn fmin(half16 x, half y);
8251#endif //cl_khr_fp16
8252
8253/**
8254 * Modulus. Returns x - y * trunc (x/y).
8255 */
8256float __ovld __cnfn fmod(float x, float y);
8257float2 __ovld __cnfn fmod(float2 x, float2 y);
8258float3 __ovld __cnfn fmod(float3 x, float3 y);
8259float4 __ovld __cnfn fmod(float4 x, float4 y);
8260float8 __ovld __cnfn fmod(float8 x, float8 y);
8261float16 __ovld __cnfn fmod(float16 x, float16 y);
8262#ifdef cl_khr_fp64
8263double __ovld __cnfn fmod(double x, double y);
8264double2 __ovld __cnfn fmod(double2 x, double2 y);
8265double3 __ovld __cnfn fmod(double3 x, double3 y);
8266double4 __ovld __cnfn fmod(double4 x, double4 y);
8267double8 __ovld __cnfn fmod(double8 x, double8 y);
8268double16 __ovld __cnfn fmod(double16 x, double16 y);
8269#endif //cl_khr_fp64
8270#ifdef cl_khr_fp16
8271half __ovld __cnfn fmod(half x, half y);
8272half2 __ovld __cnfn fmod(half2 x, half2 y);
8273half3 __ovld __cnfn fmod(half3 x, half3 y);
8274half4 __ovld __cnfn fmod(half4 x, half4 y);
8275half8 __ovld __cnfn fmod(half8 x, half8 y);
8276half16 __ovld __cnfn fmod(half16 x, half16 y);
8277#endif //cl_khr_fp16
8278
8279/**
8280 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
8281 * floor(x) is returned in iptr.
8282 */
8283#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8284float __ovld fract(float x, float *iptr);
8285float2 __ovld fract(float2 x, float2 *iptr);
8286float3 __ovld fract(float3 x, float3 *iptr);
8287float4 __ovld fract(float4 x, float4 *iptr);
8288float8 __ovld fract(float8 x, float8 *iptr);
8289float16 __ovld fract(float16 x, float16 *iptr);
8290#ifdef cl_khr_fp64
8291double __ovld fract(double x, double *iptr);
8292double2 __ovld fract(double2 x, double2 *iptr);
8293double3 __ovld fract(double3 x, double3 *iptr);
8294double4 __ovld fract(double4 x, double4 *iptr);
8295double8 __ovld fract(double8 x, double8 *iptr);
8296double16 __ovld fract(double16 x, double16 *iptr);
8297#endif //cl_khr_fp64
8298#ifdef cl_khr_fp16
8299half __ovld fract(half x, half *iptr);
8300half2 __ovld fract(half2 x, half2 *iptr);
8301half3 __ovld fract(half3 x, half3 *iptr);
8302half4 __ovld fract(half4 x, half4 *iptr);
8303half8 __ovld fract(half8 x, half8 *iptr);
8304half16 __ovld fract(half16 x, half16 *iptr);
8305#endif //cl_khr_fp16
8306#else
8307float __ovld fract(float x, __global float *iptr);
8308float2 __ovld fract(float2 x, __global float2 *iptr);
8309float3 __ovld fract(float3 x, __global float3 *iptr);
8310float4 __ovld fract(float4 x, __global float4 *iptr);
8311float8 __ovld fract(float8 x, __global float8 *iptr);
8312float16 __ovld fract(float16 x, __global float16 *iptr);
8313float __ovld fract(float x, __local float *iptr);
8314float2 __ovld fract(float2 x, __local float2 *iptr);
8315float3 __ovld fract(float3 x, __local float3 *iptr);
8316float4 __ovld fract(float4 x, __local float4 *iptr);
8317float8 __ovld fract(float8 x, __local float8 *iptr);
8318float16 __ovld fract(float16 x, __local float16 *iptr);
8319float __ovld fract(float x, __private float *iptr);
8320float2 __ovld fract(float2 x, __private float2 *iptr);
8321float3 __ovld fract(float3 x, __private float3 *iptr);
8322float4 __ovld fract(float4 x, __private float4 *iptr);
8323float8 __ovld fract(float8 x, __private float8 *iptr);
8324float16 __ovld fract(float16 x, __private float16 *iptr);
8325#ifdef cl_khr_fp64
8326double __ovld fract(double x, __global double *iptr);
8327double2 __ovld fract(double2 x, __global double2 *iptr);
8328double3 __ovld fract(double3 x, __global double3 *iptr);
8329double4 __ovld fract(double4 x, __global double4 *iptr);
8330double8 __ovld fract(double8 x, __global double8 *iptr);
8331double16 __ovld fract(double16 x, __global double16 *iptr);
8332double __ovld fract(double x, __local double *iptr);
8333double2 __ovld fract(double2 x, __local double2 *iptr);
8334double3 __ovld fract(double3 x, __local double3 *iptr);
8335double4 __ovld fract(double4 x, __local double4 *iptr);
8336double8 __ovld fract(double8 x, __local double8 *iptr);
8337double16 __ovld fract(double16 x, __local double16 *iptr);
8338double __ovld fract(double x, __private double *iptr);
8339double2 __ovld fract(double2 x, __private double2 *iptr);
8340double3 __ovld fract(double3 x, __private double3 *iptr);
8341double4 __ovld fract(double4 x, __private double4 *iptr);
8342double8 __ovld fract(double8 x, __private double8 *iptr);
8343double16 __ovld fract(double16 x, __private double16 *iptr);
8344#endif //cl_khr_fp64
8345#ifdef cl_khr_fp16
8346half __ovld fract(half x, __global half *iptr);
8347half2 __ovld fract(half2 x, __global half2 *iptr);
8348half3 __ovld fract(half3 x, __global half3 *iptr);
8349half4 __ovld fract(half4 x, __global half4 *iptr);
8350half8 __ovld fract(half8 x, __global half8 *iptr);
8351half16 __ovld fract(half16 x, __global half16 *iptr);
8352half __ovld fract(half x, __local half *iptr);
8353half2 __ovld fract(half2 x, __local half2 *iptr);
8354half3 __ovld fract(half3 x, __local half3 *iptr);
8355half4 __ovld fract(half4 x, __local half4 *iptr);
8356half8 __ovld fract(half8 x, __local half8 *iptr);
8357half16 __ovld fract(half16 x, __local half16 *iptr);
8358half __ovld fract(half x, __private half *iptr);
8359half2 __ovld fract(half2 x, __private half2 *iptr);
8360half3 __ovld fract(half3 x, __private half3 *iptr);
8361half4 __ovld fract(half4 x, __private half4 *iptr);
8362half8 __ovld fract(half8 x, __private half8 *iptr);
8363half16 __ovld fract(half16 x, __private half16 *iptr);
8364#endif //cl_khr_fp16
8365#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8366
8367/**
8368 * Extract mantissa and exponent from x. For each
8369 * component the mantissa returned is a float with
8370 * magnitude in the interval [1/2, 1) or 0. Each
8371 * component of x equals mantissa returned * 2^exp.
8372 */
8373#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8374float __ovld frexp(float x, int *exp);
8375float2 __ovld frexp(float2 x, int2 *exp);
8376float3 __ovld frexp(float3 x, int3 *exp);
8377float4 __ovld frexp(float4 x, int4 *exp);
8378float8 __ovld frexp(float8 x, int8 *exp);
8379float16 __ovld frexp(float16 x, int16 *exp);
8380#ifdef cl_khr_fp64
8381double __ovld frexp(double x, int *exp);
8382double2 __ovld frexp(double2 x, int2 *exp);
8383double3 __ovld frexp(double3 x, int3 *exp);
8384double4 __ovld frexp(double4 x, int4 *exp);
8385double8 __ovld frexp(double8 x, int8 *exp);
8386double16 __ovld frexp(double16 x, int16 *exp);
8387#endif //cl_khr_fp64
8388#ifdef cl_khr_fp16
8389half __ovld frexp(half x, int *exp);
8390half2 __ovld frexp(half2 x, int2 *exp);
8391half3 __ovld frexp(half3 x, int3 *exp);
8392half4 __ovld frexp(half4 x, int4 *exp);
8393half8 __ovld frexp(half8 x, int8 *exp);
8394half16 __ovld frexp(half16 x, int16 *exp);
8395#endif //cl_khr_fp16
8396#else
8397float __ovld frexp(float x, __global int *exp);
8398float2 __ovld frexp(float2 x, __global int2 *exp);
8399float3 __ovld frexp(float3 x, __global int3 *exp);
8400float4 __ovld frexp(float4 x, __global int4 *exp);
8401float8 __ovld frexp(float8 x, __global int8 *exp);
8402float16 __ovld frexp(float16 x, __global int16 *exp);
8403float __ovld frexp(float x, __local int *exp);
8404float2 __ovld frexp(float2 x, __local int2 *exp);
8405float3 __ovld frexp(float3 x, __local int3 *exp);
8406float4 __ovld frexp(float4 x, __local int4 *exp);
8407float8 __ovld frexp(float8 x, __local int8 *exp);
8408float16 __ovld frexp(float16 x, __local int16 *exp);
8409float __ovld frexp(float x, __private int *exp);
8410float2 __ovld frexp(float2 x, __private int2 *exp);
8411float3 __ovld frexp(float3 x, __private int3 *exp);
8412float4 __ovld frexp(float4 x, __private int4 *exp);
8413float8 __ovld frexp(float8 x, __private int8 *exp);
8414float16 __ovld frexp(float16 x, __private int16 *exp);
8415#ifdef cl_khr_fp64
8416double __ovld frexp(double x, __global int *exp);
8417double2 __ovld frexp(double2 x, __global int2 *exp);
8418double3 __ovld frexp(double3 x, __global int3 *exp);
8419double4 __ovld frexp(double4 x, __global int4 *exp);
8420double8 __ovld frexp(double8 x, __global int8 *exp);
8421double16 __ovld frexp(double16 x, __global int16 *exp);
8422double __ovld frexp(double x, __local int *exp);
8423double2 __ovld frexp(double2 x, __local int2 *exp);
8424double3 __ovld frexp(double3 x, __local int3 *exp);
8425double4 __ovld frexp(double4 x, __local int4 *exp);
8426double8 __ovld frexp(double8 x, __local int8 *exp);
8427double16 __ovld frexp(double16 x, __local int16 *exp);
8428double __ovld frexp(double x, __private int *exp);
8429double2 __ovld frexp(double2 x, __private int2 *exp);
8430double3 __ovld frexp(double3 x, __private int3 *exp);
8431double4 __ovld frexp(double4 x, __private int4 *exp);
8432double8 __ovld frexp(double8 x, __private int8 *exp);
8433double16 __ovld frexp(double16 x, __private int16 *exp);
8434#endif //cl_khr_fp64
8435#ifdef cl_khr_fp16
8436half __ovld frexp(half x, __global int *exp);
8437half2 __ovld frexp(half2 x, __global int2 *exp);
8438half3 __ovld frexp(half3 x, __global int3 *exp);
8439half4 __ovld frexp(half4 x, __global int4 *exp);
8440half8 __ovld frexp(half8 x, __global int8 *exp);
8441half16 __ovld frexp(half16 x, __global int16 *exp);
8442half __ovld frexp(half x, __local int *exp);
8443half2 __ovld frexp(half2 x, __local int2 *exp);
8444half3 __ovld frexp(half3 x, __local int3 *exp);
8445half4 __ovld frexp(half4 x, __local int4 *exp);
8446half8 __ovld frexp(half8 x, __local int8 *exp);
8447half16 __ovld frexp(half16 x, __local int16 *exp);
8448half __ovld frexp(half x, __private int *exp);
8449half2 __ovld frexp(half2 x, __private int2 *exp);
8450half3 __ovld frexp(half3 x, __private int3 *exp);
8451half4 __ovld frexp(half4 x, __private int4 *exp);
8452half8 __ovld frexp(half8 x, __private int8 *exp);
8453half16 __ovld frexp(half16 x, __private int16 *exp);
8454#endif //cl_khr_fp16
8455#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8456
8457/**
8458 * Compute the value of the square root of x^2 + y^2
8459 * without undue overflow or underflow.
8460 */
8461float __ovld __cnfn hypot(float x, float y);
8462float2 __ovld __cnfn hypot(float2 x, float2 y);
8463float3 __ovld __cnfn hypot(float3 x, float3 y);
8464float4 __ovld __cnfn hypot(float4 x, float4 y);
8465float8 __ovld __cnfn hypot(float8 x, float8 y);
8466float16 __ovld __cnfn hypot(float16 x, float16 y);
8467#ifdef cl_khr_fp64
8468double __ovld __cnfn hypot(double x, double y);
8469double2 __ovld __cnfn hypot(double2 x, double2 y);
8470double3 __ovld __cnfn hypot(double3 x, double3 y);
8471double4 __ovld __cnfn hypot(double4 x, double4 y);
8472double8 __ovld __cnfn hypot(double8 x, double8 y);
8473double16 __ovld __cnfn hypot(double16 x, double16 y);
8474#endif //cl_khr_fp64
8475#ifdef cl_khr_fp16
8476half __ovld __cnfn hypot(half x, half y);
8477half2 __ovld __cnfn hypot(half2 x, half2 y);
8478half3 __ovld __cnfn hypot(half3 x, half3 y);
8479half4 __ovld __cnfn hypot(half4 x, half4 y);
8480half8 __ovld __cnfn hypot(half8 x, half8 y);
8481half16 __ovld __cnfn hypot(half16 x, half16 y);
8482#endif //cl_khr_fp16
8483
8484/**
8485 * Return the exponent as an integer value.
8486 */
8487int __ovld __cnfn ilogb(float x);
8488int2 __ovld __cnfn ilogb(float2 x);
8489int3 __ovld __cnfn ilogb(float3 x);
8490int4 __ovld __cnfn ilogb(float4 x);
8491int8 __ovld __cnfn ilogb(float8 x);
8492int16 __ovld __cnfn ilogb(float16 x);
8493#ifdef cl_khr_fp64
8494int __ovld __cnfn ilogb(double x);
8495int2 __ovld __cnfn ilogb(double2 x);
8496int3 __ovld __cnfn ilogb(double3 x);
8497int4 __ovld __cnfn ilogb(double4 x);
8498int8 __ovld __cnfn ilogb(double8 x);
8499int16 __ovld __cnfn ilogb(double16 x);
8500#endif //cl_khr_fp64
8501#ifdef cl_khr_fp16
8502int __ovld __cnfn ilogb(half x);
8503int2 __ovld __cnfn ilogb(half2 x);
8504int3 __ovld __cnfn ilogb(half3 x);
8505int4 __ovld __cnfn ilogb(half4 x);
8506int8 __ovld __cnfn ilogb(half8 x);
8507int16 __ovld __cnfn ilogb(half16 x);
8508#endif //cl_khr_fp16
8509
8510/**
8511 * Multiply x by 2 to the power n.
8512 */
8513float __ovld __cnfn ldexp(float x, int n);
8514float2 __ovld __cnfn ldexp(float2 x, int2 n);
8515float3 __ovld __cnfn ldexp(float3 x, int3 n);
8516float4 __ovld __cnfn ldexp(float4 x, int4 n);
8517float8 __ovld __cnfn ldexp(float8 x, int8 n);
8518float16 __ovld __cnfn ldexp(float16 x, int16 n);
8519float2 __ovld __cnfn ldexp(float2 x, int n);
8520float3 __ovld __cnfn ldexp(float3 x, int n);
8521float4 __ovld __cnfn ldexp(float4 x, int n);
8522float8 __ovld __cnfn ldexp(float8 x, int n);
8523float16 __ovld __cnfn ldexp(float16 x, int n);
8524#ifdef cl_khr_fp64
8525double __ovld __cnfn ldexp(double x, int n);
8526double2 __ovld __cnfn ldexp(double2 x, int2 n);
8527double3 __ovld __cnfn ldexp(double3 x, int3 n);
8528double4 __ovld __cnfn ldexp(double4 x, int4 n);
8529double8 __ovld __cnfn ldexp(double8 x, int8 n);
8530double16 __ovld __cnfn ldexp(double16 x, int16 n);
8531double2 __ovld __cnfn ldexp(double2 x, int n);
8532double3 __ovld __cnfn ldexp(double3 x, int n);
8533double4 __ovld __cnfn ldexp(double4 x, int n);
8534double8 __ovld __cnfn ldexp(double8 x, int n);
8535double16 __ovld __cnfn ldexp(double16 x, int n);
8536#endif //cl_khr_fp64
8537#ifdef cl_khr_fp16
8538half __ovld __cnfn ldexp(half x, int n);
8539half2 __ovld __cnfn ldexp(half2 x, int2 n);
8540half3 __ovld __cnfn ldexp(half3 x, int3 n);
8541half4 __ovld __cnfn ldexp(half4 x, int4 n);
8542half8 __ovld __cnfn ldexp(half8 x, int8 n);
8543half16 __ovld __cnfn ldexp(half16 x, int16 n);
8544half2 __ovld __cnfn ldexp(half2 x, int n);
8545half3 __ovld __cnfn ldexp(half3 x, int n);
8546half4 __ovld __cnfn ldexp(half4 x, int n);
8547half8 __ovld __cnfn ldexp(half8 x, int n);
8548half16 __ovld __cnfn ldexp(half16 x, int n);
8549#endif //cl_khr_fp16
8550
8551/**
8552 * Log gamma function. Returns the natural
8553 * logarithm of the absolute value of the gamma
8554 * function. The sign of the gamma function is
8555 * returned in the signp argument of lgamma_r.
8556 */
8557float __ovld __cnfn lgamma(float x);
8558float2 __ovld __cnfn lgamma(float2 x);
8559float3 __ovld __cnfn lgamma(float3 x);
8560float4 __ovld __cnfn lgamma(float4 x);
8561float8 __ovld __cnfn lgamma(float8 x);
8562float16 __ovld __cnfn lgamma(float16 x);
8563#ifdef cl_khr_fp64
8564double __ovld __cnfn lgamma(double x);
8565double2 __ovld __cnfn lgamma(double2 x);
8566double3 __ovld __cnfn lgamma(double3 x);
8567double4 __ovld __cnfn lgamma(double4 x);
8568double8 __ovld __cnfn lgamma(double8 x);
8569double16 __ovld __cnfn lgamma(double16 x);
8570#endif //cl_khr_fp64
8571#ifdef cl_khr_fp16
8572half __ovld __cnfn lgamma(half x);
8573half2 __ovld __cnfn lgamma(half2 x);
8574half3 __ovld __cnfn lgamma(half3 x);
8575half4 __ovld __cnfn lgamma(half4 x);
8576half8 __ovld __cnfn lgamma(half8 x);
8577half16 __ovld __cnfn lgamma(half16 x);
8578#endif //cl_khr_fp16
8579
8580#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8581float __ovld lgamma_r(float x, int *signp);
8582float2 __ovld lgamma_r(float2 x, int2 *signp);
8583float3 __ovld lgamma_r(float3 x, int3 *signp);
8584float4 __ovld lgamma_r(float4 x, int4 *signp);
8585float8 __ovld lgamma_r(float8 x, int8 *signp);
8586float16 __ovld lgamma_r(float16 x, int16 *signp);
8587#ifdef cl_khr_fp64
8588double __ovld lgamma_r(double x, int *signp);
8589double2 __ovld lgamma_r(double2 x, int2 *signp);
8590double3 __ovld lgamma_r(double3 x, int3 *signp);
8591double4 __ovld lgamma_r(double4 x, int4 *signp);
8592double8 __ovld lgamma_r(double8 x, int8 *signp);
8593double16 __ovld lgamma_r(double16 x, int16 *signp);
8594#endif //cl_khr_fp64
8595#ifdef cl_khr_fp16
8596half __ovld lgamma_r(half x, int *signp);
8597half2 __ovld lgamma_r(half2 x, int2 *signp);
8598half3 __ovld lgamma_r(half3 x, int3 *signp);
8599half4 __ovld lgamma_r(half4 x, int4 *signp);
8600half8 __ovld lgamma_r(half8 x, int8 *signp);
8601half16 __ovld lgamma_r(half16 x, int16 *signp);
8602#endif //cl_khr_fp16
8603#else
8604float __ovld lgamma_r(float x, __global int *signp);
8605float2 __ovld lgamma_r(float2 x, __global int2 *signp);
8606float3 __ovld lgamma_r(float3 x, __global int3 *signp);
8607float4 __ovld lgamma_r(float4 x, __global int4 *signp);
8608float8 __ovld lgamma_r(float8 x, __global int8 *signp);
8609float16 __ovld lgamma_r(float16 x, __global int16 *signp);
8610float __ovld lgamma_r(float x, __local int *signp);
8611float2 __ovld lgamma_r(float2 x, __local int2 *signp);
8612float3 __ovld lgamma_r(float3 x, __local int3 *signp);
8613float4 __ovld lgamma_r(float4 x, __local int4 *signp);
8614float8 __ovld lgamma_r(float8 x, __local int8 *signp);
8615float16 __ovld lgamma_r(float16 x, __local int16 *signp);
8616float __ovld lgamma_r(float x, __private int *signp);
8617float2 __ovld lgamma_r(float2 x, __private int2 *signp);
8618float3 __ovld lgamma_r(float3 x, __private int3 *signp);
8619float4 __ovld lgamma_r(float4 x, __private int4 *signp);
8620float8 __ovld lgamma_r(float8 x, __private int8 *signp);
8621float16 __ovld lgamma_r(float16 x, __private int16 *signp);
8622#ifdef cl_khr_fp64
8623double __ovld lgamma_r(double x, __global int *signp);
8624double2 __ovld lgamma_r(double2 x, __global int2 *signp);
8625double3 __ovld lgamma_r(double3 x, __global int3 *signp);
8626double4 __ovld lgamma_r(double4 x, __global int4 *signp);
8627double8 __ovld lgamma_r(double8 x, __global int8 *signp);
8628double16 __ovld lgamma_r(double16 x, __global int16 *signp);
8629double __ovld lgamma_r(double x, __local int *signp);
8630double2 __ovld lgamma_r(double2 x, __local int2 *signp);
8631double3 __ovld lgamma_r(double3 x, __local int3 *signp);
8632double4 __ovld lgamma_r(double4 x, __local int4 *signp);
8633double8 __ovld lgamma_r(double8 x, __local int8 *signp);
8634double16 __ovld lgamma_r(double16 x, __local int16 *signp);
8635double __ovld lgamma_r(double x, __private int *signp);
8636double2 __ovld lgamma_r(double2 x, __private int2 *signp);
8637double3 __ovld lgamma_r(double3 x, __private int3 *signp);
8638double4 __ovld lgamma_r(double4 x, __private int4 *signp);
8639double8 __ovld lgamma_r(double8 x, __private int8 *signp);
8640double16 __ovld lgamma_r(double16 x, __private int16 *signp);
8641#endif //cl_khr_fp64
8642#ifdef cl_khr_fp16
8643half __ovld lgamma_r(half x, __global int *signp);
8644half2 __ovld lgamma_r(half2 x, __global int2 *signp);
8645half3 __ovld lgamma_r(half3 x, __global int3 *signp);
8646half4 __ovld lgamma_r(half4 x, __global int4 *signp);
8647half8 __ovld lgamma_r(half8 x, __global int8 *signp);
8648half16 __ovld lgamma_r(half16 x, __global int16 *signp);
8649half __ovld lgamma_r(half x, __local int *signp);
8650half2 __ovld lgamma_r(half2 x, __local int2 *signp);
8651half3 __ovld lgamma_r(half3 x, __local int3 *signp);
8652half4 __ovld lgamma_r(half4 x, __local int4 *signp);
8653half8 __ovld lgamma_r(half8 x, __local int8 *signp);
8654half16 __ovld lgamma_r(half16 x, __local int16 *signp);
8655half __ovld lgamma_r(half x, __private int *signp);
8656half2 __ovld lgamma_r(half2 x, __private int2 *signp);
8657half3 __ovld lgamma_r(half3 x, __private int3 *signp);
8658half4 __ovld lgamma_r(half4 x, __private int4 *signp);
8659half8 __ovld lgamma_r(half8 x, __private int8 *signp);
8660half16 __ovld lgamma_r(half16 x, __private int16 *signp);
8661#endif //cl_khr_fp16
8662#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8663
8664/**
8665 * Compute natural logarithm.
8666 */
8667float __ovld __cnfn log(float);
8668float2 __ovld __cnfn log(float2);
8669float3 __ovld __cnfn log(float3);
8670float4 __ovld __cnfn log(float4);
8671float8 __ovld __cnfn log(float8);
8672float16 __ovld __cnfn log(float16);
8673#ifdef cl_khr_fp64
8674double __ovld __cnfn log(double);
8675double2 __ovld __cnfn log(double2);
8676double3 __ovld __cnfn log(double3);
8677double4 __ovld __cnfn log(double4);
8678double8 __ovld __cnfn log(double8);
8679double16 __ovld __cnfn log(double16);
8680#endif //cl_khr_fp64
8681#ifdef cl_khr_fp16
8682half __ovld __cnfn log(half);
8683half2 __ovld __cnfn log(half2);
8684half3 __ovld __cnfn log(half3);
8685half4 __ovld __cnfn log(half4);
8686half8 __ovld __cnfn log(half8);
8687half16 __ovld __cnfn log(half16);
8688#endif //cl_khr_fp16
8689
8690/**
8691 * Compute a base 2 logarithm.
8692 */
8693float __ovld __cnfn log2(float);
8694float2 __ovld __cnfn log2(float2);
8695float3 __ovld __cnfn log2(float3);
8696float4 __ovld __cnfn log2(float4);
8697float8 __ovld __cnfn log2(float8);
8698float16 __ovld __cnfn log2(float16);
8699#ifdef cl_khr_fp64
8700double __ovld __cnfn log2(double);
8701double2 __ovld __cnfn log2(double2);
8702double3 __ovld __cnfn log2(double3);
8703double4 __ovld __cnfn log2(double4);
8704double8 __ovld __cnfn log2(double8);
8705double16 __ovld __cnfn log2(double16);
8706#endif //cl_khr_fp64
8707#ifdef cl_khr_fp16
8708half __ovld __cnfn log2(half);
8709half2 __ovld __cnfn log2(half2);
8710half3 __ovld __cnfn log2(half3);
8711half4 __ovld __cnfn log2(half4);
8712half8 __ovld __cnfn log2(half8);
8713half16 __ovld __cnfn log2(half16);
8714#endif //cl_khr_fp16
8715
8716/**
8717 * Compute a base 10 logarithm.
8718 */
8719float __ovld __cnfn log10(float);
8720float2 __ovld __cnfn log10(float2);
8721float3 __ovld __cnfn log10(float3);
8722float4 __ovld __cnfn log10(float4);
8723float8 __ovld __cnfn log10(float8);
8724float16 __ovld __cnfn log10(float16);
8725#ifdef cl_khr_fp64
8726double __ovld __cnfn log10(double);
8727double2 __ovld __cnfn log10(double2);
8728double3 __ovld __cnfn log10(double3);
8729double4 __ovld __cnfn log10(double4);
8730double8 __ovld __cnfn log10(double8);
8731double16 __ovld __cnfn log10(double16);
8732#endif //cl_khr_fp64
8733#ifdef cl_khr_fp16
8734half __ovld __cnfn log10(half);
8735half2 __ovld __cnfn log10(half2);
8736half3 __ovld __cnfn log10(half3);
8737half4 __ovld __cnfn log10(half4);
8738half8 __ovld __cnfn log10(half8);
8739half16 __ovld __cnfn log10(half16);
8740#endif //cl_khr_fp16
8741
8742/**
8743 * Compute a base e logarithm of (1.0 + x).
8744 */
8745float __ovld __cnfn log1p(float x);
8746float2 __ovld __cnfn log1p(float2 x);
8747float3 __ovld __cnfn log1p(float3 x);
8748float4 __ovld __cnfn log1p(float4 x);
8749float8 __ovld __cnfn log1p(float8 x);
8750float16 __ovld __cnfn log1p(float16 x);
8751#ifdef cl_khr_fp64
8752double __ovld __cnfn log1p(double x);
8753double2 __ovld __cnfn log1p(double2 x);
8754double3 __ovld __cnfn log1p(double3 x);
8755double4 __ovld __cnfn log1p(double4 x);
8756double8 __ovld __cnfn log1p(double8 x);
8757double16 __ovld __cnfn log1p(double16 x);
8758#endif //cl_khr_fp64
8759#ifdef cl_khr_fp16
8760half __ovld __cnfn log1p(half x);
8761half2 __ovld __cnfn log1p(half2 x);
8762half3 __ovld __cnfn log1p(half3 x);
8763half4 __ovld __cnfn log1p(half4 x);
8764half8 __ovld __cnfn log1p(half8 x);
8765half16 __ovld __cnfn log1p(half16 x);
8766#endif //cl_khr_fp16
8767
8768/**
8769 * Compute the exponent of x, which is the integral
8770 * part of logr | x |.
8771 */
8772float __ovld __cnfn logb(float x);
8773float2 __ovld __cnfn logb(float2 x);
8774float3 __ovld __cnfn logb(float3 x);
8775float4 __ovld __cnfn logb(float4 x);
8776float8 __ovld __cnfn logb(float8 x);
8777float16 __ovld __cnfn logb(float16 x);
8778#ifdef cl_khr_fp64
8779double __ovld __cnfn logb(double x);
8780double2 __ovld __cnfn logb(double2 x);
8781double3 __ovld __cnfn logb(double3 x);
8782double4 __ovld __cnfn logb(double4 x);
8783double8 __ovld __cnfn logb(double8 x);
8784double16 __ovld __cnfn logb(double16 x);
8785#endif //cl_khr_fp64
8786#ifdef cl_khr_fp16
8787half __ovld __cnfn logb(half x);
8788half2 __ovld __cnfn logb(half2 x);
8789half3 __ovld __cnfn logb(half3 x);
8790half4 __ovld __cnfn logb(half4 x);
8791half8 __ovld __cnfn logb(half8 x);
8792half16 __ovld __cnfn logb(half16 x);
8793#endif //cl_khr_fp16
8794
8795/**
8796 * mad approximates a * b + c. Whether or how the
8797 * product of a * b is rounded and how supernormal or
8798 * subnormal intermediate products are handled is not
8799 * defined. mad is intended to be used where speed is
8800 * preferred over accuracy.
8801 */
8802float __ovld __cnfn mad(float a, float b, float c);
8803float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
8804float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
8805float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
8806float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
8807float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
8808#ifdef cl_khr_fp64
8809double __ovld __cnfn mad(double a, double b, double c);
8810double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
8811double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
8812double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
8813double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
8814double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
8815#endif //cl_khr_fp64
8816#ifdef cl_khr_fp16
8817half __ovld __cnfn mad(half a, half b, half c);
8818half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
8819half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
8820half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
8821half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
8822half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
8823#endif //cl_khr_fp16
8824
8825/**
8826 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
8827 * fmax(x, y).
8828 */
8829float __ovld __cnfn maxmag(float x, float y);
8830float2 __ovld __cnfn maxmag(float2 x, float2 y);
8831float3 __ovld __cnfn maxmag(float3 x, float3 y);
8832float4 __ovld __cnfn maxmag(float4 x, float4 y);
8833float8 __ovld __cnfn maxmag(float8 x, float8 y);
8834float16 __ovld __cnfn maxmag(float16 x, float16 y);
8835#ifdef cl_khr_fp64
8836double __ovld __cnfn maxmag(double x, double y);
8837double2 __ovld __cnfn maxmag(double2 x, double2 y);
8838double3 __ovld __cnfn maxmag(double3 x, double3 y);
8839double4 __ovld __cnfn maxmag(double4 x, double4 y);
8840double8 __ovld __cnfn maxmag(double8 x, double8 y);
8841double16 __ovld __cnfn maxmag(double16 x, double16 y);
8842#endif //cl_khr_fp64
8843#ifdef cl_khr_fp16
8844half __ovld __cnfn maxmag(half x, half y);
8845half2 __ovld __cnfn maxmag(half2 x, half2 y);
8846half3 __ovld __cnfn maxmag(half3 x, half3 y);
8847half4 __ovld __cnfn maxmag(half4 x, half4 y);
8848half8 __ovld __cnfn maxmag(half8 x, half8 y);
8849half16 __ovld __cnfn maxmag(half16 x, half16 y);
8850#endif //cl_khr_fp16
8851
8852/**
8853 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
8854 * fmin(x, y).
8855 */
8856float __ovld __cnfn minmag(float x, float y);
8857float2 __ovld __cnfn minmag(float2 x, float2 y);
8858float3 __ovld __cnfn minmag(float3 x, float3 y);
8859float4 __ovld __cnfn minmag(float4 x, float4 y);
8860float8 __ovld __cnfn minmag(float8 x, float8 y);
8861float16 __ovld __cnfn minmag(float16 x, float16 y);
8862#ifdef cl_khr_fp64
8863double __ovld __cnfn minmag(double x, double y);
8864double2 __ovld __cnfn minmag(double2 x, double2 y);
8865double3 __ovld __cnfn minmag(double3 x, double3 y);
8866double4 __ovld __cnfn minmag(double4 x, double4 y);
8867double8 __ovld __cnfn minmag(double8 x, double8 y);
8868double16 __ovld __cnfn minmag(double16 x, double16 y);
8869#endif //cl_khr_fp64
8870#ifdef cl_khr_fp16
8871half __ovld __cnfn minmag(half x, half y);
8872half2 __ovld __cnfn minmag(half2 x, half2 y);
8873half3 __ovld __cnfn minmag(half3 x, half3 y);
8874half4 __ovld __cnfn minmag(half4 x, half4 y);
8875half8 __ovld __cnfn minmag(half8 x, half8 y);
8876half16 __ovld __cnfn minmag(half16 x, half16 y);
8877#endif //cl_khr_fp16
8878
8879/**
8880 * Decompose a floating-point number. The modf
8881 * function breaks the argument x into integral and
8882 * fractional parts, each of which has the same sign as
8883 * the argument. It stores the integral part in the object
8884 * pointed to by iptr.
8885 */
8886#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8887float __ovld modf(float x, float *iptr);
8888float2 __ovld modf(float2 x, float2 *iptr);
8889float3 __ovld modf(float3 x, float3 *iptr);
8890float4 __ovld modf(float4 x, float4 *iptr);
8891float8 __ovld modf(float8 x, float8 *iptr);
8892float16 __ovld modf(float16 x, float16 *iptr);
8893#ifdef cl_khr_fp64
8894double __ovld modf(double x, double *iptr);
8895double2 __ovld modf(double2 x, double2 *iptr);
8896double3 __ovld modf(double3 x, double3 *iptr);
8897double4 __ovld modf(double4 x, double4 *iptr);
8898double8 __ovld modf(double8 x, double8 *iptr);
8899double16 __ovld modf(double16 x, double16 *iptr);
8900#endif //cl_khr_fp64
8901#ifdef cl_khr_fp16
8902half __ovld modf(half x, half *iptr);
8903half2 __ovld modf(half2 x, half2 *iptr);
8904half3 __ovld modf(half3 x, half3 *iptr);
8905half4 __ovld modf(half4 x, half4 *iptr);
8906half8 __ovld modf(half8 x, half8 *iptr);
8907half16 __ovld modf(half16 x, half16 *iptr);
8908#endif //cl_khr_fp16
8909#else
8910float __ovld modf(float x, __global float *iptr);
8911float2 __ovld modf(float2 x, __global float2 *iptr);
8912float3 __ovld modf(float3 x, __global float3 *iptr);
8913float4 __ovld modf(float4 x, __global float4 *iptr);
8914float8 __ovld modf(float8 x, __global float8 *iptr);
8915float16 __ovld modf(float16 x, __global float16 *iptr);
8916float __ovld modf(float x, __local float *iptr);
8917float2 __ovld modf(float2 x, __local float2 *iptr);
8918float3 __ovld modf(float3 x, __local float3 *iptr);
8919float4 __ovld modf(float4 x, __local float4 *iptr);
8920float8 __ovld modf(float8 x, __local float8 *iptr);
8921float16 __ovld modf(float16 x, __local float16 *iptr);
8922float __ovld modf(float x, __private float *iptr);
8923float2 __ovld modf(float2 x, __private float2 *iptr);
8924float3 __ovld modf(float3 x, __private float3 *iptr);
8925float4 __ovld modf(float4 x, __private float4 *iptr);
8926float8 __ovld modf(float8 x, __private float8 *iptr);
8927float16 __ovld modf(float16 x, __private float16 *iptr);
8928#ifdef cl_khr_fp64
8929double __ovld modf(double x, __global double *iptr);
8930double2 __ovld modf(double2 x, __global double2 *iptr);
8931double3 __ovld modf(double3 x, __global double3 *iptr);
8932double4 __ovld modf(double4 x, __global double4 *iptr);
8933double8 __ovld modf(double8 x, __global double8 *iptr);
8934double16 __ovld modf(double16 x, __global double16 *iptr);
8935double __ovld modf(double x, __local double *iptr);
8936double2 __ovld modf(double2 x, __local double2 *iptr);
8937double3 __ovld modf(double3 x, __local double3 *iptr);
8938double4 __ovld modf(double4 x, __local double4 *iptr);
8939double8 __ovld modf(double8 x, __local double8 *iptr);
8940double16 __ovld modf(double16 x, __local double16 *iptr);
8941double __ovld modf(double x, __private double *iptr);
8942double2 __ovld modf(double2 x, __private double2 *iptr);
8943double3 __ovld modf(double3 x, __private double3 *iptr);
8944double4 __ovld modf(double4 x, __private double4 *iptr);
8945double8 __ovld modf(double8 x, __private double8 *iptr);
8946double16 __ovld modf(double16 x, __private double16 *iptr);
8947#endif //cl_khr_fp64
8948#ifdef cl_khr_fp16
8949half __ovld modf(half x, __global half *iptr);
8950half2 __ovld modf(half2 x, __global half2 *iptr);
8951half3 __ovld modf(half3 x, __global half3 *iptr);
8952half4 __ovld modf(half4 x, __global half4 *iptr);
8953half8 __ovld modf(half8 x, __global half8 *iptr);
8954half16 __ovld modf(half16 x, __global half16 *iptr);
8955half __ovld modf(half x, __local half *iptr);
8956half2 __ovld modf(half2 x, __local half2 *iptr);
8957half3 __ovld modf(half3 x, __local half3 *iptr);
8958half4 __ovld modf(half4 x, __local half4 *iptr);
8959half8 __ovld modf(half8 x, __local half8 *iptr);
8960half16 __ovld modf(half16 x, __local half16 *iptr);
8961half __ovld modf(half x, __private half *iptr);
8962half2 __ovld modf(half2 x, __private half2 *iptr);
8963half3 __ovld modf(half3 x, __private half3 *iptr);
8964half4 __ovld modf(half4 x, __private half4 *iptr);
8965half8 __ovld modf(half8 x, __private half8 *iptr);
8966half16 __ovld modf(half16 x, __private half16 *iptr);
8967#endif //cl_khr_fp16
8968#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8969
8970/**
8971 * Returns a quiet NaN. The nancode may be placed
8972 * in the significand of the resulting NaN.
8973 */
8974float __ovld __cnfn nan(uint nancode);
8975float2 __ovld __cnfn nan(uint2 nancode);
8976float3 __ovld __cnfn nan(uint3 nancode);
8977float4 __ovld __cnfn nan(uint4 nancode);
8978float8 __ovld __cnfn nan(uint8 nancode);
8979float16 __ovld __cnfn nan(uint16 nancode);
8980#ifdef cl_khr_fp64
8981double __ovld __cnfn nan(ulong nancode);
8982double2 __ovld __cnfn nan(ulong2 nancode);
8983double3 __ovld __cnfn nan(ulong3 nancode);
8984double4 __ovld __cnfn nan(ulong4 nancode);
8985double8 __ovld __cnfn nan(ulong8 nancode);
8986double16 __ovld __cnfn nan(ulong16 nancode);
8987#endif //cl_khr_fp64
8988#ifdef cl_khr_fp16
8989half __ovld __cnfn nan(ushort nancode);
8990half2 __ovld __cnfn nan(ushort2 nancode);
8991half3 __ovld __cnfn nan(ushort3 nancode);
8992half4 __ovld __cnfn nan(ushort4 nancode);
8993half8 __ovld __cnfn nan(ushort8 nancode);
8994half16 __ovld __cnfn nan(ushort16 nancode);
8995#endif //cl_khr_fp16
8996
8997/**
8998 * Computes the next representable single-precision
8999 * floating-point value following x in the direction of
9000 * y. Thus, if y is less than x, nextafter() returns the
9001 * largest representable floating-point number less
9002 * than x.
9003 */
9004float __ovld __cnfn nextafter(float x, float y);
9005float2 __ovld __cnfn nextafter(float2 x, float2 y);
9006float3 __ovld __cnfn nextafter(float3 x, float3 y);
9007float4 __ovld __cnfn nextafter(float4 x, float4 y);
9008float8 __ovld __cnfn nextafter(float8 x, float8 y);
9009float16 __ovld __cnfn nextafter(float16 x, float16 y);
9010#ifdef cl_khr_fp64
9011double __ovld __cnfn nextafter(double x, double y);
9012double2 __ovld __cnfn nextafter(double2 x, double2 y);
9013double3 __ovld __cnfn nextafter(double3 x, double3 y);
9014double4 __ovld __cnfn nextafter(double4 x, double4 y);
9015double8 __ovld __cnfn nextafter(double8 x, double8 y);
9016double16 __ovld __cnfn nextafter(double16 x, double16 y);
9017#endif //cl_khr_fp64
9018#ifdef cl_khr_fp16
9019half __ovld __cnfn nextafter(half x, half y);
9020half2 __ovld __cnfn nextafter(half2 x, half2 y);
9021half3 __ovld __cnfn nextafter(half3 x, half3 y);
9022half4 __ovld __cnfn nextafter(half4 x, half4 y);
9023half8 __ovld __cnfn nextafter(half8 x, half8 y);
9024half16 __ovld __cnfn nextafter(half16 x, half16 y);
9025#endif //cl_khr_fp16
9026
9027/**
9028 * Compute x to the power y.
9029 */
9030float __ovld __cnfn pow(float x, float y);
9031float2 __ovld __cnfn pow(float2 x, float2 y);
9032float3 __ovld __cnfn pow(float3 x, float3 y);
9033float4 __ovld __cnfn pow(float4 x, float4 y);
9034float8 __ovld __cnfn pow(float8 x, float8 y);
9035float16 __ovld __cnfn pow(float16 x, float16 y);
9036#ifdef cl_khr_fp64
9037double __ovld __cnfn pow(double x, double y);
9038double2 __ovld __cnfn pow(double2 x, double2 y);
9039double3 __ovld __cnfn pow(double3 x, double3 y);
9040double4 __ovld __cnfn pow(double4 x, double4 y);
9041double8 __ovld __cnfn pow(double8 x, double8 y);
9042double16 __ovld __cnfn pow(double16 x, double16 y);
9043#endif //cl_khr_fp64
9044#ifdef cl_khr_fp16
9045half __ovld __cnfn pow(half x, half y);
9046half2 __ovld __cnfn pow(half2 x, half2 y);
9047half3 __ovld __cnfn pow(half3 x, half3 y);
9048half4 __ovld __cnfn pow(half4 x, half4 y);
9049half8 __ovld __cnfn pow(half8 x, half8 y);
9050half16 __ovld __cnfn pow(half16 x, half16 y);
9051#endif //cl_khr_fp16
9052
9053/**
9054 * Compute x to the power y, where y is an integer.
9055 */
9056float __ovld __cnfn pown(float x, int y);
9057float2 __ovld __cnfn pown(float2 x, int2 y);
9058float3 __ovld __cnfn pown(float3 x, int3 y);
9059float4 __ovld __cnfn pown(float4 x, int4 y);
9060float8 __ovld __cnfn pown(float8 x, int8 y);
9061float16 __ovld __cnfn pown(float16 x, int16 y);
9062#ifdef cl_khr_fp64
9063double __ovld __cnfn pown(double x, int y);
9064double2 __ovld __cnfn pown(double2 x, int2 y);
9065double3 __ovld __cnfn pown(double3 x, int3 y);
9066double4 __ovld __cnfn pown(double4 x, int4 y);
9067double8 __ovld __cnfn pown(double8 x, int8 y);
9068double16 __ovld __cnfn pown(double16 x, int16 y);
9069#endif //cl_khr_fp64
9070#ifdef cl_khr_fp16
9071half __ovld __cnfn pown(half x, int y);
9072half2 __ovld __cnfn pown(half2 x, int2 y);
9073half3 __ovld __cnfn pown(half3 x, int3 y);
9074half4 __ovld __cnfn pown(half4 x, int4 y);
9075half8 __ovld __cnfn pown(half8 x, int8 y);
9076half16 __ovld __cnfn pown(half16 x, int16 y);
9077#endif //cl_khr_fp16
9078
9079/**
9080 * Compute x to the power y, where x is >= 0.
9081 */
9082float __ovld __cnfn powr(float x, float y);
9083float2 __ovld __cnfn powr(float2 x, float2 y);
9084float3 __ovld __cnfn powr(float3 x, float3 y);
9085float4 __ovld __cnfn powr(float4 x, float4 y);
9086float8 __ovld __cnfn powr(float8 x, float8 y);
9087float16 __ovld __cnfn powr(float16 x, float16 y);
9088#ifdef cl_khr_fp64
9089double __ovld __cnfn powr(double x, double y);
9090double2 __ovld __cnfn powr(double2 x, double2 y);
9091double3 __ovld __cnfn powr(double3 x, double3 y);
9092double4 __ovld __cnfn powr(double4 x, double4 y);
9093double8 __ovld __cnfn powr(double8 x, double8 y);
9094double16 __ovld __cnfn powr(double16 x, double16 y);
9095#endif //cl_khr_fp64
9096#ifdef cl_khr_fp16
9097half __ovld __cnfn powr(half x, half y);
9098half2 __ovld __cnfn powr(half2 x, half2 y);
9099half3 __ovld __cnfn powr(half3 x, half3 y);
9100half4 __ovld __cnfn powr(half4 x, half4 y);
9101half8 __ovld __cnfn powr(half8 x, half8 y);
9102half16 __ovld __cnfn powr(half16 x, half16 y);
9103#endif //cl_khr_fp16
9104
9105/**
9106 * Compute the value r such that r = x - n*y, where n
9107 * is the integer nearest the exact value of x/y. If there
9108 * are two integers closest to x/y, n shall be the even
9109 * one. If r is zero, it is given the same sign as x.
9110 */
9111float __ovld __cnfn remainder(float x, float y);
9112float2 __ovld __cnfn remainder(float2 x, float2 y);
9113float3 __ovld __cnfn remainder(float3 x, float3 y);
9114float4 __ovld __cnfn remainder(float4 x, float4 y);
9115float8 __ovld __cnfn remainder(float8 x, float8 y);
9116float16 __ovld __cnfn remainder(float16 x, float16 y);
9117#ifdef cl_khr_fp64
9118double __ovld __cnfn remainder(double x, double y);
9119double2 __ovld __cnfn remainder(double2 x, double2 y);
9120double3 __ovld __cnfn remainder(double3 x, double3 y);
9121double4 __ovld __cnfn remainder(double4 x, double4 y);
9122double8 __ovld __cnfn remainder(double8 x, double8 y);
9123double16 __ovld __cnfn remainder(double16 x, double16 y);
9124#endif //cl_khr_fp64
9125#ifdef cl_khr_fp16
9126half __ovld __cnfn remainder(half x, half y);
9127half2 __ovld __cnfn remainder(half2 x, half2 y);
9128half3 __ovld __cnfn remainder(half3 x, half3 y);
9129half4 __ovld __cnfn remainder(half4 x, half4 y);
9130half8 __ovld __cnfn remainder(half8 x, half8 y);
9131half16 __ovld __cnfn remainder(half16 x, half16 y);
9132#endif //cl_khr_fp16
9133
9134/**
9135 * The remquo function computes the value r such
9136 * that r = x - n*y, where n is the integer nearest the
9137 * exact value of x/y. If there are two integers closest
9138 * to x/y, n shall be the even one. If r is zero, it is
9139 * given the same sign as x. This is the same value
9140 * that is returned by the remainder function.
9141 * remquo also calculates the lower seven bits of the
9142 * integral quotient x/y, and gives that value the same
9143 * sign as x/y. It stores this signed value in the object
9144 * pointed to by quo.
9145 */
9146#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9147float __ovld remquo(float x, float y, int *quo);
9148float2 __ovld remquo(float2 x, float2 y, int2 *quo);
9149float3 __ovld remquo(float3 x, float3 y, int3 *quo);
9150float4 __ovld remquo(float4 x, float4 y, int4 *quo);
9151float8 __ovld remquo(float8 x, float8 y, int8 *quo);
9152float16 __ovld remquo(float16 x, float16 y, int16 *quo);
9153#ifdef cl_khr_fp64
9154double __ovld remquo(double x, double y, int *quo);
9155double2 __ovld remquo(double2 x, double2 y, int2 *quo);
9156double3 __ovld remquo(double3 x, double3 y, int3 *quo);
9157double4 __ovld remquo(double4 x, double4 y, int4 *quo);
9158double8 __ovld remquo(double8 x, double8 y, int8 *quo);
9159double16 __ovld remquo(double16 x, double16 y, int16 *quo);
9160#endif //cl_khr_fp64
9161#ifdef cl_khr_fp16
9162half __ovld remquo(half x, half y, int *quo);
9163half2 __ovld remquo(half2 x, half2 y, int2 *quo);
9164half3 __ovld remquo(half3 x, half3 y, int3 *quo);
9165half4 __ovld remquo(half4 x, half4 y, int4 *quo);
9166half8 __ovld remquo(half8 x, half8 y, int8 *quo);
9167half16 __ovld remquo(half16 x, half16 y, int16 *quo);
9168
9169#endif //cl_khr_fp16
9170#else
9171float __ovld remquo(float x, float y, __global int *quo);
9172float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
9173float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
9174float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
9175float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
9176float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
9177float __ovld remquo(float x, float y, __local int *quo);
9178float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
9179float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
9180float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
9181float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
9182float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
9183float __ovld remquo(float x, float y, __private int *quo);
9184float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
9185float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
9186float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
9187float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
9188float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
9189#ifdef cl_khr_fp64
9190double __ovld remquo(double x, double y, __global int *quo);
9191double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
9192double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
9193double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
9194double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
9195double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
9196double __ovld remquo(double x, double y, __local int *quo);
9197double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
9198double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
9199double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
9200double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
9201double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
9202double __ovld remquo(double x, double y, __private int *quo);
9203double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
9204double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
9205double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
9206double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
9207double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
9208#endif //cl_khr_fp64
9209#ifdef cl_khr_fp16
9210half __ovld remquo(half x, half y, __global int *quo);
9211half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
9212half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
9213half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
9214half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
9215half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
9216half __ovld remquo(half x, half y, __local int *quo);
9217half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
9218half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
9219half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
9220half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
9221half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
9222half __ovld remquo(half x, half y, __private int *quo);
9223half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
9224half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
9225half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
9226half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
9227half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
9228#endif //cl_khr_fp16
9229#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9230/**
9231 * Round to integral value (using round to nearest
9232 * even rounding mode) in floating-point format.
9233 * Refer to section 7.1 for description of rounding
9234 * modes.
9235 */
9236float __ovld __cnfn rint(float);
9237float2 __ovld __cnfn rint(float2);
9238float3 __ovld __cnfn rint(float3);
9239float4 __ovld __cnfn rint(float4);
9240float8 __ovld __cnfn rint(float8);
9241float16 __ovld __cnfn rint(float16);
9242#ifdef cl_khr_fp64
9243double __ovld __cnfn rint(double);
9244double2 __ovld __cnfn rint(double2);
9245double3 __ovld __cnfn rint(double3);
9246double4 __ovld __cnfn rint(double4);
9247double8 __ovld __cnfn rint(double8);
9248double16 __ovld __cnfn rint(double16);
9249#endif //cl_khr_fp64
9250#ifdef cl_khr_fp16
9251half __ovld __cnfn rint(half);
9252half2 __ovld __cnfn rint(half2);
9253half3 __ovld __cnfn rint(half3);
9254half4 __ovld __cnfn rint(half4);
9255half8 __ovld __cnfn rint(half8);
9256half16 __ovld __cnfn rint(half16);
9257#endif //cl_khr_fp16
9258
9259/**
9260 * Compute x to the power 1/y.
9261 */
9262float __ovld __cnfn rootn(float x, int y);
9263float2 __ovld __cnfn rootn(float2 x, int2 y);
9264float3 __ovld __cnfn rootn(float3 x, int3 y);
9265float4 __ovld __cnfn rootn(float4 x, int4 y);
9266float8 __ovld __cnfn rootn(float8 x, int8 y);
9267float16 __ovld __cnfn rootn(float16 x, int16 y);
9268#ifdef cl_khr_fp64
9269double __ovld __cnfn rootn(double x, int y);
9270double2 __ovld __cnfn rootn(double2 x, int2 y);
9271double3 __ovld __cnfn rootn(double3 x, int3 y);
9272double4 __ovld __cnfn rootn(double4 x, int4 y);
9273double8 __ovld __cnfn rootn(double8 x, int8 y);
9274double16 __ovld __cnfn rootn(double16 x, int16 y);
9275#endif //cl_khr_fp64
9276#ifdef cl_khr_fp16
9277half __ovld __cnfn rootn(half x, int y);
9278half2 __ovld __cnfn rootn(half2 x, int2 y);
9279half3 __ovld __cnfn rootn(half3 x, int3 y);
9280half4 __ovld __cnfn rootn(half4 x, int4 y);
9281half8 __ovld __cnfn rootn(half8 x, int8 y);
9282half16 __ovld __cnfn rootn(half16 x, int16 y);
9283#endif //cl_khr_fp16
9284
9285/**
9286 * Return the integral value nearest to x rounding
9287 * halfway cases away from zero, regardless of the
9288 * current rounding direction.
9289 */
9290float __ovld __cnfn round(float x);
9291float2 __ovld __cnfn round(float2 x);
9292float3 __ovld __cnfn round(float3 x);
9293float4 __ovld __cnfn round(float4 x);
9294float8 __ovld __cnfn round(float8 x);
9295float16 __ovld __cnfn round(float16 x);
9296#ifdef cl_khr_fp64
9297double __ovld __cnfn round(double x);
9298double2 __ovld __cnfn round(double2 x);
9299double3 __ovld __cnfn round(double3 x);
9300double4 __ovld __cnfn round(double4 x);
9301double8 __ovld __cnfn round(double8 x);
9302double16 __ovld __cnfn round(double16 x);
9303#endif //cl_khr_fp64
9304#ifdef cl_khr_fp16
9305half __ovld __cnfn round(half x);
9306half2 __ovld __cnfn round(half2 x);
9307half3 __ovld __cnfn round(half3 x);
9308half4 __ovld __cnfn round(half4 x);
9309half8 __ovld __cnfn round(half8 x);
9310half16 __ovld __cnfn round(half16 x);
9311#endif //cl_khr_fp16
9312
9313/**
9314 * Compute inverse square root.
9315 */
9316float __ovld __cnfn rsqrt(float);
9317float2 __ovld __cnfn rsqrt(float2);
9318float3 __ovld __cnfn rsqrt(float3);
9319float4 __ovld __cnfn rsqrt(float4);
9320float8 __ovld __cnfn rsqrt(float8);
9321float16 __ovld __cnfn rsqrt(float16);
9322#ifdef cl_khr_fp64
9323double __ovld __cnfn rsqrt(double);
9324double2 __ovld __cnfn rsqrt(double2);
9325double3 __ovld __cnfn rsqrt(double3);
9326double4 __ovld __cnfn rsqrt(double4);
9327double8 __ovld __cnfn rsqrt(double8);
9328double16 __ovld __cnfn rsqrt(double16);
9329#endif //cl_khr_fp64
9330#ifdef cl_khr_fp16
9331half __ovld __cnfn rsqrt(half);
9332half2 __ovld __cnfn rsqrt(half2);
9333half3 __ovld __cnfn rsqrt(half3);
9334half4 __ovld __cnfn rsqrt(half4);
9335half8 __ovld __cnfn rsqrt(half8);
9336half16 __ovld __cnfn rsqrt(half16);
9337#endif //cl_khr_fp16
9338
9339/**
9340 * Compute sine.
9341 */
9342float __ovld __cnfn sin(float);
9343float2 __ovld __cnfn sin(float2);
9344float3 __ovld __cnfn sin(float3);
9345float4 __ovld __cnfn sin(float4);
9346float8 __ovld __cnfn sin(float8);
9347float16 __ovld __cnfn sin(float16);
9348#ifdef cl_khr_fp64
9349double __ovld __cnfn sin(double);
9350double2 __ovld __cnfn sin(double2);
9351double3 __ovld __cnfn sin(double3);
9352double4 __ovld __cnfn sin(double4);
9353double8 __ovld __cnfn sin(double8);
9354double16 __ovld __cnfn sin(double16);
9355#endif //cl_khr_fp64
9356#ifdef cl_khr_fp16
9357half __ovld __cnfn sin(half);
9358half2 __ovld __cnfn sin(half2);
9359half3 __ovld __cnfn sin(half3);
9360half4 __ovld __cnfn sin(half4);
9361half8 __ovld __cnfn sin(half8);
9362half16 __ovld __cnfn sin(half16);
9363#endif //cl_khr_fp16
9364
9365/**
9366 * Compute sine and cosine of x. The computed sine
9367 * is the return value and computed cosine is returned
9368 * in cosval.
9369 */
9370#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9371float __ovld sincos(float x, float *cosval);
9372float2 __ovld sincos(float2 x, float2 *cosval);
9373float3 __ovld sincos(float3 x, float3 *cosval);
9374float4 __ovld sincos(float4 x, float4 *cosval);
9375float8 __ovld sincos(float8 x, float8 *cosval);
9376float16 __ovld sincos(float16 x, float16 *cosval);
9377#ifdef cl_khr_fp64
9378double __ovld sincos(double x, double *cosval);
9379double2 __ovld sincos(double2 x, double2 *cosval);
9380double3 __ovld sincos(double3 x, double3 *cosval);
9381double4 __ovld sincos(double4 x, double4 *cosval);
9382double8 __ovld sincos(double8 x, double8 *cosval);
9383double16 __ovld sincos(double16 x, double16 *cosval);
9384#endif //cl_khr_fp64
9385#ifdef cl_khr_fp16
9386half __ovld sincos(half x, half *cosval);
9387half2 __ovld sincos(half2 x, half2 *cosval);
9388half3 __ovld sincos(half3 x, half3 *cosval);
9389half4 __ovld sincos(half4 x, half4 *cosval);
9390half8 __ovld sincos(half8 x, half8 *cosval);
9391half16 __ovld sincos(half16 x, half16 *cosval);
9392#endif //cl_khr_fp16
9393#else
9394float __ovld sincos(float x, __global float *cosval);
9395float2 __ovld sincos(float2 x, __global float2 *cosval);
9396float3 __ovld sincos(float3 x, __global float3 *cosval);
9397float4 __ovld sincos(float4 x, __global float4 *cosval);
9398float8 __ovld sincos(float8 x, __global float8 *cosval);
9399float16 __ovld sincos(float16 x, __global float16 *cosval);
9400float __ovld sincos(float x, __local float *cosval);
9401float2 __ovld sincos(float2 x, __local float2 *cosval);
9402float3 __ovld sincos(float3 x, __local float3 *cosval);
9403float4 __ovld sincos(float4 x, __local float4 *cosval);
9404float8 __ovld sincos(float8 x, __local float8 *cosval);
9405float16 __ovld sincos(float16 x, __local float16 *cosval);
9406float __ovld sincos(float x, __private float *cosval);
9407float2 __ovld sincos(float2 x, __private float2 *cosval);
9408float3 __ovld sincos(float3 x, __private float3 *cosval);
9409float4 __ovld sincos(float4 x, __private float4 *cosval);
9410float8 __ovld sincos(float8 x, __private float8 *cosval);
9411float16 __ovld sincos(float16 x, __private float16 *cosval);
9412#ifdef cl_khr_fp64
9413double __ovld sincos(double x, __global double *cosval);
9414double2 __ovld sincos(double2 x, __global double2 *cosval);
9415double3 __ovld sincos(double3 x, __global double3 *cosval);
9416double4 __ovld sincos(double4 x, __global double4 *cosval);
9417double8 __ovld sincos(double8 x, __global double8 *cosval);
9418double16 __ovld sincos(double16 x, __global double16 *cosval);
9419double __ovld sincos(double x, __local double *cosval);
9420double2 __ovld sincos(double2 x, __local double2 *cosval);
9421double3 __ovld sincos(double3 x, __local double3 *cosval);
9422double4 __ovld sincos(double4 x, __local double4 *cosval);
9423double8 __ovld sincos(double8 x, __local double8 *cosval);
9424double16 __ovld sincos(double16 x, __local double16 *cosval);
9425double __ovld sincos(double x, __private double *cosval);
9426double2 __ovld sincos(double2 x, __private double2 *cosval);
9427double3 __ovld sincos(double3 x, __private double3 *cosval);
9428double4 __ovld sincos(double4 x, __private double4 *cosval);
9429double8 __ovld sincos(double8 x, __private double8 *cosval);
9430double16 __ovld sincos(double16 x, __private double16 *cosval);
9431#endif //cl_khr_fp64
9432#ifdef cl_khr_fp16
9433half __ovld sincos(half x, __global half *cosval);
9434half2 __ovld sincos(half2 x, __global half2 *cosval);
9435half3 __ovld sincos(half3 x, __global half3 *cosval);
9436half4 __ovld sincos(half4 x, __global half4 *cosval);
9437half8 __ovld sincos(half8 x, __global half8 *cosval);
9438half16 __ovld sincos(half16 x, __global half16 *cosval);
9439half __ovld sincos(half x, __local half *cosval);
9440half2 __ovld sincos(half2 x, __local half2 *cosval);
9441half3 __ovld sincos(half3 x, __local half3 *cosval);
9442half4 __ovld sincos(half4 x, __local half4 *cosval);
9443half8 __ovld sincos(half8 x, __local half8 *cosval);
9444half16 __ovld sincos(half16 x, __local half16 *cosval);
9445half __ovld sincos(half x, __private half *cosval);
9446half2 __ovld sincos(half2 x, __private half2 *cosval);
9447half3 __ovld sincos(half3 x, __private half3 *cosval);
9448half4 __ovld sincos(half4 x, __private half4 *cosval);
9449half8 __ovld sincos(half8 x, __private half8 *cosval);
9450half16 __ovld sincos(half16 x, __private half16 *cosval);
9451#endif //cl_khr_fp16
9452#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9453
9454/**
9455 * Compute hyperbolic sine.
9456 */
9457float __ovld __cnfn sinh(float);
9458float2 __ovld __cnfn sinh(float2);
9459float3 __ovld __cnfn sinh(float3);
9460float4 __ovld __cnfn sinh(float4);
9461float8 __ovld __cnfn sinh(float8);
9462float16 __ovld __cnfn sinh(float16);
9463#ifdef cl_khr_fp64
9464double __ovld __cnfn sinh(double);
9465double2 __ovld __cnfn sinh(double2);
9466double3 __ovld __cnfn sinh(double3);
9467double4 __ovld __cnfn sinh(double4);
9468double8 __ovld __cnfn sinh(double8);
9469double16 __ovld __cnfn sinh(double16);
9470#endif //cl_khr_fp64
9471#ifdef cl_khr_fp16
9472half __ovld __cnfn sinh(half);
9473half2 __ovld __cnfn sinh(half2);
9474half3 __ovld __cnfn sinh(half3);
9475half4 __ovld __cnfn sinh(half4);
9476half8 __ovld __cnfn sinh(half8);
9477half16 __ovld __cnfn sinh(half16);
9478#endif //cl_khr_fp16
9479
9480/**
9481 * Compute sin (PI * x).
9482 */
9483float __ovld __cnfn sinpi(float x);
9484float2 __ovld __cnfn sinpi(float2 x);
9485float3 __ovld __cnfn sinpi(float3 x);
9486float4 __ovld __cnfn sinpi(float4 x);
9487float8 __ovld __cnfn sinpi(float8 x);
9488float16 __ovld __cnfn sinpi(float16 x);
9489#ifdef cl_khr_fp64
9490double __ovld __cnfn sinpi(double x);
9491double2 __ovld __cnfn sinpi(double2 x);
9492double3 __ovld __cnfn sinpi(double3 x);
9493double4 __ovld __cnfn sinpi(double4 x);
9494double8 __ovld __cnfn sinpi(double8 x);
9495double16 __ovld __cnfn sinpi(double16 x);
9496#endif //cl_khr_fp64
9497#ifdef cl_khr_fp16
9498half __ovld __cnfn sinpi(half x);
9499half2 __ovld __cnfn sinpi(half2 x);
9500half3 __ovld __cnfn sinpi(half3 x);
9501half4 __ovld __cnfn sinpi(half4 x);
9502half8 __ovld __cnfn sinpi(half8 x);
9503half16 __ovld __cnfn sinpi(half16 x);
9504#endif //cl_khr_fp16
9505
9506/**
9507 * Compute square root.
9508 */
9509float __ovld __cnfn sqrt(float);
9510float2 __ovld __cnfn sqrt(float2);
9511float3 __ovld __cnfn sqrt(float3);
9512float4 __ovld __cnfn sqrt(float4);
9513float8 __ovld __cnfn sqrt(float8);
9514float16 __ovld __cnfn sqrt(float16);
9515#ifdef cl_khr_fp64
9516double __ovld __cnfn sqrt(double);
9517double2 __ovld __cnfn sqrt(double2);
9518double3 __ovld __cnfn sqrt(double3);
9519double4 __ovld __cnfn sqrt(double4);
9520double8 __ovld __cnfn sqrt(double8);
9521double16 __ovld __cnfn sqrt(double16);
9522#endif //cl_khr_fp64
9523#ifdef cl_khr_fp16
9524half __ovld __cnfn sqrt(half);
9525half2 __ovld __cnfn sqrt(half2);
9526half3 __ovld __cnfn sqrt(half3);
9527half4 __ovld __cnfn sqrt(half4);
9528half8 __ovld __cnfn sqrt(half8);
9529half16 __ovld __cnfn sqrt(half16);
9530#endif //cl_khr_fp16
9531
9532/**
9533 * Compute tangent.
9534 */
9535float __ovld __cnfn tan(float);
9536float2 __ovld __cnfn tan(float2);
9537float3 __ovld __cnfn tan(float3);
9538float4 __ovld __cnfn tan(float4);
9539float8 __ovld __cnfn tan(float8);
9540float16 __ovld __cnfn tan(float16);
9541#ifdef cl_khr_fp64
9542double __ovld __cnfn tan(double);
9543double2 __ovld __cnfn tan(double2);
9544double3 __ovld __cnfn tan(double3);
9545double4 __ovld __cnfn tan(double4);
9546double8 __ovld __cnfn tan(double8);
9547double16 __ovld __cnfn tan(double16);
9548#endif //cl_khr_fp64
9549#ifdef cl_khr_fp16
9550half __ovld __cnfn tan(half);
9551half2 __ovld __cnfn tan(half2);
9552half3 __ovld __cnfn tan(half3);
9553half4 __ovld __cnfn tan(half4);
9554half8 __ovld __cnfn tan(half8);
9555half16 __ovld __cnfn tan(half16);
9556#endif //cl_khr_fp16
9557
9558/**
9559 * Compute hyperbolic tangent.
9560 */
9561float __ovld __cnfn tanh(float);
9562float2 __ovld __cnfn tanh(float2);
9563float3 __ovld __cnfn tanh(float3);
9564float4 __ovld __cnfn tanh(float4);
9565float8 __ovld __cnfn tanh(float8);
9566float16 __ovld __cnfn tanh(float16);
9567#ifdef cl_khr_fp64
9568double __ovld __cnfn tanh(double);
9569double2 __ovld __cnfn tanh(double2);
9570double3 __ovld __cnfn tanh(double3);
9571double4 __ovld __cnfn tanh(double4);
9572double8 __ovld __cnfn tanh(double8);
9573double16 __ovld __cnfn tanh(double16);
9574#endif //cl_khr_fp64
9575#ifdef cl_khr_fp16
9576half __ovld __cnfn tanh(half);
9577half2 __ovld __cnfn tanh(half2);
9578half3 __ovld __cnfn tanh(half3);
9579half4 __ovld __cnfn tanh(half4);
9580half8 __ovld __cnfn tanh(half8);
9581half16 __ovld __cnfn tanh(half16);
9582#endif //cl_khr_fp16
9583
9584/**
9585 * Compute tan (PI * x).
9586 */
9587float __ovld __cnfn tanpi(float x);
9588float2 __ovld __cnfn tanpi(float2 x);
9589float3 __ovld __cnfn tanpi(float3 x);
9590float4 __ovld __cnfn tanpi(float4 x);
9591float8 __ovld __cnfn tanpi(float8 x);
9592float16 __ovld __cnfn tanpi(float16 x);
9593#ifdef cl_khr_fp64
9594double __ovld __cnfn tanpi(double x);
9595double2 __ovld __cnfn tanpi(double2 x);
9596double3 __ovld __cnfn tanpi(double3 x);
9597double4 __ovld __cnfn tanpi(double4 x);
9598double8 __ovld __cnfn tanpi(double8 x);
9599double16 __ovld __cnfn tanpi(double16 x);
9600#endif //cl_khr_fp64
9601#ifdef cl_khr_fp16
9602half __ovld __cnfn tanpi(half x);
9603half2 __ovld __cnfn tanpi(half2 x);
9604half3 __ovld __cnfn tanpi(half3 x);
9605half4 __ovld __cnfn tanpi(half4 x);
9606half8 __ovld __cnfn tanpi(half8 x);
9607half16 __ovld __cnfn tanpi(half16 x);
9608#endif //cl_khr_fp16
9609
9610/**
9611 * Compute the gamma function.
9612 */
9613float __ovld __cnfn tgamma(float);
9614float2 __ovld __cnfn tgamma(float2);
9615float3 __ovld __cnfn tgamma(float3);
9616float4 __ovld __cnfn tgamma(float4);
9617float8 __ovld __cnfn tgamma(float8);
9618float16 __ovld __cnfn tgamma(float16);
9619#ifdef cl_khr_fp64
9620double __ovld __cnfn tgamma(double);
9621double2 __ovld __cnfn tgamma(double2);
9622double3 __ovld __cnfn tgamma(double3);
9623double4 __ovld __cnfn tgamma(double4);
9624double8 __ovld __cnfn tgamma(double8);
9625double16 __ovld __cnfn tgamma(double16);
9626#endif //cl_khr_fp64
9627#ifdef cl_khr_fp16
9628half __ovld __cnfn tgamma(half);
9629half2 __ovld __cnfn tgamma(half2);
9630half3 __ovld __cnfn tgamma(half3);
9631half4 __ovld __cnfn tgamma(half4);
9632half8 __ovld __cnfn tgamma(half8);
9633half16 __ovld __cnfn tgamma(half16);
9634#endif //cl_khr_fp16
9635
9636/**
9637 * Round to integral value using the round to zero
9638 * rounding mode.
9639 */
9640float __ovld __cnfn trunc(float);
9641float2 __ovld __cnfn trunc(float2);
9642float3 __ovld __cnfn trunc(float3);
9643float4 __ovld __cnfn trunc(float4);
9644float8 __ovld __cnfn trunc(float8);
9645float16 __ovld __cnfn trunc(float16);
9646#ifdef cl_khr_fp64
9647double __ovld __cnfn trunc(double);
9648double2 __ovld __cnfn trunc(double2);
9649double3 __ovld __cnfn trunc(double3);
9650double4 __ovld __cnfn trunc(double4);
9651double8 __ovld __cnfn trunc(double8);
9652double16 __ovld __cnfn trunc(double16);
9653#endif //cl_khr_fp64
9654#ifdef cl_khr_fp16
9655half __ovld __cnfn trunc(half);
9656half2 __ovld __cnfn trunc(half2);
9657half3 __ovld __cnfn trunc(half3);
9658half4 __ovld __cnfn trunc(half4);
9659half8 __ovld __cnfn trunc(half8);
9660half16 __ovld __cnfn trunc(half16);
9661#endif //cl_khr_fp16
9662
9663/**
9664 * Compute cosine. x must be in the range -2^16 ... +2^16.
9665 */
9666float __ovld __cnfn half_cos(float x);
9667float2 __ovld __cnfn half_cos(float2 x);
9668float3 __ovld __cnfn half_cos(float3 x);
9669float4 __ovld __cnfn half_cos(float4 x);
9670float8 __ovld __cnfn half_cos(float8 x);
9671float16 __ovld __cnfn half_cos(float16 x);
9672
9673/**
9674 * Compute x / y.
9675 */
9676float __ovld __cnfn half_divide(float x, float y);
9677float2 __ovld __cnfn half_divide(float2 x, float2 y);
9678float3 __ovld __cnfn half_divide(float3 x, float3 y);
9679float4 __ovld __cnfn half_divide(float4 x, float4 y);
9680float8 __ovld __cnfn half_divide(float8 x, float8 y);
9681float16 __ovld __cnfn half_divide(float16 x, float16 y);
9682
9683/**
9684 * Compute the base- e exponential of x.
9685 */
9686float __ovld __cnfn half_exp(float x);
9687float2 __ovld __cnfn half_exp(float2 x);
9688float3 __ovld __cnfn half_exp(float3 x);
9689float4 __ovld __cnfn half_exp(float4 x);
9690float8 __ovld __cnfn half_exp(float8 x);
9691float16 __ovld __cnfn half_exp(float16 x);
9692
9693/**
9694 * Compute the base- 2 exponential of x.
9695 */
9696float __ovld __cnfn half_exp2(float x);
9697float2 __ovld __cnfn half_exp2(float2 x);
9698float3 __ovld __cnfn half_exp2(float3 x);
9699float4 __ovld __cnfn half_exp2(float4 x);
9700float8 __ovld __cnfn half_exp2(float8 x);
9701float16 __ovld __cnfn half_exp2(float16 x);
9702
9703/**
9704 * Compute the base- 10 exponential of x.
9705 */
9706float __ovld __cnfn half_exp10(float x);
9707float2 __ovld __cnfn half_exp10(float2 x);
9708float3 __ovld __cnfn half_exp10(float3 x);
9709float4 __ovld __cnfn half_exp10(float4 x);
9710float8 __ovld __cnfn half_exp10(float8 x);
9711float16 __ovld __cnfn half_exp10(float16 x);
9712
9713/**
9714 * Compute natural logarithm.
9715 */
9716float __ovld __cnfn half_log(float x);
9717float2 __ovld __cnfn half_log(float2 x);
9718float3 __ovld __cnfn half_log(float3 x);
9719float4 __ovld __cnfn half_log(float4 x);
9720float8 __ovld __cnfn half_log(float8 x);
9721float16 __ovld __cnfn half_log(float16 x);
9722
9723/**
9724 * Compute a base 2 logarithm.
9725 */
9726float __ovld __cnfn half_log2(float x);
9727float2 __ovld __cnfn half_log2(float2 x);
9728float3 __ovld __cnfn half_log2(float3 x);
9729float4 __ovld __cnfn half_log2(float4 x);
9730float8 __ovld __cnfn half_log2(float8 x);
9731float16 __ovld __cnfn half_log2(float16 x);
9732
9733/**
9734 * Compute a base 10 logarithm.
9735 */
9736float __ovld __cnfn half_log10(float x);
9737float2 __ovld __cnfn half_log10(float2 x);
9738float3 __ovld __cnfn half_log10(float3 x);
9739float4 __ovld __cnfn half_log10(float4 x);
9740float8 __ovld __cnfn half_log10(float8 x);
9741float16 __ovld __cnfn half_log10(float16 x);
9742
9743/**
9744 * Compute x to the power y, where x is >= 0.
9745 */
9746float __ovld __cnfn half_powr(float x, float y);
9747float2 __ovld __cnfn half_powr(float2 x, float2 y);
9748float3 __ovld __cnfn half_powr(float3 x, float3 y);
9749float4 __ovld __cnfn half_powr(float4 x, float4 y);
9750float8 __ovld __cnfn half_powr(float8 x, float8 y);
9751float16 __ovld __cnfn half_powr(float16 x, float16 y);
9752
9753/**
9754 * Compute reciprocal.
9755 */
9756float __ovld __cnfn half_recip(float x);
9757float2 __ovld __cnfn half_recip(float2 x);
9758float3 __ovld __cnfn half_recip(float3 x);
9759float4 __ovld __cnfn half_recip(float4 x);
9760float8 __ovld __cnfn half_recip(float8 x);
9761float16 __ovld __cnfn half_recip(float16 x);
9762
9763/**
9764 * Compute inverse square root.
9765 */
9766float __ovld __cnfn half_rsqrt(float x);
9767float2 __ovld __cnfn half_rsqrt(float2 x);
9768float3 __ovld __cnfn half_rsqrt(float3 x);
9769float4 __ovld __cnfn half_rsqrt(float4 x);
9770float8 __ovld __cnfn half_rsqrt(float8 x);
9771float16 __ovld __cnfn half_rsqrt(float16 x);
9772
9773/**
9774 * Compute sine. x must be in the range -2^16 ... +2^16.
9775 */
9776float __ovld __cnfn half_sin(float x);
9777float2 __ovld __cnfn half_sin(float2 x);
9778float3 __ovld __cnfn half_sin(float3 x);
9779float4 __ovld __cnfn half_sin(float4 x);
9780float8 __ovld __cnfn half_sin(float8 x);
9781float16 __ovld __cnfn half_sin(float16 x);
9782
9783/**
9784 * Compute square root.
9785 */
9786float __ovld __cnfn half_sqrt(float x);
9787float2 __ovld __cnfn half_sqrt(float2 x);
9788float3 __ovld __cnfn half_sqrt(float3 x);
9789float4 __ovld __cnfn half_sqrt(float4 x);
9790float8 __ovld __cnfn half_sqrt(float8 x);
9791float16 __ovld __cnfn half_sqrt(float16 x);
9792
9793/**
9794 * Compute tangent. x must be in the range -216 ... +216.
9795 */
9796float __ovld __cnfn half_tan(float x);
9797float2 __ovld __cnfn half_tan(float2 x);
9798float3 __ovld __cnfn half_tan(float3 x);
9799float4 __ovld __cnfn half_tan(float4 x);
9800float8 __ovld __cnfn half_tan(float8 x);
9801float16 __ovld __cnfn half_tan(float16 x);
9802
9803/**
9804 * Compute cosine over an implementation-defined range.
9805 * The maximum error is implementation-defined.
9806 */
9807float __ovld __cnfn native_cos(float x);
9808float2 __ovld __cnfn native_cos(float2 x);
9809float3 __ovld __cnfn native_cos(float3 x);
9810float4 __ovld __cnfn native_cos(float4 x);
9811float8 __ovld __cnfn native_cos(float8 x);
9812float16 __ovld __cnfn native_cos(float16 x);
9813#ifdef cl_khr_fp64
9814double __ovld __cnfn native_cos(double x);
9815double2 __ovld __cnfn native_cos(double2 x);
9816double3 __ovld __cnfn native_cos(double3 x);
9817double4 __ovld __cnfn native_cos(double4 x);
9818double8 __ovld __cnfn native_cos(double8 x);
9819double16 __ovld __cnfn native_cos(double16 x);
9820#endif //cl_khr_fp64
9821
9822/**
9823 * Compute x / y over an implementation-defined range.
9824 * The maximum error is implementation-defined.
9825 */
9826float __ovld __cnfn native_divide(float x, float y);
9827float2 __ovld __cnfn native_divide(float2 x, float2 y);
9828float3 __ovld __cnfn native_divide(float3 x, float3 y);
9829float4 __ovld __cnfn native_divide(float4 x, float4 y);
9830float8 __ovld __cnfn native_divide(float8 x, float8 y);
9831float16 __ovld __cnfn native_divide(float16 x, float16 y);
9832#ifdef cl_khr_fp64
9833double __ovld __cnfn native_divide(double x, double y);
9834double2 __ovld __cnfn native_divide(double2 x, double2 y);
9835double3 __ovld __cnfn native_divide(double3 x, double3 y);
9836double4 __ovld __cnfn native_divide(double4 x, double4 y);
9837double8 __ovld __cnfn native_divide(double8 x, double8 y);
9838double16 __ovld __cnfn native_divide(double16 x, double16 y);
9839#endif //cl_khr_fp64
9840
9841/**
9842 * Compute the base- e exponential of x over an
9843 * implementation-defined range. The maximum error is
9844 * implementation-defined.
9845 */
9846float __ovld __cnfn native_exp(float x);
9847float2 __ovld __cnfn native_exp(float2 x);
9848float3 __ovld __cnfn native_exp(float3 x);
9849float4 __ovld __cnfn native_exp(float4 x);
9850float8 __ovld __cnfn native_exp(float8 x);
9851float16 __ovld __cnfn native_exp(float16 x);
9852#ifdef cl_khr_fp64
9853double __ovld __cnfn native_exp(double x);
9854double2 __ovld __cnfn native_exp(double2 x);
9855double3 __ovld __cnfn native_exp(double3 x);
9856double4 __ovld __cnfn native_exp(double4 x);
9857double8 __ovld __cnfn native_exp(double8 x);
9858double16 __ovld __cnfn native_exp(double16 x);
9859#endif //cl_khr_fp64
9860
9861/**
9862 * Compute the base- 2 exponential of x over an
9863 * implementation-defined range. The maximum error is
9864 * implementation-defined.
9865 */
9866float __ovld __cnfn native_exp2(float x);
9867float2 __ovld __cnfn native_exp2(float2 x);
9868float3 __ovld __cnfn native_exp2(float3 x);
9869float4 __ovld __cnfn native_exp2(float4 x);
9870float8 __ovld __cnfn native_exp2(float8 x);
9871float16 __ovld __cnfn native_exp2(float16 x);
9872#ifdef cl_khr_fp64
9873double __ovld __cnfn native_exp2(double x);
9874double2 __ovld __cnfn native_exp2(double2 x);
9875double3 __ovld __cnfn native_exp2(double3 x);
9876double4 __ovld __cnfn native_exp2(double4 x);
9877double8 __ovld __cnfn native_exp2(double8 x);
9878double16 __ovld __cnfn native_exp2(double16 x);
9879#endif //cl_khr_fp64
9880
9881/**
9882 * Compute the base- 10 exponential of x over an
9883 * implementation-defined range. The maximum error is
9884 * implementation-defined.
9885 */
9886float __ovld __cnfn native_exp10(float x);
9887float2 __ovld __cnfn native_exp10(float2 x);
9888float3 __ovld __cnfn native_exp10(float3 x);
9889float4 __ovld __cnfn native_exp10(float4 x);
9890float8 __ovld __cnfn native_exp10(float8 x);
9891float16 __ovld __cnfn native_exp10(float16 x);
9892#ifdef cl_khr_fp64
9893double __ovld __cnfn native_exp10(double x);
9894double2 __ovld __cnfn native_exp10(double2 x);
9895double3 __ovld __cnfn native_exp10(double3 x);
9896double4 __ovld __cnfn native_exp10(double4 x);
9897double8 __ovld __cnfn native_exp10(double8 x);
9898double16 __ovld __cnfn native_exp10(double16 x);
9899#endif //cl_khr_fp64
9900
9901/**
9902 * Compute natural logarithm over an implementationdefined
9903 * range. The maximum error is implementation
9904 * defined.
9905 */
9906float __ovld __cnfn native_log(float x);
9907float2 __ovld __cnfn native_log(float2 x);
9908float3 __ovld __cnfn native_log(float3 x);
9909float4 __ovld __cnfn native_log(float4 x);
9910float8 __ovld __cnfn native_log(float8 x);
9911float16 __ovld __cnfn native_log(float16 x);
9912#ifdef cl_khr_fp64
9913double __ovld __cnfn native_log(double x);
9914double2 __ovld __cnfn native_log(double2 x);
9915double3 __ovld __cnfn native_log(double3 x);
9916double4 __ovld __cnfn native_log(double4 x);
9917double8 __ovld __cnfn native_log(double8 x);
9918double16 __ovld __cnfn native_log(double16 x);
9919#endif //cl_khr_fp64
9920
9921/**
9922 * Compute a base 2 logarithm over an implementationdefined
9923 * range. The maximum error is implementationdefined.
9924 */
9925float __ovld __cnfn native_log2(float x);
9926float2 __ovld __cnfn native_log2(float2 x);
9927float3 __ovld __cnfn native_log2(float3 x);
9928float4 __ovld __cnfn native_log2(float4 x);
9929float8 __ovld __cnfn native_log2(float8 x);
9930float16 __ovld __cnfn native_log2(float16 x);
9931#ifdef cl_khr_fp64
9932double __ovld __cnfn native_log2(double x);
9933double2 __ovld __cnfn native_log2(double2 x);
9934double3 __ovld __cnfn native_log2(double3 x);
9935double4 __ovld __cnfn native_log2(double4 x);
9936double8 __ovld __cnfn native_log2(double8 x);
9937double16 __ovld __cnfn native_log2(double16 x);
9938#endif //cl_khr_fp64
9939
9940/**
9941 * Compute a base 10 logarithm over an implementationdefined
9942 * range. The maximum error is implementationdefined.
9943 */
9944float __ovld __cnfn native_log10(float x);
9945float2 __ovld __cnfn native_log10(float2 x);
9946float3 __ovld __cnfn native_log10(float3 x);
9947float4 __ovld __cnfn native_log10(float4 x);
9948float8 __ovld __cnfn native_log10(float8 x);
9949float16 __ovld __cnfn native_log10(float16 x);
9950#ifdef cl_khr_fp64
9951double __ovld __cnfn native_log10(double x);
9952double2 __ovld __cnfn native_log10(double2 x);
9953double3 __ovld __cnfn native_log10(double3 x);
9954double4 __ovld __cnfn native_log10(double4 x);
9955double8 __ovld __cnfn native_log10(double8 x);
9956double16 __ovld __cnfn native_log10(double16 x);
9957#endif //cl_khr_fp64
9958
9959/**
9960 * Compute x to the power y, where x is >= 0. The range of
9961 * x and y are implementation-defined. The maximum error
9962 * is implementation-defined.
9963 */
9964float __ovld __cnfn native_powr(float x, float y);
9965float2 __ovld __cnfn native_powr(float2 x, float2 y);
9966float3 __ovld __cnfn native_powr(float3 x, float3 y);
9967float4 __ovld __cnfn native_powr(float4 x, float4 y);
9968float8 __ovld __cnfn native_powr(float8 x, float8 y);
9969float16 __ovld __cnfn native_powr(float16 x, float16 y);
9970#ifdef cl_khr_fp64
9971double __ovld __cnfn native_powr(double x, double y);
9972double2 __ovld __cnfn native_powr(double2 x, double2 y);
9973double3 __ovld __cnfn native_powr(double3 x, double3 y);
9974double4 __ovld __cnfn native_powr(double4 x, double4 y);
9975double8 __ovld __cnfn native_powr(double8 x, double8 y);
9976double16 __ovld __cnfn native_powr(double16 x, double16 y);
9977#endif //cl_khr_fp64
9978
9979/**
9980 * Compute reciprocal over an implementation-defined
9981 * range. The maximum error is implementation-defined.
9982 */
9983float __ovld __cnfn native_recip(float x);
9984float2 __ovld __cnfn native_recip(float2 x);
9985float3 __ovld __cnfn native_recip(float3 x);
9986float4 __ovld __cnfn native_recip(float4 x);
9987float8 __ovld __cnfn native_recip(float8 x);
9988float16 __ovld __cnfn native_recip(float16 x);
9989#ifdef cl_khr_fp64
9990double __ovld __cnfn native_recip(double x);
9991double2 __ovld __cnfn native_recip(double2 x);
9992double3 __ovld __cnfn native_recip(double3 x);
9993double4 __ovld __cnfn native_recip(double4 x);
9994double8 __ovld __cnfn native_recip(double8 x);
9995double16 __ovld __cnfn native_recip(double16 x);
9996#endif //cl_khr_fp64
9997
9998/**
9999 * Compute inverse square root over an implementationdefined
10000 * range. The maximum error is implementationdefined.
10001 */
10002float __ovld __cnfn native_rsqrt(float x);
10003float2 __ovld __cnfn native_rsqrt(float2 x);
10004float3 __ovld __cnfn native_rsqrt(float3 x);
10005float4 __ovld __cnfn native_rsqrt(float4 x);
10006float8 __ovld __cnfn native_rsqrt(float8 x);
10007float16 __ovld __cnfn native_rsqrt(float16 x);
10008#ifdef cl_khr_fp64
10009double __ovld __cnfn native_rsqrt(double x);
10010double2 __ovld __cnfn native_rsqrt(double2 x);
10011double3 __ovld __cnfn native_rsqrt(double3 x);
10012double4 __ovld __cnfn native_rsqrt(double4 x);
10013double8 __ovld __cnfn native_rsqrt(double8 x);
10014double16 __ovld __cnfn native_rsqrt(double16 x);
10015#endif //cl_khr_fp64
10016
10017/**
10018 * Compute sine over an implementation-defined range.
10019 * The maximum error is implementation-defined.
10020 */
10021float __ovld __cnfn native_sin(float x);
10022float2 __ovld __cnfn native_sin(float2 x);
10023float3 __ovld __cnfn native_sin(float3 x);
10024float4 __ovld __cnfn native_sin(float4 x);
10025float8 __ovld __cnfn native_sin(float8 x);
10026float16 __ovld __cnfn native_sin(float16 x);
10027#ifdef cl_khr_fp64
10028double __ovld __cnfn native_sin(double x);
10029double2 __ovld __cnfn native_sin(double2 x);
10030double3 __ovld __cnfn native_sin(double3 x);
10031double4 __ovld __cnfn native_sin(double4 x);
10032double8 __ovld __cnfn native_sin(double8 x);
10033double16 __ovld __cnfn native_sin(double16 x);
10034#endif //cl_khr_fp64
10035
10036/**
10037 * Compute square root over an implementation-defined
10038 * range. The maximum error is implementation-defined.
10039 */
10040float __ovld __cnfn native_sqrt(float x);
10041float2 __ovld __cnfn native_sqrt(float2 x);
10042float3 __ovld __cnfn native_sqrt(float3 x);
10043float4 __ovld __cnfn native_sqrt(float4 x);
10044float8 __ovld __cnfn native_sqrt(float8 x);
10045float16 __ovld __cnfn native_sqrt(float16 x);
10046#ifdef cl_khr_fp64
10047double __ovld __cnfn native_sqrt(double x);
10048double2 __ovld __cnfn native_sqrt(double2 x);
10049double3 __ovld __cnfn native_sqrt(double3 x);
10050double4 __ovld __cnfn native_sqrt(double4 x);
10051double8 __ovld __cnfn native_sqrt(double8 x);
10052double16 __ovld __cnfn native_sqrt(double16 x);
10053#endif //cl_khr_fp64
10054
10055/**
10056 * Compute tangent over an implementation-defined range.
10057 * The maximum error is implementation-defined.
10058 */
10059float __ovld __cnfn native_tan(float x);
10060float2 __ovld __cnfn native_tan(float2 x);
10061float3 __ovld __cnfn native_tan(float3 x);
10062float4 __ovld __cnfn native_tan(float4 x);
10063float8 __ovld __cnfn native_tan(float8 x);
10064float16 __ovld __cnfn native_tan(float16 x);
10065#ifdef cl_khr_fp64
10066double __ovld __cnfn native_tan(double x);
10067double2 __ovld __cnfn native_tan(double2 x);
10068double3 __ovld __cnfn native_tan(double3 x);
10069double4 __ovld __cnfn native_tan(double4 x);
10070double8 __ovld __cnfn native_tan(double8 x);
10071double16 __ovld __cnfn native_tan(double16 x);
10072#endif //cl_khr_fp64
10073
10074// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
10075
10076/**
10077 * Returns | x |.
10078 */
10079uchar __ovld __cnfn abs(char x);
10080uchar __ovld __cnfn abs(uchar x);
10081uchar2 __ovld __cnfn abs(char2 x);
10082uchar2 __ovld __cnfn abs(uchar2 x);
10083uchar3 __ovld __cnfn abs(char3 x);
10084uchar3 __ovld __cnfn abs(uchar3 x);
10085uchar4 __ovld __cnfn abs(char4 x);
10086uchar4 __ovld __cnfn abs(uchar4 x);
10087uchar8 __ovld __cnfn abs(char8 x);
10088uchar8 __ovld __cnfn abs(uchar8 x);
10089uchar16 __ovld __cnfn abs(char16 x);
10090uchar16 __ovld __cnfn abs(uchar16 x);
10091ushort __ovld __cnfn abs(short x);
10092ushort __ovld __cnfn abs(ushort x);
10093ushort2 __ovld __cnfn abs(short2 x);
10094ushort2 __ovld __cnfn abs(ushort2 x);
10095ushort3 __ovld __cnfn abs(short3 x);
10096ushort3 __ovld __cnfn abs(ushort3 x);
10097ushort4 __ovld __cnfn abs(short4 x);
10098ushort4 __ovld __cnfn abs(ushort4 x);
10099ushort8 __ovld __cnfn abs(short8 x);
10100ushort8 __ovld __cnfn abs(ushort8 x);
10101ushort16 __ovld __cnfn abs(short16 x);
10102ushort16 __ovld __cnfn abs(ushort16 x);
10103uint __ovld __cnfn abs(int x);
10104uint __ovld __cnfn abs(uint x);
10105uint2 __ovld __cnfn abs(int2 x);
10106uint2 __ovld __cnfn abs(uint2 x);
10107uint3 __ovld __cnfn abs(int3 x);
10108uint3 __ovld __cnfn abs(uint3 x);
10109uint4 __ovld __cnfn abs(int4 x);
10110uint4 __ovld __cnfn abs(uint4 x);
10111uint8 __ovld __cnfn abs(int8 x);
10112uint8 __ovld __cnfn abs(uint8 x);
10113uint16 __ovld __cnfn abs(int16 x);
10114uint16 __ovld __cnfn abs(uint16 x);
10115ulong __ovld __cnfn abs(long x);
10116ulong __ovld __cnfn abs(ulong x);
10117ulong2 __ovld __cnfn abs(long2 x);
10118ulong2 __ovld __cnfn abs(ulong2 x);
10119ulong3 __ovld __cnfn abs(long3 x);
10120ulong3 __ovld __cnfn abs(ulong3 x);
10121ulong4 __ovld __cnfn abs(long4 x);
10122ulong4 __ovld __cnfn abs(ulong4 x);
10123ulong8 __ovld __cnfn abs(long8 x);
10124ulong8 __ovld __cnfn abs(ulong8 x);
10125ulong16 __ovld __cnfn abs(long16 x);
10126ulong16 __ovld __cnfn abs(ulong16 x);
10127
10128/**
10129 * Returns | x - y | without modulo overflow.
10130 */
10131uchar __ovld __cnfn abs_diff(char x, char y);
10132uchar __ovld __cnfn abs_diff(uchar x, uchar y);
10133uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
10134uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
10135uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
10136uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
10137uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
10138uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
10139uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
10140uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
10141uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
10142uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
10143ushort __ovld __cnfn abs_diff(short x, short y);
10144ushort __ovld __cnfn abs_diff(ushort x, ushort y);
10145ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
10146ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
10147ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
10148ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
10149ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
10150ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
10151ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
10152ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
10153ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
10154ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
10155uint __ovld __cnfn abs_diff(int x, int y);
10156uint __ovld __cnfn abs_diff(uint x, uint y);
10157uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
10158uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
10159uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
10160uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
10161uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
10162uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
10163uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
10164uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
10165uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
10166uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
10167ulong __ovld __cnfn abs_diff(long x, long y);
10168ulong __ovld __cnfn abs_diff(ulong x, ulong y);
10169ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
10170ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
10171ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
10172ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
10173ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
10174ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
10175ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
10176ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
10177ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
10178ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
10179
10180/**
10181 * Returns x + y and saturates the result.
10182 */
10183char __ovld __cnfn add_sat(char x, char y);
10184uchar __ovld __cnfn add_sat(uchar x, uchar y);
10185char2 __ovld __cnfn add_sat(char2 x, char2 y);
10186uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
10187char3 __ovld __cnfn add_sat(char3 x, char3 y);
10188uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
10189char4 __ovld __cnfn add_sat(char4 x, char4 y);
10190uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
10191char8 __ovld __cnfn add_sat(char8 x, char8 y);
10192uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
10193char16 __ovld __cnfn add_sat(char16 x, char16 y);
10194uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
10195short __ovld __cnfn add_sat(short x, short y);
10196ushort __ovld __cnfn add_sat(ushort x, ushort y);
10197short2 __ovld __cnfn add_sat(short2 x, short2 y);
10198ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
10199short3 __ovld __cnfn add_sat(short3 x, short3 y);
10200ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
10201short4 __ovld __cnfn add_sat(short4 x, short4 y);
10202ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
10203short8 __ovld __cnfn add_sat(short8 x, short8 y);
10204ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
10205short16 __ovld __cnfn add_sat(short16 x, short16 y);
10206ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
10207int __ovld __cnfn add_sat(int x, int y);
10208uint __ovld __cnfn add_sat(uint x, uint y);
10209int2 __ovld __cnfn add_sat(int2 x, int2 y);
10210uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
10211int3 __ovld __cnfn add_sat(int3 x, int3 y);
10212uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
10213int4 __ovld __cnfn add_sat(int4 x, int4 y);
10214uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
10215int8 __ovld __cnfn add_sat(int8 x, int8 y);
10216uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
10217int16 __ovld __cnfn add_sat(int16 x, int16 y);
10218uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
10219long __ovld __cnfn add_sat(long x, long y);
10220ulong __ovld __cnfn add_sat(ulong x, ulong y);
10221long2 __ovld __cnfn add_sat(long2 x, long2 y);
10222ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
10223long3 __ovld __cnfn add_sat(long3 x, long3 y);
10224ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
10225long4 __ovld __cnfn add_sat(long4 x, long4 y);
10226ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
10227long8 __ovld __cnfn add_sat(long8 x, long8 y);
10228ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
10229long16 __ovld __cnfn add_sat(long16 x, long16 y);
10230ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
10231
10232/**
10233 * Returns (x + y) >> 1. The intermediate sum does
10234 * not modulo overflow.
10235 */
10236char __ovld __cnfn hadd(char x, char y);
10237uchar __ovld __cnfn hadd(uchar x, uchar y);
10238char2 __ovld __cnfn hadd(char2 x, char2 y);
10239uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
10240char3 __ovld __cnfn hadd(char3 x, char3 y);
10241uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
10242char4 __ovld __cnfn hadd(char4 x, char4 y);
10243uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
10244char8 __ovld __cnfn hadd(char8 x, char8 y);
10245uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
10246char16 __ovld __cnfn hadd(char16 x, char16 y);
10247uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
10248short __ovld __cnfn hadd(short x, short y);
10249ushort __ovld __cnfn hadd(ushort x, ushort y);
10250short2 __ovld __cnfn hadd(short2 x, short2 y);
10251ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
10252short3 __ovld __cnfn hadd(short3 x, short3 y);
10253ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
10254short4 __ovld __cnfn hadd(short4 x, short4 y);
10255ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
10256short8 __ovld __cnfn hadd(short8 x, short8 y);
10257ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
10258short16 __ovld __cnfn hadd(short16 x, short16 y);
10259ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
10260int __ovld __cnfn hadd(int x, int y);
10261uint __ovld __cnfn hadd(uint x, uint y);
10262int2 __ovld __cnfn hadd(int2 x, int2 y);
10263uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
10264int3 __ovld __cnfn hadd(int3 x, int3 y);
10265uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
10266int4 __ovld __cnfn hadd(int4 x, int4 y);
10267uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
10268int8 __ovld __cnfn hadd(int8 x, int8 y);
10269uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
10270int16 __ovld __cnfn hadd(int16 x, int16 y);
10271uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
10272long __ovld __cnfn hadd(long x, long y);
10273ulong __ovld __cnfn hadd(ulong x, ulong y);
10274long2 __ovld __cnfn hadd(long2 x, long2 y);
10275ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
10276long3 __ovld __cnfn hadd(long3 x, long3 y);
10277ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
10278long4 __ovld __cnfn hadd(long4 x, long4 y);
10279ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
10280long8 __ovld __cnfn hadd(long8 x, long8 y);
10281ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
10282long16 __ovld __cnfn hadd(long16 x, long16 y);
10283ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
10284
10285/**
10286 * Returns (x + y + 1) >> 1. The intermediate sum
10287 * does not modulo overflow.
10288 */
10289char __ovld __cnfn rhadd(char x, char y);
10290uchar __ovld __cnfn rhadd(uchar x, uchar y);
10291char2 __ovld __cnfn rhadd(char2 x, char2 y);
10292uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
10293char3 __ovld __cnfn rhadd(char3 x, char3 y);
10294uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
10295char4 __ovld __cnfn rhadd(char4 x, char4 y);
10296uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
10297char8 __ovld __cnfn rhadd(char8 x, char8 y);
10298uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
10299char16 __ovld __cnfn rhadd(char16 x, char16 y);
10300uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
10301short __ovld __cnfn rhadd(short x, short y);
10302ushort __ovld __cnfn rhadd(ushort x, ushort y);
10303short2 __ovld __cnfn rhadd(short2 x, short2 y);
10304ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
10305short3 __ovld __cnfn rhadd(short3 x, short3 y);
10306ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
10307short4 __ovld __cnfn rhadd(short4 x, short4 y);
10308ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
10309short8 __ovld __cnfn rhadd(short8 x, short8 y);
10310ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
10311short16 __ovld __cnfn rhadd(short16 x, short16 y);
10312ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
10313int __ovld __cnfn rhadd(int x, int y);
10314uint __ovld __cnfn rhadd(uint x, uint y);
10315int2 __ovld __cnfn rhadd(int2 x, int2 y);
10316uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
10317int3 __ovld __cnfn rhadd(int3 x, int3 y);
10318uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
10319int4 __ovld __cnfn rhadd(int4 x, int4 y);
10320uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
10321int8 __ovld __cnfn rhadd(int8 x, int8 y);
10322uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
10323int16 __ovld __cnfn rhadd(int16 x, int16 y);
10324uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
10325long __ovld __cnfn rhadd(long x, long y);
10326ulong __ovld __cnfn rhadd(ulong x, ulong y);
10327long2 __ovld __cnfn rhadd(long2 x, long2 y);
10328ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
10329long3 __ovld __cnfn rhadd(long3 x, long3 y);
10330ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
10331long4 __ovld __cnfn rhadd(long4 x, long4 y);
10332ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
10333long8 __ovld __cnfn rhadd(long8 x, long8 y);
10334ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
10335long16 __ovld __cnfn rhadd(long16 x, long16 y);
10336ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
10337
10338/**
10339 * Returns min(max(x, minval), maxval).
10340 * Results are undefined if minval > maxval.
10341 */
10342char __ovld __cnfn clamp(char x, char minval, char maxval);
10343uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10344char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
10345uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
10346char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
10347uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
10348char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
10349uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
10350char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
10351uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
10352char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
10353uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
10354short __ovld __cnfn clamp(short x, short minval, short maxval);
10355ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10356short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
10357ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
10358short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
10359ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
10360short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
10361ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
10362short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
10363ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
10364short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
10365ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
10366int __ovld __cnfn clamp(int x, int minval, int maxval);
10367uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10368int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
10369uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
10370int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
10371uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
10372int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
10373uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
10374int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
10375uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
10376int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
10377uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
10378long __ovld __cnfn clamp(long x, long minval, long maxval);
10379ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10380long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
10381ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
10382long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
10383ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
10384long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
10385ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
10386long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
10387ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
10388long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
10389ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
10390char __ovld __cnfn clamp(char x, char minval, char maxval);
10391uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10392char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
10393uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
10394char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
10395uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
10396char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
10397uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
10398char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
10399uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
10400char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
10401uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
10402short __ovld __cnfn clamp(short x, short minval, short maxval);
10403ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10404short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
10405ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
10406short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
10407ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
10408short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
10409ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
10410short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
10411ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
10412short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
10413ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
10414int __ovld __cnfn clamp(int x, int minval, int maxval);
10415uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10416int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
10417uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
10418int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
10419uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
10420int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
10421uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
10422int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
10423uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
10424int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
10425uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
10426long __ovld __cnfn clamp(long x, long minval, long maxval);
10427ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10428long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
10429ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
10430long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
10431ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
10432long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
10433ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
10434long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
10435ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
10436long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
10437ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
10438
10439/**
10440 * Returns the number of leading 0-bits in x, starting
10441 * at the most significant bit position.
10442 */
10443char __ovld __cnfn clz(char x);
10444uchar __ovld __cnfn clz(uchar x);
10445char2 __ovld __cnfn clz(char2 x);
10446uchar2 __ovld __cnfn clz(uchar2 x);
10447char3 __ovld __cnfn clz(char3 x);
10448uchar3 __ovld __cnfn clz(uchar3 x);
10449char4 __ovld __cnfn clz(char4 x);
10450uchar4 __ovld __cnfn clz(uchar4 x);
10451char8 __ovld __cnfn clz(char8 x);
10452uchar8 __ovld __cnfn clz(uchar8 x);
10453char16 __ovld __cnfn clz(char16 x);
10454uchar16 __ovld __cnfn clz(uchar16 x);
10455short __ovld __cnfn clz(short x);
10456ushort __ovld __cnfn clz(ushort x);
10457short2 __ovld __cnfn clz(short2 x);
10458ushort2 __ovld __cnfn clz(ushort2 x);
10459short3 __ovld __cnfn clz(short3 x);
10460ushort3 __ovld __cnfn clz(ushort3 x);
10461short4 __ovld __cnfn clz(short4 x);
10462ushort4 __ovld __cnfn clz(ushort4 x);
10463short8 __ovld __cnfn clz(short8 x);
10464ushort8 __ovld __cnfn clz(ushort8 x);
10465short16 __ovld __cnfn clz(short16 x);
10466ushort16 __ovld __cnfn clz(ushort16 x);
10467int __ovld __cnfn clz(int x);
10468uint __ovld __cnfn clz(uint x);
10469int2 __ovld __cnfn clz(int2 x);
10470uint2 __ovld __cnfn clz(uint2 x);
10471int3 __ovld __cnfn clz(int3 x);
10472uint3 __ovld __cnfn clz(uint3 x);
10473int4 __ovld __cnfn clz(int4 x);
10474uint4 __ovld __cnfn clz(uint4 x);
10475int8 __ovld __cnfn clz(int8 x);
10476uint8 __ovld __cnfn clz(uint8 x);
10477int16 __ovld __cnfn clz(int16 x);
10478uint16 __ovld __cnfn clz(uint16 x);
10479long __ovld __cnfn clz(long x);
10480ulong __ovld __cnfn clz(ulong x);
10481long2 __ovld __cnfn clz(long2 x);
10482ulong2 __ovld __cnfn clz(ulong2 x);
10483long3 __ovld __cnfn clz(long3 x);
10484ulong3 __ovld __cnfn clz(ulong3 x);
10485long4 __ovld __cnfn clz(long4 x);
10486ulong4 __ovld __cnfn clz(ulong4 x);
10487long8 __ovld __cnfn clz(long8 x);
10488ulong8 __ovld __cnfn clz(ulong8 x);
10489long16 __ovld __cnfn clz(long16 x);
10490ulong16 __ovld __cnfn clz(ulong16 x);
10491
10492/**
10493 * Returns the count of trailing 0-bits in x. If x is 0,
10494 * returns the size in bits of the type of x or
10495 * component type of x, if x is a vector.
10496 */
10497#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
10498char __ovld ctz(char x);
10499uchar __ovld ctz(uchar x);
10500char2 __ovld ctz(char2 x);
10501uchar2 __ovld ctz(uchar2 x);
10502char3 __ovld ctz(char3 x);
10503uchar3 __ovld ctz(uchar3 x);
10504char4 __ovld ctz(char4 x);
10505uchar4 __ovld ctz(uchar4 x);
10506char8 __ovld ctz(char8 x);
10507uchar8 __ovld ctz(uchar8 x);
10508char16 __ovld ctz(char16 x);
10509uchar16 __ovld ctz(uchar16 x);
10510short __ovld ctz(short x);
10511ushort __ovld ctz(ushort x);
10512short2 __ovld ctz(short2 x);
10513ushort2 __ovld ctz(ushort2 x);
10514short3 __ovld ctz(short3 x);
10515ushort3 __ovld ctz(ushort3 x);
10516short4 __ovld ctz(short4 x);
10517ushort4 __ovld ctz(ushort4 x);
10518short8 __ovld ctz(short8 x);
10519ushort8 __ovld ctz(ushort8 x);
10520short16 __ovld ctz(short16 x);
10521ushort16 __ovld ctz(ushort16 x);
10522int __ovld ctz(int x);
10523uint __ovld ctz(uint x);
10524int2 __ovld ctz(int2 x);
10525uint2 __ovld ctz(uint2 x);
10526int3 __ovld ctz(int3 x);
10527uint3 __ovld ctz(uint3 x);
10528int4 __ovld ctz(int4 x);
10529uint4 __ovld ctz(uint4 x);
10530int8 __ovld ctz(int8 x);
10531uint8 __ovld ctz(uint8 x);
10532int16 __ovld ctz(int16 x);
10533uint16 __ovld ctz(uint16 x);
10534long __ovld ctz(long x);
10535ulong __ovld ctz(ulong x);
10536long2 __ovld ctz(long2 x);
10537ulong2 __ovld ctz(ulong2 x);
10538long3 __ovld ctz(long3 x);
10539ulong3 __ovld ctz(ulong3 x);
10540long4 __ovld ctz(long4 x);
10541ulong4 __ovld ctz(ulong4 x);
10542long8 __ovld ctz(long8 x);
10543ulong8 __ovld ctz(ulong8 x);
10544long16 __ovld ctz(long16 x);
10545ulong16 __ovld ctz(ulong16 x);
10546#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
10547
10548/**
10549 * Returns mul_hi(a, b) + c.
10550 */
10551char __ovld __cnfn mad_hi(char a, char b, char c);
10552uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
10553char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
10554uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
10555char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
10556uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
10557char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
10558uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
10559char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
10560uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
10561char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
10562uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
10563short __ovld __cnfn mad_hi(short a, short b, short c);
10564ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
10565short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
10566ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
10567short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
10568ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
10569short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
10570ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
10571short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
10572ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
10573short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
10574ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
10575int __ovld __cnfn mad_hi(int a, int b, int c);
10576uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
10577int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
10578uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
10579int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
10580uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
10581int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
10582uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
10583int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
10584uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
10585int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
10586uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
10587long __ovld __cnfn mad_hi(long a, long b, long c);
10588ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
10589long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
10590ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
10591long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
10592ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
10593long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
10594ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
10595long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
10596ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
10597long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
10598ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
10599
10600/**
10601 * Returns a * b + c and saturates the result.
10602 */
10603char __ovld __cnfn mad_sat(char a, char b, char c);
10604uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
10605char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
10606uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
10607char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
10608uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
10609char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
10610uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
10611char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
10612uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
10613char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
10614uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
10615short __ovld __cnfn mad_sat(short a, short b, short c);
10616ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
10617short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
10618ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
10619short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
10620ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
10621short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
10622ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
10623short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
10624ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
10625short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
10626ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
10627int __ovld __cnfn mad_sat(int a, int b, int c);
10628uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
10629int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
10630uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
10631int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
10632uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
10633int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
10634uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
10635int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
10636uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
10637int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
10638uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
10639long __ovld __cnfn mad_sat(long a, long b, long c);
10640ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
10641long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
10642ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
10643long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
10644ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
10645long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
10646ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
10647long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
10648ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
10649long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
10650ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
10651
10652/**
10653 * Returns y if x < y, otherwise it returns x.
10654 */
10655char __ovld __cnfn max(char x, char y);
10656uchar __ovld __cnfn max(uchar x, uchar y);
10657char2 __ovld __cnfn max(char2 x, char2 y);
10658uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
10659char3 __ovld __cnfn max(char3 x, char3 y);
10660uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
10661char4 __ovld __cnfn max(char4 x, char4 y);
10662uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
10663char8 __ovld __cnfn max(char8 x, char8 y);
10664uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
10665char16 __ovld __cnfn max(char16 x, char16 y);
10666uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
10667short __ovld __cnfn max(short x, short y);
10668ushort __ovld __cnfn max(ushort x, ushort y);
10669short2 __ovld __cnfn max(short2 x, short2 y);
10670ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
10671short3 __ovld __cnfn max(short3 x, short3 y);
10672ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
10673short4 __ovld __cnfn max(short4 x, short4 y);
10674ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
10675short8 __ovld __cnfn max(short8 x, short8 y);
10676ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
10677short16 __ovld __cnfn max(short16 x, short16 y);
10678ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
10679int __ovld __cnfn max(int x, int y);
10680uint __ovld __cnfn max(uint x, uint y);
10681int2 __ovld __cnfn max(int2 x, int2 y);
10682uint2 __ovld __cnfn max(uint2 x, uint2 y);
10683int3 __ovld __cnfn max(int3 x, int3 y);
10684uint3 __ovld __cnfn max(uint3 x, uint3 y);
10685int4 __ovld __cnfn max(int4 x, int4 y);
10686uint4 __ovld __cnfn max(uint4 x, uint4 y);
10687int8 __ovld __cnfn max(int8 x, int8 y);
10688uint8 __ovld __cnfn max(uint8 x, uint8 y);
10689int16 __ovld __cnfn max(int16 x, int16 y);
10690uint16 __ovld __cnfn max(uint16 x, uint16 y);
10691long __ovld __cnfn max(long x, long y);
10692ulong __ovld __cnfn max(ulong x, ulong y);
10693long2 __ovld __cnfn max(long2 x, long2 y);
10694ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
10695long3 __ovld __cnfn max(long3 x, long3 y);
10696ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
10697long4 __ovld __cnfn max(long4 x, long4 y);
10698ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
10699long8 __ovld __cnfn max(long8 x, long8 y);
10700ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
10701long16 __ovld __cnfn max(long16 x, long16 y);
10702ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
10703char __ovld __cnfn max(char x, char y);
10704uchar __ovld __cnfn max(uchar x, uchar y);
10705char2 __ovld __cnfn max(char2 x, char y);
10706uchar2 __ovld __cnfn max(uchar2 x, uchar y);
10707char3 __ovld __cnfn max(char3 x, char y);
10708uchar3 __ovld __cnfn max(uchar3 x, uchar y);
10709char4 __ovld __cnfn max(char4 x, char y);
10710uchar4 __ovld __cnfn max(uchar4 x, uchar y);
10711char8 __ovld __cnfn max(char8 x, char y);
10712uchar8 __ovld __cnfn max(uchar8 x, uchar y);
10713char16 __ovld __cnfn max(char16 x, char y);
10714uchar16 __ovld __cnfn max(uchar16 x, uchar y);
10715short __ovld __cnfn max(short x, short y);
10716ushort __ovld __cnfn max(ushort x, ushort y);
10717short2 __ovld __cnfn max(short2 x, short y);
10718ushort2 __ovld __cnfn max(ushort2 x, ushort y);
10719short3 __ovld __cnfn max(short3 x, short y);
10720ushort3 __ovld __cnfn max(ushort3 x, ushort y);
10721short4 __ovld __cnfn max(short4 x, short y);
10722ushort4 __ovld __cnfn max(ushort4 x, ushort y);
10723short8 __ovld __cnfn max(short8 x, short y);
10724ushort8 __ovld __cnfn max(ushort8 x, ushort y);
10725short16 __ovld __cnfn max(short16 x, short y);
10726ushort16 __ovld __cnfn max(ushort16 x, ushort y);
10727int __ovld __cnfn max(int x, int y);
10728uint __ovld __cnfn max(uint x, uint y);
10729int2 __ovld __cnfn max(int2 x, int y);
10730uint2 __ovld __cnfn max(uint2 x, uint y);
10731int3 __ovld __cnfn max(int3 x, int y);
10732uint3 __ovld __cnfn max(uint3 x, uint y);
10733int4 __ovld __cnfn max(int4 x, int y);
10734uint4 __ovld __cnfn max(uint4 x, uint y);
10735int8 __ovld __cnfn max(int8 x, int y);
10736uint8 __ovld __cnfn max(uint8 x, uint y);
10737int16 __ovld __cnfn max(int16 x, int y);
10738uint16 __ovld __cnfn max(uint16 x, uint y);
10739long __ovld __cnfn max(long x, long y);
10740ulong __ovld __cnfn max(ulong x, ulong y);
10741long2 __ovld __cnfn max(long2 x, long y);
10742ulong2 __ovld __cnfn max(ulong2 x, ulong y);
10743long3 __ovld __cnfn max(long3 x, long y);
10744ulong3 __ovld __cnfn max(ulong3 x, ulong y);
10745long4 __ovld __cnfn max(long4 x, long y);
10746ulong4 __ovld __cnfn max(ulong4 x, ulong y);
10747long8 __ovld __cnfn max(long8 x, long y);
10748ulong8 __ovld __cnfn max(ulong8 x, ulong y);
10749long16 __ovld __cnfn max(long16 x, long y);
10750ulong16 __ovld __cnfn max(ulong16 x, ulong y);
10751
10752/**
10753 * Returns y if y < x, otherwise it returns x.
10754 */
10755char __ovld __cnfn min(char x, char y);
10756uchar __ovld __cnfn min(uchar x, uchar y);
10757char2 __ovld __cnfn min(char2 x, char2 y);
10758uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
10759char3 __ovld __cnfn min(char3 x, char3 y);
10760uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
10761char4 __ovld __cnfn min(char4 x, char4 y);
10762uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
10763char8 __ovld __cnfn min(char8 x, char8 y);
10764uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
10765char16 __ovld __cnfn min(char16 x, char16 y);
10766uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
10767short __ovld __cnfn min(short x, short y);
10768ushort __ovld __cnfn min(ushort x, ushort y);
10769short2 __ovld __cnfn min(short2 x, short2 y);
10770ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
10771short3 __ovld __cnfn min(short3 x, short3 y);
10772ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
10773short4 __ovld __cnfn min(short4 x, short4 y);
10774ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
10775short8 __ovld __cnfn min(short8 x, short8 y);
10776ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
10777short16 __ovld __cnfn min(short16 x, short16 y);
10778ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
10779int __ovld __cnfn min(int x, int y);
10780uint __ovld __cnfn min(uint x, uint y);
10781int2 __ovld __cnfn min(int2 x, int2 y);
10782uint2 __ovld __cnfn min(uint2 x, uint2 y);
10783int3 __ovld __cnfn min(int3 x, int3 y);
10784uint3 __ovld __cnfn min(uint3 x, uint3 y);
10785int4 __ovld __cnfn min(int4 x, int4 y);
10786uint4 __ovld __cnfn min(uint4 x, uint4 y);
10787int8 __ovld __cnfn min(int8 x, int8 y);
10788uint8 __ovld __cnfn min(uint8 x, uint8 y);
10789int16 __ovld __cnfn min(int16 x, int16 y);
10790uint16 __ovld __cnfn min(uint16 x, uint16 y);
10791long __ovld __cnfn min(long x, long y);
10792ulong __ovld __cnfn min(ulong x, ulong y);
10793long2 __ovld __cnfn min(long2 x, long2 y);
10794ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
10795long3 __ovld __cnfn min(long3 x, long3 y);
10796ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
10797long4 __ovld __cnfn min(long4 x, long4 y);
10798ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
10799long8 __ovld __cnfn min(long8 x, long8 y);
10800ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
10801long16 __ovld __cnfn min(long16 x, long16 y);
10802ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
10803char __ovld __cnfn min(char x, char y);
10804uchar __ovld __cnfn min(uchar x, uchar y);
10805char2 __ovld __cnfn min(char2 x, char y);
10806uchar2 __ovld __cnfn min(uchar2 x, uchar y);
10807char3 __ovld __cnfn min(char3 x, char y);
10808uchar3 __ovld __cnfn min(uchar3 x, uchar y);
10809char4 __ovld __cnfn min(char4 x, char y);
10810uchar4 __ovld __cnfn min(uchar4 x, uchar y);
10811char8 __ovld __cnfn min(char8 x, char y);
10812uchar8 __ovld __cnfn min(uchar8 x, uchar y);
10813char16 __ovld __cnfn min(char16 x, char y);
10814uchar16 __ovld __cnfn min(uchar16 x, uchar y);
10815short __ovld __cnfn min(short x, short y);
10816ushort __ovld __cnfn min(ushort x, ushort y);
10817short2 __ovld __cnfn min(short2 x, short y);
10818ushort2 __ovld __cnfn min(ushort2 x, ushort y);
10819short3 __ovld __cnfn min(short3 x, short y);
10820ushort3 __ovld __cnfn min(ushort3 x, ushort y);
10821short4 __ovld __cnfn min(short4 x, short y);
10822ushort4 __ovld __cnfn min(ushort4 x, ushort y);
10823short8 __ovld __cnfn min(short8 x, short y);
10824ushort8 __ovld __cnfn min(ushort8 x, ushort y);
10825short16 __ovld __cnfn min(short16 x, short y);
10826ushort16 __ovld __cnfn min(ushort16 x, ushort y);
10827int __ovld __cnfn min(int x, int y);
10828uint __ovld __cnfn min(uint x, uint y);
10829int2 __ovld __cnfn min(int2 x, int y);
10830uint2 __ovld __cnfn min(uint2 x, uint y);
10831int3 __ovld __cnfn min(int3 x, int y);
10832uint3 __ovld __cnfn min(uint3 x, uint y);
10833int4 __ovld __cnfn min(int4 x, int y);
10834uint4 __ovld __cnfn min(uint4 x, uint y);
10835int8 __ovld __cnfn min(int8 x, int y);
10836uint8 __ovld __cnfn min(uint8 x, uint y);
10837int16 __ovld __cnfn min(int16 x, int y);
10838uint16 __ovld __cnfn min(uint16 x, uint y);
10839long __ovld __cnfn min(long x, long y);
10840ulong __ovld __cnfn min(ulong x, ulong y);
10841long2 __ovld __cnfn min(long2 x, long y);
10842ulong2 __ovld __cnfn min(ulong2 x, ulong y);
10843long3 __ovld __cnfn min(long3 x, long y);
10844ulong3 __ovld __cnfn min(ulong3 x, ulong y);
10845long4 __ovld __cnfn min(long4 x, long y);
10846ulong4 __ovld __cnfn min(ulong4 x, ulong y);
10847long8 __ovld __cnfn min(long8 x, long y);
10848ulong8 __ovld __cnfn min(ulong8 x, ulong y);
10849long16 __ovld __cnfn min(long16 x, long y);
10850ulong16 __ovld __cnfn min(ulong16 x, ulong y);
10851
10852/**
10853 * Computes x * y and returns the high half of the
10854 * product of x and y.
10855 */
10856char __ovld __cnfn mul_hi(char x, char y);
10857uchar __ovld __cnfn mul_hi(uchar x, uchar y);
10858char2 __ovld __cnfn mul_hi(char2 x, char2 y);
10859uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
10860char3 __ovld __cnfn mul_hi(char3 x, char3 y);
10861uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
10862char4 __ovld __cnfn mul_hi(char4 x, char4 y);
10863uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
10864char8 __ovld __cnfn mul_hi(char8 x, char8 y);
10865uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
10866char16 __ovld __cnfn mul_hi(char16 x, char16 y);
10867uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
10868short __ovld __cnfn mul_hi(short x, short y);
10869ushort __ovld __cnfn mul_hi(ushort x, ushort y);
10870short2 __ovld __cnfn mul_hi(short2 x, short2 y);
10871ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
10872short3 __ovld __cnfn mul_hi(short3 x, short3 y);
10873ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
10874short4 __ovld __cnfn mul_hi(short4 x, short4 y);
10875ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
10876short8 __ovld __cnfn mul_hi(short8 x, short8 y);
10877ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
10878short16 __ovld __cnfn mul_hi(short16 x, short16 y);
10879ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
10880int __ovld __cnfn mul_hi(int x, int y);
10881uint __ovld __cnfn mul_hi(uint x, uint y);
10882int2 __ovld __cnfn mul_hi(int2 x, int2 y);
10883uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
10884int3 __ovld __cnfn mul_hi(int3 x, int3 y);
10885uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
10886int4 __ovld __cnfn mul_hi(int4 x, int4 y);
10887uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
10888int8 __ovld __cnfn mul_hi(int8 x, int8 y);
10889uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
10890int16 __ovld __cnfn mul_hi(int16 x, int16 y);
10891uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
10892long __ovld __cnfn mul_hi(long x, long y);
10893ulong __ovld __cnfn mul_hi(ulong x, ulong y);
10894long2 __ovld __cnfn mul_hi(long2 x, long2 y);
10895ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
10896long3 __ovld __cnfn mul_hi(long3 x, long3 y);
10897ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
10898long4 __ovld __cnfn mul_hi(long4 x, long4 y);
10899ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
10900long8 __ovld __cnfn mul_hi(long8 x, long8 y);
10901ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
10902long16 __ovld __cnfn mul_hi(long16 x, long16 y);
10903ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
10904
10905/**
10906 * For each element in v, the bits are shifted left by
10907 * the number of bits given by the corresponding
10908 * element in i (subject to usual shift modulo rules
10909 * described in section 6.3). Bits shifted off the left
10910 * side of the element are shifted back in from the
10911 * right.
10912 */
10913char __ovld __cnfn rotate(char v, char i);
10914uchar __ovld __cnfn rotate(uchar v, uchar i);
10915char2 __ovld __cnfn rotate(char2 v, char2 i);
10916uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
10917char3 __ovld __cnfn rotate(char3 v, char3 i);
10918uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
10919char4 __ovld __cnfn rotate(char4 v, char4 i);
10920uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
10921char8 __ovld __cnfn rotate(char8 v, char8 i);
10922uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
10923char16 __ovld __cnfn rotate(char16 v, char16 i);
10924uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
10925short __ovld __cnfn rotate(short v, short i);
10926ushort __ovld __cnfn rotate(ushort v, ushort i);
10927short2 __ovld __cnfn rotate(short2 v, short2 i);
10928ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
10929short3 __ovld __cnfn rotate(short3 v, short3 i);
10930ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
10931short4 __ovld __cnfn rotate(short4 v, short4 i);
10932ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
10933short8 __ovld __cnfn rotate(short8 v, short8 i);
10934ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
10935short16 __ovld __cnfn rotate(short16 v, short16 i);
10936ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
10937int __ovld __cnfn rotate(int v, int i);
10938uint __ovld __cnfn rotate(uint v, uint i);
10939int2 __ovld __cnfn rotate(int2 v, int2 i);
10940uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
10941int3 __ovld __cnfn rotate(int3 v, int3 i);
10942uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
10943int4 __ovld __cnfn rotate(int4 v, int4 i);
10944uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
10945int8 __ovld __cnfn rotate(int8 v, int8 i);
10946uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
10947int16 __ovld __cnfn rotate(int16 v, int16 i);
10948uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
10949long __ovld __cnfn rotate(long v, long i);
10950ulong __ovld __cnfn rotate(ulong v, ulong i);
10951long2 __ovld __cnfn rotate(long2 v, long2 i);
10952ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
10953long3 __ovld __cnfn rotate(long3 v, long3 i);
10954ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
10955long4 __ovld __cnfn rotate(long4 v, long4 i);
10956ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
10957long8 __ovld __cnfn rotate(long8 v, long8 i);
10958ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
10959long16 __ovld __cnfn rotate(long16 v, long16 i);
10960ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
10961
10962/**
10963 * Returns x - y and saturates the result.
10964 */
10965char __ovld __cnfn sub_sat(char x, char y);
10966uchar __ovld __cnfn sub_sat(uchar x, uchar y);
10967char2 __ovld __cnfn sub_sat(char2 x, char2 y);
10968uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
10969char3 __ovld __cnfn sub_sat(char3 x, char3 y);
10970uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
10971char4 __ovld __cnfn sub_sat(char4 x, char4 y);
10972uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
10973char8 __ovld __cnfn sub_sat(char8 x, char8 y);
10974uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
10975char16 __ovld __cnfn sub_sat(char16 x, char16 y);
10976uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
10977short __ovld __cnfn sub_sat(short x, short y);
10978ushort __ovld __cnfn sub_sat(ushort x, ushort y);
10979short2 __ovld __cnfn sub_sat(short2 x, short2 y);
10980ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
10981short3 __ovld __cnfn sub_sat(short3 x, short3 y);
10982ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
10983short4 __ovld __cnfn sub_sat(short4 x, short4 y);
10984ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
10985short8 __ovld __cnfn sub_sat(short8 x, short8 y);
10986ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
10987short16 __ovld __cnfn sub_sat(short16 x, short16 y);
10988ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
10989int __ovld __cnfn sub_sat(int x, int y);
10990uint __ovld __cnfn sub_sat(uint x, uint y);
10991int2 __ovld __cnfn sub_sat(int2 x, int2 y);
10992uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
10993int3 __ovld __cnfn sub_sat(int3 x, int3 y);
10994uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
10995int4 __ovld __cnfn sub_sat(int4 x, int4 y);
10996uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
10997int8 __ovld __cnfn sub_sat(int8 x, int8 y);
10998uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
10999int16 __ovld __cnfn sub_sat(int16 x, int16 y);
11000uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
11001long __ovld __cnfn sub_sat(long x, long y);
11002ulong __ovld __cnfn sub_sat(ulong x, ulong y);
11003long2 __ovld __cnfn sub_sat(long2 x, long2 y);
11004ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
11005long3 __ovld __cnfn sub_sat(long3 x, long3 y);
11006ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
11007long4 __ovld __cnfn sub_sat(long4 x, long4 y);
11008ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
11009long8 __ovld __cnfn sub_sat(long8 x, long8 y);
11010ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
11011long16 __ovld __cnfn sub_sat(long16 x, long16 y);
11012ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
11013
11014/**
11015 * result[i] = ((short)hi[i] << 8) | lo[i]
11016 * result[i] = ((ushort)hi[i] << 8) | lo[i]
11017 */
11018short __ovld __cnfn upsample(char hi, uchar lo);
11019ushort __ovld __cnfn upsample(uchar hi, uchar lo);
11020short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
11021short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
11022short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
11023short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
11024short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
11025ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
11026ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
11027ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
11028ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
11029ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
11030
11031/**
11032 * result[i] = ((int)hi[i] << 16) | lo[i]
11033 * result[i] = ((uint)hi[i] << 16) | lo[i]
11034 */
11035int __ovld __cnfn upsample(short hi, ushort lo);
11036uint __ovld __cnfn upsample(ushort hi, ushort lo);
11037int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
11038int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
11039int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
11040int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
11041int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
11042uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
11043uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
11044uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
11045uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
11046uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
11047/**
11048 * result[i] = ((long)hi[i] << 32) | lo[i]
11049 * result[i] = ((ulong)hi[i] << 32) | lo[i]
11050 */
11051long __ovld __cnfn upsample(int hi, uint lo);
11052ulong __ovld __cnfn upsample(uint hi, uint lo);
11053long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
11054long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
11055long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
11056long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
11057long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
11058ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
11059ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
11060ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
11061ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
11062ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
11063
11064/*
11065 * popcount(x): returns the number of set bit in x
11066 */
11067char __ovld __cnfn popcount(char x);
11068uchar __ovld __cnfn popcount(uchar x);
11069char2 __ovld __cnfn popcount(char2 x);
11070uchar2 __ovld __cnfn popcount(uchar2 x);
11071char3 __ovld __cnfn popcount(char3 x);
11072uchar3 __ovld __cnfn popcount(uchar3 x);
11073char4 __ovld __cnfn popcount(char4 x);
11074uchar4 __ovld __cnfn popcount(uchar4 x);
11075char8 __ovld __cnfn popcount(char8 x);
11076uchar8 __ovld __cnfn popcount(uchar8 x);
11077char16 __ovld __cnfn popcount(char16 x);
11078uchar16 __ovld __cnfn popcount(uchar16 x);
11079short __ovld __cnfn popcount(short x);
11080ushort __ovld __cnfn popcount(ushort x);
11081short2 __ovld __cnfn popcount(short2 x);
11082ushort2 __ovld __cnfn popcount(ushort2 x);
11083short3 __ovld __cnfn popcount(short3 x);
11084ushort3 __ovld __cnfn popcount(ushort3 x);
11085short4 __ovld __cnfn popcount(short4 x);
11086ushort4 __ovld __cnfn popcount(ushort4 x);
11087short8 __ovld __cnfn popcount(short8 x);
11088ushort8 __ovld __cnfn popcount(ushort8 x);
11089short16 __ovld __cnfn popcount(short16 x);
11090ushort16 __ovld __cnfn popcount(ushort16 x);
11091int __ovld __cnfn popcount(int x);
11092uint __ovld __cnfn popcount(uint x);
11093int2 __ovld __cnfn popcount(int2 x);
11094uint2 __ovld __cnfn popcount(uint2 x);
11095int3 __ovld __cnfn popcount(int3 x);
11096uint3 __ovld __cnfn popcount(uint3 x);
11097int4 __ovld __cnfn popcount(int4 x);
11098uint4 __ovld __cnfn popcount(uint4 x);
11099int8 __ovld __cnfn popcount(int8 x);
11100uint8 __ovld __cnfn popcount(uint8 x);
11101int16 __ovld __cnfn popcount(int16 x);
11102uint16 __ovld __cnfn popcount(uint16 x);
11103long __ovld __cnfn popcount(long x);
11104ulong __ovld __cnfn popcount(ulong x);
11105long2 __ovld __cnfn popcount(long2 x);
11106ulong2 __ovld __cnfn popcount(ulong2 x);
11107long3 __ovld __cnfn popcount(long3 x);
11108ulong3 __ovld __cnfn popcount(ulong3 x);
11109long4 __ovld __cnfn popcount(long4 x);
11110ulong4 __ovld __cnfn popcount(ulong4 x);
11111long8 __ovld __cnfn popcount(long8 x);
11112ulong8 __ovld __cnfn popcount(ulong8 x);
11113long16 __ovld __cnfn popcount(long16 x);
11114ulong16 __ovld __cnfn popcount(ulong16 x);
11115
11116/**
11117 * Multiply two 24-bit integer values x and y and add
11118 * the 32-bit integer result to the 32-bit integer z.
11119 * Refer to definition of mul24 to see how the 24-bit
11120 * integer multiplication is performed.
11121 */
11122int __ovld __cnfn mad24(int x, int y, int z);
11123uint __ovld __cnfn mad24(uint x, uint y, uint z);
11124int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
11125uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
11126int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
11127uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
11128int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
11129uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
11130int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
11131uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
11132int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
11133uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
11134
11135/**
11136 * Multiply two 24-bit integer values x and y. x and y
11137 * are 32-bit integers but only the low 24-bits are used
11138 * to perform the multiplication. mul24 should only
11139 * be used when values in x and y are in the range [-
11140 * 2^23, 2^23-1] if x and y are signed integers and in the
11141 * range [0, 2^24-1] if x and y are unsigned integers. If
11142 * x and y are not in this range, the multiplication
11143 * result is implementation-defined.
11144 */
11145int __ovld __cnfn mul24(int x, int y);
11146uint __ovld __cnfn mul24(uint x, uint y);
11147int2 __ovld __cnfn mul24(int2 x, int2 y);
11148uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
11149int3 __ovld __cnfn mul24(int3 x, int3 y);
11150uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
11151int4 __ovld __cnfn mul24(int4 x, int4 y);
11152uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
11153int8 __ovld __cnfn mul24(int8 x, int8 y);
11154uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
11155int16 __ovld __cnfn mul24(int16 x, int16 y);
11156uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
11157
11158// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
11159
11160/**
11161 * Returns fmin(fmax(x, minval), maxval).
11162 * Results are undefined if minval > maxval.
11163 */
11164float __ovld __cnfn clamp(float x, float minval, float maxval);
11165float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
11166float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
11167float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
11168float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
11169float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
11170float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
11171float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
11172float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
11173float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
11174float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
11175#ifdef cl_khr_fp64
11176double __ovld __cnfn clamp(double x, double minval, double maxval);
11177double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
11178double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
11179double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
11180double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
11181double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
11182double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
11183double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
11184double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
11185double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
11186double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
11187#endif //cl_khr_fp64
11188#ifdef cl_khr_fp16
11189half __ovld __cnfn clamp(half x, half minval, half maxval);
11190half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
11191half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
11192half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
11193half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
11194half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
11195half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
11196half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
11197half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
11198half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
11199half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
11200#endif //cl_khr_fp16
11201
11202/**
11203 * Converts radians to degrees, i.e. (180 / PI) *
11204 * radians.
11205 */
11206float __ovld __cnfn degrees(float radians);
11207float2 __ovld __cnfn degrees(float2 radians);
11208float3 __ovld __cnfn degrees(float3 radians);
11209float4 __ovld __cnfn degrees(float4 radians);
11210float8 __ovld __cnfn degrees(float8 radians);
11211float16 __ovld __cnfn degrees(float16 radians);
11212#ifdef cl_khr_fp64
11213double __ovld __cnfn degrees(double radians);
11214double2 __ovld __cnfn degrees(double2 radians);
11215double3 __ovld __cnfn degrees(double3 radians);
11216double4 __ovld __cnfn degrees(double4 radians);
11217double8 __ovld __cnfn degrees(double8 radians);
11218double16 __ovld __cnfn degrees(double16 radians);
11219#endif //cl_khr_fp64
11220#ifdef cl_khr_fp16
11221half __ovld __cnfn degrees(half radians);
11222half2 __ovld __cnfn degrees(half2 radians);
11223half3 __ovld __cnfn degrees(half3 radians);
11224half4 __ovld __cnfn degrees(half4 radians);
11225half8 __ovld __cnfn degrees(half8 radians);
11226half16 __ovld __cnfn degrees(half16 radians);
11227#endif //cl_khr_fp16
11228
11229/**
11230 * Returns y if x < y, otherwise it returns x. If x and y
11231 * are infinite or NaN, the return values are undefined.
11232 */
11233float __ovld __cnfn max(float x, float y);
11234float2 __ovld __cnfn max(float2 x, float2 y);
11235float3 __ovld __cnfn max(float3 x, float3 y);
11236float4 __ovld __cnfn max(float4 x, float4 y);
11237float8 __ovld __cnfn max(float8 x, float8 y);
11238float16 __ovld __cnfn max(float16 x, float16 y);
11239float2 __ovld __cnfn max(float2 x, float y);
11240float3 __ovld __cnfn max(float3 x, float y);
11241float4 __ovld __cnfn max(float4 x, float y);
11242float8 __ovld __cnfn max(float8 x, float y);
11243float16 __ovld __cnfn max(float16 x, float y);
11244#ifdef cl_khr_fp64
11245double __ovld __cnfn max(double x, double y);
11246double2 __ovld __cnfn max(double2 x, double2 y);
11247double3 __ovld __cnfn max(double3 x, double3 y);
11248double4 __ovld __cnfn max(double4 x, double4 y);
11249double8 __ovld __cnfn max(double8 x, double8 y);
11250double16 __ovld __cnfn max(double16 x, double16 y);
11251double2 __ovld __cnfn max(double2 x, double y);
11252double3 __ovld __cnfn max(double3 x, double y);
11253double4 __ovld __cnfn max(double4 x, double y);
11254double8 __ovld __cnfn max(double8 x, double y);
11255double16 __ovld __cnfn max(double16 x, double y);
11256#endif //cl_khr_fp64
11257#ifdef cl_khr_fp16
11258half __ovld __cnfn max(half x, half y);
11259half2 __ovld __cnfn max(half2 x, half2 y);
11260half3 __ovld __cnfn max(half3 x, half3 y);
11261half4 __ovld __cnfn max(half4 x, half4 y);
11262half8 __ovld __cnfn max(half8 x, half8 y);
11263half16 __ovld __cnfn max(half16 x, half16 y);
11264half2 __ovld __cnfn max(half2 x, half y);
11265half3 __ovld __cnfn max(half3 x, half y);
11266half4 __ovld __cnfn max(half4 x, half y);
11267half8 __ovld __cnfn max(half8 x, half y);
11268half16 __ovld __cnfn max(half16 x, half y);
11269#endif //cl_khr_fp16
11270
11271/**
11272 * Returns y if y < x, otherwise it returns x. If x and y
11273 * are infinite or NaN, the return values are undefined.
11274 */
11275float __ovld __cnfn min(float x, float y);
11276float2 __ovld __cnfn min(float2 x, float2 y);
11277float3 __ovld __cnfn min(float3 x, float3 y);
11278float4 __ovld __cnfn min(float4 x, float4 y);
11279float8 __ovld __cnfn min(float8 x, float8 y);
11280float16 __ovld __cnfn min(float16 x, float16 y);
11281float2 __ovld __cnfn min(float2 x, float y);
11282float3 __ovld __cnfn min(float3 x, float y);
11283float4 __ovld __cnfn min(float4 x, float y);
11284float8 __ovld __cnfn min(float8 x, float y);
11285float16 __ovld __cnfn min(float16 x, float y);
11286#ifdef cl_khr_fp64
11287double __ovld __cnfn min(double x, double y);
11288double2 __ovld __cnfn min(double2 x, double2 y);
11289double3 __ovld __cnfn min(double3 x, double3 y);
11290double4 __ovld __cnfn min(double4 x, double4 y);
11291double8 __ovld __cnfn min(double8 x, double8 y);
11292double16 __ovld __cnfn min(double16 x, double16 y);
11293double2 __ovld __cnfn min(double2 x, double y);
11294double3 __ovld __cnfn min(double3 x, double y);
11295double4 __ovld __cnfn min(double4 x, double y);
11296double8 __ovld __cnfn min(double8 x, double y);
11297double16 __ovld __cnfn min(double16 x, double y);
11298#endif //cl_khr_fp64
11299#ifdef cl_khr_fp16
11300half __ovld __cnfn min(half x, half y);
11301half2 __ovld __cnfn min(half2 x, half2 y);
11302half3 __ovld __cnfn min(half3 x, half3 y);
11303half4 __ovld __cnfn min(half4 x, half4 y);
11304half8 __ovld __cnfn min(half8 x, half8 y);
11305half16 __ovld __cnfn min(half16 x, half16 y);
11306half2 __ovld __cnfn min(half2 x, half y);
11307half3 __ovld __cnfn min(half3 x, half y);
11308half4 __ovld __cnfn min(half4 x, half y);
11309half8 __ovld __cnfn min(half8 x, half y);
11310half16 __ovld __cnfn min(half16 x, half y);
11311#endif //cl_khr_fp16
11312
11313/**
11314 * Returns the linear blend of x & y implemented as:
11315 * x + (y - x) * a
11316 * a must be a value in the range 0.0 ... 1.0. If a is not
11317 * in the range 0.0 ... 1.0, the return values are
11318 * undefined.
11319 */
11320float __ovld __cnfn mix(float x, float y, float a);
11321float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
11322float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
11323float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
11324float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
11325float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
11326float2 __ovld __cnfn mix(float2 x, float2 y, float a);
11327float3 __ovld __cnfn mix(float3 x, float3 y, float a);
11328float4 __ovld __cnfn mix(float4 x, float4 y, float a);
11329float8 __ovld __cnfn mix(float8 x, float8 y, float a);
11330float16 __ovld __cnfn mix(float16 x, float16 y, float a);
11331#ifdef cl_khr_fp64
11332double __ovld __cnfn mix(double x, double y, double a);
11333double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
11334double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
11335double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
11336double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
11337double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
11338double2 __ovld __cnfn mix(double2 x, double2 y, double a);
11339double3 __ovld __cnfn mix(double3 x, double3 y, double a);
11340double4 __ovld __cnfn mix(double4 x, double4 y, double a);
11341double8 __ovld __cnfn mix(double8 x, double8 y, double a);
11342double16 __ovld __cnfn mix(double16 x, double16 y, double a);
11343#endif //cl_khr_fp64
11344#ifdef cl_khr_fp16
11345half __ovld __cnfn mix(half x, half y, half a);
11346half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
11347half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
11348half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
11349half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
11350half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
11351half2 __ovld __cnfn mix(half2 x, half2 y, half a);
11352half3 __ovld __cnfn mix(half3 x, half3 y, half a);
11353half4 __ovld __cnfn mix(half4 x, half4 y, half a);
11354half8 __ovld __cnfn mix(half8 x, half8 y, half a);
11355half16 __ovld __cnfn mix(half16 x, half16 y, half a);
11356#endif //cl_khr_fp16
11357
11358/**
11359 * Converts degrees to radians, i.e. (PI / 180) *
11360 * degrees.
11361 */
11362float __ovld __cnfn radians(float degrees);
11363float2 __ovld __cnfn radians(float2 degrees);
11364float3 __ovld __cnfn radians(float3 degrees);
11365float4 __ovld __cnfn radians(float4 degrees);
11366float8 __ovld __cnfn radians(float8 degrees);
11367float16 __ovld __cnfn radians(float16 degrees);
11368#ifdef cl_khr_fp64
11369double __ovld __cnfn radians(double degrees);
11370double2 __ovld __cnfn radians(double2 degrees);
11371double3 __ovld __cnfn radians(double3 degrees);
11372double4 __ovld __cnfn radians(double4 degrees);
11373double8 __ovld __cnfn radians(double8 degrees);
11374double16 __ovld __cnfn radians(double16 degrees);
11375#endif //cl_khr_fp64
11376#ifdef cl_khr_fp16
11377half __ovld __cnfn radians(half degrees);
11378half2 __ovld __cnfn radians(half2 degrees);
11379half3 __ovld __cnfn radians(half3 degrees);
11380half4 __ovld __cnfn radians(half4 degrees);
11381half8 __ovld __cnfn radians(half8 degrees);
11382half16 __ovld __cnfn radians(half16 degrees);
11383#endif //cl_khr_fp16
11384
11385/**
11386 * Returns 0.0 if x < edge, otherwise it returns 1.0.
11387 */
11388float __ovld __cnfn step(float edge, float x);
11389float2 __ovld __cnfn step(float2 edge, float2 x);
11390float3 __ovld __cnfn step(float3 edge, float3 x);
11391float4 __ovld __cnfn step(float4 edge, float4 x);
11392float8 __ovld __cnfn step(float8 edge, float8 x);
11393float16 __ovld __cnfn step(float16 edge, float16 x);
11394float2 __ovld __cnfn step(float edge, float2 x);
11395float3 __ovld __cnfn step(float edge, float3 x);
11396float4 __ovld __cnfn step(float edge, float4 x);
11397float8 __ovld __cnfn step(float edge, float8 x);
11398float16 __ovld __cnfn step(float edge, float16 x);
11399#ifdef cl_khr_fp64
11400double __ovld __cnfn step(double edge, double x);
11401double2 __ovld __cnfn step(double2 edge, double2 x);
11402double3 __ovld __cnfn step(double3 edge, double3 x);
11403double4 __ovld __cnfn step(double4 edge, double4 x);
11404double8 __ovld __cnfn step(double8 edge, double8 x);
11405double16 __ovld __cnfn step(double16 edge, double16 x);
11406double2 __ovld __cnfn step(double edge, double2 x);
11407double3 __ovld __cnfn step(double edge, double3 x);
11408double4 __ovld __cnfn step(double edge, double4 x);
11409double8 __ovld __cnfn step(double edge, double8 x);
11410double16 __ovld __cnfn step(double edge, double16 x);
11411#endif //cl_khr_fp64
11412#ifdef cl_khr_fp16
11413half __ovld __cnfn step(half edge, half x);
11414half2 __ovld __cnfn step(half2 edge, half2 x);
11415half3 __ovld __cnfn step(half3 edge, half3 x);
11416half4 __ovld __cnfn step(half4 edge, half4 x);
11417half8 __ovld __cnfn step(half8 edge, half8 x);
11418half16 __ovld __cnfn step(half16 edge, half16 x);
11419half __ovld __cnfn step(half edge, half x);
11420half2 __ovld __cnfn step(half edge, half2 x);
11421half3 __ovld __cnfn step(half edge, half3 x);
11422half4 __ovld __cnfn step(half edge, half4 x);
11423half8 __ovld __cnfn step(half edge, half8 x);
11424half16 __ovld __cnfn step(half edge, half16 x);
11425#endif //cl_khr_fp16
11426
11427/**
11428 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
11429 * performs smooth Hermite interpolation between 0
11430 * and 1when edge0 < x < edge1. This is useful in
11431 * cases where you would want a threshold function
11432 * with a smooth transition.
11433 * This is equivalent to:
11434 * gentype t;
11435 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
11436 * return t * t * (3 - 2 * t);
11437 * Results are undefined if edge0 >= edge1 or if x,
11438 * edge0 or edge1 is a NaN.
11439 */
11440float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
11441float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
11442float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
11443float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
11444float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
11445float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
11446float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
11447float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
11448float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
11449float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
11450float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
11451#ifdef cl_khr_fp64
11452double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
11453double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
11454double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
11455double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
11456double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
11457double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
11458double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
11459double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
11460double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
11461double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
11462double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
11463#endif //cl_khr_fp64
11464#ifdef cl_khr_fp16
11465half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11466half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
11467half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
11468half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
11469half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
11470half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
11471half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11472half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
11473half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
11474half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
11475half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
11476half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
11477#endif //cl_khr_fp16
11478
11479/**
11480 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
11481 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
11482 */
11483float __ovld __cnfn sign(float x);
11484float2 __ovld __cnfn sign(float2 x);
11485float3 __ovld __cnfn sign(float3 x);
11486float4 __ovld __cnfn sign(float4 x);
11487float8 __ovld __cnfn sign(float8 x);
11488float16 __ovld __cnfn sign(float16 x);
11489#ifdef cl_khr_fp64
11490double __ovld __cnfn sign(double x);
11491double2 __ovld __cnfn sign(double2 x);
11492double3 __ovld __cnfn sign(double3 x);
11493double4 __ovld __cnfn sign(double4 x);
11494double8 __ovld __cnfn sign(double8 x);
11495double16 __ovld __cnfn sign(double16 x);
11496#endif //cl_khr_fp64
11497#ifdef cl_khr_fp16
11498half __ovld __cnfn sign(half x);
11499half2 __ovld __cnfn sign(half2 x);
11500half3 __ovld __cnfn sign(half3 x);
11501half4 __ovld __cnfn sign(half4 x);
11502half8 __ovld __cnfn sign(half8 x);
11503half16 __ovld __cnfn sign(half16 x);
11504#endif //cl_khr_fp16
11505
11506// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
11507
11508/**
11509 * Returns the cross product of p0.xyz and p1.xyz. The
11510 * w component of float4 result returned will be 0.0.
11511 */
11512float4 __ovld __cnfn cross(float4 p0, float4 p1);
11513float3 __ovld __cnfn cross(float3 p0, float3 p1);
11514#ifdef cl_khr_fp64
11515double4 __ovld __cnfn cross(double4 p0, double4 p1);
11516double3 __ovld __cnfn cross(double3 p0, double3 p1);
11517#endif //cl_khr_fp64
11518#ifdef cl_khr_fp16
11519half4 __ovld __cnfn cross(half4 p0, half4 p1);
11520half3 __ovld __cnfn cross(half3 p0, half3 p1);
11521#endif //cl_khr_fp16
11522
11523/**
11524 * Compute dot product.
11525 */
11526float __ovld __cnfn dot(float p0, float p1);
11527float __ovld __cnfn dot(float2 p0, float2 p1);
11528float __ovld __cnfn dot(float3 p0, float3 p1);
11529float __ovld __cnfn dot(float4 p0, float4 p1);
11530#ifdef cl_khr_fp64
11531double __ovld __cnfn dot(double p0, double p1);
11532double __ovld __cnfn dot(double2 p0, double2 p1);
11533double __ovld __cnfn dot(double3 p0, double3 p1);
11534double __ovld __cnfn dot(double4 p0, double4 p1);
11535#endif //cl_khr_fp64
11536#ifdef cl_khr_fp16
11537half __ovld __cnfn dot(half p0, half p1);
11538half __ovld __cnfn dot(half2 p0, half2 p1);
11539half __ovld __cnfn dot(half3 p0, half3 p1);
11540half __ovld __cnfn dot(half4 p0, half4 p1);
11541#endif //cl_khr_fp16
11542
11543/**
11544 * Returns the distance between p0 and p1. This is
11545 * calculated as length(p0 - p1).
11546 */
11547float __ovld __cnfn distance(float p0, float p1);
11548float __ovld __cnfn distance(float2 p0, float2 p1);
11549float __ovld __cnfn distance(float3 p0, float3 p1);
11550float __ovld __cnfn distance(float4 p0, float4 p1);
11551#ifdef cl_khr_fp64
11552double __ovld __cnfn distance(double p0, double p1);
11553double __ovld __cnfn distance(double2 p0, double2 p1);
11554double __ovld __cnfn distance(double3 p0, double3 p1);
11555double __ovld __cnfn distance(double4 p0, double4 p1);
11556#endif //cl_khr_fp64
11557#ifdef cl_khr_fp16
11558half __ovld __cnfn distance(half p0, half p1);
11559half __ovld __cnfn distance(half2 p0, half2 p1);
11560half __ovld __cnfn distance(half3 p0, half3 p1);
11561half __ovld __cnfn distance(half4 p0, half4 p1);
11562#endif //cl_khr_fp16
11563
11564/**
11565 * Return the length of vector p, i.e.,
11566 * sqrt(p.x2 + p.y 2 + ...)
11567 */
11568float __ovld __cnfn length(float p);
11569float __ovld __cnfn length(float2 p);
11570float __ovld __cnfn length(float3 p);
11571float __ovld __cnfn length(float4 p);
11572#ifdef cl_khr_fp64
11573double __ovld __cnfn length(double p);
11574double __ovld __cnfn length(double2 p);
11575double __ovld __cnfn length(double3 p);
11576double __ovld __cnfn length(double4 p);
11577#endif //cl_khr_fp64
11578#ifdef cl_khr_fp16
11579half __ovld __cnfn length(half p);
11580half __ovld __cnfn length(half2 p);
11581half __ovld __cnfn length(half3 p);
11582half __ovld __cnfn length(half4 p);
11583#endif //cl_khr_fp16
11584
11585/**
11586 * Returns a vector in the same direction as p but with a
11587 * length of 1.
11588 */
11589float __ovld __cnfn normalize(float p);
11590float2 __ovld __cnfn normalize(float2 p);
11591float3 __ovld __cnfn normalize(float3 p);
11592float4 __ovld __cnfn normalize(float4 p);
11593#ifdef cl_khr_fp64
11594double __ovld __cnfn normalize(double p);
11595double2 __ovld __cnfn normalize(double2 p);
11596double3 __ovld __cnfn normalize(double3 p);
11597double4 __ovld __cnfn normalize(double4 p);
11598#endif //cl_khr_fp64
11599#ifdef cl_khr_fp16
11600half __ovld __cnfn normalize(half p);
11601half2 __ovld __cnfn normalize(half2 p);
11602half3 __ovld __cnfn normalize(half3 p);
11603half4 __ovld __cnfn normalize(half4 p);
11604#endif //cl_khr_fp16
11605
11606/**
11607 * Returns fast_length(p0 - p1).
11608 */
11609float __ovld __cnfn fast_distance(float p0, float p1);
11610float __ovld __cnfn fast_distance(float2 p0, float2 p1);
11611float __ovld __cnfn fast_distance(float3 p0, float3 p1);
11612float __ovld __cnfn fast_distance(float4 p0, float4 p1);
11613#ifdef cl_khr_fp16
11614half __ovld __cnfn fast_distance(half p0, half p1);
11615half __ovld __cnfn fast_distance(half2 p0, half2 p1);
11616half __ovld __cnfn fast_distance(half3 p0, half3 p1);
11617half __ovld __cnfn fast_distance(half4 p0, half4 p1);
11618#endif //cl_khr_fp16
11619
11620/**
11621 * Returns the length of vector p computed as:
11622 * half_sqrt(p.x2 + p.y2 + ...)
11623 */
11624float __ovld __cnfn fast_length(float p);
11625float __ovld __cnfn fast_length(float2 p);
11626float __ovld __cnfn fast_length(float3 p);
11627float __ovld __cnfn fast_length(float4 p);
11628#ifdef cl_khr_fp16
11629half __ovld __cnfn fast_length(half p);
11630half __ovld __cnfn fast_length(half2 p);
11631half __ovld __cnfn fast_length(half3 p);
11632half __ovld __cnfn fast_length(half4 p);
11633#endif //cl_khr_fp16
11634
11635/**
11636 * Returns a vector in the same direction as p but with a
11637 * length of 1. fast_normalize is computed as:
11638 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
11639 * The result shall be within 8192 ulps error from the
11640 * infinitely precise result of
11641 * if (all(p == 0.0f))
11642 * result = p;
11643 * else
11644 * result = p / sqrt (p.x^2 + p.y^2 + ...);
11645 * with the following exceptions:
11646 * 1) If the sum of squares is greater than FLT_MAX
11647 * then the value of the floating-point values in the
11648 * result vector are undefined.
11649 * 2) If the sum of squares is less than FLT_MIN then
11650 * the implementation may return back p.
11651 * 3) If the device is in "denorms are flushed to zero"
11652 * mode, individual operand elements with magnitude
11653 * less than sqrt(FLT_MIN) may be flushed to zero
11654 * before proceeding with the calculation.
11655 */
11656float __ovld __cnfn fast_normalize(float p);
11657float2 __ovld __cnfn fast_normalize(float2 p);
11658float3 __ovld __cnfn fast_normalize(float3 p);
11659float4 __ovld __cnfn fast_normalize(float4 p);
11660#ifdef cl_khr_fp16
11661half __ovld __cnfn fast_normalize(half p);
11662half2 __ovld __cnfn fast_normalize(half2 p);
11663half3 __ovld __cnfn fast_normalize(half3 p);
11664half4 __ovld __cnfn fast_normalize(half4 p);
11665#endif //cl_khr_fp16
11666
11667// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
11668
11669/**
11670 * intn isequal (floatn x, floatn y)
11671 * Returns the component-wise compare of x == y.
11672 */
11673int __ovld __cnfn isequal(float x, float y);
11674int2 __ovld __cnfn isequal(float2 x, float2 y);
11675int3 __ovld __cnfn isequal(float3 x, float3 y);
11676int4 __ovld __cnfn isequal(float4 x, float4 y);
11677int8 __ovld __cnfn isequal(float8 x, float8 y);
11678int16 __ovld __cnfn isequal(float16 x, float16 y);
11679#ifdef cl_khr_fp64
11680int __ovld __cnfn isequal(double x, double y);
11681long2 __ovld __cnfn isequal(double2 x, double2 y);
11682long3 __ovld __cnfn isequal(double3 x, double3 y);
11683long4 __ovld __cnfn isequal(double4 x, double4 y);
11684long8 __ovld __cnfn isequal(double8 x, double8 y);
11685long16 __ovld __cnfn isequal(double16 x, double16 y);
11686#endif //cl_khr_fp64
11687#ifdef cl_khr_fp16
11688int __ovld __cnfn isequal(half x, half y);
11689short2 __ovld __cnfn isequal(half2 x, half2 y);
11690short3 __ovld __cnfn isequal(half3 x, half3 y);
11691short4 __ovld __cnfn isequal(half4 x, half4 y);
11692short8 __ovld __cnfn isequal(half8 x, half8 y);
11693short16 __ovld __cnfn isequal(half16 x, half16 y);
11694#endif //cl_khr_fp16
11695
11696/**
11697 * Returns the component-wise compare of x != y.
11698 */
11699int __ovld __cnfn isnotequal(float x, float y);
11700int2 __ovld __cnfn isnotequal(float2 x, float2 y);
11701int3 __ovld __cnfn isnotequal(float3 x, float3 y);
11702int4 __ovld __cnfn isnotequal(float4 x, float4 y);
11703int8 __ovld __cnfn isnotequal(float8 x, float8 y);
11704int16 __ovld __cnfn isnotequal(float16 x, float16 y);
11705#ifdef cl_khr_fp64
11706int __ovld __cnfn isnotequal(double x, double y);
11707long2 __ovld __cnfn isnotequal(double2 x, double2 y);
11708long3 __ovld __cnfn isnotequal(double3 x, double3 y);
11709long4 __ovld __cnfn isnotequal(double4 x, double4 y);
11710long8 __ovld __cnfn isnotequal(double8 x, double8 y);
11711long16 __ovld __cnfn isnotequal(double16 x, double16 y);
11712#endif //cl_khr_fp64
11713#ifdef cl_khr_fp16
11714int __ovld __cnfn isnotequal(half x, half y);
11715short2 __ovld __cnfn isnotequal(half2 x, half2 y);
11716short3 __ovld __cnfn isnotequal(half3 x, half3 y);
11717short4 __ovld __cnfn isnotequal(half4 x, half4 y);
11718short8 __ovld __cnfn isnotequal(half8 x, half8 y);
11719short16 __ovld __cnfn isnotequal(half16 x, half16 y);
11720#endif //cl_khr_fp16
11721
11722/**
11723 * Returns the component-wise compare of x > y.
11724 */
11725int __ovld __cnfn isgreater(float x, float y);
11726int2 __ovld __cnfn isgreater(float2 x, float2 y);
11727int3 __ovld __cnfn isgreater(float3 x, float3 y);
11728int4 __ovld __cnfn isgreater(float4 x, float4 y);
11729int8 __ovld __cnfn isgreater(float8 x, float8 y);
11730int16 __ovld __cnfn isgreater(float16 x, float16 y);
11731#ifdef cl_khr_fp64
11732int __ovld __cnfn isgreater(double x, double y);
11733long2 __ovld __cnfn isgreater(double2 x, double2 y);
11734long3 __ovld __cnfn isgreater(double3 x, double3 y);
11735long4 __ovld __cnfn isgreater(double4 x, double4 y);
11736long8 __ovld __cnfn isgreater(double8 x, double8 y);
11737long16 __ovld __cnfn isgreater(double16 x, double16 y);
11738#endif //cl_khr_fp64
11739#ifdef cl_khr_fp16
11740int __ovld __cnfn isgreater(half x, half y);
11741short2 __ovld __cnfn isgreater(half2 x, half2 y);
11742short3 __ovld __cnfn isgreater(half3 x, half3 y);
11743short4 __ovld __cnfn isgreater(half4 x, half4 y);
11744short8 __ovld __cnfn isgreater(half8 x, half8 y);
11745short16 __ovld __cnfn isgreater(half16 x, half16 y);
11746#endif //cl_khr_fp16
11747
11748/**
11749 * Returns the component-wise compare of x >= y.
11750 */
11751int __ovld __cnfn isgreaterequal(float x, float y);
11752int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
11753int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
11754int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
11755int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
11756int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
11757#ifdef cl_khr_fp64
11758int __ovld __cnfn isgreaterequal(double x, double y);
11759long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
11760long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
11761long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
11762long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
11763long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
11764#endif //cl_khr_fp64
11765#ifdef cl_khr_fp16
11766int __ovld __cnfn isgreaterequal(half x, half y);
11767short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
11768short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
11769short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
11770short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
11771short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
11772#endif //cl_khr_fp16
11773
11774/**
11775 * Returns the component-wise compare of x < y.
11776 */
11777int __ovld __cnfn isless(float x, float y);
11778int2 __ovld __cnfn isless(float2 x, float2 y);
11779int3 __ovld __cnfn isless(float3 x, float3 y);
11780int4 __ovld __cnfn isless(float4 x, float4 y);
11781int8 __ovld __cnfn isless(float8 x, float8 y);
11782int16 __ovld __cnfn isless(float16 x, float16 y);
11783#ifdef cl_khr_fp64
11784int __ovld __cnfn isless(double x, double y);
11785long2 __ovld __cnfn isless(double2 x, double2 y);
11786long3 __ovld __cnfn isless(double3 x, double3 y);
11787long4 __ovld __cnfn isless(double4 x, double4 y);
11788long8 __ovld __cnfn isless(double8 x, double8 y);
11789long16 __ovld __cnfn isless(double16 x, double16 y);
11790#endif //cl_khr_fp64
11791#ifdef cl_khr_fp16
11792int __ovld __cnfn isless(half x, half y);
11793short2 __ovld __cnfn isless(half2 x, half2 y);
11794short3 __ovld __cnfn isless(half3 x, half3 y);
11795short4 __ovld __cnfn isless(half4 x, half4 y);
11796short8 __ovld __cnfn isless(half8 x, half8 y);
11797short16 __ovld __cnfn isless(half16 x, half16 y);
11798#endif //cl_khr_fp16
11799
11800/**
11801 * Returns the component-wise compare of x <= y.
11802 */
11803int __ovld __cnfn islessequal(float x, float y);
11804int2 __ovld __cnfn islessequal(float2 x, float2 y);
11805int3 __ovld __cnfn islessequal(float3 x, float3 y);
11806int4 __ovld __cnfn islessequal(float4 x, float4 y);
11807int8 __ovld __cnfn islessequal(float8 x, float8 y);
11808int16 __ovld __cnfn islessequal(float16 x, float16 y);
11809#ifdef cl_khr_fp64
11810int __ovld __cnfn islessequal(double x, double y);
11811long2 __ovld __cnfn islessequal(double2 x, double2 y);
11812long3 __ovld __cnfn islessequal(double3 x, double3 y);
11813long4 __ovld __cnfn islessequal(double4 x, double4 y);
11814long8 __ovld __cnfn islessequal(double8 x, double8 y);
11815long16 __ovld __cnfn islessequal(double16 x, double16 y);
11816#endif //cl_khr_fp64
11817#ifdef cl_khr_fp16
11818int __ovld __cnfn islessequal(half x, half y);
11819short2 __ovld __cnfn islessequal(half2 x, half2 y);
11820short3 __ovld __cnfn islessequal(half3 x, half3 y);
11821short4 __ovld __cnfn islessequal(half4 x, half4 y);
11822short8 __ovld __cnfn islessequal(half8 x, half8 y);
11823short16 __ovld __cnfn islessequal(half16 x, half16 y);
11824#endif //cl_khr_fp16
11825
11826/**
11827 * Returns the component-wise compare of
11828 * (x < y) || (x > y) .
11829 */
11830int __ovld __cnfn islessgreater(float x, float y);
11831int2 __ovld __cnfn islessgreater(float2 x, float2 y);
11832int3 __ovld __cnfn islessgreater(float3 x, float3 y);
11833int4 __ovld __cnfn islessgreater(float4 x, float4 y);
11834int8 __ovld __cnfn islessgreater(float8 x, float8 y);
11835int16 __ovld __cnfn islessgreater(float16 x, float16 y);
11836#ifdef cl_khr_fp64
11837int __ovld __cnfn islessgreater(double x, double y);
11838long2 __ovld __cnfn islessgreater(double2 x, double2 y);
11839long3 __ovld __cnfn islessgreater(double3 x, double3 y);
11840long4 __ovld __cnfn islessgreater(double4 x, double4 y);
11841long8 __ovld __cnfn islessgreater(double8 x, double8 y);
11842long16 __ovld __cnfn islessgreater(double16 x, double16 y);
11843#endif //cl_khr_fp64
11844#ifdef cl_khr_fp16
11845int __ovld __cnfn islessgreater(half x, half y);
11846short2 __ovld __cnfn islessgreater(half2 x, half2 y);
11847short3 __ovld __cnfn islessgreater(half3 x, half3 y);
11848short4 __ovld __cnfn islessgreater(half4 x, half4 y);
11849short8 __ovld __cnfn islessgreater(half8 x, half8 y);
11850short16 __ovld __cnfn islessgreater(half16 x, half16 y);
11851#endif //cl_khr_fp16
11852
11853/**
11854 * Test for finite value.
11855 */
11856int __ovld __cnfn isfinite(float);
11857int2 __ovld __cnfn isfinite(float2);
11858int3 __ovld __cnfn isfinite(float3);
11859int4 __ovld __cnfn isfinite(float4);
11860int8 __ovld __cnfn isfinite(float8);
11861int16 __ovld __cnfn isfinite(float16);
11862#ifdef cl_khr_fp64
11863int __ovld __cnfn isfinite(double);
11864long2 __ovld __cnfn isfinite(double2);
11865long3 __ovld __cnfn isfinite(double3);
11866long4 __ovld __cnfn isfinite(double4);
11867long8 __ovld __cnfn isfinite(double8);
11868long16 __ovld __cnfn isfinite(double16);
11869#endif //cl_khr_fp64
11870#ifdef cl_khr_fp16
11871int __ovld __cnfn isfinite(half);
11872short2 __ovld __cnfn isfinite(half2);
11873short3 __ovld __cnfn isfinite(half3);
11874short4 __ovld __cnfn isfinite(half4);
11875short8 __ovld __cnfn isfinite(half8);
11876short16 __ovld __cnfn isfinite(half16);
11877#endif //cl_khr_fp16
11878
11879/**
11880 * Test for infinity value (+ve or -ve) .
11881 */
11882int __ovld __cnfn isinf(float);
11883int2 __ovld __cnfn isinf(float2);
11884int3 __ovld __cnfn isinf(float3);
11885int4 __ovld __cnfn isinf(float4);
11886int8 __ovld __cnfn isinf(float8);
11887int16 __ovld __cnfn isinf(float16);
11888#ifdef cl_khr_fp64
11889int __ovld __cnfn isinf(double);
11890long2 __ovld __cnfn isinf(double2);
11891long3 __ovld __cnfn isinf(double3);
11892long4 __ovld __cnfn isinf(double4);
11893long8 __ovld __cnfn isinf(double8);
11894long16 __ovld __cnfn isinf(double16);
11895#endif //cl_khr_fp64
11896#ifdef cl_khr_fp16
11897int __ovld __cnfn isinf(half);
11898short2 __ovld __cnfn isinf(half2);
11899short3 __ovld __cnfn isinf(half3);
11900short4 __ovld __cnfn isinf(half4);
11901short8 __ovld __cnfn isinf(half8);
11902short16 __ovld __cnfn isinf(half16);
11903#endif //cl_khr_fp16
11904
11905/**
11906 * Test for a NaN.
11907 */
11908int __ovld __cnfn isnan(float);
11909int2 __ovld __cnfn isnan(float2);
11910int3 __ovld __cnfn isnan(float3);
11911int4 __ovld __cnfn isnan(float4);
11912int8 __ovld __cnfn isnan(float8);
11913int16 __ovld __cnfn isnan(float16);
11914#ifdef cl_khr_fp64
11915int __ovld __cnfn isnan(double);
11916long2 __ovld __cnfn isnan(double2);
11917long3 __ovld __cnfn isnan(double3);
11918long4 __ovld __cnfn isnan(double4);
11919long8 __ovld __cnfn isnan(double8);
11920long16 __ovld __cnfn isnan(double16);
11921#endif //cl_khr_fp64
11922#ifdef cl_khr_fp16
11923int __ovld __cnfn isnan(half);
11924short2 __ovld __cnfn isnan(half2);
11925short3 __ovld __cnfn isnan(half3);
11926short4 __ovld __cnfn isnan(half4);
11927short8 __ovld __cnfn isnan(half8);
11928short16 __ovld __cnfn isnan(half16);
11929#endif //cl_khr_fp16
11930
11931/**
11932 * Test for a normal value.
11933 */
11934int __ovld __cnfn isnormal(float);
11935int2 __ovld __cnfn isnormal(float2);
11936int3 __ovld __cnfn isnormal(float3);
11937int4 __ovld __cnfn isnormal(float4);
11938int8 __ovld __cnfn isnormal(float8);
11939int16 __ovld __cnfn isnormal(float16);
11940#ifdef cl_khr_fp64
11941int __ovld __cnfn isnormal(double);
11942long2 __ovld __cnfn isnormal(double2);
11943long3 __ovld __cnfn isnormal(double3);
11944long4 __ovld __cnfn isnormal(double4);
11945long8 __ovld __cnfn isnormal(double8);
11946long16 __ovld __cnfn isnormal(double16);
11947#endif //cl_khr_fp64
11948#ifdef cl_khr_fp16
11949int __ovld __cnfn isnormal(half);
11950short2 __ovld __cnfn isnormal(half2);
11951short3 __ovld __cnfn isnormal(half3);
11952short4 __ovld __cnfn isnormal(half4);
11953short8 __ovld __cnfn isnormal(half8);
11954short16 __ovld __cnfn isnormal(half16);
11955#endif //cl_khr_fp16
11956
11957/**
11958 * Test if arguments are ordered. isordered() takes
11959 * arguments x and y, and returns the result
11960 * isequal(x, x) && isequal(y, y).
11961 */
11962int __ovld __cnfn isordered(float x, float y);
11963int2 __ovld __cnfn isordered(float2 x, float2 y);
11964int3 __ovld __cnfn isordered(float3 x, float3 y);
11965int4 __ovld __cnfn isordered(float4 x, float4 y);
11966int8 __ovld __cnfn isordered(float8 x, float8 y);
11967int16 __ovld __cnfn isordered(float16 x, float16 y);
11968#ifdef cl_khr_fp64
11969int __ovld __cnfn isordered(double x, double y);
11970long2 __ovld __cnfn isordered(double2 x, double2 y);
11971long3 __ovld __cnfn isordered(double3 x, double3 y);
11972long4 __ovld __cnfn isordered(double4 x, double4 y);
11973long8 __ovld __cnfn isordered(double8 x, double8 y);
11974long16 __ovld __cnfn isordered(double16 x, double16 y);
11975#endif //cl_khr_fp64
11976#ifdef cl_khr_fp16
11977int __ovld __cnfn isordered(half x, half y);
11978short2 __ovld __cnfn isordered(half2 x, half2 y);
11979short3 __ovld __cnfn isordered(half3 x, half3 y);
11980short4 __ovld __cnfn isordered(half4 x, half4 y);
11981short8 __ovld __cnfn isordered(half8 x, half8 y);
11982short16 __ovld __cnfn isordered(half16 x, half16 y);
11983#endif //cl_khr_fp16
11984
11985/**
11986 * Test if arguments are unordered. isunordered()
11987 * takes arguments x and y, returning non-zero if x or y
11988 * is NaN, and zero otherwise.
11989 */
11990int __ovld __cnfn isunordered(float x, float y);
11991int2 __ovld __cnfn isunordered(float2 x, float2 y);
11992int3 __ovld __cnfn isunordered(float3 x, float3 y);
11993int4 __ovld __cnfn isunordered(float4 x, float4 y);
11994int8 __ovld __cnfn isunordered(float8 x, float8 y);
11995int16 __ovld __cnfn isunordered(float16 x, float16 y);
11996#ifdef cl_khr_fp64
11997int __ovld __cnfn isunordered(double x, double y);
11998long2 __ovld __cnfn isunordered(double2 x, double2 y);
11999long3 __ovld __cnfn isunordered(double3 x, double3 y);
12000long4 __ovld __cnfn isunordered(double4 x, double4 y);
12001long8 __ovld __cnfn isunordered(double8 x, double8 y);
12002long16 __ovld __cnfn isunordered(double16 x, double16 y);
12003#endif //cl_khr_fp64
12004#ifdef cl_khr_fp16
12005int __ovld __cnfn isunordered(half x, half y);
12006short2 __ovld __cnfn isunordered(half2 x, half2 y);
12007short3 __ovld __cnfn isunordered(half3 x, half3 y);
12008short4 __ovld __cnfn isunordered(half4 x, half4 y);
12009short8 __ovld __cnfn isunordered(half8 x, half8 y);
12010short16 __ovld __cnfn isunordered(half16 x, half16 y);
12011#endif //cl_khr_fp16
12012
12013/**
12014 * Test for sign bit. The scalar version of the function
12015 * returns a 1 if the sign bit in the float is set else returns
12016 * 0. The vector version of the function returns the
12017 * following for each component in floatn: a -1 if the
12018 * sign bit in the float is set else returns 0.
12019 */
12020int __ovld __cnfn signbit(float);
12021int2 __ovld __cnfn signbit(float2);
12022int3 __ovld __cnfn signbit(float3);
12023int4 __ovld __cnfn signbit(float4);
12024int8 __ovld __cnfn signbit(float8);
12025int16 __ovld __cnfn signbit(float16);
12026#ifdef cl_khr_fp64
12027int __ovld __cnfn signbit(double);
12028long2 __ovld __cnfn signbit(double2);
12029long3 __ovld __cnfn signbit(double3);
12030long4 __ovld __cnfn signbit(double4);
12031long8 __ovld __cnfn signbit(double8);
12032long16 __ovld __cnfn signbit(double16);
12033#endif //cl_khr_fp64
12034#ifdef cl_khr_fp16
12035int __ovld __cnfn signbit(half);
12036short2 __ovld __cnfn signbit(half2);
12037short3 __ovld __cnfn signbit(half3);
12038short4 __ovld __cnfn signbit(half4);
12039short8 __ovld __cnfn signbit(half8);
12040short16 __ovld __cnfn signbit(half16);
12041#endif //cl_khr_fp16
12042
12043/**
12044 * Returns 1 if the most significant bit in any component
12045 * of x is set; otherwise returns 0.
12046 */
12047int __ovld __cnfn any(char x);
12048int __ovld __cnfn any(char2 x);
12049int __ovld __cnfn any(char3 x);
12050int __ovld __cnfn any(char4 x);
12051int __ovld __cnfn any(char8 x);
12052int __ovld __cnfn any(char16 x);
12053int __ovld __cnfn any(short x);
12054int __ovld __cnfn any(short2 x);
12055int __ovld __cnfn any(short3 x);
12056int __ovld __cnfn any(short4 x);
12057int __ovld __cnfn any(short8 x);
12058int __ovld __cnfn any(short16 x);
12059int __ovld __cnfn any(int x);
12060int __ovld __cnfn any(int2 x);
12061int __ovld __cnfn any(int3 x);
12062int __ovld __cnfn any(int4 x);
12063int __ovld __cnfn any(int8 x);
12064int __ovld __cnfn any(int16 x);
12065int __ovld __cnfn any(long x);
12066int __ovld __cnfn any(long2 x);
12067int __ovld __cnfn any(long3 x);
12068int __ovld __cnfn any(long4 x);
12069int __ovld __cnfn any(long8 x);
12070int __ovld __cnfn any(long16 x);
12071
12072/**
12073 * Returns 1 if the most significant bit in all components
12074 * of x is set; otherwise returns 0.
12075 */
12076int __ovld __cnfn all(char x);
12077int __ovld __cnfn all(char2 x);
12078int __ovld __cnfn all(char3 x);
12079int __ovld __cnfn all(char4 x);
12080int __ovld __cnfn all(char8 x);
12081int __ovld __cnfn all(char16 x);
12082int __ovld __cnfn all(short x);
12083int __ovld __cnfn all(short2 x);
12084int __ovld __cnfn all(short3 x);
12085int __ovld __cnfn all(short4 x);
12086int __ovld __cnfn all(short8 x);
12087int __ovld __cnfn all(short16 x);
12088int __ovld __cnfn all(int x);
12089int __ovld __cnfn all(int2 x);
12090int __ovld __cnfn all(int3 x);
12091int __ovld __cnfn all(int4 x);
12092int __ovld __cnfn all(int8 x);
12093int __ovld __cnfn all(int16 x);
12094int __ovld __cnfn all(long x);
12095int __ovld __cnfn all(long2 x);
12096int __ovld __cnfn all(long3 x);
12097int __ovld __cnfn all(long4 x);
12098int __ovld __cnfn all(long8 x);
12099int __ovld __cnfn all(long16 x);
12100
12101/**
12102 * Each bit of the result is the corresponding bit of a if
12103 * the corresponding bit of c is 0. Otherwise it is the
12104 * corresponding bit of b.
12105 */
12106char __ovld __cnfn bitselect(char a, char b, char c);
12107uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
12108char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
12109uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
12110char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
12111uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
12112char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
12113uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
12114char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
12115uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
12116char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
12117uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
12118short __ovld __cnfn bitselect(short a, short b, short c);
12119ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
12120short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
12121ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
12122short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
12123ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
12124short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
12125ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
12126short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
12127ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
12128short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
12129ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
12130int __ovld __cnfn bitselect(int a, int b, int c);
12131uint __ovld __cnfn bitselect(uint a, uint b, uint c);
12132int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
12133uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
12134int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
12135uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
12136int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
12137uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
12138int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
12139uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
12140int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
12141uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
12142long __ovld __cnfn bitselect(long a, long b, long c);
12143ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
12144long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
12145ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
12146long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
12147ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
12148long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
12149ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
12150long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
12151ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
12152long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
12153ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
12154float __ovld __cnfn bitselect(float a, float b, float c);
12155float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
12156float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
12157float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
12158float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
12159float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
12160#ifdef cl_khr_fp64
12161double __ovld __cnfn bitselect(double a, double b, double c);
12162double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
12163double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
12164double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
12165double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
12166double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
12167#endif //cl_khr_fp64
12168#ifdef cl_khr_fp16
12169half __ovld __cnfn bitselect(half a, half b, half c);
12170half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
12171half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
12172half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
12173half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
12174half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
12175#endif //cl_khr_fp16
12176
12177/**
12178 * For each component of a vector type,
12179 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
12180 * For a scalar type, result = c ? b : a.
12181 */
12182char __ovld __cnfn select(char a, char b, char c);
12183uchar __ovld __cnfn select(uchar a, uchar b, char c);
12184char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
12185uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
12186char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
12187uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
12188char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
12189uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
12190char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
12191uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
12192char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
12193uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
12194short __ovld __cnfn select(short a, short b, char c);
12195ushort __ovld __cnfn select(ushort a, ushort b, char c);
12196short2 __ovld __cnfn select(short2 a, short2 b, char2 c);
12197ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, char2 c);
12198short3 __ovld __cnfn select(short3 a, short3 b, char3 c);
12199ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, char3 c);
12200short4 __ovld __cnfn select(short4 a, short4 b, char4 c);
12201ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, char4 c);
12202short8 __ovld __cnfn select(short8 a, short8 b, char8 c);
12203ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, char8 c);
12204short16 __ovld __cnfn select(short16 a, short16 b, char16 c);
12205ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, char16 c);
12206int __ovld __cnfn select(int a, int b, char c);
12207uint __ovld __cnfn select(uint a, uint b, char c);
12208int2 __ovld __cnfn select(int2 a, int2 b, char2 c);
12209uint2 __ovld __cnfn select(uint2 a, uint2 b, char2 c);
12210int3 __ovld __cnfn select(int3 a, int3 b, char3 c);
12211uint3 __ovld __cnfn select(uint3 a, uint3 b, char3 c);
12212int4 __ovld __cnfn select(int4 a, int4 b, char4 c);
12213uint4 __ovld __cnfn select(uint4 a, uint4 b, char4 c);
12214int8 __ovld __cnfn select(int8 a, int8 b, char8 c);
12215uint8 __ovld __cnfn select(uint8 a, uint8 b, char8 c);
12216int16 __ovld __cnfn select(int16 a, int16 b, char16 c);
12217uint16 __ovld __cnfn select(uint16 a, uint16 b, char16 c);
12218long __ovld __cnfn select(long a, long b, char c);
12219ulong __ovld __cnfn select(ulong a, ulong b, char c);
12220long2 __ovld __cnfn select(long2 a, long2 b, char2 c);
12221ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, char2 c);
12222long3 __ovld __cnfn select(long3 a, long3 b, char3 c);
12223ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, char3 c);
12224long4 __ovld __cnfn select(long4 a, long4 b, char4 c);
12225ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, char4 c);
12226long8 __ovld __cnfn select(long8 a, long8 b, char8 c);
12227ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, char8 c);
12228long16 __ovld __cnfn select(long16 a, long16 b, char16 c);
12229ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, char16 c);
12230float __ovld __cnfn select(float a, float b, char c);
12231float2 __ovld __cnfn select(float2 a, float2 b, char2 c);
12232float3 __ovld __cnfn select(float3 a, float3 b, char3 c);
12233float4 __ovld __cnfn select(float4 a, float4 b, char4 c);
12234float8 __ovld __cnfn select(float8 a, float8 b, char8 c);
12235float16 __ovld __cnfn select(float16 a, float16 b, char16 c);
12236char __ovld __cnfn select(char a, char b, short c);
12237uchar __ovld __cnfn select(uchar a, uchar b, short c);
12238char2 __ovld __cnfn select(char2 a, char2 b, short2 c);
12239uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, short2 c);
12240char3 __ovld __cnfn select(char3 a, char3 b, short3 c);
12241uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, short3 c);
12242char4 __ovld __cnfn select(char4 a, char4 b, short4 c);
12243uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, short4 c);
12244char8 __ovld __cnfn select(char8 a, char8 b, short8 c);
12245uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, short8 c);
12246char16 __ovld __cnfn select(char16 a, char16 b, short16 c);
12247uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, short16 c);
12248short __ovld __cnfn select(short a, short b, short c);
12249ushort __ovld __cnfn select(ushort a, ushort b, short c);
12250short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
12251ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
12252short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
12253ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
12254short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
12255ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
12256short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
12257ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
12258short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
12259ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
12260int __ovld __cnfn select(int a, int b, short c);
12261uint __ovld __cnfn select(uint a, uint b, short c);
12262int2 __ovld __cnfn select(int2 a, int2 b, short2 c);
12263uint2 __ovld __cnfn select(uint2 a, uint2 b, short2 c);
12264int3 __ovld __cnfn select(int3 a, int3 b, short3 c);
12265uint3 __ovld __cnfn select(uint3 a, uint3 b, short3 c);
12266int4 __ovld __cnfn select(int4 a, int4 b, short4 c);
12267uint4 __ovld __cnfn select(uint4 a, uint4 b, short4 c);
12268int8 __ovld __cnfn select(int8 a, int8 b, short8 c);
12269uint8 __ovld __cnfn select(uint8 a, uint8 b, short8 c);
12270int16 __ovld __cnfn select(int16 a, int16 b, short16 c);
12271uint16 __ovld __cnfn select(uint16 a, uint16 b, short16 c);
12272long __ovld __cnfn select(long a, long b, short c);
12273ulong __ovld __cnfn select(ulong a, ulong b, short c);
12274long2 __ovld __cnfn select(long2 a, long2 b, short2 c);
12275ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, short2 c);
12276long3 __ovld __cnfn select(long3 a, long3 b, short3 c);
12277ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, short3 c);
12278long4 __ovld __cnfn select(long4 a, long4 b, short4 c);
12279ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, short4 c);
12280long8 __ovld __cnfn select(long8 a, long8 b, short8 c);
12281ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, short8 c);
12282long16 __ovld __cnfn select(long16 a, long16 b, short16 c);
12283ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, short16 c);
12284float __ovld __cnfn select(float a, float b, short c);
12285float2 __ovld __cnfn select(float2 a, float2 b, short2 c);
12286float3 __ovld __cnfn select(float3 a, float3 b, short3 c);
12287float4 __ovld __cnfn select(float4 a, float4 b, short4 c);
12288float8 __ovld __cnfn select(float8 a, float8 b, short8 c);
12289float16 __ovld __cnfn select(float16 a, float16 b, short16 c);
12290char __ovld __cnfn select(char a, char b, int c);
12291uchar __ovld __cnfn select(uchar a, uchar b, int c);
12292char2 __ovld __cnfn select(char2 a, char2 b, int2 c);
12293uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, int2 c);
12294char3 __ovld __cnfn select(char3 a, char3 b, int3 c);
12295uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, int3 c);
12296char4 __ovld __cnfn select(char4 a, char4 b, int4 c);
12297uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, int4 c);
12298char8 __ovld __cnfn select(char8 a, char8 b, int8 c);
12299uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, int8 c);
12300char16 __ovld __cnfn select(char16 a, char16 b, int16 c);
12301uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, int16 c);
12302short __ovld __cnfn select(short a, short b, int c);
12303ushort __ovld __cnfn select(ushort a, ushort b, int c);
12304short2 __ovld __cnfn select(short2 a, short2 b, int2 c);
12305ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, int2 c);
12306short3 __ovld __cnfn select(short3 a, short3 b, int3 c);
12307ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, int3 c);
12308short4 __ovld __cnfn select(short4 a, short4 b, int4 c);
12309ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, int4 c);
12310short8 __ovld __cnfn select(short8 a, short8 b, int8 c);
12311ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, int8 c);
12312short16 __ovld __cnfn select(short16 a, short16 b, int16 c);
12313ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, int16 c);
12314int __ovld __cnfn select(int a, int b, int c);
12315uint __ovld __cnfn select(uint a, uint b, int c);
12316int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
12317uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
12318int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
12319uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
12320int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
12321uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
12322int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
12323uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
12324int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
12325uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
12326long __ovld __cnfn select(long a, long b, int c);
12327ulong __ovld __cnfn select(ulong a, ulong b, int c);
12328long2 __ovld __cnfn select(long2 a, long2 b, int2 c);
12329ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, int2 c);
12330long3 __ovld __cnfn select(long3 a, long3 b, int3 c);
12331ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, int3 c);
12332long4 __ovld __cnfn select(long4 a, long4 b, int4 c);
12333ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, int4 c);
12334long8 __ovld __cnfn select(long8 a, long8 b, int8 c);
12335ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, int8 c);
12336long16 __ovld __cnfn select(long16 a, long16 b, int16 c);
12337ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, int16 c);
12338float __ovld __cnfn select(float a, float b, int c);
12339float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
12340float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
12341float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
12342float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
12343float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
12344char __ovld __cnfn select(char a, char b, long c);
12345uchar __ovld __cnfn select(uchar a, uchar b, long c);
12346char2 __ovld __cnfn select(char2 a, char2 b, long2 c);
12347uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, long2 c);
12348char3 __ovld __cnfn select(char3 a, char3 b, long3 c);
12349uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, long3 c);
12350char4 __ovld __cnfn select(char4 a, char4 b, long4 c);
12351uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, long4 c);
12352char8 __ovld __cnfn select(char8 a, char8 b, long8 c);
12353uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, long8 c);
12354char16 __ovld __cnfn select(char16 a, char16 b, long16 c);
12355uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, long16 c);
12356short __ovld __cnfn select(short a, short b, long c);
12357ushort __ovld __cnfn select(ushort a, ushort b, long c);
12358short2 __ovld __cnfn select(short2 a, short2 b, long2 c);
12359ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, long2 c);
12360short3 __ovld __cnfn select(short3 a, short3 b, long3 c);
12361ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, long3 c);
12362short4 __ovld __cnfn select(short4 a, short4 b, long4 c);
12363ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, long4 c);
12364short8 __ovld __cnfn select(short8 a, short8 b, long8 c);
12365ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, long8 c);
12366short16 __ovld __cnfn select(short16 a, short16 b, long16 c);
12367ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, long16 c);
12368int __ovld __cnfn select(int a, int b, long c);
12369uint __ovld __cnfn select(uint a, uint b, long c);
12370int2 __ovld __cnfn select(int2 a, int2 b, long2 c);
12371uint2 __ovld __cnfn select(uint2 a, uint2 b, long2 c);
12372int3 __ovld __cnfn select(int3 a, int3 b, long3 c);
12373uint3 __ovld __cnfn select(uint3 a, uint3 b, long3 c);
12374int4 __ovld __cnfn select(int4 a, int4 b, long4 c);
12375uint4 __ovld __cnfn select(uint4 a, uint4 b, long4 c);
12376int8 __ovld __cnfn select(int8 a, int8 b, long8 c);
12377uint8 __ovld __cnfn select(uint8 a, uint8 b, long8 c);
12378int16 __ovld __cnfn select(int16 a, int16 b, long16 c);
12379uint16 __ovld __cnfn select(uint16 a, uint16 b, long16 c);
12380long __ovld __cnfn select(long a, long b, long c);
12381ulong __ovld __cnfn select(ulong a, ulong b, long c);
12382long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
12383ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
12384long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
12385ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
12386long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
12387ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
12388long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
12389ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
12390long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
12391ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
12392float __ovld __cnfn select(float a, float b, long c);
12393float2 __ovld __cnfn select(float2 a, float2 b, long2 c);
12394float3 __ovld __cnfn select(float3 a, float3 b, long3 c);
12395float4 __ovld __cnfn select(float4 a, float4 b, long4 c);
12396float8 __ovld __cnfn select(float8 a, float8 b, long8 c);
12397float16 __ovld __cnfn select(float16 a, float16 b, long16 c);
12398char __ovld __cnfn select(char a, char b, uchar c);
12399uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
12400char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
12401uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
12402char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
12403uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
12404char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
12405uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
12406char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
12407uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
12408char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
12409uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
12410short __ovld __cnfn select(short a, short b, uchar c);
12411ushort __ovld __cnfn select(ushort a, ushort b, uchar c);
12412short2 __ovld __cnfn select(short2 a, short2 b, uchar2 c);
12413ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uchar2 c);
12414short3 __ovld __cnfn select(short3 a, short3 b, uchar3 c);
12415ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uchar3 c);
12416short4 __ovld __cnfn select(short4 a, short4 b, uchar4 c);
12417ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uchar4 c);
12418short8 __ovld __cnfn select(short8 a, short8 b, uchar8 c);
12419ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uchar8 c);
12420short16 __ovld __cnfn select(short16 a, short16 b, uchar16 c);
12421ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uchar16 c);
12422int __ovld __cnfn select(int a, int b, uchar c);
12423uint __ovld __cnfn select(uint a, uint b, uchar c);
12424int2 __ovld __cnfn select(int2 a, int2 b, uchar2 c);
12425uint2 __ovld __cnfn select(uint2 a, uint2 b, uchar2 c);
12426int3 __ovld __cnfn select(int3 a, int3 b, uchar3 c);
12427uint3 __ovld __cnfn select(uint3 a, uint3 b, uchar3 c);
12428int4 __ovld __cnfn select(int4 a, int4 b, uchar4 c);
12429uint4 __ovld __cnfn select(uint4 a, uint4 b, uchar4 c);
12430int8 __ovld __cnfn select(int8 a, int8 b, uchar8 c);
12431uint8 __ovld __cnfn select(uint8 a, uint8 b, uchar8 c);
12432int16 __ovld __cnfn select(int16 a, int16 b, uchar16 c);
12433uint16 __ovld __cnfn select(uint16 a, uint16 b, uchar16 c);
12434long __ovld __cnfn select(long a, long b, uchar c);
12435ulong __ovld __cnfn select(ulong a, ulong b, uchar c);
12436long2 __ovld __cnfn select(long2 a, long2 b, uchar2 c);
12437ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uchar2 c);
12438long3 __ovld __cnfn select(long3 a, long3 b, uchar3 c);
12439ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uchar3 c);
12440long4 __ovld __cnfn select(long4 a, long4 b, uchar4 c);
12441ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uchar4 c);
12442long8 __ovld __cnfn select(long8 a, long8 b, uchar8 c);
12443ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uchar8 c);
12444long16 __ovld __cnfn select(long16 a, long16 b, uchar16 c);
12445ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uchar16 c);
12446float __ovld __cnfn select(float a, float b, uchar c);
12447float2 __ovld __cnfn select(float2 a, float2 b, uchar2 c);
12448float3 __ovld __cnfn select(float3 a, float3 b, uchar3 c);
12449float4 __ovld __cnfn select(float4 a, float4 b, uchar4 c);
12450float8 __ovld __cnfn select(float8 a, float8 b, uchar8 c);
12451float16 __ovld __cnfn select(float16 a, float16 b, uchar16 c);
12452char __ovld __cnfn select(char a, char b, ushort c);
12453uchar __ovld __cnfn select(uchar a, uchar b, ushort c);
12454char2 __ovld __cnfn select(char2 a, char2 b, ushort2 c);
12455uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ushort2 c);
12456char3 __ovld __cnfn select(char3 a, char3 b, ushort3 c);
12457uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ushort3 c);
12458char4 __ovld __cnfn select(char4 a, char4 b, ushort4 c);
12459uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ushort4 c);
12460char8 __ovld __cnfn select(char8 a, char8 b, ushort8 c);
12461uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ushort8 c);
12462char16 __ovld __cnfn select(char16 a, char16 b, ushort16 c);
12463uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ushort16 c);
12464short __ovld __cnfn select(short a, short b, ushort c);
12465ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
12466short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
12467ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
12468short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
12469ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
12470short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
12471ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
12472short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
12473ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
12474short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
12475ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
12476int __ovld __cnfn select(int a, int b, ushort c);
12477uint __ovld __cnfn select(uint a, uint b, ushort c);
12478int2 __ovld __cnfn select(int2 a, int2 b, ushort2 c);
12479uint2 __ovld __cnfn select(uint2 a, uint2 b, ushort2 c);
12480int3 __ovld __cnfn select(int3 a, int3 b, ushort3 c);
12481uint3 __ovld __cnfn select(uint3 a, uint3 b, ushort3 c);
12482int4 __ovld __cnfn select(int4 a, int4 b, ushort4 c);
12483uint4 __ovld __cnfn select(uint4 a, uint4 b, ushort4 c);
12484int8 __ovld __cnfn select(int8 a, int8 b, ushort8 c);
12485uint8 __ovld __cnfn select(uint8 a, uint8 b, ushort8 c);
12486int16 __ovld __cnfn select(int16 a, int16 b, ushort16 c);
12487uint16 __ovld __cnfn select(uint16 a, uint16 b, ushort16 c);
12488long __ovld __cnfn select(long a, long b, ushort c);
12489ulong __ovld __cnfn select(ulong a, ulong b, ushort c);
12490long2 __ovld __cnfn select(long2 a, long2 b, ushort2 c);
12491ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ushort2 c);
12492long3 __ovld __cnfn select(long3 a, long3 b, ushort3 c);
12493ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ushort3 c);
12494long4 __ovld __cnfn select(long4 a, long4 b, ushort4 c);
12495ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ushort4 c);
12496long8 __ovld __cnfn select(long8 a, long8 b, ushort8 c);
12497ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ushort8 c);
12498long16 __ovld __cnfn select(long16 a, long16 b, ushort16 c);
12499ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ushort16 c);
12500float __ovld __cnfn select(float a, float b, ushort c);
12501float2 __ovld __cnfn select(float2 a, float2 b, ushort2 c);
12502float3 __ovld __cnfn select(float3 a, float3 b, ushort3 c);
12503float4 __ovld __cnfn select(float4 a, float4 b, ushort4 c);
12504float8 __ovld __cnfn select(float8 a, float8 b, ushort8 c);
12505float16 __ovld __cnfn select(float16 a, float16 b, ushort16 c);
12506char __ovld __cnfn select(char a, char b, uint c);
12507uchar __ovld __cnfn select(uchar a, uchar b, uint c);
12508char2 __ovld __cnfn select(char2 a, char2 b, uint2 c);
12509uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uint2 c);
12510char3 __ovld __cnfn select(char3 a, char3 b, uint3 c);
12511uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uint3 c);
12512char4 __ovld __cnfn select(char4 a, char4 b, uint4 c);
12513uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uint4 c);
12514char8 __ovld __cnfn select(char8 a, char8 b, uint8 c);
12515uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uint8 c);
12516char16 __ovld __cnfn select(char16 a, char16 b, uint16 c);
12517uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uint16 c);
12518short __ovld __cnfn select(short a, short b, uint c);
12519ushort __ovld __cnfn select(ushort a, ushort b, uint c);
12520short2 __ovld __cnfn select(short2 a, short2 b, uint2 c);
12521ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uint2 c);
12522short3 __ovld __cnfn select(short3 a, short3 b, uint3 c);
12523ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uint3 c);
12524short4 __ovld __cnfn select(short4 a, short4 b, uint4 c);
12525ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uint4 c);
12526short8 __ovld __cnfn select(short8 a, short8 b, uint8 c);
12527ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uint8 c);
12528short16 __ovld __cnfn select(short16 a, short16 b, uint16 c);
12529ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uint16 c);
12530int __ovld __cnfn select(int a, int b, uint c);
12531uint __ovld __cnfn select(uint a, uint b, uint c);
12532int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
12533uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
12534int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
12535uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
12536int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
12537uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
12538int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
12539uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
12540int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
12541uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
12542long __ovld __cnfn select(long a, long b, uint c);
12543ulong __ovld __cnfn select(ulong a, ulong b, uint c);
12544long2 __ovld __cnfn select(long2 a, long2 b, uint2 c);
12545ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uint2 c);
12546long3 __ovld __cnfn select(long3 a, long3 b, uint3 c);
12547ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uint3 c);
12548long4 __ovld __cnfn select(long4 a, long4 b, uint4 c);
12549ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uint4 c);
12550long8 __ovld __cnfn select(long8 a, long8 b, uint8 c);
12551ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uint8 c);
12552long16 __ovld __cnfn select(long16 a, long16 b, uint16 c);
12553ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uint16 c);
12554float __ovld __cnfn select(float a, float b, uint c);
12555float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
12556float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
12557float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
12558float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
12559float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
12560char __ovld __cnfn select(char a, char b, ulong c);
12561uchar __ovld __cnfn select(uchar a, uchar b, ulong c);
12562char2 __ovld __cnfn select(char2 a, char2 b, ulong2 c);
12563uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ulong2 c);
12564char3 __ovld __cnfn select(char3 a, char3 b, ulong3 c);
12565uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ulong3 c);
12566char4 __ovld __cnfn select(char4 a, char4 b, ulong4 c);
12567uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ulong4 c);
12568char8 __ovld __cnfn select(char8 a, char8 b, ulong8 c);
12569uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ulong8 c);
12570char16 __ovld __cnfn select(char16 a, char16 b, ulong16 c);
12571uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ulong16 c);
12572short __ovld __cnfn select(short a, short b, ulong c);
12573ushort __ovld __cnfn select(ushort a, ushort b, ulong c);
12574short2 __ovld __cnfn select(short2 a, short2 b, ulong2 c);
12575ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ulong2 c);
12576short3 __ovld __cnfn select(short3 a, short3 b, ulong3 c);
12577ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ulong3 c);
12578short4 __ovld __cnfn select(short4 a, short4 b, ulong4 c);
12579ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ulong4 c);
12580short8 __ovld __cnfn select(short8 a, short8 b, ulong8 c);
12581ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ulong8 c);
12582short16 __ovld __cnfn select(short16 a, short16 b, ulong16 c);
12583ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ulong16 c);
12584int __ovld __cnfn select(int a, int b, ulong c);
12585uint __ovld __cnfn select(uint a, uint b, ulong c);
12586int2 __ovld __cnfn select(int2 a, int2 b, ulong2 c);
12587uint2 __ovld __cnfn select(uint2 a, uint2 b, ulong2 c);
12588int3 __ovld __cnfn select(int3 a, int3 b, ulong3 c);
12589uint3 __ovld __cnfn select(uint3 a, uint3 b, ulong3 c);
12590int4 __ovld __cnfn select(int4 a, int4 b, ulong4 c);
12591uint4 __ovld __cnfn select(uint4 a, uint4 b, ulong4 c);
12592int8 __ovld __cnfn select(int8 a, int8 b, ulong8 c);
12593uint8 __ovld __cnfn select(uint8 a, uint8 b, ulong8 c);
12594int16 __ovld __cnfn select(int16 a, int16 b, ulong16 c);
12595uint16 __ovld __cnfn select(uint16 a, uint16 b, ulong16 c);
12596long __ovld __cnfn select(long a, long b, ulong c);
12597ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
12598long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
12599ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
12600long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
12601ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
12602long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
12603ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
12604long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
12605ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
12606long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
12607ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
12608float __ovld __cnfn select(float a, float b, ulong c);
12609float2 __ovld __cnfn select(float2 a, float2 b, ulong2 c);
12610float3 __ovld __cnfn select(float3 a, float3 b, ulong3 c);
12611float4 __ovld __cnfn select(float4 a, float4 b, ulong4 c);
12612float8 __ovld __cnfn select(float8 a, float8 b, ulong8 c);
12613float16 __ovld __cnfn select(float16 a, float16 b, ulong16 c);
12614#ifdef cl_khr_fp64
12615double __ovld __cnfn select(double a, double b, long c);
12616double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
12617double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
12618double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
12619double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
12620double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
12621double __ovld __cnfn select(double a, double b, ulong c);
12622double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
12623double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
12624double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
12625double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
12626double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
12627#endif //cl_khr_fp64
12628#ifdef cl_khr_fp16
12629half __ovld __cnfn select(half a, half b, short c);
12630half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
12631half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
12632half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
12633half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
12634half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
12635half __ovld __cnfn select(half a, half b, ushort c);
12636half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
12637half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
12638half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
12639half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
12640half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
12641#endif //cl_khr_fp16
12642
12643// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
12644// OpenCL extensions v1.1 s9.6.6, v1.2 s9.5.6, v2.0 s9.4.6 - Vector Data Load and Store Functions for Half Type
12645/**
12646 * Use generic type gentype to indicate the built-in data types
12647 * char, uchar, short, ushort, int, uint, long, ulong, float,
12648 * double or half.
12649 *
12650 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
12651 *
12652 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
12653 *
12654 * The address computed as (p + (offset * n)) must be
12655 * 8-bit aligned if gentype is char, uchar;
12656 * 16-bit aligned if gentype is short, ushort, half;
12657 * 32-bit aligned if gentype is int, uint, float;
12658 * 64-bit aligned if gentype is long, ulong, double.
12659 */
12660
12661char2 __ovld vload2(size_t offset, const __constant char *p);
12662uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
12663short2 __ovld vload2(size_t offset, const __constant short *p);
12664ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
12665int2 __ovld vload2(size_t offset, const __constant int *p);
12666uint2 __ovld vload2(size_t offset, const __constant uint *p);
12667long2 __ovld vload2(size_t offset, const __constant long *p);
12668ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
12669float2 __ovld vload2(size_t offset, const __constant float *p);
12670char3 __ovld vload3(size_t offset, const __constant char *p);
12671uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
12672short3 __ovld vload3(size_t offset, const __constant short *p);
12673ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
12674int3 __ovld vload3(size_t offset, const __constant int *p);
12675uint3 __ovld vload3(size_t offset, const __constant uint *p);
12676long3 __ovld vload3(size_t offset, const __constant long *p);
12677ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
12678float3 __ovld vload3(size_t offset, const __constant float *p);
12679char4 __ovld vload4(size_t offset, const __constant char *p);
12680uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
12681short4 __ovld vload4(size_t offset, const __constant short *p);
12682ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
12683int4 __ovld vload4(size_t offset, const __constant int *p);
12684uint4 __ovld vload4(size_t offset, const __constant uint *p);
12685long4 __ovld vload4(size_t offset, const __constant long *p);
12686ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
12687float4 __ovld vload4(size_t offset, const __constant float *p);
12688char8 __ovld vload8(size_t offset, const __constant char *p);
12689uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
12690short8 __ovld vload8(size_t offset, const __constant short *p);
12691ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
12692int8 __ovld vload8(size_t offset, const __constant int *p);
12693uint8 __ovld vload8(size_t offset, const __constant uint *p);
12694long8 __ovld vload8(size_t offset, const __constant long *p);
12695ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
12696float8 __ovld vload8(size_t offset, const __constant float *p);
12697char16 __ovld vload16(size_t offset, const __constant char *p);
12698uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
12699short16 __ovld vload16(size_t offset, const __constant short *p);
12700ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
12701int16 __ovld vload16(size_t offset, const __constant int *p);
12702uint16 __ovld vload16(size_t offset, const __constant uint *p);
12703long16 __ovld vload16(size_t offset, const __constant long *p);
12704ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
12705float16 __ovld vload16(size_t offset, const __constant float *p);
12706#ifdef cl_khr_fp64
12707double2 __ovld vload2(size_t offset, const __constant double *p);
12708double3 __ovld vload3(size_t offset, const __constant double *p);
12709double4 __ovld vload4(size_t offset, const __constant double *p);
12710double8 __ovld vload8(size_t offset, const __constant double *p);
12711double16 __ovld vload16(size_t offset, const __constant double *p);
12712#endif //cl_khr_fp64
12713
12714#ifdef cl_khr_fp16
12715half __ovld vload(size_t offset, const __constant half *p);
12716half2 __ovld vload2(size_t offset, const __constant half *p);
12717half3 __ovld vload3(size_t offset, const __constant half *p);
12718half4 __ovld vload4(size_t offset, const __constant half *p);
12719half8 __ovld vload8(size_t offset, const __constant half *p);
12720half16 __ovld vload16(size_t offset, const __constant half *p);
12721#endif //cl_khr_fp16
12722
12723#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12724char2 __ovld vload2(size_t offset, const char *p);
12725uchar2 __ovld vload2(size_t offset, const uchar *p);
12726short2 __ovld vload2(size_t offset, const short *p);
12727ushort2 __ovld vload2(size_t offset, const ushort *p);
12728int2 __ovld vload2(size_t offset, const int *p);
12729uint2 __ovld vload2(size_t offset, const uint *p);
12730long2 __ovld vload2(size_t offset, const long *p);
12731ulong2 __ovld vload2(size_t offset, const ulong *p);
12732float2 __ovld vload2(size_t offset, const float *p);
12733char3 __ovld vload3(size_t offset, const char *p);
12734uchar3 __ovld vload3(size_t offset, const uchar *p);
12735short3 __ovld vload3(size_t offset, const short *p);
12736ushort3 __ovld vload3(size_t offset, const ushort *p);
12737int3 __ovld vload3(size_t offset, const int *p);
12738uint3 __ovld vload3(size_t offset, const uint *p);
12739long3 __ovld vload3(size_t offset, const long *p);
12740ulong3 __ovld vload3(size_t offset, const ulong *p);
12741float3 __ovld vload3(size_t offset, const float *p);
12742char4 __ovld vload4(size_t offset, const char *p);
12743uchar4 __ovld vload4(size_t offset, const uchar *p);
12744short4 __ovld vload4(size_t offset, const short *p);
12745ushort4 __ovld vload4(size_t offset, const ushort *p);
12746int4 __ovld vload4(size_t offset, const int *p);
12747uint4 __ovld vload4(size_t offset, const uint *p);
12748long4 __ovld vload4(size_t offset, const long *p);
12749ulong4 __ovld vload4(size_t offset, const ulong *p);
12750float4 __ovld vload4(size_t offset, const float *p);
12751char8 __ovld vload8(size_t offset, const char *p);
12752uchar8 __ovld vload8(size_t offset, const uchar *p);
12753short8 __ovld vload8(size_t offset, const short *p);
12754ushort8 __ovld vload8(size_t offset, const ushort *p);
12755int8 __ovld vload8(size_t offset, const int *p);
12756uint8 __ovld vload8(size_t offset, const uint *p);
12757long8 __ovld vload8(size_t offset, const long *p);
12758ulong8 __ovld vload8(size_t offset, const ulong *p);
12759float8 __ovld vload8(size_t offset, const float *p);
12760char16 __ovld vload16(size_t offset, const char *p);
12761uchar16 __ovld vload16(size_t offset, const uchar *p);
12762short16 __ovld vload16(size_t offset, const short *p);
12763ushort16 __ovld vload16(size_t offset, const ushort *p);
12764int16 __ovld vload16(size_t offset, const int *p);
12765uint16 __ovld vload16(size_t offset, const uint *p);
12766long16 __ovld vload16(size_t offset, const long *p);
12767ulong16 __ovld vload16(size_t offset, const ulong *p);
12768float16 __ovld vload16(size_t offset, const float *p);
12769
12770#ifdef cl_khr_fp64
12771double2 __ovld vload2(size_t offset, const double *p);
12772double3 __ovld vload3(size_t offset, const double *p);
12773double4 __ovld vload4(size_t offset, const double *p);
12774double8 __ovld vload8(size_t offset, const double *p);
12775double16 __ovld vload16(size_t offset, const double *p);
12776#endif //cl_khr_fp64
12777
12778#ifdef cl_khr_fp16
12779half __ovld vload(size_t offset, const half *p);
12780half2 __ovld vload2(size_t offset, const half *p);
12781half3 __ovld vload3(size_t offset, const half *p);
12782half4 __ovld vload4(size_t offset, const half *p);
12783half8 __ovld vload8(size_t offset, const half *p);
12784half16 __ovld vload16(size_t offset, const half *p);
12785#endif //cl_khr_fp16
12786#else
12787char2 __ovld vload2(size_t offset, const __global char *p);
12788uchar2 __ovld vload2(size_t offset, const __global uchar *p);
12789short2 __ovld vload2(size_t offset, const __global short *p);
12790ushort2 __ovld vload2(size_t offset, const __global ushort *p);
12791int2 __ovld vload2(size_t offset, const __global int *p);
12792uint2 __ovld vload2(size_t offset, const __global uint *p);
12793long2 __ovld vload2(size_t offset, const __global long *p);
12794ulong2 __ovld vload2(size_t offset, const __global ulong *p);
12795float2 __ovld vload2(size_t offset, const __global float *p);
12796char3 __ovld vload3(size_t offset, const __global char *p);
12797uchar3 __ovld vload3(size_t offset, const __global uchar *p);
12798short3 __ovld vload3(size_t offset, const __global short *p);
12799ushort3 __ovld vload3(size_t offset, const __global ushort *p);
12800int3 __ovld vload3(size_t offset, const __global int *p);
12801uint3 __ovld vload3(size_t offset, const __global uint *p);
12802long3 __ovld vload3(size_t offset, const __global long *p);
12803ulong3 __ovld vload3(size_t offset, const __global ulong *p);
12804float3 __ovld vload3(size_t offset, const __global float *p);
12805char4 __ovld vload4(size_t offset, const __global char *p);
12806uchar4 __ovld vload4(size_t offset, const __global uchar *p);
12807short4 __ovld vload4(size_t offset, const __global short *p);
12808ushort4 __ovld vload4(size_t offset, const __global ushort *p);
12809int4 __ovld vload4(size_t offset, const __global int *p);
12810uint4 __ovld vload4(size_t offset, const __global uint *p);
12811long4 __ovld vload4(size_t offset, const __global long *p);
12812ulong4 __ovld vload4(size_t offset, const __global ulong *p);
12813float4 __ovld vload4(size_t offset, const __global float *p);
12814char8 __ovld vload8(size_t offset, const __global char *p);
12815uchar8 __ovld vload8(size_t offset, const __global uchar *p);
12816short8 __ovld vload8(size_t offset, const __global short *p);
12817ushort8 __ovld vload8(size_t offset, const __global ushort *p);
12818int8 __ovld vload8(size_t offset, const __global int *p);
12819uint8 __ovld vload8(size_t offset, const __global uint *p);
12820long8 __ovld vload8(size_t offset, const __global long *p);
12821ulong8 __ovld vload8(size_t offset, const __global ulong *p);
12822float8 __ovld vload8(size_t offset, const __global float *p);
12823char16 __ovld vload16(size_t offset, const __global char *p);
12824uchar16 __ovld vload16(size_t offset, const __global uchar *p);
12825short16 __ovld vload16(size_t offset, const __global short *p);
12826ushort16 __ovld vload16(size_t offset, const __global ushort *p);
12827int16 __ovld vload16(size_t offset, const __global int *p);
12828uint16 __ovld vload16(size_t offset, const __global uint *p);
12829long16 __ovld vload16(size_t offset, const __global long *p);
12830ulong16 __ovld vload16(size_t offset, const __global ulong *p);
12831float16 __ovld vload16(size_t offset, const __global float *p);
12832char2 __ovld vload2(size_t offset, const __local char *p);
12833uchar2 __ovld vload2(size_t offset, const __local uchar *p);
12834short2 __ovld vload2(size_t offset, const __local short *p);
12835ushort2 __ovld vload2(size_t offset, const __local ushort *p);
12836int2 __ovld vload2(size_t offset, const __local int *p);
12837uint2 __ovld vload2(size_t offset, const __local uint *p);
12838long2 __ovld vload2(size_t offset, const __local long *p);
12839ulong2 __ovld vload2(size_t offset, const __local ulong *p);
12840float2 __ovld vload2(size_t offset, const __local float *p);
12841char3 __ovld vload3(size_t offset, const __local char *p);
12842uchar3 __ovld vload3(size_t offset, const __local uchar *p);
12843short3 __ovld vload3(size_t offset, const __local short *p);
12844ushort3 __ovld vload3(size_t offset, const __local ushort *p);
12845int3 __ovld vload3(size_t offset, const __local int *p);
12846uint3 __ovld vload3(size_t offset, const __local uint *p);
12847long3 __ovld vload3(size_t offset, const __local long *p);
12848ulong3 __ovld vload3(size_t offset, const __local ulong *p);
12849float3 __ovld vload3(size_t offset, const __local float *p);
12850char4 __ovld vload4(size_t offset, const __local char *p);
12851uchar4 __ovld vload4(size_t offset, const __local uchar *p);
12852short4 __ovld vload4(size_t offset, const __local short *p);
12853ushort4 __ovld vload4(size_t offset, const __local ushort *p);
12854int4 __ovld vload4(size_t offset, const __local int *p);
12855uint4 __ovld vload4(size_t offset, const __local uint *p);
12856long4 __ovld vload4(size_t offset, const __local long *p);
12857ulong4 __ovld vload4(size_t offset, const __local ulong *p);
12858float4 __ovld vload4(size_t offset, const __local float *p);
12859char8 __ovld vload8(size_t offset, const __local char *p);
12860uchar8 __ovld vload8(size_t offset, const __local uchar *p);
12861short8 __ovld vload8(size_t offset, const __local short *p);
12862ushort8 __ovld vload8(size_t offset, const __local ushort *p);
12863int8 __ovld vload8(size_t offset, const __local int *p);
12864uint8 __ovld vload8(size_t offset, const __local uint *p);
12865long8 __ovld vload8(size_t offset, const __local long *p);
12866ulong8 __ovld vload8(size_t offset, const __local ulong *p);
12867float8 __ovld vload8(size_t offset, const __local float *p);
12868char16 __ovld vload16(size_t offset, const __local char *p);
12869uchar16 __ovld vload16(size_t offset, const __local uchar *p);
12870short16 __ovld vload16(size_t offset, const __local short *p);
12871ushort16 __ovld vload16(size_t offset, const __local ushort *p);
12872int16 __ovld vload16(size_t offset, const __local int *p);
12873uint16 __ovld vload16(size_t offset, const __local uint *p);
12874long16 __ovld vload16(size_t offset, const __local long *p);
12875ulong16 __ovld vload16(size_t offset, const __local ulong *p);
12876float16 __ovld vload16(size_t offset, const __local float *p);
12877char2 __ovld vload2(size_t offset, const __private char *p);
12878uchar2 __ovld vload2(size_t offset, const __private uchar *p);
12879short2 __ovld vload2(size_t offset, const __private short *p);
12880ushort2 __ovld vload2(size_t offset, const __private ushort *p);
12881int2 __ovld vload2(size_t offset, const __private int *p);
12882uint2 __ovld vload2(size_t offset, const __private uint *p);
12883long2 __ovld vload2(size_t offset, const __private long *p);
12884ulong2 __ovld vload2(size_t offset, const __private ulong *p);
12885float2 __ovld vload2(size_t offset, const __private float *p);
12886char3 __ovld vload3(size_t offset, const __private char *p);
12887uchar3 __ovld vload3(size_t offset, const __private uchar *p);
12888short3 __ovld vload3(size_t offset, const __private short *p);
12889ushort3 __ovld vload3(size_t offset, const __private ushort *p);
12890int3 __ovld vload3(size_t offset, const __private int *p);
12891uint3 __ovld vload3(size_t offset, const __private uint *p);
12892long3 __ovld vload3(size_t offset, const __private long *p);
12893ulong3 __ovld vload3(size_t offset, const __private ulong *p);
12894float3 __ovld vload3(size_t offset, const __private float *p);
12895char4 __ovld vload4(size_t offset, const __private char *p);
12896uchar4 __ovld vload4(size_t offset, const __private uchar *p);
12897short4 __ovld vload4(size_t offset, const __private short *p);
12898ushort4 __ovld vload4(size_t offset, const __private ushort *p);
12899int4 __ovld vload4(size_t offset, const __private int *p);
12900uint4 __ovld vload4(size_t offset, const __private uint *p);
12901long4 __ovld vload4(size_t offset, const __private long *p);
12902ulong4 __ovld vload4(size_t offset, const __private ulong *p);
12903float4 __ovld vload4(size_t offset, const __private float *p);
12904char8 __ovld vload8(size_t offset, const __private char *p);
12905uchar8 __ovld vload8(size_t offset, const __private uchar *p);
12906short8 __ovld vload8(size_t offset, const __private short *p);
12907ushort8 __ovld vload8(size_t offset, const __private ushort *p);
12908int8 __ovld vload8(size_t offset, const __private int *p);
12909uint8 __ovld vload8(size_t offset, const __private uint *p);
12910long8 __ovld vload8(size_t offset, const __private long *p);
12911ulong8 __ovld vload8(size_t offset, const __private ulong *p);
12912float8 __ovld vload8(size_t offset, const __private float *p);
12913char16 __ovld vload16(size_t offset, const __private char *p);
12914uchar16 __ovld vload16(size_t offset, const __private uchar *p);
12915short16 __ovld vload16(size_t offset, const __private short *p);
12916ushort16 __ovld vload16(size_t offset, const __private ushort *p);
12917int16 __ovld vload16(size_t offset, const __private int *p);
12918uint16 __ovld vload16(size_t offset, const __private uint *p);
12919long16 __ovld vload16(size_t offset, const __private long *p);
12920ulong16 __ovld vload16(size_t offset, const __private ulong *p);
12921float16 __ovld vload16(size_t offset, const __private float *p);
12922
12923#ifdef cl_khr_fp64
12924double2 __ovld vload2(size_t offset, const __global double *p);
12925double3 __ovld vload3(size_t offset, const __global double *p);
12926double4 __ovld vload4(size_t offset, const __global double *p);
12927double8 __ovld vload8(size_t offset, const __global double *p);
12928double16 __ovld vload16(size_t offset, const __global double *p);
12929double2 __ovld vload2(size_t offset, const __local double *p);
12930double3 __ovld vload3(size_t offset, const __local double *p);
12931double4 __ovld vload4(size_t offset, const __local double *p);
12932double8 __ovld vload8(size_t offset, const __local double *p);
12933double16 __ovld vload16(size_t offset, const __local double *p);
12934double2 __ovld vload2(size_t offset, const __private double *p);
12935double3 __ovld vload3(size_t offset, const __private double *p);
12936double4 __ovld vload4(size_t offset, const __private double *p);
12937double8 __ovld vload8(size_t offset, const __private double *p);
12938double16 __ovld vload16(size_t offset, const __private double *p);
12939#endif //cl_khr_fp64
12940
12941#ifdef cl_khr_fp16
12942half __ovld vload(size_t offset, const __global half *p);
12943half2 __ovld vload2(size_t offset, const __global half *p);
12944half3 __ovld vload3(size_t offset, const __global half *p);
12945half4 __ovld vload4(size_t offset, const __global half *p);
12946half8 __ovld vload8(size_t offset, const __global half *p);
12947half16 __ovld vload16(size_t offset, const __global half *p);
12948half __ovld vload(size_t offset, const __local half *p);
12949half2 __ovld vload2(size_t offset, const __local half *p);
12950half3 __ovld vload3(size_t offset, const __local half *p);
12951half4 __ovld vload4(size_t offset, const __local half *p);
12952half8 __ovld vload8(size_t offset, const __local half *p);
12953half16 __ovld vload16(size_t offset, const __local half *p);
12954half __ovld vload(size_t offset, const __private half *p);
12955half2 __ovld vload2(size_t offset, const __private half *p);
12956half3 __ovld vload3(size_t offset, const __private half *p);
12957half4 __ovld vload4(size_t offset, const __private half *p);
12958half8 __ovld vload8(size_t offset, const __private half *p);
12959half16 __ovld vload16(size_t offset, const __private half *p);
12960#endif //cl_khr_fp16
12961#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12962
12963#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12964void __ovld vstore2(char2 data, size_t offset, char *p);
12965void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
12966void __ovld vstore2(short2 data, size_t offset, short *p);
12967void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
12968void __ovld vstore2(int2 data, size_t offset, int *p);
12969void __ovld vstore2(uint2 data, size_t offset, uint *p);
12970void __ovld vstore2(long2 data, size_t offset, long *p);
12971void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
12972void __ovld vstore2(float2 data, size_t offset, float *p);
12973void __ovld vstore3(char3 data, size_t offset, char *p);
12974void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
12975void __ovld vstore3(short3 data, size_t offset, short *p);
12976void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
12977void __ovld vstore3(int3 data, size_t offset, int *p);
12978void __ovld vstore3(uint3 data, size_t offset, uint *p);
12979void __ovld vstore3(long3 data, size_t offset, long *p);
12980void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
12981void __ovld vstore3(float3 data, size_t offset, float *p);
12982void __ovld vstore4(char4 data, size_t offset, char *p);
12983void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
12984void __ovld vstore4(short4 data, size_t offset, short *p);
12985void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
12986void __ovld vstore4(int4 data, size_t offset, int *p);
12987void __ovld vstore4(uint4 data, size_t offset, uint *p);
12988void __ovld vstore4(long4 data, size_t offset, long *p);
12989void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
12990void __ovld vstore4(float4 data, size_t offset, float *p);
12991void __ovld vstore8(char8 data, size_t offset, char *p);
12992void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
12993void __ovld vstore8(short8 data, size_t offset, short *p);
12994void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
12995void __ovld vstore8(int8 data, size_t offset, int *p);
12996void __ovld vstore8(uint8 data, size_t offset, uint *p);
12997void __ovld vstore8(long8 data, size_t offset, long *p);
12998void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
12999void __ovld vstore8(float8 data, size_t offset, float *p);
13000void __ovld vstore16(char16 data, size_t offset, char *p);
13001void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
13002void __ovld vstore16(short16 data, size_t offset, short *p);
13003void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
13004void __ovld vstore16(int16 data, size_t offset, int *p);
13005void __ovld vstore16(uint16 data, size_t offset, uint *p);
13006void __ovld vstore16(long16 data, size_t offset, long *p);
13007void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
13008void __ovld vstore16(float16 data, size_t offset, float *p);
13009#ifdef cl_khr_fp64
13010void __ovld vstore2(double2 data, size_t offset, double *p);
13011void __ovld vstore3(double3 data, size_t offset, double *p);
13012void __ovld vstore4(double4 data, size_t offset, double *p);
13013void __ovld vstore8(double8 data, size_t offset, double *p);
13014void __ovld vstore16(double16 data, size_t offset, double *p);
13015#endif //cl_khr_fp64
13016#ifdef cl_khr_fp16
13017void __ovld vstore(half data, size_t offset, half *p);
13018void __ovld vstore2(half2 data, size_t offset, half *p);
13019void __ovld vstore3(half3 data, size_t offset, half *p);
13020void __ovld vstore4(half4 data, size_t offset, half *p);
13021void __ovld vstore8(half8 data, size_t offset, half *p);
13022void __ovld vstore16(half16 data, size_t offset, half *p);
13023#endif //cl_khr_fp16
13024#else
13025void __ovld vstore2(char2 data, size_t offset, __global char *p);
13026void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
13027void __ovld vstore2(short2 data, size_t offset, __global short *p);
13028void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
13029void __ovld vstore2(int2 data, size_t offset, __global int *p);
13030void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
13031void __ovld vstore2(long2 data, size_t offset, __global long *p);
13032void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
13033void __ovld vstore2(float2 data, size_t offset, __global float *p);
13034void __ovld vstore3(char3 data, size_t offset, __global char *p);
13035void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
13036void __ovld vstore3(short3 data, size_t offset, __global short *p);
13037void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
13038void __ovld vstore3(int3 data, size_t offset, __global int *p);
13039void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
13040void __ovld vstore3(long3 data, size_t offset, __global long *p);
13041void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
13042void __ovld vstore3(float3 data, size_t offset, __global float *p);
13043void __ovld vstore4(char4 data, size_t offset, __global char *p);
13044void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
13045void __ovld vstore4(short4 data, size_t offset, __global short *p);
13046void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
13047void __ovld vstore4(int4 data, size_t offset, __global int *p);
13048void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
13049void __ovld vstore4(long4 data, size_t offset, __global long *p);
13050void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
13051void __ovld vstore4(float4 data, size_t offset, __global float *p);
13052void __ovld vstore8(char8 data, size_t offset, __global char *p);
13053void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
13054void __ovld vstore8(short8 data, size_t offset, __global short *p);
13055void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
13056void __ovld vstore8(int8 data, size_t offset, __global int *p);
13057void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
13058void __ovld vstore8(long8 data, size_t offset, __global long *p);
13059void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
13060void __ovld vstore8(float8 data, size_t offset, __global float *p);
13061void __ovld vstore16(char16 data, size_t offset, __global char *p);
13062void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
13063void __ovld vstore16(short16 data, size_t offset, __global short *p);
13064void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
13065void __ovld vstore16(int16 data, size_t offset, __global int *p);
13066void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
13067void __ovld vstore16(long16 data, size_t offset, __global long *p);
13068void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
13069void __ovld vstore16(float16 data, size_t offset, __global float *p);
13070void __ovld vstore2(char2 data, size_t offset, __local char *p);
13071void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
13072void __ovld vstore2(short2 data, size_t offset, __local short *p);
13073void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
13074void __ovld vstore2(int2 data, size_t offset, __local int *p);
13075void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
13076void __ovld vstore2(long2 data, size_t offset, __local long *p);
13077void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
13078void __ovld vstore2(float2 data, size_t offset, __local float *p);
13079void __ovld vstore3(char3 data, size_t offset, __local char *p);
13080void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
13081void __ovld vstore3(short3 data, size_t offset, __local short *p);
13082void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
13083void __ovld vstore3(int3 data, size_t offset, __local int *p);
13084void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
13085void __ovld vstore3(long3 data, size_t offset, __local long *p);
13086void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
13087void __ovld vstore3(float3 data, size_t offset, __local float *p);
13088void __ovld vstore4(char4 data, size_t offset, __local char *p);
13089void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
13090void __ovld vstore4(short4 data, size_t offset, __local short *p);
13091void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
13092void __ovld vstore4(int4 data, size_t offset, __local int *p);
13093void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
13094void __ovld vstore4(long4 data, size_t offset, __local long *p);
13095void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
13096void __ovld vstore4(float4 data, size_t offset, __local float *p);
13097void __ovld vstore8(char8 data, size_t offset, __local char *p);
13098void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
13099void __ovld vstore8(short8 data, size_t offset, __local short *p);
13100void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
13101void __ovld vstore8(int8 data, size_t offset, __local int *p);
13102void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
13103void __ovld vstore8(long8 data, size_t offset, __local long *p);
13104void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
13105void __ovld vstore8(float8 data, size_t offset, __local float *p);
13106void __ovld vstore16(char16 data, size_t offset, __local char *p);
13107void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
13108void __ovld vstore16(short16 data, size_t offset, __local short *p);
13109void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
13110void __ovld vstore16(int16 data, size_t offset, __local int *p);
13111void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
13112void __ovld vstore16(long16 data, size_t offset, __local long *p);
13113void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
13114void __ovld vstore16(float16 data, size_t offset, __local float *p);
13115void __ovld vstore2(char2 data, size_t offset, __private char *p);
13116void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
13117void __ovld vstore2(short2 data, size_t offset, __private short *p);
13118void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
13119void __ovld vstore2(int2 data, size_t offset, __private int *p);
13120void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
13121void __ovld vstore2(long2 data, size_t offset, __private long *p);
13122void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
13123void __ovld vstore2(float2 data, size_t offset, __private float *p);
13124void __ovld vstore3(char3 data, size_t offset, __private char *p);
13125void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
13126void __ovld vstore3(short3 data, size_t offset, __private short *p);
13127void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
13128void __ovld vstore3(int3 data, size_t offset, __private int *p);
13129void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
13130void __ovld vstore3(long3 data, size_t offset, __private long *p);
13131void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
13132void __ovld vstore3(float3 data, size_t offset, __private float *p);
13133void __ovld vstore4(char4 data, size_t offset, __private char *p);
13134void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
13135void __ovld vstore4(short4 data, size_t offset, __private short *p);
13136void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
13137void __ovld vstore4(int4 data, size_t offset, __private int *p);
13138void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
13139void __ovld vstore4(long4 data, size_t offset, __private long *p);
13140void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
13141void __ovld vstore4(float4 data, size_t offset, __private float *p);
13142void __ovld vstore8(char8 data, size_t offset, __private char *p);
13143void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
13144void __ovld vstore8(short8 data, size_t offset, __private short *p);
13145void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
13146void __ovld vstore8(int8 data, size_t offset, __private int *p);
13147void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
13148void __ovld vstore8(long8 data, size_t offset, __private long *p);
13149void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
13150void __ovld vstore8(float8 data, size_t offset, __private float *p);
13151void __ovld vstore16(char16 data, size_t offset, __private char *p);
13152void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
13153void __ovld vstore16(short16 data, size_t offset, __private short *p);
13154void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
13155void __ovld vstore16(int16 data, size_t offset, __private int *p);
13156void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
13157void __ovld vstore16(long16 data, size_t offset, __private long *p);
13158void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
13159void __ovld vstore16(float16 data, size_t offset, __private float *p);
13160#ifdef cl_khr_fp64
13161void __ovld vstore2(double2 data, size_t offset, __global double *p);
13162void __ovld vstore3(double3 data, size_t offset, __global double *p);
13163void __ovld vstore4(double4 data, size_t offset, __global double *p);
13164void __ovld vstore8(double8 data, size_t offset, __global double *p);
13165void __ovld vstore16(double16 data, size_t offset, __global double *p);
13166void __ovld vstore2(double2 data, size_t offset, __local double *p);
13167void __ovld vstore3(double3 data, size_t offset, __local double *p);
13168void __ovld vstore4(double4 data, size_t offset, __local double *p);
13169void __ovld vstore8(double8 data, size_t offset, __local double *p);
13170void __ovld vstore16(double16 data, size_t offset, __local double *p);
13171void __ovld vstore2(double2 data, size_t offset, __private double *p);
13172void __ovld vstore3(double3 data, size_t offset, __private double *p);
13173void __ovld vstore4(double4 data, size_t offset, __private double *p);
13174void __ovld vstore8(double8 data, size_t offset, __private double *p);
13175void __ovld vstore16(double16 data, size_t offset, __private double *p);
13176#endif //cl_khr_fp64
13177#ifdef cl_khr_fp16
13178void __ovld vstore(half data, size_t offset, __global half *p);
13179void __ovld vstore2(half2 data, size_t offset, __global half *p);
13180void __ovld vstore3(half3 data, size_t offset, __global half *p);
13181void __ovld vstore4(half4 data, size_t offset, __global half *p);
13182void __ovld vstore8(half8 data, size_t offset, __global half *p);
13183void __ovld vstore16(half16 data, size_t offset, __global half *p);
13184void __ovld vstore(half data, size_t offset, __local half *p);
13185void __ovld vstore2(half2 data, size_t offset, __local half *p);
13186void __ovld vstore3(half3 data, size_t offset, __local half *p);
13187void __ovld vstore4(half4 data, size_t offset, __local half *p);
13188void __ovld vstore8(half8 data, size_t offset, __local half *p);
13189void __ovld vstore16(half16 data, size_t offset, __local half *p);
13190void __ovld vstore(half data, size_t offset, __private half *p);
13191void __ovld vstore2(half2 data, size_t offset, __private half *p);
13192void __ovld vstore3(half3 data, size_t offset, __private half *p);
13193void __ovld vstore4(half4 data, size_t offset, __private half *p);
13194void __ovld vstore8(half8 data, size_t offset, __private half *p);
13195void __ovld vstore16(half16 data, size_t offset, __private half *p);
13196#endif //cl_khr_fp16
13197#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13198
13199/**
13200 * Read sizeof (half) bytes of data from address
13201 * (p + offset). The data read is interpreted as a
13202 * half value. The half value is converted to a
13203 * float value and the float value is returned.
13204 * The read address computed as (p + offset)
13205 * must be 16-bit aligned.
13206 */
13207float __ovld vload_half(size_t offset, const __constant half *p);
13208#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13209float __ovld vload_half(size_t offset, const half *p);
13210#else
13211float __ovld vload_half(size_t offset, const __global half *p);
13212float __ovld vload_half(size_t offset, const __local half *p);
13213float __ovld vload_half(size_t offset, const __private half *p);
13214#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13215
13216/**
13217 * Read sizeof (halfn) bytes of data from address
13218 * (p + (offset * n)). The data read is interpreted
13219 * as a halfn value. The halfn value read is
13220 * converted to a floatn value and the floatn
13221 * value is returned. The read address computed
13222 * as (p + (offset * n)) must be 16-bit aligned.
13223 */
13224float2 __ovld vload_half2(size_t offset, const __constant half *p);
13225float3 __ovld vload_half3(size_t offset, const __constant half *p);
13226float4 __ovld vload_half4(size_t offset, const __constant half *p);
13227float8 __ovld vload_half8(size_t offset, const __constant half *p);
13228float16 __ovld vload_half16(size_t offset, const __constant half *p);
13229#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13230float2 __ovld vload_half2(size_t offset, const half *p);
13231float3 __ovld vload_half3(size_t offset, const half *p);
13232float4 __ovld vload_half4(size_t offset, const half *p);
13233float8 __ovld vload_half8(size_t offset, const half *p);
13234float16 __ovld vload_half16(size_t offset, const half *p);
13235#else
13236float2 __ovld vload_half2(size_t offset, const __global half *p);
13237float3 __ovld vload_half3(size_t offset, const __global half *p);
13238float4 __ovld vload_half4(size_t offset, const __global half *p);
13239float8 __ovld vload_half8(size_t offset, const __global half *p);
13240float16 __ovld vload_half16(size_t offset, const __global half *p);
13241float2 __ovld vload_half2(size_t offset, const __local half *p);
13242float3 __ovld vload_half3(size_t offset, const __local half *p);
13243float4 __ovld vload_half4(size_t offset, const __local half *p);
13244float8 __ovld vload_half8(size_t offset, const __local half *p);
13245float16 __ovld vload_half16(size_t offset, const __local half *p);
13246float2 __ovld vload_half2(size_t offset, const __private half *p);
13247float3 __ovld vload_half3(size_t offset, const __private half *p);
13248float4 __ovld vload_half4(size_t offset, const __private half *p);
13249float8 __ovld vload_half8(size_t offset, const __private half *p);
13250float16 __ovld vload_half16(size_t offset, const __private half *p);
13251#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13252
13253/**
13254 * The float value given by data is first
13255 * converted to a half value using the appropriate
13256 * rounding mode. The half value is then written
13257 * to address computed as (p + offset). The
13258 * address computed as (p + offset) must be 16-
13259 * bit aligned.
13260 * vstore_half use the current rounding mode.
13261 * The default current rounding mode is round to
13262 * nearest even.
13263 */
13264#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13265void __ovld vstore_half(float data, size_t offset, half *p);
13266void __ovld vstore_half_rte(float data, size_t offset, half *p);
13267void __ovld vstore_half_rtz(float data, size_t offset, half *p);
13268void __ovld vstore_half_rtp(float data, size_t offset, half *p);
13269void __ovld vstore_half_rtn(float data, size_t offset, half *p);
13270#ifdef cl_khr_fp64
13271void __ovld vstore_half(double data, size_t offset, half *p);
13272void __ovld vstore_half_rte(double data, size_t offset, half *p);
13273void __ovld vstore_half_rtz(double data, size_t offset, half *p);
13274void __ovld vstore_half_rtp(double data, size_t offset, half *p);
13275void __ovld vstore_half_rtn(double data, size_t offset, half *p);
13276#endif //cl_khr_fp64
13277#else
13278void __ovld vstore_half(float data, size_t offset, __global half *p);
13279void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
13280void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
13281void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
13282void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
13283void __ovld vstore_half(float data, size_t offset, __local half *p);
13284void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
13285void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
13286void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
13287void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
13288void __ovld vstore_half(float data, size_t offset, __private half *p);
13289void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
13290void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
13291void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
13292void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
13293#ifdef cl_khr_fp64
13294void __ovld vstore_half(double data, size_t offset, __global half *p);
13295void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
13296void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
13297void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
13298void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
13299void __ovld vstore_half(double data, size_t offset, __local half *p);
13300void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
13301void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
13302void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
13303void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
13304void __ovld vstore_half(double data, size_t offset, __private half *p);
13305void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
13306void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
13307void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
13308void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
13309#endif //cl_khr_fp64
13310#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13311
13312/**
13313 * The floatn value given by data is converted to
13314 * a halfn value using the appropriate rounding
13315 * mode. The halfn value is then written to
13316 * address computed as (p + (offset * n)). The
13317 * address computed as (p + (offset * n)) must be
13318 * 16-bit aligned.
13319 * vstore_halfn uses the current rounding mode.
13320 * The default current rounding mode is round to
13321 * nearest even.
13322 */
13323#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13324void __ovld vstore_half2(float2 data, size_t offset, half *p);
13325void __ovld vstore_half3(float3 data, size_t offset, half *p);
13326void __ovld vstore_half4(float4 data, size_t offset, half *p);
13327void __ovld vstore_half8(float8 data, size_t offset, half *p);
13328void __ovld vstore_half16(float16 data, size_t offset, half *p);
13329void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
13330void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
13331void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
13332void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
13333void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
13334void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
13335void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
13336void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
13337void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
13338void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
13339void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
13340void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
13341void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
13342void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
13343void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
13344void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
13345void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
13346void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
13347void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
13348void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
13349#ifdef cl_khr_fp64
13350void __ovld vstore_half2(double2 data, size_t offset, half *p);
13351void __ovld vstore_half3(double3 data, size_t offset, half *p);
13352void __ovld vstore_half4(double4 data, size_t offset, half *p);
13353void __ovld vstore_half8(double8 data, size_t offset, half *p);
13354void __ovld vstore_half16(double16 data, size_t offset, half *p);
13355void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
13356void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
13357void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
13358void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
13359void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
13360void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
13361void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
13362void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
13363void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
13364void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
13365void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
13366void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
13367void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
13368void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
13369void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
13370void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
13371void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
13372void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
13373void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
13374void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
13375#endif //cl_khr_fp64
13376#else
13377void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
13378void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
13379void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
13380void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
13381void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
13382void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
13383void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
13384void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
13385void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
13386void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
13387void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
13388void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
13389void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
13390void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
13391void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
13392void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
13393void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
13394void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
13395void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
13396void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
13397void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
13398void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
13399void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
13400void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
13401void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
13402void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
13403void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
13404void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
13405void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
13406void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
13407void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
13408void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
13409void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
13410void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
13411void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
13412void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
13413void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
13414void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
13415void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
13416void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
13417void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
13418void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
13419void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
13420void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
13421void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
13422void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
13423void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
13424void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
13425void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
13426void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
13427void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
13428void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
13429void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
13430void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
13431void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
13432void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
13433void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
13434void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
13435void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
13436void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
13437void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
13438void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
13439void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
13440void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
13441void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
13442void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
13443void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
13444void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
13445void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
13446void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
13447void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
13448void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
13449void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
13450void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
13451void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
13452#ifdef cl_khr_fp64
13453void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
13454void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
13455void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
13456void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
13457void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
13458void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
13459void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
13460void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
13461void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
13462void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
13463void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
13464void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
13465void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
13466void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
13467void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
13468void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
13469void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
13470void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
13471void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
13472void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
13473void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
13474void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
13475void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
13476void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
13477void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
13478void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
13479void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
13480void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
13481void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
13482void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
13483void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
13484void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
13485void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
13486void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
13487void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
13488void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
13489void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
13490void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
13491void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
13492void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
13493void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
13494void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
13495void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
13496void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
13497void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
13498void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
13499void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
13500void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
13501void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
13502void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
13503void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
13504void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
13505void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
13506void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
13507void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
13508void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
13509void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
13510void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
13511void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
13512void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
13513void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
13514void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
13515void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
13516void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
13517void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
13518void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
13519void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
13520void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
13521void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
13522void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
13523void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
13524void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
13525void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
13526void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
13527void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
13528#endif //cl_khr_fp64
13529#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13530
13531/**
13532 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
13533 * bytes of data from address (p + (offset * n)).
13534 * The data read is interpreted as a halfn value.
13535 * The halfn value read is converted to a floatn
13536 * value and the floatn value is returned.
13537 * The address computed as (p + (offset * n))
13538 * must be aligned to sizeof (halfn) bytes.
13539 * For n = 3, vloada_half3 reads a half3 from
13540 * address (p + (offset * 4)) and returns a float3.
13541 * The address computed as (p + (offset * 4))
13542 * must be aligned to sizeof (half) * 4 bytes.
13543 */
13544float __ovld vloada_half(size_t offset, const __constant half *p);
13545float2 __ovld vloada_half2(size_t offset, const __constant half *p);
13546float3 __ovld vloada_half3(size_t offset, const __constant half *p);
13547float4 __ovld vloada_half4(size_t offset, const __constant half *p);
13548float8 __ovld vloada_half8(size_t offset, const __constant half *p);
13549float16 __ovld vloada_half16(size_t offset, const __constant half *p);
13550#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13551float __ovld vloada_half(size_t offset, const half *p);
13552float2 __ovld vloada_half2(size_t offset, const half *p);
13553float3 __ovld vloada_half3(size_t offset, const half *p);
13554float4 __ovld vloada_half4(size_t offset, const half *p);
13555float8 __ovld vloada_half8(size_t offset, const half *p);
13556float16 __ovld vloada_half16(size_t offset, const half *p);
13557#else
13558float __ovld vloada_half(size_t offset, const __global half *p);
13559float2 __ovld vloada_half2(size_t offset, const __global half *p);
13560float3 __ovld vloada_half3(size_t offset, const __global half *p);
13561float4 __ovld vloada_half4(size_t offset, const __global half *p);
13562float8 __ovld vloada_half8(size_t offset, const __global half *p);
13563float16 __ovld vloada_half16(size_t offset, const __global half *p);
13564float __ovld vloada_half(size_t offset, const __local half *p);
13565float2 __ovld vloada_half2(size_t offset, const __local half *p);
13566float3 __ovld vloada_half3(size_t offset, const __local half *p);
13567float4 __ovld vloada_half4(size_t offset, const __local half *p);
13568float8 __ovld vloada_half8(size_t offset, const __local half *p);
13569float16 __ovld vloada_half16(size_t offset, const __local half *p);
13570float __ovld vloada_half(size_t offset, const __private half *p);
13571float2 __ovld vloada_half2(size_t offset, const __private half *p);
13572float3 __ovld vloada_half3(size_t offset, const __private half *p);
13573float4 __ovld vloada_half4(size_t offset, const __private half *p);
13574float8 __ovld vloada_half8(size_t offset, const __private half *p);
13575float16 __ovld vloada_half16(size_t offset, const __private half *p);
13576#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13577
13578/**
13579 * The floatn value given by data is converted to
13580 * a halfn value using the appropriate rounding
13581 * mode.
13582 * For n = 1, 2, 4, 8 and 16, the halfn value is
13583 * written to the address computed as (p + (offset
13584 * * n)). The address computed as (p + (offset *
13585 * n)) must be aligned to sizeof (halfn) bytes.
13586 * For n = 3, the half3 value is written to the
13587 * address computed as (p + (offset * 4)). The
13588 * address computed as (p + (offset * 4)) must be
13589 * aligned to sizeof (half) * 4 bytes.
13590 * vstorea_halfn uses the current rounding
13591 * mode. The default current rounding mode is
13592 * round to nearest even.
13593 */
13594#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13595void __ovld vstorea_half(float data, size_t offset, half *p);
13596void __ovld vstorea_half2(float2 data, size_t offset, half *p);
13597void __ovld vstorea_half3(float3 data, size_t offset, half *p);
13598void __ovld vstorea_half4(float4 data, size_t offset, half *p);
13599void __ovld vstorea_half8(float8 data, size_t offset, half *p);
13600void __ovld vstorea_half16(float16 data, size_t offset, half *p);
13601
13602void __ovld vstorea_half_rte(float data, size_t offset, half *p);
13603void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
13604void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
13605void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
13606void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
13607void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
13608
13609void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
13610void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
13611void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
13612void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
13613void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
13614void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
13615
13616void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
13617void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
13618void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
13619void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
13620void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
13621void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
13622
13623void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
13624void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
13625void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
13626void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
13627void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
13628void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
13629
13630#ifdef cl_khr_fp64
13631void __ovld vstorea_half(double data, size_t offset, half *p);
13632void __ovld vstorea_half2(double2 data, size_t offset, half *p);
13633void __ovld vstorea_half3(double3 data, size_t offset, half *p);
13634void __ovld vstorea_half4(double4 data, size_t offset, half *p);
13635void __ovld vstorea_half8(double8 data, size_t offset, half *p);
13636void __ovld vstorea_half16(double16 data, size_t offset, half *p);
13637
13638void __ovld vstorea_half_rte(double data, size_t offset, half *p);
13639void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
13640void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
13641void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
13642void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
13643void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
13644
13645void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
13646void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
13647void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
13648void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
13649void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
13650void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
13651
13652void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
13653void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
13654void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
13655void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
13656void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
13657void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
13658
13659void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
13660void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
13661void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
13662void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
13663void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
13664void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
13665#endif //cl_khr_fp64
13666
13667#else
13668void __ovld vstorea_half(float data, size_t offset, __global half *p);
13669void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
13670void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
13671void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
13672void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
13673void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
13674
13675void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
13676void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
13677void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
13678void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
13679void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
13680void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
13681
13682void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
13683void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
13684void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
13685void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
13686void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
13687void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
13688
13689void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
13690void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
13691void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
13692void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
13693void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
13694void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
13695
13696void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
13697void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
13698void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
13699void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
13700void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
13701void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
13702
13703void __ovld vstorea_half(float data, size_t offset, __local half *p);
13704void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
13705void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
13706void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
13707void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
13708void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
13709
13710void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
13711void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
13712void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
13713void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
13714void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
13715void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
13716
13717void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
13718void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
13719void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
13720void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
13721void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
13722void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
13723
13724void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
13725void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
13726void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
13727void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
13728void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
13729void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
13730
13731void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
13732void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
13733void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
13734void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
13735void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
13736void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
13737
13738void __ovld vstorea_half(float data, size_t offset, __private half *p);
13739void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
13740void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
13741void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
13742void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
13743void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
13744
13745void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
13746void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
13747void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
13748void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
13749void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
13750void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
13751
13752void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
13753void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
13754void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
13755void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
13756void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
13757void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
13758
13759void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
13760void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
13761void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
13762void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
13763void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
13764void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
13765
13766void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
13767void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
13768void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
13769void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
13770void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
13771void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
13772
13773#ifdef cl_khr_fp64
13774void __ovld vstorea_half(double data, size_t offset, __global half *p);
13775void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
13776void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
13777void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
13778void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
13779void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
13780
13781void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
13782void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
13783void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
13784void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
13785void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
13786void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
13787
13788void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
13789void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
13790void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
13791void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
13792void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
13793void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
13794
13795void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
13796void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
13797void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
13798void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
13799void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
13800void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
13801
13802void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
13803void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
13804void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
13805void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
13806void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
13807void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
13808
13809void __ovld vstorea_half(double data, size_t offset, __local half *p);
13810void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
13811void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
13812void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
13813void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
13814void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
13815
13816void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
13817void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
13818void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
13819void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
13820void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
13821void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
13822
13823void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
13824void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
13825void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
13826void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
13827void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
13828void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
13829
13830void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
13831void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
13832void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
13833void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
13834void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
13835void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
13836
13837void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
13838void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
13839void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
13840void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
13841void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
13842void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
13843
13844void __ovld vstorea_half(double data, size_t offset, __private half *p);
13845void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
13846void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
13847void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
13848void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
13849void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
13850
13851void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
13852void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
13853void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
13854void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
13855void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
13856void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
13857
13858void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
13859void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
13860void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
13861void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
13862void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
13863void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
13864
13865void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
13866void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
13867void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
13868void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
13869void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
13870void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
13871
13872void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
13873void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
13874void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
13875void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
13876void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
13877void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
13878#endif //cl_khr_fp64
13879#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13880
13881// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
13882
13883// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence
13884typedef uint cl_mem_fence_flags;
13885
13886/**
13887 * Queue a memory fence to ensure correct
13888 * ordering of memory operations to local memory
13889 */
13890#define CLK_LOCAL_MEM_FENCE    0x01
13891
13892/**
13893 * Queue a memory fence to ensure correct
13894 * ordering of memory operations to global memory
13895 */
13896#define CLK_GLOBAL_MEM_FENCE   0x02
13897
13898#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13899/**
13900 * Queue a memory fence to ensure correct ordering of memory
13901 * operations between work-items of a work-group to
13902 * image memory.
13903 */
13904#define CLK_IMAGE_MEM_FENCE  0x04
13905#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13906
13907/**
13908 * All work-items in a work-group executing the kernel
13909 * on a processor must execute this function before any
13910 * are allowed to continue execution beyond the barrier.
13911 * This function must be encountered by all work-items in
13912 * a work-group executing the kernel.
13913 * If barrier is inside a conditional statement, then all
13914 * work-items must enter the conditional if any work-item
13915 * enters the conditional statement and executes the
13916 * barrier.
13917 * If barrer is inside a loop, all work-items must execute
13918 * the barrier for each iteration of the loop before any are
13919 * allowed to continue execution beyond the barrier.
13920 * The barrier function also queues a memory fence
13921 * (reads and writes) to ensure correct ordering of
13922 * memory operations to local or global memory.
13923 * The flags argument specifies the memory address space
13924 * and can be set to a combination of the following literal
13925 * values.
13926 * CLK_LOCAL_MEM_FENCE - The barrier function
13927 * will either flush any variables stored in local memory
13928 * or queue a memory fence to ensure correct ordering of
13929 * memory operations to local memory.
13930 * CLK_GLOBAL_MEM_FENCE - The barrier function
13931 * will queue a memory fence to ensure correct ordering
13932 * of memory operations to global memory. This can be
13933 * useful when work-items, for example, write to buffer or
13934 * image objects and then want to read the updated data.
13935 */
13936
13937void __ovld barrier(cl_mem_fence_flags flags);
13938
13939#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13940
13941typedef enum memory_scope
13942{
13943  memory_scope_work_item,
13944  memory_scope_work_group,
13945  memory_scope_device,
13946  memory_scope_all_svm_devices,
13947  memory_scope_sub_group
13948} memory_scope;
13949
13950void __ovld work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
13951void __ovld work_group_barrier(cl_mem_fence_flags flags);
13952#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13953
13954// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
13955
13956/**
13957 * Orders loads and stores of a work-item
13958 * executing a kernel. This means that loads
13959 * and stores preceding the mem_fence will
13960 * be committed to memory before any loads
13961 * and stores following the mem_fence.
13962 * The flags argument specifies the memory
13963 * address space and can be set to a
13964 * combination of the following literal
13965 * values:
13966 * CLK_LOCAL_MEM_FENCE
13967 * CLK_GLOBAL_MEM_FENCE.
13968 */
13969void __ovld mem_fence(cl_mem_fence_flags flags);
13970
13971/**
13972 * Read memory barrier that orders only
13973 * loads.
13974 * The flags argument specifies the memory
13975 * address space and can be set to to a
13976 * combination of the following literal
13977 * values:
13978 * CLK_LOCAL_MEM_FENCE
13979 * CLK_GLOBAL_MEM_FENCE.
13980 */
13981void __ovld read_mem_fence(cl_mem_fence_flags flags);
13982
13983/**
13984 * Write memory barrier that orders only
13985 * stores.
13986 * The flags argument specifies the memory
13987 * address space and can be set to to a
13988 * combination of the following literal
13989 * values:
13990 * CLK_LOCAL_MEM_FENCE
13991 * CLK_GLOBAL_MEM_FENCE.
13992 */
13993void __ovld write_mem_fence(cl_mem_fence_flags flags);
13994
13995// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
13996
13997#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13998cl_mem_fence_flags __ovld get_fence(const void *ptr);
13999cl_mem_fence_flags __ovld get_fence(void *ptr);
14000
14001/**
14002 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
14003 * and checked in Sema since they should be declared as
14004 *   addr gentype* to_addr (gentype*);
14005 * where gentype is builtin type or user defined type.
14006 */
14007
14008#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14009
14010// OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch
14011
14012/**
14013 * event_t async_work_group_copy (
14014 * __global gentype *dst,
14015 * const __local gentype *src,
14016 * size_t num_elements,
14017 * event_t event)
14018 * Perform an async copy of num_elements
14019 * gentype elements from src to dst. The async
14020 * copy is performed by all work-items in a workgroup
14021 * and this built-in function must therefore
14022 * be encountered by all work-items in a workgroup
14023 * executing the kernel with the same
14024 * argument values; otherwise the results are
14025 * undefined.
14026 * Returns an event object that can be used by
14027 * wait_group_events to wait for the async copy
14028 * to finish. The event argument can also be used
14029 * to associate the async_work_group_copy with
14030 * a previous async copy allowing an event to be
14031 * shared by multiple async copies; otherwise event
14032 * should be zero.
14033 * If event argument is non-zero, the event object
14034 * supplied in event argument will be returned.
14035 * This function does not perform any implicit
14036 * synchronization of source data such as using a
14037 * barrier before performing the copy.
14038 */
14039event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
14040event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
14041event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
14042event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
14043event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
14044event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
14045event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
14046event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
14047event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
14048event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
14049event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
14050event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
14051event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
14052event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
14053event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
14054event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
14055event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
14056event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
14057event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
14058event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
14059event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
14060event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
14061event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
14062event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
14063event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
14064event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
14065event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
14066event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
14067event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
14068event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
14069event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
14070event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
14071event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
14072event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
14073event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
14074event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
14075event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
14076event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
14077event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
14078event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
14079event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
14080event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
14081event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
14082event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
14083event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
14084event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
14085event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
14086event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
14087event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
14088event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
14089event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
14090event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
14091event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
14092event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
14093event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
14094event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
14095event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
14096event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
14097event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
14098event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
14099event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
14100event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
14101event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
14102event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
14103event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
14104event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
14105event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
14106event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
14107event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
14108event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
14109event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
14110event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
14111event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
14112event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
14113event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
14114event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
14115event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
14116event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
14117event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
14118event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
14119event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
14120event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
14121event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
14122event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
14123event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
14124event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
14125event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
14126event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
14127event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
14128event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
14129event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
14130event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
14131event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
14132event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
14133event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
14134event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
14135event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
14136event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
14137event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
14138event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
14139event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
14140event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
14141event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
14142event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
14143event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
14144event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
14145event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
14146event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
14147#ifdef cl_khr_fp64
14148event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
14149event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
14150event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
14151event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
14152event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
14153event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
14154event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
14155event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
14156event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
14157event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
14158event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
14159event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
14160#endif //cl_khr_fp64
14161#ifdef cl_khr_fp16
14162event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
14163event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
14164event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
14165event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
14166event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
14167event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
14168event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
14169event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
14170event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
14171event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
14172event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
14173event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
14174#endif //cl_khr_fp16
14175
14176/**
14177 * Perform an async gather of num_elements
14178 * gentype elements from src to dst. The
14179 * src_stride is the stride in elements for each
14180 * gentype element read from src. The dst_stride
14181 * is the stride in elements for each gentype
14182 * element written to dst. The async gather is
14183 * performed by all work-items in a work-group.
14184 * This built-in function must therefore be
14185 * encountered by all work-items in a work-group
14186 * executing the kernel with the same argument
14187 * values; otherwise the results are undefined.
14188 * Returns an event object that can be used by
14189 * wait_group_events to wait for the async copy
14190 * to finish. The event argument can also be used
14191 * to associate the
14192 * async_work_group_strided_copy with a
14193 * previous async copy allowing an event to be
14194 * shared by multiple async copies; otherwise event
14195 * should be zero.
14196 * If event argument is non-zero, the event object
14197 * supplied in event argument will be returned.
14198 * This function does not perform any implicit
14199 * synchronization of source data such as using a
14200 * barrier before performing the copy.
14201 */
14202event_t __ovld async_work_group_strided_copy(__local char *dst, const __global char *src, size_t num_elements, size_t src_stride, event_t event);
14203event_t __ovld async_work_group_strided_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, size_t src_stride, event_t event);
14204event_t __ovld async_work_group_strided_copy(__local short *dst, const __global short *src, size_t num_elements, size_t src_stride, event_t event);
14205event_t __ovld async_work_group_strided_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, size_t src_stride, event_t event);
14206event_t __ovld async_work_group_strided_copy(__local int *dst, const __global int *src, size_t num_elements, size_t src_stride, event_t event);
14207event_t __ovld async_work_group_strided_copy(__local uint *dst, const __global uint *src, size_t num_elements, size_t src_stride, event_t event);
14208event_t __ovld async_work_group_strided_copy(__local long *dst, const __global long *src, size_t num_elements, size_t src_stride, event_t event);
14209event_t __ovld async_work_group_strided_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, size_t src_stride, event_t event);
14210event_t __ovld async_work_group_strided_copy(__local float *dst, const __global float *src, size_t num_elements, size_t src_stride, event_t event);
14211event_t __ovld async_work_group_strided_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, size_t src_stride, event_t event);
14212event_t __ovld async_work_group_strided_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, size_t src_stride, event_t event);
14213event_t __ovld async_work_group_strided_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, size_t src_stride, event_t event);
14214event_t __ovld async_work_group_strided_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, size_t src_stride, event_t event);
14215event_t __ovld async_work_group_strided_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, size_t src_stride, event_t event);
14216event_t __ovld async_work_group_strided_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, size_t src_stride, event_t event);
14217event_t __ovld async_work_group_strided_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, size_t src_stride, event_t event);
14218event_t __ovld async_work_group_strided_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, size_t src_stride, event_t event);
14219event_t __ovld async_work_group_strided_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, size_t src_stride, event_t event);
14220event_t __ovld async_work_group_strided_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, size_t src_stride, event_t event);
14221event_t __ovld async_work_group_strided_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, size_t src_stride, event_t event);
14222event_t __ovld async_work_group_strided_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, size_t src_stride, event_t event);
14223event_t __ovld async_work_group_strided_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, size_t src_stride, event_t event);
14224event_t __ovld async_work_group_strided_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, size_t src_stride, event_t event);
14225event_t __ovld async_work_group_strided_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, size_t src_stride, event_t event);
14226event_t __ovld async_work_group_strided_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, size_t src_stride, event_t event);
14227event_t __ovld async_work_group_strided_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, size_t src_stride, event_t event);
14228event_t __ovld async_work_group_strided_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, size_t src_stride, event_t event);
14229event_t __ovld async_work_group_strided_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, size_t src_stride, event_t event);
14230event_t __ovld async_work_group_strided_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, size_t src_stride, event_t event);
14231event_t __ovld async_work_group_strided_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, size_t src_stride, event_t event);
14232event_t __ovld async_work_group_strided_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, size_t src_stride, event_t event);
14233event_t __ovld async_work_group_strided_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, size_t src_stride, event_t event);
14234event_t __ovld async_work_group_strided_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, size_t src_stride, event_t event);
14235event_t __ovld async_work_group_strided_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, size_t src_stride, event_t event);
14236event_t __ovld async_work_group_strided_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, size_t src_stride, event_t event);
14237event_t __ovld async_work_group_strided_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, size_t src_stride, event_t event);
14238event_t __ovld async_work_group_strided_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, size_t src_stride, event_t event);
14239event_t __ovld async_work_group_strided_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, size_t src_stride, event_t event);
14240event_t __ovld async_work_group_strided_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, size_t src_stride, event_t event);
14241event_t __ovld async_work_group_strided_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, size_t src_stride, event_t event);
14242event_t __ovld async_work_group_strided_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, size_t src_stride, event_t event);
14243event_t __ovld async_work_group_strided_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, size_t src_stride, event_t event);
14244event_t __ovld async_work_group_strided_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, size_t src_stride, event_t event);
14245event_t __ovld async_work_group_strided_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, size_t src_stride, event_t event);
14246event_t __ovld async_work_group_strided_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, size_t src_stride, event_t event);
14247event_t __ovld async_work_group_strided_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, size_t src_stride, event_t event);
14248event_t __ovld async_work_group_strided_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, size_t src_stride, event_t event);
14249event_t __ovld async_work_group_strided_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, size_t src_stride, event_t event);
14250event_t __ovld async_work_group_strided_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, size_t src_stride, event_t event);
14251event_t __ovld async_work_group_strided_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, size_t src_stride, event_t event);
14252event_t __ovld async_work_group_strided_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, size_t src_stride, event_t event);
14253event_t __ovld async_work_group_strided_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, size_t src_stride, event_t event);
14254event_t __ovld async_work_group_strided_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, size_t src_stride, event_t event);
14255event_t __ovld async_work_group_strided_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, size_t src_stride, event_t event);
14256event_t __ovld async_work_group_strided_copy(__global char *dst, const __local char *src, size_t num_elements, size_t dst_stride, event_t event);
14257event_t __ovld async_work_group_strided_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, size_t dst_stride, event_t event);
14258event_t __ovld async_work_group_strided_copy(__global short *dst, const __local short *src, size_t num_elements, size_t dst_stride, event_t event);
14259event_t __ovld async_work_group_strided_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, size_t dst_stride, event_t event);
14260event_t __ovld async_work_group_strided_copy(__global int *dst, const __local int *src, size_t num_elements, size_t dst_stride, event_t event);
14261event_t __ovld async_work_group_strided_copy(__global uint *dst, const __local uint *src, size_t num_elements, size_t dst_stride, event_t event);
14262event_t __ovld async_work_group_strided_copy(__global long *dst, const __local long *src, size_t num_elements, size_t dst_stride, event_t event);
14263event_t __ovld async_work_group_strided_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, size_t dst_stride, event_t event);
14264event_t __ovld async_work_group_strided_copy(__global float *dst, const __local float *src, size_t num_elements, size_t dst_stride, event_t event);
14265event_t __ovld async_work_group_strided_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, size_t dst_stride, event_t event);
14266event_t __ovld async_work_group_strided_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, size_t dst_stride, event_t event);
14267event_t __ovld async_work_group_strided_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, size_t dst_stride, event_t event);
14268event_t __ovld async_work_group_strided_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, size_t dst_stride, event_t event);
14269event_t __ovld async_work_group_strided_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, size_t dst_stride, event_t event);
14270event_t __ovld async_work_group_strided_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, size_t dst_stride, event_t event);
14271event_t __ovld async_work_group_strided_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, size_t dst_stride, event_t event);
14272event_t __ovld async_work_group_strided_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, size_t dst_stride, event_t event);
14273event_t __ovld async_work_group_strided_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, size_t dst_stride, event_t event);
14274event_t __ovld async_work_group_strided_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, size_t dst_stride, event_t event);
14275event_t __ovld async_work_group_strided_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, size_t dst_stride, event_t event);
14276event_t __ovld async_work_group_strided_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, size_t dst_stride, event_t event);
14277event_t __ovld async_work_group_strided_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, size_t dst_stride, event_t event);
14278event_t __ovld async_work_group_strided_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, size_t dst_stride, event_t event);
14279event_t __ovld async_work_group_strided_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, size_t dst_stride, event_t event);
14280event_t __ovld async_work_group_strided_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, size_t dst_stride, event_t event);
14281event_t __ovld async_work_group_strided_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, size_t dst_stride, event_t event);
14282event_t __ovld async_work_group_strided_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, size_t dst_stride, event_t event);
14283event_t __ovld async_work_group_strided_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, size_t dst_stride, event_t event);
14284event_t __ovld async_work_group_strided_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, size_t dst_stride, event_t event);
14285event_t __ovld async_work_group_strided_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, size_t dst_stride, event_t event);
14286event_t __ovld async_work_group_strided_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, size_t dst_stride, event_t event);
14287event_t __ovld async_work_group_strided_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, size_t dst_stride, event_t event);
14288event_t __ovld async_work_group_strided_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, size_t dst_stride, event_t event);
14289event_t __ovld async_work_group_strided_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, size_t dst_stride, event_t event);
14290event_t __ovld async_work_group_strided_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, size_t dst_stride, event_t event);
14291event_t __ovld async_work_group_strided_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, size_t dst_stride, event_t event);
14292event_t __ovld async_work_group_strided_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, size_t dst_stride, event_t event);
14293event_t __ovld async_work_group_strided_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, size_t dst_stride, event_t event);
14294event_t __ovld async_work_group_strided_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, size_t dst_stride, event_t event);
14295event_t __ovld async_work_group_strided_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, size_t dst_stride, event_t event);
14296event_t __ovld async_work_group_strided_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, size_t dst_stride, event_t event);
14297event_t __ovld async_work_group_strided_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, size_t dst_stride, event_t event);
14298event_t __ovld async_work_group_strided_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, size_t dst_stride, event_t event);
14299event_t __ovld async_work_group_strided_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, size_t dst_stride, event_t event);
14300event_t __ovld async_work_group_strided_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, size_t dst_stride, event_t event);
14301event_t __ovld async_work_group_strided_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, size_t dst_stride, event_t event);
14302event_t __ovld async_work_group_strided_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, size_t dst_stride, event_t event);
14303event_t __ovld async_work_group_strided_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, size_t dst_stride, event_t event);
14304event_t __ovld async_work_group_strided_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, size_t dst_stride, event_t event);
14305event_t __ovld async_work_group_strided_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, size_t dst_stride, event_t event);
14306event_t __ovld async_work_group_strided_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, size_t dst_stride, event_t event);
14307event_t __ovld async_work_group_strided_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, size_t dst_stride, event_t event);
14308event_t __ovld async_work_group_strided_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, size_t dst_stride, event_t event);
14309event_t __ovld async_work_group_strided_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, size_t dst_stride, event_t event);
14310#ifdef cl_khr_fp64
14311event_t __ovld async_work_group_strided_copy(__local double *dst, const __global double *src, size_t num_elements, size_t src_stride, event_t event);
14312event_t __ovld async_work_group_strided_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, size_t src_stride, event_t event);
14313event_t __ovld async_work_group_strided_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, size_t src_stride, event_t event);
14314event_t __ovld async_work_group_strided_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, size_t src_stride, event_t event);
14315event_t __ovld async_work_group_strided_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, size_t src_stride, event_t event);
14316event_t __ovld async_work_group_strided_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, size_t src_stride, event_t event);
14317event_t __ovld async_work_group_strided_copy(__global double *dst, const __local double *src, size_t num_elements, size_t dst_stride, event_t event);
14318event_t __ovld async_work_group_strided_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, size_t dst_stride, event_t event);
14319event_t __ovld async_work_group_strided_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, size_t dst_stride, event_t event);
14320event_t __ovld async_work_group_strided_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, size_t dst_stride, event_t event);
14321event_t __ovld async_work_group_strided_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, size_t dst_stride, event_t event);
14322event_t __ovld async_work_group_strided_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, size_t dst_stride, event_t event);
14323#endif //cl_khr_fp64
14324#ifdef cl_khr_fp16
14325event_t __ovld async_work_group_strided_copy(__local half *dst, const __global half *src, size_t num_elements, size_t src_stride, event_t event);
14326event_t __ovld async_work_group_strided_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, size_t src_stride, event_t event);
14327event_t __ovld async_work_group_strided_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, size_t src_stride, event_t event);
14328event_t __ovld async_work_group_strided_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, size_t src_stride, event_t event);
14329event_t __ovld async_work_group_strided_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, size_t src_stride, event_t event);
14330event_t __ovld async_work_group_strided_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, size_t src_stride, event_t event);
14331event_t __ovld async_work_group_strided_copy(__global half *dst, const __local half *src, size_t num_elements, size_t dst_stride, event_t event);
14332event_t __ovld async_work_group_strided_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, size_t dst_stride, event_t event);
14333event_t __ovld async_work_group_strided_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, size_t dst_stride, event_t event);
14334event_t __ovld async_work_group_strided_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, size_t dst_stride, event_t event);
14335event_t __ovld async_work_group_strided_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, size_t dst_stride, event_t event);
14336event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, size_t dst_stride, event_t event);
14337#endif //cl_khr_fp16
14338
14339/**
14340 * Wait for events that identify the
14341 * async_work_group_copy operations to
14342 * complete. The event objects specified in
14343 * event_list will be released after the wait is
14344 * performed.
14345 * This function must be encountered by all workitems
14346 * in a work-group executing the kernel with
14347 * the same num_events and event objects specified
14348 * in event_list; otherwise the results are undefined.
14349 */
14350void __ovld wait_group_events(int num_events, event_t *event_list);
14351
14352/**
14353 * Prefetch num_elements * sizeof(gentype)
14354 * bytes into the global cache. The prefetch
14355 * instruction is applied to a work-item in a workgroup
14356 * and does not affect the functional
14357 * behavior of the kernel.
14358 */
14359void __ovld prefetch(const __global char *p, size_t num_elements);
14360void __ovld prefetch(const __global uchar *p, size_t num_elements);
14361void __ovld prefetch(const __global short *p, size_t num_elements);
14362void __ovld prefetch(const __global ushort *p, size_t num_elements);
14363void __ovld prefetch(const __global int *p, size_t num_elements);
14364void __ovld prefetch(const __global uint *p, size_t num_elements);
14365void __ovld prefetch(const __global long *p, size_t num_elements);
14366void __ovld prefetch(const __global ulong *p, size_t num_elements);
14367void __ovld prefetch(const __global float *p, size_t num_elements);
14368void __ovld prefetch(const __global char2 *p, size_t num_elements);
14369void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
14370void __ovld prefetch(const __global short2 *p, size_t num_elements);
14371void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
14372void __ovld prefetch(const __global int2 *p, size_t num_elements);
14373void __ovld prefetch(const __global uint2 *p, size_t num_elements);
14374void __ovld prefetch(const __global long2 *p, size_t num_elements);
14375void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
14376void __ovld prefetch(const __global float2 *p, size_t num_elements);
14377void __ovld prefetch(const __global char3 *p, size_t num_elements);
14378void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
14379void __ovld prefetch(const __global short3 *p, size_t num_elements);
14380void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
14381void __ovld prefetch(const __global int3 *p, size_t num_elements);
14382void __ovld prefetch(const __global uint3 *p, size_t num_elements);
14383void __ovld prefetch(const __global long3 *p, size_t num_elements);
14384void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
14385void __ovld prefetch(const __global float3 *p, size_t num_elements);
14386void __ovld prefetch(const __global char4 *p, size_t num_elements);
14387void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
14388void __ovld prefetch(const __global short4 *p, size_t num_elements);
14389void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
14390void __ovld prefetch(const __global int4 *p, size_t num_elements);
14391void __ovld prefetch(const __global uint4 *p, size_t num_elements);
14392void __ovld prefetch(const __global long4 *p, size_t num_elements);
14393void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
14394void __ovld prefetch(const __global float4 *p, size_t num_elements);
14395void __ovld prefetch(const __global char8 *p, size_t num_elements);
14396void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
14397void __ovld prefetch(const __global short8 *p, size_t num_elements);
14398void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
14399void __ovld prefetch(const __global int8 *p, size_t num_elements);
14400void __ovld prefetch(const __global uint8 *p, size_t num_elements);
14401void __ovld prefetch(const __global long8 *p, size_t num_elements);
14402void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
14403void __ovld prefetch(const __global float8 *p, size_t num_elements);
14404void __ovld prefetch(const __global char16 *p, size_t num_elements);
14405void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
14406void __ovld prefetch(const __global short16 *p, size_t num_elements);
14407void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
14408void __ovld prefetch(const __global int16 *p, size_t num_elements);
14409void __ovld prefetch(const __global uint16 *p, size_t num_elements);
14410void __ovld prefetch(const __global long16 *p, size_t num_elements);
14411void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
14412void __ovld prefetch(const __global float16 *p, size_t num_elements);
14413#ifdef cl_khr_fp64
14414void __ovld prefetch(const __global double *p, size_t num_elements);
14415void __ovld prefetch(const __global double2 *p, size_t num_elements);
14416void __ovld prefetch(const __global double3 *p, size_t num_elements);
14417void __ovld prefetch(const __global double4 *p, size_t num_elements);
14418void __ovld prefetch(const __global double8 *p, size_t num_elements);
14419void __ovld prefetch(const __global double16 *p, size_t num_elements);
14420#endif //cl_khr_fp64
14421#ifdef cl_khr_fp16
14422void __ovld prefetch(const __global half *p, size_t num_elements);
14423void __ovld prefetch(const __global half2 *p, size_t num_elements);
14424void __ovld prefetch(const __global half3 *p, size_t num_elements);
14425void __ovld prefetch(const __global half4 *p, size_t num_elements);
14426void __ovld prefetch(const __global half8 *p, size_t num_elements);
14427void __ovld prefetch(const __global half16 *p, size_t num_elements);
14428#endif // cl_khr_fp16
14429
14430// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
14431
14432#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14433#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14434#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14435#endif
14436/**
14437 * Read the 32-bit value (referred to as old)
14438 * stored at location pointed by p. Compute
14439 * (old + val) and store result at location
14440 * pointed by p. The function returns old.
14441 */
14442int __ovld atomic_add(volatile __global int *p, int val);
14443unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
14444int __ovld atomic_add(volatile __local int *p, int val);
14445unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
14446
14447#if defined(cl_khr_global_int32_base_atomics)
14448int __ovld atom_add(volatile __global int *p, int val);
14449unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
14450#endif
14451#if defined(cl_khr_local_int32_base_atomics)
14452int __ovld atom_add(volatile __local int *p, int val);
14453unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
14454#endif
14455
14456#if defined(cl_khr_int64_base_atomics)
14457long __ovld atom_add(volatile __global long *p, long val);
14458unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
14459long __ovld atom_add(volatile __local long *p, long val);
14460unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
14461#endif
14462
14463/**
14464 * Read the 32-bit value (referred to as old) stored at location pointed by p.
14465 * Compute (old - val) and store result at location pointed by p. The function
14466 * returns old.
14467 */
14468int __ovld atomic_sub(volatile __global int *p, int val);
14469unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
14470int __ovld atomic_sub(volatile __local int *p, int val);
14471unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
14472
14473#if defined(cl_khr_global_int32_base_atomics)
14474int __ovld atom_sub(volatile __global int *p, int val);
14475unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
14476#endif
14477#if defined(cl_khr_local_int32_base_atomics)
14478int __ovld atom_sub(volatile __local int *p, int val);
14479unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
14480#endif
14481
14482#if defined(cl_khr_int64_base_atomics)
14483long __ovld atom_sub(volatile __global long *p, long val);
14484unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
14485long __ovld atom_sub(volatile __local long *p, long val);
14486unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
14487#endif
14488
14489/**
14490 * Swaps the old value stored at location p
14491 * with new value given by val. Returns old
14492 * value.
14493 */
14494int __ovld atomic_xchg(volatile __global int *p, int val);
14495unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
14496int __ovld atomic_xchg(volatile __local int *p, int val);
14497unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
14498float __ovld atomic_xchg(volatile __global float *p, float val);
14499float __ovld atomic_xchg(volatile __local float *p, float val);
14500
14501#if defined(cl_khr_global_int32_base_atomics)
14502int __ovld atom_xchg(volatile __global int *p, int val);
14503int __ovld atom_xchg(volatile __local int *p, int val);
14504#endif
14505#if defined(cl_khr_local_int32_base_atomics)
14506unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
14507unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
14508#endif
14509
14510#if defined(cl_khr_int64_base_atomics)
14511long __ovld atom_xchg(volatile __global long *p, long val);
14512long __ovld atom_xchg(volatile __local long *p, long val);
14513unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
14514unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
14515#endif
14516
14517/**
14518 * Read the 32-bit value (referred to as old)
14519 * stored at location pointed by p. Compute
14520 * (old + 1) and store result at location
14521 * pointed by p. The function returns old.
14522 */
14523int __ovld atomic_inc(volatile __global int *p);
14524unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
14525int __ovld atomic_inc(volatile __local int *p);
14526unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
14527
14528#if defined(cl_khr_global_int32_base_atomics)
14529int __ovld atom_inc(volatile __global int *p);
14530unsigned int __ovld atom_inc(volatile __global unsigned int *p);
14531#endif
14532#if defined(cl_khr_local_int32_base_atomics)
14533int __ovld atom_inc(volatile __local int *p);
14534unsigned int __ovld atom_inc(volatile __local unsigned int *p);
14535#endif
14536
14537#if defined(cl_khr_int64_base_atomics)
14538long __ovld atom_inc(volatile __global long *p);
14539unsigned long __ovld atom_inc(volatile __global unsigned long *p);
14540long __ovld atom_inc(volatile __local long *p);
14541unsigned long __ovld atom_inc(volatile __local unsigned long *p);
14542#endif
14543
14544/**
14545 * Read the 32-bit value (referred to as old)
14546 * stored at location pointed by p. Compute
14547 * (old - 1) and store result at location
14548 * pointed by p. The function returns old.
14549 */
14550int __ovld atomic_dec(volatile __global int *p);
14551unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
14552int __ovld atomic_dec(volatile __local int *p);
14553unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
14554
14555#if defined(cl_khr_global_int32_base_atomics)
14556int __ovld atom_dec(volatile __global int *p);
14557unsigned int __ovld atom_dec(volatile __global unsigned int *p);
14558#endif
14559#if defined(cl_khr_local_int32_base_atomics)
14560int __ovld atom_dec(volatile __local int *p);
14561unsigned int __ovld atom_dec(volatile __local unsigned int *p);
14562#endif
14563
14564#if defined(cl_khr_int64_base_atomics)
14565long __ovld atom_dec(volatile __global long *p);
14566unsigned long __ovld atom_dec(volatile __global unsigned long *p);
14567long __ovld atom_dec(volatile __local long *p);
14568unsigned long __ovld atom_dec(volatile __local unsigned long *p);
14569#endif
14570
14571/**
14572 * Read the 32-bit value (referred to as old)
14573 * stored at location pointed by p. Compute
14574 * (old == cmp) ? val : old and store result at
14575 * location pointed by p. The function
14576 * returns old.
14577 */
14578int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
14579unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14580int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
14581unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14582
14583#if defined(cl_khr_global_int32_base_atomics)
14584int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
14585unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14586#endif
14587#if defined(cl_khr_local_int32_base_atomics)
14588int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
14589unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14590#endif
14591
14592#if defined(cl_khr_int64_base_atomics)
14593long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
14594unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
14595long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
14596unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
14597#endif
14598
14599/**
14600 * Read the 32-bit value (referred to as old)
14601 * stored at location pointed by p. Compute
14602 * min(old, val) and store minimum value at
14603 * location pointed by p. The function
14604 * returns old.
14605 */
14606int __ovld atomic_min(volatile __global int *p, int val);
14607unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
14608int __ovld atomic_min(volatile __local int *p, int val);
14609unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
14610
14611#if defined(cl_khr_global_int32_extended_atomics)
14612int __ovld atom_min(volatile __global int *p, int val);
14613unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
14614#endif
14615#if defined(cl_khr_local_int32_extended_atomics)
14616int __ovld atom_min(volatile __local int *p, int val);
14617unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
14618#endif
14619
14620#if defined(cl_khr_int64_extended_atomics)
14621long __ovld atom_min(volatile __global long *p, long val);
14622unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
14623#endif
14624#if defined(cl_khr_local_int32_extended_atomics)
14625long __ovld atom_min(volatile __local long *p, long val);
14626unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
14627#endif
14628
14629/**
14630 * Read the 32-bit value (referred to as old)
14631 * stored at location pointed by p. Compute
14632 * max(old, val) and store maximum value at
14633 * location pointed by p. The function
14634 * returns old.
14635 */
14636int __ovld atomic_max(volatile __global int *p, int val);
14637unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
14638int __ovld atomic_max(volatile __local int *p, int val);
14639unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
14640
14641#if defined(cl_khr_global_int32_extended_atomics)
14642int __ovld atom_max(volatile __global int *p, int val);
14643unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
14644#endif
14645#if defined(cl_khr_local_int32_extended_atomics)
14646int __ovld atom_max(volatile __local int *p, int val);
14647unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
14648#endif
14649
14650#if defined(cl_khr_int64_extended_atomics)
14651long __ovld atom_max(volatile __global long *p, long val);
14652unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
14653long __ovld atom_max(volatile __local long *p, long val);
14654unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
14655#endif
14656
14657/**
14658 * Read the 32-bit value (referred to as old)
14659 * stored at location pointed by p. Compute
14660 * (old & val) and store result at location
14661 * pointed by p. The function returns old.
14662 */
14663int __ovld atomic_and(volatile __global int *p, int val);
14664unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
14665int __ovld atomic_and(volatile __local int *p, int val);
14666unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
14667
14668#if defined(cl_khr_global_int32_extended_atomics)
14669int __ovld atom_and(volatile __global int *p, int val);
14670unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
14671#endif
14672#if defined(cl_khr_local_int32_extended_atomics)
14673int __ovld atom_and(volatile __local int *p, int val);
14674unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
14675#endif
14676
14677#if defined(cl_khr_int64_extended_atomics)
14678long __ovld atom_and(volatile __global long *p, long val);
14679unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
14680long __ovld atom_and(volatile __local long *p, long val);
14681unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
14682#endif
14683
14684/**
14685 * Read the 32-bit value (referred to as old)
14686 * stored at location pointed by p. Compute
14687 * (old | val) and store result at location
14688 * pointed by p. The function returns old.
14689 */
14690int __ovld atomic_or(volatile __global int *p, int val);
14691unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
14692int __ovld atomic_or(volatile __local int *p, int val);
14693unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
14694
14695#if defined(cl_khr_global_int32_extended_atomics)
14696int __ovld atom_or(volatile __global int *p, int val);
14697unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
14698#endif
14699#if defined(cl_khr_local_int32_extended_atomics)
14700int __ovld atom_or(volatile __local int *p, int val);
14701unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
14702#endif
14703
14704#if defined(cl_khr_int64_extended_atomics)
14705long __ovld atom_or(volatile __global long *p, long val);
14706unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
14707long __ovld atom_or(volatile __local long *p, long val);
14708unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
14709#endif
14710
14711/**
14712 * Read the 32-bit value (referred to as old)
14713 * stored at location pointed by p. Compute
14714 * (old ^ val) and store result at location
14715 * pointed by p. The function returns old.
14716 */
14717int __ovld atomic_xor(volatile __global int *p, int val);
14718unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
14719int __ovld atomic_xor(volatile __local int *p, int val);
14720unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
14721
14722#if defined(cl_khr_global_int32_extended_atomics)
14723int __ovld atom_xor(volatile __global int *p, int val);
14724unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
14725#endif
14726#if defined(cl_khr_local_int32_extended_atomics)
14727int __ovld atom_xor(volatile __local int *p, int val);
14728unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
14729#endif
14730
14731#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14732#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
14733#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
14734#endif
14735
14736// OpenCL v2.0 s6.13.11 - Atomics Functions
14737
14738#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14739#ifndef ATOMIC_VAR_INIT
14740#define ATOMIC_VAR_INIT(x) (x)
14741#endif //ATOMIC_VAR_INIT
14742#define ATOMIC_FLAG_INIT 0
14743
14744// enum values aligned with what clang uses in EmitAtomicExpr()
14745typedef enum memory_order
14746{
14747  memory_order_relaxed,
14748  memory_order_acquire,
14749  memory_order_release,
14750  memory_order_acq_rel,
14751  memory_order_seq_cst
14752} memory_order;
14753
14754// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
14755#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14756#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14757#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14758#endif
14759
14760// atomic_init()
14761void __ovld atomic_init(volatile atomic_int *object, int value);
14762void __ovld atomic_init(volatile atomic_uint *object, uint value);
14763void __ovld atomic_init(volatile atomic_float *object, float value);
14764#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14765void __ovld atomic_init(volatile atomic_long *object, long value);
14766void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
14767#ifdef cl_khr_fp64
14768void __ovld atomic_init(volatile atomic_double *object, double value);
14769#endif //cl_khr_fp64
14770#endif
14771
14772// atomic_work_item_fence()
14773void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
14774
14775// atomic_fetch()
14776
14777int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
14778int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
14779int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14780uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
14781uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14782uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14783int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
14784int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
14785int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14786uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
14787uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14788uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14789int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
14790int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
14791int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14792uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
14793uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14794uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14795int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
14796int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
14797int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14798uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
14799uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14800uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14801int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
14802int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
14803int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14804uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
14805uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14806uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14807int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
14808int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
14809int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14810uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
14811uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14812uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14813uint __ovld atomic_fetch_min(volatile atomic_uint *object, int operand);
14814uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order);
14815uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14816int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
14817int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
14818int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14819uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
14820uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14821uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14822uint __ovld atomic_fetch_max(volatile atomic_uint *object, int operand);
14823uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order);
14824uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14825
14826#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14827long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
14828long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
14829long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14830ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
14831ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14832ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14833long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
14834long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
14835long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14836ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
14837ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14838ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14839long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
14840long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
14841long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14842ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
14843ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14844ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14845long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
14846long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
14847long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14848ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
14849ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14850ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14851long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
14852long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
14853long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14854ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
14855ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14856ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14857long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
14858long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
14859long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14860ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
14861ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14862ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14863ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, long operand);
14864ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14865ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14866long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
14867long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
14868long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14869ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
14870ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14871ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14872ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, long operand);
14873ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14874ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14875#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14876
14877// OpenCL v2.0 s6.13.11.7.5:
14878// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
14879// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
14880
14881#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14882uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14883uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14884uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14885uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14886uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14887uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14888
14889uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
14890uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14891uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14892uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
14893uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14894uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14895uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
14896uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14897uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14898uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
14899uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14900uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14901uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
14902uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14903uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14904
14905intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
14906intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14907intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14908intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
14909intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14910intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14911intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
14912intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14913intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14914intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
14915intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14916intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14917intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
14918intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14919intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14920#endif
14921
14922// atomic_store()
14923
14924void __ovld atomic_store(volatile atomic_int *object, int desired);
14925void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
14926void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14927void __ovld atomic_store(volatile atomic_uint *object, uint desired);
14928void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14929void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14930void __ovld atomic_store(volatile atomic_float *object, float desired);
14931void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
14932void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14933#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14934#ifdef cl_khr_fp64
14935void __ovld atomic_store(volatile atomic_double *object, double desired);
14936void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
14937void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14938#endif //cl_khr_fp64
14939void __ovld atomic_store(volatile atomic_long *object, long desired);
14940void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
14941void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14942void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
14943void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14944void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14945#endif
14946
14947// atomic_load()
14948
14949int __ovld atomic_load(volatile atomic_int *object);
14950int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
14951int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
14952uint __ovld atomic_load(volatile atomic_uint *object);
14953uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
14954uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
14955float __ovld atomic_load(volatile atomic_float *object);
14956float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
14957float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
14958#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14959#ifdef cl_khr_fp64
14960double __ovld atomic_load(volatile atomic_double *object);
14961double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
14962double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
14963#endif //cl_khr_fp64
14964long __ovld atomic_load(volatile atomic_long *object);
14965long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
14966long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
14967ulong __ovld atomic_load(volatile atomic_ulong *object);
14968ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
14969ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
14970#endif
14971
14972// atomic_exchange()
14973
14974int __ovld atomic_exchange(volatile atomic_int *object, int desired);
14975int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
14976int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14977uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
14978uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14979uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14980float __ovld atomic_exchange(volatile atomic_float *object, float desired);
14981float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
14982float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14983#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14984#ifdef cl_khr_fp64
14985double __ovld atomic_exchange(volatile atomic_double *object, double desired);
14986double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
14987double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14988#endif //cl_khr_fp64
14989long __ovld atomic_exchange(volatile atomic_long *object, long desired);
14990long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
14991long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14992ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
14993ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14994ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14995#endif
14996
14997// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
14998
14999bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
15000bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
15001                                                                                 int desired, memory_order success, memory_order failure);
15002bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
15003                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
15004bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
15005bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
15006                                                                                 uint desired, memory_order success, memory_order failure);
15007bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
15008                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
15009bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
15010bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
15011                                                                                 int desired, memory_order success, memory_order failure);
15012bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
15013                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
15014bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
15015bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
15016                                                                                 uint desired, memory_order success, memory_order failure);
15017bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
15018                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
15019bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
15020bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
15021                                                                                 float desired, memory_order success, memory_order failure);
15022bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
15023                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
15024bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
15025bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
15026                                                                                 float desired, memory_order success, memory_order failure);
15027bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
15028                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
15029#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
15030#ifdef cl_khr_fp64
15031bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
15032bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
15033                                                                                 double desired, memory_order success, memory_order failure);
15034bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
15035                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
15036bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
15037bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
15038                                                                                 double desired, memory_order success, memory_order failure);
15039bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
15040                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
15041#endif //cl_khr_fp64
15042bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
15043bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
15044                                                                                 long desired, memory_order success, memory_order failure);
15045bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
15046                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
15047bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
15048bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
15049                                                                                 long desired, memory_order success, memory_order failure);
15050bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
15051                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
15052bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
15053bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
15054                                                                                 ulong desired, memory_order success, memory_order failure);
15055bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
15056                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
15057bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
15058bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
15059                                                                                 ulong desired, memory_order success, memory_order failure);
15060bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
15061                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
15062#endif
15063
15064// atomic_flag_test_and_set() and atomic_flag_clear()
15065
15066bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
15067bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
15068bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
15069void __ovld atomic_flag_clear(volatile atomic_flag *object);
15070void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
15071void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
15072
15073#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15074
15075// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
15076
15077/**
15078 * The shuffle and shuffle2 built-in functions construct
15079 * a permutation of elements from one or two input
15080 * vectors respectively that are of the same type,
15081 * returning a vector with the same element type as the
15082 * input and length that is the same as the shuffle mask.
15083 * The size of each element in the mask must match the
15084 * size of each element in the result. For shuffle, only
15085 * the ilogb(2m-1) least significant bits of each mask
15086 * element are considered. For shuffle2, only the
15087 * ilogb(2m-1)+1 least significant bits of each mask
15088 * element are considered. Other bits in the mask shall
15089 * be ignored.
15090 * The elements of the input vectors are numbered from
15091 * left to right across one or both of the vectors. For this
15092 * purpose, the number of elements in a vector is given
15093 * by vec_step(gentypem). The shuffle mask operand
15094 * specifies, for each element of the result vector, which
15095 * element of the one or two input vectors the result
15096 * element gets.
15097 * Examples:
15098 * uint4 mask = (uint4)(3, 2,
15099 * 1, 0);
15100 * float4 a;
15101 * float4 r = shuffle(a, mask);
15102 * // r.s0123 = a.wzyx
15103 * uint8 mask = (uint8)(0, 1, 2, 3,
15104 * 4, 5, 6, 7);
15105 * float4 a, b;
15106 * float8 r = shuffle2(a, b, mask);
15107 * // r.s0123 = a.xyzw
15108 * // r.s4567 = b.xyzw
15109 * uint4 mask;
15110 * float8 a;
15111 * float4 b;
15112 * b = shuffle(a, mask);
15113 * Examples that are not valid are:
15114 * uint8 mask;
15115 * short16 a;
15116 * short8 b;
15117 * b = shuffle(a, mask); <- not valid
15118 */
15119char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
15120char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
15121char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
15122char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
15123
15124uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
15125uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
15126uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
15127uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
15128
15129short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
15130short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
15131short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
15132short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
15133
15134ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
15135ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
15136ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
15137ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
15138
15139int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
15140int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
15141int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
15142int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
15143
15144uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
15145uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
15146uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
15147uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
15148
15149long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
15150long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
15151long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
15152long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
15153
15154ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
15155ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
15156ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
15157ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
15158
15159float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
15160float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
15161float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
15162float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
15163
15164char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
15165char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
15166char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
15167char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
15168
15169uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
15170uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
15171uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
15172uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
15173
15174short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
15175short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
15176short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
15177short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
15178
15179ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
15180ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
15181ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
15182ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
15183
15184int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
15185int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
15186int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
15187int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
15188
15189uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
15190uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
15191uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
15192uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
15193
15194long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
15195long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
15196long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
15197long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
15198
15199ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
15200ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
15201ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
15202ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
15203
15204float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
15205float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
15206float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
15207float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
15208
15209char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
15210char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
15211char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
15212char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
15213
15214uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
15215uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
15216uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
15217uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
15218
15219short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
15220short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
15221short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
15222short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
15223
15224ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
15225ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
15226ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
15227ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
15228
15229int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
15230int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
15231int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
15232int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
15233
15234uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
15235uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
15236uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
15237uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
15238
15239long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
15240long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
15241long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
15242long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
15243
15244ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
15245ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
15246ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
15247ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
15248
15249float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
15250float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
15251float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
15252float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
15253
15254char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
15255char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
15256char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
15257char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
15258
15259uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
15260uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
15261uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
15262uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
15263
15264short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
15265short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
15266short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
15267short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
15268
15269ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
15270ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
15271ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
15272ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
15273
15274int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
15275int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
15276int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
15277int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
15278
15279uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
15280uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
15281uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
15282uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
15283
15284long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
15285long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
15286long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
15287long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
15288
15289ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
15290ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
15291ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
15292ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
15293
15294float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
15295float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
15296float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
15297float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
15298
15299#ifdef cl_khr_fp64
15300double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
15301double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
15302double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
15303double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
15304
15305double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
15306double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
15307double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
15308double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
15309
15310double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
15311double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
15312double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
15313double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
15314
15315double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
15316double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
15317double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
15318double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
15319#endif //cl_khr_fp64
15320
15321#ifdef cl_khr_fp16
15322half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
15323half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
15324half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
15325half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
15326
15327half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
15328half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
15329half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
15330half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
15331
15332half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
15333half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
15334half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
15335half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
15336
15337half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
15338half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
15339half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
15340half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
15341#endif //cl_khr_fp16
15342
15343char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
15344char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
15345char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
15346char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
15347
15348uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
15349uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
15350uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
15351uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
15352
15353short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
15354short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
15355short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
15356short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
15357
15358ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
15359ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
15360ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
15361ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
15362
15363int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
15364int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
15365int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
15366int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
15367
15368uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
15369uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
15370uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
15371uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
15372
15373long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
15374long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
15375long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
15376long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
15377
15378ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
15379ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
15380ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
15381ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
15382
15383float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
15384float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
15385float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
15386float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
15387
15388char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
15389char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
15390char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
15391char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
15392
15393uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
15394uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
15395uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
15396uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
15397
15398short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
15399short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
15400short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
15401short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
15402
15403ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
15404ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
15405ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
15406ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
15407
15408int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
15409int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
15410int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
15411int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
15412
15413uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
15414uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
15415uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
15416uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
15417
15418long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
15419long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
15420long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
15421long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
15422
15423ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
15424ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
15425ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
15426ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
15427
15428float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
15429float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
15430float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
15431float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
15432
15433char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
15434char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
15435char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
15436char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
15437
15438uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
15439uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
15440uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
15441uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
15442
15443short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
15444short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
15445short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
15446short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
15447
15448ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
15449ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
15450ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
15451ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
15452
15453int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
15454int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
15455int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
15456int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
15457
15458uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
15459uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
15460uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
15461uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
15462
15463long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
15464long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
15465long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
15466long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
15467
15468ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
15469ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
15470ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
15471ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
15472
15473float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
15474float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
15475float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
15476float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
15477
15478char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
15479char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
15480char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
15481char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
15482
15483uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
15484uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
15485uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
15486uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
15487
15488short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
15489short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
15490short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
15491short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
15492
15493ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
15494ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
15495ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
15496ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
15497
15498int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
15499int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
15500int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
15501int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
15502
15503uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
15504uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
15505uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
15506uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
15507
15508long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
15509long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
15510long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
15511long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
15512
15513ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
15514ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
15515ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
15516ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
15517
15518float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
15519float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
15520float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
15521float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
15522
15523#ifdef cl_khr_fp64
15524double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
15525double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
15526double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
15527double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
15528
15529double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
15530double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
15531double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
15532double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
15533
15534double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
15535double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
15536double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
15537double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
15538
15539double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
15540double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
15541double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
15542double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
15543#endif //cl_khr_fp64
15544
15545#ifdef cl_khr_fp16
15546half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
15547half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
15548half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
15549half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
15550
15551half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
15552half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
15553half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
15554half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
15555
15556half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
15557half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
15558half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
15559half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
15560
15561half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
15562half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
15563half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
15564half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
15565#endif //cl_khr_fp16
15566
15567// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
15568
15569int printf(__constant const char* st, ...);
15570
15571// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
15572
15573// These values need to match the runtime equivalent
15574//
15575// Addressing Mode.
15576//
15577#define CLK_ADDRESS_NONE                0
15578#define CLK_ADDRESS_CLAMP_TO_EDGE       2
15579#define CLK_ADDRESS_CLAMP               4
15580#define CLK_ADDRESS_REPEAT              6
15581#define CLK_ADDRESS_MIRRORED_REPEAT     8
15582
15583//
15584// Coordination Normalization
15585//
15586#define CLK_NORMALIZED_COORDS_FALSE     0
15587#define CLK_NORMALIZED_COORDS_TRUE      1
15588
15589//
15590// Filtering Mode.
15591//
15592#define CLK_FILTER_NEAREST              0x10
15593#define CLK_FILTER_LINEAR               0x20
15594
15595/**
15596 * Use the coordinate (coord.xy) to do an element lookup in
15597 * the 2D image object specified by image.
15598 *
15599 * Use the coordinate (coord.x, coord.y, coord.z) to do
15600 * an element lookup in the 3D image object specified
15601 * by image. coord.w is ignored.
15602 *
15603 * Use the coordinate (coord.z) to index into the
15604 * 2D image array object specified by image_array
15605 * and (coord.x, coord.y) to do an element lookup in
15606 * the 2D image object specified by image.
15607 *
15608 * Use the coordinate (x) to do an element lookup in
15609 * the 1D image object specified by image.
15610 *
15611 * Use the coordinate (coord.y) to index into the
15612 * 1D image array object specified by image_array
15613 * and (coord.x) to do an element lookup in
15614 * the 1D image object specified by image.
15615 *
15616 * Use the coordinate (cood.xy) and sample to do an
15617 * element lookup in the 2D multi-sample image specified
15618 * by image.
15619 *
15620 * Use coord.xy and sample to do an element
15621 * lookup in the 2D multi-sample image layer
15622 * identified by index coord.z in the 2D multi-sample
15623 * image array specified by image.
15624 *
15625 * For mipmap images, use the mip-level specified by
15626 * the Level-of-Detail (lod) or use gradients for LOD
15627 * computation.
15628 *
15629 * read_imagef returns floating-point values in the
15630 * range [0.0 ... 1.0] for image objects created with
15631 * image_channel_data_type set to one of the predefined
15632 * packed formats or CL_UNORM_INT8, or
15633 * CL_UNORM_INT16.
15634 *
15635 * read_imagef returns floating-point values in the
15636 * range [-1.0 ... 1.0] for image objects created with
15637 * image_channel_data_type set to CL_SNORM_INT8,
15638 * or CL_SNORM_INT16.
15639 *
15640 * read_imagef returns floating-point values for image
15641 * objects created with image_channel_data_type set to
15642 * CL_HALF_FLOAT or CL_FLOAT.
15643 *
15644 * read_imagei and read_imageui return
15645 * unnormalized signed integer and unsigned integer
15646 * values respectively. Each channel will be stored in a
15647 * 32-bit integer.
15648 *
15649 * read_imagei can only be used with image objects
15650 * created with image_channel_data_type set to one of
15651 * the following values:
15652 * CL_SIGNED_INT8,
15653 * CL_SIGNED_INT16 and
15654 * CL_SIGNED_INT32.
15655 * If the image_channel_data_type is not one of the
15656 * above values, the values returned by read_imagei
15657 * are undefined.
15658 *
15659 * read_imageui can only be used with image objects
15660 * created with image_channel_data_type set to one of
15661 * the following values:
15662 * CL_UNSIGNED_INT8,
15663 * CL_UNSIGNED_INT16 and
15664 * CL_UNSIGNED_INT32.
15665 * If the image_channel_data_type is not one of the
15666 * above values, the values returned by read_imageui
15667 * are undefined.
15668 *
15669 * The read_image{i|ui} calls support a nearest filter
15670 * only. The filter_mode specified in sampler
15671 * must be set to CLK_FILTER_NEAREST; otherwise
15672 * the values returned are undefined.
15673
15674 * The read_image{f|i|ui} calls that take
15675 * integer coordinates must use a sampler with
15676 * normalized coordinates set to
15677 * CLK_NORMALIZED_COORDS_FALSE and
15678 * addressing mode set to
15679 * CLK_ADDRESS_CLAMP_TO_EDGE,
15680 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
15681 * otherwise the values returned are undefined.
15682 *
15683 * Values returned by read_imagef for image objects
15684 * with image_channel_data_type values not specified
15685 * in the description above are undefined.
15686 */
15687
15688float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
15689float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
15690
15691int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
15692int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
15693uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
15694uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
15695
15696float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
15697float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
15698
15699int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
15700int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
15701uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
15702uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
15703
15704float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15705float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15706
15707int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15708int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15709uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15710uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15711
15712float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
15713float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
15714
15715int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
15716int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
15717uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
15718uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
15719
15720float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15721float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15722
15723int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15724int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15725uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15726uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15727
15728#ifdef cl_khr_depth_images
15729float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
15730float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
15731
15732float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
15733float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
15734#endif //cl_khr_depth_images
15735
15736#if defined(cl_khr_gl_msaa_sharing)
15737float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
15738int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
15739uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
15740
15741float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
15742
15743float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
15744int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
15745uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
15746
15747float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
15748#endif //cl_khr_gl_msaa_sharing
15749
15750// OpenCL Extension v2.0 s9.18 - Mipmaps
15751#ifdef cl_khr_mipmap_image
15752
15753float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15754int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15755uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15756
15757float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15758int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15759uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15760
15761float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15762int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15763uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15764
15765float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15766
15767float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15768int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15769uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15770
15771float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15772
15773float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15774int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15775uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15776
15777float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15778int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15779uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15780
15781float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15782int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15783uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15784
15785float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15786int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15787uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15788
15789float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15790
15791float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15792int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15793uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15794
15795float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15796
15797float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15798int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15799uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15800
15801float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15802int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15803uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15804
15805float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15806int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15807uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15808
15809float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15810int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15811uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15812
15813float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15814
15815float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15816int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15817uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15818
15819float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15820
15821float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15822int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15823uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15824
15825#endif //cl_khr_mipmap_image
15826
15827/**
15828* Sampler-less Image Access
15829*/
15830
15831float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
15832int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
15833uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
15834
15835float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
15836int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
15837uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
15838
15839float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
15840int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
15841uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
15842
15843float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
15844int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
15845uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
15846
15847float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
15848int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
15849uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
15850
15851#ifdef cl_khr_depth_images
15852float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
15853float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
15854#endif //cl_khr_depth_images
15855
15856float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
15857int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
15858uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
15859
15860// Image read functions returning half4 type
15861#ifdef cl_khr_fp16
15862half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
15863half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
15864half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
15865half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
15866half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
15867half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
15868half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
15869half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
15870half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
15871half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
15872half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
15873half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
15874half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
15875half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
15876half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
15877half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
15878#endif //cl_khr_fp16
15879
15880// Image read functions for read_write images
15881#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15882float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
15883int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
15884uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
15885
15886float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
15887int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
15888uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
15889
15890float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
15891int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
15892uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
15893
15894float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
15895int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
15896uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
15897
15898float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
15899int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
15900uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
15901
15902float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
15903int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
15904uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
15905
15906#ifdef cl_khr_depth_images
15907float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
15908float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
15909#endif //cl_khr_depth_images
15910
15911#if cl_khr_gl_msaa_sharing
15912float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
15913int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
15914uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
15915
15916float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
15917int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
15918uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
15919
15920float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
15921float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
15922#endif //cl_khr_gl_msaa_sharing
15923
15924#ifdef cl_khr_mipmap_image
15925float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15926int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15927uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15928
15929float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15930int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15931uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15932
15933float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15934int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15935uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15936
15937float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15938
15939float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15940int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15941uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15942
15943float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15944
15945float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15946int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15947uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15948
15949float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15950int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15951uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15952
15953float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15954int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15955uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15956
15957float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15958int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15959uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15960
15961float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15962
15963float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15964int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15965uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15966
15967float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15968
15969float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15970int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15971uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15972
15973float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15974int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15975uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15976
15977float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15978int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15979uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15980
15981float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15982int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15983uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15984
15985float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15986
15987float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15988int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15989uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15990
15991float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15992
15993float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15994int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15995uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15996#endif //cl_khr_mipmap_image
15997
15998// Image read functions returning half4 type
15999#ifdef cl_khr_fp16
16000half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
16001half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
16002half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
16003half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
16004half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
16005half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
16006#endif //cl_khr_fp16
16007#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16008
16009/**
16010 * Write color value to location specified by coordinate
16011 * (coord.x, coord.y) in the 2D image object specified by image.
16012 * (coord.x, coord.y) are considered to be unnormalized coordinates
16013 * and must be in the range 0 ... image width - 1, and 0
16014 * ... image height - 1.
16015
16016 * Write color value to location specified by coordinate
16017 * (coord.x, coord.y) in the 2D image object specified by index
16018 * (coord.z) of the 2D image array object image_array.
16019 * (coord.x, coord.y) are considered to be unnormalized
16020 * coordinates and must be in the range 0 ... image width
16021 * - 1.
16022 *
16023 * Write color value to location specified by coordinate
16024 * (coord) in the 1D image (buffer) object specified by image.
16025 * coord is considered to be unnormalized coordinates
16026 * and must be in the range 0 ... image width - 1.
16027 *
16028 * Write color value to location specified by coordinate
16029 * (coord.x) in the 1D image object specified by index
16030 * (coord.y) of the 1D image array object image_array.
16031 * x is considered to be unnormalized coordinates
16032 * and must be in the range 0 ... image width - 1.
16033 *
16034 * Write color value to location specified by coordinate
16035 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
16036 * coord.x & coord.y are considered to be unnormalized coordinates
16037 * and must be in the range 0 ... image width - 1, and 0
16038 * ... image height - 1.
16039 *
16040 * For mipmap images, use mip-level specified by lod.
16041 *
16042 * Appropriate data format conversion to the specified
16043 * image format is done before writing the color value.
16044 *
16045 * write_imagef can only be used with image objects
16046 * created with image_channel_data_type set to one of
16047 * the pre-defined packed formats or set to
16048 * CL_SNORM_INT8, CL_UNORM_INT8,
16049 * CL_SNORM_INT16, CL_UNORM_INT16,
16050 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
16051 * format conversion will be done to convert channel
16052 * data from a floating-point value to actual data format
16053 * in which the channels are stored.
16054 *
16055 * write_imagei can only be used with image objects
16056 * created with image_channel_data_type set to one of
16057 * the following values:
16058 * CL_SIGNED_INT8,
16059 * CL_SIGNED_INT16 and
16060 * CL_SIGNED_INT32.
16061 *
16062 * write_imageui can only be used with image objects
16063 * created with image_channel_data_type set to one of
16064 * the following values:
16065 * CL_UNSIGNED_INT8,
16066 * CL_UNSIGNED_INT16 and
16067 * CL_UNSIGNED_INT32.
16068 *
16069 * The behavior of write_imagef, write_imagei and
16070 * write_imageui for image objects created with
16071 * image_channel_data_type values not specified in
16072 * the description above or with (x, y) coordinate
16073 * values that are not in the range (0 ... image width -1,
16074 * 0 ... image height - 1), respectively, is undefined.
16075 */
16076void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
16077void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
16078void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
16079
16080void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
16081void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
16082void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
16083
16084void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
16085void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
16086void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
16087
16088void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
16089void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
16090void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
16091
16092void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
16093void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
16094void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
16095
16096void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
16097void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
16098void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
16099
16100#ifdef cl_khr_depth_images
16101void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
16102void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
16103#endif //cl_khr_depth_images
16104
16105// OpenCL Extension v2.0 s9.18 - Mipmaps
16106#ifdef cl_khr_mipmap_image
16107void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
16108void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
16109void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
16110
16111void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
16112void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
16113void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
16114
16115void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
16116void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
16117void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
16118
16119void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
16120void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
16121void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
16122
16123void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float color);
16124void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float color);
16125
16126void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
16127void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
16128void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
16129#endif //cl_khr_mipmap_image
16130
16131// Image write functions for half4 type
16132#ifdef cl_khr_fp16
16133void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
16134void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
16135void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
16136void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
16137void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
16138void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
16139#endif //cl_khr_fp16
16140
16141// Image write functions for read_write images
16142#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16143void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
16144void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
16145void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
16146
16147void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
16148void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
16149void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
16150
16151void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
16152void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
16153void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
16154
16155void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
16156void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
16157void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
16158
16159void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
16160void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
16161void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
16162
16163void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
16164void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
16165void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
16166
16167#ifdef cl_khr_depth_images
16168void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
16169void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
16170#endif //cl_khr_depth_images
16171
16172#ifdef cl_khr_mipmap_image
16173void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
16174void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
16175void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
16176
16177void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
16178void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
16179void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
16180
16181void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
16182void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
16183void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
16184
16185void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
16186void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
16187void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
16188
16189void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
16190void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
16191
16192void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
16193void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
16194void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
16195#endif //cl_khr_mipmap_image
16196
16197// Image write functions for half4 type
16198#ifdef cl_khr_fp16
16199void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
16200void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
16201void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
16202void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
16203void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
16204void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
16205#endif //cl_khr_fp16
16206#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16207
16208// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
16209// access qualifier, which by default assume read_only access qualifier. Image query builtin
16210// functions with write_only image argument should also be declared.
16211
16212/**
16213 * Return the image width in pixels.
16214 *
16215  */
16216int __ovld __cnfn get_image_width(read_only image1d_t image);
16217int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
16218int __ovld __cnfn get_image_width(read_only image2d_t image);
16219int __ovld __cnfn get_image_width(read_only image3d_t image);
16220int __ovld __cnfn get_image_width(read_only image1d_array_t image);
16221int __ovld __cnfn get_image_width(read_only image2d_array_t image);
16222#ifdef cl_khr_depth_images
16223int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
16224int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
16225#endif //cl_khr_depth_images
16226#if defined(cl_khr_gl_msaa_sharing)
16227int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
16228int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
16229int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
16230int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
16231#endif //cl_khr_gl_msaa_sharing
16232
16233int __ovld __cnfn get_image_width(write_only image1d_t image);
16234int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
16235int __ovld __cnfn get_image_width(write_only image2d_t image);
16236int __ovld __cnfn get_image_width(write_only image3d_t image);
16237int __ovld __cnfn get_image_width(write_only image1d_array_t image);
16238int __ovld __cnfn get_image_width(write_only image2d_array_t image);
16239#ifdef cl_khr_depth_images
16240int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
16241int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
16242#endif //cl_khr_depth_images
16243#if defined(cl_khr_gl_msaa_sharing)
16244int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
16245int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
16246int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
16247int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
16248#endif //cl_khr_gl_msaa_sharing
16249
16250#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16251int __ovld __cnfn get_image_width(read_write image1d_t image);
16252int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
16253int __ovld __cnfn get_image_width(read_write image2d_t image);
16254int __ovld __cnfn get_image_width(read_write image3d_t image);
16255int __ovld __cnfn get_image_width(read_write image1d_array_t image);
16256int __ovld __cnfn get_image_width(read_write image2d_array_t image);
16257#ifdef cl_khr_depth_images
16258int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
16259int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
16260#endif //cl_khr_depth_images
16261#if defined(cl_khr_gl_msaa_sharing)
16262int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
16263int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
16264int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
16265int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
16266#endif //cl_khr_gl_msaa_sharing
16267#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16268
16269/**
16270 * Return the image height in pixels.
16271 */
16272int __ovld __cnfn get_image_height(read_only image2d_t image);
16273int __ovld __cnfn get_image_height(read_only image3d_t image);
16274int __ovld __cnfn get_image_height(read_only image2d_array_t image);
16275#ifdef cl_khr_depth_images
16276int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
16277int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
16278#endif //cl_khr_depth_images
16279#if defined(cl_khr_gl_msaa_sharing)
16280int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
16281int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
16282int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
16283int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
16284#endif //cl_khr_gl_msaa_sharing
16285
16286int __ovld __cnfn get_image_height(write_only image2d_t image);
16287int __ovld __cnfn get_image_height(write_only image3d_t image);
16288int __ovld __cnfn get_image_height(write_only image2d_array_t image);
16289#ifdef cl_khr_depth_images
16290int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
16291int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
16292#endif //cl_khr_depth_images
16293#if defined(cl_khr_gl_msaa_sharing)
16294int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
16295int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
16296int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
16297int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
16298#endif //cl_khr_gl_msaa_sharing
16299
16300#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16301int __ovld __cnfn get_image_height(read_write image2d_t image);
16302int __ovld __cnfn get_image_height(read_write image3d_t image);
16303int __ovld __cnfn get_image_height(read_write image2d_array_t image);
16304#ifdef cl_khr_depth_images
16305int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
16306int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
16307#endif //cl_khr_depth_images
16308#if defined(cl_khr_gl_msaa_sharing)
16309int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
16310int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
16311int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
16312int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
16313#endif //cl_khr_gl_msaa_sharing
16314#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16315
16316/**
16317 * Return the image depth in pixels.
16318 */
16319int __ovld __cnfn get_image_depth(read_only image3d_t image);
16320
16321int __ovld __cnfn get_image_depth(write_only image3d_t image);
16322
16323#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16324int __ovld __cnfn get_image_depth(read_write image3d_t image);
16325#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16326
16327// OpenCL Extension v2.0 s9.18 - Mipmaps
16328#ifdef cl_khr_mipmap_image
16329/**
16330 * Return the image miplevels.
16331 */
16332
16333int __ovld get_image_num_mip_levels(read_only image1d_t image);
16334int __ovld get_image_num_mip_levels(read_only image2d_t image);
16335int __ovld get_image_num_mip_levels(read_only image3d_t image);
16336
16337int __ovld get_image_num_mip_levels(write_only image1d_t image);
16338int __ovld get_image_num_mip_levels(write_only image2d_t image);
16339int __ovld get_image_num_mip_levels(write_only image3d_t image);
16340
16341#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16342int __ovld get_image_num_mip_levels(read_write image1d_t image);
16343int __ovld get_image_num_mip_levels(read_write image2d_t image);
16344int __ovld get_image_num_mip_levels(read_write image3d_t image);
16345#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16346
16347int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
16348int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
16349int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
16350int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
16351
16352int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
16353int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
16354int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
16355int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
16356
16357#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16358int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
16359int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
16360int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
16361int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
16362#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16363
16364#endif //cl_khr_mipmap_image
16365
16366/**
16367 * Return the channel data type. Valid values are:
16368 * CLK_SNORM_INT8
16369 * CLK_SNORM_INT16
16370 * CLK_UNORM_INT8
16371 * CLK_UNORM_INT16
16372 * CLK_UNORM_SHORT_565
16373 * CLK_UNORM_SHORT_555
16374 * CLK_UNORM_SHORT_101010
16375 * CLK_SIGNED_INT8
16376 * CLK_SIGNED_INT16
16377 * CLK_SIGNED_INT32
16378 * CLK_UNSIGNED_INT8
16379 * CLK_UNSIGNED_INT16
16380 * CLK_UNSIGNED_INT32
16381 * CLK_HALF_FLOAT
16382 * CLK_FLOAT
16383 */
16384
16385//
16386// Channel Datatype.
16387//
16388#define CLK_SNORM_INT8        0x10D0
16389#define CLK_SNORM_INT16       0x10D1
16390#define CLK_UNORM_INT8        0x10D2
16391#define CLK_UNORM_INT16       0x10D3
16392#define CLK_UNORM_SHORT_565   0x10D4
16393#define CLK_UNORM_SHORT_555   0x10D5
16394#define CLK_UNORM_INT_101010  0x10D6
16395#define CLK_SIGNED_INT8       0x10D7
16396#define CLK_SIGNED_INT16      0x10D8
16397#define CLK_SIGNED_INT32      0x10D9
16398#define CLK_UNSIGNED_INT8     0x10DA
16399#define CLK_UNSIGNED_INT16    0x10DB
16400#define CLK_UNSIGNED_INT32    0x10DC
16401#define CLK_HALF_FLOAT        0x10DD
16402#define CLK_FLOAT             0x10DE
16403#define CLK_UNORM_INT24       0x10DF
16404
16405int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
16406int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
16407int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
16408int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
16409int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
16410int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
16411#ifdef cl_khr_depth_images
16412int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
16413int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
16414#endif //cl_khr_depth_images
16415#if defined(cl_khr_gl_msaa_sharing)
16416int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
16417int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
16418int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
16419int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
16420#endif //cl_khr_gl_msaa_sharing
16421
16422int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
16423int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
16424int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
16425int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
16426int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
16427int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
16428#ifdef cl_khr_depth_images
16429int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
16430int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
16431#endif //cl_khr_depth_images
16432#if defined(cl_khr_gl_msaa_sharing)
16433int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
16434int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
16435int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
16436int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
16437#endif //cl_khr_gl_msaa_sharing
16438
16439#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16440int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
16441int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
16442int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
16443int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
16444int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
16445int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
16446#ifdef cl_khr_depth_images
16447int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
16448int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
16449#endif //cl_khr_depth_images
16450#if defined(cl_khr_gl_msaa_sharing)
16451int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
16452int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
16453int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
16454int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
16455#endif //cl_khr_gl_msaa_sharing
16456#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16457
16458/**
16459 * Return the image channel order. Valid values are:
16460 * CLK_A
16461 * CLK_R
16462 * CLK_Rx
16463 * CLK_RG
16464 * CLK_RGx
16465 * CLK_RA
16466 * CLK_RGB
16467 * CLK_RGBx
16468 * CLK_RGBA
16469 * CLK_ARGB
16470 * CLK_BGRA
16471 * CLK_INTENSITY
16472 * CLK_LUMINANCE
16473 */
16474// Channel order, numbering must be aligned with cl_channel_order in cl.h
16475//
16476#define CLK_R         0x10B0
16477#define CLK_A         0x10B1
16478#define CLK_RG        0x10B2
16479#define CLK_RA        0x10B3
16480#define CLK_RGB       0x10B4
16481#define CLK_RGBA      0x10B5
16482#define CLK_BGRA      0x10B6
16483#define CLK_ARGB      0x10B7
16484#define CLK_INTENSITY 0x10B8
16485#define CLK_LUMINANCE 0x10B9
16486#define CLK_Rx                0x10BA
16487#define CLK_RGx               0x10BB
16488#define CLK_RGBx              0x10BC
16489#define CLK_DEPTH             0x10BD
16490#define CLK_DEPTH_STENCIL     0x10BE
16491#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16492#define CLK_sRGB              0x10BF
16493#define CLK_sRGBA             0x10C1
16494#define CLK_sRGBx             0x10C0
16495#define CLK_sBGRA             0x10C2
16496#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16497
16498int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
16499int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
16500int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
16501int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
16502int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
16503int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
16504#ifdef cl_khr_depth_images
16505int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
16506int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
16507#endif //cl_khr_depth_images
16508#if defined(cl_khr_gl_msaa_sharing)
16509int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
16510int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
16511int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
16512int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
16513#endif //cl_khr_gl_msaa_sharing
16514
16515int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
16516int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
16517int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
16518int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
16519int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
16520int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
16521#ifdef cl_khr_depth_images
16522int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
16523int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
16524#endif //cl_khr_depth_images
16525#if defined(cl_khr_gl_msaa_sharing)
16526int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
16527int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
16528int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
16529int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
16530#endif //cl_khr_gl_msaa_sharing
16531
16532#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16533int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
16534int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
16535int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
16536int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
16537int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
16538int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
16539#ifdef cl_khr_depth_images
16540int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
16541int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
16542#endif //cl_khr_depth_images
16543#if defined(cl_khr_gl_msaa_sharing)
16544int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
16545int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
16546int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
16547int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
16548#endif //cl_khr_gl_msaa_sharing
16549#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16550
16551/**
16552 * Return the 2D image width and height as an int2
16553 * type. The width is returned in the x component, and
16554 * the height in the y component.
16555 */
16556int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
16557int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
16558#ifdef cl_khr_depth_images
16559int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
16560int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
16561#endif //cl_khr_depth_images
16562#if defined(cl_khr_gl_msaa_sharing)
16563int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
16564int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
16565int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
16566int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
16567#endif //cl_khr_gl_msaa_sharing
16568
16569int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
16570int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
16571#ifdef cl_khr_depth_images
16572int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
16573int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
16574#endif //cl_khr_depth_images
16575#if defined(cl_khr_gl_msaa_sharing)
16576int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
16577int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
16578int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
16579int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
16580#endif //cl_khr_gl_msaa_sharing
16581
16582#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16583int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
16584int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
16585#ifdef cl_khr_depth_images
16586int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
16587int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
16588#endif //cl_khr_depth_images
16589#if defined(cl_khr_gl_msaa_sharing)
16590int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
16591int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
16592int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
16593int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
16594#endif //cl_khr_gl_msaa_sharing
16595#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16596
16597/**
16598 * Return the 3D image width, height, and depth as an
16599 * int4 type. The width is returned in the x
16600 * component, height in the y component, depth in the z
16601 * component and the w component is 0.
16602 */
16603int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
16604int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
16605#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16606int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
16607#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16608
16609/**
16610 * Return the image array size.
16611 */
16612
16613size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
16614size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
16615#ifdef cl_khr_depth_images
16616size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
16617#endif //cl_khr_depth_images
16618#if defined(cl_khr_gl_msaa_sharing)
16619size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
16620size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
16621#endif //cl_khr_gl_msaa_sharing
16622
16623size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
16624size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
16625#ifdef cl_khr_depth_images
16626size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
16627#endif //cl_khr_depth_images
16628#if defined(cl_khr_gl_msaa_sharing)
16629size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
16630size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
16631#endif //cl_khr_gl_msaa_sharing
16632
16633#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16634size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
16635size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
16636#ifdef cl_khr_depth_images
16637size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
16638#endif //cl_khr_depth_images
16639#if defined(cl_khr_gl_msaa_sharing)
16640size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
16641size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
16642#endif //cl_khr_gl_msaa_sharing
16643#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16644
16645/**
16646* Return the number of samples associated with image
16647*/
16648#if defined(cl_khr_gl_msaa_sharing)
16649int __ovld get_image_num_samples(read_only image2d_msaa_t image);
16650int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
16651int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16652int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
16653int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16654
16655int __ovld get_image_num_samples(write_only image2d_msaa_t image);
16656int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
16657int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16658int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
16659int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16660
16661#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16662int __ovld get_image_num_samples(read_write image2d_msaa_t image);
16663int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
16664int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16665int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
16666int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16667#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16668#endif
16669
16670// OpenCL v2.0 s6.13.15 - Work-group Functions
16671
16672#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16673int __ovld work_group_all(int predicate);
16674int __ovld work_group_any(int predicate);
16675
16676#ifdef cl_khr_fp16
16677half __ovld work_group_broadcast(half a, size_t local_id);
16678half __ovld work_group_broadcast(half a, size_t x, size_t y);
16679half __ovld work_group_broadcast(half a, size_t x, size_t y, size_t z);
16680#endif
16681int __ovld work_group_broadcast(int a, size_t local_id);
16682int __ovld work_group_broadcast(int a, size_t x, size_t y);
16683int __ovld work_group_broadcast(int a, size_t x, size_t y, size_t z);
16684uint __ovld work_group_broadcast(uint a, size_t local_id);
16685uint __ovld work_group_broadcast(uint a, size_t x, size_t y);
16686uint __ovld work_group_broadcast(uint a, size_t x, size_t y, size_t z);
16687long __ovld work_group_broadcast(long a, size_t local_id);
16688long __ovld work_group_broadcast(long a, size_t x, size_t y);
16689long __ovld work_group_broadcast(long a, size_t x, size_t y, size_t z);
16690ulong __ovld work_group_broadcast(ulong a, size_t local_id);
16691ulong __ovld work_group_broadcast(ulong a, size_t x, size_t y);
16692ulong __ovld work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
16693float __ovld work_group_broadcast(float a, size_t local_id);
16694float __ovld work_group_broadcast(float a, size_t x, size_t y);
16695float __ovld work_group_broadcast(float a, size_t x, size_t y, size_t z);
16696#ifdef cl_khr_fp64
16697double __ovld work_group_broadcast(double a, size_t local_id);
16698double __ovld work_group_broadcast(double a, size_t x, size_t y);
16699double __ovld work_group_broadcast(double a, size_t x, size_t y, size_t z);
16700#endif //cl_khr_fp64
16701
16702#ifdef cl_khr_fp16
16703half __ovld work_group_reduce_add(half x);
16704half __ovld work_group_reduce_min(half x);
16705half __ovld work_group_reduce_max(half x);
16706half __ovld work_group_scan_exclusive_add(half x);
16707half __ovld work_group_scan_exclusive_min(half x);
16708half __ovld work_group_scan_exclusive_max(half x);
16709half __ovld work_group_scan_inclusive_add(half x);
16710half __ovld work_group_scan_inclusive_min(half x);
16711half __ovld work_group_scan_inclusive_max(half x);
16712#endif
16713int __ovld work_group_reduce_add(int x);
16714int __ovld work_group_reduce_min(int x);
16715int __ovld work_group_reduce_max(int x);
16716int __ovld work_group_scan_exclusive_add(int x);
16717int __ovld work_group_scan_exclusive_min(int x);
16718int __ovld work_group_scan_exclusive_max(int x);
16719int __ovld work_group_scan_inclusive_add(int x);
16720int __ovld work_group_scan_inclusive_min(int x);
16721int __ovld work_group_scan_inclusive_max(int x);
16722uint __ovld work_group_reduce_add(uint x);
16723uint __ovld work_group_reduce_min(uint x);
16724uint __ovld work_group_reduce_max(uint x);
16725uint __ovld work_group_scan_exclusive_add(uint x);
16726uint __ovld work_group_scan_exclusive_min(uint x);
16727uint __ovld work_group_scan_exclusive_max(uint x);
16728uint __ovld work_group_scan_inclusive_add(uint x);
16729uint __ovld work_group_scan_inclusive_min(uint x);
16730uint __ovld work_group_scan_inclusive_max(uint x);
16731long __ovld work_group_reduce_add(long x);
16732long __ovld work_group_reduce_min(long x);
16733long __ovld work_group_reduce_max(long x);
16734long __ovld work_group_scan_exclusive_add(long x);
16735long __ovld work_group_scan_exclusive_min(long x);
16736long __ovld work_group_scan_exclusive_max(long x);
16737long __ovld work_group_scan_inclusive_add(long x);
16738long __ovld work_group_scan_inclusive_min(long x);
16739long __ovld work_group_scan_inclusive_max(long x);
16740ulong __ovld work_group_reduce_add(ulong x);
16741ulong __ovld work_group_reduce_min(ulong x);
16742ulong __ovld work_group_reduce_max(ulong x);
16743ulong __ovld work_group_scan_exclusive_add(ulong x);
16744ulong __ovld work_group_scan_exclusive_min(ulong x);
16745ulong __ovld work_group_scan_exclusive_max(ulong x);
16746ulong __ovld work_group_scan_inclusive_add(ulong x);
16747ulong __ovld work_group_scan_inclusive_min(ulong x);
16748ulong __ovld work_group_scan_inclusive_max(ulong x);
16749float __ovld work_group_reduce_add(float x);
16750float __ovld work_group_reduce_min(float x);
16751float __ovld work_group_reduce_max(float x);
16752float __ovld work_group_scan_exclusive_add(float x);
16753float __ovld work_group_scan_exclusive_min(float x);
16754float __ovld work_group_scan_exclusive_max(float x);
16755float __ovld work_group_scan_inclusive_add(float x);
16756float __ovld work_group_scan_inclusive_min(float x);
16757float __ovld work_group_scan_inclusive_max(float x);
16758#ifdef cl_khr_fp64
16759double __ovld work_group_reduce_add(double x);
16760double __ovld work_group_reduce_min(double x);
16761double __ovld work_group_reduce_max(double x);
16762double __ovld work_group_scan_exclusive_add(double x);
16763double __ovld work_group_scan_exclusive_min(double x);
16764double __ovld work_group_scan_exclusive_max(double x);
16765double __ovld work_group_scan_inclusive_add(double x);
16766double __ovld work_group_scan_inclusive_min(double x);
16767double __ovld work_group_scan_inclusive_max(double x);
16768#endif //cl_khr_fp64
16769
16770#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16771
16772// OpenCL v2.0 s6.13.16 - Pipe Functions
16773#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16774#define PIPE_RESERVE_ID_VALID_BIT (1U << 30)
16775#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
16776bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
16777#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16778
16779
16780// OpenCL v2.0 s6.13.17 - Enqueue Kernels
16781#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16782
16783#define CL_COMPLETE                                 0x0
16784#define CL_RUNNING                                  0x1
16785#define CL_SUBMITTED                                0x2
16786#define CL_QUEUED                                   0x3
16787
16788#define CLK_SUCCESS                                 0
16789#define CLK_ENQUEUE_FAILURE                         -101
16790#define CLK_INVALID_QUEUE                           -102
16791#define CLK_INVALID_NDRANGE                         -160
16792#define CLK_INVALID_EVENT_WAIT_LIST                 -57
16793#define CLK_DEVICE_QUEUE_FULL                       -161
16794#define CLK_INVALID_ARG_SIZE                        -51
16795#define CLK_EVENT_ALLOCATION_FAILURE                -100
16796#define CLK_OUT_OF_RESOURCES                        -5
16797
16798#define CLK_NULL_QUEUE                              0
16799#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
16800
16801// execution model related definitions
16802#define CLK_ENQUEUE_FLAGS_NO_WAIT                   0x0
16803#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL               0x1
16804#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP           0x2
16805
16806typedef int kernel_enqueue_flags_t;
16807typedef int clk_profiling_info;
16808
16809// Profiling info name (see capture_event_profiling_info)
16810#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
16811
16812#define MAX_WORK_DIM        3
16813
16814// ToDo: Remove definition of ndrange_t in Clang as an opaque type and add back
16815// the following ndrange_t definition.
16816#if 0
16817typedef struct {
16818    unsigned int workDimension;
16819    size_t globalWorkOffset[MAX_WORK_DIM];
16820    size_t globalWorkSize[MAX_WORK_DIM];
16821    size_t localWorkSize[MAX_WORK_DIM];
16822} ndrange_t;
16823#endif
16824
16825ndrange_t __ovld ndrange_1D(size_t);
16826ndrange_t __ovld ndrange_1D(size_t, size_t);
16827ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
16828
16829ndrange_t __ovld ndrange_2D(const size_t[2]);
16830ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
16831ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
16832
16833ndrange_t __ovld ndrange_3D(const size_t[3]);
16834ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
16835ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
16836
16837int __ovld enqueue_marker(queue_t, uint, const __private clk_event_t*, __private clk_event_t*);
16838
16839void __ovld retain_event(clk_event_t);
16840
16841void __ovld release_event(clk_event_t);
16842
16843clk_event_t create_user_event(void);
16844
16845void __ovld set_user_event_status(clk_event_t e, int state);
16846
16847bool is_valid_event (clk_event_t event);
16848
16849void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
16850
16851queue_t __ovld get_default_queue(void);
16852#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16853
16854// OpenCL Extension v2.0 s9.17 - Sub-groups
16855
16856#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
16857// Shared Sub Group Functions
16858uint    __ovld get_sub_group_size(void);
16859uint    __ovld get_max_sub_group_size(void);
16860uint    __ovld get_num_sub_groups(void);
16861#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16862uint    __ovld get_enqueued_num_sub_groups(void);
16863#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16864uint    __ovld get_sub_group_id(void);
16865uint    __ovld get_sub_group_local_id(void);
16866
16867void    __ovld sub_group_barrier(cl_mem_fence_flags flags);
16868#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16869void    __ovld sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
16870#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16871
16872int     __ovld sub_group_all(int predicate);
16873int     __ovld sub_group_any(int predicate);
16874
16875int     __ovld sub_group_broadcast(int   x, uint sub_group_local_id);
16876uint    __ovld sub_group_broadcast(uint  x, uint sub_group_local_id);
16877long    __ovld sub_group_broadcast(long  x, uint sub_group_local_id);
16878ulong   __ovld sub_group_broadcast(ulong x, uint sub_group_local_id);
16879float   __ovld sub_group_broadcast(float x, uint sub_group_local_id);
16880
16881int     __ovld sub_group_reduce_add(int   x);
16882uint    __ovld sub_group_reduce_add(uint  x);
16883long    __ovld sub_group_reduce_add(long  x);
16884ulong   __ovld sub_group_reduce_add(ulong x);
16885float   __ovld sub_group_reduce_add(float x);
16886int     __ovld sub_group_reduce_min(int   x);
16887uint    __ovld sub_group_reduce_min(uint  x);
16888long    __ovld sub_group_reduce_min(long  x);
16889ulong   __ovld sub_group_reduce_min(ulong x);
16890float   __ovld sub_group_reduce_min(float x);
16891int     __ovld sub_group_reduce_max(int   x);
16892uint    __ovld sub_group_reduce_max(uint  x);
16893long    __ovld sub_group_reduce_max(long  x);
16894ulong   __ovld sub_group_reduce_max(ulong x);
16895float   __ovld sub_group_reduce_max(float x);
16896
16897int     __ovld sub_group_scan_exclusive_add(int   x);
16898uint    __ovld sub_group_scan_exclusive_add(uint  x);
16899long    __ovld sub_group_scan_exclusive_add(long  x);
16900ulong   __ovld sub_group_scan_exclusive_add(ulong x);
16901float   __ovld sub_group_scan_exclusive_add(float x);
16902int     __ovld sub_group_scan_exclusive_min(int   x);
16903uint    __ovld sub_group_scan_exclusive_min(uint  x);
16904long    __ovld sub_group_scan_exclusive_min(long  x);
16905ulong   __ovld sub_group_scan_exclusive_min(ulong x);
16906float   __ovld sub_group_scan_exclusive_min(float x);
16907int     __ovld sub_group_scan_exclusive_max(int   x);
16908uint    __ovld sub_group_scan_exclusive_max(uint  x);
16909long    __ovld sub_group_scan_exclusive_max(long  x);
16910ulong   __ovld sub_group_scan_exclusive_max(ulong x);
16911float   __ovld sub_group_scan_exclusive_max(float x);
16912
16913int     __ovld sub_group_scan_inclusive_add(int   x);
16914uint    __ovld sub_group_scan_inclusive_add(uint  x);
16915long    __ovld sub_group_scan_inclusive_add(long  x);
16916ulong   __ovld sub_group_scan_inclusive_add(ulong x);
16917float   __ovld sub_group_scan_inclusive_add(float x);
16918int     __ovld sub_group_scan_inclusive_min(int   x);
16919uint    __ovld sub_group_scan_inclusive_min(uint  x);
16920long    __ovld sub_group_scan_inclusive_min(long  x);
16921ulong   __ovld sub_group_scan_inclusive_min(ulong x);
16922float   __ovld sub_group_scan_inclusive_min(float x);
16923int     __ovld sub_group_scan_inclusive_max(int   x);
16924uint    __ovld sub_group_scan_inclusive_max(uint  x);
16925long    __ovld sub_group_scan_inclusive_max(long  x);
16926ulong   __ovld sub_group_scan_inclusive_max(ulong x);
16927float   __ovld sub_group_scan_inclusive_max(float x);
16928
16929#ifdef cl_khr_fp16
16930half    __ovld sub_group_broadcast(half x, uint sub_group_local_id);
16931half    __ovld sub_group_reduce_add(half x);
16932half    __ovld sub_group_reduce_min(half x);
16933half    __ovld sub_group_reduce_max(half x);
16934half    __ovld sub_group_scan_exclusive_add(half x);
16935half    __ovld sub_group_scan_exclusive_min(half x);
16936half    __ovld sub_group_scan_exclusive_max(half x);
16937half    __ovld sub_group_scan_inclusive_add(half x);
16938half    __ovld sub_group_scan_inclusive_min(half x);
16939half    __ovld sub_group_scan_inclusive_max(half x);
16940#endif //cl_khr_fp16
16941
16942#ifdef cl_khr_fp64
16943double  __ovld sub_group_broadcast(double x, uint sub_group_local_id);
16944double  __ovld sub_group_reduce_add(double x);
16945double  __ovld sub_group_reduce_min(double x);
16946double  __ovld sub_group_reduce_max(double x);
16947double  __ovld sub_group_scan_exclusive_add(double x);
16948double  __ovld sub_group_scan_exclusive_min(double x);
16949double  __ovld sub_group_scan_exclusive_max(double x);
16950double  __ovld sub_group_scan_inclusive_add(double x);
16951double  __ovld sub_group_scan_inclusive_min(double x);
16952double  __ovld sub_group_scan_inclusive_max(double x);
16953#endif //cl_khr_fp64
16954
16955#endif //cl_khr_subgroups cl_intel_subgroups
16956
16957// Disable any extensions we may have enabled previously.
16958#pragma OPENCL EXTENSION all : disable
16959
16960#undef __cnfn
16961#undef __ovld
16962#endif //_OPENCL_H_
16963