opencl-c.h revision 344779
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#if __OPENCL_C_VERSION__ < CL_VERSION_2_0
20#ifdef cl_khr_3d_image_writes
21#pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable
22#endif //cl_khr_3d_image_writes
23#endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
24
25#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
26#ifndef cl_intel_planar_yuv
27#define cl_intel_planar_yuv
28#endif // cl_intel_planar_yuv
29#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
30#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
31#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
32
33#define __ovld __attribute__((overloadable))
34#define __conv __attribute__((convergent))
35
36// Optimizations
37#define __purefn __attribute__((pure))
38#define __cnfn __attribute__((const))
39
40// built-in scalar data types:
41
42/**
43 * An unsigned 8-bit integer.
44 */
45typedef unsigned char uchar;
46
47/**
48 * An unsigned 16-bit integer.
49 */
50typedef unsigned short ushort;
51
52/**
53 * An unsigned 32-bit integer.
54 */
55typedef unsigned int uint;
56
57/**
58 * An unsigned 64-bit integer.
59 */
60typedef unsigned long ulong;
61
62/**
63 * The unsigned integer type of the result of the sizeof operator. This
64 * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS
65 * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if
66 * CL_DEVICE_ADDRESS_BITS is 64-bits.
67 */
68typedef __SIZE_TYPE__ size_t;
69
70/**
71 * A signed integer type that is the result of subtracting two pointers.
72 * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS
73 * defined in table 4.3 is 32-bits and is a 64-bit signed integer if
74 * CL_DEVICE_ADDRESS_BITS is 64-bits.
75 */
76typedef __PTRDIFF_TYPE__ ptrdiff_t;
77
78/**
79* A signed integer type with the property that any valid pointer to
80* void can be converted to this type, then converted back to pointer
81* to void, and the result will compare equal to the original pointer.
82*/
83typedef __INTPTR_TYPE__ intptr_t;
84
85/**
86* An unsigned integer type with the property that any valid pointer to
87* void can be converted to this type, then converted back to pointer
88* to void, and the result will compare equal to the original pointer.
89*/
90typedef __UINTPTR_TYPE__ uintptr_t;
91
92// built-in vector data types:
93typedef char char2 __attribute__((ext_vector_type(2)));
94typedef char char3 __attribute__((ext_vector_type(3)));
95typedef char char4 __attribute__((ext_vector_type(4)));
96typedef char char8 __attribute__((ext_vector_type(8)));
97typedef char char16 __attribute__((ext_vector_type(16)));
98typedef uchar uchar2 __attribute__((ext_vector_type(2)));
99typedef uchar uchar3 __attribute__((ext_vector_type(3)));
100typedef uchar uchar4 __attribute__((ext_vector_type(4)));
101typedef uchar uchar8 __attribute__((ext_vector_type(8)));
102typedef uchar uchar16 __attribute__((ext_vector_type(16)));
103typedef short short2 __attribute__((ext_vector_type(2)));
104typedef short short3 __attribute__((ext_vector_type(3)));
105typedef short short4 __attribute__((ext_vector_type(4)));
106typedef short short8 __attribute__((ext_vector_type(8)));
107typedef short short16 __attribute__((ext_vector_type(16)));
108typedef ushort ushort2 __attribute__((ext_vector_type(2)));
109typedef ushort ushort3 __attribute__((ext_vector_type(3)));
110typedef ushort ushort4 __attribute__((ext_vector_type(4)));
111typedef ushort ushort8 __attribute__((ext_vector_type(8)));
112typedef ushort ushort16 __attribute__((ext_vector_type(16)));
113typedef int int2 __attribute__((ext_vector_type(2)));
114typedef int int3 __attribute__((ext_vector_type(3)));
115typedef int int4 __attribute__((ext_vector_type(4)));
116typedef int int8 __attribute__((ext_vector_type(8)));
117typedef int int16 __attribute__((ext_vector_type(16)));
118typedef uint uint2 __attribute__((ext_vector_type(2)));
119typedef uint uint3 __attribute__((ext_vector_type(3)));
120typedef uint uint4 __attribute__((ext_vector_type(4)));
121typedef uint uint8 __attribute__((ext_vector_type(8)));
122typedef uint uint16 __attribute__((ext_vector_type(16)));
123typedef long long2 __attribute__((ext_vector_type(2)));
124typedef long long3 __attribute__((ext_vector_type(3)));
125typedef long long4 __attribute__((ext_vector_type(4)));
126typedef long long8 __attribute__((ext_vector_type(8)));
127typedef long long16 __attribute__((ext_vector_type(16)));
128typedef ulong ulong2 __attribute__((ext_vector_type(2)));
129typedef ulong ulong3 __attribute__((ext_vector_type(3)));
130typedef ulong ulong4 __attribute__((ext_vector_type(4)));
131typedef ulong ulong8 __attribute__((ext_vector_type(8)));
132typedef ulong ulong16 __attribute__((ext_vector_type(16)));
133typedef float float2 __attribute__((ext_vector_type(2)));
134typedef float float3 __attribute__((ext_vector_type(3)));
135typedef float float4 __attribute__((ext_vector_type(4)));
136typedef float float8 __attribute__((ext_vector_type(8)));
137typedef float float16 __attribute__((ext_vector_type(16)));
138#ifdef cl_khr_fp16
139#pragma OPENCL EXTENSION cl_khr_fp16 : enable
140typedef half half2 __attribute__((ext_vector_type(2)));
141typedef half half3 __attribute__((ext_vector_type(3)));
142typedef half half4 __attribute__((ext_vector_type(4)));
143typedef half half8 __attribute__((ext_vector_type(8)));
144typedef half half16 __attribute__((ext_vector_type(16)));
145#endif
146#ifdef cl_khr_fp64
147#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
148#pragma OPENCL EXTENSION cl_khr_fp64 : enable
149#endif
150typedef double double2 __attribute__((ext_vector_type(2)));
151typedef double double3 __attribute__((ext_vector_type(3)));
152typedef double double4 __attribute__((ext_vector_type(4)));
153typedef double double8 __attribute__((ext_vector_type(8)));
154typedef double double16 __attribute__((ext_vector_type(16)));
155#endif
156
157#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
158#define NULL ((void*)0)
159#endif
160
161/**
162 * Value of maximum non-infinite single-precision floating-point
163 * number.
164 */
165#define MAXFLOAT 0x1.fffffep127f
166
167/**
168 * A positive float constant expression. HUGE_VALF evaluates
169 * to +infinity. Used as an error value returned by the built-in
170 * math functions.
171 */
172#define HUGE_VALF (__builtin_huge_valf())
173
174/**
175 * A positive double constant expression. HUGE_VAL evaluates
176 * to +infinity. Used as an error value returned by the built-in
177 * math functions.
178 */
179#define HUGE_VAL (__builtin_huge_val())
180
181/**
182 * A constant expression of type float representing positive or
183 * unsigned infinity.
184 */
185#define INFINITY (__builtin_inff())
186
187/**
188 * A constant expression of type float representing a quiet NaN.
189 */
190#define NAN as_float(INT_MAX)
191
192#define FP_ILOGB0    INT_MIN
193#define FP_ILOGBNAN    INT_MAX
194
195#define FLT_DIG 6
196#define FLT_MANT_DIG 24
197#define FLT_MAX_10_EXP +38
198#define FLT_MAX_EXP +128
199#define FLT_MIN_10_EXP -37
200#define FLT_MIN_EXP -125
201#define FLT_RADIX 2
202#define FLT_MAX 0x1.fffffep127f
203#define FLT_MIN 0x1.0p-126f
204#define FLT_EPSILON 0x1.0p-23f
205
206#define M_E_F         2.71828182845904523536028747135266250f
207#define M_LOG2E_F     1.44269504088896340735992468100189214f
208#define M_LOG10E_F    0.434294481903251827651128918916605082f
209#define M_LN2_F       0.693147180559945309417232121458176568f
210#define M_LN10_F      2.30258509299404568401799145468436421f
211#define M_PI_F        3.14159265358979323846264338327950288f
212#define M_PI_2_F      1.57079632679489661923132169163975144f
213#define M_PI_4_F      0.785398163397448309615660845819875721f
214#define M_1_PI_F      0.318309886183790671537767526745028724f
215#define M_2_PI_F      0.636619772367581343075535053490057448f
216#define M_2_SQRTPI_F  1.12837916709551257389615890312154517f
217#define M_SQRT2_F     1.41421356237309504880168872420969808f
218#define M_SQRT1_2_F   0.707106781186547524400844362104849039f
219
220#define DBL_DIG 15
221#define DBL_MANT_DIG 53
222#define DBL_MAX_10_EXP +308
223#define DBL_MAX_EXP +1024
224#define DBL_MIN_10_EXP -307
225#define DBL_MIN_EXP -1021
226#define DBL_RADIX 2
227#define DBL_MAX 0x1.fffffffffffffp1023
228#define DBL_MIN 0x1.0p-1022
229#define DBL_EPSILON 0x1.0p-52
230
231#define M_E           0x1.5bf0a8b145769p+1
232#define M_LOG2E       0x1.71547652b82fep+0
233#define M_LOG10E      0x1.bcb7b1526e50ep-2
234#define M_LN2         0x1.62e42fefa39efp-1
235#define M_LN10        0x1.26bb1bbb55516p+1
236#define M_PI          0x1.921fb54442d18p+1
237#define M_PI_2        0x1.921fb54442d18p+0
238#define M_PI_4        0x1.921fb54442d18p-1
239#define M_1_PI        0x1.45f306dc9c883p-2
240#define M_2_PI        0x1.45f306dc9c883p-1
241#define M_2_SQRTPI    0x1.20dd750429b6dp+0
242#define M_SQRT2       0x1.6a09e667f3bcdp+0
243#define M_SQRT1_2     0x1.6a09e667f3bcdp-1
244
245#ifdef cl_khr_fp16
246
247#define HALF_DIG 3
248#define HALF_MANT_DIG 11
249#define HALF_MAX_10_EXP +4
250#define HALF_MAX_EXP +16
251#define HALF_MIN_10_EXP -4
252#define HALF_MIN_EXP -13
253#define HALF_RADIX 2
254#define HALF_MAX ((0x1.ffcp15h))
255#define HALF_MIN ((0x1.0p-14h))
256#define HALF_EPSILON ((0x1.0p-10h))
257
258#define M_E_H         2.71828182845904523536028747135266250h
259#define M_LOG2E_H     1.44269504088896340735992468100189214h
260#define M_LOG10E_H    0.434294481903251827651128918916605082h
261#define M_LN2_H       0.693147180559945309417232121458176568h
262#define M_LN10_H      2.30258509299404568401799145468436421h
263#define M_PI_H        3.14159265358979323846264338327950288h
264#define M_PI_2_H      1.57079632679489661923132169163975144h
265#define M_PI_4_H      0.785398163397448309615660845819875721h
266#define M_1_PI_H      0.318309886183790671537767526745028724h
267#define M_2_PI_H      0.636619772367581343075535053490057448h
268#define M_2_SQRTPI_H  1.12837916709551257389615890312154517h
269#define M_SQRT2_H     1.41421356237309504880168872420969808h
270#define M_SQRT1_2_H   0.707106781186547524400844362104849039h
271
272#endif //cl_khr_fp16
273
274#define CHAR_BIT    8
275#define SCHAR_MAX  127
276#define SCHAR_MIN  (-128)
277#define UCHAR_MAX  255
278#define CHAR_MAX  SCHAR_MAX
279#define CHAR_MIN  SCHAR_MIN
280#define USHRT_MAX  65535
281#define SHRT_MAX  32767
282#define SHRT_MIN  (-32768)
283#define UINT_MAX  0xffffffff
284#define INT_MAX    2147483647
285#define INT_MIN    (-2147483647-1)
286#define ULONG_MAX  0xffffffffffffffffUL
287#define LONG_MAX  0x7fffffffffffffffL
288#define LONG_MIN  (-0x7fffffffffffffffL-1)
289
290// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
291
292char __ovld __cnfn convert_char_rte(char);
293char __ovld __cnfn convert_char_sat_rte(char);
294char __ovld __cnfn convert_char_rtz(char);
295char __ovld __cnfn convert_char_sat_rtz(char);
296char __ovld __cnfn convert_char_rtp(char);
297char __ovld __cnfn convert_char_sat_rtp(char);
298char __ovld __cnfn convert_char_rtn(char);
299char __ovld __cnfn convert_char_sat_rtn(char);
300char __ovld __cnfn convert_char(char);
301char __ovld __cnfn convert_char_sat(char);
302char __ovld __cnfn convert_char_rte(uchar);
303char __ovld __cnfn convert_char_sat_rte(uchar);
304char __ovld __cnfn convert_char_rtz(uchar);
305char __ovld __cnfn convert_char_sat_rtz(uchar);
306char __ovld __cnfn convert_char_rtp(uchar);
307char __ovld __cnfn convert_char_sat_rtp(uchar);
308char __ovld __cnfn convert_char_rtn(uchar);
309char __ovld __cnfn convert_char_sat_rtn(uchar);
310char __ovld __cnfn convert_char(uchar);
311char __ovld __cnfn convert_char_sat(uchar);
312char __ovld __cnfn convert_char_rte(short);
313char __ovld __cnfn convert_char_sat_rte(short);
314char __ovld __cnfn convert_char_rtz(short);
315char __ovld __cnfn convert_char_sat_rtz(short);
316char __ovld __cnfn convert_char_rtp(short);
317char __ovld __cnfn convert_char_sat_rtp(short);
318char __ovld __cnfn convert_char_rtn(short);
319char __ovld __cnfn convert_char_sat_rtn(short);
320char __ovld __cnfn convert_char(short);
321char __ovld __cnfn convert_char_sat(short);
322char __ovld __cnfn convert_char_rte(ushort);
323char __ovld __cnfn convert_char_sat_rte(ushort);
324char __ovld __cnfn convert_char_rtz(ushort);
325char __ovld __cnfn convert_char_sat_rtz(ushort);
326char __ovld __cnfn convert_char_rtp(ushort);
327char __ovld __cnfn convert_char_sat_rtp(ushort);
328char __ovld __cnfn convert_char_rtn(ushort);
329char __ovld __cnfn convert_char_sat_rtn(ushort);
330char __ovld __cnfn convert_char(ushort);
331char __ovld __cnfn convert_char_sat(ushort);
332char __ovld __cnfn convert_char_rte(int);
333char __ovld __cnfn convert_char_sat_rte(int);
334char __ovld __cnfn convert_char_rtz(int);
335char __ovld __cnfn convert_char_sat_rtz(int);
336char __ovld __cnfn convert_char_rtp(int);
337char __ovld __cnfn convert_char_sat_rtp(int);
338char __ovld __cnfn convert_char_rtn(int);
339char __ovld __cnfn convert_char_sat_rtn(int);
340char __ovld __cnfn convert_char(int);
341char __ovld __cnfn convert_char_sat(int);
342char __ovld __cnfn convert_char_rte(uint);
343char __ovld __cnfn convert_char_sat_rte(uint);
344char __ovld __cnfn convert_char_rtz(uint);
345char __ovld __cnfn convert_char_sat_rtz(uint);
346char __ovld __cnfn convert_char_rtp(uint);
347char __ovld __cnfn convert_char_sat_rtp(uint);
348char __ovld __cnfn convert_char_rtn(uint);
349char __ovld __cnfn convert_char_sat_rtn(uint);
350char __ovld __cnfn convert_char(uint);
351char __ovld __cnfn convert_char_sat(uint);
352char __ovld __cnfn convert_char_rte(long);
353char __ovld __cnfn convert_char_sat_rte(long);
354char __ovld __cnfn convert_char_rtz(long);
355char __ovld __cnfn convert_char_sat_rtz(long);
356char __ovld __cnfn convert_char_rtp(long);
357char __ovld __cnfn convert_char_sat_rtp(long);
358char __ovld __cnfn convert_char_rtn(long);
359char __ovld __cnfn convert_char_sat_rtn(long);
360char __ovld __cnfn convert_char(long);
361char __ovld __cnfn convert_char_sat(long);
362char __ovld __cnfn convert_char_rte(ulong);
363char __ovld __cnfn convert_char_sat_rte(ulong);
364char __ovld __cnfn convert_char_rtz(ulong);
365char __ovld __cnfn convert_char_sat_rtz(ulong);
366char __ovld __cnfn convert_char_rtp(ulong);
367char __ovld __cnfn convert_char_sat_rtp(ulong);
368char __ovld __cnfn convert_char_rtn(ulong);
369char __ovld __cnfn convert_char_sat_rtn(ulong);
370char __ovld __cnfn convert_char(ulong);
371char __ovld __cnfn convert_char_sat(ulong);
372char __ovld __cnfn convert_char_rte(float);
373char __ovld __cnfn convert_char_sat_rte(float);
374char __ovld __cnfn convert_char_rtz(float);
375char __ovld __cnfn convert_char_sat_rtz(float);
376char __ovld __cnfn convert_char_rtp(float);
377char __ovld __cnfn convert_char_sat_rtp(float);
378char __ovld __cnfn convert_char_rtn(float);
379char __ovld __cnfn convert_char_sat_rtn(float);
380char __ovld __cnfn convert_char(float);
381char __ovld __cnfn convert_char_sat(float);
382uchar __ovld __cnfn convert_uchar_rte(char);
383uchar __ovld __cnfn convert_uchar_sat_rte(char);
384uchar __ovld __cnfn convert_uchar_rtz(char);
385uchar __ovld __cnfn convert_uchar_sat_rtz(char);
386uchar __ovld __cnfn convert_uchar_rtp(char);
387uchar __ovld __cnfn convert_uchar_sat_rtp(char);
388uchar __ovld __cnfn convert_uchar_rtn(char);
389uchar __ovld __cnfn convert_uchar_sat_rtn(char);
390uchar __ovld __cnfn convert_uchar(char);
391uchar __ovld __cnfn convert_uchar_sat(char);
392uchar __ovld __cnfn convert_uchar_rte(uchar);
393uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
394uchar __ovld __cnfn convert_uchar_rtz(uchar);
395uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
396uchar __ovld __cnfn convert_uchar_rtp(uchar);
397uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
398uchar __ovld __cnfn convert_uchar_rtn(uchar);
399uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
400uchar __ovld __cnfn convert_uchar(uchar);
401uchar __ovld __cnfn convert_uchar_sat(uchar);
402uchar __ovld __cnfn convert_uchar_rte(short);
403uchar __ovld __cnfn convert_uchar_sat_rte(short);
404uchar __ovld __cnfn convert_uchar_rtz(short);
405uchar __ovld __cnfn convert_uchar_sat_rtz(short);
406uchar __ovld __cnfn convert_uchar_rtp(short);
407uchar __ovld __cnfn convert_uchar_sat_rtp(short);
408uchar __ovld __cnfn convert_uchar_rtn(short);
409uchar __ovld __cnfn convert_uchar_sat_rtn(short);
410uchar __ovld __cnfn convert_uchar(short);
411uchar __ovld __cnfn convert_uchar_sat(short);
412uchar __ovld __cnfn convert_uchar_rte(ushort);
413uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
414uchar __ovld __cnfn convert_uchar_rtz(ushort);
415uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
416uchar __ovld __cnfn convert_uchar_rtp(ushort);
417uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
418uchar __ovld __cnfn convert_uchar_rtn(ushort);
419uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
420uchar __ovld __cnfn convert_uchar(ushort);
421uchar __ovld __cnfn convert_uchar_sat(ushort);
422uchar __ovld __cnfn convert_uchar_rte(int);
423uchar __ovld __cnfn convert_uchar_sat_rte(int);
424uchar __ovld __cnfn convert_uchar_rtz(int);
425uchar __ovld __cnfn convert_uchar_sat_rtz(int);
426uchar __ovld __cnfn convert_uchar_rtp(int);
427uchar __ovld __cnfn convert_uchar_sat_rtp(int);
428uchar __ovld __cnfn convert_uchar_rtn(int);
429uchar __ovld __cnfn convert_uchar_sat_rtn(int);
430uchar __ovld __cnfn convert_uchar(int);
431uchar __ovld __cnfn convert_uchar_sat(int);
432uchar __ovld __cnfn convert_uchar_rte(uint);
433uchar __ovld __cnfn convert_uchar_sat_rte(uint);
434uchar __ovld __cnfn convert_uchar_rtz(uint);
435uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
436uchar __ovld __cnfn convert_uchar_rtp(uint);
437uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
438uchar __ovld __cnfn convert_uchar_rtn(uint);
439uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
440uchar __ovld __cnfn convert_uchar(uint);
441uchar __ovld __cnfn convert_uchar_sat(uint);
442uchar __ovld __cnfn convert_uchar_rte(long);
443uchar __ovld __cnfn convert_uchar_sat_rte(long);
444uchar __ovld __cnfn convert_uchar_rtz(long);
445uchar __ovld __cnfn convert_uchar_sat_rtz(long);
446uchar __ovld __cnfn convert_uchar_rtp(long);
447uchar __ovld __cnfn convert_uchar_sat_rtp(long);
448uchar __ovld __cnfn convert_uchar_rtn(long);
449uchar __ovld __cnfn convert_uchar_sat_rtn(long);
450uchar __ovld __cnfn convert_uchar(long);
451uchar __ovld __cnfn convert_uchar_sat(long);
452uchar __ovld __cnfn convert_uchar_rte(ulong);
453uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
454uchar __ovld __cnfn convert_uchar_rtz(ulong);
455uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
456uchar __ovld __cnfn convert_uchar_rtp(ulong);
457uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
458uchar __ovld __cnfn convert_uchar_rtn(ulong);
459uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
460uchar __ovld __cnfn convert_uchar(ulong);
461uchar __ovld __cnfn convert_uchar_sat(ulong);
462uchar __ovld __cnfn convert_uchar_rte(float);
463uchar __ovld __cnfn convert_uchar_sat_rte(float);
464uchar __ovld __cnfn convert_uchar_rtz(float);
465uchar __ovld __cnfn convert_uchar_sat_rtz(float);
466uchar __ovld __cnfn convert_uchar_rtp(float);
467uchar __ovld __cnfn convert_uchar_sat_rtp(float);
468uchar __ovld __cnfn convert_uchar_rtn(float);
469uchar __ovld __cnfn convert_uchar_sat_rtn(float);
470uchar __ovld __cnfn convert_uchar(float);
471uchar __ovld __cnfn convert_uchar_sat(float);
472
473short __ovld __cnfn convert_short_rte(char);
474short __ovld __cnfn convert_short_sat_rte(char);
475short __ovld __cnfn convert_short_rtz(char);
476short __ovld __cnfn convert_short_sat_rtz(char);
477short __ovld __cnfn convert_short_rtp(char);
478short __ovld __cnfn convert_short_sat_rtp(char);
479short __ovld __cnfn convert_short_rtn(char);
480short __ovld __cnfn convert_short_sat_rtn(char);
481short __ovld __cnfn convert_short(char);
482short __ovld __cnfn convert_short_sat(char);
483short __ovld __cnfn convert_short_rte(uchar);
484short __ovld __cnfn convert_short_sat_rte(uchar);
485short __ovld __cnfn convert_short_rtz(uchar);
486short __ovld __cnfn convert_short_sat_rtz(uchar);
487short __ovld __cnfn convert_short_rtp(uchar);
488short __ovld __cnfn convert_short_sat_rtp(uchar);
489short __ovld __cnfn convert_short_rtn(uchar);
490short __ovld __cnfn convert_short_sat_rtn(uchar);
491short __ovld __cnfn convert_short(uchar);
492short __ovld __cnfn convert_short_sat(uchar);
493short __ovld __cnfn convert_short_rte(short);
494short __ovld __cnfn convert_short_sat_rte(short);
495short __ovld __cnfn convert_short_rtz(short);
496short __ovld __cnfn convert_short_sat_rtz(short);
497short __ovld __cnfn convert_short_rtp(short);
498short __ovld __cnfn convert_short_sat_rtp(short);
499short __ovld __cnfn convert_short_rtn(short);
500short __ovld __cnfn convert_short_sat_rtn(short);
501short __ovld __cnfn convert_short(short);
502short __ovld __cnfn convert_short_sat(short);
503short __ovld __cnfn convert_short_rte(ushort);
504short __ovld __cnfn convert_short_sat_rte(ushort);
505short __ovld __cnfn convert_short_rtz(ushort);
506short __ovld __cnfn convert_short_sat_rtz(ushort);
507short __ovld __cnfn convert_short_rtp(ushort);
508short __ovld __cnfn convert_short_sat_rtp(ushort);
509short __ovld __cnfn convert_short_rtn(ushort);
510short __ovld __cnfn convert_short_sat_rtn(ushort);
511short __ovld __cnfn convert_short(ushort);
512short __ovld __cnfn convert_short_sat(ushort);
513short __ovld __cnfn convert_short_rte(int);
514short __ovld __cnfn convert_short_sat_rte(int);
515short __ovld __cnfn convert_short_rtz(int);
516short __ovld __cnfn convert_short_sat_rtz(int);
517short __ovld __cnfn convert_short_rtp(int);
518short __ovld __cnfn convert_short_sat_rtp(int);
519short __ovld __cnfn convert_short_rtn(int);
520short __ovld __cnfn convert_short_sat_rtn(int);
521short __ovld __cnfn convert_short(int);
522short __ovld __cnfn convert_short_sat(int);
523short __ovld __cnfn convert_short_rte(uint);
524short __ovld __cnfn convert_short_sat_rte(uint);
525short __ovld __cnfn convert_short_rtz(uint);
526short __ovld __cnfn convert_short_sat_rtz(uint);
527short __ovld __cnfn convert_short_rtp(uint);
528short __ovld __cnfn convert_short_sat_rtp(uint);
529short __ovld __cnfn convert_short_rtn(uint);
530short __ovld __cnfn convert_short_sat_rtn(uint);
531short __ovld __cnfn convert_short(uint);
532short __ovld __cnfn convert_short_sat(uint);
533short __ovld __cnfn convert_short_rte(long);
534short __ovld __cnfn convert_short_sat_rte(long);
535short __ovld __cnfn convert_short_rtz(long);
536short __ovld __cnfn convert_short_sat_rtz(long);
537short __ovld __cnfn convert_short_rtp(long);
538short __ovld __cnfn convert_short_sat_rtp(long);
539short __ovld __cnfn convert_short_rtn(long);
540short __ovld __cnfn convert_short_sat_rtn(long);
541short __ovld __cnfn convert_short(long);
542short __ovld __cnfn convert_short_sat(long);
543short __ovld __cnfn convert_short_rte(ulong);
544short __ovld __cnfn convert_short_sat_rte(ulong);
545short __ovld __cnfn convert_short_rtz(ulong);
546short __ovld __cnfn convert_short_sat_rtz(ulong);
547short __ovld __cnfn convert_short_rtp(ulong);
548short __ovld __cnfn convert_short_sat_rtp(ulong);
549short __ovld __cnfn convert_short_rtn(ulong);
550short __ovld __cnfn convert_short_sat_rtn(ulong);
551short __ovld __cnfn convert_short(ulong);
552short __ovld __cnfn convert_short_sat(ulong);
553short __ovld __cnfn convert_short_rte(float);
554short __ovld __cnfn convert_short_sat_rte(float);
555short __ovld __cnfn convert_short_rtz(float);
556short __ovld __cnfn convert_short_sat_rtz(float);
557short __ovld __cnfn convert_short_rtp(float);
558short __ovld __cnfn convert_short_sat_rtp(float);
559short __ovld __cnfn convert_short_rtn(float);
560short __ovld __cnfn convert_short_sat_rtn(float);
561short __ovld __cnfn convert_short(float);
562short __ovld __cnfn convert_short_sat(float);
563ushort __ovld __cnfn convert_ushort_rte(char);
564ushort __ovld __cnfn convert_ushort_sat_rte(char);
565ushort __ovld __cnfn convert_ushort_rtz(char);
566ushort __ovld __cnfn convert_ushort_sat_rtz(char);
567ushort __ovld __cnfn convert_ushort_rtp(char);
568ushort __ovld __cnfn convert_ushort_sat_rtp(char);
569ushort __ovld __cnfn convert_ushort_rtn(char);
570ushort __ovld __cnfn convert_ushort_sat_rtn(char);
571ushort __ovld __cnfn convert_ushort(char);
572ushort __ovld __cnfn convert_ushort_sat(char);
573ushort __ovld __cnfn convert_ushort_rte(uchar);
574ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
575ushort __ovld __cnfn convert_ushort_rtz(uchar);
576ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
577ushort __ovld __cnfn convert_ushort_rtp(uchar);
578ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
579ushort __ovld __cnfn convert_ushort_rtn(uchar);
580ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
581ushort __ovld __cnfn convert_ushort(uchar);
582ushort __ovld __cnfn convert_ushort_sat(uchar);
583ushort __ovld __cnfn convert_ushort_rte(short);
584ushort __ovld __cnfn convert_ushort_sat_rte(short);
585ushort __ovld __cnfn convert_ushort_rtz(short);
586ushort __ovld __cnfn convert_ushort_sat_rtz(short);
587ushort __ovld __cnfn convert_ushort_rtp(short);
588ushort __ovld __cnfn convert_ushort_sat_rtp(short);
589ushort __ovld __cnfn convert_ushort_rtn(short);
590ushort __ovld __cnfn convert_ushort_sat_rtn(short);
591ushort __ovld __cnfn convert_ushort(short);
592ushort __ovld __cnfn convert_ushort_sat(short);
593ushort __ovld __cnfn convert_ushort_rte(ushort);
594ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
595ushort __ovld __cnfn convert_ushort_rtz(ushort);
596ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
597ushort __ovld __cnfn convert_ushort_rtp(ushort);
598ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
599ushort __ovld __cnfn convert_ushort_rtn(ushort);
600ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
601ushort __ovld __cnfn convert_ushort(ushort);
602ushort __ovld __cnfn convert_ushort_sat(ushort);
603ushort __ovld __cnfn convert_ushort_rte(int);
604ushort __ovld __cnfn convert_ushort_sat_rte(int);
605ushort __ovld __cnfn convert_ushort_rtz(int);
606ushort __ovld __cnfn convert_ushort_sat_rtz(int);
607ushort __ovld __cnfn convert_ushort_rtp(int);
608ushort __ovld __cnfn convert_ushort_sat_rtp(int);
609ushort __ovld __cnfn convert_ushort_rtn(int);
610ushort __ovld __cnfn convert_ushort_sat_rtn(int);
611ushort __ovld __cnfn convert_ushort(int);
612ushort __ovld __cnfn convert_ushort_sat(int);
613ushort __ovld __cnfn convert_ushort_rte(uint);
614ushort __ovld __cnfn convert_ushort_sat_rte(uint);
615ushort __ovld __cnfn convert_ushort_rtz(uint);
616ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
617ushort __ovld __cnfn convert_ushort_rtp(uint);
618ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
619ushort __ovld __cnfn convert_ushort_rtn(uint);
620ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
621ushort __ovld __cnfn convert_ushort(uint);
622ushort __ovld __cnfn convert_ushort_sat(uint);
623ushort __ovld __cnfn convert_ushort_rte(long);
624ushort __ovld __cnfn convert_ushort_sat_rte(long);
625ushort __ovld __cnfn convert_ushort_rtz(long);
626ushort __ovld __cnfn convert_ushort_sat_rtz(long);
627ushort __ovld __cnfn convert_ushort_rtp(long);
628ushort __ovld __cnfn convert_ushort_sat_rtp(long);
629ushort __ovld __cnfn convert_ushort_rtn(long);
630ushort __ovld __cnfn convert_ushort_sat_rtn(long);
631ushort __ovld __cnfn convert_ushort(long);
632ushort __ovld __cnfn convert_ushort_sat(long);
633ushort __ovld __cnfn convert_ushort_rte(ulong);
634ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
635ushort __ovld __cnfn convert_ushort_rtz(ulong);
636ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
637ushort __ovld __cnfn convert_ushort_rtp(ulong);
638ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
639ushort __ovld __cnfn convert_ushort_rtn(ulong);
640ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
641ushort __ovld __cnfn convert_ushort(ulong);
642ushort __ovld __cnfn convert_ushort_sat(ulong);
643ushort __ovld __cnfn convert_ushort_rte(float);
644ushort __ovld __cnfn convert_ushort_sat_rte(float);
645ushort __ovld __cnfn convert_ushort_rtz(float);
646ushort __ovld __cnfn convert_ushort_sat_rtz(float);
647ushort __ovld __cnfn convert_ushort_rtp(float);
648ushort __ovld __cnfn convert_ushort_sat_rtp(float);
649ushort __ovld __cnfn convert_ushort_rtn(float);
650ushort __ovld __cnfn convert_ushort_sat_rtn(float);
651ushort __ovld __cnfn convert_ushort(float);
652ushort __ovld __cnfn convert_ushort_sat(float);
653int __ovld __cnfn convert_int_rte(char);
654int __ovld __cnfn convert_int_sat_rte(char);
655int __ovld __cnfn convert_int_rtz(char);
656int __ovld __cnfn convert_int_sat_rtz(char);
657int __ovld __cnfn convert_int_rtp(char);
658int __ovld __cnfn convert_int_sat_rtp(char);
659int __ovld __cnfn convert_int_rtn(char);
660int __ovld __cnfn convert_int_sat_rtn(char);
661int __ovld __cnfn convert_int(char);
662int __ovld __cnfn convert_int_sat(char);
663int __ovld __cnfn convert_int_rte(uchar);
664int __ovld __cnfn convert_int_sat_rte(uchar);
665int __ovld __cnfn convert_int_rtz(uchar);
666int __ovld __cnfn convert_int_sat_rtz(uchar);
667int __ovld __cnfn convert_int_rtp(uchar);
668int __ovld __cnfn convert_int_sat_rtp(uchar);
669int __ovld __cnfn convert_int_rtn(uchar);
670int __ovld __cnfn convert_int_sat_rtn(uchar);
671int __ovld __cnfn convert_int(uchar);
672int __ovld __cnfn convert_int_sat(uchar);
673int __ovld __cnfn convert_int_rte(short);
674int __ovld __cnfn convert_int_sat_rte(short);
675int __ovld __cnfn convert_int_rtz(short);
676int __ovld __cnfn convert_int_sat_rtz(short);
677int __ovld __cnfn convert_int_rtp(short);
678int __ovld __cnfn convert_int_sat_rtp(short);
679int __ovld __cnfn convert_int_rtn(short);
680int __ovld __cnfn convert_int_sat_rtn(short);
681int __ovld __cnfn convert_int(short);
682int __ovld __cnfn convert_int_sat(short);
683int __ovld __cnfn convert_int_rte(ushort);
684int __ovld __cnfn convert_int_sat_rte(ushort);
685int __ovld __cnfn convert_int_rtz(ushort);
686int __ovld __cnfn convert_int_sat_rtz(ushort);
687int __ovld __cnfn convert_int_rtp(ushort);
688int __ovld __cnfn convert_int_sat_rtp(ushort);
689int __ovld __cnfn convert_int_rtn(ushort);
690int __ovld __cnfn convert_int_sat_rtn(ushort);
691int __ovld __cnfn convert_int(ushort);
692int __ovld __cnfn convert_int_sat(ushort);
693int __ovld __cnfn convert_int_rte(int);
694int __ovld __cnfn convert_int_sat_rte(int);
695int __ovld __cnfn convert_int_rtz(int);
696int __ovld __cnfn convert_int_sat_rtz(int);
697int __ovld __cnfn convert_int_rtp(int);
698int __ovld __cnfn convert_int_sat_rtp(int);
699int __ovld __cnfn convert_int_rtn(int);
700int __ovld __cnfn convert_int_sat_rtn(int);
701int __ovld __cnfn convert_int(int);
702int __ovld __cnfn convert_int_sat(int);
703int __ovld __cnfn convert_int_rte(uint);
704int __ovld __cnfn convert_int_sat_rte(uint);
705int __ovld __cnfn convert_int_rtz(uint);
706int __ovld __cnfn convert_int_sat_rtz(uint);
707int __ovld __cnfn convert_int_rtp(uint);
708int __ovld __cnfn convert_int_sat_rtp(uint);
709int __ovld __cnfn convert_int_rtn(uint);
710int __ovld __cnfn convert_int_sat_rtn(uint);
711int __ovld __cnfn convert_int(uint);
712int __ovld __cnfn convert_int_sat(uint);
713int __ovld __cnfn convert_int_rte(long);
714int __ovld __cnfn convert_int_sat_rte(long);
715int __ovld __cnfn convert_int_rtz(long);
716int __ovld __cnfn convert_int_sat_rtz(long);
717int __ovld __cnfn convert_int_rtp(long);
718int __ovld __cnfn convert_int_sat_rtp(long);
719int __ovld __cnfn convert_int_rtn(long);
720int __ovld __cnfn convert_int_sat_rtn(long);
721int __ovld __cnfn convert_int(long);
722int __ovld __cnfn convert_int_sat(long);
723int __ovld __cnfn convert_int_rte(ulong);
724int __ovld __cnfn convert_int_sat_rte(ulong);
725int __ovld __cnfn convert_int_rtz(ulong);
726int __ovld __cnfn convert_int_sat_rtz(ulong);
727int __ovld __cnfn convert_int_rtp(ulong);
728int __ovld __cnfn convert_int_sat_rtp(ulong);
729int __ovld __cnfn convert_int_rtn(ulong);
730int __ovld __cnfn convert_int_sat_rtn(ulong);
731int __ovld __cnfn convert_int(ulong);
732int __ovld __cnfn convert_int_sat(ulong);
733int __ovld __cnfn convert_int_rte(float);
734int __ovld __cnfn convert_int_sat_rte(float);
735int __ovld __cnfn convert_int_rtz(float);
736int __ovld __cnfn convert_int_sat_rtz(float);
737int __ovld __cnfn convert_int_rtp(float);
738int __ovld __cnfn convert_int_sat_rtp(float);
739int __ovld __cnfn convert_int_rtn(float);
740int __ovld __cnfn convert_int_sat_rtn(float);
741int __ovld __cnfn convert_int(float);
742int __ovld __cnfn convert_int_sat(float);
743uint __ovld __cnfn convert_uint_rte(char);
744uint __ovld __cnfn convert_uint_sat_rte(char);
745uint __ovld __cnfn convert_uint_rtz(char);
746uint __ovld __cnfn convert_uint_sat_rtz(char);
747uint __ovld __cnfn convert_uint_rtp(char);
748uint __ovld __cnfn convert_uint_sat_rtp(char);
749uint __ovld __cnfn convert_uint_rtn(char);
750uint __ovld __cnfn convert_uint_sat_rtn(char);
751uint __ovld __cnfn convert_uint(char);
752uint __ovld __cnfn convert_uint_sat(char);
753uint __ovld __cnfn convert_uint_rte(uchar);
754uint __ovld __cnfn convert_uint_sat_rte(uchar);
755uint __ovld __cnfn convert_uint_rtz(uchar);
756uint __ovld __cnfn convert_uint_sat_rtz(uchar);
757uint __ovld __cnfn convert_uint_rtp(uchar);
758uint __ovld __cnfn convert_uint_sat_rtp(uchar);
759uint __ovld __cnfn convert_uint_rtn(uchar);
760uint __ovld __cnfn convert_uint_sat_rtn(uchar);
761uint __ovld __cnfn convert_uint(uchar);
762uint __ovld __cnfn convert_uint_sat(uchar);
763uint __ovld __cnfn convert_uint_rte(short);
764uint __ovld __cnfn convert_uint_sat_rte(short);
765uint __ovld __cnfn convert_uint_rtz(short);
766uint __ovld __cnfn convert_uint_sat_rtz(short);
767uint __ovld __cnfn convert_uint_rtp(short);
768uint __ovld __cnfn convert_uint_sat_rtp(short);
769uint __ovld __cnfn convert_uint_rtn(short);
770uint __ovld __cnfn convert_uint_sat_rtn(short);
771uint __ovld __cnfn convert_uint(short);
772uint __ovld __cnfn convert_uint_sat(short);
773uint __ovld __cnfn convert_uint_rte(ushort);
774uint __ovld __cnfn convert_uint_sat_rte(ushort);
775uint __ovld __cnfn convert_uint_rtz(ushort);
776uint __ovld __cnfn convert_uint_sat_rtz(ushort);
777uint __ovld __cnfn convert_uint_rtp(ushort);
778uint __ovld __cnfn convert_uint_sat_rtp(ushort);
779uint __ovld __cnfn convert_uint_rtn(ushort);
780uint __ovld __cnfn convert_uint_sat_rtn(ushort);
781uint __ovld __cnfn convert_uint(ushort);
782uint __ovld __cnfn convert_uint_sat(ushort);
783uint __ovld __cnfn convert_uint_rte(int);
784uint __ovld __cnfn convert_uint_sat_rte(int);
785uint __ovld __cnfn convert_uint_rtz(int);
786uint __ovld __cnfn convert_uint_sat_rtz(int);
787uint __ovld __cnfn convert_uint_rtp(int);
788uint __ovld __cnfn convert_uint_sat_rtp(int);
789uint __ovld __cnfn convert_uint_rtn(int);
790uint __ovld __cnfn convert_uint_sat_rtn(int);
791uint __ovld __cnfn convert_uint(int);
792uint __ovld __cnfn convert_uint_sat(int);
793uint __ovld __cnfn convert_uint_rte(uint);
794uint __ovld __cnfn convert_uint_sat_rte(uint);
795uint __ovld __cnfn convert_uint_rtz(uint);
796uint __ovld __cnfn convert_uint_sat_rtz(uint);
797uint __ovld __cnfn convert_uint_rtp(uint);
798uint __ovld __cnfn convert_uint_sat_rtp(uint);
799uint __ovld __cnfn convert_uint_rtn(uint);
800uint __ovld __cnfn convert_uint_sat_rtn(uint);
801uint __ovld __cnfn convert_uint(uint);
802uint __ovld __cnfn convert_uint_sat(uint);
803uint __ovld __cnfn convert_uint_rte(long);
804uint __ovld __cnfn convert_uint_sat_rte(long);
805uint __ovld __cnfn convert_uint_rtz(long);
806uint __ovld __cnfn convert_uint_sat_rtz(long);
807uint __ovld __cnfn convert_uint_rtp(long);
808uint __ovld __cnfn convert_uint_sat_rtp(long);
809uint __ovld __cnfn convert_uint_rtn(long);
810uint __ovld __cnfn convert_uint_sat_rtn(long);
811uint __ovld __cnfn convert_uint(long);
812uint __ovld __cnfn convert_uint_sat(long);
813uint __ovld __cnfn convert_uint_rte(ulong);
814uint __ovld __cnfn convert_uint_sat_rte(ulong);
815uint __ovld __cnfn convert_uint_rtz(ulong);
816uint __ovld __cnfn convert_uint_sat_rtz(ulong);
817uint __ovld __cnfn convert_uint_rtp(ulong);
818uint __ovld __cnfn convert_uint_sat_rtp(ulong);
819uint __ovld __cnfn convert_uint_rtn(ulong);
820uint __ovld __cnfn convert_uint_sat_rtn(ulong);
821uint __ovld __cnfn convert_uint(ulong);
822uint __ovld __cnfn convert_uint_sat(ulong);
823uint __ovld __cnfn convert_uint_rte(float);
824uint __ovld __cnfn convert_uint_sat_rte(float);
825uint __ovld __cnfn convert_uint_rtz(float);
826uint __ovld __cnfn convert_uint_sat_rtz(float);
827uint __ovld __cnfn convert_uint_rtp(float);
828uint __ovld __cnfn convert_uint_sat_rtp(float);
829uint __ovld __cnfn convert_uint_rtn(float);
830uint __ovld __cnfn convert_uint_sat_rtn(float);
831uint __ovld __cnfn convert_uint(float);
832uint __ovld __cnfn convert_uint_sat(float);
833long __ovld __cnfn convert_long_rte(char);
834long __ovld __cnfn convert_long_sat_rte(char);
835long __ovld __cnfn convert_long_rtz(char);
836long __ovld __cnfn convert_long_sat_rtz(char);
837long __ovld __cnfn convert_long_rtp(char);
838long __ovld __cnfn convert_long_sat_rtp(char);
839long __ovld __cnfn convert_long_rtn(char);
840long __ovld __cnfn convert_long_sat_rtn(char);
841long __ovld __cnfn convert_long(char);
842long __ovld __cnfn convert_long_sat(char);
843long __ovld __cnfn convert_long_rte(uchar);
844long __ovld __cnfn convert_long_sat_rte(uchar);
845long __ovld __cnfn convert_long_rtz(uchar);
846long __ovld __cnfn convert_long_sat_rtz(uchar);
847long __ovld __cnfn convert_long_rtp(uchar);
848long __ovld __cnfn convert_long_sat_rtp(uchar);
849long __ovld __cnfn convert_long_rtn(uchar);
850long __ovld __cnfn convert_long_sat_rtn(uchar);
851long __ovld __cnfn convert_long(uchar);
852long __ovld __cnfn convert_long_sat(uchar);
853long __ovld __cnfn convert_long_rte(short);
854long __ovld __cnfn convert_long_sat_rte(short);
855long __ovld __cnfn convert_long_rtz(short);
856long __ovld __cnfn convert_long_sat_rtz(short);
857long __ovld __cnfn convert_long_rtp(short);
858long __ovld __cnfn convert_long_sat_rtp(short);
859long __ovld __cnfn convert_long_rtn(short);
860long __ovld __cnfn convert_long_sat_rtn(short);
861long __ovld __cnfn convert_long(short);
862long __ovld __cnfn convert_long_sat(short);
863long __ovld __cnfn convert_long_rte(ushort);
864long __ovld __cnfn convert_long_sat_rte(ushort);
865long __ovld __cnfn convert_long_rtz(ushort);
866long __ovld __cnfn convert_long_sat_rtz(ushort);
867long __ovld __cnfn convert_long_rtp(ushort);
868long __ovld __cnfn convert_long_sat_rtp(ushort);
869long __ovld __cnfn convert_long_rtn(ushort);
870long __ovld __cnfn convert_long_sat_rtn(ushort);
871long __ovld __cnfn convert_long(ushort);
872long __ovld __cnfn convert_long_sat(ushort);
873long __ovld __cnfn convert_long_rte(int);
874long __ovld __cnfn convert_long_sat_rte(int);
875long __ovld __cnfn convert_long_rtz(int);
876long __ovld __cnfn convert_long_sat_rtz(int);
877long __ovld __cnfn convert_long_rtp(int);
878long __ovld __cnfn convert_long_sat_rtp(int);
879long __ovld __cnfn convert_long_rtn(int);
880long __ovld __cnfn convert_long_sat_rtn(int);
881long __ovld __cnfn convert_long(int);
882long __ovld __cnfn convert_long_sat(int);
883long __ovld __cnfn convert_long_rte(uint);
884long __ovld __cnfn convert_long_sat_rte(uint);
885long __ovld __cnfn convert_long_rtz(uint);
886long __ovld __cnfn convert_long_sat_rtz(uint);
887long __ovld __cnfn convert_long_rtp(uint);
888long __ovld __cnfn convert_long_sat_rtp(uint);
889long __ovld __cnfn convert_long_rtn(uint);
890long __ovld __cnfn convert_long_sat_rtn(uint);
891long __ovld __cnfn convert_long(uint);
892long __ovld __cnfn convert_long_sat(uint);
893long __ovld __cnfn convert_long_rte(long);
894long __ovld __cnfn convert_long_sat_rte(long);
895long __ovld __cnfn convert_long_rtz(long);
896long __ovld __cnfn convert_long_sat_rtz(long);
897long __ovld __cnfn convert_long_rtp(long);
898long __ovld __cnfn convert_long_sat_rtp(long);
899long __ovld __cnfn convert_long_rtn(long);
900long __ovld __cnfn convert_long_sat_rtn(long);
901long __ovld __cnfn convert_long(long);
902long __ovld __cnfn convert_long_sat(long);
903long __ovld __cnfn convert_long_rte(ulong);
904long __ovld __cnfn convert_long_sat_rte(ulong);
905long __ovld __cnfn convert_long_rtz(ulong);
906long __ovld __cnfn convert_long_sat_rtz(ulong);
907long __ovld __cnfn convert_long_rtp(ulong);
908long __ovld __cnfn convert_long_sat_rtp(ulong);
909long __ovld __cnfn convert_long_rtn(ulong);
910long __ovld __cnfn convert_long_sat_rtn(ulong);
911long __ovld __cnfn convert_long(ulong);
912long __ovld __cnfn convert_long_sat(ulong);
913long __ovld __cnfn convert_long_rte(float);
914long __ovld __cnfn convert_long_sat_rte(float);
915long __ovld __cnfn convert_long_rtz(float);
916long __ovld __cnfn convert_long_sat_rtz(float);
917long __ovld __cnfn convert_long_rtp(float);
918long __ovld __cnfn convert_long_sat_rtp(float);
919long __ovld __cnfn convert_long_rtn(float);
920long __ovld __cnfn convert_long_sat_rtn(float);
921long __ovld __cnfn convert_long(float);
922long __ovld __cnfn convert_long_sat(float);
923ulong __ovld __cnfn convert_ulong_rte(char);
924ulong __ovld __cnfn convert_ulong_sat_rte(char);
925ulong __ovld __cnfn convert_ulong_rtz(char);
926ulong __ovld __cnfn convert_ulong_sat_rtz(char);
927ulong __ovld __cnfn convert_ulong_rtp(char);
928ulong __ovld __cnfn convert_ulong_sat_rtp(char);
929ulong __ovld __cnfn convert_ulong_rtn(char);
930ulong __ovld __cnfn convert_ulong_sat_rtn(char);
931ulong __ovld __cnfn convert_ulong(char);
932ulong __ovld __cnfn convert_ulong_sat(char);
933ulong __ovld __cnfn convert_ulong_rte(uchar);
934ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
935ulong __ovld __cnfn convert_ulong_rtz(uchar);
936ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
937ulong __ovld __cnfn convert_ulong_rtp(uchar);
938ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
939ulong __ovld __cnfn convert_ulong_rtn(uchar);
940ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
941ulong __ovld __cnfn convert_ulong(uchar);
942ulong __ovld __cnfn convert_ulong_sat(uchar);
943ulong __ovld __cnfn convert_ulong_rte(short);
944ulong __ovld __cnfn convert_ulong_sat_rte(short);
945ulong __ovld __cnfn convert_ulong_rtz(short);
946ulong __ovld __cnfn convert_ulong_sat_rtz(short);
947ulong __ovld __cnfn convert_ulong_rtp(short);
948ulong __ovld __cnfn convert_ulong_sat_rtp(short);
949ulong __ovld __cnfn convert_ulong_rtn(short);
950ulong __ovld __cnfn convert_ulong_sat_rtn(short);
951ulong __ovld __cnfn convert_ulong(short);
952ulong __ovld __cnfn convert_ulong_sat(short);
953ulong __ovld __cnfn convert_ulong_rte(ushort);
954ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
955ulong __ovld __cnfn convert_ulong_rtz(ushort);
956ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
957ulong __ovld __cnfn convert_ulong_rtp(ushort);
958ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
959ulong __ovld __cnfn convert_ulong_rtn(ushort);
960ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
961ulong __ovld __cnfn convert_ulong(ushort);
962ulong __ovld __cnfn convert_ulong_sat(ushort);
963ulong __ovld __cnfn convert_ulong_rte(int);
964ulong __ovld __cnfn convert_ulong_sat_rte(int);
965ulong __ovld __cnfn convert_ulong_rtz(int);
966ulong __ovld __cnfn convert_ulong_sat_rtz(int);
967ulong __ovld __cnfn convert_ulong_rtp(int);
968ulong __ovld __cnfn convert_ulong_sat_rtp(int);
969ulong __ovld __cnfn convert_ulong_rtn(int);
970ulong __ovld __cnfn convert_ulong_sat_rtn(int);
971ulong __ovld __cnfn convert_ulong(int);
972ulong __ovld __cnfn convert_ulong_sat(int);
973ulong __ovld __cnfn convert_ulong_rte(uint);
974ulong __ovld __cnfn convert_ulong_sat_rte(uint);
975ulong __ovld __cnfn convert_ulong_rtz(uint);
976ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
977ulong __ovld __cnfn convert_ulong_rtp(uint);
978ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
979ulong __ovld __cnfn convert_ulong_rtn(uint);
980ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
981ulong __ovld __cnfn convert_ulong(uint);
982ulong __ovld __cnfn convert_ulong_sat(uint);
983ulong __ovld __cnfn convert_ulong_rte(long);
984ulong __ovld __cnfn convert_ulong_sat_rte(long);
985ulong __ovld __cnfn convert_ulong_rtz(long);
986ulong __ovld __cnfn convert_ulong_sat_rtz(long);
987ulong __ovld __cnfn convert_ulong_rtp(long);
988ulong __ovld __cnfn convert_ulong_sat_rtp(long);
989ulong __ovld __cnfn convert_ulong_rtn(long);
990ulong __ovld __cnfn convert_ulong_sat_rtn(long);
991ulong __ovld __cnfn convert_ulong(long);
992ulong __ovld __cnfn convert_ulong_sat(long);
993ulong __ovld __cnfn convert_ulong_rte(ulong);
994ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
995ulong __ovld __cnfn convert_ulong_rtz(ulong);
996ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
997ulong __ovld __cnfn convert_ulong_rtp(ulong);
998ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
999ulong __ovld __cnfn convert_ulong_rtn(ulong);
1000ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
1001ulong __ovld __cnfn convert_ulong(ulong);
1002ulong __ovld __cnfn convert_ulong_sat(ulong);
1003ulong __ovld __cnfn convert_ulong_rte(float);
1004ulong __ovld __cnfn convert_ulong_sat_rte(float);
1005ulong __ovld __cnfn convert_ulong_rtz(float);
1006ulong __ovld __cnfn convert_ulong_sat_rtz(float);
1007ulong __ovld __cnfn convert_ulong_rtp(float);
1008ulong __ovld __cnfn convert_ulong_sat_rtp(float);
1009ulong __ovld __cnfn convert_ulong_rtn(float);
1010ulong __ovld __cnfn convert_ulong_sat_rtn(float);
1011ulong __ovld __cnfn convert_ulong(float);
1012ulong __ovld __cnfn convert_ulong_sat(float);
1013float __ovld __cnfn convert_float_rte(char);
1014float __ovld __cnfn convert_float_rtz(char);
1015float __ovld __cnfn convert_float_rtp(char);
1016float __ovld __cnfn convert_float_rtn(char);
1017float __ovld __cnfn convert_float(char);
1018float __ovld __cnfn convert_float_rte(uchar);
1019float __ovld __cnfn convert_float_rtz(uchar);
1020float __ovld __cnfn convert_float_rtp(uchar);
1021float __ovld __cnfn convert_float_rtn(uchar);
1022float __ovld __cnfn convert_float(uchar);
1023float __ovld __cnfn convert_float_rte(short);
1024float __ovld __cnfn convert_float_rtz(short);
1025float __ovld __cnfn convert_float_rtp(short);
1026float __ovld __cnfn convert_float_rtn(short);
1027float __ovld __cnfn convert_float(short);
1028float __ovld __cnfn convert_float_rte(ushort);
1029float __ovld __cnfn convert_float_rtz(ushort);
1030float __ovld __cnfn convert_float_rtp(ushort);
1031float __ovld __cnfn convert_float_rtn(ushort);
1032float __ovld __cnfn convert_float(ushort);
1033float __ovld __cnfn convert_float_rte(int);
1034float __ovld __cnfn convert_float_rtz(int);
1035float __ovld __cnfn convert_float_rtp(int);
1036float __ovld __cnfn convert_float_rtn(int);
1037float __ovld __cnfn convert_float(int);
1038float __ovld __cnfn convert_float_rte(uint);
1039float __ovld __cnfn convert_float_rtz(uint);
1040float __ovld __cnfn convert_float_rtp(uint);
1041float __ovld __cnfn convert_float_rtn(uint);
1042float __ovld __cnfn convert_float(uint);
1043float __ovld __cnfn convert_float_rte(long);
1044float __ovld __cnfn convert_float_rtz(long);
1045float __ovld __cnfn convert_float_rtp(long);
1046float __ovld __cnfn convert_float_rtn(long);
1047float __ovld __cnfn convert_float(long);
1048float __ovld __cnfn convert_float_rte(ulong);
1049float __ovld __cnfn convert_float_rtz(ulong);
1050float __ovld __cnfn convert_float_rtp(ulong);
1051float __ovld __cnfn convert_float_rtn(ulong);
1052float __ovld __cnfn convert_float(ulong);
1053float __ovld __cnfn convert_float_rte(float);
1054float __ovld __cnfn convert_float_rtz(float);
1055float __ovld __cnfn convert_float_rtp(float);
1056float __ovld __cnfn convert_float_rtn(float);
1057float __ovld __cnfn convert_float(float);
1058char2 __ovld __cnfn convert_char2_rte(char2);
1059char2 __ovld __cnfn convert_char2_sat_rte(char2);
1060char2 __ovld __cnfn convert_char2_rtz(char2);
1061char2 __ovld __cnfn convert_char2_sat_rtz(char2);
1062char2 __ovld __cnfn convert_char2_rtp(char2);
1063char2 __ovld __cnfn convert_char2_sat_rtp(char2);
1064char2 __ovld __cnfn convert_char2_rtn(char2);
1065char2 __ovld __cnfn convert_char2_sat_rtn(char2);
1066char2 __ovld __cnfn convert_char2(char2);
1067char2 __ovld __cnfn convert_char2_sat(char2);
1068char2 __ovld __cnfn convert_char2_rte(uchar2);
1069char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
1070char2 __ovld __cnfn convert_char2_rtz(uchar2);
1071char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
1072char2 __ovld __cnfn convert_char2_rtp(uchar2);
1073char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
1074char2 __ovld __cnfn convert_char2_rtn(uchar2);
1075char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
1076char2 __ovld __cnfn convert_char2(uchar2);
1077char2 __ovld __cnfn convert_char2_sat(uchar2);
1078char2 __ovld __cnfn convert_char2_rte(short2);
1079char2 __ovld __cnfn convert_char2_sat_rte(short2);
1080char2 __ovld __cnfn convert_char2_rtz(short2);
1081char2 __ovld __cnfn convert_char2_sat_rtz(short2);
1082char2 __ovld __cnfn convert_char2_rtp(short2);
1083char2 __ovld __cnfn convert_char2_sat_rtp(short2);
1084char2 __ovld __cnfn convert_char2_rtn(short2);
1085char2 __ovld __cnfn convert_char2_sat_rtn(short2);
1086char2 __ovld __cnfn convert_char2(short2);
1087char2 __ovld __cnfn convert_char2_sat(short2);
1088char2 __ovld __cnfn convert_char2_rte(ushort2);
1089char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
1090char2 __ovld __cnfn convert_char2_rtz(ushort2);
1091char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
1092char2 __ovld __cnfn convert_char2_rtp(ushort2);
1093char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
1094char2 __ovld __cnfn convert_char2_rtn(ushort2);
1095char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
1096char2 __ovld __cnfn convert_char2(ushort2);
1097char2 __ovld __cnfn convert_char2_sat(ushort2);
1098char2 __ovld __cnfn convert_char2_rte(int2);
1099char2 __ovld __cnfn convert_char2_sat_rte(int2);
1100char2 __ovld __cnfn convert_char2_rtz(int2);
1101char2 __ovld __cnfn convert_char2_sat_rtz(int2);
1102char2 __ovld __cnfn convert_char2_rtp(int2);
1103char2 __ovld __cnfn convert_char2_sat_rtp(int2);
1104char2 __ovld __cnfn convert_char2_rtn(int2);
1105char2 __ovld __cnfn convert_char2_sat_rtn(int2);
1106char2 __ovld __cnfn convert_char2(int2);
1107char2 __ovld __cnfn convert_char2_sat(int2);
1108char2 __ovld __cnfn convert_char2_rte(uint2);
1109char2 __ovld __cnfn convert_char2_sat_rte(uint2);
1110char2 __ovld __cnfn convert_char2_rtz(uint2);
1111char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
1112char2 __ovld __cnfn convert_char2_rtp(uint2);
1113char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
1114char2 __ovld __cnfn convert_char2_rtn(uint2);
1115char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
1116char2 __ovld __cnfn convert_char2(uint2);
1117char2 __ovld __cnfn convert_char2_sat(uint2);
1118char2 __ovld __cnfn convert_char2_rte(long2);
1119char2 __ovld __cnfn convert_char2_sat_rte(long2);
1120char2 __ovld __cnfn convert_char2_rtz(long2);
1121char2 __ovld __cnfn convert_char2_sat_rtz(long2);
1122char2 __ovld __cnfn convert_char2_rtp(long2);
1123char2 __ovld __cnfn convert_char2_sat_rtp(long2);
1124char2 __ovld __cnfn convert_char2_rtn(long2);
1125char2 __ovld __cnfn convert_char2_sat_rtn(long2);
1126char2 __ovld __cnfn convert_char2(long2);
1127char2 __ovld __cnfn convert_char2_sat(long2);
1128char2 __ovld __cnfn convert_char2_rte(ulong2);
1129char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
1130char2 __ovld __cnfn convert_char2_rtz(ulong2);
1131char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
1132char2 __ovld __cnfn convert_char2_rtp(ulong2);
1133char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
1134char2 __ovld __cnfn convert_char2_rtn(ulong2);
1135char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
1136char2 __ovld __cnfn convert_char2(ulong2);
1137char2 __ovld __cnfn convert_char2_sat(ulong2);
1138char2 __ovld __cnfn convert_char2_rte(float2);
1139char2 __ovld __cnfn convert_char2_sat_rte(float2);
1140char2 __ovld __cnfn convert_char2_rtz(float2);
1141char2 __ovld __cnfn convert_char2_sat_rtz(float2);
1142char2 __ovld __cnfn convert_char2_rtp(float2);
1143char2 __ovld __cnfn convert_char2_sat_rtp(float2);
1144char2 __ovld __cnfn convert_char2_rtn(float2);
1145char2 __ovld __cnfn convert_char2_sat_rtn(float2);
1146char2 __ovld __cnfn convert_char2(float2);
1147char2 __ovld __cnfn convert_char2_sat(float2);
1148uchar2 __ovld __cnfn convert_uchar2_rte(char2);
1149uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
1150uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
1151uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
1152uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
1153uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
1154uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
1155uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
1156uchar2 __ovld __cnfn convert_uchar2(char2);
1157uchar2 __ovld __cnfn convert_uchar2_sat(char2);
1158uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
1159uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
1160uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
1161uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
1162uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
1163uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
1164uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
1165uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
1166uchar2 __ovld __cnfn convert_uchar2(uchar2);
1167uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
1168uchar2 __ovld __cnfn convert_uchar2_rte(short2);
1169uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
1170uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
1171uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
1172uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
1173uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
1174uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
1175uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
1176uchar2 __ovld __cnfn convert_uchar2(short2);
1177uchar2 __ovld __cnfn convert_uchar2_sat(short2);
1178uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
1179uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
1180uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
1181uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
1182uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
1183uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
1184uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
1185uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
1186uchar2 __ovld __cnfn convert_uchar2(ushort2);
1187uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
1188uchar2 __ovld __cnfn convert_uchar2_rte(int2);
1189uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
1190uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
1191uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
1192uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
1193uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
1194uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
1195uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
1196uchar2 __ovld __cnfn convert_uchar2(int2);
1197uchar2 __ovld __cnfn convert_uchar2_sat(int2);
1198uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
1199uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
1200uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
1201uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
1202uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
1203uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
1204uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
1205uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
1206uchar2 __ovld __cnfn convert_uchar2(uint2);
1207uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
1208uchar2 __ovld __cnfn convert_uchar2_rte(long2);
1209uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
1210uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
1211uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
1212uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
1213uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
1214uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
1215uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
1216uchar2 __ovld __cnfn convert_uchar2(long2);
1217uchar2 __ovld __cnfn convert_uchar2_sat(long2);
1218uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
1219uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
1220uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
1221uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
1222uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
1223uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
1224uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
1225uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
1226uchar2 __ovld __cnfn convert_uchar2(ulong2);
1227uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
1228uchar2 __ovld __cnfn convert_uchar2_rte(float2);
1229uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
1230uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
1231uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
1232uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
1233uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
1234uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
1235uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
1236uchar2 __ovld __cnfn convert_uchar2(float2);
1237uchar2 __ovld __cnfn convert_uchar2_sat(float2);
1238short2 __ovld __cnfn convert_short2_rte(char2);
1239short2 __ovld __cnfn convert_short2_sat_rte(char2);
1240short2 __ovld __cnfn convert_short2_rtz(char2);
1241short2 __ovld __cnfn convert_short2_sat_rtz(char2);
1242short2 __ovld __cnfn convert_short2_rtp(char2);
1243short2 __ovld __cnfn convert_short2_sat_rtp(char2);
1244short2 __ovld __cnfn convert_short2_rtn(char2);
1245short2 __ovld __cnfn convert_short2_sat_rtn(char2);
1246short2 __ovld __cnfn convert_short2(char2);
1247short2 __ovld __cnfn convert_short2_sat(char2);
1248short2 __ovld __cnfn convert_short2_rte(uchar2);
1249short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1250short2 __ovld __cnfn convert_short2_rtz(uchar2);
1251short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1252short2 __ovld __cnfn convert_short2_rtp(uchar2);
1253short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1254short2 __ovld __cnfn convert_short2_rtn(uchar2);
1255short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1256short2 __ovld __cnfn convert_short2(uchar2);
1257short2 __ovld __cnfn convert_short2_sat(uchar2);
1258short2 __ovld __cnfn convert_short2_rte(short2);
1259short2 __ovld __cnfn convert_short2_sat_rte(short2);
1260short2 __ovld __cnfn convert_short2_rtz(short2);
1261short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1262short2 __ovld __cnfn convert_short2_rtp(short2);
1263short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1264short2 __ovld __cnfn convert_short2_rtn(short2);
1265short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1266short2 __ovld __cnfn convert_short2(short2);
1267short2 __ovld __cnfn convert_short2_sat(short2);
1268short2 __ovld __cnfn convert_short2_rte(ushort2);
1269short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1270short2 __ovld __cnfn convert_short2_rtz(ushort2);
1271short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1272short2 __ovld __cnfn convert_short2_rtp(ushort2);
1273short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1274short2 __ovld __cnfn convert_short2_rtn(ushort2);
1275short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1276short2 __ovld __cnfn convert_short2(ushort2);
1277short2 __ovld __cnfn convert_short2_sat(ushort2);
1278short2 __ovld __cnfn convert_short2_rte(int2);
1279short2 __ovld __cnfn convert_short2_sat_rte(int2);
1280short2 __ovld __cnfn convert_short2_rtz(int2);
1281short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1282short2 __ovld __cnfn convert_short2_rtp(int2);
1283short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1284short2 __ovld __cnfn convert_short2_rtn(int2);
1285short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1286short2 __ovld __cnfn convert_short2(int2);
1287short2 __ovld __cnfn convert_short2_sat(int2);
1288short2 __ovld __cnfn convert_short2_rte(uint2);
1289short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1290short2 __ovld __cnfn convert_short2_rtz(uint2);
1291short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1292short2 __ovld __cnfn convert_short2_rtp(uint2);
1293short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1294short2 __ovld __cnfn convert_short2_rtn(uint2);
1295short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1296short2 __ovld __cnfn convert_short2(uint2);
1297short2 __ovld __cnfn convert_short2_sat(uint2);
1298short2 __ovld __cnfn convert_short2_rte(long2);
1299short2 __ovld __cnfn convert_short2_sat_rte(long2);
1300short2 __ovld __cnfn convert_short2_rtz(long2);
1301short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1302short2 __ovld __cnfn convert_short2_rtp(long2);
1303short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1304short2 __ovld __cnfn convert_short2_rtn(long2);
1305short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1306short2 __ovld __cnfn convert_short2(long2);
1307short2 __ovld __cnfn convert_short2_sat(long2);
1308short2 __ovld __cnfn convert_short2_rte(ulong2);
1309short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1310short2 __ovld __cnfn convert_short2_rtz(ulong2);
1311short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1312short2 __ovld __cnfn convert_short2_rtp(ulong2);
1313short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1314short2 __ovld __cnfn convert_short2_rtn(ulong2);
1315short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1316short2 __ovld __cnfn convert_short2(ulong2);
1317short2 __ovld __cnfn convert_short2_sat(ulong2);
1318short2 __ovld __cnfn convert_short2_rte(float2);
1319short2 __ovld __cnfn convert_short2_sat_rte(float2);
1320short2 __ovld __cnfn convert_short2_rtz(float2);
1321short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1322short2 __ovld __cnfn convert_short2_rtp(float2);
1323short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1324short2 __ovld __cnfn convert_short2_rtn(float2);
1325short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1326short2 __ovld __cnfn convert_short2(float2);
1327short2 __ovld __cnfn convert_short2_sat(float2);
1328ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1329ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1330ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1331ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1332ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1333ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1334ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1335ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1336ushort2 __ovld __cnfn convert_ushort2(char2);
1337ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1338ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1339ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1340ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1341ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1342ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1343ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1344ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1345ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1346ushort2 __ovld __cnfn convert_ushort2(uchar2);
1347ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1348ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1349ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1350ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1351ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1352ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1353ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1354ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1355ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1356ushort2 __ovld __cnfn convert_ushort2(short2);
1357ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1358ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1359ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1360ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1361ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1362ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1363ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1364ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1365ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1366ushort2 __ovld __cnfn convert_ushort2(ushort2);
1367ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1368ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1369ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1370ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1371ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1372ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1373ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1374ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1375ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1376ushort2 __ovld __cnfn convert_ushort2(int2);
1377ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1378ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1379ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1380ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1381ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1382ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1383ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1384ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1385ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1386ushort2 __ovld __cnfn convert_ushort2(uint2);
1387ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1388ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1389ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1390ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1391ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1392ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1393ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1394ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1395ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1396ushort2 __ovld __cnfn convert_ushort2(long2);
1397ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1398ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1399ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1400ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1401ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1402ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1403ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1404ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1405ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1406ushort2 __ovld __cnfn convert_ushort2(ulong2);
1407ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1408ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1409ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1410ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1411ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1412ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1413ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1414ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1415ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1416ushort2 __ovld __cnfn convert_ushort2(float2);
1417ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1418int2 __ovld __cnfn convert_int2_rte(char2);
1419int2 __ovld __cnfn convert_int2_sat_rte(char2);
1420int2 __ovld __cnfn convert_int2_rtz(char2);
1421int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1422int2 __ovld __cnfn convert_int2_rtp(char2);
1423int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1424int2 __ovld __cnfn convert_int2_rtn(char2);
1425int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1426int2 __ovld __cnfn convert_int2(char2);
1427int2 __ovld __cnfn convert_int2_sat(char2);
1428int2 __ovld __cnfn convert_int2_rte(uchar2);
1429int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1430int2 __ovld __cnfn convert_int2_rtz(uchar2);
1431int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1432int2 __ovld __cnfn convert_int2_rtp(uchar2);
1433int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1434int2 __ovld __cnfn convert_int2_rtn(uchar2);
1435int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1436int2 __ovld __cnfn convert_int2(uchar2);
1437int2 __ovld __cnfn convert_int2_sat(uchar2);
1438int2 __ovld __cnfn convert_int2_rte(short2);
1439int2 __ovld __cnfn convert_int2_sat_rte(short2);
1440int2 __ovld __cnfn convert_int2_rtz(short2);
1441int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1442int2 __ovld __cnfn convert_int2_rtp(short2);
1443int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1444int2 __ovld __cnfn convert_int2_rtn(short2);
1445int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1446int2 __ovld __cnfn convert_int2(short2);
1447int2 __ovld __cnfn convert_int2_sat(short2);
1448int2 __ovld __cnfn convert_int2_rte(ushort2);
1449int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1450int2 __ovld __cnfn convert_int2_rtz(ushort2);
1451int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1452int2 __ovld __cnfn convert_int2_rtp(ushort2);
1453int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1454int2 __ovld __cnfn convert_int2_rtn(ushort2);
1455int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1456int2 __ovld __cnfn convert_int2(ushort2);
1457int2 __ovld __cnfn convert_int2_sat(ushort2);
1458int2 __ovld __cnfn convert_int2_rte(int2);
1459int2 __ovld __cnfn convert_int2_sat_rte(int2);
1460int2 __ovld __cnfn convert_int2_rtz(int2);
1461int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1462int2 __ovld __cnfn convert_int2_rtp(int2);
1463int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1464int2 __ovld __cnfn convert_int2_rtn(int2);
1465int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1466int2 __ovld __cnfn convert_int2(int2);
1467int2 __ovld __cnfn convert_int2_sat(int2);
1468int2 __ovld __cnfn convert_int2_rte(uint2);
1469int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1470int2 __ovld __cnfn convert_int2_rtz(uint2);
1471int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1472int2 __ovld __cnfn convert_int2_rtp(uint2);
1473int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1474int2 __ovld __cnfn convert_int2_rtn(uint2);
1475int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1476int2 __ovld __cnfn convert_int2(uint2);
1477int2 __ovld __cnfn convert_int2_sat(uint2);
1478int2 __ovld __cnfn convert_int2_rte(long2);
1479int2 __ovld __cnfn convert_int2_sat_rte(long2);
1480int2 __ovld __cnfn convert_int2_rtz(long2);
1481int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1482int2 __ovld __cnfn convert_int2_rtp(long2);
1483int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1484int2 __ovld __cnfn convert_int2_rtn(long2);
1485int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1486int2 __ovld __cnfn convert_int2(long2);
1487int2 __ovld __cnfn convert_int2_sat(long2);
1488int2 __ovld __cnfn convert_int2_rte(ulong2);
1489int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1490int2 __ovld __cnfn convert_int2_rtz(ulong2);
1491int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1492int2 __ovld __cnfn convert_int2_rtp(ulong2);
1493int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1494int2 __ovld __cnfn convert_int2_rtn(ulong2);
1495int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1496int2 __ovld __cnfn convert_int2(ulong2);
1497int2 __ovld __cnfn convert_int2_sat(ulong2);
1498int2 __ovld __cnfn convert_int2_rte(float2);
1499int2 __ovld __cnfn convert_int2_sat_rte(float2);
1500int2 __ovld __cnfn convert_int2_rtz(float2);
1501int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1502int2 __ovld __cnfn convert_int2_rtp(float2);
1503int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1504int2 __ovld __cnfn convert_int2_rtn(float2);
1505int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1506int2 __ovld __cnfn convert_int2(float2);
1507int2 __ovld __cnfn convert_int2_sat(float2);
1508uint2 __ovld __cnfn convert_uint2_rte(char2);
1509uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1510uint2 __ovld __cnfn convert_uint2_rtz(char2);
1511uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1512uint2 __ovld __cnfn convert_uint2_rtp(char2);
1513uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1514uint2 __ovld __cnfn convert_uint2_rtn(char2);
1515uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1516uint2 __ovld __cnfn convert_uint2(char2);
1517uint2 __ovld __cnfn convert_uint2_sat(char2);
1518uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1519uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1520uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1521uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1522uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1523uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1524uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1525uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1526uint2 __ovld __cnfn convert_uint2(uchar2);
1527uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1528uint2 __ovld __cnfn convert_uint2_rte(short2);
1529uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1530uint2 __ovld __cnfn convert_uint2_rtz(short2);
1531uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1532uint2 __ovld __cnfn convert_uint2_rtp(short2);
1533uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1534uint2 __ovld __cnfn convert_uint2_rtn(short2);
1535uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1536uint2 __ovld __cnfn convert_uint2(short2);
1537uint2 __ovld __cnfn convert_uint2_sat(short2);
1538uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1539uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1540uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1541uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1542uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1543uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1544uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1545uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1546uint2 __ovld __cnfn convert_uint2(ushort2);
1547uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1548uint2 __ovld __cnfn convert_uint2_rte(int2);
1549uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1550uint2 __ovld __cnfn convert_uint2_rtz(int2);
1551uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1552uint2 __ovld __cnfn convert_uint2_rtp(int2);
1553uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1554uint2 __ovld __cnfn convert_uint2_rtn(int2);
1555uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1556uint2 __ovld __cnfn convert_uint2(int2);
1557uint2 __ovld __cnfn convert_uint2_sat(int2);
1558uint2 __ovld __cnfn convert_uint2_rte(uint2);
1559uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1560uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1561uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1562uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1563uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1564uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1565uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1566uint2 __ovld __cnfn convert_uint2(uint2);
1567uint2 __ovld __cnfn convert_uint2_sat(uint2);
1568uint2 __ovld __cnfn convert_uint2_rte(long2);
1569uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1570uint2 __ovld __cnfn convert_uint2_rtz(long2);
1571uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1572uint2 __ovld __cnfn convert_uint2_rtp(long2);
1573uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1574uint2 __ovld __cnfn convert_uint2_rtn(long2);
1575uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1576uint2 __ovld __cnfn convert_uint2(long2);
1577uint2 __ovld __cnfn convert_uint2_sat(long2);
1578uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1579uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1580uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1581uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1582uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1583uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1584uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1585uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1586uint2 __ovld __cnfn convert_uint2(ulong2);
1587uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1588uint2 __ovld __cnfn convert_uint2_rte(float2);
1589uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1590uint2 __ovld __cnfn convert_uint2_rtz(float2);
1591uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1592uint2 __ovld __cnfn convert_uint2_rtp(float2);
1593uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1594uint2 __ovld __cnfn convert_uint2_rtn(float2);
1595uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1596uint2 __ovld __cnfn convert_uint2(float2);
1597uint2 __ovld __cnfn convert_uint2_sat(float2);
1598long2 __ovld __cnfn convert_long2_rte(char2);
1599long2 __ovld __cnfn convert_long2_sat_rte(char2);
1600long2 __ovld __cnfn convert_long2_rtz(char2);
1601long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1602long2 __ovld __cnfn convert_long2_rtp(char2);
1603long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1604long2 __ovld __cnfn convert_long2_rtn(char2);
1605long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1606long2 __ovld __cnfn convert_long2(char2);
1607long2 __ovld __cnfn convert_long2_sat(char2);
1608long2 __ovld __cnfn convert_long2_rte(uchar2);
1609long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1610long2 __ovld __cnfn convert_long2_rtz(uchar2);
1611long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1612long2 __ovld __cnfn convert_long2_rtp(uchar2);
1613long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1614long2 __ovld __cnfn convert_long2_rtn(uchar2);
1615long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1616long2 __ovld __cnfn convert_long2(uchar2);
1617long2 __ovld __cnfn convert_long2_sat(uchar2);
1618long2 __ovld __cnfn convert_long2_rte(short2);
1619long2 __ovld __cnfn convert_long2_sat_rte(short2);
1620long2 __ovld __cnfn convert_long2_rtz(short2);
1621long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1622long2 __ovld __cnfn convert_long2_rtp(short2);
1623long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1624long2 __ovld __cnfn convert_long2_rtn(short2);
1625long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1626long2 __ovld __cnfn convert_long2(short2);
1627long2 __ovld __cnfn convert_long2_sat(short2);
1628long2 __ovld __cnfn convert_long2_rte(ushort2);
1629long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1630long2 __ovld __cnfn convert_long2_rtz(ushort2);
1631long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1632long2 __ovld __cnfn convert_long2_rtp(ushort2);
1633long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1634long2 __ovld __cnfn convert_long2_rtn(ushort2);
1635long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1636long2 __ovld __cnfn convert_long2(ushort2);
1637long2 __ovld __cnfn convert_long2_sat(ushort2);
1638long2 __ovld __cnfn convert_long2_rte(int2);
1639long2 __ovld __cnfn convert_long2_sat_rte(int2);
1640long2 __ovld __cnfn convert_long2_rtz(int2);
1641long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1642long2 __ovld __cnfn convert_long2_rtp(int2);
1643long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1644long2 __ovld __cnfn convert_long2_rtn(int2);
1645long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1646long2 __ovld __cnfn convert_long2(int2);
1647long2 __ovld __cnfn convert_long2_sat(int2);
1648long2 __ovld __cnfn convert_long2_rte(uint2);
1649long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1650long2 __ovld __cnfn convert_long2_rtz(uint2);
1651long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1652long2 __ovld __cnfn convert_long2_rtp(uint2);
1653long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1654long2 __ovld __cnfn convert_long2_rtn(uint2);
1655long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1656long2 __ovld __cnfn convert_long2(uint2);
1657long2 __ovld __cnfn convert_long2_sat(uint2);
1658long2 __ovld __cnfn convert_long2_rte(long2);
1659long2 __ovld __cnfn convert_long2_sat_rte(long2);
1660long2 __ovld __cnfn convert_long2_rtz(long2);
1661long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1662long2 __ovld __cnfn convert_long2_rtp(long2);
1663long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1664long2 __ovld __cnfn convert_long2_rtn(long2);
1665long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1666long2 __ovld __cnfn convert_long2(long2);
1667long2 __ovld __cnfn convert_long2_sat(long2);
1668long2 __ovld __cnfn convert_long2_rte(ulong2);
1669long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1670long2 __ovld __cnfn convert_long2_rtz(ulong2);
1671long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1672long2 __ovld __cnfn convert_long2_rtp(ulong2);
1673long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1674long2 __ovld __cnfn convert_long2_rtn(ulong2);
1675long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1676long2 __ovld __cnfn convert_long2(ulong2);
1677long2 __ovld __cnfn convert_long2_sat(ulong2);
1678long2 __ovld __cnfn convert_long2_rte(float2);
1679long2 __ovld __cnfn convert_long2_sat_rte(float2);
1680long2 __ovld __cnfn convert_long2_rtz(float2);
1681long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1682long2 __ovld __cnfn convert_long2_rtp(float2);
1683long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1684long2 __ovld __cnfn convert_long2_rtn(float2);
1685long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1686long2 __ovld __cnfn convert_long2(float2);
1687long2 __ovld __cnfn convert_long2_sat(float2);
1688ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1689ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1690ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1691ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1692ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1693ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1694ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1695ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1696ulong2 __ovld __cnfn convert_ulong2(char2);
1697ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1698ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1699ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1700ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1701ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1702ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1703ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1704ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1705ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1706ulong2 __ovld __cnfn convert_ulong2(uchar2);
1707ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1708ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1709ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1710ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1711ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1712ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1713ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1714ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1715ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1716ulong2 __ovld __cnfn convert_ulong2(short2);
1717ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1718ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1719ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1720ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1721ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1722ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1723ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1724ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1725ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1726ulong2 __ovld __cnfn convert_ulong2(ushort2);
1727ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1728ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1729ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1730ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1731ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1732ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1733ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1734ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1735ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1736ulong2 __ovld __cnfn convert_ulong2(int2);
1737ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1738ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1739ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1740ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1741ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1742ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1743ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1744ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1745ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1746ulong2 __ovld __cnfn convert_ulong2(uint2);
1747ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1748ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1749ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1750ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1751ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1752ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1753ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1754ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1755ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1756ulong2 __ovld __cnfn convert_ulong2(long2);
1757ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1758ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1759ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1760ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1761ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1762ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1763ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1764ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1765ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1766ulong2 __ovld __cnfn convert_ulong2(ulong2);
1767ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1768ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1769ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1770ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1771ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1772ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1773ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1774ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1775ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1776ulong2 __ovld __cnfn convert_ulong2(float2);
1777ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1778float2 __ovld __cnfn convert_float2_rte(char2);
1779float2 __ovld __cnfn convert_float2_rtz(char2);
1780float2 __ovld __cnfn convert_float2_rtp(char2);
1781float2 __ovld __cnfn convert_float2_rtn(char2);
1782float2 __ovld __cnfn convert_float2(char2);
1783float2 __ovld __cnfn convert_float2_rte(uchar2);
1784float2 __ovld __cnfn convert_float2_rtz(uchar2);
1785float2 __ovld __cnfn convert_float2_rtp(uchar2);
1786float2 __ovld __cnfn convert_float2_rtn(uchar2);
1787float2 __ovld __cnfn convert_float2(uchar2);
1788float2 __ovld __cnfn convert_float2_rte(short2);
1789float2 __ovld __cnfn convert_float2_rtz(short2);
1790float2 __ovld __cnfn convert_float2_rtp(short2);
1791float2 __ovld __cnfn convert_float2_rtn(short2);
1792float2 __ovld __cnfn convert_float2(short2);
1793float2 __ovld __cnfn convert_float2_rte(ushort2);
1794float2 __ovld __cnfn convert_float2_rtz(ushort2);
1795float2 __ovld __cnfn convert_float2_rtp(ushort2);
1796float2 __ovld __cnfn convert_float2_rtn(ushort2);
1797float2 __ovld __cnfn convert_float2(ushort2);
1798float2 __ovld __cnfn convert_float2_rte(int2);
1799float2 __ovld __cnfn convert_float2_rtz(int2);
1800float2 __ovld __cnfn convert_float2_rtp(int2);
1801float2 __ovld __cnfn convert_float2_rtn(int2);
1802float2 __ovld __cnfn convert_float2(int2);
1803float2 __ovld __cnfn convert_float2_rte(uint2);
1804float2 __ovld __cnfn convert_float2_rtz(uint2);
1805float2 __ovld __cnfn convert_float2_rtp(uint2);
1806float2 __ovld __cnfn convert_float2_rtn(uint2);
1807float2 __ovld __cnfn convert_float2(uint2);
1808float2 __ovld __cnfn convert_float2_rte(long2);
1809float2 __ovld __cnfn convert_float2_rtz(long2);
1810float2 __ovld __cnfn convert_float2_rtp(long2);
1811float2 __ovld __cnfn convert_float2_rtn(long2);
1812float2 __ovld __cnfn convert_float2(long2);
1813float2 __ovld __cnfn convert_float2_rte(ulong2);
1814float2 __ovld __cnfn convert_float2_rtz(ulong2);
1815float2 __ovld __cnfn convert_float2_rtp(ulong2);
1816float2 __ovld __cnfn convert_float2_rtn(ulong2);
1817float2 __ovld __cnfn convert_float2(ulong2);
1818float2 __ovld __cnfn convert_float2_rte(float2);
1819float2 __ovld __cnfn convert_float2_rtz(float2);
1820float2 __ovld __cnfn convert_float2_rtp(float2);
1821float2 __ovld __cnfn convert_float2_rtn(float2);
1822float2 __ovld __cnfn convert_float2(float2);
1823char3 __ovld __cnfn convert_char3_rte(char3);
1824char3 __ovld __cnfn convert_char3_sat_rte(char3);
1825char3 __ovld __cnfn convert_char3_rtz(char3);
1826char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1827char3 __ovld __cnfn convert_char3_rtp(char3);
1828char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1829char3 __ovld __cnfn convert_char3_rtn(char3);
1830char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1831char3 __ovld __cnfn convert_char3(char3);
1832char3 __ovld __cnfn convert_char3_sat(char3);
1833char3 __ovld __cnfn convert_char3_rte(uchar3);
1834char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1835char3 __ovld __cnfn convert_char3_rtz(uchar3);
1836char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1837char3 __ovld __cnfn convert_char3_rtp(uchar3);
1838char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1839char3 __ovld __cnfn convert_char3_rtn(uchar3);
1840char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1841char3 __ovld __cnfn convert_char3(uchar3);
1842char3 __ovld __cnfn convert_char3_sat(uchar3);
1843char3 __ovld __cnfn convert_char3_rte(short3);
1844char3 __ovld __cnfn convert_char3_sat_rte(short3);
1845char3 __ovld __cnfn convert_char3_rtz(short3);
1846char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1847char3 __ovld __cnfn convert_char3_rtp(short3);
1848char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1849char3 __ovld __cnfn convert_char3_rtn(short3);
1850char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1851char3 __ovld __cnfn convert_char3(short3);
1852char3 __ovld __cnfn convert_char3_sat(short3);
1853char3 __ovld __cnfn convert_char3_rte(ushort3);
1854char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1855char3 __ovld __cnfn convert_char3_rtz(ushort3);
1856char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1857char3 __ovld __cnfn convert_char3_rtp(ushort3);
1858char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1859char3 __ovld __cnfn convert_char3_rtn(ushort3);
1860char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1861char3 __ovld __cnfn convert_char3(ushort3);
1862char3 __ovld __cnfn convert_char3_sat(ushort3);
1863char3 __ovld __cnfn convert_char3_rte(int3);
1864char3 __ovld __cnfn convert_char3_sat_rte(int3);
1865char3 __ovld __cnfn convert_char3_rtz(int3);
1866char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1867char3 __ovld __cnfn convert_char3_rtp(int3);
1868char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1869char3 __ovld __cnfn convert_char3_rtn(int3);
1870char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1871char3 __ovld __cnfn convert_char3(int3);
1872char3 __ovld __cnfn convert_char3_sat(int3);
1873char3 __ovld __cnfn convert_char3_rte(uint3);
1874char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1875char3 __ovld __cnfn convert_char3_rtz(uint3);
1876char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1877char3 __ovld __cnfn convert_char3_rtp(uint3);
1878char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1879char3 __ovld __cnfn convert_char3_rtn(uint3);
1880char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1881char3 __ovld __cnfn convert_char3(uint3);
1882char3 __ovld __cnfn convert_char3_sat(uint3);
1883char3 __ovld __cnfn convert_char3_rte(long3);
1884char3 __ovld __cnfn convert_char3_sat_rte(long3);
1885char3 __ovld __cnfn convert_char3_rtz(long3);
1886char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1887char3 __ovld __cnfn convert_char3_rtp(long3);
1888char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1889char3 __ovld __cnfn convert_char3_rtn(long3);
1890char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1891char3 __ovld __cnfn convert_char3(long3);
1892char3 __ovld __cnfn convert_char3_sat(long3);
1893char3 __ovld __cnfn convert_char3_rte(ulong3);
1894char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1895char3 __ovld __cnfn convert_char3_rtz(ulong3);
1896char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1897char3 __ovld __cnfn convert_char3_rtp(ulong3);
1898char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1899char3 __ovld __cnfn convert_char3_rtn(ulong3);
1900char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1901char3 __ovld __cnfn convert_char3(ulong3);
1902char3 __ovld __cnfn convert_char3_sat(ulong3);
1903char3 __ovld __cnfn convert_char3_rte(float3);
1904char3 __ovld __cnfn convert_char3_sat_rte(float3);
1905char3 __ovld __cnfn convert_char3_rtz(float3);
1906char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1907char3 __ovld __cnfn convert_char3_rtp(float3);
1908char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1909char3 __ovld __cnfn convert_char3_rtn(float3);
1910char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1911char3 __ovld __cnfn convert_char3(float3);
1912char3 __ovld __cnfn convert_char3_sat(float3);
1913uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1914uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1915uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1916uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1917uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1918uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1919uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1920uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1921uchar3 __ovld __cnfn convert_uchar3(char3);
1922uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1923uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1924uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1925uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1926uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1927uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1928uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1929uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1930uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1931uchar3 __ovld __cnfn convert_uchar3(uchar3);
1932uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1933uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1934uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1935uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1936uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1937uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1938uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1939uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1940uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1941uchar3 __ovld __cnfn convert_uchar3(short3);
1942uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1943uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1944uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1945uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1946uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1947uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1948uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1949uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1950uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1951uchar3 __ovld __cnfn convert_uchar3(ushort3);
1952uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1953uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1954uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1955uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1956uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1957uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1958uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1959uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1960uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1961uchar3 __ovld __cnfn convert_uchar3(int3);
1962uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1963uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1964uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1965uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1966uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1967uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1968uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1969uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1970uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1971uchar3 __ovld __cnfn convert_uchar3(uint3);
1972uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1973uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1974uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1975uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1976uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1977uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1978uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1979uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1980uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1981uchar3 __ovld __cnfn convert_uchar3(long3);
1982uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1983uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1984uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1985uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1986uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1987uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1988uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1989uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1990uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1991uchar3 __ovld __cnfn convert_uchar3(ulong3);
1992uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1993uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1994uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1995uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1996uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1997uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1998uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1999uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
2000uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
2001uchar3 __ovld __cnfn convert_uchar3(float3);
2002uchar3 __ovld __cnfn convert_uchar3_sat(float3);
2003short3 __ovld __cnfn convert_short3_rte(char3);
2004short3 __ovld __cnfn convert_short3_sat_rte(char3);
2005short3 __ovld __cnfn convert_short3_rtz(char3);
2006short3 __ovld __cnfn convert_short3_sat_rtz(char3);
2007short3 __ovld __cnfn convert_short3_rtp(char3);
2008short3 __ovld __cnfn convert_short3_sat_rtp(char3);
2009short3 __ovld __cnfn convert_short3_rtn(char3);
2010short3 __ovld __cnfn convert_short3_sat_rtn(char3);
2011short3 __ovld __cnfn convert_short3(char3);
2012short3 __ovld __cnfn convert_short3_sat(char3);
2013short3 __ovld __cnfn convert_short3_rte(uchar3);
2014short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
2015short3 __ovld __cnfn convert_short3_rtz(uchar3);
2016short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
2017short3 __ovld __cnfn convert_short3_rtp(uchar3);
2018short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
2019short3 __ovld __cnfn convert_short3_rtn(uchar3);
2020short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
2021short3 __ovld __cnfn convert_short3(uchar3);
2022short3 __ovld __cnfn convert_short3_sat(uchar3);
2023short3 __ovld __cnfn convert_short3_rte(short3);
2024short3 __ovld __cnfn convert_short3_sat_rte(short3);
2025short3 __ovld __cnfn convert_short3_rtz(short3);
2026short3 __ovld __cnfn convert_short3_sat_rtz(short3);
2027short3 __ovld __cnfn convert_short3_rtp(short3);
2028short3 __ovld __cnfn convert_short3_sat_rtp(short3);
2029short3 __ovld __cnfn convert_short3_rtn(short3);
2030short3 __ovld __cnfn convert_short3_sat_rtn(short3);
2031short3 __ovld __cnfn convert_short3(short3);
2032short3 __ovld __cnfn convert_short3_sat(short3);
2033short3 __ovld __cnfn convert_short3_rte(ushort3);
2034short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
2035short3 __ovld __cnfn convert_short3_rtz(ushort3);
2036short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
2037short3 __ovld __cnfn convert_short3_rtp(ushort3);
2038short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
2039short3 __ovld __cnfn convert_short3_rtn(ushort3);
2040short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
2041short3 __ovld __cnfn convert_short3(ushort3);
2042short3 __ovld __cnfn convert_short3_sat(ushort3);
2043short3 __ovld __cnfn convert_short3_rte(int3);
2044short3 __ovld __cnfn convert_short3_sat_rte(int3);
2045short3 __ovld __cnfn convert_short3_rtz(int3);
2046short3 __ovld __cnfn convert_short3_sat_rtz(int3);
2047short3 __ovld __cnfn convert_short3_rtp(int3);
2048short3 __ovld __cnfn convert_short3_sat_rtp(int3);
2049short3 __ovld __cnfn convert_short3_rtn(int3);
2050short3 __ovld __cnfn convert_short3_sat_rtn(int3);
2051short3 __ovld __cnfn convert_short3(int3);
2052short3 __ovld __cnfn convert_short3_sat(int3);
2053short3 __ovld __cnfn convert_short3_rte(uint3);
2054short3 __ovld __cnfn convert_short3_sat_rte(uint3);
2055short3 __ovld __cnfn convert_short3_rtz(uint3);
2056short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
2057short3 __ovld __cnfn convert_short3_rtp(uint3);
2058short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
2059short3 __ovld __cnfn convert_short3_rtn(uint3);
2060short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
2061short3 __ovld __cnfn convert_short3(uint3);
2062short3 __ovld __cnfn convert_short3_sat(uint3);
2063short3 __ovld __cnfn convert_short3_rte(long3);
2064short3 __ovld __cnfn convert_short3_sat_rte(long3);
2065short3 __ovld __cnfn convert_short3_rtz(long3);
2066short3 __ovld __cnfn convert_short3_sat_rtz(long3);
2067short3 __ovld __cnfn convert_short3_rtp(long3);
2068short3 __ovld __cnfn convert_short3_sat_rtp(long3);
2069short3 __ovld __cnfn convert_short3_rtn(long3);
2070short3 __ovld __cnfn convert_short3_sat_rtn(long3);
2071short3 __ovld __cnfn convert_short3(long3);
2072short3 __ovld __cnfn convert_short3_sat(long3);
2073short3 __ovld __cnfn convert_short3_rte(ulong3);
2074short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
2075short3 __ovld __cnfn convert_short3_rtz(ulong3);
2076short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
2077short3 __ovld __cnfn convert_short3_rtp(ulong3);
2078short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
2079short3 __ovld __cnfn convert_short3_rtn(ulong3);
2080short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
2081short3 __ovld __cnfn convert_short3(ulong3);
2082short3 __ovld __cnfn convert_short3_sat(ulong3);
2083short3 __ovld __cnfn convert_short3_rte(float3);
2084short3 __ovld __cnfn convert_short3_sat_rte(float3);
2085short3 __ovld __cnfn convert_short3_rtz(float3);
2086short3 __ovld __cnfn convert_short3_sat_rtz(float3);
2087short3 __ovld __cnfn convert_short3_rtp(float3);
2088short3 __ovld __cnfn convert_short3_sat_rtp(float3);
2089short3 __ovld __cnfn convert_short3_rtn(float3);
2090short3 __ovld __cnfn convert_short3_sat_rtn(float3);
2091short3 __ovld __cnfn convert_short3(float3);
2092short3 __ovld __cnfn convert_short3_sat(float3);
2093ushort3 __ovld __cnfn convert_ushort3_rte(char3);
2094ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
2095ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
2096ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
2097ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
2098ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
2099ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
2100ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
2101ushort3 __ovld __cnfn convert_ushort3(char3);
2102ushort3 __ovld __cnfn convert_ushort3_sat(char3);
2103ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
2104ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
2105ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
2106ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
2107ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
2108ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
2109ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
2110ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
2111ushort3 __ovld __cnfn convert_ushort3(uchar3);
2112ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
2113ushort3 __ovld __cnfn convert_ushort3_rte(short3);
2114ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
2115ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
2116ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
2117ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
2118ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
2119ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
2120ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
2121ushort3 __ovld __cnfn convert_ushort3(short3);
2122ushort3 __ovld __cnfn convert_ushort3_sat(short3);
2123ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
2124ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
2125ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
2126ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
2127ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
2128ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
2129ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
2130ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
2131ushort3 __ovld __cnfn convert_ushort3(ushort3);
2132ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
2133ushort3 __ovld __cnfn convert_ushort3_rte(int3);
2134ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
2135ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
2136ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
2137ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
2138ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
2139ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
2140ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
2141ushort3 __ovld __cnfn convert_ushort3(int3);
2142ushort3 __ovld __cnfn convert_ushort3_sat(int3);
2143ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
2144ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
2145ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
2146ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
2147ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
2148ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
2149ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
2150ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
2151ushort3 __ovld __cnfn convert_ushort3(uint3);
2152ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
2153ushort3 __ovld __cnfn convert_ushort3_rte(long3);
2154ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
2155ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
2156ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
2157ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
2158ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
2159ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
2160ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
2161ushort3 __ovld __cnfn convert_ushort3(long3);
2162ushort3 __ovld __cnfn convert_ushort3_sat(long3);
2163ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
2164ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
2165ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
2166ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
2167ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
2168ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
2169ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
2170ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
2171ushort3 __ovld __cnfn convert_ushort3(ulong3);
2172ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
2173ushort3 __ovld __cnfn convert_ushort3_rte(float3);
2174ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
2175ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
2176ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
2177ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
2178ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
2179ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
2180ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
2181ushort3 __ovld __cnfn convert_ushort3(float3);
2182ushort3 __ovld __cnfn convert_ushort3_sat(float3);
2183int3 __ovld __cnfn convert_int3_rte(char3);
2184int3 __ovld __cnfn convert_int3_sat_rte(char3);
2185int3 __ovld __cnfn convert_int3_rtz(char3);
2186int3 __ovld __cnfn convert_int3_sat_rtz(char3);
2187int3 __ovld __cnfn convert_int3_rtp(char3);
2188int3 __ovld __cnfn convert_int3_sat_rtp(char3);
2189int3 __ovld __cnfn convert_int3_rtn(char3);
2190int3 __ovld __cnfn convert_int3_sat_rtn(char3);
2191int3 __ovld __cnfn convert_int3(char3);
2192int3 __ovld __cnfn convert_int3_sat(char3);
2193int3 __ovld __cnfn convert_int3_rte(uchar3);
2194int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
2195int3 __ovld __cnfn convert_int3_rtz(uchar3);
2196int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
2197int3 __ovld __cnfn convert_int3_rtp(uchar3);
2198int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
2199int3 __ovld __cnfn convert_int3_rtn(uchar3);
2200int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
2201int3 __ovld __cnfn convert_int3(uchar3);
2202int3 __ovld __cnfn convert_int3_sat(uchar3);
2203int3 __ovld __cnfn convert_int3_rte(short3);
2204int3 __ovld __cnfn convert_int3_sat_rte(short3);
2205int3 __ovld __cnfn convert_int3_rtz(short3);
2206int3 __ovld __cnfn convert_int3_sat_rtz(short3);
2207int3 __ovld __cnfn convert_int3_rtp(short3);
2208int3 __ovld __cnfn convert_int3_sat_rtp(short3);
2209int3 __ovld __cnfn convert_int3_rtn(short3);
2210int3 __ovld __cnfn convert_int3_sat_rtn(short3);
2211int3 __ovld __cnfn convert_int3(short3);
2212int3 __ovld __cnfn convert_int3_sat(short3);
2213int3 __ovld __cnfn convert_int3_rte(ushort3);
2214int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
2215int3 __ovld __cnfn convert_int3_rtz(ushort3);
2216int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
2217int3 __ovld __cnfn convert_int3_rtp(ushort3);
2218int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
2219int3 __ovld __cnfn convert_int3_rtn(ushort3);
2220int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
2221int3 __ovld __cnfn convert_int3(ushort3);
2222int3 __ovld __cnfn convert_int3_sat(ushort3);
2223int3 __ovld __cnfn convert_int3_rte(int3);
2224int3 __ovld __cnfn convert_int3_sat_rte(int3);
2225int3 __ovld __cnfn convert_int3_rtz(int3);
2226int3 __ovld __cnfn convert_int3_sat_rtz(int3);
2227int3 __ovld __cnfn convert_int3_rtp(int3);
2228int3 __ovld __cnfn convert_int3_sat_rtp(int3);
2229int3 __ovld __cnfn convert_int3_rtn(int3);
2230int3 __ovld __cnfn convert_int3_sat_rtn(int3);
2231int3 __ovld __cnfn convert_int3(int3);
2232int3 __ovld __cnfn convert_int3_sat(int3);
2233int3 __ovld __cnfn convert_int3_rte(uint3);
2234int3 __ovld __cnfn convert_int3_sat_rte(uint3);
2235int3 __ovld __cnfn convert_int3_rtz(uint3);
2236int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
2237int3 __ovld __cnfn convert_int3_rtp(uint3);
2238int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
2239int3 __ovld __cnfn convert_int3_rtn(uint3);
2240int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
2241int3 __ovld __cnfn convert_int3(uint3);
2242int3 __ovld __cnfn convert_int3_sat(uint3);
2243int3 __ovld __cnfn convert_int3_rte(long3);
2244int3 __ovld __cnfn convert_int3_sat_rte(long3);
2245int3 __ovld __cnfn convert_int3_rtz(long3);
2246int3 __ovld __cnfn convert_int3_sat_rtz(long3);
2247int3 __ovld __cnfn convert_int3_rtp(long3);
2248int3 __ovld __cnfn convert_int3_sat_rtp(long3);
2249int3 __ovld __cnfn convert_int3_rtn(long3);
2250int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2251int3 __ovld __cnfn convert_int3(long3);
2252int3 __ovld __cnfn convert_int3_sat(long3);
2253int3 __ovld __cnfn convert_int3_rte(ulong3);
2254int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2255int3 __ovld __cnfn convert_int3_rtz(ulong3);
2256int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2257int3 __ovld __cnfn convert_int3_rtp(ulong3);
2258int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2259int3 __ovld __cnfn convert_int3_rtn(ulong3);
2260int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2261int3 __ovld __cnfn convert_int3(ulong3);
2262int3 __ovld __cnfn convert_int3_sat(ulong3);
2263int3 __ovld __cnfn convert_int3_rte(float3);
2264int3 __ovld __cnfn convert_int3_sat_rte(float3);
2265int3 __ovld __cnfn convert_int3_rtz(float3);
2266int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2267int3 __ovld __cnfn convert_int3_rtp(float3);
2268int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2269int3 __ovld __cnfn convert_int3_rtn(float3);
2270int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2271int3 __ovld __cnfn convert_int3(float3);
2272int3 __ovld __cnfn convert_int3_sat(float3);
2273uint3 __ovld __cnfn convert_uint3_rte(char3);
2274uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2275uint3 __ovld __cnfn convert_uint3_rtz(char3);
2276uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2277uint3 __ovld __cnfn convert_uint3_rtp(char3);
2278uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2279uint3 __ovld __cnfn convert_uint3_rtn(char3);
2280uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2281uint3 __ovld __cnfn convert_uint3(char3);
2282uint3 __ovld __cnfn convert_uint3_sat(char3);
2283uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2284uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2285uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2286uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2287uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2288uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2289uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2290uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2291uint3 __ovld __cnfn convert_uint3(uchar3);
2292uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2293uint3 __ovld __cnfn convert_uint3_rte(short3);
2294uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2295uint3 __ovld __cnfn convert_uint3_rtz(short3);
2296uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2297uint3 __ovld __cnfn convert_uint3_rtp(short3);
2298uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2299uint3 __ovld __cnfn convert_uint3_rtn(short3);
2300uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2301uint3 __ovld __cnfn convert_uint3(short3);
2302uint3 __ovld __cnfn convert_uint3_sat(short3);
2303uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2304uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2305uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2306uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2307uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2308uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2309uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2310uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2311uint3 __ovld __cnfn convert_uint3(ushort3);
2312uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2313uint3 __ovld __cnfn convert_uint3_rte(int3);
2314uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2315uint3 __ovld __cnfn convert_uint3_rtz(int3);
2316uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2317uint3 __ovld __cnfn convert_uint3_rtp(int3);
2318uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2319uint3 __ovld __cnfn convert_uint3_rtn(int3);
2320uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2321uint3 __ovld __cnfn convert_uint3(int3);
2322uint3 __ovld __cnfn convert_uint3_sat(int3);
2323uint3 __ovld __cnfn convert_uint3_rte(uint3);
2324uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2325uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2326uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2327uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2328uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2329uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2330uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2331uint3 __ovld __cnfn convert_uint3(uint3);
2332uint3 __ovld __cnfn convert_uint3_sat(uint3);
2333uint3 __ovld __cnfn convert_uint3_rte(long3);
2334uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2335uint3 __ovld __cnfn convert_uint3_rtz(long3);
2336uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2337uint3 __ovld __cnfn convert_uint3_rtp(long3);
2338uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2339uint3 __ovld __cnfn convert_uint3_rtn(long3);
2340uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2341uint3 __ovld __cnfn convert_uint3(long3);
2342uint3 __ovld __cnfn convert_uint3_sat(long3);
2343uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2344uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2345uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2346uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2347uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2348uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2349uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2350uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2351uint3 __ovld __cnfn convert_uint3(ulong3);
2352uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2353uint3 __ovld __cnfn convert_uint3_rte(float3);
2354uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2355uint3 __ovld __cnfn convert_uint3_rtz(float3);
2356uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2357uint3 __ovld __cnfn convert_uint3_rtp(float3);
2358uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2359uint3 __ovld __cnfn convert_uint3_rtn(float3);
2360uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2361uint3 __ovld __cnfn convert_uint3(float3);
2362uint3 __ovld __cnfn convert_uint3_sat(float3);
2363long3 __ovld __cnfn convert_long3_rte(char3);
2364long3 __ovld __cnfn convert_long3_sat_rte(char3);
2365long3 __ovld __cnfn convert_long3_rtz(char3);
2366long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2367long3 __ovld __cnfn convert_long3_rtp(char3);
2368long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2369long3 __ovld __cnfn convert_long3_rtn(char3);
2370long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2371long3 __ovld __cnfn convert_long3(char3);
2372long3 __ovld __cnfn convert_long3_sat(char3);
2373long3 __ovld __cnfn convert_long3_rte(uchar3);
2374long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2375long3 __ovld __cnfn convert_long3_rtz(uchar3);
2376long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2377long3 __ovld __cnfn convert_long3_rtp(uchar3);
2378long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2379long3 __ovld __cnfn convert_long3_rtn(uchar3);
2380long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2381long3 __ovld __cnfn convert_long3(uchar3);
2382long3 __ovld __cnfn convert_long3_sat(uchar3);
2383long3 __ovld __cnfn convert_long3_rte(short3);
2384long3 __ovld __cnfn convert_long3_sat_rte(short3);
2385long3 __ovld __cnfn convert_long3_rtz(short3);
2386long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2387long3 __ovld __cnfn convert_long3_rtp(short3);
2388long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2389long3 __ovld __cnfn convert_long3_rtn(short3);
2390long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2391long3 __ovld __cnfn convert_long3(short3);
2392long3 __ovld __cnfn convert_long3_sat(short3);
2393long3 __ovld __cnfn convert_long3_rte(ushort3);
2394long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2395long3 __ovld __cnfn convert_long3_rtz(ushort3);
2396long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2397long3 __ovld __cnfn convert_long3_rtp(ushort3);
2398long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2399long3 __ovld __cnfn convert_long3_rtn(ushort3);
2400long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2401long3 __ovld __cnfn convert_long3(ushort3);
2402long3 __ovld __cnfn convert_long3_sat(ushort3);
2403long3 __ovld __cnfn convert_long3_rte(int3);
2404long3 __ovld __cnfn convert_long3_sat_rte(int3);
2405long3 __ovld __cnfn convert_long3_rtz(int3);
2406long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2407long3 __ovld __cnfn convert_long3_rtp(int3);
2408long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2409long3 __ovld __cnfn convert_long3_rtn(int3);
2410long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2411long3 __ovld __cnfn convert_long3(int3);
2412long3 __ovld __cnfn convert_long3_sat(int3);
2413long3 __ovld __cnfn convert_long3_rte(uint3);
2414long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2415long3 __ovld __cnfn convert_long3_rtz(uint3);
2416long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2417long3 __ovld __cnfn convert_long3_rtp(uint3);
2418long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2419long3 __ovld __cnfn convert_long3_rtn(uint3);
2420long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2421long3 __ovld __cnfn convert_long3(uint3);
2422long3 __ovld __cnfn convert_long3_sat(uint3);
2423long3 __ovld __cnfn convert_long3_rte(long3);
2424long3 __ovld __cnfn convert_long3_sat_rte(long3);
2425long3 __ovld __cnfn convert_long3_rtz(long3);
2426long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2427long3 __ovld __cnfn convert_long3_rtp(long3);
2428long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2429long3 __ovld __cnfn convert_long3_rtn(long3);
2430long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2431long3 __ovld __cnfn convert_long3(long3);
2432long3 __ovld __cnfn convert_long3_sat(long3);
2433long3 __ovld __cnfn convert_long3_rte(ulong3);
2434long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2435long3 __ovld __cnfn convert_long3_rtz(ulong3);
2436long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2437long3 __ovld __cnfn convert_long3_rtp(ulong3);
2438long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2439long3 __ovld __cnfn convert_long3_rtn(ulong3);
2440long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2441long3 __ovld __cnfn convert_long3(ulong3);
2442long3 __ovld __cnfn convert_long3_sat(ulong3);
2443long3 __ovld __cnfn convert_long3_rte(float3);
2444long3 __ovld __cnfn convert_long3_sat_rte(float3);
2445long3 __ovld __cnfn convert_long3_rtz(float3);
2446long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2447long3 __ovld __cnfn convert_long3_rtp(float3);
2448long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2449long3 __ovld __cnfn convert_long3_rtn(float3);
2450long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2451long3 __ovld __cnfn convert_long3(float3);
2452long3 __ovld __cnfn convert_long3_sat(float3);
2453ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2454ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2455ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2456ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2457ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2458ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2459ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2460ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2461ulong3 __ovld __cnfn convert_ulong3(char3);
2462ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2463ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2464ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2465ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2466ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2467ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2468ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2469ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2470ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2471ulong3 __ovld __cnfn convert_ulong3(uchar3);
2472ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2473ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2474ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2475ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2476ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2477ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2478ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2479ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2480ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2481ulong3 __ovld __cnfn convert_ulong3(short3);
2482ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2483ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2484ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2485ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2486ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2487ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2488ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2489ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2490ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2491ulong3 __ovld __cnfn convert_ulong3(ushort3);
2492ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2493ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2494ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2495ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2496ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2497ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2498ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2499ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2500ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2501ulong3 __ovld __cnfn convert_ulong3(int3);
2502ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2503ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2504ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2505ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2506ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2507ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2508ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2509ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2510ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2511ulong3 __ovld __cnfn convert_ulong3(uint3);
2512ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2513ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2514ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2515ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2516ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2517ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2518ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2519ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2520ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2521ulong3 __ovld __cnfn convert_ulong3(long3);
2522ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2523ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2524ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2525ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2526ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2527ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2528ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2529ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2530ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2531ulong3 __ovld __cnfn convert_ulong3(ulong3);
2532ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2533ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2534ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2535ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2536ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2537ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2538ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2539ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2540ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2541ulong3 __ovld __cnfn convert_ulong3(float3);
2542ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2543float3 __ovld __cnfn convert_float3_rte(char3);
2544float3 __ovld __cnfn convert_float3_rtz(char3);
2545float3 __ovld __cnfn convert_float3_rtp(char3);
2546float3 __ovld __cnfn convert_float3_rtn(char3);
2547float3 __ovld __cnfn convert_float3(char3);
2548float3 __ovld __cnfn convert_float3_rte(uchar3);
2549float3 __ovld __cnfn convert_float3_rtz(uchar3);
2550float3 __ovld __cnfn convert_float3_rtp(uchar3);
2551float3 __ovld __cnfn convert_float3_rtn(uchar3);
2552float3 __ovld __cnfn convert_float3(uchar3);
2553float3 __ovld __cnfn convert_float3_rte(short3);
2554float3 __ovld __cnfn convert_float3_rtz(short3);
2555float3 __ovld __cnfn convert_float3_rtp(short3);
2556float3 __ovld __cnfn convert_float3_rtn(short3);
2557float3 __ovld __cnfn convert_float3(short3);
2558float3 __ovld __cnfn convert_float3_rte(ushort3);
2559float3 __ovld __cnfn convert_float3_rtz(ushort3);
2560float3 __ovld __cnfn convert_float3_rtp(ushort3);
2561float3 __ovld __cnfn convert_float3_rtn(ushort3);
2562float3 __ovld __cnfn convert_float3(ushort3);
2563float3 __ovld __cnfn convert_float3_rte(int3);
2564float3 __ovld __cnfn convert_float3_rtz(int3);
2565float3 __ovld __cnfn convert_float3_rtp(int3);
2566float3 __ovld __cnfn convert_float3_rtn(int3);
2567float3 __ovld __cnfn convert_float3(int3);
2568float3 __ovld __cnfn convert_float3_rte(uint3);
2569float3 __ovld __cnfn convert_float3_rtz(uint3);
2570float3 __ovld __cnfn convert_float3_rtp(uint3);
2571float3 __ovld __cnfn convert_float3_rtn(uint3);
2572float3 __ovld __cnfn convert_float3(uint3);
2573float3 __ovld __cnfn convert_float3_rte(long3);
2574float3 __ovld __cnfn convert_float3_rtz(long3);
2575float3 __ovld __cnfn convert_float3_rtp(long3);
2576float3 __ovld __cnfn convert_float3_rtn(long3);
2577float3 __ovld __cnfn convert_float3(long3);
2578float3 __ovld __cnfn convert_float3_rte(ulong3);
2579float3 __ovld __cnfn convert_float3_rtz(ulong3);
2580float3 __ovld __cnfn convert_float3_rtp(ulong3);
2581float3 __ovld __cnfn convert_float3_rtn(ulong3);
2582float3 __ovld __cnfn convert_float3(ulong3);
2583float3 __ovld __cnfn convert_float3_rte(float3);
2584float3 __ovld __cnfn convert_float3_rtz(float3);
2585float3 __ovld __cnfn convert_float3_rtp(float3);
2586float3 __ovld __cnfn convert_float3_rtn(float3);
2587float3 __ovld __cnfn convert_float3(float3);
2588char4 __ovld __cnfn convert_char4_rte(char4);
2589char4 __ovld __cnfn convert_char4_sat_rte(char4);
2590char4 __ovld __cnfn convert_char4_rtz(char4);
2591char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2592char4 __ovld __cnfn convert_char4_rtp(char4);
2593char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2594char4 __ovld __cnfn convert_char4_rtn(char4);
2595char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2596char4 __ovld __cnfn convert_char4(char4);
2597char4 __ovld __cnfn convert_char4_sat(char4);
2598char4 __ovld __cnfn convert_char4_rte(uchar4);
2599char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2600char4 __ovld __cnfn convert_char4_rtz(uchar4);
2601char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2602char4 __ovld __cnfn convert_char4_rtp(uchar4);
2603char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2604char4 __ovld __cnfn convert_char4_rtn(uchar4);
2605char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2606char4 __ovld __cnfn convert_char4(uchar4);
2607char4 __ovld __cnfn convert_char4_sat(uchar4);
2608char4 __ovld __cnfn convert_char4_rte(short4);
2609char4 __ovld __cnfn convert_char4_sat_rte(short4);
2610char4 __ovld __cnfn convert_char4_rtz(short4);
2611char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2612char4 __ovld __cnfn convert_char4_rtp(short4);
2613char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2614char4 __ovld __cnfn convert_char4_rtn(short4);
2615char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2616char4 __ovld __cnfn convert_char4(short4);
2617char4 __ovld __cnfn convert_char4_sat(short4);
2618char4 __ovld __cnfn convert_char4_rte(ushort4);
2619char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2620char4 __ovld __cnfn convert_char4_rtz(ushort4);
2621char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2622char4 __ovld __cnfn convert_char4_rtp(ushort4);
2623char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2624char4 __ovld __cnfn convert_char4_rtn(ushort4);
2625char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2626char4 __ovld __cnfn convert_char4(ushort4);
2627char4 __ovld __cnfn convert_char4_sat(ushort4);
2628char4 __ovld __cnfn convert_char4_rte(int4);
2629char4 __ovld __cnfn convert_char4_sat_rte(int4);
2630char4 __ovld __cnfn convert_char4_rtz(int4);
2631char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2632char4 __ovld __cnfn convert_char4_rtp(int4);
2633char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2634char4 __ovld __cnfn convert_char4_rtn(int4);
2635char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2636char4 __ovld __cnfn convert_char4(int4);
2637char4 __ovld __cnfn convert_char4_sat(int4);
2638char4 __ovld __cnfn convert_char4_rte(uint4);
2639char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2640char4 __ovld __cnfn convert_char4_rtz(uint4);
2641char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2642char4 __ovld __cnfn convert_char4_rtp(uint4);
2643char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2644char4 __ovld __cnfn convert_char4_rtn(uint4);
2645char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2646char4 __ovld __cnfn convert_char4(uint4);
2647char4 __ovld __cnfn convert_char4_sat(uint4);
2648char4 __ovld __cnfn convert_char4_rte(long4);
2649char4 __ovld __cnfn convert_char4_sat_rte(long4);
2650char4 __ovld __cnfn convert_char4_rtz(long4);
2651char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2652char4 __ovld __cnfn convert_char4_rtp(long4);
2653char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2654char4 __ovld __cnfn convert_char4_rtn(long4);
2655char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2656char4 __ovld __cnfn convert_char4(long4);
2657char4 __ovld __cnfn convert_char4_sat(long4);
2658char4 __ovld __cnfn convert_char4_rte(ulong4);
2659char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2660char4 __ovld __cnfn convert_char4_rtz(ulong4);
2661char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2662char4 __ovld __cnfn convert_char4_rtp(ulong4);
2663char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2664char4 __ovld __cnfn convert_char4_rtn(ulong4);
2665char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2666char4 __ovld __cnfn convert_char4(ulong4);
2667char4 __ovld __cnfn convert_char4_sat(ulong4);
2668char4 __ovld __cnfn convert_char4_rte(float4);
2669char4 __ovld __cnfn convert_char4_sat_rte(float4);
2670char4 __ovld __cnfn convert_char4_rtz(float4);
2671char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2672char4 __ovld __cnfn convert_char4_rtp(float4);
2673char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2674char4 __ovld __cnfn convert_char4_rtn(float4);
2675char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2676char4 __ovld __cnfn convert_char4(float4);
2677char4 __ovld __cnfn convert_char4_sat(float4);
2678uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2679uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2680uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2681uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2682uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2683uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2684uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2685uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2686uchar4 __ovld __cnfn convert_uchar4(char4);
2687uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2688uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2689uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2690uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2691uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2692uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2693uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2694uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2695uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2696uchar4 __ovld __cnfn convert_uchar4(uchar4);
2697uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2698uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2699uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2700uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2701uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2702uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2703uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2704uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2705uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2706uchar4 __ovld __cnfn convert_uchar4(short4);
2707uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2708uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2709uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2710uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2711uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2712uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2713uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2714uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2715uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2716uchar4 __ovld __cnfn convert_uchar4(ushort4);
2717uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2718uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2719uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2720uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2721uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2722uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2723uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2724uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2725uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2726uchar4 __ovld __cnfn convert_uchar4(int4);
2727uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2728uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2729uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2730uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2731uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2732uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2733uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2734uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2735uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2736uchar4 __ovld __cnfn convert_uchar4(uint4);
2737uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2738uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2739uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2740uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2741uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2742uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2743uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2744uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2745uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2746uchar4 __ovld __cnfn convert_uchar4(long4);
2747uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2748uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2749uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2750uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2751uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2752uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2753uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2754uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2755uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2756uchar4 __ovld __cnfn convert_uchar4(ulong4);
2757uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2758uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2759uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2760uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2761uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2762uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2763uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2764uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2765uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2766uchar4 __ovld __cnfn convert_uchar4(float4);
2767uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2768short4 __ovld __cnfn convert_short4_rte(char4);
2769short4 __ovld __cnfn convert_short4_sat_rte(char4);
2770short4 __ovld __cnfn convert_short4_rtz(char4);
2771short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2772short4 __ovld __cnfn convert_short4_rtp(char4);
2773short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2774short4 __ovld __cnfn convert_short4_rtn(char4);
2775short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2776short4 __ovld __cnfn convert_short4(char4);
2777short4 __ovld __cnfn convert_short4_sat(char4);
2778short4 __ovld __cnfn convert_short4_rte(uchar4);
2779short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2780short4 __ovld __cnfn convert_short4_rtz(uchar4);
2781short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2782short4 __ovld __cnfn convert_short4_rtp(uchar4);
2783short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2784short4 __ovld __cnfn convert_short4_rtn(uchar4);
2785short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2786short4 __ovld __cnfn convert_short4(uchar4);
2787short4 __ovld __cnfn convert_short4_sat(uchar4);
2788short4 __ovld __cnfn convert_short4_rte(short4);
2789short4 __ovld __cnfn convert_short4_sat_rte(short4);
2790short4 __ovld __cnfn convert_short4_rtz(short4);
2791short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2792short4 __ovld __cnfn convert_short4_rtp(short4);
2793short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2794short4 __ovld __cnfn convert_short4_rtn(short4);
2795short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2796short4 __ovld __cnfn convert_short4(short4);
2797short4 __ovld __cnfn convert_short4_sat(short4);
2798short4 __ovld __cnfn convert_short4_rte(ushort4);
2799short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2800short4 __ovld __cnfn convert_short4_rtz(ushort4);
2801short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2802short4 __ovld __cnfn convert_short4_rtp(ushort4);
2803short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2804short4 __ovld __cnfn convert_short4_rtn(ushort4);
2805short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2806short4 __ovld __cnfn convert_short4(ushort4);
2807short4 __ovld __cnfn convert_short4_sat(ushort4);
2808short4 __ovld __cnfn convert_short4_rte(int4);
2809short4 __ovld __cnfn convert_short4_sat_rte(int4);
2810short4 __ovld __cnfn convert_short4_rtz(int4);
2811short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2812short4 __ovld __cnfn convert_short4_rtp(int4);
2813short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2814short4 __ovld __cnfn convert_short4_rtn(int4);
2815short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2816short4 __ovld __cnfn convert_short4(int4);
2817short4 __ovld __cnfn convert_short4_sat(int4);
2818short4 __ovld __cnfn convert_short4_rte(uint4);
2819short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2820short4 __ovld __cnfn convert_short4_rtz(uint4);
2821short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2822short4 __ovld __cnfn convert_short4_rtp(uint4);
2823short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2824short4 __ovld __cnfn convert_short4_rtn(uint4);
2825short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2826short4 __ovld __cnfn convert_short4(uint4);
2827short4 __ovld __cnfn convert_short4_sat(uint4);
2828short4 __ovld __cnfn convert_short4_rte(long4);
2829short4 __ovld __cnfn convert_short4_sat_rte(long4);
2830short4 __ovld __cnfn convert_short4_rtz(long4);
2831short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2832short4 __ovld __cnfn convert_short4_rtp(long4);
2833short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2834short4 __ovld __cnfn convert_short4_rtn(long4);
2835short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2836short4 __ovld __cnfn convert_short4(long4);
2837short4 __ovld __cnfn convert_short4_sat(long4);
2838short4 __ovld __cnfn convert_short4_rte(ulong4);
2839short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2840short4 __ovld __cnfn convert_short4_rtz(ulong4);
2841short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2842short4 __ovld __cnfn convert_short4_rtp(ulong4);
2843short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2844short4 __ovld __cnfn convert_short4_rtn(ulong4);
2845short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2846short4 __ovld __cnfn convert_short4(ulong4);
2847short4 __ovld __cnfn convert_short4_sat(ulong4);
2848short4 __ovld __cnfn convert_short4_rte(float4);
2849short4 __ovld __cnfn convert_short4_sat_rte(float4);
2850short4 __ovld __cnfn convert_short4_rtz(float4);
2851short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2852short4 __ovld __cnfn convert_short4_rtp(float4);
2853short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2854short4 __ovld __cnfn convert_short4_rtn(float4);
2855short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2856short4 __ovld __cnfn convert_short4(float4);
2857short4 __ovld __cnfn convert_short4_sat(float4);
2858ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2859ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2860ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2861ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2862ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2863ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2864ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2865ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2866ushort4 __ovld __cnfn convert_ushort4(char4);
2867ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2868ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2869ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2870ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2871ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2872ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2873ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2874ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2875ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2876ushort4 __ovld __cnfn convert_ushort4(uchar4);
2877ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2878ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2879ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2880ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2881ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2882ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2883ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2884ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2885ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2886ushort4 __ovld __cnfn convert_ushort4(short4);
2887ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2888ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2889ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2890ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2891ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2892ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2893ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2894ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2895ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2896ushort4 __ovld __cnfn convert_ushort4(ushort4);
2897ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2898ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2899ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2900ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2901ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2902ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2903ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2904ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2905ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2906ushort4 __ovld __cnfn convert_ushort4(int4);
2907ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2908ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2909ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2910ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2911ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2912ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2913ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2914ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2915ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2916ushort4 __ovld __cnfn convert_ushort4(uint4);
2917ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2918ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2919ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2920ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2921ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2922ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2923ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2924ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2925ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2926ushort4 __ovld __cnfn convert_ushort4(long4);
2927ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2928ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2929ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2930ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2931ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2932ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2933ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2934ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2935ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2936ushort4 __ovld __cnfn convert_ushort4(ulong4);
2937ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2938ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2939ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2940ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2941ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2942ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2943ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2944ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2945ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2946ushort4 __ovld __cnfn convert_ushort4(float4);
2947ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2948int4 __ovld __cnfn convert_int4_rte(char4);
2949int4 __ovld __cnfn convert_int4_sat_rte(char4);
2950int4 __ovld __cnfn convert_int4_rtz(char4);
2951int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2952int4 __ovld __cnfn convert_int4_rtp(char4);
2953int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2954int4 __ovld __cnfn convert_int4_rtn(char4);
2955int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2956int4 __ovld __cnfn convert_int4(char4);
2957int4 __ovld __cnfn convert_int4_sat(char4);
2958int4 __ovld __cnfn convert_int4_rte(uchar4);
2959int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2960int4 __ovld __cnfn convert_int4_rtz(uchar4);
2961int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2962int4 __ovld __cnfn convert_int4_rtp(uchar4);
2963int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2964int4 __ovld __cnfn convert_int4_rtn(uchar4);
2965int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2966int4 __ovld __cnfn convert_int4(uchar4);
2967int4 __ovld __cnfn convert_int4_sat(uchar4);
2968int4 __ovld __cnfn convert_int4_rte(short4);
2969int4 __ovld __cnfn convert_int4_sat_rte(short4);
2970int4 __ovld __cnfn convert_int4_rtz(short4);
2971int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2972int4 __ovld __cnfn convert_int4_rtp(short4);
2973int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2974int4 __ovld __cnfn convert_int4_rtn(short4);
2975int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2976int4 __ovld __cnfn convert_int4(short4);
2977int4 __ovld __cnfn convert_int4_sat(short4);
2978int4 __ovld __cnfn convert_int4_rte(ushort4);
2979int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2980int4 __ovld __cnfn convert_int4_rtz(ushort4);
2981int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2982int4 __ovld __cnfn convert_int4_rtp(ushort4);
2983int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2984int4 __ovld __cnfn convert_int4_rtn(ushort4);
2985int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2986int4 __ovld __cnfn convert_int4(ushort4);
2987int4 __ovld __cnfn convert_int4_sat(ushort4);
2988int4 __ovld __cnfn convert_int4_rte(int4);
2989int4 __ovld __cnfn convert_int4_sat_rte(int4);
2990int4 __ovld __cnfn convert_int4_rtz(int4);
2991int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2992int4 __ovld __cnfn convert_int4_rtp(int4);
2993int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2994int4 __ovld __cnfn convert_int4_rtn(int4);
2995int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2996int4 __ovld __cnfn convert_int4(int4);
2997int4 __ovld __cnfn convert_int4_sat(int4);
2998int4 __ovld __cnfn convert_int4_rte(uint4);
2999int4 __ovld __cnfn convert_int4_sat_rte(uint4);
3000int4 __ovld __cnfn convert_int4_rtz(uint4);
3001int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
3002int4 __ovld __cnfn convert_int4_rtp(uint4);
3003int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
3004int4 __ovld __cnfn convert_int4_rtn(uint4);
3005int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
3006int4 __ovld __cnfn convert_int4(uint4);
3007int4 __ovld __cnfn convert_int4_sat(uint4);
3008int4 __ovld __cnfn convert_int4_rte(long4);
3009int4 __ovld __cnfn convert_int4_sat_rte(long4);
3010int4 __ovld __cnfn convert_int4_rtz(long4);
3011int4 __ovld __cnfn convert_int4_sat_rtz(long4);
3012int4 __ovld __cnfn convert_int4_rtp(long4);
3013int4 __ovld __cnfn convert_int4_sat_rtp(long4);
3014int4 __ovld __cnfn convert_int4_rtn(long4);
3015int4 __ovld __cnfn convert_int4_sat_rtn(long4);
3016int4 __ovld __cnfn convert_int4(long4);
3017int4 __ovld __cnfn convert_int4_sat(long4);
3018int4 __ovld __cnfn convert_int4_rte(ulong4);
3019int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
3020int4 __ovld __cnfn convert_int4_rtz(ulong4);
3021int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
3022int4 __ovld __cnfn convert_int4_rtp(ulong4);
3023int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
3024int4 __ovld __cnfn convert_int4_rtn(ulong4);
3025int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
3026int4 __ovld __cnfn convert_int4(ulong4);
3027int4 __ovld __cnfn convert_int4_sat(ulong4);
3028int4 __ovld __cnfn convert_int4_rte(float4);
3029int4 __ovld __cnfn convert_int4_sat_rte(float4);
3030int4 __ovld __cnfn convert_int4_rtz(float4);
3031int4 __ovld __cnfn convert_int4_sat_rtz(float4);
3032int4 __ovld __cnfn convert_int4_rtp(float4);
3033int4 __ovld __cnfn convert_int4_sat_rtp(float4);
3034int4 __ovld __cnfn convert_int4_rtn(float4);
3035int4 __ovld __cnfn convert_int4_sat_rtn(float4);
3036int4 __ovld __cnfn convert_int4(float4);
3037int4 __ovld __cnfn convert_int4_sat(float4);
3038uint4 __ovld __cnfn convert_uint4_rte(char4);
3039uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
3040uint4 __ovld __cnfn convert_uint4_rtz(char4);
3041uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
3042uint4 __ovld __cnfn convert_uint4_rtp(char4);
3043uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
3044uint4 __ovld __cnfn convert_uint4_rtn(char4);
3045uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
3046uint4 __ovld __cnfn convert_uint4(char4);
3047uint4 __ovld __cnfn convert_uint4_sat(char4);
3048uint4 __ovld __cnfn convert_uint4_rte(uchar4);
3049uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
3050uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
3051uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
3052uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
3053uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
3054uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
3055uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
3056uint4 __ovld __cnfn convert_uint4(uchar4);
3057uint4 __ovld __cnfn convert_uint4_sat(uchar4);
3058uint4 __ovld __cnfn convert_uint4_rte(short4);
3059uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
3060uint4 __ovld __cnfn convert_uint4_rtz(short4);
3061uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
3062uint4 __ovld __cnfn convert_uint4_rtp(short4);
3063uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
3064uint4 __ovld __cnfn convert_uint4_rtn(short4);
3065uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
3066uint4 __ovld __cnfn convert_uint4(short4);
3067uint4 __ovld __cnfn convert_uint4_sat(short4);
3068uint4 __ovld __cnfn convert_uint4_rte(ushort4);
3069uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
3070uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
3071uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
3072uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
3073uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
3074uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
3075uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
3076uint4 __ovld __cnfn convert_uint4(ushort4);
3077uint4 __ovld __cnfn convert_uint4_sat(ushort4);
3078uint4 __ovld __cnfn convert_uint4_rte(int4);
3079uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
3080uint4 __ovld __cnfn convert_uint4_rtz(int4);
3081uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
3082uint4 __ovld __cnfn convert_uint4_rtp(int4);
3083uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
3084uint4 __ovld __cnfn convert_uint4_rtn(int4);
3085uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
3086uint4 __ovld __cnfn convert_uint4(int4);
3087uint4 __ovld __cnfn convert_uint4_sat(int4);
3088uint4 __ovld __cnfn convert_uint4_rte(uint4);
3089uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
3090uint4 __ovld __cnfn convert_uint4_rtz(uint4);
3091uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
3092uint4 __ovld __cnfn convert_uint4_rtp(uint4);
3093uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
3094uint4 __ovld __cnfn convert_uint4_rtn(uint4);
3095uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
3096uint4 __ovld __cnfn convert_uint4(uint4);
3097uint4 __ovld __cnfn convert_uint4_sat(uint4);
3098uint4 __ovld __cnfn convert_uint4_rte(long4);
3099uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
3100uint4 __ovld __cnfn convert_uint4_rtz(long4);
3101uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
3102uint4 __ovld __cnfn convert_uint4_rtp(long4);
3103uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
3104uint4 __ovld __cnfn convert_uint4_rtn(long4);
3105uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
3106uint4 __ovld __cnfn convert_uint4(long4);
3107uint4 __ovld __cnfn convert_uint4_sat(long4);
3108uint4 __ovld __cnfn convert_uint4_rte(ulong4);
3109uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
3110uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
3111uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
3112uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
3113uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
3114uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
3115uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
3116uint4 __ovld __cnfn convert_uint4(ulong4);
3117uint4 __ovld __cnfn convert_uint4_sat(ulong4);
3118uint4 __ovld __cnfn convert_uint4_rte(float4);
3119uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
3120uint4 __ovld __cnfn convert_uint4_rtz(float4);
3121uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
3122uint4 __ovld __cnfn convert_uint4_rtp(float4);
3123uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
3124uint4 __ovld __cnfn convert_uint4_rtn(float4);
3125uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
3126uint4 __ovld __cnfn convert_uint4(float4);
3127uint4 __ovld __cnfn convert_uint4_sat(float4);
3128long4 __ovld __cnfn convert_long4_rte(char4);
3129long4 __ovld __cnfn convert_long4_sat_rte(char4);
3130long4 __ovld __cnfn convert_long4_rtz(char4);
3131long4 __ovld __cnfn convert_long4_sat_rtz(char4);
3132long4 __ovld __cnfn convert_long4_rtp(char4);
3133long4 __ovld __cnfn convert_long4_sat_rtp(char4);
3134long4 __ovld __cnfn convert_long4_rtn(char4);
3135long4 __ovld __cnfn convert_long4_sat_rtn(char4);
3136long4 __ovld __cnfn convert_long4(char4);
3137long4 __ovld __cnfn convert_long4_sat(char4);
3138long4 __ovld __cnfn convert_long4_rte(uchar4);
3139long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
3140long4 __ovld __cnfn convert_long4_rtz(uchar4);
3141long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
3142long4 __ovld __cnfn convert_long4_rtp(uchar4);
3143long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
3144long4 __ovld __cnfn convert_long4_rtn(uchar4);
3145long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
3146long4 __ovld __cnfn convert_long4(uchar4);
3147long4 __ovld __cnfn convert_long4_sat(uchar4);
3148long4 __ovld __cnfn convert_long4_rte(short4);
3149long4 __ovld __cnfn convert_long4_sat_rte(short4);
3150long4 __ovld __cnfn convert_long4_rtz(short4);
3151long4 __ovld __cnfn convert_long4_sat_rtz(short4);
3152long4 __ovld __cnfn convert_long4_rtp(short4);
3153long4 __ovld __cnfn convert_long4_sat_rtp(short4);
3154long4 __ovld __cnfn convert_long4_rtn(short4);
3155long4 __ovld __cnfn convert_long4_sat_rtn(short4);
3156long4 __ovld __cnfn convert_long4(short4);
3157long4 __ovld __cnfn convert_long4_sat(short4);
3158long4 __ovld __cnfn convert_long4_rte(ushort4);
3159long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
3160long4 __ovld __cnfn convert_long4_rtz(ushort4);
3161long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
3162long4 __ovld __cnfn convert_long4_rtp(ushort4);
3163long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
3164long4 __ovld __cnfn convert_long4_rtn(ushort4);
3165long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
3166long4 __ovld __cnfn convert_long4(ushort4);
3167long4 __ovld __cnfn convert_long4_sat(ushort4);
3168long4 __ovld __cnfn convert_long4_rte(int4);
3169long4 __ovld __cnfn convert_long4_sat_rte(int4);
3170long4 __ovld __cnfn convert_long4_rtz(int4);
3171long4 __ovld __cnfn convert_long4_sat_rtz(int4);
3172long4 __ovld __cnfn convert_long4_rtp(int4);
3173long4 __ovld __cnfn convert_long4_sat_rtp(int4);
3174long4 __ovld __cnfn convert_long4_rtn(int4);
3175long4 __ovld __cnfn convert_long4_sat_rtn(int4);
3176long4 __ovld __cnfn convert_long4(int4);
3177long4 __ovld __cnfn convert_long4_sat(int4);
3178long4 __ovld __cnfn convert_long4_rte(uint4);
3179long4 __ovld __cnfn convert_long4_sat_rte(uint4);
3180long4 __ovld __cnfn convert_long4_rtz(uint4);
3181long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
3182long4 __ovld __cnfn convert_long4_rtp(uint4);
3183long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
3184long4 __ovld __cnfn convert_long4_rtn(uint4);
3185long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
3186long4 __ovld __cnfn convert_long4(uint4);
3187long4 __ovld __cnfn convert_long4_sat(uint4);
3188long4 __ovld __cnfn convert_long4_rte(long4);
3189long4 __ovld __cnfn convert_long4_sat_rte(long4);
3190long4 __ovld __cnfn convert_long4_rtz(long4);
3191long4 __ovld __cnfn convert_long4_sat_rtz(long4);
3192long4 __ovld __cnfn convert_long4_rtp(long4);
3193long4 __ovld __cnfn convert_long4_sat_rtp(long4);
3194long4 __ovld __cnfn convert_long4_rtn(long4);
3195long4 __ovld __cnfn convert_long4_sat_rtn(long4);
3196long4 __ovld __cnfn convert_long4(long4);
3197long4 __ovld __cnfn convert_long4_sat(long4);
3198long4 __ovld __cnfn convert_long4_rte(ulong4);
3199long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
3200long4 __ovld __cnfn convert_long4_rtz(ulong4);
3201long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
3202long4 __ovld __cnfn convert_long4_rtp(ulong4);
3203long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
3204long4 __ovld __cnfn convert_long4_rtn(ulong4);
3205long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
3206long4 __ovld __cnfn convert_long4(ulong4);
3207long4 __ovld __cnfn convert_long4_sat(ulong4);
3208long4 __ovld __cnfn convert_long4_rte(float4);
3209long4 __ovld __cnfn convert_long4_sat_rte(float4);
3210long4 __ovld __cnfn convert_long4_rtz(float4);
3211long4 __ovld __cnfn convert_long4_sat_rtz(float4);
3212long4 __ovld __cnfn convert_long4_rtp(float4);
3213long4 __ovld __cnfn convert_long4_sat_rtp(float4);
3214long4 __ovld __cnfn convert_long4_rtn(float4);
3215long4 __ovld __cnfn convert_long4_sat_rtn(float4);
3216long4 __ovld __cnfn convert_long4(float4);
3217long4 __ovld __cnfn convert_long4_sat(float4);
3218ulong4 __ovld __cnfn convert_ulong4_rte(char4);
3219ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
3220ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
3221ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
3222ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
3223ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
3224ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
3225ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
3226ulong4 __ovld __cnfn convert_ulong4(char4);
3227ulong4 __ovld __cnfn convert_ulong4_sat(char4);
3228ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
3229ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
3230ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
3231ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
3232ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
3233ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
3234ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
3235ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
3236ulong4 __ovld __cnfn convert_ulong4(uchar4);
3237ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
3238ulong4 __ovld __cnfn convert_ulong4_rte(short4);
3239ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
3240ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
3241ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
3242ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
3243ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
3244ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
3245ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
3246ulong4 __ovld __cnfn convert_ulong4(short4);
3247ulong4 __ovld __cnfn convert_ulong4_sat(short4);
3248ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
3249ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3250ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3251ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3252ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3253ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3254ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3255ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3256ulong4 __ovld __cnfn convert_ulong4(ushort4);
3257ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3258ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3259ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3260ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3261ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3262ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3263ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3264ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3265ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3266ulong4 __ovld __cnfn convert_ulong4(int4);
3267ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3268ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3269ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3270ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3271ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3272ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3273ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3274ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3275ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3276ulong4 __ovld __cnfn convert_ulong4(uint4);
3277ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3278ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3279ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3280ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3281ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3282ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3283ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3284ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3285ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3286ulong4 __ovld __cnfn convert_ulong4(long4);
3287ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3288ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3289ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3290ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3291ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3292ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3293ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3294ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3295ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3296ulong4 __ovld __cnfn convert_ulong4(ulong4);
3297ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3298ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3299ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3300ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3301ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3302ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3303ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3304ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3305ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3306ulong4 __ovld __cnfn convert_ulong4(float4);
3307ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3308float4 __ovld __cnfn convert_float4_rte(char4);
3309float4 __ovld __cnfn convert_float4_rtz(char4);
3310float4 __ovld __cnfn convert_float4_rtp(char4);
3311float4 __ovld __cnfn convert_float4_rtn(char4);
3312float4 __ovld __cnfn convert_float4(char4);
3313float4 __ovld __cnfn convert_float4_rte(uchar4);
3314float4 __ovld __cnfn convert_float4_rtz(uchar4);
3315float4 __ovld __cnfn convert_float4_rtp(uchar4);
3316float4 __ovld __cnfn convert_float4_rtn(uchar4);
3317float4 __ovld __cnfn convert_float4(uchar4);
3318float4 __ovld __cnfn convert_float4_rte(short4);
3319float4 __ovld __cnfn convert_float4_rtz(short4);
3320float4 __ovld __cnfn convert_float4_rtp(short4);
3321float4 __ovld __cnfn convert_float4_rtn(short4);
3322float4 __ovld __cnfn convert_float4(short4);
3323float4 __ovld __cnfn convert_float4_rte(ushort4);
3324float4 __ovld __cnfn convert_float4_rtz(ushort4);
3325float4 __ovld __cnfn convert_float4_rtp(ushort4);
3326float4 __ovld __cnfn convert_float4_rtn(ushort4);
3327float4 __ovld __cnfn convert_float4(ushort4);
3328float4 __ovld __cnfn convert_float4_rte(int4);
3329float4 __ovld __cnfn convert_float4_rtz(int4);
3330float4 __ovld __cnfn convert_float4_rtp(int4);
3331float4 __ovld __cnfn convert_float4_rtn(int4);
3332float4 __ovld __cnfn convert_float4(int4);
3333float4 __ovld __cnfn convert_float4_rte(uint4);
3334float4 __ovld __cnfn convert_float4_rtz(uint4);
3335float4 __ovld __cnfn convert_float4_rtp(uint4);
3336float4 __ovld __cnfn convert_float4_rtn(uint4);
3337float4 __ovld __cnfn convert_float4(uint4);
3338float4 __ovld __cnfn convert_float4_rte(long4);
3339float4 __ovld __cnfn convert_float4_rtz(long4);
3340float4 __ovld __cnfn convert_float4_rtp(long4);
3341float4 __ovld __cnfn convert_float4_rtn(long4);
3342float4 __ovld __cnfn convert_float4(long4);
3343float4 __ovld __cnfn convert_float4_rte(ulong4);
3344float4 __ovld __cnfn convert_float4_rtz(ulong4);
3345float4 __ovld __cnfn convert_float4_rtp(ulong4);
3346float4 __ovld __cnfn convert_float4_rtn(ulong4);
3347float4 __ovld __cnfn convert_float4(ulong4);
3348float4 __ovld __cnfn convert_float4_rte(float4);
3349float4 __ovld __cnfn convert_float4_rtz(float4);
3350float4 __ovld __cnfn convert_float4_rtp(float4);
3351float4 __ovld __cnfn convert_float4_rtn(float4);
3352float4 __ovld __cnfn convert_float4(float4);
3353char8 __ovld __cnfn convert_char8_rte(char8);
3354char8 __ovld __cnfn convert_char8_sat_rte(char8);
3355char8 __ovld __cnfn convert_char8_rtz(char8);
3356char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3357char8 __ovld __cnfn convert_char8_rtp(char8);
3358char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3359char8 __ovld __cnfn convert_char8_rtn(char8);
3360char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3361char8 __ovld __cnfn convert_char8(char8);
3362char8 __ovld __cnfn convert_char8_sat(char8);
3363char8 __ovld __cnfn convert_char8_rte(uchar8);
3364char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3365char8 __ovld __cnfn convert_char8_rtz(uchar8);
3366char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3367char8 __ovld __cnfn convert_char8_rtp(uchar8);
3368char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3369char8 __ovld __cnfn convert_char8_rtn(uchar8);
3370char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3371char8 __ovld __cnfn convert_char8(uchar8);
3372char8 __ovld __cnfn convert_char8_sat(uchar8);
3373char8 __ovld __cnfn convert_char8_rte(short8);
3374char8 __ovld __cnfn convert_char8_sat_rte(short8);
3375char8 __ovld __cnfn convert_char8_rtz(short8);
3376char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3377char8 __ovld __cnfn convert_char8_rtp(short8);
3378char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3379char8 __ovld __cnfn convert_char8_rtn(short8);
3380char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3381char8 __ovld __cnfn convert_char8(short8);
3382char8 __ovld __cnfn convert_char8_sat(short8);
3383char8 __ovld __cnfn convert_char8_rte(ushort8);
3384char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3385char8 __ovld __cnfn convert_char8_rtz(ushort8);
3386char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3387char8 __ovld __cnfn convert_char8_rtp(ushort8);
3388char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3389char8 __ovld __cnfn convert_char8_rtn(ushort8);
3390char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3391char8 __ovld __cnfn convert_char8(ushort8);
3392char8 __ovld __cnfn convert_char8_sat(ushort8);
3393char8 __ovld __cnfn convert_char8_rte(int8);
3394char8 __ovld __cnfn convert_char8_sat_rte(int8);
3395char8 __ovld __cnfn convert_char8_rtz(int8);
3396char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3397char8 __ovld __cnfn convert_char8_rtp(int8);
3398char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3399char8 __ovld __cnfn convert_char8_rtn(int8);
3400char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3401char8 __ovld __cnfn convert_char8(int8);
3402char8 __ovld __cnfn convert_char8_sat(int8);
3403char8 __ovld __cnfn convert_char8_rte(uint8);
3404char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3405char8 __ovld __cnfn convert_char8_rtz(uint8);
3406char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3407char8 __ovld __cnfn convert_char8_rtp(uint8);
3408char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3409char8 __ovld __cnfn convert_char8_rtn(uint8);
3410char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3411char8 __ovld __cnfn convert_char8(uint8);
3412char8 __ovld __cnfn convert_char8_sat(uint8);
3413char8 __ovld __cnfn convert_char8_rte(long8);
3414char8 __ovld __cnfn convert_char8_sat_rte(long8);
3415char8 __ovld __cnfn convert_char8_rtz(long8);
3416char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3417char8 __ovld __cnfn convert_char8_rtp(long8);
3418char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3419char8 __ovld __cnfn convert_char8_rtn(long8);
3420char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3421char8 __ovld __cnfn convert_char8(long8);
3422char8 __ovld __cnfn convert_char8_sat(long8);
3423char8 __ovld __cnfn convert_char8_rte(ulong8);
3424char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3425char8 __ovld __cnfn convert_char8_rtz(ulong8);
3426char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3427char8 __ovld __cnfn convert_char8_rtp(ulong8);
3428char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3429char8 __ovld __cnfn convert_char8_rtn(ulong8);
3430char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3431char8 __ovld __cnfn convert_char8(ulong8);
3432char8 __ovld __cnfn convert_char8_sat(ulong8);
3433char8 __ovld __cnfn convert_char8_rte(float8);
3434char8 __ovld __cnfn convert_char8_sat_rte(float8);
3435char8 __ovld __cnfn convert_char8_rtz(float8);
3436char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3437char8 __ovld __cnfn convert_char8_rtp(float8);
3438char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3439char8 __ovld __cnfn convert_char8_rtn(float8);
3440char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3441char8 __ovld __cnfn convert_char8(float8);
3442char8 __ovld __cnfn convert_char8_sat(float8);
3443uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3444uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3445uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3446uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3447uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3448uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3449uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3450uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3451uchar8 __ovld __cnfn convert_uchar8(char8);
3452uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3453uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3454uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3455uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3456uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3457uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3458uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3459uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3460uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3461uchar8 __ovld __cnfn convert_uchar8(uchar8);
3462uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3463uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3464uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3465uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3466uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3467uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3468uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3469uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3470uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3471uchar8 __ovld __cnfn convert_uchar8(short8);
3472uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3473uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3474uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3475uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3476uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3477uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3478uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3479uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3480uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3481uchar8 __ovld __cnfn convert_uchar8(ushort8);
3482uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3483uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3484uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3485uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3486uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3487uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3488uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3489uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3490uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3491uchar8 __ovld __cnfn convert_uchar8(int8);
3492uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3493uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3494uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3495uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3496uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3497uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3498uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3499uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3500uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3501uchar8 __ovld __cnfn convert_uchar8(uint8);
3502uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3503uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3504uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3505uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3506uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3507uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3508uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3509uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3510uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3511uchar8 __ovld __cnfn convert_uchar8(long8);
3512uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3513uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3514uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3515uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3516uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3517uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3518uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3519uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3520uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3521uchar8 __ovld __cnfn convert_uchar8(ulong8);
3522uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3523uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3524uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3525uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3526uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3527uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3528uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3529uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3530uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3531uchar8 __ovld __cnfn convert_uchar8(float8);
3532uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3533short8 __ovld __cnfn convert_short8_rte(char8);
3534short8 __ovld __cnfn convert_short8_sat_rte(char8);
3535short8 __ovld __cnfn convert_short8_rtz(char8);
3536short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3537short8 __ovld __cnfn convert_short8_rtp(char8);
3538short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3539short8 __ovld __cnfn convert_short8_rtn(char8);
3540short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3541short8 __ovld __cnfn convert_short8(char8);
3542short8 __ovld __cnfn convert_short8_sat(char8);
3543short8 __ovld __cnfn convert_short8_rte(uchar8);
3544short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3545short8 __ovld __cnfn convert_short8_rtz(uchar8);
3546short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3547short8 __ovld __cnfn convert_short8_rtp(uchar8);
3548short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3549short8 __ovld __cnfn convert_short8_rtn(uchar8);
3550short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3551short8 __ovld __cnfn convert_short8(uchar8);
3552short8 __ovld __cnfn convert_short8_sat(uchar8);
3553short8 __ovld __cnfn convert_short8_rte(short8);
3554short8 __ovld __cnfn convert_short8_sat_rte(short8);
3555short8 __ovld __cnfn convert_short8_rtz(short8);
3556short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3557short8 __ovld __cnfn convert_short8_rtp(short8);
3558short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3559short8 __ovld __cnfn convert_short8_rtn(short8);
3560short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3561short8 __ovld __cnfn convert_short8(short8);
3562short8 __ovld __cnfn convert_short8_sat(short8);
3563short8 __ovld __cnfn convert_short8_rte(ushort8);
3564short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3565short8 __ovld __cnfn convert_short8_rtz(ushort8);
3566short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3567short8 __ovld __cnfn convert_short8_rtp(ushort8);
3568short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3569short8 __ovld __cnfn convert_short8_rtn(ushort8);
3570short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3571short8 __ovld __cnfn convert_short8(ushort8);
3572short8 __ovld __cnfn convert_short8_sat(ushort8);
3573short8 __ovld __cnfn convert_short8_rte(int8);
3574short8 __ovld __cnfn convert_short8_sat_rte(int8);
3575short8 __ovld __cnfn convert_short8_rtz(int8);
3576short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3577short8 __ovld __cnfn convert_short8_rtp(int8);
3578short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3579short8 __ovld __cnfn convert_short8_rtn(int8);
3580short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3581short8 __ovld __cnfn convert_short8(int8);
3582short8 __ovld __cnfn convert_short8_sat(int8);
3583short8 __ovld __cnfn convert_short8_rte(uint8);
3584short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3585short8 __ovld __cnfn convert_short8_rtz(uint8);
3586short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3587short8 __ovld __cnfn convert_short8_rtp(uint8);
3588short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3589short8 __ovld __cnfn convert_short8_rtn(uint8);
3590short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3591short8 __ovld __cnfn convert_short8(uint8);
3592short8 __ovld __cnfn convert_short8_sat(uint8);
3593short8 __ovld __cnfn convert_short8_rte(long8);
3594short8 __ovld __cnfn convert_short8_sat_rte(long8);
3595short8 __ovld __cnfn convert_short8_rtz(long8);
3596short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3597short8 __ovld __cnfn convert_short8_rtp(long8);
3598short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3599short8 __ovld __cnfn convert_short8_rtn(long8);
3600short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3601short8 __ovld __cnfn convert_short8(long8);
3602short8 __ovld __cnfn convert_short8_sat(long8);
3603short8 __ovld __cnfn convert_short8_rte(ulong8);
3604short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3605short8 __ovld __cnfn convert_short8_rtz(ulong8);
3606short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3607short8 __ovld __cnfn convert_short8_rtp(ulong8);
3608short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3609short8 __ovld __cnfn convert_short8_rtn(ulong8);
3610short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3611short8 __ovld __cnfn convert_short8(ulong8);
3612short8 __ovld __cnfn convert_short8_sat(ulong8);
3613short8 __ovld __cnfn convert_short8_rte(float8);
3614short8 __ovld __cnfn convert_short8_sat_rte(float8);
3615short8 __ovld __cnfn convert_short8_rtz(float8);
3616short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3617short8 __ovld __cnfn convert_short8_rtp(float8);
3618short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3619short8 __ovld __cnfn convert_short8_rtn(float8);
3620short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3621short8 __ovld __cnfn convert_short8(float8);
3622short8 __ovld __cnfn convert_short8_sat(float8);
3623ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3624ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3625ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3626ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3627ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3628ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3629ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3630ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3631ushort8 __ovld __cnfn convert_ushort8(char8);
3632ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3633ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3634ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3635ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3636ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3637ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3638ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3639ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3640ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3641ushort8 __ovld __cnfn convert_ushort8(uchar8);
3642ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3643ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3644ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3645ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3646ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3647ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3648ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3649ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3650ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3651ushort8 __ovld __cnfn convert_ushort8(short8);
3652ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3653ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3654ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3655ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3656ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3657ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3658ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3659ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3660ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3661ushort8 __ovld __cnfn convert_ushort8(ushort8);
3662ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3663ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3664ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3665ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3666ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3667ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3668ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3669ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3670ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3671ushort8 __ovld __cnfn convert_ushort8(int8);
3672ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3673ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3674ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3675ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3676ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3677ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3678ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3679ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3680ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3681ushort8 __ovld __cnfn convert_ushort8(uint8);
3682ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3683ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3684ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3685ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3686ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3687ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3688ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3689ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3690ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3691ushort8 __ovld __cnfn convert_ushort8(long8);
3692ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3693ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3694ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3695ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3696ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3697ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3698ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3699ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3700ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3701ushort8 __ovld __cnfn convert_ushort8(ulong8);
3702ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3703ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3704ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3705ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3706ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3707ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3708ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3709ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3710ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3711ushort8 __ovld __cnfn convert_ushort8(float8);
3712ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3713int8 __ovld __cnfn convert_int8_rte(char8);
3714int8 __ovld __cnfn convert_int8_sat_rte(char8);
3715int8 __ovld __cnfn convert_int8_rtz(char8);
3716int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3717int8 __ovld __cnfn convert_int8_rtp(char8);
3718int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3719int8 __ovld __cnfn convert_int8_rtn(char8);
3720int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3721int8 __ovld __cnfn convert_int8(char8);
3722int8 __ovld __cnfn convert_int8_sat(char8);
3723int8 __ovld __cnfn convert_int8_rte(uchar8);
3724int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3725int8 __ovld __cnfn convert_int8_rtz(uchar8);
3726int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3727int8 __ovld __cnfn convert_int8_rtp(uchar8);
3728int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3729int8 __ovld __cnfn convert_int8_rtn(uchar8);
3730int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3731int8 __ovld __cnfn convert_int8(uchar8);
3732int8 __ovld __cnfn convert_int8_sat(uchar8);
3733int8 __ovld __cnfn convert_int8_rte(short8);
3734int8 __ovld __cnfn convert_int8_sat_rte(short8);
3735int8 __ovld __cnfn convert_int8_rtz(short8);
3736int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3737int8 __ovld __cnfn convert_int8_rtp(short8);
3738int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3739int8 __ovld __cnfn convert_int8_rtn(short8);
3740int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3741int8 __ovld __cnfn convert_int8(short8);
3742int8 __ovld __cnfn convert_int8_sat(short8);
3743int8 __ovld __cnfn convert_int8_rte(ushort8);
3744int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3745int8 __ovld __cnfn convert_int8_rtz(ushort8);
3746int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3747int8 __ovld __cnfn convert_int8_rtp(ushort8);
3748int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3749int8 __ovld __cnfn convert_int8_rtn(ushort8);
3750int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3751int8 __ovld __cnfn convert_int8(ushort8);
3752int8 __ovld __cnfn convert_int8_sat(ushort8);
3753int8 __ovld __cnfn convert_int8_rte(int8);
3754int8 __ovld __cnfn convert_int8_sat_rte(int8);
3755int8 __ovld __cnfn convert_int8_rtz(int8);
3756int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3757int8 __ovld __cnfn convert_int8_rtp(int8);
3758int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3759int8 __ovld __cnfn convert_int8_rtn(int8);
3760int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3761int8 __ovld __cnfn convert_int8(int8);
3762int8 __ovld __cnfn convert_int8_sat(int8);
3763int8 __ovld __cnfn convert_int8_rte(uint8);
3764int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3765int8 __ovld __cnfn convert_int8_rtz(uint8);
3766int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3767int8 __ovld __cnfn convert_int8_rtp(uint8);
3768int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3769int8 __ovld __cnfn convert_int8_rtn(uint8);
3770int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3771int8 __ovld __cnfn convert_int8(uint8);
3772int8 __ovld __cnfn convert_int8_sat(uint8);
3773int8 __ovld __cnfn convert_int8_rte(long8);
3774int8 __ovld __cnfn convert_int8_sat_rte(long8);
3775int8 __ovld __cnfn convert_int8_rtz(long8);
3776int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3777int8 __ovld __cnfn convert_int8_rtp(long8);
3778int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3779int8 __ovld __cnfn convert_int8_rtn(long8);
3780int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3781int8 __ovld __cnfn convert_int8(long8);
3782int8 __ovld __cnfn convert_int8_sat(long8);
3783int8 __ovld __cnfn convert_int8_rte(ulong8);
3784int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3785int8 __ovld __cnfn convert_int8_rtz(ulong8);
3786int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3787int8 __ovld __cnfn convert_int8_rtp(ulong8);
3788int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3789int8 __ovld __cnfn convert_int8_rtn(ulong8);
3790int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3791int8 __ovld __cnfn convert_int8(ulong8);
3792int8 __ovld __cnfn convert_int8_sat(ulong8);
3793int8 __ovld __cnfn convert_int8_rte(float8);
3794int8 __ovld __cnfn convert_int8_sat_rte(float8);
3795int8 __ovld __cnfn convert_int8_rtz(float8);
3796int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3797int8 __ovld __cnfn convert_int8_rtp(float8);
3798int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3799int8 __ovld __cnfn convert_int8_rtn(float8);
3800int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3801int8 __ovld __cnfn convert_int8(float8);
3802int8 __ovld __cnfn convert_int8_sat(float8);
3803uint8 __ovld __cnfn convert_uint8_rte(char8);
3804uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3805uint8 __ovld __cnfn convert_uint8_rtz(char8);
3806uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3807uint8 __ovld __cnfn convert_uint8_rtp(char8);
3808uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3809uint8 __ovld __cnfn convert_uint8_rtn(char8);
3810uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3811uint8 __ovld __cnfn convert_uint8(char8);
3812uint8 __ovld __cnfn convert_uint8_sat(char8);
3813uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3814uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3815uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3816uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3817uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3818uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3819uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3820uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3821uint8 __ovld __cnfn convert_uint8(uchar8);
3822uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3823uint8 __ovld __cnfn convert_uint8_rte(short8);
3824uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3825uint8 __ovld __cnfn convert_uint8_rtz(short8);
3826uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3827uint8 __ovld __cnfn convert_uint8_rtp(short8);
3828uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3829uint8 __ovld __cnfn convert_uint8_rtn(short8);
3830uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3831uint8 __ovld __cnfn convert_uint8(short8);
3832uint8 __ovld __cnfn convert_uint8_sat(short8);
3833uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3834uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3835uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3836uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3837uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3838uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3839uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3840uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3841uint8 __ovld __cnfn convert_uint8(ushort8);
3842uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3843uint8 __ovld __cnfn convert_uint8_rte(int8);
3844uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3845uint8 __ovld __cnfn convert_uint8_rtz(int8);
3846uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3847uint8 __ovld __cnfn convert_uint8_rtp(int8);
3848uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3849uint8 __ovld __cnfn convert_uint8_rtn(int8);
3850uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3851uint8 __ovld __cnfn convert_uint8(int8);
3852uint8 __ovld __cnfn convert_uint8_sat(int8);
3853uint8 __ovld __cnfn convert_uint8_rte(uint8);
3854uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3855uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3856uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3857uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3858uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3859uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3860uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3861uint8 __ovld __cnfn convert_uint8(uint8);
3862uint8 __ovld __cnfn convert_uint8_sat(uint8);
3863uint8 __ovld __cnfn convert_uint8_rte(long8);
3864uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3865uint8 __ovld __cnfn convert_uint8_rtz(long8);
3866uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3867uint8 __ovld __cnfn convert_uint8_rtp(long8);
3868uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3869uint8 __ovld __cnfn convert_uint8_rtn(long8);
3870uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3871uint8 __ovld __cnfn convert_uint8(long8);
3872uint8 __ovld __cnfn convert_uint8_sat(long8);
3873uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3874uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3875uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3876uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3877uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3878uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3879uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3880uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3881uint8 __ovld __cnfn convert_uint8(ulong8);
3882uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3883uint8 __ovld __cnfn convert_uint8_rte(float8);
3884uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3885uint8 __ovld __cnfn convert_uint8_rtz(float8);
3886uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3887uint8 __ovld __cnfn convert_uint8_rtp(float8);
3888uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3889uint8 __ovld __cnfn convert_uint8_rtn(float8);
3890uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3891uint8 __ovld __cnfn convert_uint8(float8);
3892uint8 __ovld __cnfn convert_uint8_sat(float8);
3893long8 __ovld __cnfn convert_long8_rte(char8);
3894long8 __ovld __cnfn convert_long8_sat_rte(char8);
3895long8 __ovld __cnfn convert_long8_rtz(char8);
3896long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3897long8 __ovld __cnfn convert_long8_rtp(char8);
3898long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3899long8 __ovld __cnfn convert_long8_rtn(char8);
3900long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3901long8 __ovld __cnfn convert_long8(char8);
3902long8 __ovld __cnfn convert_long8_sat(char8);
3903long8 __ovld __cnfn convert_long8_rte(uchar8);
3904long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3905long8 __ovld __cnfn convert_long8_rtz(uchar8);
3906long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3907long8 __ovld __cnfn convert_long8_rtp(uchar8);
3908long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3909long8 __ovld __cnfn convert_long8_rtn(uchar8);
3910long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3911long8 __ovld __cnfn convert_long8(uchar8);
3912long8 __ovld __cnfn convert_long8_sat(uchar8);
3913long8 __ovld __cnfn convert_long8_rte(short8);
3914long8 __ovld __cnfn convert_long8_sat_rte(short8);
3915long8 __ovld __cnfn convert_long8_rtz(short8);
3916long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3917long8 __ovld __cnfn convert_long8_rtp(short8);
3918long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3919long8 __ovld __cnfn convert_long8_rtn(short8);
3920long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3921long8 __ovld __cnfn convert_long8(short8);
3922long8 __ovld __cnfn convert_long8_sat(short8);
3923long8 __ovld __cnfn convert_long8_rte(ushort8);
3924long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3925long8 __ovld __cnfn convert_long8_rtz(ushort8);
3926long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3927long8 __ovld __cnfn convert_long8_rtp(ushort8);
3928long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3929long8 __ovld __cnfn convert_long8_rtn(ushort8);
3930long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3931long8 __ovld __cnfn convert_long8(ushort8);
3932long8 __ovld __cnfn convert_long8_sat(ushort8);
3933long8 __ovld __cnfn convert_long8_rte(int8);
3934long8 __ovld __cnfn convert_long8_sat_rte(int8);
3935long8 __ovld __cnfn convert_long8_rtz(int8);
3936long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3937long8 __ovld __cnfn convert_long8_rtp(int8);
3938long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3939long8 __ovld __cnfn convert_long8_rtn(int8);
3940long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3941long8 __ovld __cnfn convert_long8(int8);
3942long8 __ovld __cnfn convert_long8_sat(int8);
3943long8 __ovld __cnfn convert_long8_rte(uint8);
3944long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3945long8 __ovld __cnfn convert_long8_rtz(uint8);
3946long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3947long8 __ovld __cnfn convert_long8_rtp(uint8);
3948long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3949long8 __ovld __cnfn convert_long8_rtn(uint8);
3950long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3951long8 __ovld __cnfn convert_long8(uint8);
3952long8 __ovld __cnfn convert_long8_sat(uint8);
3953long8 __ovld __cnfn convert_long8_rte(long8);
3954long8 __ovld __cnfn convert_long8_sat_rte(long8);
3955long8 __ovld __cnfn convert_long8_rtz(long8);
3956long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3957long8 __ovld __cnfn convert_long8_rtp(long8);
3958long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3959long8 __ovld __cnfn convert_long8_rtn(long8);
3960long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3961long8 __ovld __cnfn convert_long8(long8);
3962long8 __ovld __cnfn convert_long8_sat(long8);
3963long8 __ovld __cnfn convert_long8_rte(ulong8);
3964long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3965long8 __ovld __cnfn convert_long8_rtz(ulong8);
3966long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3967long8 __ovld __cnfn convert_long8_rtp(ulong8);
3968long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3969long8 __ovld __cnfn convert_long8_rtn(ulong8);
3970long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3971long8 __ovld __cnfn convert_long8(ulong8);
3972long8 __ovld __cnfn convert_long8_sat(ulong8);
3973long8 __ovld __cnfn convert_long8_rte(float8);
3974long8 __ovld __cnfn convert_long8_sat_rte(float8);
3975long8 __ovld __cnfn convert_long8_rtz(float8);
3976long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3977long8 __ovld __cnfn convert_long8_rtp(float8);
3978long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3979long8 __ovld __cnfn convert_long8_rtn(float8);
3980long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3981long8 __ovld __cnfn convert_long8(float8);
3982long8 __ovld __cnfn convert_long8_sat(float8);
3983ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3984ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3985ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3986ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3987ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3988ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3989ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3990ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3991ulong8 __ovld __cnfn convert_ulong8(char8);
3992ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3993ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3994ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3995ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3996ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3997ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3998ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3999ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
4000ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
4001ulong8 __ovld __cnfn convert_ulong8(uchar8);
4002ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
4003ulong8 __ovld __cnfn convert_ulong8_rte(short8);
4004ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
4005ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
4006ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
4007ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
4008ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
4009ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
4010ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
4011ulong8 __ovld __cnfn convert_ulong8(short8);
4012ulong8 __ovld __cnfn convert_ulong8_sat(short8);
4013ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
4014ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
4015ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
4016ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
4017ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
4018ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
4019ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
4020ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
4021ulong8 __ovld __cnfn convert_ulong8(ushort8);
4022ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
4023ulong8 __ovld __cnfn convert_ulong8_rte(int8);
4024ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
4025ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
4026ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
4027ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
4028ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
4029ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
4030ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
4031ulong8 __ovld __cnfn convert_ulong8(int8);
4032ulong8 __ovld __cnfn convert_ulong8_sat(int8);
4033ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
4034ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
4035ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
4036ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
4037ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
4038ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
4039ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
4040ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
4041ulong8 __ovld __cnfn convert_ulong8(uint8);
4042ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
4043ulong8 __ovld __cnfn convert_ulong8_rte(long8);
4044ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
4045ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
4046ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
4047ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
4048ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
4049ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
4050ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
4051ulong8 __ovld __cnfn convert_ulong8(long8);
4052ulong8 __ovld __cnfn convert_ulong8_sat(long8);
4053ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
4054ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
4055ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
4056ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
4057ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
4058ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
4059ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
4060ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
4061ulong8 __ovld __cnfn convert_ulong8(ulong8);
4062ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
4063ulong8 __ovld __cnfn convert_ulong8_rte(float8);
4064ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
4065ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
4066ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
4067ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
4068ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
4069ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
4070ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
4071ulong8 __ovld __cnfn convert_ulong8(float8);
4072ulong8 __ovld __cnfn convert_ulong8_sat(float8);
4073float8 __ovld __cnfn convert_float8_rte(char8);
4074float8 __ovld __cnfn convert_float8_rtz(char8);
4075float8 __ovld __cnfn convert_float8_rtp(char8);
4076float8 __ovld __cnfn convert_float8_rtn(char8);
4077float8 __ovld __cnfn convert_float8(char8);
4078float8 __ovld __cnfn convert_float8_rte(uchar8);
4079float8 __ovld __cnfn convert_float8_rtz(uchar8);
4080float8 __ovld __cnfn convert_float8_rtp(uchar8);
4081float8 __ovld __cnfn convert_float8_rtn(uchar8);
4082float8 __ovld __cnfn convert_float8(uchar8);
4083float8 __ovld __cnfn convert_float8_rte(short8);
4084float8 __ovld __cnfn convert_float8_rtz(short8);
4085float8 __ovld __cnfn convert_float8_rtp(short8);
4086float8 __ovld __cnfn convert_float8_rtn(short8);
4087float8 __ovld __cnfn convert_float8(short8);
4088float8 __ovld __cnfn convert_float8_rte(ushort8);
4089float8 __ovld __cnfn convert_float8_rtz(ushort8);
4090float8 __ovld __cnfn convert_float8_rtp(ushort8);
4091float8 __ovld __cnfn convert_float8_rtn(ushort8);
4092float8 __ovld __cnfn convert_float8(ushort8);
4093float8 __ovld __cnfn convert_float8_rte(int8);
4094float8 __ovld __cnfn convert_float8_rtz(int8);
4095float8 __ovld __cnfn convert_float8_rtp(int8);
4096float8 __ovld __cnfn convert_float8_rtn(int8);
4097float8 __ovld __cnfn convert_float8(int8);
4098float8 __ovld __cnfn convert_float8_rte(uint8);
4099float8 __ovld __cnfn convert_float8_rtz(uint8);
4100float8 __ovld __cnfn convert_float8_rtp(uint8);
4101float8 __ovld __cnfn convert_float8_rtn(uint8);
4102float8 __ovld __cnfn convert_float8(uint8);
4103float8 __ovld __cnfn convert_float8_rte(long8);
4104float8 __ovld __cnfn convert_float8_rtz(long8);
4105float8 __ovld __cnfn convert_float8_rtp(long8);
4106float8 __ovld __cnfn convert_float8_rtn(long8);
4107float8 __ovld __cnfn convert_float8(long8);
4108float8 __ovld __cnfn convert_float8_rte(ulong8);
4109float8 __ovld __cnfn convert_float8_rtz(ulong8);
4110float8 __ovld __cnfn convert_float8_rtp(ulong8);
4111float8 __ovld __cnfn convert_float8_rtn(ulong8);
4112float8 __ovld __cnfn convert_float8(ulong8);
4113float8 __ovld __cnfn convert_float8_rte(float8);
4114float8 __ovld __cnfn convert_float8_rtz(float8);
4115float8 __ovld __cnfn convert_float8_rtp(float8);
4116float8 __ovld __cnfn convert_float8_rtn(float8);
4117float8 __ovld __cnfn convert_float8(float8);
4118char16 __ovld __cnfn convert_char16_rte(char16);
4119char16 __ovld __cnfn convert_char16_sat_rte(char16);
4120char16 __ovld __cnfn convert_char16_rtz(char16);
4121char16 __ovld __cnfn convert_char16_sat_rtz(char16);
4122char16 __ovld __cnfn convert_char16_rtp(char16);
4123char16 __ovld __cnfn convert_char16_sat_rtp(char16);
4124char16 __ovld __cnfn convert_char16_rtn(char16);
4125char16 __ovld __cnfn convert_char16_sat_rtn(char16);
4126char16 __ovld __cnfn convert_char16(char16);
4127char16 __ovld __cnfn convert_char16_sat(char16);
4128char16 __ovld __cnfn convert_char16_rte(uchar16);
4129char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
4130char16 __ovld __cnfn convert_char16_rtz(uchar16);
4131char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
4132char16 __ovld __cnfn convert_char16_rtp(uchar16);
4133char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
4134char16 __ovld __cnfn convert_char16_rtn(uchar16);
4135char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
4136char16 __ovld __cnfn convert_char16(uchar16);
4137char16 __ovld __cnfn convert_char16_sat(uchar16);
4138char16 __ovld __cnfn convert_char16_rte(short16);
4139char16 __ovld __cnfn convert_char16_sat_rte(short16);
4140char16 __ovld __cnfn convert_char16_rtz(short16);
4141char16 __ovld __cnfn convert_char16_sat_rtz(short16);
4142char16 __ovld __cnfn convert_char16_rtp(short16);
4143char16 __ovld __cnfn convert_char16_sat_rtp(short16);
4144char16 __ovld __cnfn convert_char16_rtn(short16);
4145char16 __ovld __cnfn convert_char16_sat_rtn(short16);
4146char16 __ovld __cnfn convert_char16(short16);
4147char16 __ovld __cnfn convert_char16_sat(short16);
4148char16 __ovld __cnfn convert_char16_rte(ushort16);
4149char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
4150char16 __ovld __cnfn convert_char16_rtz(ushort16);
4151char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
4152char16 __ovld __cnfn convert_char16_rtp(ushort16);
4153char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
4154char16 __ovld __cnfn convert_char16_rtn(ushort16);
4155char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
4156char16 __ovld __cnfn convert_char16(ushort16);
4157char16 __ovld __cnfn convert_char16_sat(ushort16);
4158char16 __ovld __cnfn convert_char16_rte(int16);
4159char16 __ovld __cnfn convert_char16_sat_rte(int16);
4160char16 __ovld __cnfn convert_char16_rtz(int16);
4161char16 __ovld __cnfn convert_char16_sat_rtz(int16);
4162char16 __ovld __cnfn convert_char16_rtp(int16);
4163char16 __ovld __cnfn convert_char16_sat_rtp(int16);
4164char16 __ovld __cnfn convert_char16_rtn(int16);
4165char16 __ovld __cnfn convert_char16_sat_rtn(int16);
4166char16 __ovld __cnfn convert_char16(int16);
4167char16 __ovld __cnfn convert_char16_sat(int16);
4168char16 __ovld __cnfn convert_char16_rte(uint16);
4169char16 __ovld __cnfn convert_char16_sat_rte(uint16);
4170char16 __ovld __cnfn convert_char16_rtz(uint16);
4171char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
4172char16 __ovld __cnfn convert_char16_rtp(uint16);
4173char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
4174char16 __ovld __cnfn convert_char16_rtn(uint16);
4175char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
4176char16 __ovld __cnfn convert_char16(uint16);
4177char16 __ovld __cnfn convert_char16_sat(uint16);
4178char16 __ovld __cnfn convert_char16_rte(long16);
4179char16 __ovld __cnfn convert_char16_sat_rte(long16);
4180char16 __ovld __cnfn convert_char16_rtz(long16);
4181char16 __ovld __cnfn convert_char16_sat_rtz(long16);
4182char16 __ovld __cnfn convert_char16_rtp(long16);
4183char16 __ovld __cnfn convert_char16_sat_rtp(long16);
4184char16 __ovld __cnfn convert_char16_rtn(long16);
4185char16 __ovld __cnfn convert_char16_sat_rtn(long16);
4186char16 __ovld __cnfn convert_char16(long16);
4187char16 __ovld __cnfn convert_char16_sat(long16);
4188char16 __ovld __cnfn convert_char16_rte(ulong16);
4189char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
4190char16 __ovld __cnfn convert_char16_rtz(ulong16);
4191char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
4192char16 __ovld __cnfn convert_char16_rtp(ulong16);
4193char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
4194char16 __ovld __cnfn convert_char16_rtn(ulong16);
4195char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
4196char16 __ovld __cnfn convert_char16(ulong16);
4197char16 __ovld __cnfn convert_char16_sat(ulong16);
4198char16 __ovld __cnfn convert_char16_rte(float16);
4199char16 __ovld __cnfn convert_char16_sat_rte(float16);
4200char16 __ovld __cnfn convert_char16_rtz(float16);
4201char16 __ovld __cnfn convert_char16_sat_rtz(float16);
4202char16 __ovld __cnfn convert_char16_rtp(float16);
4203char16 __ovld __cnfn convert_char16_sat_rtp(float16);
4204char16 __ovld __cnfn convert_char16_rtn(float16);
4205char16 __ovld __cnfn convert_char16_sat_rtn(float16);
4206char16 __ovld __cnfn convert_char16(float16);
4207char16 __ovld __cnfn convert_char16_sat(float16);
4208uchar16 __ovld __cnfn convert_uchar16_rte(char16);
4209uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
4210uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
4211uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
4212uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
4213uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
4214uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
4215uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
4216uchar16 __ovld __cnfn convert_uchar16(char16);
4217uchar16 __ovld __cnfn convert_uchar16_sat(char16);
4218uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
4219uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
4220uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
4221uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
4222uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
4223uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
4224uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
4225uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
4226uchar16 __ovld __cnfn convert_uchar16(uchar16);
4227uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
4228uchar16 __ovld __cnfn convert_uchar16_rte(short16);
4229uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
4230uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
4231uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
4232uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
4233uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
4234uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
4235uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
4236uchar16 __ovld __cnfn convert_uchar16(short16);
4237uchar16 __ovld __cnfn convert_uchar16_sat(short16);
4238uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
4239uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
4240uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
4241uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
4242uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
4243uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
4244uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
4245uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
4246uchar16 __ovld __cnfn convert_uchar16(ushort16);
4247uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
4248uchar16 __ovld __cnfn convert_uchar16_rte(int16);
4249uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4250uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4251uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4252uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4253uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4254uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4255uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4256uchar16 __ovld __cnfn convert_uchar16(int16);
4257uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4258uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4259uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4260uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4261uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4262uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4263uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4264uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4265uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4266uchar16 __ovld __cnfn convert_uchar16(uint16);
4267uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4268uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4269uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4270uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4271uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4272uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4273uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4274uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4275uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4276uchar16 __ovld __cnfn convert_uchar16(long16);
4277uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4278uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4279uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4280uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4281uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4282uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4283uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4284uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4285uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4286uchar16 __ovld __cnfn convert_uchar16(ulong16);
4287uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4288uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4289uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4290uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4291uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4292uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4293uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4294uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4295uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4296uchar16 __ovld __cnfn convert_uchar16(float16);
4297uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4298short16 __ovld __cnfn convert_short16_rte(char16);
4299short16 __ovld __cnfn convert_short16_sat_rte(char16);
4300short16 __ovld __cnfn convert_short16_rtz(char16);
4301short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4302short16 __ovld __cnfn convert_short16_rtp(char16);
4303short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4304short16 __ovld __cnfn convert_short16_rtn(char16);
4305short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4306short16 __ovld __cnfn convert_short16(char16);
4307short16 __ovld __cnfn convert_short16_sat(char16);
4308short16 __ovld __cnfn convert_short16_rte(uchar16);
4309short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4310short16 __ovld __cnfn convert_short16_rtz(uchar16);
4311short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4312short16 __ovld __cnfn convert_short16_rtp(uchar16);
4313short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4314short16 __ovld __cnfn convert_short16_rtn(uchar16);
4315short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4316short16 __ovld __cnfn convert_short16(uchar16);
4317short16 __ovld __cnfn convert_short16_sat(uchar16);
4318short16 __ovld __cnfn convert_short16_rte(short16);
4319short16 __ovld __cnfn convert_short16_sat_rte(short16);
4320short16 __ovld __cnfn convert_short16_rtz(short16);
4321short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4322short16 __ovld __cnfn convert_short16_rtp(short16);
4323short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4324short16 __ovld __cnfn convert_short16_rtn(short16);
4325short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4326short16 __ovld __cnfn convert_short16(short16);
4327short16 __ovld __cnfn convert_short16_sat(short16);
4328short16 __ovld __cnfn convert_short16_rte(ushort16);
4329short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4330short16 __ovld __cnfn convert_short16_rtz(ushort16);
4331short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4332short16 __ovld __cnfn convert_short16_rtp(ushort16);
4333short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4334short16 __ovld __cnfn convert_short16_rtn(ushort16);
4335short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4336short16 __ovld __cnfn convert_short16(ushort16);
4337short16 __ovld __cnfn convert_short16_sat(ushort16);
4338short16 __ovld __cnfn convert_short16_rte(int16);
4339short16 __ovld __cnfn convert_short16_sat_rte(int16);
4340short16 __ovld __cnfn convert_short16_rtz(int16);
4341short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4342short16 __ovld __cnfn convert_short16_rtp(int16);
4343short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4344short16 __ovld __cnfn convert_short16_rtn(int16);
4345short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4346short16 __ovld __cnfn convert_short16(int16);
4347short16 __ovld __cnfn convert_short16_sat(int16);
4348short16 __ovld __cnfn convert_short16_rte(uint16);
4349short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4350short16 __ovld __cnfn convert_short16_rtz(uint16);
4351short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4352short16 __ovld __cnfn convert_short16_rtp(uint16);
4353short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4354short16 __ovld __cnfn convert_short16_rtn(uint16);
4355short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4356short16 __ovld __cnfn convert_short16(uint16);
4357short16 __ovld __cnfn convert_short16_sat(uint16);
4358short16 __ovld __cnfn convert_short16_rte(long16);
4359short16 __ovld __cnfn convert_short16_sat_rte(long16);
4360short16 __ovld __cnfn convert_short16_rtz(long16);
4361short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4362short16 __ovld __cnfn convert_short16_rtp(long16);
4363short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4364short16 __ovld __cnfn convert_short16_rtn(long16);
4365short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4366short16 __ovld __cnfn convert_short16(long16);
4367short16 __ovld __cnfn convert_short16_sat(long16);
4368short16 __ovld __cnfn convert_short16_rte(ulong16);
4369short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4370short16 __ovld __cnfn convert_short16_rtz(ulong16);
4371short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4372short16 __ovld __cnfn convert_short16_rtp(ulong16);
4373short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4374short16 __ovld __cnfn convert_short16_rtn(ulong16);
4375short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4376short16 __ovld __cnfn convert_short16(ulong16);
4377short16 __ovld __cnfn convert_short16_sat(ulong16);
4378short16 __ovld __cnfn convert_short16_rte(float16);
4379short16 __ovld __cnfn convert_short16_sat_rte(float16);
4380short16 __ovld __cnfn convert_short16_rtz(float16);
4381short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4382short16 __ovld __cnfn convert_short16_rtp(float16);
4383short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4384short16 __ovld __cnfn convert_short16_rtn(float16);
4385short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4386short16 __ovld __cnfn convert_short16(float16);
4387short16 __ovld __cnfn convert_short16_sat(float16);
4388ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4389ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4390ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4391ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4392ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4393ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4394ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4395ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4396ushort16 __ovld __cnfn convert_ushort16(char16);
4397ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4398ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4399ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4400ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4401ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4402ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4403ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4404ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4405ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4406ushort16 __ovld __cnfn convert_ushort16(uchar16);
4407ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4408ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4409ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4410ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4411ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4412ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4413ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4414ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4415ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4416ushort16 __ovld __cnfn convert_ushort16(short16);
4417ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4418ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4419ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4420ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4421ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4422ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4423ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4424ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4425ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4426ushort16 __ovld __cnfn convert_ushort16(ushort16);
4427ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4428ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4429ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4430ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4431ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4432ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4433ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4434ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4435ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4436ushort16 __ovld __cnfn convert_ushort16(int16);
4437ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4438ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4439ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4440ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4441ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4442ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4443ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4444ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4445ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4446ushort16 __ovld __cnfn convert_ushort16(uint16);
4447ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4448ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4449ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4450ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4451ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4452ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4453ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4454ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4455ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4456ushort16 __ovld __cnfn convert_ushort16(long16);
4457ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4458ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4459ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4460ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4461ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4462ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4463ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4464ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4465ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4466ushort16 __ovld __cnfn convert_ushort16(ulong16);
4467ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4468ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4469ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4470ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4471ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4472ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4473ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4474ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4475ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4476ushort16 __ovld __cnfn convert_ushort16(float16);
4477ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4478int16 __ovld __cnfn convert_int16_rte(char16);
4479int16 __ovld __cnfn convert_int16_sat_rte(char16);
4480int16 __ovld __cnfn convert_int16_rtz(char16);
4481int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4482int16 __ovld __cnfn convert_int16_rtp(char16);
4483int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4484int16 __ovld __cnfn convert_int16_rtn(char16);
4485int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4486int16 __ovld __cnfn convert_int16(char16);
4487int16 __ovld __cnfn convert_int16_sat(char16);
4488int16 __ovld __cnfn convert_int16_rte(uchar16);
4489int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4490int16 __ovld __cnfn convert_int16_rtz(uchar16);
4491int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4492int16 __ovld __cnfn convert_int16_rtp(uchar16);
4493int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4494int16 __ovld __cnfn convert_int16_rtn(uchar16);
4495int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4496int16 __ovld __cnfn convert_int16(uchar16);
4497int16 __ovld __cnfn convert_int16_sat(uchar16);
4498int16 __ovld __cnfn convert_int16_rte(short16);
4499int16 __ovld __cnfn convert_int16_sat_rte(short16);
4500int16 __ovld __cnfn convert_int16_rtz(short16);
4501int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4502int16 __ovld __cnfn convert_int16_rtp(short16);
4503int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4504int16 __ovld __cnfn convert_int16_rtn(short16);
4505int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4506int16 __ovld __cnfn convert_int16(short16);
4507int16 __ovld __cnfn convert_int16_sat(short16);
4508int16 __ovld __cnfn convert_int16_rte(ushort16);
4509int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4510int16 __ovld __cnfn convert_int16_rtz(ushort16);
4511int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4512int16 __ovld __cnfn convert_int16_rtp(ushort16);
4513int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4514int16 __ovld __cnfn convert_int16_rtn(ushort16);
4515int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4516int16 __ovld __cnfn convert_int16(ushort16);
4517int16 __ovld __cnfn convert_int16_sat(ushort16);
4518int16 __ovld __cnfn convert_int16_rte(int16);
4519int16 __ovld __cnfn convert_int16_sat_rte(int16);
4520int16 __ovld __cnfn convert_int16_rtz(int16);
4521int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4522int16 __ovld __cnfn convert_int16_rtp(int16);
4523int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4524int16 __ovld __cnfn convert_int16_rtn(int16);
4525int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4526int16 __ovld __cnfn convert_int16(int16);
4527int16 __ovld __cnfn convert_int16_sat(int16);
4528int16 __ovld __cnfn convert_int16_rte(uint16);
4529int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4530int16 __ovld __cnfn convert_int16_rtz(uint16);
4531int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4532int16 __ovld __cnfn convert_int16_rtp(uint16);
4533int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4534int16 __ovld __cnfn convert_int16_rtn(uint16);
4535int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4536int16 __ovld __cnfn convert_int16(uint16);
4537int16 __ovld __cnfn convert_int16_sat(uint16);
4538int16 __ovld __cnfn convert_int16_rte(long16);
4539int16 __ovld __cnfn convert_int16_sat_rte(long16);
4540int16 __ovld __cnfn convert_int16_rtz(long16);
4541int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4542int16 __ovld __cnfn convert_int16_rtp(long16);
4543int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4544int16 __ovld __cnfn convert_int16_rtn(long16);
4545int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4546int16 __ovld __cnfn convert_int16(long16);
4547int16 __ovld __cnfn convert_int16_sat(long16);
4548int16 __ovld __cnfn convert_int16_rte(ulong16);
4549int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4550int16 __ovld __cnfn convert_int16_rtz(ulong16);
4551int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4552int16 __ovld __cnfn convert_int16_rtp(ulong16);
4553int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4554int16 __ovld __cnfn convert_int16_rtn(ulong16);
4555int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4556int16 __ovld __cnfn convert_int16(ulong16);
4557int16 __ovld __cnfn convert_int16_sat(ulong16);
4558int16 __ovld __cnfn convert_int16_rte(float16);
4559int16 __ovld __cnfn convert_int16_sat_rte(float16);
4560int16 __ovld __cnfn convert_int16_rtz(float16);
4561int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4562int16 __ovld __cnfn convert_int16_rtp(float16);
4563int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4564int16 __ovld __cnfn convert_int16_rtn(float16);
4565int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4566int16 __ovld __cnfn convert_int16(float16);
4567int16 __ovld __cnfn convert_int16_sat(float16);
4568uint16 __ovld __cnfn convert_uint16_rte(char16);
4569uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4570uint16 __ovld __cnfn convert_uint16_rtz(char16);
4571uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4572uint16 __ovld __cnfn convert_uint16_rtp(char16);
4573uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4574uint16 __ovld __cnfn convert_uint16_rtn(char16);
4575uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4576uint16 __ovld __cnfn convert_uint16(char16);
4577uint16 __ovld __cnfn convert_uint16_sat(char16);
4578uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4579uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4580uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4581uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4582uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4583uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4584uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4585uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4586uint16 __ovld __cnfn convert_uint16(uchar16);
4587uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4588uint16 __ovld __cnfn convert_uint16_rte(short16);
4589uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4590uint16 __ovld __cnfn convert_uint16_rtz(short16);
4591uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4592uint16 __ovld __cnfn convert_uint16_rtp(short16);
4593uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4594uint16 __ovld __cnfn convert_uint16_rtn(short16);
4595uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4596uint16 __ovld __cnfn convert_uint16(short16);
4597uint16 __ovld __cnfn convert_uint16_sat(short16);
4598uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4599uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4600uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4601uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4602uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4603uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4604uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4605uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4606uint16 __ovld __cnfn convert_uint16(ushort16);
4607uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4608uint16 __ovld __cnfn convert_uint16_rte(int16);
4609uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4610uint16 __ovld __cnfn convert_uint16_rtz(int16);
4611uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4612uint16 __ovld __cnfn convert_uint16_rtp(int16);
4613uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4614uint16 __ovld __cnfn convert_uint16_rtn(int16);
4615uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4616uint16 __ovld __cnfn convert_uint16(int16);
4617uint16 __ovld __cnfn convert_uint16_sat(int16);
4618uint16 __ovld __cnfn convert_uint16_rte(uint16);
4619uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4620uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4621uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4622uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4623uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4624uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4625uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4626uint16 __ovld __cnfn convert_uint16(uint16);
4627uint16 __ovld __cnfn convert_uint16_sat(uint16);
4628uint16 __ovld __cnfn convert_uint16_rte(long16);
4629uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4630uint16 __ovld __cnfn convert_uint16_rtz(long16);
4631uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4632uint16 __ovld __cnfn convert_uint16_rtp(long16);
4633uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4634uint16 __ovld __cnfn convert_uint16_rtn(long16);
4635uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4636uint16 __ovld __cnfn convert_uint16(long16);
4637uint16 __ovld __cnfn convert_uint16_sat(long16);
4638uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4639uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4640uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4641uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4642uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4643uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4644uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4645uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4646uint16 __ovld __cnfn convert_uint16(ulong16);
4647uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4648uint16 __ovld __cnfn convert_uint16_rte(float16);
4649uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4650uint16 __ovld __cnfn convert_uint16_rtz(float16);
4651uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4652uint16 __ovld __cnfn convert_uint16_rtp(float16);
4653uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4654uint16 __ovld __cnfn convert_uint16_rtn(float16);
4655uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4656uint16 __ovld __cnfn convert_uint16(float16);
4657uint16 __ovld __cnfn convert_uint16_sat(float16);
4658long16 __ovld __cnfn convert_long16_rte(char16);
4659long16 __ovld __cnfn convert_long16_sat_rte(char16);
4660long16 __ovld __cnfn convert_long16_rtz(char16);
4661long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4662long16 __ovld __cnfn convert_long16_rtp(char16);
4663long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4664long16 __ovld __cnfn convert_long16_rtn(char16);
4665long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4666long16 __ovld __cnfn convert_long16(char16);
4667long16 __ovld __cnfn convert_long16_sat(char16);
4668long16 __ovld __cnfn convert_long16_rte(uchar16);
4669long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4670long16 __ovld __cnfn convert_long16_rtz(uchar16);
4671long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4672long16 __ovld __cnfn convert_long16_rtp(uchar16);
4673long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4674long16 __ovld __cnfn convert_long16_rtn(uchar16);
4675long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4676long16 __ovld __cnfn convert_long16(uchar16);
4677long16 __ovld __cnfn convert_long16_sat(uchar16);
4678long16 __ovld __cnfn convert_long16_rte(short16);
4679long16 __ovld __cnfn convert_long16_sat_rte(short16);
4680long16 __ovld __cnfn convert_long16_rtz(short16);
4681long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4682long16 __ovld __cnfn convert_long16_rtp(short16);
4683long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4684long16 __ovld __cnfn convert_long16_rtn(short16);
4685long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4686long16 __ovld __cnfn convert_long16(short16);
4687long16 __ovld __cnfn convert_long16_sat(short16);
4688long16 __ovld __cnfn convert_long16_rte(ushort16);
4689long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4690long16 __ovld __cnfn convert_long16_rtz(ushort16);
4691long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4692long16 __ovld __cnfn convert_long16_rtp(ushort16);
4693long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4694long16 __ovld __cnfn convert_long16_rtn(ushort16);
4695long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4696long16 __ovld __cnfn convert_long16(ushort16);
4697long16 __ovld __cnfn convert_long16_sat(ushort16);
4698long16 __ovld __cnfn convert_long16_rte(int16);
4699long16 __ovld __cnfn convert_long16_sat_rte(int16);
4700long16 __ovld __cnfn convert_long16_rtz(int16);
4701long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4702long16 __ovld __cnfn convert_long16_rtp(int16);
4703long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4704long16 __ovld __cnfn convert_long16_rtn(int16);
4705long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4706long16 __ovld __cnfn convert_long16(int16);
4707long16 __ovld __cnfn convert_long16_sat(int16);
4708long16 __ovld __cnfn convert_long16_rte(uint16);
4709long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4710long16 __ovld __cnfn convert_long16_rtz(uint16);
4711long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4712long16 __ovld __cnfn convert_long16_rtp(uint16);
4713long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4714long16 __ovld __cnfn convert_long16_rtn(uint16);
4715long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4716long16 __ovld __cnfn convert_long16(uint16);
4717long16 __ovld __cnfn convert_long16_sat(uint16);
4718long16 __ovld __cnfn convert_long16_rte(long16);
4719long16 __ovld __cnfn convert_long16_sat_rte(long16);
4720long16 __ovld __cnfn convert_long16_rtz(long16);
4721long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4722long16 __ovld __cnfn convert_long16_rtp(long16);
4723long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4724long16 __ovld __cnfn convert_long16_rtn(long16);
4725long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4726long16 __ovld __cnfn convert_long16(long16);
4727long16 __ovld __cnfn convert_long16_sat(long16);
4728long16 __ovld __cnfn convert_long16_rte(ulong16);
4729long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4730long16 __ovld __cnfn convert_long16_rtz(ulong16);
4731long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4732long16 __ovld __cnfn convert_long16_rtp(ulong16);
4733long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4734long16 __ovld __cnfn convert_long16_rtn(ulong16);
4735long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4736long16 __ovld __cnfn convert_long16(ulong16);
4737long16 __ovld __cnfn convert_long16_sat(ulong16);
4738long16 __ovld __cnfn convert_long16_rte(float16);
4739long16 __ovld __cnfn convert_long16_sat_rte(float16);
4740long16 __ovld __cnfn convert_long16_rtz(float16);
4741long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4742long16 __ovld __cnfn convert_long16_rtp(float16);
4743long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4744long16 __ovld __cnfn convert_long16_rtn(float16);
4745long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4746long16 __ovld __cnfn convert_long16(float16);
4747long16 __ovld __cnfn convert_long16_sat(float16);
4748ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4749ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4750ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4751ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4752ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4753ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4754ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4755ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4756ulong16 __ovld __cnfn convert_ulong16(char16);
4757ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4758ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4759ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4760ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4761ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4762ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4763ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4764ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4765ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4766ulong16 __ovld __cnfn convert_ulong16(uchar16);
4767ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4768ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4769ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4770ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4771ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4772ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4773ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4774ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4775ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4776ulong16 __ovld __cnfn convert_ulong16(short16);
4777ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4778ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4779ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4780ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4781ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4782ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4783ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4784ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4785ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4786ulong16 __ovld __cnfn convert_ulong16(ushort16);
4787ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4788ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4789ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4790ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4791ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4792ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4793ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4794ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4795ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4796ulong16 __ovld __cnfn convert_ulong16(int16);
4797ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4798ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4799ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4800ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4801ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4802ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4803ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4804ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4805ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4806ulong16 __ovld __cnfn convert_ulong16(uint16);
4807ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4808ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4809ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4810ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4811ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4812ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4813ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4814ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4815ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4816ulong16 __ovld __cnfn convert_ulong16(long16);
4817ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4818ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4819ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4820ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4821ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4822ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4823ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4824ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4825ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4826ulong16 __ovld __cnfn convert_ulong16(ulong16);
4827ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4828ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4829ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4830ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4831ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4832ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4833ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4834ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4835ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4836ulong16 __ovld __cnfn convert_ulong16(float16);
4837ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4838float16 __ovld __cnfn convert_float16_rte(char16);
4839float16 __ovld __cnfn convert_float16_rtz(char16);
4840float16 __ovld __cnfn convert_float16_rtp(char16);
4841float16 __ovld __cnfn convert_float16_rtn(char16);
4842float16 __ovld __cnfn convert_float16(char16);
4843float16 __ovld __cnfn convert_float16_rte(uchar16);
4844float16 __ovld __cnfn convert_float16_rtz(uchar16);
4845float16 __ovld __cnfn convert_float16_rtp(uchar16);
4846float16 __ovld __cnfn convert_float16_rtn(uchar16);
4847float16 __ovld __cnfn convert_float16(uchar16);
4848float16 __ovld __cnfn convert_float16_rte(short16);
4849float16 __ovld __cnfn convert_float16_rtz(short16);
4850float16 __ovld __cnfn convert_float16_rtp(short16);
4851float16 __ovld __cnfn convert_float16_rtn(short16);
4852float16 __ovld __cnfn convert_float16(short16);
4853float16 __ovld __cnfn convert_float16_rte(ushort16);
4854float16 __ovld __cnfn convert_float16_rtz(ushort16);
4855float16 __ovld __cnfn convert_float16_rtp(ushort16);
4856float16 __ovld __cnfn convert_float16_rtn(ushort16);
4857float16 __ovld __cnfn convert_float16(ushort16);
4858float16 __ovld __cnfn convert_float16_rte(int16);
4859float16 __ovld __cnfn convert_float16_rtz(int16);
4860float16 __ovld __cnfn convert_float16_rtp(int16);
4861float16 __ovld __cnfn convert_float16_rtn(int16);
4862float16 __ovld __cnfn convert_float16(int16);
4863float16 __ovld __cnfn convert_float16_rte(uint16);
4864float16 __ovld __cnfn convert_float16_rtz(uint16);
4865float16 __ovld __cnfn convert_float16_rtp(uint16);
4866float16 __ovld __cnfn convert_float16_rtn(uint16);
4867float16 __ovld __cnfn convert_float16(uint16);
4868float16 __ovld __cnfn convert_float16_rte(long16);
4869float16 __ovld __cnfn convert_float16_rtz(long16);
4870float16 __ovld __cnfn convert_float16_rtp(long16);
4871float16 __ovld __cnfn convert_float16_rtn(long16);
4872float16 __ovld __cnfn convert_float16(long16);
4873float16 __ovld __cnfn convert_float16_rte(ulong16);
4874float16 __ovld __cnfn convert_float16_rtz(ulong16);
4875float16 __ovld __cnfn convert_float16_rtp(ulong16);
4876float16 __ovld __cnfn convert_float16_rtn(ulong16);
4877float16 __ovld __cnfn convert_float16(ulong16);
4878float16 __ovld __cnfn convert_float16_rte(float16);
4879float16 __ovld __cnfn convert_float16_rtz(float16);
4880float16 __ovld __cnfn convert_float16_rtp(float16);
4881float16 __ovld __cnfn convert_float16_rtn(float16);
4882float16 __ovld __cnfn convert_float16(float16);
4883
4884// Conversions with double data type parameters or return value.
4885
4886#ifdef cl_khr_fp64
4887char __ovld __cnfn convert_char(double);
4888char __ovld __cnfn convert_char_rte(double);
4889char __ovld __cnfn convert_char_rtn(double);
4890char __ovld __cnfn convert_char_rtp(double);
4891char __ovld __cnfn convert_char_rtz(double);
4892char __ovld __cnfn convert_char_sat(double);
4893char __ovld __cnfn convert_char_sat_rte(double);
4894char __ovld __cnfn convert_char_sat_rtn(double);
4895char __ovld __cnfn convert_char_sat_rtp(double);
4896char __ovld __cnfn convert_char_sat_rtz(double);
4897char2 __ovld __cnfn convert_char2(double2);
4898char2 __ovld __cnfn convert_char2_rte(double2);
4899char2 __ovld __cnfn convert_char2_rtn(double2);
4900char2 __ovld __cnfn convert_char2_rtp(double2);
4901char2 __ovld __cnfn convert_char2_rtz(double2);
4902char2 __ovld __cnfn convert_char2_sat(double2);
4903char2 __ovld __cnfn convert_char2_sat_rte(double2);
4904char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4905char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4906char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4907char3 __ovld __cnfn convert_char3(double3);
4908char3 __ovld __cnfn convert_char3_rte(double3);
4909char3 __ovld __cnfn convert_char3_rtn(double3);
4910char3 __ovld __cnfn convert_char3_rtp(double3);
4911char3 __ovld __cnfn convert_char3_rtz(double3);
4912char3 __ovld __cnfn convert_char3_sat(double3);
4913char3 __ovld __cnfn convert_char3_sat_rte(double3);
4914char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4915char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4916char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4917char4 __ovld __cnfn convert_char4(double4);
4918char4 __ovld __cnfn convert_char4_rte(double4);
4919char4 __ovld __cnfn convert_char4_rtn(double4);
4920char4 __ovld __cnfn convert_char4_rtp(double4);
4921char4 __ovld __cnfn convert_char4_rtz(double4);
4922char4 __ovld __cnfn convert_char4_sat(double4);
4923char4 __ovld __cnfn convert_char4_sat_rte(double4);
4924char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4925char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4926char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4927char8 __ovld __cnfn convert_char8(double8);
4928char8 __ovld __cnfn convert_char8_rte(double8);
4929char8 __ovld __cnfn convert_char8_rtn(double8);
4930char8 __ovld __cnfn convert_char8_rtp(double8);
4931char8 __ovld __cnfn convert_char8_rtz(double8);
4932char8 __ovld __cnfn convert_char8_sat(double8);
4933char8 __ovld __cnfn convert_char8_sat_rte(double8);
4934char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4935char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4936char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4937char16 __ovld __cnfn convert_char16(double16);
4938char16 __ovld __cnfn convert_char16_rte(double16);
4939char16 __ovld __cnfn convert_char16_rtn(double16);
4940char16 __ovld __cnfn convert_char16_rtp(double16);
4941char16 __ovld __cnfn convert_char16_rtz(double16);
4942char16 __ovld __cnfn convert_char16_sat(double16);
4943char16 __ovld __cnfn convert_char16_sat_rte(double16);
4944char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4945char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4946char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4947
4948uchar __ovld __cnfn convert_uchar(double);
4949uchar __ovld __cnfn convert_uchar_rte(double);
4950uchar __ovld __cnfn convert_uchar_rtn(double);
4951uchar __ovld __cnfn convert_uchar_rtp(double);
4952uchar __ovld __cnfn convert_uchar_rtz(double);
4953uchar __ovld __cnfn convert_uchar_sat(double);
4954uchar __ovld __cnfn convert_uchar_sat_rte(double);
4955uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4956uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4957uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4958uchar2 __ovld __cnfn convert_uchar2(double2);
4959uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4960uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4961uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4962uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4963uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4964uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4965uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4966uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4967uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4968uchar3 __ovld __cnfn convert_uchar3(double3);
4969uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4970uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4971uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4972uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4973uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4974uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4975uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4976uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4977uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4978uchar4 __ovld __cnfn convert_uchar4(double4);
4979uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4980uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4981uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4982uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4983uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4984uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4985uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4986uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4987uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4988uchar8 __ovld __cnfn convert_uchar8(double8);
4989uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4990uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4991uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4992uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4993uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4994uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4995uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4996uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4997uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4998uchar16 __ovld __cnfn convert_uchar16(double16);
4999uchar16 __ovld __cnfn convert_uchar16_rte(double16);
5000uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
5001uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
5002uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
5003uchar16 __ovld __cnfn convert_uchar16_sat(double16);
5004uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
5005uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
5006uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
5007uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
5008
5009short __ovld __cnfn convert_short(double);
5010short __ovld __cnfn convert_short_rte(double);
5011short __ovld __cnfn convert_short_rtn(double);
5012short __ovld __cnfn convert_short_rtp(double);
5013short __ovld __cnfn convert_short_rtz(double);
5014short __ovld __cnfn convert_short_sat(double);
5015short __ovld __cnfn convert_short_sat_rte(double);
5016short __ovld __cnfn convert_short_sat_rtn(double);
5017short __ovld __cnfn convert_short_sat_rtp(double);
5018short __ovld __cnfn convert_short_sat_rtz(double);
5019short2 __ovld __cnfn convert_short2(double2);
5020short2 __ovld __cnfn convert_short2_rte(double2);
5021short2 __ovld __cnfn convert_short2_rtn(double2);
5022short2 __ovld __cnfn convert_short2_rtp(double2);
5023short2 __ovld __cnfn convert_short2_rtz(double2);
5024short2 __ovld __cnfn convert_short2_sat(double2);
5025short2 __ovld __cnfn convert_short2_sat_rte(double2);
5026short2 __ovld __cnfn convert_short2_sat_rtn(double2);
5027short2 __ovld __cnfn convert_short2_sat_rtp(double2);
5028short2 __ovld __cnfn convert_short2_sat_rtz(double2);
5029short3 __ovld __cnfn convert_short3(double3);
5030short3 __ovld __cnfn convert_short3_rte(double3);
5031short3 __ovld __cnfn convert_short3_rtn(double3);
5032short3 __ovld __cnfn convert_short3_rtp(double3);
5033short3 __ovld __cnfn convert_short3_rtz(double3);
5034short3 __ovld __cnfn convert_short3_sat(double3);
5035short3 __ovld __cnfn convert_short3_sat_rte(double3);
5036short3 __ovld __cnfn convert_short3_sat_rtn(double3);
5037short3 __ovld __cnfn convert_short3_sat_rtp(double3);
5038short3 __ovld __cnfn convert_short3_sat_rtz(double3);
5039short4 __ovld __cnfn convert_short4(double4);
5040short4 __ovld __cnfn convert_short4_rte(double4);
5041short4 __ovld __cnfn convert_short4_rtn(double4);
5042short4 __ovld __cnfn convert_short4_rtp(double4);
5043short4 __ovld __cnfn convert_short4_rtz(double4);
5044short4 __ovld __cnfn convert_short4_sat(double4);
5045short4 __ovld __cnfn convert_short4_sat_rte(double4);
5046short4 __ovld __cnfn convert_short4_sat_rtn(double4);
5047short4 __ovld __cnfn convert_short4_sat_rtp(double4);
5048short4 __ovld __cnfn convert_short4_sat_rtz(double4);
5049short8 __ovld __cnfn convert_short8(double8);
5050short8 __ovld __cnfn convert_short8_rte(double8);
5051short8 __ovld __cnfn convert_short8_rtn(double8);
5052short8 __ovld __cnfn convert_short8_rtp(double8);
5053short8 __ovld __cnfn convert_short8_rtz(double8);
5054short8 __ovld __cnfn convert_short8_sat(double8);
5055short8 __ovld __cnfn convert_short8_sat_rte(double8);
5056short8 __ovld __cnfn convert_short8_sat_rtn(double8);
5057short8 __ovld __cnfn convert_short8_sat_rtp(double8);
5058short8 __ovld __cnfn convert_short8_sat_rtz(double8);
5059short16 __ovld __cnfn convert_short16(double16);
5060short16 __ovld __cnfn convert_short16_rte(double16);
5061short16 __ovld __cnfn convert_short16_rtn(double16);
5062short16 __ovld __cnfn convert_short16_rtp(double16);
5063short16 __ovld __cnfn convert_short16_rtz(double16);
5064short16 __ovld __cnfn convert_short16_sat(double16);
5065short16 __ovld __cnfn convert_short16_sat_rte(double16);
5066short16 __ovld __cnfn convert_short16_sat_rtn(double16);
5067short16 __ovld __cnfn convert_short16_sat_rtp(double16);
5068short16 __ovld __cnfn convert_short16_sat_rtz(double16);
5069
5070ushort __ovld __cnfn convert_ushort(double);
5071ushort __ovld __cnfn convert_ushort_rte(double);
5072ushort __ovld __cnfn convert_ushort_rtn(double);
5073ushort __ovld __cnfn convert_ushort_rtp(double);
5074ushort __ovld __cnfn convert_ushort_rtz(double);
5075ushort __ovld __cnfn convert_ushort_sat(double);
5076ushort __ovld __cnfn convert_ushort_sat_rte(double);
5077ushort __ovld __cnfn convert_ushort_sat_rtn(double);
5078ushort __ovld __cnfn convert_ushort_sat_rtp(double);
5079ushort __ovld __cnfn convert_ushort_sat_rtz(double);
5080ushort2 __ovld __cnfn convert_ushort2(double2);
5081ushort2 __ovld __cnfn convert_ushort2_rte(double2);
5082ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
5083ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
5084ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
5085ushort2 __ovld __cnfn convert_ushort2_sat(double2);
5086ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
5087ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
5088ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
5089ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
5090ushort3 __ovld __cnfn convert_ushort3(double3);
5091ushort3 __ovld __cnfn convert_ushort3_rte(double3);
5092ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
5093ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
5094ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
5095ushort3 __ovld __cnfn convert_ushort3_sat(double3);
5096ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
5097ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
5098ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
5099ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
5100ushort4 __ovld __cnfn convert_ushort4(double4);
5101ushort4 __ovld __cnfn convert_ushort4_rte(double4);
5102ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
5103ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
5104ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
5105ushort4 __ovld __cnfn convert_ushort4_sat(double4);
5106ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
5107ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
5108ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
5109ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
5110ushort8 __ovld __cnfn convert_ushort8(double8);
5111ushort8 __ovld __cnfn convert_ushort8_rte(double8);
5112ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
5113ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
5114ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
5115ushort8 __ovld __cnfn convert_ushort8_sat(double8);
5116ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
5117ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
5118ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
5119ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
5120ushort16 __ovld __cnfn convert_ushort16(double16);
5121ushort16 __ovld __cnfn convert_ushort16_rte(double16);
5122ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
5123ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
5124ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
5125ushort16 __ovld __cnfn convert_ushort16_sat(double16);
5126ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
5127ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
5128ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
5129ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
5130
5131int __ovld __cnfn convert_int(double);
5132int __ovld __cnfn convert_int_rte(double);
5133int __ovld __cnfn convert_int_rtn(double);
5134int __ovld __cnfn convert_int_rtp(double);
5135int __ovld __cnfn convert_int_rtz(double);
5136int __ovld __cnfn convert_int_sat(double);
5137int __ovld __cnfn convert_int_sat_rte(double);
5138int __ovld __cnfn convert_int_sat_rtn(double);
5139int __ovld __cnfn convert_int_sat_rtp(double);
5140int __ovld __cnfn convert_int_sat_rtz(double);
5141int2 __ovld __cnfn convert_int2(double2);
5142int2 __ovld __cnfn convert_int2_rte(double2);
5143int2 __ovld __cnfn convert_int2_rtn(double2);
5144int2 __ovld __cnfn convert_int2_rtp(double2);
5145int2 __ovld __cnfn convert_int2_rtz(double2);
5146int2 __ovld __cnfn convert_int2_sat(double2);
5147int2 __ovld __cnfn convert_int2_sat_rte(double2);
5148int2 __ovld __cnfn convert_int2_sat_rtn(double2);
5149int2 __ovld __cnfn convert_int2_sat_rtp(double2);
5150int2 __ovld __cnfn convert_int2_sat_rtz(double2);
5151int3 __ovld __cnfn convert_int3(double3);
5152int3 __ovld __cnfn convert_int3_rte(double3);
5153int3 __ovld __cnfn convert_int3_rtn(double3);
5154int3 __ovld __cnfn convert_int3_rtp(double3);
5155int3 __ovld __cnfn convert_int3_rtz(double3);
5156int3 __ovld __cnfn convert_int3_sat(double3);
5157int3 __ovld __cnfn convert_int3_sat_rte(double3);
5158int3 __ovld __cnfn convert_int3_sat_rtn(double3);
5159int3 __ovld __cnfn convert_int3_sat_rtp(double3);
5160int3 __ovld __cnfn convert_int3_sat_rtz(double3);
5161int4 __ovld __cnfn convert_int4(double4);
5162int4 __ovld __cnfn convert_int4_rte(double4);
5163int4 __ovld __cnfn convert_int4_rtn(double4);
5164int4 __ovld __cnfn convert_int4_rtp(double4);
5165int4 __ovld __cnfn convert_int4_rtz(double4);
5166int4 __ovld __cnfn convert_int4_sat(double4);
5167int4 __ovld __cnfn convert_int4_sat_rte(double4);
5168int4 __ovld __cnfn convert_int4_sat_rtn(double4);
5169int4 __ovld __cnfn convert_int4_sat_rtp(double4);
5170int4 __ovld __cnfn convert_int4_sat_rtz(double4);
5171int8 __ovld __cnfn convert_int8(double8);
5172int8 __ovld __cnfn convert_int8_rte(double8);
5173int8 __ovld __cnfn convert_int8_rtn(double8);
5174int8 __ovld __cnfn convert_int8_rtp(double8);
5175int8 __ovld __cnfn convert_int8_rtz(double8);
5176int8 __ovld __cnfn convert_int8_sat(double8);
5177int8 __ovld __cnfn convert_int8_sat_rte(double8);
5178int8 __ovld __cnfn convert_int8_sat_rtn(double8);
5179int8 __ovld __cnfn convert_int8_sat_rtp(double8);
5180int8 __ovld __cnfn convert_int8_sat_rtz(double8);
5181int16 __ovld __cnfn convert_int16(double16);
5182int16 __ovld __cnfn convert_int16_rte(double16);
5183int16 __ovld __cnfn convert_int16_rtn(double16);
5184int16 __ovld __cnfn convert_int16_rtp(double16);
5185int16 __ovld __cnfn convert_int16_rtz(double16);
5186int16 __ovld __cnfn convert_int16_sat(double16);
5187int16 __ovld __cnfn convert_int16_sat_rte(double16);
5188int16 __ovld __cnfn convert_int16_sat_rtn(double16);
5189int16 __ovld __cnfn convert_int16_sat_rtp(double16);
5190int16 __ovld __cnfn convert_int16_sat_rtz(double16);
5191
5192uint __ovld __cnfn convert_uint(double);
5193uint __ovld __cnfn convert_uint_rte(double);
5194uint __ovld __cnfn convert_uint_rtn(double);
5195uint __ovld __cnfn convert_uint_rtp(double);
5196uint __ovld __cnfn convert_uint_rtz(double);
5197uint __ovld __cnfn convert_uint_sat(double);
5198uint __ovld __cnfn convert_uint_sat_rte(double);
5199uint __ovld __cnfn convert_uint_sat_rtn(double);
5200uint __ovld __cnfn convert_uint_sat_rtp(double);
5201uint __ovld __cnfn convert_uint_sat_rtz(double);
5202uint2 __ovld __cnfn convert_uint2(double2);
5203uint2 __ovld __cnfn convert_uint2_rte(double2);
5204uint2 __ovld __cnfn convert_uint2_rtn(double2);
5205uint2 __ovld __cnfn convert_uint2_rtp(double2);
5206uint2 __ovld __cnfn convert_uint2_rtz(double2);
5207uint2 __ovld __cnfn convert_uint2_sat(double2);
5208uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
5209uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
5210uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
5211uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
5212uint3 __ovld __cnfn convert_uint3(double3);
5213uint3 __ovld __cnfn convert_uint3_rte(double3);
5214uint3 __ovld __cnfn convert_uint3_rtn(double3);
5215uint3 __ovld __cnfn convert_uint3_rtp(double3);
5216uint3 __ovld __cnfn convert_uint3_rtz(double3);
5217uint3 __ovld __cnfn convert_uint3_sat(double3);
5218uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
5219uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
5220uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
5221uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
5222uint4 __ovld __cnfn convert_uint4(double4);
5223uint4 __ovld __cnfn convert_uint4_rte(double4);
5224uint4 __ovld __cnfn convert_uint4_rtn(double4);
5225uint4 __ovld __cnfn convert_uint4_rtp(double4);
5226uint4 __ovld __cnfn convert_uint4_rtz(double4);
5227uint4 __ovld __cnfn convert_uint4_sat(double4);
5228uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
5229uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
5230uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
5231uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
5232uint8 __ovld __cnfn convert_uint8(double8);
5233uint8 __ovld __cnfn convert_uint8_rte(double8);
5234uint8 __ovld __cnfn convert_uint8_rtn(double8);
5235uint8 __ovld __cnfn convert_uint8_rtp(double8);
5236uint8 __ovld __cnfn convert_uint8_rtz(double8);
5237uint8 __ovld __cnfn convert_uint8_sat(double8);
5238uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
5239uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
5240uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
5241uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
5242uint16 __ovld __cnfn convert_uint16(double16);
5243uint16 __ovld __cnfn convert_uint16_rte(double16);
5244uint16 __ovld __cnfn convert_uint16_rtn(double16);
5245uint16 __ovld __cnfn convert_uint16_rtp(double16);
5246uint16 __ovld __cnfn convert_uint16_rtz(double16);
5247uint16 __ovld __cnfn convert_uint16_sat(double16);
5248uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5249uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5250uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5251uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5252
5253long __ovld __cnfn convert_long(double);
5254long __ovld __cnfn convert_long_rte(double);
5255long __ovld __cnfn convert_long_rtn(double);
5256long __ovld __cnfn convert_long_rtp(double);
5257long __ovld __cnfn convert_long_rtz(double);
5258long __ovld __cnfn convert_long_sat(double);
5259long __ovld __cnfn convert_long_sat_rte(double);
5260long __ovld __cnfn convert_long_sat_rtn(double);
5261long __ovld __cnfn convert_long_sat_rtp(double);
5262long __ovld __cnfn convert_long_sat_rtz(double);
5263long2 __ovld __cnfn convert_long2(double2);
5264long2 __ovld __cnfn convert_long2_rte(double2);
5265long2 __ovld __cnfn convert_long2_rtn(double2);
5266long2 __ovld __cnfn convert_long2_rtp(double2);
5267long2 __ovld __cnfn convert_long2_rtz(double2);
5268long2 __ovld __cnfn convert_long2_sat(double2);
5269long2 __ovld __cnfn convert_long2_sat_rte(double2);
5270long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5271long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5272long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5273long3 __ovld __cnfn convert_long3(double3);
5274long3 __ovld __cnfn convert_long3_rte(double3);
5275long3 __ovld __cnfn convert_long3_rtn(double3);
5276long3 __ovld __cnfn convert_long3_rtp(double3);
5277long3 __ovld __cnfn convert_long3_rtz(double3);
5278long3 __ovld __cnfn convert_long3_sat(double3);
5279long3 __ovld __cnfn convert_long3_sat_rte(double3);
5280long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5281long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5282long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5283long4 __ovld __cnfn convert_long4(double4);
5284long4 __ovld __cnfn convert_long4_rte(double4);
5285long4 __ovld __cnfn convert_long4_rtn(double4);
5286long4 __ovld __cnfn convert_long4_rtp(double4);
5287long4 __ovld __cnfn convert_long4_rtz(double4);
5288long4 __ovld __cnfn convert_long4_sat(double4);
5289long4 __ovld __cnfn convert_long4_sat_rte(double4);
5290long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5291long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5292long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5293long8 __ovld __cnfn convert_long8(double8);
5294long8 __ovld __cnfn convert_long8_rte(double8);
5295long8 __ovld __cnfn convert_long8_rtn(double8);
5296long8 __ovld __cnfn convert_long8_rtp(double8);
5297long8 __ovld __cnfn convert_long8_rtz(double8);
5298long8 __ovld __cnfn convert_long8_sat(double8);
5299long8 __ovld __cnfn convert_long8_sat_rte(double8);
5300long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5301long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5302long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5303long16 __ovld __cnfn convert_long16(double16);
5304long16 __ovld __cnfn convert_long16_rte(double16);
5305long16 __ovld __cnfn convert_long16_rtn(double16);
5306long16 __ovld __cnfn convert_long16_rtp(double16);
5307long16 __ovld __cnfn convert_long16_rtz(double16);
5308long16 __ovld __cnfn convert_long16_sat(double16);
5309long16 __ovld __cnfn convert_long16_sat_rte(double16);
5310long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5311long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5312long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5313
5314ulong __ovld __cnfn convert_ulong(double);
5315ulong __ovld __cnfn convert_ulong_rte(double);
5316ulong __ovld __cnfn convert_ulong_rtn(double);
5317ulong __ovld __cnfn convert_ulong_rtp(double);
5318ulong __ovld __cnfn convert_ulong_rtz(double);
5319ulong __ovld __cnfn convert_ulong_sat(double);
5320ulong __ovld __cnfn convert_ulong_sat_rte(double);
5321ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5322ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5323ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5324ulong2 __ovld __cnfn convert_ulong2(double2);
5325ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5326ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5327ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5328ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5329ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5330ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5331ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5332ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5333ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5334ulong3 __ovld __cnfn convert_ulong3(double3);
5335ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5336ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5337ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5338ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5339ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5340ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5341ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5342ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5343ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5344ulong4 __ovld __cnfn convert_ulong4(double4);
5345ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5346ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5347ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5348ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5349ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5350ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5351ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5352ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5353ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5354ulong8 __ovld __cnfn convert_ulong8(double8);
5355ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5356ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5357ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5358ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5359ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5360ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5361ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5362ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5363ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5364ulong16 __ovld __cnfn convert_ulong16(double16);
5365ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5366ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5367ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5368ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5369ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5370ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5371ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5372ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5373ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5374
5375float __ovld __cnfn convert_float(double);
5376float __ovld __cnfn convert_float_rte(double);
5377float __ovld __cnfn convert_float_rtn(double);
5378float __ovld __cnfn convert_float_rtp(double);
5379float __ovld __cnfn convert_float_rtz(double);
5380float2 __ovld __cnfn convert_float2(double2);
5381float2 __ovld __cnfn convert_float2_rte(double2);
5382float2 __ovld __cnfn convert_float2_rtn(double2);
5383float2 __ovld __cnfn convert_float2_rtp(double2);
5384float2 __ovld __cnfn convert_float2_rtz(double2);
5385float3 __ovld __cnfn convert_float3(double3);
5386float3 __ovld __cnfn convert_float3_rte(double3);
5387float3 __ovld __cnfn convert_float3_rtn(double3);
5388float3 __ovld __cnfn convert_float3_rtp(double3);
5389float3 __ovld __cnfn convert_float3_rtz(double3);
5390float4 __ovld __cnfn convert_float4(double4);
5391float4 __ovld __cnfn convert_float4_rte(double4);
5392float4 __ovld __cnfn convert_float4_rtn(double4);
5393float4 __ovld __cnfn convert_float4_rtp(double4);
5394float4 __ovld __cnfn convert_float4_rtz(double4);
5395float8 __ovld __cnfn convert_float8(double8);
5396float8 __ovld __cnfn convert_float8_rte(double8);
5397float8 __ovld __cnfn convert_float8_rtn(double8);
5398float8 __ovld __cnfn convert_float8_rtp(double8);
5399float8 __ovld __cnfn convert_float8_rtz(double8);
5400float16 __ovld __cnfn convert_float16(double16);
5401float16 __ovld __cnfn convert_float16_rte(double16);
5402float16 __ovld __cnfn convert_float16_rtn(double16);
5403float16 __ovld __cnfn convert_float16_rtp(double16);
5404float16 __ovld __cnfn convert_float16_rtz(double16);
5405
5406double __ovld __cnfn convert_double(char);
5407double __ovld __cnfn convert_double(double);
5408double __ovld __cnfn convert_double(float);
5409double __ovld __cnfn convert_double(int);
5410double __ovld __cnfn convert_double(long);
5411double __ovld __cnfn convert_double(short);
5412double __ovld __cnfn convert_double(uchar);
5413double __ovld __cnfn convert_double(uint);
5414double __ovld __cnfn convert_double(ulong);
5415double __ovld __cnfn convert_double(ushort);
5416double __ovld __cnfn convert_double_rte(char);
5417double __ovld __cnfn convert_double_rte(double);
5418double __ovld __cnfn convert_double_rte(float);
5419double __ovld __cnfn convert_double_rte(int);
5420double __ovld __cnfn convert_double_rte(long);
5421double __ovld __cnfn convert_double_rte(short);
5422double __ovld __cnfn convert_double_rte(uchar);
5423double __ovld __cnfn convert_double_rte(uint);
5424double __ovld __cnfn convert_double_rte(ulong);
5425double __ovld __cnfn convert_double_rte(ushort);
5426double __ovld __cnfn convert_double_rtn(char);
5427double __ovld __cnfn convert_double_rtn(double);
5428double __ovld __cnfn convert_double_rtn(float);
5429double __ovld __cnfn convert_double_rtn(int);
5430double __ovld __cnfn convert_double_rtn(long);
5431double __ovld __cnfn convert_double_rtn(short);
5432double __ovld __cnfn convert_double_rtn(uchar);
5433double __ovld __cnfn convert_double_rtn(uint);
5434double __ovld __cnfn convert_double_rtn(ulong);
5435double __ovld __cnfn convert_double_rtn(ushort);
5436double __ovld __cnfn convert_double_rtp(char);
5437double __ovld __cnfn convert_double_rtp(double);
5438double __ovld __cnfn convert_double_rtp(float);
5439double __ovld __cnfn convert_double_rtp(int);
5440double __ovld __cnfn convert_double_rtp(long);
5441double __ovld __cnfn convert_double_rtp(short);
5442double __ovld __cnfn convert_double_rtp(uchar);
5443double __ovld __cnfn convert_double_rtp(uint);
5444double __ovld __cnfn convert_double_rtp(ulong);
5445double __ovld __cnfn convert_double_rtp(ushort);
5446double __ovld __cnfn convert_double_rtz(char);
5447double __ovld __cnfn convert_double_rtz(double);
5448double __ovld __cnfn convert_double_rtz(float);
5449double __ovld __cnfn convert_double_rtz(int);
5450double __ovld __cnfn convert_double_rtz(long);
5451double __ovld __cnfn convert_double_rtz(short);
5452double __ovld __cnfn convert_double_rtz(uchar);
5453double __ovld __cnfn convert_double_rtz(uint);
5454double __ovld __cnfn convert_double_rtz(ulong);
5455double __ovld __cnfn convert_double_rtz(ushort);
5456double2 __ovld __cnfn convert_double2(char2);
5457double2 __ovld __cnfn convert_double2(double2);
5458double2 __ovld __cnfn convert_double2(float2);
5459double2 __ovld __cnfn convert_double2(int2);
5460double2 __ovld __cnfn convert_double2(long2);
5461double2 __ovld __cnfn convert_double2(short2);
5462double2 __ovld __cnfn convert_double2(uchar2);
5463double2 __ovld __cnfn convert_double2(uint2);
5464double2 __ovld __cnfn convert_double2(ulong2);
5465double2 __ovld __cnfn convert_double2(ushort2);
5466double2 __ovld __cnfn convert_double2_rte(char2);
5467double2 __ovld __cnfn convert_double2_rte(double2);
5468double2 __ovld __cnfn convert_double2_rte(float2);
5469double2 __ovld __cnfn convert_double2_rte(int2);
5470double2 __ovld __cnfn convert_double2_rte(long2);
5471double2 __ovld __cnfn convert_double2_rte(short2);
5472double2 __ovld __cnfn convert_double2_rte(uchar2);
5473double2 __ovld __cnfn convert_double2_rte(uint2);
5474double2 __ovld __cnfn convert_double2_rte(ulong2);
5475double2 __ovld __cnfn convert_double2_rte(ushort2);
5476double2 __ovld __cnfn convert_double2_rtn(char2);
5477double2 __ovld __cnfn convert_double2_rtn(double2);
5478double2 __ovld __cnfn convert_double2_rtn(float2);
5479double2 __ovld __cnfn convert_double2_rtn(int2);
5480double2 __ovld __cnfn convert_double2_rtn(long2);
5481double2 __ovld __cnfn convert_double2_rtn(short2);
5482double2 __ovld __cnfn convert_double2_rtn(uchar2);
5483double2 __ovld __cnfn convert_double2_rtn(uint2);
5484double2 __ovld __cnfn convert_double2_rtn(ulong2);
5485double2 __ovld __cnfn convert_double2_rtn(ushort2);
5486double2 __ovld __cnfn convert_double2_rtp(char2);
5487double2 __ovld __cnfn convert_double2_rtp(double2);
5488double2 __ovld __cnfn convert_double2_rtp(float2);
5489double2 __ovld __cnfn convert_double2_rtp(int2);
5490double2 __ovld __cnfn convert_double2_rtp(long2);
5491double2 __ovld __cnfn convert_double2_rtp(short2);
5492double2 __ovld __cnfn convert_double2_rtp(uchar2);
5493double2 __ovld __cnfn convert_double2_rtp(uint2);
5494double2 __ovld __cnfn convert_double2_rtp(ulong2);
5495double2 __ovld __cnfn convert_double2_rtp(ushort2);
5496double2 __ovld __cnfn convert_double2_rtz(char2);
5497double2 __ovld __cnfn convert_double2_rtz(double2);
5498double2 __ovld __cnfn convert_double2_rtz(float2);
5499double2 __ovld __cnfn convert_double2_rtz(int2);
5500double2 __ovld __cnfn convert_double2_rtz(long2);
5501double2 __ovld __cnfn convert_double2_rtz(short2);
5502double2 __ovld __cnfn convert_double2_rtz(uchar2);
5503double2 __ovld __cnfn convert_double2_rtz(uint2);
5504double2 __ovld __cnfn convert_double2_rtz(ulong2);
5505double2 __ovld __cnfn convert_double2_rtz(ushort2);
5506double3 __ovld __cnfn convert_double3(char3);
5507double3 __ovld __cnfn convert_double3(double3);
5508double3 __ovld __cnfn convert_double3(float3);
5509double3 __ovld __cnfn convert_double3(int3);
5510double3 __ovld __cnfn convert_double3(long3);
5511double3 __ovld __cnfn convert_double3(short3);
5512double3 __ovld __cnfn convert_double3(uchar3);
5513double3 __ovld __cnfn convert_double3(uint3);
5514double3 __ovld __cnfn convert_double3(ulong3);
5515double3 __ovld __cnfn convert_double3(ushort3);
5516double3 __ovld __cnfn convert_double3_rte(char3);
5517double3 __ovld __cnfn convert_double3_rte(double3);
5518double3 __ovld __cnfn convert_double3_rte(float3);
5519double3 __ovld __cnfn convert_double3_rte(int3);
5520double3 __ovld __cnfn convert_double3_rte(long3);
5521double3 __ovld __cnfn convert_double3_rte(short3);
5522double3 __ovld __cnfn convert_double3_rte(uchar3);
5523double3 __ovld __cnfn convert_double3_rte(uint3);
5524double3 __ovld __cnfn convert_double3_rte(ulong3);
5525double3 __ovld __cnfn convert_double3_rte(ushort3);
5526double3 __ovld __cnfn convert_double3_rtn(char3);
5527double3 __ovld __cnfn convert_double3_rtn(double3);
5528double3 __ovld __cnfn convert_double3_rtn(float3);
5529double3 __ovld __cnfn convert_double3_rtn(int3);
5530double3 __ovld __cnfn convert_double3_rtn(long3);
5531double3 __ovld __cnfn convert_double3_rtn(short3);
5532double3 __ovld __cnfn convert_double3_rtn(uchar3);
5533double3 __ovld __cnfn convert_double3_rtn(uint3);
5534double3 __ovld __cnfn convert_double3_rtn(ulong3);
5535double3 __ovld __cnfn convert_double3_rtn(ushort3);
5536double3 __ovld __cnfn convert_double3_rtp(char3);
5537double3 __ovld __cnfn convert_double3_rtp(double3);
5538double3 __ovld __cnfn convert_double3_rtp(float3);
5539double3 __ovld __cnfn convert_double3_rtp(int3);
5540double3 __ovld __cnfn convert_double3_rtp(long3);
5541double3 __ovld __cnfn convert_double3_rtp(short3);
5542double3 __ovld __cnfn convert_double3_rtp(uchar3);
5543double3 __ovld __cnfn convert_double3_rtp(uint3);
5544double3 __ovld __cnfn convert_double3_rtp(ulong3);
5545double3 __ovld __cnfn convert_double3_rtp(ushort3);
5546double3 __ovld __cnfn convert_double3_rtz(char3);
5547double3 __ovld __cnfn convert_double3_rtz(double3);
5548double3 __ovld __cnfn convert_double3_rtz(float3);
5549double3 __ovld __cnfn convert_double3_rtz(int3);
5550double3 __ovld __cnfn convert_double3_rtz(long3);
5551double3 __ovld __cnfn convert_double3_rtz(short3);
5552double3 __ovld __cnfn convert_double3_rtz(uchar3);
5553double3 __ovld __cnfn convert_double3_rtz(uint3);
5554double3 __ovld __cnfn convert_double3_rtz(ulong3);
5555double3 __ovld __cnfn convert_double3_rtz(ushort3);
5556double4 __ovld __cnfn convert_double4(char4);
5557double4 __ovld __cnfn convert_double4(double4);
5558double4 __ovld __cnfn convert_double4(float4);
5559double4 __ovld __cnfn convert_double4(int4);
5560double4 __ovld __cnfn convert_double4(long4);
5561double4 __ovld __cnfn convert_double4(short4);
5562double4 __ovld __cnfn convert_double4(uchar4);
5563double4 __ovld __cnfn convert_double4(uint4);
5564double4 __ovld __cnfn convert_double4(ulong4);
5565double4 __ovld __cnfn convert_double4(ushort4);
5566double4 __ovld __cnfn convert_double4_rte(char4);
5567double4 __ovld __cnfn convert_double4_rte(double4);
5568double4 __ovld __cnfn convert_double4_rte(float4);
5569double4 __ovld __cnfn convert_double4_rte(int4);
5570double4 __ovld __cnfn convert_double4_rte(long4);
5571double4 __ovld __cnfn convert_double4_rte(short4);
5572double4 __ovld __cnfn convert_double4_rte(uchar4);
5573double4 __ovld __cnfn convert_double4_rte(uint4);
5574double4 __ovld __cnfn convert_double4_rte(ulong4);
5575double4 __ovld __cnfn convert_double4_rte(ushort4);
5576double4 __ovld __cnfn convert_double4_rtn(char4);
5577double4 __ovld __cnfn convert_double4_rtn(double4);
5578double4 __ovld __cnfn convert_double4_rtn(float4);
5579double4 __ovld __cnfn convert_double4_rtn(int4);
5580double4 __ovld __cnfn convert_double4_rtn(long4);
5581double4 __ovld __cnfn convert_double4_rtn(short4);
5582double4 __ovld __cnfn convert_double4_rtn(uchar4);
5583double4 __ovld __cnfn convert_double4_rtn(uint4);
5584double4 __ovld __cnfn convert_double4_rtn(ulong4);
5585double4 __ovld __cnfn convert_double4_rtn(ushort4);
5586double4 __ovld __cnfn convert_double4_rtp(char4);
5587double4 __ovld __cnfn convert_double4_rtp(double4);
5588double4 __ovld __cnfn convert_double4_rtp(float4);
5589double4 __ovld __cnfn convert_double4_rtp(int4);
5590double4 __ovld __cnfn convert_double4_rtp(long4);
5591double4 __ovld __cnfn convert_double4_rtp(short4);
5592double4 __ovld __cnfn convert_double4_rtp(uchar4);
5593double4 __ovld __cnfn convert_double4_rtp(uint4);
5594double4 __ovld __cnfn convert_double4_rtp(ulong4);
5595double4 __ovld __cnfn convert_double4_rtp(ushort4);
5596double4 __ovld __cnfn convert_double4_rtz(char4);
5597double4 __ovld __cnfn convert_double4_rtz(double4);
5598double4 __ovld __cnfn convert_double4_rtz(float4);
5599double4 __ovld __cnfn convert_double4_rtz(int4);
5600double4 __ovld __cnfn convert_double4_rtz(long4);
5601double4 __ovld __cnfn convert_double4_rtz(short4);
5602double4 __ovld __cnfn convert_double4_rtz(uchar4);
5603double4 __ovld __cnfn convert_double4_rtz(uint4);
5604double4 __ovld __cnfn convert_double4_rtz(ulong4);
5605double4 __ovld __cnfn convert_double4_rtz(ushort4);
5606double8 __ovld __cnfn convert_double8(char8);
5607double8 __ovld __cnfn convert_double8(double8);
5608double8 __ovld __cnfn convert_double8(float8);
5609double8 __ovld __cnfn convert_double8(int8);
5610double8 __ovld __cnfn convert_double8(long8);
5611double8 __ovld __cnfn convert_double8(short8);
5612double8 __ovld __cnfn convert_double8(uchar8);
5613double8 __ovld __cnfn convert_double8(uint8);
5614double8 __ovld __cnfn convert_double8(ulong8);
5615double8 __ovld __cnfn convert_double8(ushort8);
5616double8 __ovld __cnfn convert_double8_rte(char8);
5617double8 __ovld __cnfn convert_double8_rte(double8);
5618double8 __ovld __cnfn convert_double8_rte(float8);
5619double8 __ovld __cnfn convert_double8_rte(int8);
5620double8 __ovld __cnfn convert_double8_rte(long8);
5621double8 __ovld __cnfn convert_double8_rte(short8);
5622double8 __ovld __cnfn convert_double8_rte(uchar8);
5623double8 __ovld __cnfn convert_double8_rte(uint8);
5624double8 __ovld __cnfn convert_double8_rte(ulong8);
5625double8 __ovld __cnfn convert_double8_rte(ushort8);
5626double8 __ovld __cnfn convert_double8_rtn(char8);
5627double8 __ovld __cnfn convert_double8_rtn(double8);
5628double8 __ovld __cnfn convert_double8_rtn(float8);
5629double8 __ovld __cnfn convert_double8_rtn(int8);
5630double8 __ovld __cnfn convert_double8_rtn(long8);
5631double8 __ovld __cnfn convert_double8_rtn(short8);
5632double8 __ovld __cnfn convert_double8_rtn(uchar8);
5633double8 __ovld __cnfn convert_double8_rtn(uint8);
5634double8 __ovld __cnfn convert_double8_rtn(ulong8);
5635double8 __ovld __cnfn convert_double8_rtn(ushort8);
5636double8 __ovld __cnfn convert_double8_rtp(char8);
5637double8 __ovld __cnfn convert_double8_rtp(double8);
5638double8 __ovld __cnfn convert_double8_rtp(float8);
5639double8 __ovld __cnfn convert_double8_rtp(int8);
5640double8 __ovld __cnfn convert_double8_rtp(long8);
5641double8 __ovld __cnfn convert_double8_rtp(short8);
5642double8 __ovld __cnfn convert_double8_rtp(uchar8);
5643double8 __ovld __cnfn convert_double8_rtp(uint8);
5644double8 __ovld __cnfn convert_double8_rtp(ulong8);
5645double8 __ovld __cnfn convert_double8_rtp(ushort8);
5646double8 __ovld __cnfn convert_double8_rtz(char8);
5647double8 __ovld __cnfn convert_double8_rtz(double8);
5648double8 __ovld __cnfn convert_double8_rtz(float8);
5649double8 __ovld __cnfn convert_double8_rtz(int8);
5650double8 __ovld __cnfn convert_double8_rtz(long8);
5651double8 __ovld __cnfn convert_double8_rtz(short8);
5652double8 __ovld __cnfn convert_double8_rtz(uchar8);
5653double8 __ovld __cnfn convert_double8_rtz(uint8);
5654double8 __ovld __cnfn convert_double8_rtz(ulong8);
5655double8 __ovld __cnfn convert_double8_rtz(ushort8);
5656double16 __ovld __cnfn convert_double16(char16);
5657double16 __ovld __cnfn convert_double16(double16);
5658double16 __ovld __cnfn convert_double16(float16);
5659double16 __ovld __cnfn convert_double16(int16);
5660double16 __ovld __cnfn convert_double16(long16);
5661double16 __ovld __cnfn convert_double16(short16);
5662double16 __ovld __cnfn convert_double16(uchar16);
5663double16 __ovld __cnfn convert_double16(uint16);
5664double16 __ovld __cnfn convert_double16(ulong16);
5665double16 __ovld __cnfn convert_double16(ushort16);
5666double16 __ovld __cnfn convert_double16_rte(char16);
5667double16 __ovld __cnfn convert_double16_rte(double16);
5668double16 __ovld __cnfn convert_double16_rte(float16);
5669double16 __ovld __cnfn convert_double16_rte(int16);
5670double16 __ovld __cnfn convert_double16_rte(long16);
5671double16 __ovld __cnfn convert_double16_rte(short16);
5672double16 __ovld __cnfn convert_double16_rte(uchar16);
5673double16 __ovld __cnfn convert_double16_rte(uint16);
5674double16 __ovld __cnfn convert_double16_rte(ulong16);
5675double16 __ovld __cnfn convert_double16_rte(ushort16);
5676double16 __ovld __cnfn convert_double16_rtn(char16);
5677double16 __ovld __cnfn convert_double16_rtn(double16);
5678double16 __ovld __cnfn convert_double16_rtn(float16);
5679double16 __ovld __cnfn convert_double16_rtn(int16);
5680double16 __ovld __cnfn convert_double16_rtn(long16);
5681double16 __ovld __cnfn convert_double16_rtn(short16);
5682double16 __ovld __cnfn convert_double16_rtn(uchar16);
5683double16 __ovld __cnfn convert_double16_rtn(uint16);
5684double16 __ovld __cnfn convert_double16_rtn(ulong16);
5685double16 __ovld __cnfn convert_double16_rtn(ushort16);
5686double16 __ovld __cnfn convert_double16_rtp(char16);
5687double16 __ovld __cnfn convert_double16_rtp(double16);
5688double16 __ovld __cnfn convert_double16_rtp(float16);
5689double16 __ovld __cnfn convert_double16_rtp(int16);
5690double16 __ovld __cnfn convert_double16_rtp(long16);
5691double16 __ovld __cnfn convert_double16_rtp(short16);
5692double16 __ovld __cnfn convert_double16_rtp(uchar16);
5693double16 __ovld __cnfn convert_double16_rtp(uint16);
5694double16 __ovld __cnfn convert_double16_rtp(ulong16);
5695double16 __ovld __cnfn convert_double16_rtp(ushort16);
5696double16 __ovld __cnfn convert_double16_rtz(char16);
5697double16 __ovld __cnfn convert_double16_rtz(double16);
5698double16 __ovld __cnfn convert_double16_rtz(float16);
5699double16 __ovld __cnfn convert_double16_rtz(int16);
5700double16 __ovld __cnfn convert_double16_rtz(long16);
5701double16 __ovld __cnfn convert_double16_rtz(short16);
5702double16 __ovld __cnfn convert_double16_rtz(uchar16);
5703double16 __ovld __cnfn convert_double16_rtz(uint16);
5704double16 __ovld __cnfn convert_double16_rtz(ulong16);
5705double16 __ovld __cnfn convert_double16_rtz(ushort16);
5706#endif //cl_khr_fp64
5707
5708#ifdef cl_khr_fp16
5709// Convert half types to non-double types.
5710uchar __ovld __cnfn convert_uchar(half);
5711uchar __ovld __cnfn convert_uchar_rte(half);
5712uchar __ovld __cnfn convert_uchar_rtp(half);
5713uchar __ovld __cnfn convert_uchar_rtn(half);
5714uchar __ovld __cnfn convert_uchar_rtz(half);
5715uchar __ovld __cnfn convert_uchar_sat(half);
5716uchar __ovld __cnfn convert_uchar_sat_rte(half);
5717uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5718uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5719uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5720uchar2 __ovld __cnfn convert_uchar2(half2);
5721uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5722uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5723uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5724uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5725uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5726uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5727uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5728uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5729uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5730uchar3 __ovld __cnfn convert_uchar3(half3);
5731uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5732uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5733uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5734uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5735uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5736uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5737uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5738uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5739uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5740uchar4 __ovld __cnfn convert_uchar4(half4);
5741uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5742uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5743uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5744uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5745uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5746uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5747uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5748uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5749uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5750uchar8 __ovld __cnfn convert_uchar8(half8);
5751uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5752uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5753uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5754uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5755uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5756uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5757uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5758uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5759uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5760uchar16 __ovld __cnfn convert_uchar16(half16);
5761uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5762uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5763uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5764uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5765uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5766uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5767uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5768uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5769uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5770ushort __ovld __cnfn convert_ushort(half);
5771ushort __ovld __cnfn convert_ushort_rte(half);
5772ushort __ovld __cnfn convert_ushort_rtp(half);
5773ushort __ovld __cnfn convert_ushort_rtn(half);
5774ushort __ovld __cnfn convert_ushort_rtz(half);
5775ushort __ovld __cnfn convert_ushort_sat(half);
5776ushort __ovld __cnfn convert_ushort_sat_rte(half);
5777ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5778ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5779ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5780ushort2 __ovld __cnfn convert_ushort2(half2);
5781ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5782ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5783ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5784ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5785ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5786ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5787ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5788ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5789ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5790ushort3 __ovld __cnfn convert_ushort3(half3);
5791ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5792ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5793ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5794ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5795ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5796ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5797ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5798ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5799ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5800ushort4 __ovld __cnfn convert_ushort4(half4);
5801ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5802ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5803ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5804ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5805ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5806ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5807ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5808ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5809ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5810ushort8 __ovld __cnfn convert_ushort8(half8);
5811ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5812ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5813ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5814ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5815ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5816ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5817ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5818ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5819ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5820ushort16 __ovld __cnfn convert_ushort16(half16);
5821ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5822ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5823ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5824ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5825ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5826ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5827ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5828ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5829ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5830uint __ovld __cnfn convert_uint(half);
5831uint __ovld __cnfn convert_uint_rte(half);
5832uint __ovld __cnfn convert_uint_rtp(half);
5833uint __ovld __cnfn convert_uint_rtn(half);
5834uint __ovld __cnfn convert_uint_rtz(half);
5835uint __ovld __cnfn convert_uint_sat(half);
5836uint __ovld __cnfn convert_uint_sat_rte(half);
5837uint __ovld __cnfn convert_uint_sat_rtp(half);
5838uint __ovld __cnfn convert_uint_sat_rtn(half);
5839uint __ovld __cnfn convert_uint_sat_rtz(half);
5840uint2 __ovld __cnfn convert_uint2(half2);
5841uint2 __ovld __cnfn convert_uint2_rte(half2);
5842uint2 __ovld __cnfn convert_uint2_rtp(half2);
5843uint2 __ovld __cnfn convert_uint2_rtn(half2);
5844uint2 __ovld __cnfn convert_uint2_rtz(half2);
5845uint2 __ovld __cnfn convert_uint2_sat(half2);
5846uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5847uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5848uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5849uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5850uint3 __ovld __cnfn convert_uint3(half3);
5851uint3 __ovld __cnfn convert_uint3_rte(half3);
5852uint3 __ovld __cnfn convert_uint3_rtp(half3);
5853uint3 __ovld __cnfn convert_uint3_rtn(half3);
5854uint3 __ovld __cnfn convert_uint3_rtz(half3);
5855uint3 __ovld __cnfn convert_uint3_sat(half3);
5856uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5857uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5858uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5859uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5860uint4 __ovld __cnfn convert_uint4(half4);
5861uint4 __ovld __cnfn convert_uint4_rte(half4);
5862uint4 __ovld __cnfn convert_uint4_rtp(half4);
5863uint4 __ovld __cnfn convert_uint4_rtn(half4);
5864uint4 __ovld __cnfn convert_uint4_rtz(half4);
5865uint4 __ovld __cnfn convert_uint4_sat(half4);
5866uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5867uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5868uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5869uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5870uint8 __ovld __cnfn convert_uint8(half8);
5871uint8 __ovld __cnfn convert_uint8_rte(half8);
5872uint8 __ovld __cnfn convert_uint8_rtp(half8);
5873uint8 __ovld __cnfn convert_uint8_rtn(half8);
5874uint8 __ovld __cnfn convert_uint8_rtz(half8);
5875uint8 __ovld __cnfn convert_uint8_sat(half8);
5876uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5877uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5878uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5879uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5880uint16 __ovld __cnfn convert_uint16(half16);
5881uint16 __ovld __cnfn convert_uint16_rte(half16);
5882uint16 __ovld __cnfn convert_uint16_rtp(half16);
5883uint16 __ovld __cnfn convert_uint16_rtn(half16);
5884uint16 __ovld __cnfn convert_uint16_rtz(half16);
5885uint16 __ovld __cnfn convert_uint16_sat(half16);
5886uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5887uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5888uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5889uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5890ulong __ovld __cnfn convert_ulong(half);
5891ulong __ovld __cnfn convert_ulong_rte(half);
5892ulong __ovld __cnfn convert_ulong_rtp(half);
5893ulong __ovld __cnfn convert_ulong_rtn(half);
5894ulong __ovld __cnfn convert_ulong_rtz(half);
5895ulong __ovld __cnfn convert_ulong_sat(half);
5896ulong __ovld __cnfn convert_ulong_sat_rte(half);
5897ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5898ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5899ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5900ulong2 __ovld __cnfn convert_ulong2(half2);
5901ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5902ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5903ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5904ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5905ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5906ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5907ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5908ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5909ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5910ulong3 __ovld __cnfn convert_ulong3(half3);
5911ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5912ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5913ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5914ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5915ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5916ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5917ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5918ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5919ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5920ulong4 __ovld __cnfn convert_ulong4(half4);
5921ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5922ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5923ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5924ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5925ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5926ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5927ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5928ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5929ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5930ulong8 __ovld __cnfn convert_ulong8(half8);
5931ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5932ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5933ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5934ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5935ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5936ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5937ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5938ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5939ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5940ulong16 __ovld __cnfn convert_ulong16(half16);
5941ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5942ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5943ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5944ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5945ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5946ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5947ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5948ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5949ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5950char __ovld __cnfn convert_char(half);
5951char __ovld __cnfn convert_char_rte(half);
5952char __ovld __cnfn convert_char_rtp(half);
5953char __ovld __cnfn convert_char_rtn(half);
5954char __ovld __cnfn convert_char_rtz(half);
5955char __ovld __cnfn convert_char_sat(half);
5956char __ovld __cnfn convert_char_sat_rte(half);
5957char __ovld __cnfn convert_char_sat_rtp(half);
5958char __ovld __cnfn convert_char_sat_rtn(half);
5959char __ovld __cnfn convert_char_sat_rtz(half);
5960char2 __ovld __cnfn convert_char2(half2);
5961char2 __ovld __cnfn convert_char2_rte(half2);
5962char2 __ovld __cnfn convert_char2_rtp(half2);
5963char2 __ovld __cnfn convert_char2_rtn(half2);
5964char2 __ovld __cnfn convert_char2_rtz(half2);
5965char2 __ovld __cnfn convert_char2_sat(half2);
5966char2 __ovld __cnfn convert_char2_sat_rte(half2);
5967char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5968char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5969char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5970char3 __ovld __cnfn convert_char3(half3);
5971char3 __ovld __cnfn convert_char3_rte(half3);
5972char3 __ovld __cnfn convert_char3_rtp(half3);
5973char3 __ovld __cnfn convert_char3_rtn(half3);
5974char3 __ovld __cnfn convert_char3_rtz(half3);
5975char3 __ovld __cnfn convert_char3_sat(half3);
5976char3 __ovld __cnfn convert_char3_sat_rte(half3);
5977char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5978char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5979char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5980char4 __ovld __cnfn convert_char4(half4);
5981char4 __ovld __cnfn convert_char4_rte(half4);
5982char4 __ovld __cnfn convert_char4_rtp(half4);
5983char4 __ovld __cnfn convert_char4_rtn(half4);
5984char4 __ovld __cnfn convert_char4_rtz(half4);
5985char4 __ovld __cnfn convert_char4_sat(half4);
5986char4 __ovld __cnfn convert_char4_sat_rte(half4);
5987char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5988char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5989char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5990char8 __ovld __cnfn convert_char8(half8);
5991char8 __ovld __cnfn convert_char8_rte(half8);
5992char8 __ovld __cnfn convert_char8_rtp(half8);
5993char8 __ovld __cnfn convert_char8_rtn(half8);
5994char8 __ovld __cnfn convert_char8_rtz(half8);
5995char8 __ovld __cnfn convert_char8_sat(half8);
5996char8 __ovld __cnfn convert_char8_sat_rte(half8);
5997char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5998char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5999char8 __ovld __cnfn convert_char8_sat_rtz(half8);
6000char16 __ovld __cnfn convert_char16(half16);
6001char16 __ovld __cnfn convert_char16_rte(half16);
6002char16 __ovld __cnfn convert_char16_rtp(half16);
6003char16 __ovld __cnfn convert_char16_rtn(half16);
6004char16 __ovld __cnfn convert_char16_rtz(half16);
6005char16 __ovld __cnfn convert_char16_sat(half16);
6006char16 __ovld __cnfn convert_char16_sat_rte(half16);
6007char16 __ovld __cnfn convert_char16_sat_rtp(half16);
6008char16 __ovld __cnfn convert_char16_sat_rtn(half16);
6009char16 __ovld __cnfn convert_char16_sat_rtz(half16);
6010short __ovld __cnfn convert_short(half);
6011short __ovld __cnfn convert_short_rte(half);
6012short __ovld __cnfn convert_short_rtp(half);
6013short __ovld __cnfn convert_short_rtn(half);
6014short __ovld __cnfn convert_short_rtz(half);
6015short __ovld __cnfn convert_short_sat(half);
6016short __ovld __cnfn convert_short_sat_rte(half);
6017short __ovld __cnfn convert_short_sat_rtp(half);
6018short __ovld __cnfn convert_short_sat_rtn(half);
6019short __ovld __cnfn convert_short_sat_rtz(half);
6020short2 __ovld __cnfn convert_short2(half2);
6021short2 __ovld __cnfn convert_short2_rte(half2);
6022short2 __ovld __cnfn convert_short2_rtp(half2);
6023short2 __ovld __cnfn convert_short2_rtn(half2);
6024short2 __ovld __cnfn convert_short2_rtz(half2);
6025short2 __ovld __cnfn convert_short2_sat(half2);
6026short2 __ovld __cnfn convert_short2_sat_rte(half2);
6027short2 __ovld __cnfn convert_short2_sat_rtp(half2);
6028short2 __ovld __cnfn convert_short2_sat_rtn(half2);
6029short2 __ovld __cnfn convert_short2_sat_rtz(half2);
6030short3 __ovld __cnfn convert_short3(half3);
6031short3 __ovld __cnfn convert_short3_rte(half3);
6032short3 __ovld __cnfn convert_short3_rtp(half3);
6033short3 __ovld __cnfn convert_short3_rtn(half3);
6034short3 __ovld __cnfn convert_short3_rtz(half3);
6035short3 __ovld __cnfn convert_short3_sat(half3);
6036short3 __ovld __cnfn convert_short3_sat_rte(half3);
6037short3 __ovld __cnfn convert_short3_sat_rtp(half3);
6038short3 __ovld __cnfn convert_short3_sat_rtn(half3);
6039short3 __ovld __cnfn convert_short3_sat_rtz(half3);
6040short4 __ovld __cnfn convert_short4(half4);
6041short4 __ovld __cnfn convert_short4_rte(half4);
6042short4 __ovld __cnfn convert_short4_rtp(half4);
6043short4 __ovld __cnfn convert_short4_rtn(half4);
6044short4 __ovld __cnfn convert_short4_rtz(half4);
6045short4 __ovld __cnfn convert_short4_sat(half4);
6046short4 __ovld __cnfn convert_short4_sat_rte(half4);
6047short4 __ovld __cnfn convert_short4_sat_rtp(half4);
6048short4 __ovld __cnfn convert_short4_sat_rtn(half4);
6049short4 __ovld __cnfn convert_short4_sat_rtz(half4);
6050short8 __ovld __cnfn convert_short8(half8);
6051short8 __ovld __cnfn convert_short8_rte(half8);
6052short8 __ovld __cnfn convert_short8_rtp(half8);
6053short8 __ovld __cnfn convert_short8_rtn(half8);
6054short8 __ovld __cnfn convert_short8_rtz(half8);
6055short8 __ovld __cnfn convert_short8_sat(half8);
6056short8 __ovld __cnfn convert_short8_sat_rte(half8);
6057short8 __ovld __cnfn convert_short8_sat_rtp(half8);
6058short8 __ovld __cnfn convert_short8_sat_rtn(half8);
6059short8 __ovld __cnfn convert_short8_sat_rtz(half8);
6060short16 __ovld __cnfn convert_short16(half16);
6061short16 __ovld __cnfn convert_short16_rte(half16);
6062short16 __ovld __cnfn convert_short16_rtp(half16);
6063short16 __ovld __cnfn convert_short16_rtn(half16);
6064short16 __ovld __cnfn convert_short16_rtz(half16);
6065short16 __ovld __cnfn convert_short16_sat(half16);
6066short16 __ovld __cnfn convert_short16_sat_rte(half16);
6067short16 __ovld __cnfn convert_short16_sat_rtp(half16);
6068short16 __ovld __cnfn convert_short16_sat_rtn(half16);
6069short16 __ovld __cnfn convert_short16_sat_rtz(half16);
6070int __ovld __cnfn convert_int(half);
6071int __ovld __cnfn convert_int_rte(half);
6072int __ovld __cnfn convert_int_rtp(half);
6073int __ovld __cnfn convert_int_rtn(half);
6074int __ovld __cnfn convert_int_rtz(half);
6075int __ovld __cnfn convert_int_sat(half);
6076int __ovld __cnfn convert_int_sat_rte(half);
6077int __ovld __cnfn convert_int_sat_rtp(half);
6078int __ovld __cnfn convert_int_sat_rtn(half);
6079int __ovld __cnfn convert_int_sat_rtz(half);
6080int2 __ovld __cnfn convert_int2(half2);
6081int2 __ovld __cnfn convert_int2_rte(half2);
6082int2 __ovld __cnfn convert_int2_rtp(half2);
6083int2 __ovld __cnfn convert_int2_rtn(half2);
6084int2 __ovld __cnfn convert_int2_rtz(half2);
6085int2 __ovld __cnfn convert_int2_sat(half2);
6086int2 __ovld __cnfn convert_int2_sat_rte(half2);
6087int2 __ovld __cnfn convert_int2_sat_rtp(half2);
6088int2 __ovld __cnfn convert_int2_sat_rtn(half2);
6089int2 __ovld __cnfn convert_int2_sat_rtz(half2);
6090int3 __ovld __cnfn convert_int3(half3);
6091int3 __ovld __cnfn convert_int3_rte(half3);
6092int3 __ovld __cnfn convert_int3_rtp(half3);
6093int3 __ovld __cnfn convert_int3_rtn(half3);
6094int3 __ovld __cnfn convert_int3_rtz(half3);
6095int3 __ovld __cnfn convert_int3_sat(half3);
6096int3 __ovld __cnfn convert_int3_sat_rte(half3);
6097int3 __ovld __cnfn convert_int3_sat_rtp(half3);
6098int3 __ovld __cnfn convert_int3_sat_rtn(half3);
6099int3 __ovld __cnfn convert_int3_sat_rtz(half3);
6100int4 __ovld __cnfn convert_int4(half4);
6101int4 __ovld __cnfn convert_int4_rte(half4);
6102int4 __ovld __cnfn convert_int4_rtp(half4);
6103int4 __ovld __cnfn convert_int4_rtn(half4);
6104int4 __ovld __cnfn convert_int4_rtz(half4);
6105int4 __ovld __cnfn convert_int4_sat(half4);
6106int4 __ovld __cnfn convert_int4_sat_rte(half4);
6107int4 __ovld __cnfn convert_int4_sat_rtp(half4);
6108int4 __ovld __cnfn convert_int4_sat_rtn(half4);
6109int4 __ovld __cnfn convert_int4_sat_rtz(half4);
6110int8 __ovld __cnfn convert_int8(half8);
6111int8 __ovld __cnfn convert_int8_rte(half8);
6112int8 __ovld __cnfn convert_int8_rtp(half8);
6113int8 __ovld __cnfn convert_int8_rtn(half8);
6114int8 __ovld __cnfn convert_int8_rtz(half8);
6115int8 __ovld __cnfn convert_int8_sat(half8);
6116int8 __ovld __cnfn convert_int8_sat_rte(half8);
6117int8 __ovld __cnfn convert_int8_sat_rtp(half8);
6118int8 __ovld __cnfn convert_int8_sat_rtn(half8);
6119int8 __ovld __cnfn convert_int8_sat_rtz(half8);
6120int16 __ovld __cnfn convert_int16(half16);
6121int16 __ovld __cnfn convert_int16_rte(half16);
6122int16 __ovld __cnfn convert_int16_rtp(half16);
6123int16 __ovld __cnfn convert_int16_rtn(half16);
6124int16 __ovld __cnfn convert_int16_rtz(half16);
6125int16 __ovld __cnfn convert_int16_sat(half16);
6126int16 __ovld __cnfn convert_int16_sat_rte(half16);
6127int16 __ovld __cnfn convert_int16_sat_rtp(half16);
6128int16 __ovld __cnfn convert_int16_sat_rtn(half16);
6129int16 __ovld __cnfn convert_int16_sat_rtz(half16);
6130long __ovld __cnfn convert_long(half);
6131long __ovld __cnfn convert_long_rte(half);
6132long __ovld __cnfn convert_long_rtp(half);
6133long __ovld __cnfn convert_long_rtn(half);
6134long __ovld __cnfn convert_long_rtz(half);
6135long __ovld __cnfn convert_long_sat(half);
6136long __ovld __cnfn convert_long_sat_rte(half);
6137long __ovld __cnfn convert_long_sat_rtp(half);
6138long __ovld __cnfn convert_long_sat_rtn(half);
6139long __ovld __cnfn convert_long_sat_rtz(half);
6140long2 __ovld __cnfn convert_long2(half2);
6141long2 __ovld __cnfn convert_long2_rte(half2);
6142long2 __ovld __cnfn convert_long2_rtp(half2);
6143long2 __ovld __cnfn convert_long2_rtn(half2);
6144long2 __ovld __cnfn convert_long2_rtz(half2);
6145long2 __ovld __cnfn convert_long2_sat(half2);
6146long2 __ovld __cnfn convert_long2_sat_rte(half2);
6147long2 __ovld __cnfn convert_long2_sat_rtp(half2);
6148long2 __ovld __cnfn convert_long2_sat_rtn(half2);
6149long2 __ovld __cnfn convert_long2_sat_rtz(half2);
6150long3 __ovld __cnfn convert_long3(half3);
6151long3 __ovld __cnfn convert_long3_rte(half3);
6152long3 __ovld __cnfn convert_long3_rtp(half3);
6153long3 __ovld __cnfn convert_long3_rtn(half3);
6154long3 __ovld __cnfn convert_long3_rtz(half3);
6155long3 __ovld __cnfn convert_long3_sat(half3);
6156long3 __ovld __cnfn convert_long3_sat_rte(half3);
6157long3 __ovld __cnfn convert_long3_sat_rtp(half3);
6158long3 __ovld __cnfn convert_long3_sat_rtn(half3);
6159long3 __ovld __cnfn convert_long3_sat_rtz(half3);
6160long4 __ovld __cnfn convert_long4(half4);
6161long4 __ovld __cnfn convert_long4_rte(half4);
6162long4 __ovld __cnfn convert_long4_rtp(half4);
6163long4 __ovld __cnfn convert_long4_rtn(half4);
6164long4 __ovld __cnfn convert_long4_rtz(half4);
6165long4 __ovld __cnfn convert_long4_sat(half4);
6166long4 __ovld __cnfn convert_long4_sat_rte(half4);
6167long4 __ovld __cnfn convert_long4_sat_rtp(half4);
6168long4 __ovld __cnfn convert_long4_sat_rtn(half4);
6169long4 __ovld __cnfn convert_long4_sat_rtz(half4);
6170long8 __ovld __cnfn convert_long8(half8);
6171long8 __ovld __cnfn convert_long8_rte(half8);
6172long8 __ovld __cnfn convert_long8_rtp(half8);
6173long8 __ovld __cnfn convert_long8_rtn(half8);
6174long8 __ovld __cnfn convert_long8_rtz(half8);
6175long8 __ovld __cnfn convert_long8_sat(half8);
6176long8 __ovld __cnfn convert_long8_sat_rte(half8);
6177long8 __ovld __cnfn convert_long8_sat_rtp(half8);
6178long8 __ovld __cnfn convert_long8_sat_rtn(half8);
6179long8 __ovld __cnfn convert_long8_sat_rtz(half8);
6180long16 __ovld __cnfn convert_long16(half16);
6181long16 __ovld __cnfn convert_long16_rte(half16);
6182long16 __ovld __cnfn convert_long16_rtp(half16);
6183long16 __ovld __cnfn convert_long16_rtn(half16);
6184long16 __ovld __cnfn convert_long16_rtz(half16);
6185long16 __ovld __cnfn convert_long16_sat(half16);
6186long16 __ovld __cnfn convert_long16_sat_rte(half16);
6187long16 __ovld __cnfn convert_long16_sat_rtp(half16);
6188long16 __ovld __cnfn convert_long16_sat_rtn(half16);
6189long16 __ovld __cnfn convert_long16_sat_rtz(half16);
6190float __ovld __cnfn convert_float(half);
6191float __ovld __cnfn convert_float_rte(half);
6192float __ovld __cnfn convert_float_rtp(half);
6193float __ovld __cnfn convert_float_rtn(half);
6194float __ovld __cnfn convert_float_rtz(half);
6195float2 __ovld __cnfn convert_float2(half2);
6196float2 __ovld __cnfn convert_float2_rte(half2);
6197float2 __ovld __cnfn convert_float2_rtp(half2);
6198float2 __ovld __cnfn convert_float2_rtn(half2);
6199float2 __ovld __cnfn convert_float2_rtz(half2);
6200float3 __ovld __cnfn convert_float3(half3);
6201float3 __ovld __cnfn convert_float3_rte(half3);
6202float3 __ovld __cnfn convert_float3_rtp(half3);
6203float3 __ovld __cnfn convert_float3_rtn(half3);
6204float3 __ovld __cnfn convert_float3_rtz(half3);
6205float4 __ovld __cnfn convert_float4(half4);
6206float4 __ovld __cnfn convert_float4_rte(half4);
6207float4 __ovld __cnfn convert_float4_rtp(half4);
6208float4 __ovld __cnfn convert_float4_rtn(half4);
6209float4 __ovld __cnfn convert_float4_rtz(half4);
6210float8 __ovld __cnfn convert_float8(half8);
6211float8 __ovld __cnfn convert_float8_rte(half8);
6212float8 __ovld __cnfn convert_float8_rtp(half8);
6213float8 __ovld __cnfn convert_float8_rtn(half8);
6214float8 __ovld __cnfn convert_float8_rtz(half8);
6215float16 __ovld __cnfn convert_float16(half16);
6216float16 __ovld __cnfn convert_float16_rte(half16);
6217float16 __ovld __cnfn convert_float16_rtp(half16);
6218float16 __ovld __cnfn convert_float16_rtn(half16);
6219float16 __ovld __cnfn convert_float16_rtz(half16);
6220
6221// Convert non-double types to half types.
6222half __ovld __cnfn convert_half(uchar);
6223half __ovld __cnfn convert_half(ushort);
6224half __ovld __cnfn convert_half(uint);
6225half __ovld __cnfn convert_half(ulong);
6226half __ovld __cnfn convert_half(char);
6227half __ovld __cnfn convert_half(short);
6228half __ovld __cnfn convert_half(int);
6229half __ovld __cnfn convert_half(long);
6230half __ovld __cnfn convert_half(float);
6231half __ovld __cnfn convert_half(half);
6232half __ovld __cnfn convert_half_rte(uchar);
6233half __ovld __cnfn convert_half_rte(ushort);
6234half __ovld __cnfn convert_half_rte(uint);
6235half __ovld __cnfn convert_half_rte(ulong);
6236half __ovld __cnfn convert_half_rte(char);
6237half __ovld __cnfn convert_half_rte(short);
6238half __ovld __cnfn convert_half_rte(int);
6239half __ovld __cnfn convert_half_rte(long);
6240half __ovld __cnfn convert_half_rte(float);
6241half __ovld __cnfn convert_half_rte(half);
6242half __ovld __cnfn convert_half_rtp(uchar);
6243half __ovld __cnfn convert_half_rtp(ushort);
6244half __ovld __cnfn convert_half_rtp(uint);
6245half __ovld __cnfn convert_half_rtp(ulong);
6246half __ovld __cnfn convert_half_rtp(char);
6247half __ovld __cnfn convert_half_rtp(short);
6248half __ovld __cnfn convert_half_rtp(int);
6249half __ovld __cnfn convert_half_rtp(long);
6250half __ovld __cnfn convert_half_rtp(float);
6251half __ovld __cnfn convert_half_rtp(half);
6252half __ovld __cnfn convert_half_rtn(uchar);
6253half __ovld __cnfn convert_half_rtn(ushort);
6254half __ovld __cnfn convert_half_rtn(uint);
6255half __ovld __cnfn convert_half_rtn(ulong);
6256half __ovld __cnfn convert_half_rtn(char);
6257half __ovld __cnfn convert_half_rtn(short);
6258half __ovld __cnfn convert_half_rtn(int);
6259half __ovld __cnfn convert_half_rtn(long);
6260half __ovld __cnfn convert_half_rtn(float);
6261half __ovld __cnfn convert_half_rtn(half);
6262half __ovld __cnfn convert_half_rtz(uchar);
6263half __ovld __cnfn convert_half_rtz(ushort);
6264half __ovld __cnfn convert_half_rtz(uint);
6265half __ovld __cnfn convert_half_rtz(ulong);
6266half __ovld __cnfn convert_half_rtz(char);
6267half __ovld __cnfn convert_half_rtz(short);
6268half __ovld __cnfn convert_half_rtz(int);
6269half __ovld __cnfn convert_half_rtz(long);
6270half __ovld __cnfn convert_half_rtz(float);
6271half __ovld __cnfn convert_half_rtz(half);
6272half2 __ovld __cnfn convert_half2(char2);
6273half2 __ovld __cnfn convert_half2(uchar2);
6274half2 __ovld __cnfn convert_half2(short2);
6275half2 __ovld __cnfn convert_half2(ushort2);
6276half2 __ovld __cnfn convert_half2(int2);
6277half2 __ovld __cnfn convert_half2(uint2);
6278half2 __ovld __cnfn convert_half2(long2);
6279half2 __ovld __cnfn convert_half2(ulong2);
6280half2 __ovld __cnfn convert_half2(float2);
6281half2 __ovld __cnfn convert_half2(half2);
6282half2 __ovld __cnfn convert_half2_rte(char2);
6283half2 __ovld __cnfn convert_half2_rte(uchar2);
6284half2 __ovld __cnfn convert_half2_rte(short2);
6285half2 __ovld __cnfn convert_half2_rte(ushort2);
6286half2 __ovld __cnfn convert_half2_rte(int2);
6287half2 __ovld __cnfn convert_half2_rte(uint2);
6288half2 __ovld __cnfn convert_half2_rte(long2);
6289half2 __ovld __cnfn convert_half2_rte(ulong2);
6290half2 __ovld __cnfn convert_half2_rte(float2);
6291half2 __ovld __cnfn convert_half2_rte(half2);
6292half2 __ovld __cnfn convert_half2_rtp(char2);
6293half2 __ovld __cnfn convert_half2_rtp(uchar2);
6294half2 __ovld __cnfn convert_half2_rtp(short2);
6295half2 __ovld __cnfn convert_half2_rtp(ushort2);
6296half2 __ovld __cnfn convert_half2_rtp(int2);
6297half2 __ovld __cnfn convert_half2_rtp(uint2);
6298half2 __ovld __cnfn convert_half2_rtp(long2);
6299half2 __ovld __cnfn convert_half2_rtp(ulong2);
6300half2 __ovld __cnfn convert_half2_rtp(float2);
6301half2 __ovld __cnfn convert_half2_rtp(half2);
6302half2 __ovld __cnfn convert_half2_rtn(char2);
6303half2 __ovld __cnfn convert_half2_rtn(uchar2);
6304half2 __ovld __cnfn convert_half2_rtn(short2);
6305half2 __ovld __cnfn convert_half2_rtn(ushort2);
6306half2 __ovld __cnfn convert_half2_rtn(int2);
6307half2 __ovld __cnfn convert_half2_rtn(uint2);
6308half2 __ovld __cnfn convert_half2_rtn(long2);
6309half2 __ovld __cnfn convert_half2_rtn(ulong2);
6310half2 __ovld __cnfn convert_half2_rtn(float2);
6311half2 __ovld __cnfn convert_half2_rtn(half2);
6312half2 __ovld __cnfn convert_half2_rtz(char2);
6313half2 __ovld __cnfn convert_half2_rtz(uchar2);
6314half2 __ovld __cnfn convert_half2_rtz(short2);
6315half2 __ovld __cnfn convert_half2_rtz(ushort2);
6316half2 __ovld __cnfn convert_half2_rtz(int2);
6317half2 __ovld __cnfn convert_half2_rtz(uint2);
6318half2 __ovld __cnfn convert_half2_rtz(long2);
6319half2 __ovld __cnfn convert_half2_rtz(ulong2);
6320half2 __ovld __cnfn convert_half2_rtz(float2);
6321half2 __ovld __cnfn convert_half2_rtz(half2);
6322half3 __ovld __cnfn convert_half3(char3);
6323half3 __ovld __cnfn convert_half3(uchar3);
6324half3 __ovld __cnfn convert_half3(short3);
6325half3 __ovld __cnfn convert_half3(ushort3);
6326half3 __ovld __cnfn convert_half3(int3);
6327half3 __ovld __cnfn convert_half3(uint3);
6328half3 __ovld __cnfn convert_half3(long3);
6329half3 __ovld __cnfn convert_half3(ulong3);
6330half3 __ovld __cnfn convert_half3(float3);
6331half3 __ovld __cnfn convert_half3(half3);
6332half3 __ovld __cnfn convert_half3_rte(char3);
6333half3 __ovld __cnfn convert_half3_rte(uchar3);
6334half3 __ovld __cnfn convert_half3_rte(short3);
6335half3 __ovld __cnfn convert_half3_rte(ushort3);
6336half3 __ovld __cnfn convert_half3_rte(int3);
6337half3 __ovld __cnfn convert_half3_rte(uint3);
6338half3 __ovld __cnfn convert_half3_rte(long3);
6339half3 __ovld __cnfn convert_half3_rte(ulong3);
6340half3 __ovld __cnfn convert_half3_rte(float3);
6341half3 __ovld __cnfn convert_half3_rte(half3);
6342half3 __ovld __cnfn convert_half3_rtp(char3);
6343half3 __ovld __cnfn convert_half3_rtp(uchar3);
6344half3 __ovld __cnfn convert_half3_rtp(short3);
6345half3 __ovld __cnfn convert_half3_rtp(ushort3);
6346half3 __ovld __cnfn convert_half3_rtp(int3);
6347half3 __ovld __cnfn convert_half3_rtp(uint3);
6348half3 __ovld __cnfn convert_half3_rtp(long3);
6349half3 __ovld __cnfn convert_half3_rtp(ulong3);
6350half3 __ovld __cnfn convert_half3_rtp(float3);
6351half3 __ovld __cnfn convert_half3_rtp(half3);
6352half3 __ovld __cnfn convert_half3_rtn(char3);
6353half3 __ovld __cnfn convert_half3_rtn(uchar3);
6354half3 __ovld __cnfn convert_half3_rtn(short3);
6355half3 __ovld __cnfn convert_half3_rtn(ushort3);
6356half3 __ovld __cnfn convert_half3_rtn(int3);
6357half3 __ovld __cnfn convert_half3_rtn(uint3);
6358half3 __ovld __cnfn convert_half3_rtn(long3);
6359half3 __ovld __cnfn convert_half3_rtn(ulong3);
6360half3 __ovld __cnfn convert_half3_rtn(float3);
6361half3 __ovld __cnfn convert_half3_rtn(half3);
6362half3 __ovld __cnfn convert_half3_rtz(char3);
6363half3 __ovld __cnfn convert_half3_rtz(uchar3);
6364half3 __ovld __cnfn convert_half3_rtz(short3);
6365half3 __ovld __cnfn convert_half3_rtz(ushort3);
6366half3 __ovld __cnfn convert_half3_rtz(int3);
6367half3 __ovld __cnfn convert_half3_rtz(uint3);
6368half3 __ovld __cnfn convert_half3_rtz(long3);
6369half3 __ovld __cnfn convert_half3_rtz(ulong3);
6370half3 __ovld __cnfn convert_half3_rtz(float3);
6371half3 __ovld __cnfn convert_half3_rtz(half3);
6372half4 __ovld __cnfn convert_half4(char4);
6373half4 __ovld __cnfn convert_half4(uchar4);
6374half4 __ovld __cnfn convert_half4(short4);
6375half4 __ovld __cnfn convert_half4(ushort4);
6376half4 __ovld __cnfn convert_half4(int4);
6377half4 __ovld __cnfn convert_half4(uint4);
6378half4 __ovld __cnfn convert_half4(long4);
6379half4 __ovld __cnfn convert_half4(ulong4);
6380half4 __ovld __cnfn convert_half4(float4);
6381half4 __ovld __cnfn convert_half4(half4);
6382half4 __ovld __cnfn convert_half4_rte(char4);
6383half4 __ovld __cnfn convert_half4_rte(uchar4);
6384half4 __ovld __cnfn convert_half4_rte(short4);
6385half4 __ovld __cnfn convert_half4_rte(ushort4);
6386half4 __ovld __cnfn convert_half4_rte(int4);
6387half4 __ovld __cnfn convert_half4_rte(uint4);
6388half4 __ovld __cnfn convert_half4_rte(long4);
6389half4 __ovld __cnfn convert_half4_rte(ulong4);
6390half4 __ovld __cnfn convert_half4_rte(float4);
6391half4 __ovld __cnfn convert_half4_rte(half4);
6392half4 __ovld __cnfn convert_half4_rtp(char4);
6393half4 __ovld __cnfn convert_half4_rtp(uchar4);
6394half4 __ovld __cnfn convert_half4_rtp(short4);
6395half4 __ovld __cnfn convert_half4_rtp(ushort4);
6396half4 __ovld __cnfn convert_half4_rtp(int4);
6397half4 __ovld __cnfn convert_half4_rtp(uint4);
6398half4 __ovld __cnfn convert_half4_rtp(long4);
6399half4 __ovld __cnfn convert_half4_rtp(ulong4);
6400half4 __ovld __cnfn convert_half4_rtp(float4);
6401half4 __ovld __cnfn convert_half4_rtp(half4);
6402half4 __ovld __cnfn convert_half4_rtn(char4);
6403half4 __ovld __cnfn convert_half4_rtn(uchar4);
6404half4 __ovld __cnfn convert_half4_rtn(short4);
6405half4 __ovld __cnfn convert_half4_rtn(ushort4);
6406half4 __ovld __cnfn convert_half4_rtn(int4);
6407half4 __ovld __cnfn convert_half4_rtn(uint4);
6408half4 __ovld __cnfn convert_half4_rtn(long4);
6409half4 __ovld __cnfn convert_half4_rtn(ulong4);
6410half4 __ovld __cnfn convert_half4_rtn(float4);
6411half4 __ovld __cnfn convert_half4_rtn(half4);
6412half4 __ovld __cnfn convert_half4_rtz(char4);
6413half4 __ovld __cnfn convert_half4_rtz(uchar4);
6414half4 __ovld __cnfn convert_half4_rtz(short4);
6415half4 __ovld __cnfn convert_half4_rtz(ushort4);
6416half4 __ovld __cnfn convert_half4_rtz(int4);
6417half4 __ovld __cnfn convert_half4_rtz(uint4);
6418half4 __ovld __cnfn convert_half4_rtz(long4);
6419half4 __ovld __cnfn convert_half4_rtz(ulong4);
6420half4 __ovld __cnfn convert_half4_rtz(float4);
6421half4 __ovld __cnfn convert_half4_rtz(half4);
6422half8 __ovld __cnfn convert_half8(char8);
6423half8 __ovld __cnfn convert_half8(uchar8);
6424half8 __ovld __cnfn convert_half8(short8);
6425half8 __ovld __cnfn convert_half8(ushort8);
6426half8 __ovld __cnfn convert_half8(int8);
6427half8 __ovld __cnfn convert_half8(uint8);
6428half8 __ovld __cnfn convert_half8(long8);
6429half8 __ovld __cnfn convert_half8(ulong8);
6430half8 __ovld __cnfn convert_half8(float8);
6431half8 __ovld __cnfn convert_half8(half8);
6432half8 __ovld __cnfn convert_half8_rte(char8);
6433half8 __ovld __cnfn convert_half8_rte(uchar8);
6434half8 __ovld __cnfn convert_half8_rte(short8);
6435half8 __ovld __cnfn convert_half8_rte(ushort8);
6436half8 __ovld __cnfn convert_half8_rte(int8);
6437half8 __ovld __cnfn convert_half8_rte(uint8);
6438half8 __ovld __cnfn convert_half8_rte(long8);
6439half8 __ovld __cnfn convert_half8_rte(ulong8);
6440half8 __ovld __cnfn convert_half8_rte(float8);
6441half8 __ovld __cnfn convert_half8_rte(half8);
6442half8 __ovld __cnfn convert_half8_rtp(char8);
6443half8 __ovld __cnfn convert_half8_rtp(uchar8);
6444half8 __ovld __cnfn convert_half8_rtp(short8);
6445half8 __ovld __cnfn convert_half8_rtp(ushort8);
6446half8 __ovld __cnfn convert_half8_rtp(int8);
6447half8 __ovld __cnfn convert_half8_rtp(uint8);
6448half8 __ovld __cnfn convert_half8_rtp(long8);
6449half8 __ovld __cnfn convert_half8_rtp(ulong8);
6450half8 __ovld __cnfn convert_half8_rtp(float8);
6451half8 __ovld __cnfn convert_half8_rtp(half8);
6452half8 __ovld __cnfn convert_half8_rtn(char8);
6453half8 __ovld __cnfn convert_half8_rtn(uchar8);
6454half8 __ovld __cnfn convert_half8_rtn(short8);
6455half8 __ovld __cnfn convert_half8_rtn(ushort8);
6456half8 __ovld __cnfn convert_half8_rtn(int8);
6457half8 __ovld __cnfn convert_half8_rtn(uint8);
6458half8 __ovld __cnfn convert_half8_rtn(long8);
6459half8 __ovld __cnfn convert_half8_rtn(ulong8);
6460half8 __ovld __cnfn convert_half8_rtn(float8);
6461half8 __ovld __cnfn convert_half8_rtn(half8);
6462half8 __ovld __cnfn convert_half8_rtz(char8);
6463half8 __ovld __cnfn convert_half8_rtz(uchar8);
6464half8 __ovld __cnfn convert_half8_rtz(short8);
6465half8 __ovld __cnfn convert_half8_rtz(ushort8);
6466half8 __ovld __cnfn convert_half8_rtz(int8);
6467half8 __ovld __cnfn convert_half8_rtz(uint8);
6468half8 __ovld __cnfn convert_half8_rtz(long8);
6469half8 __ovld __cnfn convert_half8_rtz(ulong8);
6470half8 __ovld __cnfn convert_half8_rtz(float8);
6471half8 __ovld __cnfn convert_half8_rtz(half8);
6472half16 __ovld __cnfn convert_half16(char16);
6473half16 __ovld __cnfn convert_half16(uchar16);
6474half16 __ovld __cnfn convert_half16(short16);
6475half16 __ovld __cnfn convert_half16(ushort16);
6476half16 __ovld __cnfn convert_half16(int16);
6477half16 __ovld __cnfn convert_half16(uint16);
6478half16 __ovld __cnfn convert_half16(long16);
6479half16 __ovld __cnfn convert_half16(ulong16);
6480half16 __ovld __cnfn convert_half16(float16);
6481half16 __ovld __cnfn convert_half16(half16);
6482half16 __ovld __cnfn convert_half16_rte(char16);
6483half16 __ovld __cnfn convert_half16_rte(uchar16);
6484half16 __ovld __cnfn convert_half16_rte(short16);
6485half16 __ovld __cnfn convert_half16_rte(ushort16);
6486half16 __ovld __cnfn convert_half16_rte(int16);
6487half16 __ovld __cnfn convert_half16_rte(uint16);
6488half16 __ovld __cnfn convert_half16_rte(long16);
6489half16 __ovld __cnfn convert_half16_rte(ulong16);
6490half16 __ovld __cnfn convert_half16_rte(float16);
6491half16 __ovld __cnfn convert_half16_rte(half16);
6492half16 __ovld __cnfn convert_half16_rtp(char16);
6493half16 __ovld __cnfn convert_half16_rtp(uchar16);
6494half16 __ovld __cnfn convert_half16_rtp(short16);
6495half16 __ovld __cnfn convert_half16_rtp(ushort16);
6496half16 __ovld __cnfn convert_half16_rtp(int16);
6497half16 __ovld __cnfn convert_half16_rtp(uint16);
6498half16 __ovld __cnfn convert_half16_rtp(long16);
6499half16 __ovld __cnfn convert_half16_rtp(ulong16);
6500half16 __ovld __cnfn convert_half16_rtp(float16);
6501half16 __ovld __cnfn convert_half16_rtp(half16);
6502half16 __ovld __cnfn convert_half16_rtn(char16);
6503half16 __ovld __cnfn convert_half16_rtn(uchar16);
6504half16 __ovld __cnfn convert_half16_rtn(short16);
6505half16 __ovld __cnfn convert_half16_rtn(ushort16);
6506half16 __ovld __cnfn convert_half16_rtn(int16);
6507half16 __ovld __cnfn convert_half16_rtn(uint16);
6508half16 __ovld __cnfn convert_half16_rtn(long16);
6509half16 __ovld __cnfn convert_half16_rtn(ulong16);
6510half16 __ovld __cnfn convert_half16_rtn(float16);
6511half16 __ovld __cnfn convert_half16_rtn(half16);
6512half16 __ovld __cnfn convert_half16_rtz(char16);
6513half16 __ovld __cnfn convert_half16_rtz(uchar16);
6514half16 __ovld __cnfn convert_half16_rtz(short16);
6515half16 __ovld __cnfn convert_half16_rtz(ushort16);
6516half16 __ovld __cnfn convert_half16_rtz(int16);
6517half16 __ovld __cnfn convert_half16_rtz(uint16);
6518half16 __ovld __cnfn convert_half16_rtz(long16);
6519half16 __ovld __cnfn convert_half16_rtz(ulong16);
6520half16 __ovld __cnfn convert_half16_rtz(float16);
6521half16 __ovld __cnfn convert_half16_rtz(half16);
6522
6523// Convert half types to double types.
6524#ifdef cl_khr_fp64
6525double __ovld __cnfn convert_double(half);
6526double __ovld __cnfn convert_double_rte(half);
6527double __ovld __cnfn convert_double_rtp(half);
6528double __ovld __cnfn convert_double_rtn(half);
6529double __ovld __cnfn convert_double_rtz(half);
6530double2 __ovld __cnfn convert_double2(half2);
6531double2 __ovld __cnfn convert_double2_rte(half2);
6532double2 __ovld __cnfn convert_double2_rtp(half2);
6533double2 __ovld __cnfn convert_double2_rtn(half2);
6534double2 __ovld __cnfn convert_double2_rtz(half2);
6535double3 __ovld __cnfn convert_double3(half3);
6536double3 __ovld __cnfn convert_double3_rte(half3);
6537double3 __ovld __cnfn convert_double3_rtp(half3);
6538double3 __ovld __cnfn convert_double3_rtn(half3);
6539double3 __ovld __cnfn convert_double3_rtz(half3);
6540double4 __ovld __cnfn convert_double4(half4);
6541double4 __ovld __cnfn convert_double4_rte(half4);
6542double4 __ovld __cnfn convert_double4_rtp(half4);
6543double4 __ovld __cnfn convert_double4_rtn(half4);
6544double4 __ovld __cnfn convert_double4_rtz(half4);
6545double8 __ovld __cnfn convert_double8(half8);
6546double8 __ovld __cnfn convert_double8_rte(half8);
6547double8 __ovld __cnfn convert_double8_rtp(half8);
6548double8 __ovld __cnfn convert_double8_rtn(half8);
6549double8 __ovld __cnfn convert_double8_rtz(half8);
6550double16 __ovld __cnfn convert_double16(half16);
6551double16 __ovld __cnfn convert_double16_rte(half16);
6552double16 __ovld __cnfn convert_double16_rtp(half16);
6553double16 __ovld __cnfn convert_double16_rtn(half16);
6554double16 __ovld __cnfn convert_double16_rtz(half16);
6555
6556// Convert double types to half types.
6557half __ovld __cnfn convert_half(double);
6558half __ovld __cnfn convert_half_rte(double);
6559half __ovld __cnfn convert_half_rtp(double);
6560half __ovld __cnfn convert_half_rtn(double);
6561half __ovld __cnfn convert_half_rtz(double);
6562half2 __ovld __cnfn convert_half2(double2);
6563half2 __ovld __cnfn convert_half2_rte(double2);
6564half2 __ovld __cnfn convert_half2_rtp(double2);
6565half2 __ovld __cnfn convert_half2_rtn(double2);
6566half2 __ovld __cnfn convert_half2_rtz(double2);
6567half3 __ovld __cnfn convert_half3(double3);
6568half3 __ovld __cnfn convert_half3_rte(double3);
6569half3 __ovld __cnfn convert_half3_rtp(double3);
6570half3 __ovld __cnfn convert_half3_rtn(double3);
6571half3 __ovld __cnfn convert_half3_rtz(double3);
6572half4 __ovld __cnfn convert_half4(double4);
6573half4 __ovld __cnfn convert_half4_rte(double4);
6574half4 __ovld __cnfn convert_half4_rtp(double4);
6575half4 __ovld __cnfn convert_half4_rtn(double4);
6576half4 __ovld __cnfn convert_half4_rtz(double4);
6577half8 __ovld __cnfn convert_half8(double8);
6578half8 __ovld __cnfn convert_half8_rte(double8);
6579half8 __ovld __cnfn convert_half8_rtp(double8);
6580half8 __ovld __cnfn convert_half8_rtn(double8);
6581half8 __ovld __cnfn convert_half8_rtz(double8);
6582half16 __ovld __cnfn convert_half16(double16);
6583half16 __ovld __cnfn convert_half16_rte(double16);
6584half16 __ovld __cnfn convert_half16_rtp(double16);
6585half16 __ovld __cnfn convert_half16_rtn(double16);
6586half16 __ovld __cnfn convert_half16_rtz(double16);
6587#endif //cl_khr_fp64
6588
6589#endif // cl_khr_fp16
6590
6591/**
6592 * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
6593 * Reinterprets a data type as another data type of the same size
6594 */
6595#define as_char(x) __builtin_astype((x),   char)
6596#define as_char2(x) __builtin_astype((x),  char2)
6597#define as_char3(x) __builtin_astype((x),  char3)
6598#define as_char4(x) __builtin_astype((x),  char4)
6599#define as_char8(x) __builtin_astype((x),  char8)
6600#define as_char16(x) __builtin_astype((x), char16)
6601
6602#define as_uchar(x) __builtin_astype((x),   uchar)
6603#define as_uchar2(x) __builtin_astype((x),  uchar2)
6604#define as_uchar3(x) __builtin_astype((x),  uchar3)
6605#define as_uchar4(x) __builtin_astype((x),  uchar4)
6606#define as_uchar8(x) __builtin_astype((x),  uchar8)
6607#define as_uchar16(x) __builtin_astype((x), uchar16)
6608
6609#define as_short(x) __builtin_astype((x),   short)
6610#define as_short2(x) __builtin_astype((x),  short2)
6611#define as_short3(x) __builtin_astype((x),  short3)
6612#define as_short4(x) __builtin_astype((x),  short4)
6613#define as_short8(x) __builtin_astype((x),  short8)
6614#define as_short16(x) __builtin_astype((x), short16)
6615
6616#define as_ushort(x) __builtin_astype((x),   ushort)
6617#define as_ushort2(x) __builtin_astype((x),  ushort2)
6618#define as_ushort3(x) __builtin_astype((x),  ushort3)
6619#define as_ushort4(x) __builtin_astype((x),  ushort4)
6620#define as_ushort8(x) __builtin_astype((x),  ushort8)
6621#define as_ushort16(x) __builtin_astype((x), ushort16)
6622
6623#define as_int(x) __builtin_astype((x),   int)
6624#define as_int2(x) __builtin_astype((x),  int2)
6625#define as_int3(x) __builtin_astype((x),  int3)
6626#define as_int4(x) __builtin_astype((x),  int4)
6627#define as_int8(x) __builtin_astype((x),  int8)
6628#define as_int16(x) __builtin_astype((x), int16)
6629
6630#define as_uint(x) __builtin_astype((x),   uint)
6631#define as_uint2(x) __builtin_astype((x),  uint2)
6632#define as_uint3(x) __builtin_astype((x),  uint3)
6633#define as_uint4(x) __builtin_astype((x),  uint4)
6634#define as_uint8(x) __builtin_astype((x),  uint8)
6635#define as_uint16(x) __builtin_astype((x), uint16)
6636
6637#define as_long(x) __builtin_astype((x),   long)
6638#define as_long2(x) __builtin_astype((x),  long2)
6639#define as_long3(x) __builtin_astype((x),  long3)
6640#define as_long4(x) __builtin_astype((x),  long4)
6641#define as_long8(x) __builtin_astype((x),  long8)
6642#define as_long16(x) __builtin_astype((x), long16)
6643
6644#define as_ulong(x) __builtin_astype((x),   ulong)
6645#define as_ulong2(x) __builtin_astype((x),  ulong2)
6646#define as_ulong3(x) __builtin_astype((x),  ulong3)
6647#define as_ulong4(x) __builtin_astype((x),  ulong4)
6648#define as_ulong8(x) __builtin_astype((x),  ulong8)
6649#define as_ulong16(x) __builtin_astype((x), ulong16)
6650
6651#define as_float(x) __builtin_astype((x),   float)
6652#define as_float2(x) __builtin_astype((x),  float2)
6653#define as_float3(x) __builtin_astype((x),  float3)
6654#define as_float4(x) __builtin_astype((x),  float4)
6655#define as_float8(x) __builtin_astype((x),  float8)
6656#define as_float16(x) __builtin_astype((x), float16)
6657
6658#ifdef cl_khr_fp64
6659#define as_double(x) __builtin_astype((x),   double)
6660#define as_double2(x) __builtin_astype((x),  double2)
6661#define as_double3(x) __builtin_astype((x),  double3)
6662#define as_double4(x) __builtin_astype((x),  double4)
6663#define as_double8(x) __builtin_astype((x),  double8)
6664#define as_double16(x) __builtin_astype((x), double16)
6665#endif //cl_khr_fp64
6666
6667#ifdef cl_khr_fp16
6668#define as_half(x) __builtin_astype((x),   half)
6669#define as_half2(x) __builtin_astype((x),  half2)
6670#define as_half3(x) __builtin_astype((x),  half3)
6671#define as_half4(x) __builtin_astype((x),  half4)
6672#define as_half8(x) __builtin_astype((x),  half8)
6673#define as_half16(x) __builtin_astype((x), half16)
6674#endif //cl_khr_fp16
6675
6676// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
6677
6678#define __kernel_exec(X, typen) __kernel \
6679	__attribute__((work_group_size_hint(X, 1, 1))) \
6680	__attribute__((vec_type_hint(typen)))
6681
6682#define kernel_exec(X, typen) __kernel \
6683	__attribute__((work_group_size_hint(X, 1, 1))) \
6684	__attribute__((vec_type_hint(typen)))
6685
6686// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6687
6688/**
6689 * Returns the number of dimensions in use. This is the
6690 * value given to the work_dim argument specified in
6691 * clEnqueueNDRangeKernel.
6692 * For clEnqueueTask, this returns 1.
6693 */
6694uint __ovld __cnfn get_work_dim(void);
6695
6696/**
6697 * Returns the number of global work-items specified for
6698 * dimension identified by dimindx. This value is given by
6699 * the global_work_size argument to
6700 * clEnqueueNDRangeKernel. Valid values of dimindx
6701 * are 0 to get_work_dim() - 1. For other values of
6702 * dimindx, get_global_size() returns 1.
6703 * For clEnqueueTask, this always returns 1.
6704 */
6705size_t __ovld __cnfn get_global_size(uint dimindx);
6706
6707/**
6708 * Returns the unique global work-item ID value for
6709 * dimension identified by dimindx. The global work-item
6710 * ID specifies the work-item ID based on the number of
6711 * global work-items specified to execute the kernel. Valid
6712 * values of dimindx are 0 to get_work_dim() - 1. For
6713 * other values of dimindx, get_global_id() returns 0.
6714 * For clEnqueueTask, this returns 0.
6715 */
6716size_t __ovld __cnfn get_global_id(uint dimindx);
6717
6718/**
6719 * Returns the number of local work-items specified in
6720 * dimension identified by dimindx. This value is given by
6721 * the local_work_size argument to
6722 * clEnqueueNDRangeKernel if local_work_size is not
6723 * NULL; otherwise the OpenCL implementation chooses
6724 * an appropriate local_work_size value which is returned
6725 * by this function. Valid values of dimindx are 0 to
6726 * get_work_dim() - 1. For other values of dimindx,
6727 * get_local_size() returns 1.
6728 * For clEnqueueTask, this always returns 1.
6729 */
6730size_t __ovld __cnfn get_local_size(uint dimindx);
6731
6732/**
6733 * Returns the unique local work-item ID i.e. a work-item
6734 * within a specific work-group for dimension identified by
6735 * dimindx. Valid values of dimindx are 0 to
6736 * get_work_dim() - 1. For other values of dimindx,
6737 * get_local_id() returns 0.
6738 * For clEnqueueTask, this returns 0.
6739 */
6740size_t __ovld __cnfn get_local_id(uint dimindx);
6741
6742/**
6743 * Returns the number of work-groups that will execute a
6744 * kernel for dimension identified by dimindx.
6745 * Valid values of dimindx are 0 to get_work_dim() - 1.
6746 * For other values of dimindx, get_num_groups () returns
6747 * 1.
6748 * For clEnqueueTask, this always returns 1.
6749 */
6750size_t __ovld __cnfn get_num_groups(uint dimindx);
6751
6752/**
6753 * get_group_id returns the work-group ID which is a
6754 * number from 0 .. get_num_groups(dimindx) - 1.
6755 * Valid values of dimindx are 0 to get_work_dim() - 1.
6756 * For other values, get_group_id() returns 0.
6757 * For clEnqueueTask, this returns 0.
6758 */
6759size_t __ovld __cnfn get_group_id(uint dimindx);
6760
6761/**
6762 * get_global_offset returns the offset values specified in
6763 * global_work_offset argument to
6764 * clEnqueueNDRangeKernel.
6765 * Valid values of dimindx are 0 to get_work_dim() - 1.
6766 * For other values, get_global_offset() returns 0.
6767 * For clEnqueueTask, this returns 0.
6768 */
6769size_t __ovld __cnfn get_global_offset(uint dimindx);
6770
6771#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
6772size_t __ovld get_enqueued_local_size(uint dimindx);
6773size_t __ovld get_global_linear_id(void);
6774size_t __ovld get_local_linear_id(void);
6775#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
6776
6777// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
6778
6779/**
6780 * Arc cosine function.
6781 */
6782float __ovld __cnfn acos(float);
6783float2 __ovld __cnfn acos(float2);
6784float3 __ovld __cnfn acos(float3);
6785float4 __ovld __cnfn acos(float4);
6786float8 __ovld __cnfn acos(float8);
6787float16 __ovld __cnfn acos(float16);
6788#ifdef cl_khr_fp64
6789double __ovld __cnfn acos(double);
6790double2 __ovld __cnfn acos(double2);
6791double3 __ovld __cnfn acos(double3);
6792double4 __ovld __cnfn acos(double4);
6793double8 __ovld __cnfn acos(double8);
6794double16 __ovld __cnfn acos(double16);
6795#endif //cl_khr_fp64
6796#ifdef cl_khr_fp16
6797half __ovld __cnfn acos(half);
6798half2 __ovld __cnfn acos(half2);
6799half3 __ovld __cnfn acos(half3);
6800half4 __ovld __cnfn acos(half4);
6801half8 __ovld __cnfn acos(half8);
6802half16 __ovld __cnfn acos(half16);
6803#endif //cl_khr_fp16
6804
6805/**
6806 * Inverse hyperbolic cosine.
6807 */
6808float __ovld __cnfn acosh(float);
6809float2 __ovld __cnfn acosh(float2);
6810float3 __ovld __cnfn acosh(float3);
6811float4 __ovld __cnfn acosh(float4);
6812float8 __ovld __cnfn acosh(float8);
6813float16 __ovld __cnfn acosh(float16);
6814#ifdef cl_khr_fp64
6815double __ovld __cnfn acosh(double);
6816double2 __ovld __cnfn acosh(double2);
6817double3 __ovld __cnfn acosh(double3);
6818double4 __ovld __cnfn acosh(double4);
6819double8 __ovld __cnfn acosh(double8);
6820double16 __ovld __cnfn acosh(double16);
6821#endif //cl_khr_fp64
6822#ifdef cl_khr_fp16
6823half __ovld __cnfn acosh(half);
6824half2 __ovld __cnfn acosh(half2);
6825half3 __ovld __cnfn acosh(half3);
6826half4 __ovld __cnfn acosh(half4);
6827half8 __ovld __cnfn acosh(half8);
6828half16 __ovld __cnfn acosh(half16);
6829#endif //cl_khr_fp16
6830
6831/**
6832 * Compute acos (x) / PI.
6833 */
6834float __ovld __cnfn acospi(float x);
6835float2 __ovld __cnfn acospi(float2 x);
6836float3 __ovld __cnfn acospi(float3 x);
6837float4 __ovld __cnfn acospi(float4 x);
6838float8 __ovld __cnfn acospi(float8 x);
6839float16 __ovld __cnfn acospi(float16 x);
6840#ifdef cl_khr_fp64
6841double __ovld __cnfn acospi(double x);
6842double2 __ovld __cnfn acospi(double2 x);
6843double3 __ovld __cnfn acospi(double3 x);
6844double4 __ovld __cnfn acospi(double4 x);
6845double8 __ovld __cnfn acospi(double8 x);
6846double16 __ovld __cnfn acospi(double16 x);
6847#endif //cl_khr_fp64
6848#ifdef cl_khr_fp16
6849half __ovld __cnfn acospi(half x);
6850half2 __ovld __cnfn acospi(half2 x);
6851half3 __ovld __cnfn acospi(half3 x);
6852half4 __ovld __cnfn acospi(half4 x);
6853half8 __ovld __cnfn acospi(half8 x);
6854half16 __ovld __cnfn acospi(half16 x);
6855#endif //cl_khr_fp16
6856
6857/**
6858 * Arc sine function.
6859 */
6860float __ovld __cnfn asin(float);
6861float2 __ovld __cnfn asin(float2);
6862float3 __ovld __cnfn asin(float3);
6863float4 __ovld __cnfn asin(float4);
6864float8 __ovld __cnfn asin(float8);
6865float16 __ovld __cnfn asin(float16);
6866#ifdef cl_khr_fp64
6867double __ovld __cnfn asin(double);
6868double2 __ovld __cnfn asin(double2);
6869double3 __ovld __cnfn asin(double3);
6870double4 __ovld __cnfn asin(double4);
6871double8 __ovld __cnfn asin(double8);
6872double16 __ovld __cnfn asin(double16);
6873#endif //cl_khr_fp64
6874#ifdef cl_khr_fp16
6875half __ovld __cnfn asin(half);
6876half2 __ovld __cnfn asin(half2);
6877half3 __ovld __cnfn asin(half3);
6878half4 __ovld __cnfn asin(half4);
6879half8 __ovld __cnfn asin(half8);
6880half16 __ovld __cnfn asin(half16);
6881#endif //cl_khr_fp16
6882
6883/**
6884 * Inverse hyperbolic sine.
6885 */
6886float __ovld __cnfn asinh(float);
6887float2 __ovld __cnfn asinh(float2);
6888float3 __ovld __cnfn asinh(float3);
6889float4 __ovld __cnfn asinh(float4);
6890float8 __ovld __cnfn asinh(float8);
6891float16 __ovld __cnfn asinh(float16);
6892#ifdef cl_khr_fp64
6893double __ovld __cnfn asinh(double);
6894double2 __ovld __cnfn asinh(double2);
6895double3 __ovld __cnfn asinh(double3);
6896double4 __ovld __cnfn asinh(double4);
6897double8 __ovld __cnfn asinh(double8);
6898double16 __ovld __cnfn asinh(double16);
6899#endif //cl_khr_fp64
6900#ifdef cl_khr_fp16
6901half __ovld __cnfn asinh(half);
6902half2 __ovld __cnfn asinh(half2);
6903half3 __ovld __cnfn asinh(half3);
6904half4 __ovld __cnfn asinh(half4);
6905half8 __ovld __cnfn asinh(half8);
6906half16 __ovld __cnfn asinh(half16);
6907#endif //cl_khr_fp16
6908
6909/**
6910 * Compute asin (x) / PI.
6911 */
6912float __ovld __cnfn asinpi(float x);
6913float2 __ovld __cnfn asinpi(float2 x);
6914float3 __ovld __cnfn asinpi(float3 x);
6915float4 __ovld __cnfn asinpi(float4 x);
6916float8 __ovld __cnfn asinpi(float8 x);
6917float16 __ovld __cnfn asinpi(float16 x);
6918#ifdef cl_khr_fp64
6919double __ovld __cnfn asinpi(double x);
6920double2 __ovld __cnfn asinpi(double2 x);
6921double3 __ovld __cnfn asinpi(double3 x);
6922double4 __ovld __cnfn asinpi(double4 x);
6923double8 __ovld __cnfn asinpi(double8 x);
6924double16 __ovld __cnfn asinpi(double16 x);
6925#endif //cl_khr_fp64
6926#ifdef cl_khr_fp16
6927half __ovld __cnfn asinpi(half x);
6928half2 __ovld __cnfn asinpi(half2 x);
6929half3 __ovld __cnfn asinpi(half3 x);
6930half4 __ovld __cnfn asinpi(half4 x);
6931half8 __ovld __cnfn asinpi(half8 x);
6932half16 __ovld __cnfn asinpi(half16 x);
6933#endif //cl_khr_fp16
6934
6935/**
6936 * Arc tangent function.
6937 */
6938float __ovld __cnfn atan(float y_over_x);
6939float2 __ovld __cnfn atan(float2 y_over_x);
6940float3 __ovld __cnfn atan(float3 y_over_x);
6941float4 __ovld __cnfn atan(float4 y_over_x);
6942float8 __ovld __cnfn atan(float8 y_over_x);
6943float16 __ovld __cnfn atan(float16 y_over_x);
6944#ifdef cl_khr_fp64
6945double __ovld __cnfn atan(double y_over_x);
6946double2 __ovld __cnfn atan(double2 y_over_x);
6947double3 __ovld __cnfn atan(double3 y_over_x);
6948double4 __ovld __cnfn atan(double4 y_over_x);
6949double8 __ovld __cnfn atan(double8 y_over_x);
6950double16 __ovld __cnfn atan(double16 y_over_x);
6951#endif //cl_khr_fp64
6952#ifdef cl_khr_fp16
6953half __ovld __cnfn atan(half y_over_x);
6954half2 __ovld __cnfn atan(half2 y_over_x);
6955half3 __ovld __cnfn atan(half3 y_over_x);
6956half4 __ovld __cnfn atan(half4 y_over_x);
6957half8 __ovld __cnfn atan(half8 y_over_x);
6958half16 __ovld __cnfn atan(half16 y_over_x);
6959#endif //cl_khr_fp16
6960
6961/**
6962 * Arc tangent of y / x.
6963 */
6964float __ovld __cnfn atan2(float y, float x);
6965float2 __ovld __cnfn atan2(float2 y, float2 x);
6966float3 __ovld __cnfn atan2(float3 y, float3 x);
6967float4 __ovld __cnfn atan2(float4 y, float4 x);
6968float8 __ovld __cnfn atan2(float8 y, float8 x);
6969float16 __ovld __cnfn atan2(float16 y, float16 x);
6970#ifdef cl_khr_fp64
6971double __ovld __cnfn atan2(double y, double x);
6972double2 __ovld __cnfn atan2(double2 y, double2 x);
6973double3 __ovld __cnfn atan2(double3 y, double3 x);
6974double4 __ovld __cnfn atan2(double4 y, double4 x);
6975double8 __ovld __cnfn atan2(double8 y, double8 x);
6976double16 __ovld __cnfn atan2(double16 y, double16 x);
6977#endif //cl_khr_fp64
6978#ifdef cl_khr_fp16
6979half __ovld __cnfn atan2(half y, half x);
6980half2 __ovld __cnfn atan2(half2 y, half2 x);
6981half3 __ovld __cnfn atan2(half3 y, half3 x);
6982half4 __ovld __cnfn atan2(half4 y, half4 x);
6983half8 __ovld __cnfn atan2(half8 y, half8 x);
6984half16 __ovld __cnfn atan2(half16 y, half16 x);
6985#endif //cl_khr_fp16
6986
6987/**
6988 * Hyperbolic arc tangent.
6989 */
6990float __ovld __cnfn atanh(float);
6991float2 __ovld __cnfn atanh(float2);
6992float3 __ovld __cnfn atanh(float3);
6993float4 __ovld __cnfn atanh(float4);
6994float8 __ovld __cnfn atanh(float8);
6995float16 __ovld __cnfn atanh(float16);
6996#ifdef cl_khr_fp64
6997double __ovld __cnfn atanh(double);
6998double2 __ovld __cnfn atanh(double2);
6999double3 __ovld __cnfn atanh(double3);
7000double4 __ovld __cnfn atanh(double4);
7001double8 __ovld __cnfn atanh(double8);
7002double16 __ovld __cnfn atanh(double16);
7003#endif //cl_khr_fp64
7004#ifdef cl_khr_fp16
7005half __ovld __cnfn atanh(half);
7006half2 __ovld __cnfn atanh(half2);
7007half3 __ovld __cnfn atanh(half3);
7008half4 __ovld __cnfn atanh(half4);
7009half8 __ovld __cnfn atanh(half8);
7010half16 __ovld __cnfn atanh(half16);
7011#endif //cl_khr_fp16
7012
7013/**
7014 * Compute atan (x) / PI.
7015 */
7016float __ovld __cnfn atanpi(float x);
7017float2 __ovld __cnfn atanpi(float2 x);
7018float3 __ovld __cnfn atanpi(float3 x);
7019float4 __ovld __cnfn atanpi(float4 x);
7020float8 __ovld __cnfn atanpi(float8 x);
7021float16 __ovld __cnfn atanpi(float16 x);
7022#ifdef cl_khr_fp64
7023double __ovld __cnfn atanpi(double x);
7024double2 __ovld __cnfn atanpi(double2 x);
7025double3 __ovld __cnfn atanpi(double3 x);
7026double4 __ovld __cnfn atanpi(double4 x);
7027double8 __ovld __cnfn atanpi(double8 x);
7028double16 __ovld __cnfn atanpi(double16 x);
7029#endif //cl_khr_fp64
7030#ifdef cl_khr_fp16
7031half __ovld __cnfn atanpi(half x);
7032half2 __ovld __cnfn atanpi(half2 x);
7033half3 __ovld __cnfn atanpi(half3 x);
7034half4 __ovld __cnfn atanpi(half4 x);
7035half8 __ovld __cnfn atanpi(half8 x);
7036half16 __ovld __cnfn atanpi(half16 x);
7037#endif //cl_khr_fp16
7038
7039/**
7040 * Compute atan2 (y, x) / PI.
7041 */
7042float __ovld __cnfn atan2pi(float y, float x);
7043float2 __ovld __cnfn atan2pi(float2 y, float2 x);
7044float3 __ovld __cnfn atan2pi(float3 y, float3 x);
7045float4 __ovld __cnfn atan2pi(float4 y, float4 x);
7046float8 __ovld __cnfn atan2pi(float8 y, float8 x);
7047float16 __ovld __cnfn atan2pi(float16 y, float16 x);
7048#ifdef cl_khr_fp64
7049double __ovld __cnfn atan2pi(double y, double x);
7050double2 __ovld __cnfn atan2pi(double2 y, double2 x);
7051double3 __ovld __cnfn atan2pi(double3 y, double3 x);
7052double4 __ovld __cnfn atan2pi(double4 y, double4 x);
7053double8 __ovld __cnfn atan2pi(double8 y, double8 x);
7054double16 __ovld __cnfn atan2pi(double16 y, double16 x);
7055#endif //cl_khr_fp64
7056#ifdef cl_khr_fp16
7057half __ovld __cnfn atan2pi(half y, half x);
7058half2 __ovld __cnfn atan2pi(half2 y, half2 x);
7059half3 __ovld __cnfn atan2pi(half3 y, half3 x);
7060half4 __ovld __cnfn atan2pi(half4 y, half4 x);
7061half8 __ovld __cnfn atan2pi(half8 y, half8 x);
7062half16 __ovld __cnfn atan2pi(half16 y, half16 x);
7063#endif //cl_khr_fp16
7064
7065/**
7066 * Compute cube-root.
7067 */
7068float __ovld __cnfn cbrt(float);
7069float2 __ovld __cnfn cbrt(float2);
7070float3 __ovld __cnfn cbrt(float3);
7071float4 __ovld __cnfn cbrt(float4);
7072float8 __ovld __cnfn cbrt(float8);
7073float16 __ovld __cnfn cbrt(float16);
7074#ifdef cl_khr_fp64
7075double __ovld __cnfn cbrt(double);
7076double2 __ovld __cnfn cbrt(double2);
7077double3 __ovld __cnfn cbrt(double3);
7078double4 __ovld __cnfn cbrt(double4);
7079double8 __ovld __cnfn cbrt(double8);
7080double16 __ovld __cnfn cbrt(double16);
7081#endif //cl_khr_fp64
7082#ifdef cl_khr_fp16
7083half __ovld __cnfn cbrt(half);
7084half2 __ovld __cnfn cbrt(half2);
7085half3 __ovld __cnfn cbrt(half3);
7086half4 __ovld __cnfn cbrt(half4);
7087half8 __ovld __cnfn cbrt(half8);
7088half16 __ovld __cnfn cbrt(half16);
7089#endif //cl_khr_fp16
7090
7091/**
7092 * Round to integral value using the round to positive
7093 * infinity rounding mode.
7094 */
7095float __ovld __cnfn ceil(float);
7096float2 __ovld __cnfn ceil(float2);
7097float3 __ovld __cnfn ceil(float3);
7098float4 __ovld __cnfn ceil(float4);
7099float8 __ovld __cnfn ceil(float8);
7100float16 __ovld __cnfn ceil(float16);
7101#ifdef cl_khr_fp64
7102double __ovld __cnfn ceil(double);
7103double2 __ovld __cnfn ceil(double2);
7104double3 __ovld __cnfn ceil(double3);
7105double4 __ovld __cnfn ceil(double4);
7106double8 __ovld __cnfn ceil(double8);
7107double16 __ovld __cnfn ceil(double16);
7108#endif //cl_khr_fp64
7109#ifdef cl_khr_fp16
7110half __ovld __cnfn ceil(half);
7111half2 __ovld __cnfn ceil(half2);
7112half3 __ovld __cnfn ceil(half3);
7113half4 __ovld __cnfn ceil(half4);
7114half8 __ovld __cnfn ceil(half8);
7115half16 __ovld __cnfn ceil(half16);
7116#endif //cl_khr_fp16
7117
7118/**
7119 * Returns x with its sign changed to match the sign of y.
7120 */
7121float __ovld __cnfn copysign(float x, float y);
7122float2 __ovld __cnfn copysign(float2 x, float2 y);
7123float3 __ovld __cnfn copysign(float3 x, float3 y);
7124float4 __ovld __cnfn copysign(float4 x, float4 y);
7125float8 __ovld __cnfn copysign(float8 x, float8 y);
7126float16 __ovld __cnfn copysign(float16 x, float16 y);
7127#ifdef cl_khr_fp64
7128double __ovld __cnfn copysign(double x, double y);
7129double2 __ovld __cnfn copysign(double2 x, double2 y);
7130double3 __ovld __cnfn copysign(double3 x, double3 y);
7131double4 __ovld __cnfn copysign(double4 x, double4 y);
7132double8 __ovld __cnfn copysign(double8 x, double8 y);
7133double16 __ovld __cnfn copysign(double16 x, double16 y);
7134#endif //cl_khr_fp64
7135#ifdef cl_khr_fp16
7136half __ovld __cnfn copysign(half x, half y);
7137half2 __ovld __cnfn copysign(half2 x, half2 y);
7138half3 __ovld __cnfn copysign(half3 x, half3 y);
7139half4 __ovld __cnfn copysign(half4 x, half4 y);
7140half8 __ovld __cnfn copysign(half8 x, half8 y);
7141half16 __ovld __cnfn copysign(half16 x, half16 y);
7142#endif //cl_khr_fp16
7143
7144/**
7145 * Compute cosine.
7146 */
7147float __ovld __cnfn cos(float);
7148float2 __ovld __cnfn cos(float2);
7149float3 __ovld __cnfn cos(float3);
7150float4 __ovld __cnfn cos(float4);
7151float8 __ovld __cnfn cos(float8);
7152float16 __ovld __cnfn cos(float16);
7153#ifdef cl_khr_fp64
7154double __ovld __cnfn cos(double);
7155double2 __ovld __cnfn cos(double2);
7156double3 __ovld __cnfn cos(double3);
7157double4 __ovld __cnfn cos(double4);
7158double8 __ovld __cnfn cos(double8);
7159double16 __ovld __cnfn cos(double16);
7160#endif //cl_khr_fp64
7161#ifdef cl_khr_fp16
7162half __ovld __cnfn cos(half);
7163half2 __ovld __cnfn cos(half2);
7164half3 __ovld __cnfn cos(half3);
7165half4 __ovld __cnfn cos(half4);
7166half8 __ovld __cnfn cos(half8);
7167half16 __ovld __cnfn cos(half16);
7168#endif //cl_khr_fp16
7169
7170/**
7171 * Compute hyperbolic cosine.
7172 */
7173float __ovld __cnfn cosh(float);
7174float2 __ovld __cnfn cosh(float2);
7175float3 __ovld __cnfn cosh(float3);
7176float4 __ovld __cnfn cosh(float4);
7177float8 __ovld __cnfn cosh(float8);
7178float16 __ovld __cnfn cosh(float16);
7179#ifdef cl_khr_fp64
7180double __ovld __cnfn cosh(double);
7181double2 __ovld __cnfn cosh(double2);
7182double3 __ovld __cnfn cosh(double3);
7183double4 __ovld __cnfn cosh(double4);
7184double8 __ovld __cnfn cosh(double8);
7185double16 __ovld __cnfn cosh(double16);
7186#endif //cl_khr_fp64
7187#ifdef cl_khr_fp16
7188half __ovld __cnfn cosh(half);
7189half2 __ovld __cnfn cosh(half2);
7190half3 __ovld __cnfn cosh(half3);
7191half4 __ovld __cnfn cosh(half4);
7192half8 __ovld __cnfn cosh(half8);
7193half16 __ovld __cnfn cosh(half16);
7194#endif //cl_khr_fp16
7195
7196/**
7197 * Compute cos (PI * x).
7198 */
7199float __ovld __cnfn cospi(float x);
7200float2 __ovld __cnfn cospi(float2 x);
7201float3 __ovld __cnfn cospi(float3 x);
7202float4 __ovld __cnfn cospi(float4 x);
7203float8 __ovld __cnfn cospi(float8 x);
7204float16 __ovld __cnfn cospi(float16 x);
7205#ifdef cl_khr_fp64
7206double __ovld __cnfn cospi(double x);
7207double2 __ovld __cnfn cospi(double2 x);
7208double3 __ovld __cnfn cospi(double3 x);
7209double4 __ovld __cnfn cospi(double4 x);
7210double8 __ovld __cnfn cospi(double8 x);
7211double16 __ovld __cnfn cospi(double16 x);
7212#endif //cl_khr_fp64
7213#ifdef cl_khr_fp16
7214half __ovld __cnfn cospi(half x);
7215half2 __ovld __cnfn cospi(half2 x);
7216half3 __ovld __cnfn cospi(half3 x);
7217half4 __ovld __cnfn cospi(half4 x);
7218half8 __ovld __cnfn cospi(half8 x);
7219half16 __ovld __cnfn cospi(half16 x);
7220#endif //cl_khr_fp16
7221
7222/**
7223 * Complementary error function.
7224 */
7225float __ovld __cnfn erfc(float);
7226float2 __ovld __cnfn erfc(float2);
7227float3 __ovld __cnfn erfc(float3);
7228float4 __ovld __cnfn erfc(float4);
7229float8 __ovld __cnfn erfc(float8);
7230float16 __ovld __cnfn erfc(float16);
7231#ifdef cl_khr_fp64
7232double __ovld __cnfn erfc(double);
7233double2 __ovld __cnfn erfc(double2);
7234double3 __ovld __cnfn erfc(double3);
7235double4 __ovld __cnfn erfc(double4);
7236double8 __ovld __cnfn erfc(double8);
7237double16 __ovld __cnfn erfc(double16);
7238#endif //cl_khr_fp64
7239#ifdef cl_khr_fp16
7240half __ovld __cnfn erfc(half);
7241half2 __ovld __cnfn erfc(half2);
7242half3 __ovld __cnfn erfc(half3);
7243half4 __ovld __cnfn erfc(half4);
7244half8 __ovld __cnfn erfc(half8);
7245half16 __ovld __cnfn erfc(half16);
7246#endif //cl_khr_fp16
7247
7248/**
7249 * Error function encountered in integrating the
7250 * normal distribution.
7251 */
7252float __ovld __cnfn erf(float);
7253float2 __ovld __cnfn erf(float2);
7254float3 __ovld __cnfn erf(float3);
7255float4 __ovld __cnfn erf(float4);
7256float8 __ovld __cnfn erf(float8);
7257float16 __ovld __cnfn erf(float16);
7258#ifdef cl_khr_fp64
7259double __ovld __cnfn erf(double);
7260double2 __ovld __cnfn erf(double2);
7261double3 __ovld __cnfn erf(double3);
7262double4 __ovld __cnfn erf(double4);
7263double8 __ovld __cnfn erf(double8);
7264double16 __ovld __cnfn erf(double16);
7265#endif //cl_khr_fp64
7266#ifdef cl_khr_fp16
7267half __ovld __cnfn erf(half);
7268half2 __ovld __cnfn erf(half2);
7269half3 __ovld __cnfn erf(half3);
7270half4 __ovld __cnfn erf(half4);
7271half8 __ovld __cnfn erf(half8);
7272half16 __ovld __cnfn erf(half16);
7273#endif //cl_khr_fp16
7274
7275/**
7276 * Compute the base e exponential function of x.
7277 */
7278float __ovld __cnfn exp(float x);
7279float2 __ovld __cnfn exp(float2 x);
7280float3 __ovld __cnfn exp(float3 x);
7281float4 __ovld __cnfn exp(float4 x);
7282float8 __ovld __cnfn exp(float8 x);
7283float16 __ovld __cnfn exp(float16 x);
7284#ifdef cl_khr_fp64
7285double __ovld __cnfn exp(double x);
7286double2 __ovld __cnfn exp(double2 x);
7287double3 __ovld __cnfn exp(double3 x);
7288double4 __ovld __cnfn exp(double4 x);
7289double8 __ovld __cnfn exp(double8 x);
7290double16 __ovld __cnfn exp(double16 x);
7291#endif //cl_khr_fp64
7292#ifdef cl_khr_fp16
7293half __ovld __cnfn exp(half x);
7294half2 __ovld __cnfn exp(half2 x);
7295half3 __ovld __cnfn exp(half3 x);
7296half4 __ovld __cnfn exp(half4 x);
7297half8 __ovld __cnfn exp(half8 x);
7298half16 __ovld __cnfn exp(half16 x);
7299#endif //cl_khr_fp16
7300
7301/**
7302 * Exponential base 2 function.
7303 */
7304float __ovld __cnfn exp2(float);
7305float2 __ovld __cnfn exp2(float2);
7306float3 __ovld __cnfn exp2(float3);
7307float4 __ovld __cnfn exp2(float4);
7308float8 __ovld __cnfn exp2(float8);
7309float16 __ovld __cnfn exp2(float16);
7310#ifdef cl_khr_fp64
7311double __ovld __cnfn exp2(double);
7312double2 __ovld __cnfn exp2(double2);
7313double3 __ovld __cnfn exp2(double3);
7314double4 __ovld __cnfn exp2(double4);
7315double8 __ovld __cnfn exp2(double8);
7316double16 __ovld __cnfn exp2(double16);
7317#endif //cl_khr_fp64
7318#ifdef cl_khr_fp16
7319half __ovld __cnfn exp2(half);
7320half2 __ovld __cnfn exp2(half2);
7321half3 __ovld __cnfn exp2(half3);
7322half4 __ovld __cnfn exp2(half4);
7323half8 __ovld __cnfn exp2(half8);
7324half16 __ovld __cnfn exp2(half16);
7325#endif //cl_khr_fp16
7326
7327/**
7328 * Exponential base 10 function.
7329 */
7330float __ovld __cnfn exp10(float);
7331float2 __ovld __cnfn exp10(float2);
7332float3 __ovld __cnfn exp10(float3);
7333float4 __ovld __cnfn exp10(float4);
7334float8 __ovld __cnfn exp10(float8);
7335float16 __ovld __cnfn exp10(float16);
7336#ifdef cl_khr_fp64
7337double __ovld __cnfn exp10(double);
7338double2 __ovld __cnfn exp10(double2);
7339double3 __ovld __cnfn exp10(double3);
7340double4 __ovld __cnfn exp10(double4);
7341double8 __ovld __cnfn exp10(double8);
7342double16 __ovld __cnfn exp10(double16);
7343#endif //cl_khr_fp64
7344#ifdef cl_khr_fp16
7345half __ovld __cnfn exp10(half);
7346half2 __ovld __cnfn exp10(half2);
7347half3 __ovld __cnfn exp10(half3);
7348half4 __ovld __cnfn exp10(half4);
7349half8 __ovld __cnfn exp10(half8);
7350half16 __ovld __cnfn exp10(half16);
7351#endif //cl_khr_fp16
7352
7353/**
7354 * Compute e^x- 1.0.
7355 */
7356float __ovld __cnfn expm1(float x);
7357float2 __ovld __cnfn expm1(float2 x);
7358float3 __ovld __cnfn expm1(float3 x);
7359float4 __ovld __cnfn expm1(float4 x);
7360float8 __ovld __cnfn expm1(float8 x);
7361float16 __ovld __cnfn expm1(float16 x);
7362#ifdef cl_khr_fp64
7363double __ovld __cnfn expm1(double x);
7364double2 __ovld __cnfn expm1(double2 x);
7365double3 __ovld __cnfn expm1(double3 x);
7366double4 __ovld __cnfn expm1(double4 x);
7367double8 __ovld __cnfn expm1(double8 x);
7368double16 __ovld __cnfn expm1(double16 x);
7369#endif //cl_khr_fp64
7370#ifdef cl_khr_fp16
7371half __ovld __cnfn expm1(half x);
7372half2 __ovld __cnfn expm1(half2 x);
7373half3 __ovld __cnfn expm1(half3 x);
7374half4 __ovld __cnfn expm1(half4 x);
7375half8 __ovld __cnfn expm1(half8 x);
7376half16 __ovld __cnfn expm1(half16 x);
7377#endif //cl_khr_fp16
7378
7379/**
7380 * Compute absolute value of a floating-point number.
7381 */
7382float __ovld __cnfn fabs(float);
7383float2 __ovld __cnfn fabs(float2);
7384float3 __ovld __cnfn fabs(float3);
7385float4 __ovld __cnfn fabs(float4);
7386float8 __ovld __cnfn fabs(float8);
7387float16 __ovld __cnfn fabs(float16);
7388#ifdef cl_khr_fp64
7389double __ovld __cnfn fabs(double);
7390double2 __ovld __cnfn fabs(double2);
7391double3 __ovld __cnfn fabs(double3);
7392double4 __ovld __cnfn fabs(double4);
7393double8 __ovld __cnfn fabs(double8);
7394double16 __ovld __cnfn fabs(double16);
7395#endif //cl_khr_fp64
7396#ifdef cl_khr_fp16
7397half __ovld __cnfn fabs(half);
7398half2 __ovld __cnfn fabs(half2);
7399half3 __ovld __cnfn fabs(half3);
7400half4 __ovld __cnfn fabs(half4);
7401half8 __ovld __cnfn fabs(half8);
7402half16 __ovld __cnfn fabs(half16);
7403#endif //cl_khr_fp16
7404
7405/**
7406 * x - y if x > y, +0 if x is less than or equal to y.
7407 */
7408float __ovld __cnfn fdim(float x, float y);
7409float2 __ovld __cnfn fdim(float2 x, float2 y);
7410float3 __ovld __cnfn fdim(float3 x, float3 y);
7411float4 __ovld __cnfn fdim(float4 x, float4 y);
7412float8 __ovld __cnfn fdim(float8 x, float8 y);
7413float16 __ovld __cnfn fdim(float16 x, float16 y);
7414#ifdef cl_khr_fp64
7415double __ovld __cnfn fdim(double x, double y);
7416double2 __ovld __cnfn fdim(double2 x, double2 y);
7417double3 __ovld __cnfn fdim(double3 x, double3 y);
7418double4 __ovld __cnfn fdim(double4 x, double4 y);
7419double8 __ovld __cnfn fdim(double8 x, double8 y);
7420double16 __ovld __cnfn fdim(double16 x, double16 y);
7421#endif //cl_khr_fp64
7422#ifdef cl_khr_fp16
7423half __ovld __cnfn fdim(half x, half y);
7424half2 __ovld __cnfn fdim(half2 x, half2 y);
7425half3 __ovld __cnfn fdim(half3 x, half3 y);
7426half4 __ovld __cnfn fdim(half4 x, half4 y);
7427half8 __ovld __cnfn fdim(half8 x, half8 y);
7428half16 __ovld __cnfn fdim(half16 x, half16 y);
7429#endif //cl_khr_fp16
7430
7431/**
7432 * Round to integral value using the round to -ve
7433 * infinity rounding mode.
7434 */
7435float __ovld __cnfn floor(float);
7436float2 __ovld __cnfn floor(float2);
7437float3 __ovld __cnfn floor(float3);
7438float4 __ovld __cnfn floor(float4);
7439float8 __ovld __cnfn floor(float8);
7440float16 __ovld __cnfn floor(float16);
7441#ifdef cl_khr_fp64
7442double __ovld __cnfn floor(double);
7443double2 __ovld __cnfn floor(double2);
7444double3 __ovld __cnfn floor(double3);
7445double4 __ovld __cnfn floor(double4);
7446double8 __ovld __cnfn floor(double8);
7447double16 __ovld __cnfn floor(double16);
7448#endif //cl_khr_fp64
7449#ifdef cl_khr_fp16
7450half __ovld __cnfn floor(half);
7451half2 __ovld __cnfn floor(half2);
7452half3 __ovld __cnfn floor(half3);
7453half4 __ovld __cnfn floor(half4);
7454half8 __ovld __cnfn floor(half8);
7455half16 __ovld __cnfn floor(half16);
7456#endif //cl_khr_fp16
7457
7458/**
7459 * Returns the correctly rounded floating-point
7460 * representation of the sum of c with the infinitely
7461 * precise product of a and b. Rounding of
7462 * intermediate products shall not occur. Edge case
7463 * behavior is per the IEEE 754-2008 standard.
7464 */
7465float __ovld __cnfn fma(float a, float b, float c);
7466float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
7467float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
7468float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
7469float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
7470float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
7471#ifdef cl_khr_fp64
7472double __ovld __cnfn fma(double a, double b, double c);
7473double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
7474double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
7475double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
7476double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
7477double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
7478#endif //cl_khr_fp64
7479#ifdef cl_khr_fp16
7480half __ovld __cnfn fma(half a, half b, half c);
7481half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
7482half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
7483half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
7484half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
7485half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
7486#endif //cl_khr_fp16
7487
7488/**
7489 * Returns y if x < y, otherwise it returns x. If one
7490 * argument is a NaN, fmax() returns the other
7491 * argument. If both arguments are NaNs, fmax()
7492 * returns a NaN.
7493 */
7494float __ovld __cnfn fmax(float x, float y);
7495float2 __ovld __cnfn fmax(float2 x, float2 y);
7496float3 __ovld __cnfn fmax(float3 x, float3 y);
7497float4 __ovld __cnfn fmax(float4 x, float4 y);
7498float8 __ovld __cnfn fmax(float8 x, float8 y);
7499float16 __ovld __cnfn fmax(float16 x, float16 y);
7500float2 __ovld __cnfn fmax(float2 x, float y);
7501float3 __ovld __cnfn fmax(float3 x, float y);
7502float4 __ovld __cnfn fmax(float4 x, float y);
7503float8 __ovld __cnfn fmax(float8 x, float y);
7504float16 __ovld __cnfn fmax(float16 x, float y);
7505#ifdef cl_khr_fp64
7506double __ovld __cnfn fmax(double x, double y);
7507double2 __ovld __cnfn fmax(double2 x, double2 y);
7508double3 __ovld __cnfn fmax(double3 x, double3 y);
7509double4 __ovld __cnfn fmax(double4 x, double4 y);
7510double8 __ovld __cnfn fmax(double8 x, double8 y);
7511double16 __ovld __cnfn fmax(double16 x, double16 y);
7512double2 __ovld __cnfn fmax(double2 x, double y);
7513double3 __ovld __cnfn fmax(double3 x, double y);
7514double4 __ovld __cnfn fmax(double4 x, double y);
7515double8 __ovld __cnfn fmax(double8 x, double y);
7516double16 __ovld __cnfn fmax(double16 x, double y);
7517#endif //cl_khr_fp64
7518#ifdef cl_khr_fp16
7519half __ovld __cnfn fmax(half x, half y);
7520half2 __ovld __cnfn fmax(half2 x, half2 y);
7521half3 __ovld __cnfn fmax(half3 x, half3 y);
7522half4 __ovld __cnfn fmax(half4 x, half4 y);
7523half8 __ovld __cnfn fmax(half8 x, half8 y);
7524half16 __ovld __cnfn fmax(half16 x, half16 y);
7525half2 __ovld __cnfn fmax(half2 x, half y);
7526half3 __ovld __cnfn fmax(half3 x, half y);
7527half4 __ovld __cnfn fmax(half4 x, half y);
7528half8 __ovld __cnfn fmax(half8 x, half y);
7529half16 __ovld __cnfn fmax(half16 x, half y);
7530#endif //cl_khr_fp16
7531
7532/**
7533 * Returns y if y < x, otherwise it returns x. If one
7534 * argument is a NaN, fmin() returns the other
7535 * argument. If both arguments are NaNs, fmin()
7536 * returns a NaN.
7537 */
7538float __ovld __cnfn fmin(float x, float y);
7539float2 __ovld __cnfn fmin(float2 x, float2 y);
7540float3 __ovld __cnfn fmin(float3 x, float3 y);
7541float4 __ovld __cnfn fmin(float4 x, float4 y);
7542float8 __ovld __cnfn fmin(float8 x, float8 y);
7543float16 __ovld __cnfn fmin(float16 x, float16 y);
7544float2 __ovld __cnfn fmin(float2 x, float y);
7545float3 __ovld __cnfn fmin(float3 x, float y);
7546float4 __ovld __cnfn fmin(float4 x, float y);
7547float8 __ovld __cnfn fmin(float8 x, float y);
7548float16 __ovld __cnfn fmin(float16 x, float y);
7549#ifdef cl_khr_fp64
7550double __ovld __cnfn fmin(double x, double y);
7551double2 __ovld __cnfn fmin(double2 x, double2 y);
7552double3 __ovld __cnfn fmin(double3 x, double3 y);
7553double4 __ovld __cnfn fmin(double4 x, double4 y);
7554double8 __ovld __cnfn fmin(double8 x, double8 y);
7555double16 __ovld __cnfn fmin(double16 x, double16 y);
7556double2 __ovld __cnfn fmin(double2 x, double y);
7557double3 __ovld __cnfn fmin(double3 x, double y);
7558double4 __ovld __cnfn fmin(double4 x, double y);
7559double8 __ovld __cnfn fmin(double8 x, double y);
7560double16 __ovld __cnfn fmin(double16 x, double y);
7561#endif //cl_khr_fp64
7562#ifdef cl_khr_fp16
7563half __ovld __cnfn fmin(half x, half y);
7564half2 __ovld __cnfn fmin(half2 x, half2 y);
7565half3 __ovld __cnfn fmin(half3 x, half3 y);
7566half4 __ovld __cnfn fmin(half4 x, half4 y);
7567half8 __ovld __cnfn fmin(half8 x, half8 y);
7568half16 __ovld __cnfn fmin(half16 x, half16 y);
7569half2 __ovld __cnfn fmin(half2 x, half y);
7570half3 __ovld __cnfn fmin(half3 x, half y);
7571half4 __ovld __cnfn fmin(half4 x, half y);
7572half8 __ovld __cnfn fmin(half8 x, half y);
7573half16 __ovld __cnfn fmin(half16 x, half y);
7574#endif //cl_khr_fp16
7575
7576/**
7577 * Modulus. Returns x - y * trunc (x/y).
7578 */
7579float __ovld __cnfn fmod(float x, float y);
7580float2 __ovld __cnfn fmod(float2 x, float2 y);
7581float3 __ovld __cnfn fmod(float3 x, float3 y);
7582float4 __ovld __cnfn fmod(float4 x, float4 y);
7583float8 __ovld __cnfn fmod(float8 x, float8 y);
7584float16 __ovld __cnfn fmod(float16 x, float16 y);
7585#ifdef cl_khr_fp64
7586double __ovld __cnfn fmod(double x, double y);
7587double2 __ovld __cnfn fmod(double2 x, double2 y);
7588double3 __ovld __cnfn fmod(double3 x, double3 y);
7589double4 __ovld __cnfn fmod(double4 x, double4 y);
7590double8 __ovld __cnfn fmod(double8 x, double8 y);
7591double16 __ovld __cnfn fmod(double16 x, double16 y);
7592#endif //cl_khr_fp64
7593#ifdef cl_khr_fp16
7594half __ovld __cnfn fmod(half x, half y);
7595half2 __ovld __cnfn fmod(half2 x, half2 y);
7596half3 __ovld __cnfn fmod(half3 x, half3 y);
7597half4 __ovld __cnfn fmod(half4 x, half4 y);
7598half8 __ovld __cnfn fmod(half8 x, half8 y);
7599half16 __ovld __cnfn fmod(half16 x, half16 y);
7600#endif //cl_khr_fp16
7601
7602/**
7603 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7604 * floor(x) is returned in iptr.
7605 */
7606#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7607float __ovld fract(float x, float *iptr);
7608float2 __ovld fract(float2 x, float2 *iptr);
7609float3 __ovld fract(float3 x, float3 *iptr);
7610float4 __ovld fract(float4 x, float4 *iptr);
7611float8 __ovld fract(float8 x, float8 *iptr);
7612float16 __ovld fract(float16 x, float16 *iptr);
7613#ifdef cl_khr_fp64
7614double __ovld fract(double x, double *iptr);
7615double2 __ovld fract(double2 x, double2 *iptr);
7616double3 __ovld fract(double3 x, double3 *iptr);
7617double4 __ovld fract(double4 x, double4 *iptr);
7618double8 __ovld fract(double8 x, double8 *iptr);
7619double16 __ovld fract(double16 x, double16 *iptr);
7620#endif //cl_khr_fp64
7621#ifdef cl_khr_fp16
7622half __ovld fract(half x, half *iptr);
7623half2 __ovld fract(half2 x, half2 *iptr);
7624half3 __ovld fract(half3 x, half3 *iptr);
7625half4 __ovld fract(half4 x, half4 *iptr);
7626half8 __ovld fract(half8 x, half8 *iptr);
7627half16 __ovld fract(half16 x, half16 *iptr);
7628#endif //cl_khr_fp16
7629#else
7630float __ovld fract(float x, __global float *iptr);
7631float2 __ovld fract(float2 x, __global float2 *iptr);
7632float3 __ovld fract(float3 x, __global float3 *iptr);
7633float4 __ovld fract(float4 x, __global float4 *iptr);
7634float8 __ovld fract(float8 x, __global float8 *iptr);
7635float16 __ovld fract(float16 x, __global float16 *iptr);
7636float __ovld fract(float x, __local float *iptr);
7637float2 __ovld fract(float2 x, __local float2 *iptr);
7638float3 __ovld fract(float3 x, __local float3 *iptr);
7639float4 __ovld fract(float4 x, __local float4 *iptr);
7640float8 __ovld fract(float8 x, __local float8 *iptr);
7641float16 __ovld fract(float16 x, __local float16 *iptr);
7642float __ovld fract(float x, __private float *iptr);
7643float2 __ovld fract(float2 x, __private float2 *iptr);
7644float3 __ovld fract(float3 x, __private float3 *iptr);
7645float4 __ovld fract(float4 x, __private float4 *iptr);
7646float8 __ovld fract(float8 x, __private float8 *iptr);
7647float16 __ovld fract(float16 x, __private float16 *iptr);
7648#ifdef cl_khr_fp64
7649double __ovld fract(double x, __global double *iptr);
7650double2 __ovld fract(double2 x, __global double2 *iptr);
7651double3 __ovld fract(double3 x, __global double3 *iptr);
7652double4 __ovld fract(double4 x, __global double4 *iptr);
7653double8 __ovld fract(double8 x, __global double8 *iptr);
7654double16 __ovld fract(double16 x, __global double16 *iptr);
7655double __ovld fract(double x, __local double *iptr);
7656double2 __ovld fract(double2 x, __local double2 *iptr);
7657double3 __ovld fract(double3 x, __local double3 *iptr);
7658double4 __ovld fract(double4 x, __local double4 *iptr);
7659double8 __ovld fract(double8 x, __local double8 *iptr);
7660double16 __ovld fract(double16 x, __local double16 *iptr);
7661double __ovld fract(double x, __private double *iptr);
7662double2 __ovld fract(double2 x, __private double2 *iptr);
7663double3 __ovld fract(double3 x, __private double3 *iptr);
7664double4 __ovld fract(double4 x, __private double4 *iptr);
7665double8 __ovld fract(double8 x, __private double8 *iptr);
7666double16 __ovld fract(double16 x, __private double16 *iptr);
7667#endif //cl_khr_fp64
7668#ifdef cl_khr_fp16
7669half __ovld fract(half x, __global half *iptr);
7670half2 __ovld fract(half2 x, __global half2 *iptr);
7671half3 __ovld fract(half3 x, __global half3 *iptr);
7672half4 __ovld fract(half4 x, __global half4 *iptr);
7673half8 __ovld fract(half8 x, __global half8 *iptr);
7674half16 __ovld fract(half16 x, __global half16 *iptr);
7675half __ovld fract(half x, __local half *iptr);
7676half2 __ovld fract(half2 x, __local half2 *iptr);
7677half3 __ovld fract(half3 x, __local half3 *iptr);
7678half4 __ovld fract(half4 x, __local half4 *iptr);
7679half8 __ovld fract(half8 x, __local half8 *iptr);
7680half16 __ovld fract(half16 x, __local half16 *iptr);
7681half __ovld fract(half x, __private half *iptr);
7682half2 __ovld fract(half2 x, __private half2 *iptr);
7683half3 __ovld fract(half3 x, __private half3 *iptr);
7684half4 __ovld fract(half4 x, __private half4 *iptr);
7685half8 __ovld fract(half8 x, __private half8 *iptr);
7686half16 __ovld fract(half16 x, __private half16 *iptr);
7687#endif //cl_khr_fp16
7688#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7689
7690/**
7691 * Extract mantissa and exponent from x. For each
7692 * component the mantissa returned is a float with
7693 * magnitude in the interval [1/2, 1) or 0. Each
7694 * component of x equals mantissa returned * 2^exp.
7695 */
7696#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7697float __ovld frexp(float x, int *exp);
7698float2 __ovld frexp(float2 x, int2 *exp);
7699float3 __ovld frexp(float3 x, int3 *exp);
7700float4 __ovld frexp(float4 x, int4 *exp);
7701float8 __ovld frexp(float8 x, int8 *exp);
7702float16 __ovld frexp(float16 x, int16 *exp);
7703#ifdef cl_khr_fp64
7704double __ovld frexp(double x, int *exp);
7705double2 __ovld frexp(double2 x, int2 *exp);
7706double3 __ovld frexp(double3 x, int3 *exp);
7707double4 __ovld frexp(double4 x, int4 *exp);
7708double8 __ovld frexp(double8 x, int8 *exp);
7709double16 __ovld frexp(double16 x, int16 *exp);
7710#endif //cl_khr_fp64
7711#ifdef cl_khr_fp16
7712half __ovld frexp(half x, int *exp);
7713half2 __ovld frexp(half2 x, int2 *exp);
7714half3 __ovld frexp(half3 x, int3 *exp);
7715half4 __ovld frexp(half4 x, int4 *exp);
7716half8 __ovld frexp(half8 x, int8 *exp);
7717half16 __ovld frexp(half16 x, int16 *exp);
7718#endif //cl_khr_fp16
7719#else
7720float __ovld frexp(float x, __global int *exp);
7721float2 __ovld frexp(float2 x, __global int2 *exp);
7722float3 __ovld frexp(float3 x, __global int3 *exp);
7723float4 __ovld frexp(float4 x, __global int4 *exp);
7724float8 __ovld frexp(float8 x, __global int8 *exp);
7725float16 __ovld frexp(float16 x, __global int16 *exp);
7726float __ovld frexp(float x, __local int *exp);
7727float2 __ovld frexp(float2 x, __local int2 *exp);
7728float3 __ovld frexp(float3 x, __local int3 *exp);
7729float4 __ovld frexp(float4 x, __local int4 *exp);
7730float8 __ovld frexp(float8 x, __local int8 *exp);
7731float16 __ovld frexp(float16 x, __local int16 *exp);
7732float __ovld frexp(float x, __private int *exp);
7733float2 __ovld frexp(float2 x, __private int2 *exp);
7734float3 __ovld frexp(float3 x, __private int3 *exp);
7735float4 __ovld frexp(float4 x, __private int4 *exp);
7736float8 __ovld frexp(float8 x, __private int8 *exp);
7737float16 __ovld frexp(float16 x, __private int16 *exp);
7738#ifdef cl_khr_fp64
7739double __ovld frexp(double x, __global int *exp);
7740double2 __ovld frexp(double2 x, __global int2 *exp);
7741double3 __ovld frexp(double3 x, __global int3 *exp);
7742double4 __ovld frexp(double4 x, __global int4 *exp);
7743double8 __ovld frexp(double8 x, __global int8 *exp);
7744double16 __ovld frexp(double16 x, __global int16 *exp);
7745double __ovld frexp(double x, __local int *exp);
7746double2 __ovld frexp(double2 x, __local int2 *exp);
7747double3 __ovld frexp(double3 x, __local int3 *exp);
7748double4 __ovld frexp(double4 x, __local int4 *exp);
7749double8 __ovld frexp(double8 x, __local int8 *exp);
7750double16 __ovld frexp(double16 x, __local int16 *exp);
7751double __ovld frexp(double x, __private int *exp);
7752double2 __ovld frexp(double2 x, __private int2 *exp);
7753double3 __ovld frexp(double3 x, __private int3 *exp);
7754double4 __ovld frexp(double4 x, __private int4 *exp);
7755double8 __ovld frexp(double8 x, __private int8 *exp);
7756double16 __ovld frexp(double16 x, __private int16 *exp);
7757#endif //cl_khr_fp64
7758#ifdef cl_khr_fp16
7759half __ovld frexp(half x, __global int *exp);
7760half2 __ovld frexp(half2 x, __global int2 *exp);
7761half3 __ovld frexp(half3 x, __global int3 *exp);
7762half4 __ovld frexp(half4 x, __global int4 *exp);
7763half8 __ovld frexp(half8 x, __global int8 *exp);
7764half16 __ovld frexp(half16 x, __global int16 *exp);
7765half __ovld frexp(half x, __local int *exp);
7766half2 __ovld frexp(half2 x, __local int2 *exp);
7767half3 __ovld frexp(half3 x, __local int3 *exp);
7768half4 __ovld frexp(half4 x, __local int4 *exp);
7769half8 __ovld frexp(half8 x, __local int8 *exp);
7770half16 __ovld frexp(half16 x, __local int16 *exp);
7771half __ovld frexp(half x, __private int *exp);
7772half2 __ovld frexp(half2 x, __private int2 *exp);
7773half3 __ovld frexp(half3 x, __private int3 *exp);
7774half4 __ovld frexp(half4 x, __private int4 *exp);
7775half8 __ovld frexp(half8 x, __private int8 *exp);
7776half16 __ovld frexp(half16 x, __private int16 *exp);
7777#endif //cl_khr_fp16
7778#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7779
7780/**
7781 * Compute the value of the square root of x^2 + y^2
7782 * without undue overflow or underflow.
7783 */
7784float __ovld __cnfn hypot(float x, float y);
7785float2 __ovld __cnfn hypot(float2 x, float2 y);
7786float3 __ovld __cnfn hypot(float3 x, float3 y);
7787float4 __ovld __cnfn hypot(float4 x, float4 y);
7788float8 __ovld __cnfn hypot(float8 x, float8 y);
7789float16 __ovld __cnfn hypot(float16 x, float16 y);
7790#ifdef cl_khr_fp64
7791double __ovld __cnfn hypot(double x, double y);
7792double2 __ovld __cnfn hypot(double2 x, double2 y);
7793double3 __ovld __cnfn hypot(double3 x, double3 y);
7794double4 __ovld __cnfn hypot(double4 x, double4 y);
7795double8 __ovld __cnfn hypot(double8 x, double8 y);
7796double16 __ovld __cnfn hypot(double16 x, double16 y);
7797#endif //cl_khr_fp64
7798#ifdef cl_khr_fp16
7799half __ovld __cnfn hypot(half x, half y);
7800half2 __ovld __cnfn hypot(half2 x, half2 y);
7801half3 __ovld __cnfn hypot(half3 x, half3 y);
7802half4 __ovld __cnfn hypot(half4 x, half4 y);
7803half8 __ovld __cnfn hypot(half8 x, half8 y);
7804half16 __ovld __cnfn hypot(half16 x, half16 y);
7805#endif //cl_khr_fp16
7806
7807/**
7808 * Return the exponent as an integer value.
7809 */
7810int __ovld __cnfn ilogb(float x);
7811int2 __ovld __cnfn ilogb(float2 x);
7812int3 __ovld __cnfn ilogb(float3 x);
7813int4 __ovld __cnfn ilogb(float4 x);
7814int8 __ovld __cnfn ilogb(float8 x);
7815int16 __ovld __cnfn ilogb(float16 x);
7816#ifdef cl_khr_fp64
7817int __ovld __cnfn ilogb(double x);
7818int2 __ovld __cnfn ilogb(double2 x);
7819int3 __ovld __cnfn ilogb(double3 x);
7820int4 __ovld __cnfn ilogb(double4 x);
7821int8 __ovld __cnfn ilogb(double8 x);
7822int16 __ovld __cnfn ilogb(double16 x);
7823#endif //cl_khr_fp64
7824#ifdef cl_khr_fp16
7825int __ovld __cnfn ilogb(half x);
7826int2 __ovld __cnfn ilogb(half2 x);
7827int3 __ovld __cnfn ilogb(half3 x);
7828int4 __ovld __cnfn ilogb(half4 x);
7829int8 __ovld __cnfn ilogb(half8 x);
7830int16 __ovld __cnfn ilogb(half16 x);
7831#endif //cl_khr_fp16
7832
7833/**
7834 * Multiply x by 2 to the power n.
7835 */
7836float __ovld __cnfn ldexp(float x, int n);
7837float2 __ovld __cnfn ldexp(float2 x, int2 n);
7838float3 __ovld __cnfn ldexp(float3 x, int3 n);
7839float4 __ovld __cnfn ldexp(float4 x, int4 n);
7840float8 __ovld __cnfn ldexp(float8 x, int8 n);
7841float16 __ovld __cnfn ldexp(float16 x, int16 n);
7842float2 __ovld __cnfn ldexp(float2 x, int n);
7843float3 __ovld __cnfn ldexp(float3 x, int n);
7844float4 __ovld __cnfn ldexp(float4 x, int n);
7845float8 __ovld __cnfn ldexp(float8 x, int n);
7846float16 __ovld __cnfn ldexp(float16 x, int n);
7847#ifdef cl_khr_fp64
7848double __ovld __cnfn ldexp(double x, int n);
7849double2 __ovld __cnfn ldexp(double2 x, int2 n);
7850double3 __ovld __cnfn ldexp(double3 x, int3 n);
7851double4 __ovld __cnfn ldexp(double4 x, int4 n);
7852double8 __ovld __cnfn ldexp(double8 x, int8 n);
7853double16 __ovld __cnfn ldexp(double16 x, int16 n);
7854double2 __ovld __cnfn ldexp(double2 x, int n);
7855double3 __ovld __cnfn ldexp(double3 x, int n);
7856double4 __ovld __cnfn ldexp(double4 x, int n);
7857double8 __ovld __cnfn ldexp(double8 x, int n);
7858double16 __ovld __cnfn ldexp(double16 x, int n);
7859#endif //cl_khr_fp64
7860#ifdef cl_khr_fp16
7861half __ovld __cnfn ldexp(half x, int n);
7862half2 __ovld __cnfn ldexp(half2 x, int2 n);
7863half3 __ovld __cnfn ldexp(half3 x, int3 n);
7864half4 __ovld __cnfn ldexp(half4 x, int4 n);
7865half8 __ovld __cnfn ldexp(half8 x, int8 n);
7866half16 __ovld __cnfn ldexp(half16 x, int16 n);
7867half2 __ovld __cnfn ldexp(half2 x, int n);
7868half3 __ovld __cnfn ldexp(half3 x, int n);
7869half4 __ovld __cnfn ldexp(half4 x, int n);
7870half8 __ovld __cnfn ldexp(half8 x, int n);
7871half16 __ovld __cnfn ldexp(half16 x, int n);
7872#endif //cl_khr_fp16
7873
7874/**
7875 * Log gamma function. Returns the natural
7876 * logarithm of the absolute value of the gamma
7877 * function. The sign of the gamma function is
7878 * returned in the signp argument of lgamma_r.
7879 */
7880float __ovld __cnfn lgamma(float x);
7881float2 __ovld __cnfn lgamma(float2 x);
7882float3 __ovld __cnfn lgamma(float3 x);
7883float4 __ovld __cnfn lgamma(float4 x);
7884float8 __ovld __cnfn lgamma(float8 x);
7885float16 __ovld __cnfn lgamma(float16 x);
7886#ifdef cl_khr_fp64
7887double __ovld __cnfn lgamma(double x);
7888double2 __ovld __cnfn lgamma(double2 x);
7889double3 __ovld __cnfn lgamma(double3 x);
7890double4 __ovld __cnfn lgamma(double4 x);
7891double8 __ovld __cnfn lgamma(double8 x);
7892double16 __ovld __cnfn lgamma(double16 x);
7893#endif //cl_khr_fp64
7894#ifdef cl_khr_fp16
7895half __ovld __cnfn lgamma(half x);
7896half2 __ovld __cnfn lgamma(half2 x);
7897half3 __ovld __cnfn lgamma(half3 x);
7898half4 __ovld __cnfn lgamma(half4 x);
7899half8 __ovld __cnfn lgamma(half8 x);
7900half16 __ovld __cnfn lgamma(half16 x);
7901#endif //cl_khr_fp16
7902
7903#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7904float __ovld lgamma_r(float x, int *signp);
7905float2 __ovld lgamma_r(float2 x, int2 *signp);
7906float3 __ovld lgamma_r(float3 x, int3 *signp);
7907float4 __ovld lgamma_r(float4 x, int4 *signp);
7908float8 __ovld lgamma_r(float8 x, int8 *signp);
7909float16 __ovld lgamma_r(float16 x, int16 *signp);
7910#ifdef cl_khr_fp64
7911double __ovld lgamma_r(double x, int *signp);
7912double2 __ovld lgamma_r(double2 x, int2 *signp);
7913double3 __ovld lgamma_r(double3 x, int3 *signp);
7914double4 __ovld lgamma_r(double4 x, int4 *signp);
7915double8 __ovld lgamma_r(double8 x, int8 *signp);
7916double16 __ovld lgamma_r(double16 x, int16 *signp);
7917#endif //cl_khr_fp64
7918#ifdef cl_khr_fp16
7919half __ovld lgamma_r(half x, int *signp);
7920half2 __ovld lgamma_r(half2 x, int2 *signp);
7921half3 __ovld lgamma_r(half3 x, int3 *signp);
7922half4 __ovld lgamma_r(half4 x, int4 *signp);
7923half8 __ovld lgamma_r(half8 x, int8 *signp);
7924half16 __ovld lgamma_r(half16 x, int16 *signp);
7925#endif //cl_khr_fp16
7926#else
7927float __ovld lgamma_r(float x, __global int *signp);
7928float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7929float3 __ovld lgamma_r(float3 x, __global int3 *signp);
7930float4 __ovld lgamma_r(float4 x, __global int4 *signp);
7931float8 __ovld lgamma_r(float8 x, __global int8 *signp);
7932float16 __ovld lgamma_r(float16 x, __global int16 *signp);
7933float __ovld lgamma_r(float x, __local int *signp);
7934float2 __ovld lgamma_r(float2 x, __local int2 *signp);
7935float3 __ovld lgamma_r(float3 x, __local int3 *signp);
7936float4 __ovld lgamma_r(float4 x, __local int4 *signp);
7937float8 __ovld lgamma_r(float8 x, __local int8 *signp);
7938float16 __ovld lgamma_r(float16 x, __local int16 *signp);
7939float __ovld lgamma_r(float x, __private int *signp);
7940float2 __ovld lgamma_r(float2 x, __private int2 *signp);
7941float3 __ovld lgamma_r(float3 x, __private int3 *signp);
7942float4 __ovld lgamma_r(float4 x, __private int4 *signp);
7943float8 __ovld lgamma_r(float8 x, __private int8 *signp);
7944float16 __ovld lgamma_r(float16 x, __private int16 *signp);
7945#ifdef cl_khr_fp64
7946double __ovld lgamma_r(double x, __global int *signp);
7947double2 __ovld lgamma_r(double2 x, __global int2 *signp);
7948double3 __ovld lgamma_r(double3 x, __global int3 *signp);
7949double4 __ovld lgamma_r(double4 x, __global int4 *signp);
7950double8 __ovld lgamma_r(double8 x, __global int8 *signp);
7951double16 __ovld lgamma_r(double16 x, __global int16 *signp);
7952double __ovld lgamma_r(double x, __local int *signp);
7953double2 __ovld lgamma_r(double2 x, __local int2 *signp);
7954double3 __ovld lgamma_r(double3 x, __local int3 *signp);
7955double4 __ovld lgamma_r(double4 x, __local int4 *signp);
7956double8 __ovld lgamma_r(double8 x, __local int8 *signp);
7957double16 __ovld lgamma_r(double16 x, __local int16 *signp);
7958double __ovld lgamma_r(double x, __private int *signp);
7959double2 __ovld lgamma_r(double2 x, __private int2 *signp);
7960double3 __ovld lgamma_r(double3 x, __private int3 *signp);
7961double4 __ovld lgamma_r(double4 x, __private int4 *signp);
7962double8 __ovld lgamma_r(double8 x, __private int8 *signp);
7963double16 __ovld lgamma_r(double16 x, __private int16 *signp);
7964#endif //cl_khr_fp64
7965#ifdef cl_khr_fp16
7966half __ovld lgamma_r(half x, __global int *signp);
7967half2 __ovld lgamma_r(half2 x, __global int2 *signp);
7968half3 __ovld lgamma_r(half3 x, __global int3 *signp);
7969half4 __ovld lgamma_r(half4 x, __global int4 *signp);
7970half8 __ovld lgamma_r(half8 x, __global int8 *signp);
7971half16 __ovld lgamma_r(half16 x, __global int16 *signp);
7972half __ovld lgamma_r(half x, __local int *signp);
7973half2 __ovld lgamma_r(half2 x, __local int2 *signp);
7974half3 __ovld lgamma_r(half3 x, __local int3 *signp);
7975half4 __ovld lgamma_r(half4 x, __local int4 *signp);
7976half8 __ovld lgamma_r(half8 x, __local int8 *signp);
7977half16 __ovld lgamma_r(half16 x, __local int16 *signp);
7978half __ovld lgamma_r(half x, __private int *signp);
7979half2 __ovld lgamma_r(half2 x, __private int2 *signp);
7980half3 __ovld lgamma_r(half3 x, __private int3 *signp);
7981half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7982half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7983half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7984#endif //cl_khr_fp16
7985#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7986
7987/**
7988 * Compute natural logarithm.
7989 */
7990float __ovld __cnfn log(float);
7991float2 __ovld __cnfn log(float2);
7992float3 __ovld __cnfn log(float3);
7993float4 __ovld __cnfn log(float4);
7994float8 __ovld __cnfn log(float8);
7995float16 __ovld __cnfn log(float16);
7996#ifdef cl_khr_fp64
7997double __ovld __cnfn log(double);
7998double2 __ovld __cnfn log(double2);
7999double3 __ovld __cnfn log(double3);
8000double4 __ovld __cnfn log(double4);
8001double8 __ovld __cnfn log(double8);
8002double16 __ovld __cnfn log(double16);
8003#endif //cl_khr_fp64
8004#ifdef cl_khr_fp16
8005half __ovld __cnfn log(half);
8006half2 __ovld __cnfn log(half2);
8007half3 __ovld __cnfn log(half3);
8008half4 __ovld __cnfn log(half4);
8009half8 __ovld __cnfn log(half8);
8010half16 __ovld __cnfn log(half16);
8011#endif //cl_khr_fp16
8012
8013/**
8014 * Compute a base 2 logarithm.
8015 */
8016float __ovld __cnfn log2(float);
8017float2 __ovld __cnfn log2(float2);
8018float3 __ovld __cnfn log2(float3);
8019float4 __ovld __cnfn log2(float4);
8020float8 __ovld __cnfn log2(float8);
8021float16 __ovld __cnfn log2(float16);
8022#ifdef cl_khr_fp64
8023double __ovld __cnfn log2(double);
8024double2 __ovld __cnfn log2(double2);
8025double3 __ovld __cnfn log2(double3);
8026double4 __ovld __cnfn log2(double4);
8027double8 __ovld __cnfn log2(double8);
8028double16 __ovld __cnfn log2(double16);
8029#endif //cl_khr_fp64
8030#ifdef cl_khr_fp16
8031half __ovld __cnfn log2(half);
8032half2 __ovld __cnfn log2(half2);
8033half3 __ovld __cnfn log2(half3);
8034half4 __ovld __cnfn log2(half4);
8035half8 __ovld __cnfn log2(half8);
8036half16 __ovld __cnfn log2(half16);
8037#endif //cl_khr_fp16
8038
8039/**
8040 * Compute a base 10 logarithm.
8041 */
8042float __ovld __cnfn log10(float);
8043float2 __ovld __cnfn log10(float2);
8044float3 __ovld __cnfn log10(float3);
8045float4 __ovld __cnfn log10(float4);
8046float8 __ovld __cnfn log10(float8);
8047float16 __ovld __cnfn log10(float16);
8048#ifdef cl_khr_fp64
8049double __ovld __cnfn log10(double);
8050double2 __ovld __cnfn log10(double2);
8051double3 __ovld __cnfn log10(double3);
8052double4 __ovld __cnfn log10(double4);
8053double8 __ovld __cnfn log10(double8);
8054double16 __ovld __cnfn log10(double16);
8055#endif //cl_khr_fp64
8056#ifdef cl_khr_fp16
8057half __ovld __cnfn log10(half);
8058half2 __ovld __cnfn log10(half2);
8059half3 __ovld __cnfn log10(half3);
8060half4 __ovld __cnfn log10(half4);
8061half8 __ovld __cnfn log10(half8);
8062half16 __ovld __cnfn log10(half16);
8063#endif //cl_khr_fp16
8064
8065/**
8066 * Compute a base e logarithm of (1.0 + x).
8067 */
8068float __ovld __cnfn log1p(float x);
8069float2 __ovld __cnfn log1p(float2 x);
8070float3 __ovld __cnfn log1p(float3 x);
8071float4 __ovld __cnfn log1p(float4 x);
8072float8 __ovld __cnfn log1p(float8 x);
8073float16 __ovld __cnfn log1p(float16 x);
8074#ifdef cl_khr_fp64
8075double __ovld __cnfn log1p(double x);
8076double2 __ovld __cnfn log1p(double2 x);
8077double3 __ovld __cnfn log1p(double3 x);
8078double4 __ovld __cnfn log1p(double4 x);
8079double8 __ovld __cnfn log1p(double8 x);
8080double16 __ovld __cnfn log1p(double16 x);
8081#endif //cl_khr_fp64
8082#ifdef cl_khr_fp16
8083half __ovld __cnfn log1p(half x);
8084half2 __ovld __cnfn log1p(half2 x);
8085half3 __ovld __cnfn log1p(half3 x);
8086half4 __ovld __cnfn log1p(half4 x);
8087half8 __ovld __cnfn log1p(half8 x);
8088half16 __ovld __cnfn log1p(half16 x);
8089#endif //cl_khr_fp16
8090
8091/**
8092 * Compute the exponent of x, which is the integral
8093 * part of logr | x |.
8094 */
8095float __ovld __cnfn logb(float x);
8096float2 __ovld __cnfn logb(float2 x);
8097float3 __ovld __cnfn logb(float3 x);
8098float4 __ovld __cnfn logb(float4 x);
8099float8 __ovld __cnfn logb(float8 x);
8100float16 __ovld __cnfn logb(float16 x);
8101#ifdef cl_khr_fp64
8102double __ovld __cnfn logb(double x);
8103double2 __ovld __cnfn logb(double2 x);
8104double3 __ovld __cnfn logb(double3 x);
8105double4 __ovld __cnfn logb(double4 x);
8106double8 __ovld __cnfn logb(double8 x);
8107double16 __ovld __cnfn logb(double16 x);
8108#endif //cl_khr_fp64
8109#ifdef cl_khr_fp16
8110half __ovld __cnfn logb(half x);
8111half2 __ovld __cnfn logb(half2 x);
8112half3 __ovld __cnfn logb(half3 x);
8113half4 __ovld __cnfn logb(half4 x);
8114half8 __ovld __cnfn logb(half8 x);
8115half16 __ovld __cnfn logb(half16 x);
8116#endif //cl_khr_fp16
8117
8118/**
8119 * mad approximates a * b + c. Whether or how the
8120 * product of a * b is rounded and how supernormal or
8121 * subnormal intermediate products are handled is not
8122 * defined. mad is intended to be used where speed is
8123 * preferred over accuracy.
8124 */
8125float __ovld __cnfn mad(float a, float b, float c);
8126float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
8127float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
8128float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
8129float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
8130float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
8131#ifdef cl_khr_fp64
8132double __ovld __cnfn mad(double a, double b, double c);
8133double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
8134double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
8135double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
8136double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
8137double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
8138#endif //cl_khr_fp64
8139#ifdef cl_khr_fp16
8140half __ovld __cnfn mad(half a, half b, half c);
8141half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
8142half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
8143half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
8144half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
8145half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
8146#endif //cl_khr_fp16
8147
8148/**
8149 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
8150 * fmax(x, y).
8151 */
8152float __ovld __cnfn maxmag(float x, float y);
8153float2 __ovld __cnfn maxmag(float2 x, float2 y);
8154float3 __ovld __cnfn maxmag(float3 x, float3 y);
8155float4 __ovld __cnfn maxmag(float4 x, float4 y);
8156float8 __ovld __cnfn maxmag(float8 x, float8 y);
8157float16 __ovld __cnfn maxmag(float16 x, float16 y);
8158#ifdef cl_khr_fp64
8159double __ovld __cnfn maxmag(double x, double y);
8160double2 __ovld __cnfn maxmag(double2 x, double2 y);
8161double3 __ovld __cnfn maxmag(double3 x, double3 y);
8162double4 __ovld __cnfn maxmag(double4 x, double4 y);
8163double8 __ovld __cnfn maxmag(double8 x, double8 y);
8164double16 __ovld __cnfn maxmag(double16 x, double16 y);
8165#endif //cl_khr_fp64
8166#ifdef cl_khr_fp16
8167half __ovld __cnfn maxmag(half x, half y);
8168half2 __ovld __cnfn maxmag(half2 x, half2 y);
8169half3 __ovld __cnfn maxmag(half3 x, half3 y);
8170half4 __ovld __cnfn maxmag(half4 x, half4 y);
8171half8 __ovld __cnfn maxmag(half8 x, half8 y);
8172half16 __ovld __cnfn maxmag(half16 x, half16 y);
8173#endif //cl_khr_fp16
8174
8175/**
8176 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
8177 * fmin(x, y).
8178 */
8179float __ovld __cnfn minmag(float x, float y);
8180float2 __ovld __cnfn minmag(float2 x, float2 y);
8181float3 __ovld __cnfn minmag(float3 x, float3 y);
8182float4 __ovld __cnfn minmag(float4 x, float4 y);
8183float8 __ovld __cnfn minmag(float8 x, float8 y);
8184float16 __ovld __cnfn minmag(float16 x, float16 y);
8185#ifdef cl_khr_fp64
8186double __ovld __cnfn minmag(double x, double y);
8187double2 __ovld __cnfn minmag(double2 x, double2 y);
8188double3 __ovld __cnfn minmag(double3 x, double3 y);
8189double4 __ovld __cnfn minmag(double4 x, double4 y);
8190double8 __ovld __cnfn minmag(double8 x, double8 y);
8191double16 __ovld __cnfn minmag(double16 x, double16 y);
8192#endif //cl_khr_fp64
8193#ifdef cl_khr_fp16
8194half __ovld __cnfn minmag(half x, half y);
8195half2 __ovld __cnfn minmag(half2 x, half2 y);
8196half3 __ovld __cnfn minmag(half3 x, half3 y);
8197half4 __ovld __cnfn minmag(half4 x, half4 y);
8198half8 __ovld __cnfn minmag(half8 x, half8 y);
8199half16 __ovld __cnfn minmag(half16 x, half16 y);
8200#endif //cl_khr_fp16
8201
8202/**
8203 * Decompose a floating-point number. The modf
8204 * function breaks the argument x into integral and
8205 * fractional parts, each of which has the same sign as
8206 * the argument. It stores the integral part in the object
8207 * pointed to by iptr.
8208 */
8209#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8210float __ovld modf(float x, float *iptr);
8211float2 __ovld modf(float2 x, float2 *iptr);
8212float3 __ovld modf(float3 x, float3 *iptr);
8213float4 __ovld modf(float4 x, float4 *iptr);
8214float8 __ovld modf(float8 x, float8 *iptr);
8215float16 __ovld modf(float16 x, float16 *iptr);
8216#ifdef cl_khr_fp64
8217double __ovld modf(double x, double *iptr);
8218double2 __ovld modf(double2 x, double2 *iptr);
8219double3 __ovld modf(double3 x, double3 *iptr);
8220double4 __ovld modf(double4 x, double4 *iptr);
8221double8 __ovld modf(double8 x, double8 *iptr);
8222double16 __ovld modf(double16 x, double16 *iptr);
8223#endif //cl_khr_fp64
8224#ifdef cl_khr_fp16
8225half __ovld modf(half x, half *iptr);
8226half2 __ovld modf(half2 x, half2 *iptr);
8227half3 __ovld modf(half3 x, half3 *iptr);
8228half4 __ovld modf(half4 x, half4 *iptr);
8229half8 __ovld modf(half8 x, half8 *iptr);
8230half16 __ovld modf(half16 x, half16 *iptr);
8231#endif //cl_khr_fp16
8232#else
8233float __ovld modf(float x, __global float *iptr);
8234float2 __ovld modf(float2 x, __global float2 *iptr);
8235float3 __ovld modf(float3 x, __global float3 *iptr);
8236float4 __ovld modf(float4 x, __global float4 *iptr);
8237float8 __ovld modf(float8 x, __global float8 *iptr);
8238float16 __ovld modf(float16 x, __global float16 *iptr);
8239float __ovld modf(float x, __local float *iptr);
8240float2 __ovld modf(float2 x, __local float2 *iptr);
8241float3 __ovld modf(float3 x, __local float3 *iptr);
8242float4 __ovld modf(float4 x, __local float4 *iptr);
8243float8 __ovld modf(float8 x, __local float8 *iptr);
8244float16 __ovld modf(float16 x, __local float16 *iptr);
8245float __ovld modf(float x, __private float *iptr);
8246float2 __ovld modf(float2 x, __private float2 *iptr);
8247float3 __ovld modf(float3 x, __private float3 *iptr);
8248float4 __ovld modf(float4 x, __private float4 *iptr);
8249float8 __ovld modf(float8 x, __private float8 *iptr);
8250float16 __ovld modf(float16 x, __private float16 *iptr);
8251#ifdef cl_khr_fp64
8252double __ovld modf(double x, __global double *iptr);
8253double2 __ovld modf(double2 x, __global double2 *iptr);
8254double3 __ovld modf(double3 x, __global double3 *iptr);
8255double4 __ovld modf(double4 x, __global double4 *iptr);
8256double8 __ovld modf(double8 x, __global double8 *iptr);
8257double16 __ovld modf(double16 x, __global double16 *iptr);
8258double __ovld modf(double x, __local double *iptr);
8259double2 __ovld modf(double2 x, __local double2 *iptr);
8260double3 __ovld modf(double3 x, __local double3 *iptr);
8261double4 __ovld modf(double4 x, __local double4 *iptr);
8262double8 __ovld modf(double8 x, __local double8 *iptr);
8263double16 __ovld modf(double16 x, __local double16 *iptr);
8264double __ovld modf(double x, __private double *iptr);
8265double2 __ovld modf(double2 x, __private double2 *iptr);
8266double3 __ovld modf(double3 x, __private double3 *iptr);
8267double4 __ovld modf(double4 x, __private double4 *iptr);
8268double8 __ovld modf(double8 x, __private double8 *iptr);
8269double16 __ovld modf(double16 x, __private double16 *iptr);
8270#endif //cl_khr_fp64
8271#ifdef cl_khr_fp16
8272half __ovld modf(half x, __global half *iptr);
8273half2 __ovld modf(half2 x, __global half2 *iptr);
8274half3 __ovld modf(half3 x, __global half3 *iptr);
8275half4 __ovld modf(half4 x, __global half4 *iptr);
8276half8 __ovld modf(half8 x, __global half8 *iptr);
8277half16 __ovld modf(half16 x, __global half16 *iptr);
8278half __ovld modf(half x, __local half *iptr);
8279half2 __ovld modf(half2 x, __local half2 *iptr);
8280half3 __ovld modf(half3 x, __local half3 *iptr);
8281half4 __ovld modf(half4 x, __local half4 *iptr);
8282half8 __ovld modf(half8 x, __local half8 *iptr);
8283half16 __ovld modf(half16 x, __local half16 *iptr);
8284half __ovld modf(half x, __private half *iptr);
8285half2 __ovld modf(half2 x, __private half2 *iptr);
8286half3 __ovld modf(half3 x, __private half3 *iptr);
8287half4 __ovld modf(half4 x, __private half4 *iptr);
8288half8 __ovld modf(half8 x, __private half8 *iptr);
8289half16 __ovld modf(half16 x, __private half16 *iptr);
8290#endif //cl_khr_fp16
8291#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8292
8293/**
8294 * Returns a quiet NaN. The nancode may be placed
8295 * in the significand of the resulting NaN.
8296 */
8297float __ovld __cnfn nan(uint nancode);
8298float2 __ovld __cnfn nan(uint2 nancode);
8299float3 __ovld __cnfn nan(uint3 nancode);
8300float4 __ovld __cnfn nan(uint4 nancode);
8301float8 __ovld __cnfn nan(uint8 nancode);
8302float16 __ovld __cnfn nan(uint16 nancode);
8303#ifdef cl_khr_fp64
8304double __ovld __cnfn nan(ulong nancode);
8305double2 __ovld __cnfn nan(ulong2 nancode);
8306double3 __ovld __cnfn nan(ulong3 nancode);
8307double4 __ovld __cnfn nan(ulong4 nancode);
8308double8 __ovld __cnfn nan(ulong8 nancode);
8309double16 __ovld __cnfn nan(ulong16 nancode);
8310#endif //cl_khr_fp64
8311#ifdef cl_khr_fp16
8312half __ovld __cnfn nan(ushort nancode);
8313half2 __ovld __cnfn nan(ushort2 nancode);
8314half3 __ovld __cnfn nan(ushort3 nancode);
8315half4 __ovld __cnfn nan(ushort4 nancode);
8316half8 __ovld __cnfn nan(ushort8 nancode);
8317half16 __ovld __cnfn nan(ushort16 nancode);
8318#endif //cl_khr_fp16
8319
8320/**
8321 * Computes the next representable single-precision
8322 * floating-point value following x in the direction of
8323 * y. Thus, if y is less than x, nextafter() returns the
8324 * largest representable floating-point number less
8325 * than x.
8326 */
8327float __ovld __cnfn nextafter(float x, float y);
8328float2 __ovld __cnfn nextafter(float2 x, float2 y);
8329float3 __ovld __cnfn nextafter(float3 x, float3 y);
8330float4 __ovld __cnfn nextafter(float4 x, float4 y);
8331float8 __ovld __cnfn nextafter(float8 x, float8 y);
8332float16 __ovld __cnfn nextafter(float16 x, float16 y);
8333#ifdef cl_khr_fp64
8334double __ovld __cnfn nextafter(double x, double y);
8335double2 __ovld __cnfn nextafter(double2 x, double2 y);
8336double3 __ovld __cnfn nextafter(double3 x, double3 y);
8337double4 __ovld __cnfn nextafter(double4 x, double4 y);
8338double8 __ovld __cnfn nextafter(double8 x, double8 y);
8339double16 __ovld __cnfn nextafter(double16 x, double16 y);
8340#endif //cl_khr_fp64
8341#ifdef cl_khr_fp16
8342half __ovld __cnfn nextafter(half x, half y);
8343half2 __ovld __cnfn nextafter(half2 x, half2 y);
8344half3 __ovld __cnfn nextafter(half3 x, half3 y);
8345half4 __ovld __cnfn nextafter(half4 x, half4 y);
8346half8 __ovld __cnfn nextafter(half8 x, half8 y);
8347half16 __ovld __cnfn nextafter(half16 x, half16 y);
8348#endif //cl_khr_fp16
8349
8350/**
8351 * Compute x to the power y.
8352 */
8353float __ovld __cnfn pow(float x, float y);
8354float2 __ovld __cnfn pow(float2 x, float2 y);
8355float3 __ovld __cnfn pow(float3 x, float3 y);
8356float4 __ovld __cnfn pow(float4 x, float4 y);
8357float8 __ovld __cnfn pow(float8 x, float8 y);
8358float16 __ovld __cnfn pow(float16 x, float16 y);
8359#ifdef cl_khr_fp64
8360double __ovld __cnfn pow(double x, double y);
8361double2 __ovld __cnfn pow(double2 x, double2 y);
8362double3 __ovld __cnfn pow(double3 x, double3 y);
8363double4 __ovld __cnfn pow(double4 x, double4 y);
8364double8 __ovld __cnfn pow(double8 x, double8 y);
8365double16 __ovld __cnfn pow(double16 x, double16 y);
8366#endif //cl_khr_fp64
8367#ifdef cl_khr_fp16
8368half __ovld __cnfn pow(half x, half y);
8369half2 __ovld __cnfn pow(half2 x, half2 y);
8370half3 __ovld __cnfn pow(half3 x, half3 y);
8371half4 __ovld __cnfn pow(half4 x, half4 y);
8372half8 __ovld __cnfn pow(half8 x, half8 y);
8373half16 __ovld __cnfn pow(half16 x, half16 y);
8374#endif //cl_khr_fp16
8375
8376/**
8377 * Compute x to the power y, where y is an integer.
8378 */
8379float __ovld __cnfn pown(float x, int y);
8380float2 __ovld __cnfn pown(float2 x, int2 y);
8381float3 __ovld __cnfn pown(float3 x, int3 y);
8382float4 __ovld __cnfn pown(float4 x, int4 y);
8383float8 __ovld __cnfn pown(float8 x, int8 y);
8384float16 __ovld __cnfn pown(float16 x, int16 y);
8385#ifdef cl_khr_fp64
8386double __ovld __cnfn pown(double x, int y);
8387double2 __ovld __cnfn pown(double2 x, int2 y);
8388double3 __ovld __cnfn pown(double3 x, int3 y);
8389double4 __ovld __cnfn pown(double4 x, int4 y);
8390double8 __ovld __cnfn pown(double8 x, int8 y);
8391double16 __ovld __cnfn pown(double16 x, int16 y);
8392#endif //cl_khr_fp64
8393#ifdef cl_khr_fp16
8394half __ovld __cnfn pown(half x, int y);
8395half2 __ovld __cnfn pown(half2 x, int2 y);
8396half3 __ovld __cnfn pown(half3 x, int3 y);
8397half4 __ovld __cnfn pown(half4 x, int4 y);
8398half8 __ovld __cnfn pown(half8 x, int8 y);
8399half16 __ovld __cnfn pown(half16 x, int16 y);
8400#endif //cl_khr_fp16
8401
8402/**
8403 * Compute x to the power y, where x is >= 0.
8404 */
8405float __ovld __cnfn powr(float x, float y);
8406float2 __ovld __cnfn powr(float2 x, float2 y);
8407float3 __ovld __cnfn powr(float3 x, float3 y);
8408float4 __ovld __cnfn powr(float4 x, float4 y);
8409float8 __ovld __cnfn powr(float8 x, float8 y);
8410float16 __ovld __cnfn powr(float16 x, float16 y);
8411#ifdef cl_khr_fp64
8412double __ovld __cnfn powr(double x, double y);
8413double2 __ovld __cnfn powr(double2 x, double2 y);
8414double3 __ovld __cnfn powr(double3 x, double3 y);
8415double4 __ovld __cnfn powr(double4 x, double4 y);
8416double8 __ovld __cnfn powr(double8 x, double8 y);
8417double16 __ovld __cnfn powr(double16 x, double16 y);
8418#endif //cl_khr_fp64
8419#ifdef cl_khr_fp16
8420half __ovld __cnfn powr(half x, half y);
8421half2 __ovld __cnfn powr(half2 x, half2 y);
8422half3 __ovld __cnfn powr(half3 x, half3 y);
8423half4 __ovld __cnfn powr(half4 x, half4 y);
8424half8 __ovld __cnfn powr(half8 x, half8 y);
8425half16 __ovld __cnfn powr(half16 x, half16 y);
8426#endif //cl_khr_fp16
8427
8428/**
8429 * Compute the value r such that r = x - n*y, where n
8430 * is the integer nearest the exact value of x/y. If there
8431 * are two integers closest to x/y, n shall be the even
8432 * one. If r is zero, it is given the same sign as x.
8433 */
8434float __ovld __cnfn remainder(float x, float y);
8435float2 __ovld __cnfn remainder(float2 x, float2 y);
8436float3 __ovld __cnfn remainder(float3 x, float3 y);
8437float4 __ovld __cnfn remainder(float4 x, float4 y);
8438float8 __ovld __cnfn remainder(float8 x, float8 y);
8439float16 __ovld __cnfn remainder(float16 x, float16 y);
8440#ifdef cl_khr_fp64
8441double __ovld __cnfn remainder(double x, double y);
8442double2 __ovld __cnfn remainder(double2 x, double2 y);
8443double3 __ovld __cnfn remainder(double3 x, double3 y);
8444double4 __ovld __cnfn remainder(double4 x, double4 y);
8445double8 __ovld __cnfn remainder(double8 x, double8 y);
8446double16 __ovld __cnfn remainder(double16 x, double16 y);
8447#endif //cl_khr_fp64
8448#ifdef cl_khr_fp16
8449half __ovld __cnfn remainder(half x, half y);
8450half2 __ovld __cnfn remainder(half2 x, half2 y);
8451half3 __ovld __cnfn remainder(half3 x, half3 y);
8452half4 __ovld __cnfn remainder(half4 x, half4 y);
8453half8 __ovld __cnfn remainder(half8 x, half8 y);
8454half16 __ovld __cnfn remainder(half16 x, half16 y);
8455#endif //cl_khr_fp16
8456
8457/**
8458 * The remquo function computes the value r such
8459 * that r = x - n*y, where n is the integer nearest the
8460 * exact value of x/y. If there are two integers closest
8461 * to x/y, n shall be the even one. If r is zero, it is
8462 * given the same sign as x. This is the same value
8463 * that is returned by the remainder function.
8464 * remquo also calculates the lower seven bits of the
8465 * integral quotient x/y, and gives that value the same
8466 * sign as x/y. It stores this signed value in the object
8467 * pointed to by quo.
8468 */
8469#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8470float __ovld remquo(float x, float y, int *quo);
8471float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8472float3 __ovld remquo(float3 x, float3 y, int3 *quo);
8473float4 __ovld remquo(float4 x, float4 y, int4 *quo);
8474float8 __ovld remquo(float8 x, float8 y, int8 *quo);
8475float16 __ovld remquo(float16 x, float16 y, int16 *quo);
8476#ifdef cl_khr_fp64
8477double __ovld remquo(double x, double y, int *quo);
8478double2 __ovld remquo(double2 x, double2 y, int2 *quo);
8479double3 __ovld remquo(double3 x, double3 y, int3 *quo);
8480double4 __ovld remquo(double4 x, double4 y, int4 *quo);
8481double8 __ovld remquo(double8 x, double8 y, int8 *quo);
8482double16 __ovld remquo(double16 x, double16 y, int16 *quo);
8483#endif //cl_khr_fp64
8484#ifdef cl_khr_fp16
8485half __ovld remquo(half x, half y, int *quo);
8486half2 __ovld remquo(half2 x, half2 y, int2 *quo);
8487half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8488half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8489half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8490half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8491
8492#endif //cl_khr_fp16
8493#else
8494float __ovld remquo(float x, float y, __global int *quo);
8495float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8496float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
8497float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
8498float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
8499float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
8500float __ovld remquo(float x, float y, __local int *quo);
8501float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
8502float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
8503float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
8504float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
8505float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
8506float __ovld remquo(float x, float y, __private int *quo);
8507float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
8508float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
8509float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
8510float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
8511float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
8512#ifdef cl_khr_fp64
8513double __ovld remquo(double x, double y, __global int *quo);
8514double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
8515double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
8516double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
8517double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
8518double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
8519double __ovld remquo(double x, double y, __local int *quo);
8520double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
8521double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
8522double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
8523double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
8524double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
8525double __ovld remquo(double x, double y, __private int *quo);
8526double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
8527double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
8528double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
8529double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
8530double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
8531#endif //cl_khr_fp64
8532#ifdef cl_khr_fp16
8533half __ovld remquo(half x, half y, __global int *quo);
8534half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
8535half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
8536half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
8537half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
8538half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
8539half __ovld remquo(half x, half y, __local int *quo);
8540half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
8541half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
8542half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
8543half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
8544half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
8545half __ovld remquo(half x, half y, __private int *quo);
8546half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
8547half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
8548half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8549half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8550half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8551#endif //cl_khr_fp16
8552#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8553/**
8554 * Round to integral value (using round to nearest
8555 * even rounding mode) in floating-point format.
8556 * Refer to section 7.1 for description of rounding
8557 * modes.
8558 */
8559float __ovld __cnfn rint(float);
8560float2 __ovld __cnfn rint(float2);
8561float3 __ovld __cnfn rint(float3);
8562float4 __ovld __cnfn rint(float4);
8563float8 __ovld __cnfn rint(float8);
8564float16 __ovld __cnfn rint(float16);
8565#ifdef cl_khr_fp64
8566double __ovld __cnfn rint(double);
8567double2 __ovld __cnfn rint(double2);
8568double3 __ovld __cnfn rint(double3);
8569double4 __ovld __cnfn rint(double4);
8570double8 __ovld __cnfn rint(double8);
8571double16 __ovld __cnfn rint(double16);
8572#endif //cl_khr_fp64
8573#ifdef cl_khr_fp16
8574half __ovld __cnfn rint(half);
8575half2 __ovld __cnfn rint(half2);
8576half3 __ovld __cnfn rint(half3);
8577half4 __ovld __cnfn rint(half4);
8578half8 __ovld __cnfn rint(half8);
8579half16 __ovld __cnfn rint(half16);
8580#endif //cl_khr_fp16
8581
8582/**
8583 * Compute x to the power 1/y.
8584 */
8585float __ovld __cnfn rootn(float x, int y);
8586float2 __ovld __cnfn rootn(float2 x, int2 y);
8587float3 __ovld __cnfn rootn(float3 x, int3 y);
8588float4 __ovld __cnfn rootn(float4 x, int4 y);
8589float8 __ovld __cnfn rootn(float8 x, int8 y);
8590float16 __ovld __cnfn rootn(float16 x, int16 y);
8591#ifdef cl_khr_fp64
8592double __ovld __cnfn rootn(double x, int y);
8593double2 __ovld __cnfn rootn(double2 x, int2 y);
8594double3 __ovld __cnfn rootn(double3 x, int3 y);
8595double4 __ovld __cnfn rootn(double4 x, int4 y);
8596double8 __ovld __cnfn rootn(double8 x, int8 y);
8597double16 __ovld __cnfn rootn(double16 x, int16 y);
8598#endif //cl_khr_fp64
8599#ifdef cl_khr_fp16
8600half __ovld __cnfn rootn(half x, int y);
8601half2 __ovld __cnfn rootn(half2 x, int2 y);
8602half3 __ovld __cnfn rootn(half3 x, int3 y);
8603half4 __ovld __cnfn rootn(half4 x, int4 y);
8604half8 __ovld __cnfn rootn(half8 x, int8 y);
8605half16 __ovld __cnfn rootn(half16 x, int16 y);
8606#endif //cl_khr_fp16
8607
8608/**
8609 * Return the integral value nearest to x rounding
8610 * halfway cases away from zero, regardless of the
8611 * current rounding direction.
8612 */
8613float __ovld __cnfn round(float x);
8614float2 __ovld __cnfn round(float2 x);
8615float3 __ovld __cnfn round(float3 x);
8616float4 __ovld __cnfn round(float4 x);
8617float8 __ovld __cnfn round(float8 x);
8618float16 __ovld __cnfn round(float16 x);
8619#ifdef cl_khr_fp64
8620double __ovld __cnfn round(double x);
8621double2 __ovld __cnfn round(double2 x);
8622double3 __ovld __cnfn round(double3 x);
8623double4 __ovld __cnfn round(double4 x);
8624double8 __ovld __cnfn round(double8 x);
8625double16 __ovld __cnfn round(double16 x);
8626#endif //cl_khr_fp64
8627#ifdef cl_khr_fp16
8628half __ovld __cnfn round(half x);
8629half2 __ovld __cnfn round(half2 x);
8630half3 __ovld __cnfn round(half3 x);
8631half4 __ovld __cnfn round(half4 x);
8632half8 __ovld __cnfn round(half8 x);
8633half16 __ovld __cnfn round(half16 x);
8634#endif //cl_khr_fp16
8635
8636/**
8637 * Compute inverse square root.
8638 */
8639float __ovld __cnfn rsqrt(float);
8640float2 __ovld __cnfn rsqrt(float2);
8641float3 __ovld __cnfn rsqrt(float3);
8642float4 __ovld __cnfn rsqrt(float4);
8643float8 __ovld __cnfn rsqrt(float8);
8644float16 __ovld __cnfn rsqrt(float16);
8645#ifdef cl_khr_fp64
8646double __ovld __cnfn rsqrt(double);
8647double2 __ovld __cnfn rsqrt(double2);
8648double3 __ovld __cnfn rsqrt(double3);
8649double4 __ovld __cnfn rsqrt(double4);
8650double8 __ovld __cnfn rsqrt(double8);
8651double16 __ovld __cnfn rsqrt(double16);
8652#endif //cl_khr_fp64
8653#ifdef cl_khr_fp16
8654half __ovld __cnfn rsqrt(half);
8655half2 __ovld __cnfn rsqrt(half2);
8656half3 __ovld __cnfn rsqrt(half3);
8657half4 __ovld __cnfn rsqrt(half4);
8658half8 __ovld __cnfn rsqrt(half8);
8659half16 __ovld __cnfn rsqrt(half16);
8660#endif //cl_khr_fp16
8661
8662/**
8663 * Compute sine.
8664 */
8665float __ovld __cnfn sin(float);
8666float2 __ovld __cnfn sin(float2);
8667float3 __ovld __cnfn sin(float3);
8668float4 __ovld __cnfn sin(float4);
8669float8 __ovld __cnfn sin(float8);
8670float16 __ovld __cnfn sin(float16);
8671#ifdef cl_khr_fp64
8672double __ovld __cnfn sin(double);
8673double2 __ovld __cnfn sin(double2);
8674double3 __ovld __cnfn sin(double3);
8675double4 __ovld __cnfn sin(double4);
8676double8 __ovld __cnfn sin(double8);
8677double16 __ovld __cnfn sin(double16);
8678#endif //cl_khr_fp64
8679#ifdef cl_khr_fp16
8680half __ovld __cnfn sin(half);
8681half2 __ovld __cnfn sin(half2);
8682half3 __ovld __cnfn sin(half3);
8683half4 __ovld __cnfn sin(half4);
8684half8 __ovld __cnfn sin(half8);
8685half16 __ovld __cnfn sin(half16);
8686#endif //cl_khr_fp16
8687
8688/**
8689 * Compute sine and cosine of x. The computed sine
8690 * is the return value and computed cosine is returned
8691 * in cosval.
8692 */
8693#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8694float __ovld sincos(float x, float *cosval);
8695float2 __ovld sincos(float2 x, float2 *cosval);
8696float3 __ovld sincos(float3 x, float3 *cosval);
8697float4 __ovld sincos(float4 x, float4 *cosval);
8698float8 __ovld sincos(float8 x, float8 *cosval);
8699float16 __ovld sincos(float16 x, float16 *cosval);
8700#ifdef cl_khr_fp64
8701double __ovld sincos(double x, double *cosval);
8702double2 __ovld sincos(double2 x, double2 *cosval);
8703double3 __ovld sincos(double3 x, double3 *cosval);
8704double4 __ovld sincos(double4 x, double4 *cosval);
8705double8 __ovld sincos(double8 x, double8 *cosval);
8706double16 __ovld sincos(double16 x, double16 *cosval);
8707#endif //cl_khr_fp64
8708#ifdef cl_khr_fp16
8709half __ovld sincos(half x, half *cosval);
8710half2 __ovld sincos(half2 x, half2 *cosval);
8711half3 __ovld sincos(half3 x, half3 *cosval);
8712half4 __ovld sincos(half4 x, half4 *cosval);
8713half8 __ovld sincos(half8 x, half8 *cosval);
8714half16 __ovld sincos(half16 x, half16 *cosval);
8715#endif //cl_khr_fp16
8716#else
8717float __ovld sincos(float x, __global float *cosval);
8718float2 __ovld sincos(float2 x, __global float2 *cosval);
8719float3 __ovld sincos(float3 x, __global float3 *cosval);
8720float4 __ovld sincos(float4 x, __global float4 *cosval);
8721float8 __ovld sincos(float8 x, __global float8 *cosval);
8722float16 __ovld sincos(float16 x, __global float16 *cosval);
8723float __ovld sincos(float x, __local float *cosval);
8724float2 __ovld sincos(float2 x, __local float2 *cosval);
8725float3 __ovld sincos(float3 x, __local float3 *cosval);
8726float4 __ovld sincos(float4 x, __local float4 *cosval);
8727float8 __ovld sincos(float8 x, __local float8 *cosval);
8728float16 __ovld sincos(float16 x, __local float16 *cosval);
8729float __ovld sincos(float x, __private float *cosval);
8730float2 __ovld sincos(float2 x, __private float2 *cosval);
8731float3 __ovld sincos(float3 x, __private float3 *cosval);
8732float4 __ovld sincos(float4 x, __private float4 *cosval);
8733float8 __ovld sincos(float8 x, __private float8 *cosval);
8734float16 __ovld sincos(float16 x, __private float16 *cosval);
8735#ifdef cl_khr_fp64
8736double __ovld sincos(double x, __global double *cosval);
8737double2 __ovld sincos(double2 x, __global double2 *cosval);
8738double3 __ovld sincos(double3 x, __global double3 *cosval);
8739double4 __ovld sincos(double4 x, __global double4 *cosval);
8740double8 __ovld sincos(double8 x, __global double8 *cosval);
8741double16 __ovld sincos(double16 x, __global double16 *cosval);
8742double __ovld sincos(double x, __local double *cosval);
8743double2 __ovld sincos(double2 x, __local double2 *cosval);
8744double3 __ovld sincos(double3 x, __local double3 *cosval);
8745double4 __ovld sincos(double4 x, __local double4 *cosval);
8746double8 __ovld sincos(double8 x, __local double8 *cosval);
8747double16 __ovld sincos(double16 x, __local double16 *cosval);
8748double __ovld sincos(double x, __private double *cosval);
8749double2 __ovld sincos(double2 x, __private double2 *cosval);
8750double3 __ovld sincos(double3 x, __private double3 *cosval);
8751double4 __ovld sincos(double4 x, __private double4 *cosval);
8752double8 __ovld sincos(double8 x, __private double8 *cosval);
8753double16 __ovld sincos(double16 x, __private double16 *cosval);
8754#endif //cl_khr_fp64
8755#ifdef cl_khr_fp16
8756half __ovld sincos(half x, __global half *cosval);
8757half2 __ovld sincos(half2 x, __global half2 *cosval);
8758half3 __ovld sincos(half3 x, __global half3 *cosval);
8759half4 __ovld sincos(half4 x, __global half4 *cosval);
8760half8 __ovld sincos(half8 x, __global half8 *cosval);
8761half16 __ovld sincos(half16 x, __global half16 *cosval);
8762half __ovld sincos(half x, __local half *cosval);
8763half2 __ovld sincos(half2 x, __local half2 *cosval);
8764half3 __ovld sincos(half3 x, __local half3 *cosval);
8765half4 __ovld sincos(half4 x, __local half4 *cosval);
8766half8 __ovld sincos(half8 x, __local half8 *cosval);
8767half16 __ovld sincos(half16 x, __local half16 *cosval);
8768half __ovld sincos(half x, __private half *cosval);
8769half2 __ovld sincos(half2 x, __private half2 *cosval);
8770half3 __ovld sincos(half3 x, __private half3 *cosval);
8771half4 __ovld sincos(half4 x, __private half4 *cosval);
8772half8 __ovld sincos(half8 x, __private half8 *cosval);
8773half16 __ovld sincos(half16 x, __private half16 *cosval);
8774#endif //cl_khr_fp16
8775#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8776
8777/**
8778 * Compute hyperbolic sine.
8779 */
8780float __ovld __cnfn sinh(float);
8781float2 __ovld __cnfn sinh(float2);
8782float3 __ovld __cnfn sinh(float3);
8783float4 __ovld __cnfn sinh(float4);
8784float8 __ovld __cnfn sinh(float8);
8785float16 __ovld __cnfn sinh(float16);
8786#ifdef cl_khr_fp64
8787double __ovld __cnfn sinh(double);
8788double2 __ovld __cnfn sinh(double2);
8789double3 __ovld __cnfn sinh(double3);
8790double4 __ovld __cnfn sinh(double4);
8791double8 __ovld __cnfn sinh(double8);
8792double16 __ovld __cnfn sinh(double16);
8793#endif //cl_khr_fp64
8794#ifdef cl_khr_fp16
8795half __ovld __cnfn sinh(half);
8796half2 __ovld __cnfn sinh(half2);
8797half3 __ovld __cnfn sinh(half3);
8798half4 __ovld __cnfn sinh(half4);
8799half8 __ovld __cnfn sinh(half8);
8800half16 __ovld __cnfn sinh(half16);
8801#endif //cl_khr_fp16
8802
8803/**
8804 * Compute sin (PI * x).
8805 */
8806float __ovld __cnfn sinpi(float x);
8807float2 __ovld __cnfn sinpi(float2 x);
8808float3 __ovld __cnfn sinpi(float3 x);
8809float4 __ovld __cnfn sinpi(float4 x);
8810float8 __ovld __cnfn sinpi(float8 x);
8811float16 __ovld __cnfn sinpi(float16 x);
8812#ifdef cl_khr_fp64
8813double __ovld __cnfn sinpi(double x);
8814double2 __ovld __cnfn sinpi(double2 x);
8815double3 __ovld __cnfn sinpi(double3 x);
8816double4 __ovld __cnfn sinpi(double4 x);
8817double8 __ovld __cnfn sinpi(double8 x);
8818double16 __ovld __cnfn sinpi(double16 x);
8819#endif //cl_khr_fp64
8820#ifdef cl_khr_fp16
8821half __ovld __cnfn sinpi(half x);
8822half2 __ovld __cnfn sinpi(half2 x);
8823half3 __ovld __cnfn sinpi(half3 x);
8824half4 __ovld __cnfn sinpi(half4 x);
8825half8 __ovld __cnfn sinpi(half8 x);
8826half16 __ovld __cnfn sinpi(half16 x);
8827#endif //cl_khr_fp16
8828
8829/**
8830 * Compute square root.
8831 */
8832float __ovld __cnfn sqrt(float);
8833float2 __ovld __cnfn sqrt(float2);
8834float3 __ovld __cnfn sqrt(float3);
8835float4 __ovld __cnfn sqrt(float4);
8836float8 __ovld __cnfn sqrt(float8);
8837float16 __ovld __cnfn sqrt(float16);
8838#ifdef cl_khr_fp64
8839double __ovld __cnfn sqrt(double);
8840double2 __ovld __cnfn sqrt(double2);
8841double3 __ovld __cnfn sqrt(double3);
8842double4 __ovld __cnfn sqrt(double4);
8843double8 __ovld __cnfn sqrt(double8);
8844double16 __ovld __cnfn sqrt(double16);
8845#endif //cl_khr_fp64
8846#ifdef cl_khr_fp16
8847half __ovld __cnfn sqrt(half);
8848half2 __ovld __cnfn sqrt(half2);
8849half3 __ovld __cnfn sqrt(half3);
8850half4 __ovld __cnfn sqrt(half4);
8851half8 __ovld __cnfn sqrt(half8);
8852half16 __ovld __cnfn sqrt(half16);
8853#endif //cl_khr_fp16
8854
8855/**
8856 * Compute tangent.
8857 */
8858float __ovld __cnfn tan(float);
8859float2 __ovld __cnfn tan(float2);
8860float3 __ovld __cnfn tan(float3);
8861float4 __ovld __cnfn tan(float4);
8862float8 __ovld __cnfn tan(float8);
8863float16 __ovld __cnfn tan(float16);
8864#ifdef cl_khr_fp64
8865double __ovld __cnfn tan(double);
8866double2 __ovld __cnfn tan(double2);
8867double3 __ovld __cnfn tan(double3);
8868double4 __ovld __cnfn tan(double4);
8869double8 __ovld __cnfn tan(double8);
8870double16 __ovld __cnfn tan(double16);
8871#endif //cl_khr_fp64
8872#ifdef cl_khr_fp16
8873half __ovld __cnfn tan(half);
8874half2 __ovld __cnfn tan(half2);
8875half3 __ovld __cnfn tan(half3);
8876half4 __ovld __cnfn tan(half4);
8877half8 __ovld __cnfn tan(half8);
8878half16 __ovld __cnfn tan(half16);
8879#endif //cl_khr_fp16
8880
8881/**
8882 * Compute hyperbolic tangent.
8883 */
8884float __ovld __cnfn tanh(float);
8885float2 __ovld __cnfn tanh(float2);
8886float3 __ovld __cnfn tanh(float3);
8887float4 __ovld __cnfn tanh(float4);
8888float8 __ovld __cnfn tanh(float8);
8889float16 __ovld __cnfn tanh(float16);
8890#ifdef cl_khr_fp64
8891double __ovld __cnfn tanh(double);
8892double2 __ovld __cnfn tanh(double2);
8893double3 __ovld __cnfn tanh(double3);
8894double4 __ovld __cnfn tanh(double4);
8895double8 __ovld __cnfn tanh(double8);
8896double16 __ovld __cnfn tanh(double16);
8897#endif //cl_khr_fp64
8898#ifdef cl_khr_fp16
8899half __ovld __cnfn tanh(half);
8900half2 __ovld __cnfn tanh(half2);
8901half3 __ovld __cnfn tanh(half3);
8902half4 __ovld __cnfn tanh(half4);
8903half8 __ovld __cnfn tanh(half8);
8904half16 __ovld __cnfn tanh(half16);
8905#endif //cl_khr_fp16
8906
8907/**
8908 * Compute tan (PI * x).
8909 */
8910float __ovld __cnfn tanpi(float x);
8911float2 __ovld __cnfn tanpi(float2 x);
8912float3 __ovld __cnfn tanpi(float3 x);
8913float4 __ovld __cnfn tanpi(float4 x);
8914float8 __ovld __cnfn tanpi(float8 x);
8915float16 __ovld __cnfn tanpi(float16 x);
8916#ifdef cl_khr_fp64
8917double __ovld __cnfn tanpi(double x);
8918double2 __ovld __cnfn tanpi(double2 x);
8919double3 __ovld __cnfn tanpi(double3 x);
8920double4 __ovld __cnfn tanpi(double4 x);
8921double8 __ovld __cnfn tanpi(double8 x);
8922double16 __ovld __cnfn tanpi(double16 x);
8923#endif //cl_khr_fp64
8924#ifdef cl_khr_fp16
8925half __ovld __cnfn tanpi(half x);
8926half2 __ovld __cnfn tanpi(half2 x);
8927half3 __ovld __cnfn tanpi(half3 x);
8928half4 __ovld __cnfn tanpi(half4 x);
8929half8 __ovld __cnfn tanpi(half8 x);
8930half16 __ovld __cnfn tanpi(half16 x);
8931#endif //cl_khr_fp16
8932
8933/**
8934 * Compute the gamma function.
8935 */
8936float __ovld __cnfn tgamma(float);
8937float2 __ovld __cnfn tgamma(float2);
8938float3 __ovld __cnfn tgamma(float3);
8939float4 __ovld __cnfn tgamma(float4);
8940float8 __ovld __cnfn tgamma(float8);
8941float16 __ovld __cnfn tgamma(float16);
8942#ifdef cl_khr_fp64
8943double __ovld __cnfn tgamma(double);
8944double2 __ovld __cnfn tgamma(double2);
8945double3 __ovld __cnfn tgamma(double3);
8946double4 __ovld __cnfn tgamma(double4);
8947double8 __ovld __cnfn tgamma(double8);
8948double16 __ovld __cnfn tgamma(double16);
8949#endif //cl_khr_fp64
8950#ifdef cl_khr_fp16
8951half __ovld __cnfn tgamma(half);
8952half2 __ovld __cnfn tgamma(half2);
8953half3 __ovld __cnfn tgamma(half3);
8954half4 __ovld __cnfn tgamma(half4);
8955half8 __ovld __cnfn tgamma(half8);
8956half16 __ovld __cnfn tgamma(half16);
8957#endif //cl_khr_fp16
8958
8959/**
8960 * Round to integral value using the round to zero
8961 * rounding mode.
8962 */
8963float __ovld __cnfn trunc(float);
8964float2 __ovld __cnfn trunc(float2);
8965float3 __ovld __cnfn trunc(float3);
8966float4 __ovld __cnfn trunc(float4);
8967float8 __ovld __cnfn trunc(float8);
8968float16 __ovld __cnfn trunc(float16);
8969#ifdef cl_khr_fp64
8970double __ovld __cnfn trunc(double);
8971double2 __ovld __cnfn trunc(double2);
8972double3 __ovld __cnfn trunc(double3);
8973double4 __ovld __cnfn trunc(double4);
8974double8 __ovld __cnfn trunc(double8);
8975double16 __ovld __cnfn trunc(double16);
8976#endif //cl_khr_fp64
8977#ifdef cl_khr_fp16
8978half __ovld __cnfn trunc(half);
8979half2 __ovld __cnfn trunc(half2);
8980half3 __ovld __cnfn trunc(half3);
8981half4 __ovld __cnfn trunc(half4);
8982half8 __ovld __cnfn trunc(half8);
8983half16 __ovld __cnfn trunc(half16);
8984#endif //cl_khr_fp16
8985
8986/**
8987 * Compute cosine. x must be in the range -2^16 ... +2^16.
8988 */
8989float __ovld __cnfn half_cos(float x);
8990float2 __ovld __cnfn half_cos(float2 x);
8991float3 __ovld __cnfn half_cos(float3 x);
8992float4 __ovld __cnfn half_cos(float4 x);
8993float8 __ovld __cnfn half_cos(float8 x);
8994float16 __ovld __cnfn half_cos(float16 x);
8995
8996/**
8997 * Compute x / y.
8998 */
8999float __ovld __cnfn half_divide(float x, float y);
9000float2 __ovld __cnfn half_divide(float2 x, float2 y);
9001float3 __ovld __cnfn half_divide(float3 x, float3 y);
9002float4 __ovld __cnfn half_divide(float4 x, float4 y);
9003float8 __ovld __cnfn half_divide(float8 x, float8 y);
9004float16 __ovld __cnfn half_divide(float16 x, float16 y);
9005
9006/**
9007 * Compute the base- e exponential of x.
9008 */
9009float __ovld __cnfn half_exp(float x);
9010float2 __ovld __cnfn half_exp(float2 x);
9011float3 __ovld __cnfn half_exp(float3 x);
9012float4 __ovld __cnfn half_exp(float4 x);
9013float8 __ovld __cnfn half_exp(float8 x);
9014float16 __ovld __cnfn half_exp(float16 x);
9015
9016/**
9017 * Compute the base- 2 exponential of x.
9018 */
9019float __ovld __cnfn half_exp2(float x);
9020float2 __ovld __cnfn half_exp2(float2 x);
9021float3 __ovld __cnfn half_exp2(float3 x);
9022float4 __ovld __cnfn half_exp2(float4 x);
9023float8 __ovld __cnfn half_exp2(float8 x);
9024float16 __ovld __cnfn half_exp2(float16 x);
9025
9026/**
9027 * Compute the base- 10 exponential of x.
9028 */
9029float __ovld __cnfn half_exp10(float x);
9030float2 __ovld __cnfn half_exp10(float2 x);
9031float3 __ovld __cnfn half_exp10(float3 x);
9032float4 __ovld __cnfn half_exp10(float4 x);
9033float8 __ovld __cnfn half_exp10(float8 x);
9034float16 __ovld __cnfn half_exp10(float16 x);
9035
9036/**
9037 * Compute natural logarithm.
9038 */
9039float __ovld __cnfn half_log(float x);
9040float2 __ovld __cnfn half_log(float2 x);
9041float3 __ovld __cnfn half_log(float3 x);
9042float4 __ovld __cnfn half_log(float4 x);
9043float8 __ovld __cnfn half_log(float8 x);
9044float16 __ovld __cnfn half_log(float16 x);
9045
9046/**
9047 * Compute a base 2 logarithm.
9048 */
9049float __ovld __cnfn half_log2(float x);
9050float2 __ovld __cnfn half_log2(float2 x);
9051float3 __ovld __cnfn half_log2(float3 x);
9052float4 __ovld __cnfn half_log2(float4 x);
9053float8 __ovld __cnfn half_log2(float8 x);
9054float16 __ovld __cnfn half_log2(float16 x);
9055
9056/**
9057 * Compute a base 10 logarithm.
9058 */
9059float __ovld __cnfn half_log10(float x);
9060float2 __ovld __cnfn half_log10(float2 x);
9061float3 __ovld __cnfn half_log10(float3 x);
9062float4 __ovld __cnfn half_log10(float4 x);
9063float8 __ovld __cnfn half_log10(float8 x);
9064float16 __ovld __cnfn half_log10(float16 x);
9065
9066/**
9067 * Compute x to the power y, where x is >= 0.
9068 */
9069float __ovld __cnfn half_powr(float x, float y);
9070float2 __ovld __cnfn half_powr(float2 x, float2 y);
9071float3 __ovld __cnfn half_powr(float3 x, float3 y);
9072float4 __ovld __cnfn half_powr(float4 x, float4 y);
9073float8 __ovld __cnfn half_powr(float8 x, float8 y);
9074float16 __ovld __cnfn half_powr(float16 x, float16 y);
9075
9076/**
9077 * Compute reciprocal.
9078 */
9079float __ovld __cnfn half_recip(float x);
9080float2 __ovld __cnfn half_recip(float2 x);
9081float3 __ovld __cnfn half_recip(float3 x);
9082float4 __ovld __cnfn half_recip(float4 x);
9083float8 __ovld __cnfn half_recip(float8 x);
9084float16 __ovld __cnfn half_recip(float16 x);
9085
9086/**
9087 * Compute inverse square root.
9088 */
9089float __ovld __cnfn half_rsqrt(float x);
9090float2 __ovld __cnfn half_rsqrt(float2 x);
9091float3 __ovld __cnfn half_rsqrt(float3 x);
9092float4 __ovld __cnfn half_rsqrt(float4 x);
9093float8 __ovld __cnfn half_rsqrt(float8 x);
9094float16 __ovld __cnfn half_rsqrt(float16 x);
9095
9096/**
9097 * Compute sine. x must be in the range -2^16 ... +2^16.
9098 */
9099float __ovld __cnfn half_sin(float x);
9100float2 __ovld __cnfn half_sin(float2 x);
9101float3 __ovld __cnfn half_sin(float3 x);
9102float4 __ovld __cnfn half_sin(float4 x);
9103float8 __ovld __cnfn half_sin(float8 x);
9104float16 __ovld __cnfn half_sin(float16 x);
9105
9106/**
9107 * Compute square root.
9108 */
9109float __ovld __cnfn half_sqrt(float x);
9110float2 __ovld __cnfn half_sqrt(float2 x);
9111float3 __ovld __cnfn half_sqrt(float3 x);
9112float4 __ovld __cnfn half_sqrt(float4 x);
9113float8 __ovld __cnfn half_sqrt(float8 x);
9114float16 __ovld __cnfn half_sqrt(float16 x);
9115
9116/**
9117 * Compute tangent. x must be in the range -216 ... +216.
9118 */
9119float __ovld __cnfn half_tan(float x);
9120float2 __ovld __cnfn half_tan(float2 x);
9121float3 __ovld __cnfn half_tan(float3 x);
9122float4 __ovld __cnfn half_tan(float4 x);
9123float8 __ovld __cnfn half_tan(float8 x);
9124float16 __ovld __cnfn half_tan(float16 x);
9125
9126/**
9127 * Compute cosine over an implementation-defined range.
9128 * The maximum error is implementation-defined.
9129 */
9130float __ovld __cnfn native_cos(float x);
9131float2 __ovld __cnfn native_cos(float2 x);
9132float3 __ovld __cnfn native_cos(float3 x);
9133float4 __ovld __cnfn native_cos(float4 x);
9134float8 __ovld __cnfn native_cos(float8 x);
9135float16 __ovld __cnfn native_cos(float16 x);
9136
9137/**
9138 * Compute x / y over an implementation-defined range.
9139 * The maximum error is implementation-defined.
9140 */
9141float __ovld __cnfn native_divide(float x, float y);
9142float2 __ovld __cnfn native_divide(float2 x, float2 y);
9143float3 __ovld __cnfn native_divide(float3 x, float3 y);
9144float4 __ovld __cnfn native_divide(float4 x, float4 y);
9145float8 __ovld __cnfn native_divide(float8 x, float8 y);
9146float16 __ovld __cnfn native_divide(float16 x, float16 y);
9147
9148/**
9149 * Compute the base- e exponential of x over an
9150 * implementation-defined range. The maximum error is
9151 * implementation-defined.
9152 */
9153float __ovld __cnfn native_exp(float x);
9154float2 __ovld __cnfn native_exp(float2 x);
9155float3 __ovld __cnfn native_exp(float3 x);
9156float4 __ovld __cnfn native_exp(float4 x);
9157float8 __ovld __cnfn native_exp(float8 x);
9158float16 __ovld __cnfn native_exp(float16 x);
9159
9160/**
9161 * Compute the base- 2 exponential of x over an
9162 * implementation-defined range. The maximum error is
9163 * implementation-defined.
9164 */
9165float __ovld __cnfn native_exp2(float x);
9166float2 __ovld __cnfn native_exp2(float2 x);
9167float3 __ovld __cnfn native_exp2(float3 x);
9168float4 __ovld __cnfn native_exp2(float4 x);
9169float8 __ovld __cnfn native_exp2(float8 x);
9170float16 __ovld __cnfn native_exp2(float16 x);
9171
9172/**
9173 * Compute the base- 10 exponential of x over an
9174 * implementation-defined range. The maximum error is
9175 * implementation-defined.
9176 */
9177float __ovld __cnfn native_exp10(float x);
9178float2 __ovld __cnfn native_exp10(float2 x);
9179float3 __ovld __cnfn native_exp10(float3 x);
9180float4 __ovld __cnfn native_exp10(float4 x);
9181float8 __ovld __cnfn native_exp10(float8 x);
9182float16 __ovld __cnfn native_exp10(float16 x);
9183
9184/**
9185 * Compute natural logarithm over an implementationdefined
9186 * range. The maximum error is implementation
9187 * defined.
9188 */
9189float __ovld __cnfn native_log(float x);
9190float2 __ovld __cnfn native_log(float2 x);
9191float3 __ovld __cnfn native_log(float3 x);
9192float4 __ovld __cnfn native_log(float4 x);
9193float8 __ovld __cnfn native_log(float8 x);
9194float16 __ovld __cnfn native_log(float16 x);
9195
9196/**
9197 * Compute a base 2 logarithm over an implementationdefined
9198 * range. The maximum error is implementationdefined.
9199 */
9200float __ovld __cnfn native_log2(float x);
9201float2 __ovld __cnfn native_log2(float2 x);
9202float3 __ovld __cnfn native_log2(float3 x);
9203float4 __ovld __cnfn native_log2(float4 x);
9204float8 __ovld __cnfn native_log2(float8 x);
9205float16 __ovld __cnfn native_log2(float16 x);
9206
9207/**
9208 * Compute a base 10 logarithm over an implementationdefined
9209 * range. The maximum error is implementationdefined.
9210 */
9211float __ovld __cnfn native_log10(float x);
9212float2 __ovld __cnfn native_log10(float2 x);
9213float3 __ovld __cnfn native_log10(float3 x);
9214float4 __ovld __cnfn native_log10(float4 x);
9215float8 __ovld __cnfn native_log10(float8 x);
9216float16 __ovld __cnfn native_log10(float16 x);
9217
9218/**
9219 * Compute x to the power y, where x is >= 0. The range of
9220 * x and y are implementation-defined. The maximum error
9221 * is implementation-defined.
9222 */
9223float __ovld __cnfn native_powr(float x, float y);
9224float2 __ovld __cnfn native_powr(float2 x, float2 y);
9225float3 __ovld __cnfn native_powr(float3 x, float3 y);
9226float4 __ovld __cnfn native_powr(float4 x, float4 y);
9227float8 __ovld __cnfn native_powr(float8 x, float8 y);
9228float16 __ovld __cnfn native_powr(float16 x, float16 y);
9229
9230/**
9231 * Compute reciprocal over an implementation-defined
9232 * range. The maximum error is implementation-defined.
9233 */
9234float __ovld __cnfn native_recip(float x);
9235float2 __ovld __cnfn native_recip(float2 x);
9236float3 __ovld __cnfn native_recip(float3 x);
9237float4 __ovld __cnfn native_recip(float4 x);
9238float8 __ovld __cnfn native_recip(float8 x);
9239float16 __ovld __cnfn native_recip(float16 x);
9240
9241/**
9242 * Compute inverse square root over an implementationdefined
9243 * range. The maximum error is implementationdefined.
9244 */
9245float __ovld __cnfn native_rsqrt(float x);
9246float2 __ovld __cnfn native_rsqrt(float2 x);
9247float3 __ovld __cnfn native_rsqrt(float3 x);
9248float4 __ovld __cnfn native_rsqrt(float4 x);
9249float8 __ovld __cnfn native_rsqrt(float8 x);
9250float16 __ovld __cnfn native_rsqrt(float16 x);
9251
9252/**
9253 * Compute sine over an implementation-defined range.
9254 * The maximum error is implementation-defined.
9255 */
9256float __ovld __cnfn native_sin(float x);
9257float2 __ovld __cnfn native_sin(float2 x);
9258float3 __ovld __cnfn native_sin(float3 x);
9259float4 __ovld __cnfn native_sin(float4 x);
9260float8 __ovld __cnfn native_sin(float8 x);
9261float16 __ovld __cnfn native_sin(float16 x);
9262
9263/**
9264 * Compute square root over an implementation-defined
9265 * range. The maximum error is implementation-defined.
9266 */
9267float __ovld __cnfn native_sqrt(float x);
9268float2 __ovld __cnfn native_sqrt(float2 x);
9269float3 __ovld __cnfn native_sqrt(float3 x);
9270float4 __ovld __cnfn native_sqrt(float4 x);
9271float8 __ovld __cnfn native_sqrt(float8 x);
9272float16 __ovld __cnfn native_sqrt(float16 x);
9273
9274/**
9275 * Compute tangent over an implementation-defined range.
9276 * The maximum error is implementation-defined.
9277 */
9278float __ovld __cnfn native_tan(float x);
9279float2 __ovld __cnfn native_tan(float2 x);
9280float3 __ovld __cnfn native_tan(float3 x);
9281float4 __ovld __cnfn native_tan(float4 x);
9282float8 __ovld __cnfn native_tan(float8 x);
9283float16 __ovld __cnfn native_tan(float16 x);
9284
9285// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
9286
9287/**
9288 * Returns | x |.
9289 */
9290uchar __ovld __cnfn abs(char x);
9291uchar __ovld __cnfn abs(uchar x);
9292uchar2 __ovld __cnfn abs(char2 x);
9293uchar2 __ovld __cnfn abs(uchar2 x);
9294uchar3 __ovld __cnfn abs(char3 x);
9295uchar3 __ovld __cnfn abs(uchar3 x);
9296uchar4 __ovld __cnfn abs(char4 x);
9297uchar4 __ovld __cnfn abs(uchar4 x);
9298uchar8 __ovld __cnfn abs(char8 x);
9299uchar8 __ovld __cnfn abs(uchar8 x);
9300uchar16 __ovld __cnfn abs(char16 x);
9301uchar16 __ovld __cnfn abs(uchar16 x);
9302ushort __ovld __cnfn abs(short x);
9303ushort __ovld __cnfn abs(ushort x);
9304ushort2 __ovld __cnfn abs(short2 x);
9305ushort2 __ovld __cnfn abs(ushort2 x);
9306ushort3 __ovld __cnfn abs(short3 x);
9307ushort3 __ovld __cnfn abs(ushort3 x);
9308ushort4 __ovld __cnfn abs(short4 x);
9309ushort4 __ovld __cnfn abs(ushort4 x);
9310ushort8 __ovld __cnfn abs(short8 x);
9311ushort8 __ovld __cnfn abs(ushort8 x);
9312ushort16 __ovld __cnfn abs(short16 x);
9313ushort16 __ovld __cnfn abs(ushort16 x);
9314uint __ovld __cnfn abs(int x);
9315uint __ovld __cnfn abs(uint x);
9316uint2 __ovld __cnfn abs(int2 x);
9317uint2 __ovld __cnfn abs(uint2 x);
9318uint3 __ovld __cnfn abs(int3 x);
9319uint3 __ovld __cnfn abs(uint3 x);
9320uint4 __ovld __cnfn abs(int4 x);
9321uint4 __ovld __cnfn abs(uint4 x);
9322uint8 __ovld __cnfn abs(int8 x);
9323uint8 __ovld __cnfn abs(uint8 x);
9324uint16 __ovld __cnfn abs(int16 x);
9325uint16 __ovld __cnfn abs(uint16 x);
9326ulong __ovld __cnfn abs(long x);
9327ulong __ovld __cnfn abs(ulong x);
9328ulong2 __ovld __cnfn abs(long2 x);
9329ulong2 __ovld __cnfn abs(ulong2 x);
9330ulong3 __ovld __cnfn abs(long3 x);
9331ulong3 __ovld __cnfn abs(ulong3 x);
9332ulong4 __ovld __cnfn abs(long4 x);
9333ulong4 __ovld __cnfn abs(ulong4 x);
9334ulong8 __ovld __cnfn abs(long8 x);
9335ulong8 __ovld __cnfn abs(ulong8 x);
9336ulong16 __ovld __cnfn abs(long16 x);
9337ulong16 __ovld __cnfn abs(ulong16 x);
9338
9339/**
9340 * Returns | x - y | without modulo overflow.
9341 */
9342uchar __ovld __cnfn abs_diff(char x, char y);
9343uchar __ovld __cnfn abs_diff(uchar x, uchar y);
9344uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
9345uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
9346uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
9347uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
9348uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
9349uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
9350uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
9351uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
9352uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
9353uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
9354ushort __ovld __cnfn abs_diff(short x, short y);
9355ushort __ovld __cnfn abs_diff(ushort x, ushort y);
9356ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
9357ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
9358ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
9359ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
9360ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
9361ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
9362ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
9363ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
9364ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
9365ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
9366uint __ovld __cnfn abs_diff(int x, int y);
9367uint __ovld __cnfn abs_diff(uint x, uint y);
9368uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
9369uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
9370uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
9371uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
9372uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
9373uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
9374uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
9375uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
9376uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
9377uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
9378ulong __ovld __cnfn abs_diff(long x, long y);
9379ulong __ovld __cnfn abs_diff(ulong x, ulong y);
9380ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
9381ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
9382ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
9383ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
9384ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
9385ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
9386ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
9387ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
9388ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
9389ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
9390
9391/**
9392 * Returns x + y and saturates the result.
9393 */
9394char __ovld __cnfn add_sat(char x, char y);
9395uchar __ovld __cnfn add_sat(uchar x, uchar y);
9396char2 __ovld __cnfn add_sat(char2 x, char2 y);
9397uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
9398char3 __ovld __cnfn add_sat(char3 x, char3 y);
9399uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
9400char4 __ovld __cnfn add_sat(char4 x, char4 y);
9401uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
9402char8 __ovld __cnfn add_sat(char8 x, char8 y);
9403uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
9404char16 __ovld __cnfn add_sat(char16 x, char16 y);
9405uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
9406short __ovld __cnfn add_sat(short x, short y);
9407ushort __ovld __cnfn add_sat(ushort x, ushort y);
9408short2 __ovld __cnfn add_sat(short2 x, short2 y);
9409ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
9410short3 __ovld __cnfn add_sat(short3 x, short3 y);
9411ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
9412short4 __ovld __cnfn add_sat(short4 x, short4 y);
9413ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
9414short8 __ovld __cnfn add_sat(short8 x, short8 y);
9415ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
9416short16 __ovld __cnfn add_sat(short16 x, short16 y);
9417ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
9418int __ovld __cnfn add_sat(int x, int y);
9419uint __ovld __cnfn add_sat(uint x, uint y);
9420int2 __ovld __cnfn add_sat(int2 x, int2 y);
9421uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
9422int3 __ovld __cnfn add_sat(int3 x, int3 y);
9423uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
9424int4 __ovld __cnfn add_sat(int4 x, int4 y);
9425uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
9426int8 __ovld __cnfn add_sat(int8 x, int8 y);
9427uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
9428int16 __ovld __cnfn add_sat(int16 x, int16 y);
9429uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
9430long __ovld __cnfn add_sat(long x, long y);
9431ulong __ovld __cnfn add_sat(ulong x, ulong y);
9432long2 __ovld __cnfn add_sat(long2 x, long2 y);
9433ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
9434long3 __ovld __cnfn add_sat(long3 x, long3 y);
9435ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
9436long4 __ovld __cnfn add_sat(long4 x, long4 y);
9437ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
9438long8 __ovld __cnfn add_sat(long8 x, long8 y);
9439ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
9440long16 __ovld __cnfn add_sat(long16 x, long16 y);
9441ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
9442
9443/**
9444 * Returns (x + y) >> 1. The intermediate sum does
9445 * not modulo overflow.
9446 */
9447char __ovld __cnfn hadd(char x, char y);
9448uchar __ovld __cnfn hadd(uchar x, uchar y);
9449char2 __ovld __cnfn hadd(char2 x, char2 y);
9450uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
9451char3 __ovld __cnfn hadd(char3 x, char3 y);
9452uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
9453char4 __ovld __cnfn hadd(char4 x, char4 y);
9454uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
9455char8 __ovld __cnfn hadd(char8 x, char8 y);
9456uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
9457char16 __ovld __cnfn hadd(char16 x, char16 y);
9458uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
9459short __ovld __cnfn hadd(short x, short y);
9460ushort __ovld __cnfn hadd(ushort x, ushort y);
9461short2 __ovld __cnfn hadd(short2 x, short2 y);
9462ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
9463short3 __ovld __cnfn hadd(short3 x, short3 y);
9464ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
9465short4 __ovld __cnfn hadd(short4 x, short4 y);
9466ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
9467short8 __ovld __cnfn hadd(short8 x, short8 y);
9468ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
9469short16 __ovld __cnfn hadd(short16 x, short16 y);
9470ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
9471int __ovld __cnfn hadd(int x, int y);
9472uint __ovld __cnfn hadd(uint x, uint y);
9473int2 __ovld __cnfn hadd(int2 x, int2 y);
9474uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
9475int3 __ovld __cnfn hadd(int3 x, int3 y);
9476uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
9477int4 __ovld __cnfn hadd(int4 x, int4 y);
9478uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
9479int8 __ovld __cnfn hadd(int8 x, int8 y);
9480uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
9481int16 __ovld __cnfn hadd(int16 x, int16 y);
9482uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
9483long __ovld __cnfn hadd(long x, long y);
9484ulong __ovld __cnfn hadd(ulong x, ulong y);
9485long2 __ovld __cnfn hadd(long2 x, long2 y);
9486ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
9487long3 __ovld __cnfn hadd(long3 x, long3 y);
9488ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
9489long4 __ovld __cnfn hadd(long4 x, long4 y);
9490ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
9491long8 __ovld __cnfn hadd(long8 x, long8 y);
9492ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
9493long16 __ovld __cnfn hadd(long16 x, long16 y);
9494ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
9495
9496/**
9497 * Returns (x + y + 1) >> 1. The intermediate sum
9498 * does not modulo overflow.
9499 */
9500char __ovld __cnfn rhadd(char x, char y);
9501uchar __ovld __cnfn rhadd(uchar x, uchar y);
9502char2 __ovld __cnfn rhadd(char2 x, char2 y);
9503uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
9504char3 __ovld __cnfn rhadd(char3 x, char3 y);
9505uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
9506char4 __ovld __cnfn rhadd(char4 x, char4 y);
9507uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
9508char8 __ovld __cnfn rhadd(char8 x, char8 y);
9509uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
9510char16 __ovld __cnfn rhadd(char16 x, char16 y);
9511uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
9512short __ovld __cnfn rhadd(short x, short y);
9513ushort __ovld __cnfn rhadd(ushort x, ushort y);
9514short2 __ovld __cnfn rhadd(short2 x, short2 y);
9515ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
9516short3 __ovld __cnfn rhadd(short3 x, short3 y);
9517ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
9518short4 __ovld __cnfn rhadd(short4 x, short4 y);
9519ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
9520short8 __ovld __cnfn rhadd(short8 x, short8 y);
9521ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
9522short16 __ovld __cnfn rhadd(short16 x, short16 y);
9523ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
9524int __ovld __cnfn rhadd(int x, int y);
9525uint __ovld __cnfn rhadd(uint x, uint y);
9526int2 __ovld __cnfn rhadd(int2 x, int2 y);
9527uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
9528int3 __ovld __cnfn rhadd(int3 x, int3 y);
9529uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
9530int4 __ovld __cnfn rhadd(int4 x, int4 y);
9531uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
9532int8 __ovld __cnfn rhadd(int8 x, int8 y);
9533uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
9534int16 __ovld __cnfn rhadd(int16 x, int16 y);
9535uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
9536long __ovld __cnfn rhadd(long x, long y);
9537ulong __ovld __cnfn rhadd(ulong x, ulong y);
9538long2 __ovld __cnfn rhadd(long2 x, long2 y);
9539ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
9540long3 __ovld __cnfn rhadd(long3 x, long3 y);
9541ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
9542long4 __ovld __cnfn rhadd(long4 x, long4 y);
9543ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
9544long8 __ovld __cnfn rhadd(long8 x, long8 y);
9545ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
9546long16 __ovld __cnfn rhadd(long16 x, long16 y);
9547ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
9548
9549/**
9550 * Returns min(max(x, minval), maxval).
9551 * Results are undefined if minval > maxval.
9552 */
9553char __ovld __cnfn clamp(char x, char minval, char maxval);
9554uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
9555char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
9556uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
9557char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
9558uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
9559char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
9560uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
9561char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
9562uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
9563char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
9564uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
9565short __ovld __cnfn clamp(short x, short minval, short maxval);
9566ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
9567short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
9568ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
9569short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
9570ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
9571short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
9572ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
9573short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
9574ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
9575short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
9576ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
9577int __ovld __cnfn clamp(int x, int minval, int maxval);
9578uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
9579int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
9580uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
9581int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
9582uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
9583int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
9584uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
9585int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
9586uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
9587int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
9588uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
9589long __ovld __cnfn clamp(long x, long minval, long maxval);
9590ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
9591long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
9592ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
9593long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
9594ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
9595long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
9596ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
9597long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
9598ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
9599long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
9600ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
9601char __ovld __cnfn clamp(char x, char minval, char maxval);
9602uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
9603char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
9604uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
9605char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
9606uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
9607char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
9608uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
9609char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
9610uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
9611char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
9612uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
9613short __ovld __cnfn clamp(short x, short minval, short maxval);
9614ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
9615short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
9616ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
9617short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
9618ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
9619short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
9620ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
9621short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
9622ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
9623short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
9624ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
9625int __ovld __cnfn clamp(int x, int minval, int maxval);
9626uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
9627int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
9628uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
9629int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
9630uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
9631int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
9632uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
9633int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
9634uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
9635int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
9636uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
9637long __ovld __cnfn clamp(long x, long minval, long maxval);
9638ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
9639long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
9640ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
9641long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
9642ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
9643long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
9644ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
9645long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
9646ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
9647long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
9648ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
9649
9650/**
9651 * Returns the number of leading 0-bits in x, starting
9652 * at the most significant bit position.
9653 */
9654char __ovld __cnfn clz(char x);
9655uchar __ovld __cnfn clz(uchar x);
9656char2 __ovld __cnfn clz(char2 x);
9657uchar2 __ovld __cnfn clz(uchar2 x);
9658char3 __ovld __cnfn clz(char3 x);
9659uchar3 __ovld __cnfn clz(uchar3 x);
9660char4 __ovld __cnfn clz(char4 x);
9661uchar4 __ovld __cnfn clz(uchar4 x);
9662char8 __ovld __cnfn clz(char8 x);
9663uchar8 __ovld __cnfn clz(uchar8 x);
9664char16 __ovld __cnfn clz(char16 x);
9665uchar16 __ovld __cnfn clz(uchar16 x);
9666short __ovld __cnfn clz(short x);
9667ushort __ovld __cnfn clz(ushort x);
9668short2 __ovld __cnfn clz(short2 x);
9669ushort2 __ovld __cnfn clz(ushort2 x);
9670short3 __ovld __cnfn clz(short3 x);
9671ushort3 __ovld __cnfn clz(ushort3 x);
9672short4 __ovld __cnfn clz(short4 x);
9673ushort4 __ovld __cnfn clz(ushort4 x);
9674short8 __ovld __cnfn clz(short8 x);
9675ushort8 __ovld __cnfn clz(ushort8 x);
9676short16 __ovld __cnfn clz(short16 x);
9677ushort16 __ovld __cnfn clz(ushort16 x);
9678int __ovld __cnfn clz(int x);
9679uint __ovld __cnfn clz(uint x);
9680int2 __ovld __cnfn clz(int2 x);
9681uint2 __ovld __cnfn clz(uint2 x);
9682int3 __ovld __cnfn clz(int3 x);
9683uint3 __ovld __cnfn clz(uint3 x);
9684int4 __ovld __cnfn clz(int4 x);
9685uint4 __ovld __cnfn clz(uint4 x);
9686int8 __ovld __cnfn clz(int8 x);
9687uint8 __ovld __cnfn clz(uint8 x);
9688int16 __ovld __cnfn clz(int16 x);
9689uint16 __ovld __cnfn clz(uint16 x);
9690long __ovld __cnfn clz(long x);
9691ulong __ovld __cnfn clz(ulong x);
9692long2 __ovld __cnfn clz(long2 x);
9693ulong2 __ovld __cnfn clz(ulong2 x);
9694long3 __ovld __cnfn clz(long3 x);
9695ulong3 __ovld __cnfn clz(ulong3 x);
9696long4 __ovld __cnfn clz(long4 x);
9697ulong4 __ovld __cnfn clz(ulong4 x);
9698long8 __ovld __cnfn clz(long8 x);
9699ulong8 __ovld __cnfn clz(ulong8 x);
9700long16 __ovld __cnfn clz(long16 x);
9701ulong16 __ovld __cnfn clz(ulong16 x);
9702
9703/**
9704 * Returns the count of trailing 0-bits in x. If x is 0,
9705 * returns the size in bits of the type of x or
9706 * component type of x, if x is a vector.
9707 */
9708#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9709char __ovld ctz(char x);
9710uchar __ovld ctz(uchar x);
9711char2 __ovld ctz(char2 x);
9712uchar2 __ovld ctz(uchar2 x);
9713char3 __ovld ctz(char3 x);
9714uchar3 __ovld ctz(uchar3 x);
9715char4 __ovld ctz(char4 x);
9716uchar4 __ovld ctz(uchar4 x);
9717char8 __ovld ctz(char8 x);
9718uchar8 __ovld ctz(uchar8 x);
9719char16 __ovld ctz(char16 x);
9720uchar16 __ovld ctz(uchar16 x);
9721short __ovld ctz(short x);
9722ushort __ovld ctz(ushort x);
9723short2 __ovld ctz(short2 x);
9724ushort2 __ovld ctz(ushort2 x);
9725short3 __ovld ctz(short3 x);
9726ushort3 __ovld ctz(ushort3 x);
9727short4 __ovld ctz(short4 x);
9728ushort4 __ovld ctz(ushort4 x);
9729short8 __ovld ctz(short8 x);
9730ushort8 __ovld ctz(ushort8 x);
9731short16 __ovld ctz(short16 x);
9732ushort16 __ovld ctz(ushort16 x);
9733int __ovld ctz(int x);
9734uint __ovld ctz(uint x);
9735int2 __ovld ctz(int2 x);
9736uint2 __ovld ctz(uint2 x);
9737int3 __ovld ctz(int3 x);
9738uint3 __ovld ctz(uint3 x);
9739int4 __ovld ctz(int4 x);
9740uint4 __ovld ctz(uint4 x);
9741int8 __ovld ctz(int8 x);
9742uint8 __ovld ctz(uint8 x);
9743int16 __ovld ctz(int16 x);
9744uint16 __ovld ctz(uint16 x);
9745long __ovld ctz(long x);
9746ulong __ovld ctz(ulong x);
9747long2 __ovld ctz(long2 x);
9748ulong2 __ovld ctz(ulong2 x);
9749long3 __ovld ctz(long3 x);
9750ulong3 __ovld ctz(ulong3 x);
9751long4 __ovld ctz(long4 x);
9752ulong4 __ovld ctz(ulong4 x);
9753long8 __ovld ctz(long8 x);
9754ulong8 __ovld ctz(ulong8 x);
9755long16 __ovld ctz(long16 x);
9756ulong16 __ovld ctz(ulong16 x);
9757#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9758
9759/**
9760 * Returns mul_hi(a, b) + c.
9761 */
9762char __ovld __cnfn mad_hi(char a, char b, char c);
9763uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
9764char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
9765uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
9766char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
9767uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
9768char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
9769uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
9770char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
9771uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
9772char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
9773uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
9774short __ovld __cnfn mad_hi(short a, short b, short c);
9775ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
9776short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
9777ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
9778short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
9779ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
9780short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
9781ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
9782short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
9783ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
9784short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
9785ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
9786int __ovld __cnfn mad_hi(int a, int b, int c);
9787uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
9788int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
9789uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
9790int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
9791uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
9792int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
9793uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
9794int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
9795uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
9796int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
9797uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
9798long __ovld __cnfn mad_hi(long a, long b, long c);
9799ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
9800long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
9801ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
9802long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
9803ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
9804long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
9805ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
9806long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
9807ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
9808long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
9809ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
9810
9811/**
9812 * Returns a * b + c and saturates the result.
9813 */
9814char __ovld __cnfn mad_sat(char a, char b, char c);
9815uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
9816char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
9817uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
9818char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
9819uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
9820char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
9821uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
9822char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
9823uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
9824char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
9825uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
9826short __ovld __cnfn mad_sat(short a, short b, short c);
9827ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
9828short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
9829ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
9830short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
9831ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
9832short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
9833ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
9834short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
9835ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
9836short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
9837ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
9838int __ovld __cnfn mad_sat(int a, int b, int c);
9839uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
9840int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
9841uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
9842int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
9843uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
9844int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
9845uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
9846int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
9847uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
9848int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
9849uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
9850long __ovld __cnfn mad_sat(long a, long b, long c);
9851ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
9852long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
9853ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
9854long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
9855ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
9856long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
9857ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
9858long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
9859ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
9860long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
9861ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
9862
9863/**
9864 * Returns y if x < y, otherwise it returns x.
9865 */
9866char __ovld __cnfn max(char x, char y);
9867uchar __ovld __cnfn max(uchar x, uchar y);
9868char2 __ovld __cnfn max(char2 x, char2 y);
9869uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
9870char3 __ovld __cnfn max(char3 x, char3 y);
9871uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
9872char4 __ovld __cnfn max(char4 x, char4 y);
9873uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
9874char8 __ovld __cnfn max(char8 x, char8 y);
9875uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
9876char16 __ovld __cnfn max(char16 x, char16 y);
9877uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
9878short __ovld __cnfn max(short x, short y);
9879ushort __ovld __cnfn max(ushort x, ushort y);
9880short2 __ovld __cnfn max(short2 x, short2 y);
9881ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
9882short3 __ovld __cnfn max(short3 x, short3 y);
9883ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
9884short4 __ovld __cnfn max(short4 x, short4 y);
9885ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
9886short8 __ovld __cnfn max(short8 x, short8 y);
9887ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
9888short16 __ovld __cnfn max(short16 x, short16 y);
9889ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
9890int __ovld __cnfn max(int x, int y);
9891uint __ovld __cnfn max(uint x, uint y);
9892int2 __ovld __cnfn max(int2 x, int2 y);
9893uint2 __ovld __cnfn max(uint2 x, uint2 y);
9894int3 __ovld __cnfn max(int3 x, int3 y);
9895uint3 __ovld __cnfn max(uint3 x, uint3 y);
9896int4 __ovld __cnfn max(int4 x, int4 y);
9897uint4 __ovld __cnfn max(uint4 x, uint4 y);
9898int8 __ovld __cnfn max(int8 x, int8 y);
9899uint8 __ovld __cnfn max(uint8 x, uint8 y);
9900int16 __ovld __cnfn max(int16 x, int16 y);
9901uint16 __ovld __cnfn max(uint16 x, uint16 y);
9902long __ovld __cnfn max(long x, long y);
9903ulong __ovld __cnfn max(ulong x, ulong y);
9904long2 __ovld __cnfn max(long2 x, long2 y);
9905ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
9906long3 __ovld __cnfn max(long3 x, long3 y);
9907ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
9908long4 __ovld __cnfn max(long4 x, long4 y);
9909ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
9910long8 __ovld __cnfn max(long8 x, long8 y);
9911ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
9912long16 __ovld __cnfn max(long16 x, long16 y);
9913ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
9914char __ovld __cnfn max(char x, char y);
9915uchar __ovld __cnfn max(uchar x, uchar y);
9916char2 __ovld __cnfn max(char2 x, char y);
9917uchar2 __ovld __cnfn max(uchar2 x, uchar y);
9918char3 __ovld __cnfn max(char3 x, char y);
9919uchar3 __ovld __cnfn max(uchar3 x, uchar y);
9920char4 __ovld __cnfn max(char4 x, char y);
9921uchar4 __ovld __cnfn max(uchar4 x, uchar y);
9922char8 __ovld __cnfn max(char8 x, char y);
9923uchar8 __ovld __cnfn max(uchar8 x, uchar y);
9924char16 __ovld __cnfn max(char16 x, char y);
9925uchar16 __ovld __cnfn max(uchar16 x, uchar y);
9926short __ovld __cnfn max(short x, short y);
9927ushort __ovld __cnfn max(ushort x, ushort y);
9928short2 __ovld __cnfn max(short2 x, short y);
9929ushort2 __ovld __cnfn max(ushort2 x, ushort y);
9930short3 __ovld __cnfn max(short3 x, short y);
9931ushort3 __ovld __cnfn max(ushort3 x, ushort y);
9932short4 __ovld __cnfn max(short4 x, short y);
9933ushort4 __ovld __cnfn max(ushort4 x, ushort y);
9934short8 __ovld __cnfn max(short8 x, short y);
9935ushort8 __ovld __cnfn max(ushort8 x, ushort y);
9936short16 __ovld __cnfn max(short16 x, short y);
9937ushort16 __ovld __cnfn max(ushort16 x, ushort y);
9938int __ovld __cnfn max(int x, int y);
9939uint __ovld __cnfn max(uint x, uint y);
9940int2 __ovld __cnfn max(int2 x, int y);
9941uint2 __ovld __cnfn max(uint2 x, uint y);
9942int3 __ovld __cnfn max(int3 x, int y);
9943uint3 __ovld __cnfn max(uint3 x, uint y);
9944int4 __ovld __cnfn max(int4 x, int y);
9945uint4 __ovld __cnfn max(uint4 x, uint y);
9946int8 __ovld __cnfn max(int8 x, int y);
9947uint8 __ovld __cnfn max(uint8 x, uint y);
9948int16 __ovld __cnfn max(int16 x, int y);
9949uint16 __ovld __cnfn max(uint16 x, uint y);
9950long __ovld __cnfn max(long x, long y);
9951ulong __ovld __cnfn max(ulong x, ulong y);
9952long2 __ovld __cnfn max(long2 x, long y);
9953ulong2 __ovld __cnfn max(ulong2 x, ulong y);
9954long3 __ovld __cnfn max(long3 x, long y);
9955ulong3 __ovld __cnfn max(ulong3 x, ulong y);
9956long4 __ovld __cnfn max(long4 x, long y);
9957ulong4 __ovld __cnfn max(ulong4 x, ulong y);
9958long8 __ovld __cnfn max(long8 x, long y);
9959ulong8 __ovld __cnfn max(ulong8 x, ulong y);
9960long16 __ovld __cnfn max(long16 x, long y);
9961ulong16 __ovld __cnfn max(ulong16 x, ulong y);
9962
9963/**
9964 * Returns y if y < x, otherwise it returns x.
9965 */
9966char __ovld __cnfn min(char x, char y);
9967uchar __ovld __cnfn min(uchar x, uchar y);
9968char2 __ovld __cnfn min(char2 x, char2 y);
9969uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
9970char3 __ovld __cnfn min(char3 x, char3 y);
9971uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
9972char4 __ovld __cnfn min(char4 x, char4 y);
9973uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
9974char8 __ovld __cnfn min(char8 x, char8 y);
9975uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
9976char16 __ovld __cnfn min(char16 x, char16 y);
9977uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
9978short __ovld __cnfn min(short x, short y);
9979ushort __ovld __cnfn min(ushort x, ushort y);
9980short2 __ovld __cnfn min(short2 x, short2 y);
9981ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
9982short3 __ovld __cnfn min(short3 x, short3 y);
9983ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
9984short4 __ovld __cnfn min(short4 x, short4 y);
9985ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
9986short8 __ovld __cnfn min(short8 x, short8 y);
9987ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
9988short16 __ovld __cnfn min(short16 x, short16 y);
9989ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
9990int __ovld __cnfn min(int x, int y);
9991uint __ovld __cnfn min(uint x, uint y);
9992int2 __ovld __cnfn min(int2 x, int2 y);
9993uint2 __ovld __cnfn min(uint2 x, uint2 y);
9994int3 __ovld __cnfn min(int3 x, int3 y);
9995uint3 __ovld __cnfn min(uint3 x, uint3 y);
9996int4 __ovld __cnfn min(int4 x, int4 y);
9997uint4 __ovld __cnfn min(uint4 x, uint4 y);
9998int8 __ovld __cnfn min(int8 x, int8 y);
9999uint8 __ovld __cnfn min(uint8 x, uint8 y);
10000int16 __ovld __cnfn min(int16 x, int16 y);
10001uint16 __ovld __cnfn min(uint16 x, uint16 y);
10002long __ovld __cnfn min(long x, long y);
10003ulong __ovld __cnfn min(ulong x, ulong y);
10004long2 __ovld __cnfn min(long2 x, long2 y);
10005ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
10006long3 __ovld __cnfn min(long3 x, long3 y);
10007ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
10008long4 __ovld __cnfn min(long4 x, long4 y);
10009ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
10010long8 __ovld __cnfn min(long8 x, long8 y);
10011ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
10012long16 __ovld __cnfn min(long16 x, long16 y);
10013ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
10014char __ovld __cnfn min(char x, char y);
10015uchar __ovld __cnfn min(uchar x, uchar y);
10016char2 __ovld __cnfn min(char2 x, char y);
10017uchar2 __ovld __cnfn min(uchar2 x, uchar y);
10018char3 __ovld __cnfn min(char3 x, char y);
10019uchar3 __ovld __cnfn min(uchar3 x, uchar y);
10020char4 __ovld __cnfn min(char4 x, char y);
10021uchar4 __ovld __cnfn min(uchar4 x, uchar y);
10022char8 __ovld __cnfn min(char8 x, char y);
10023uchar8 __ovld __cnfn min(uchar8 x, uchar y);
10024char16 __ovld __cnfn min(char16 x, char y);
10025uchar16 __ovld __cnfn min(uchar16 x, uchar y);
10026short __ovld __cnfn min(short x, short y);
10027ushort __ovld __cnfn min(ushort x, ushort y);
10028short2 __ovld __cnfn min(short2 x, short y);
10029ushort2 __ovld __cnfn min(ushort2 x, ushort y);
10030short3 __ovld __cnfn min(short3 x, short y);
10031ushort3 __ovld __cnfn min(ushort3 x, ushort y);
10032short4 __ovld __cnfn min(short4 x, short y);
10033ushort4 __ovld __cnfn min(ushort4 x, ushort y);
10034short8 __ovld __cnfn min(short8 x, short y);
10035ushort8 __ovld __cnfn min(ushort8 x, ushort y);
10036short16 __ovld __cnfn min(short16 x, short y);
10037ushort16 __ovld __cnfn min(ushort16 x, ushort y);
10038int __ovld __cnfn min(int x, int y);
10039uint __ovld __cnfn min(uint x, uint y);
10040int2 __ovld __cnfn min(int2 x, int y);
10041uint2 __ovld __cnfn min(uint2 x, uint y);
10042int3 __ovld __cnfn min(int3 x, int y);
10043uint3 __ovld __cnfn min(uint3 x, uint y);
10044int4 __ovld __cnfn min(int4 x, int y);
10045uint4 __ovld __cnfn min(uint4 x, uint y);
10046int8 __ovld __cnfn min(int8 x, int y);
10047uint8 __ovld __cnfn min(uint8 x, uint y);
10048int16 __ovld __cnfn min(int16 x, int y);
10049uint16 __ovld __cnfn min(uint16 x, uint y);
10050long __ovld __cnfn min(long x, long y);
10051ulong __ovld __cnfn min(ulong x, ulong y);
10052long2 __ovld __cnfn min(long2 x, long y);
10053ulong2 __ovld __cnfn min(ulong2 x, ulong y);
10054long3 __ovld __cnfn min(long3 x, long y);
10055ulong3 __ovld __cnfn min(ulong3 x, ulong y);
10056long4 __ovld __cnfn min(long4 x, long y);
10057ulong4 __ovld __cnfn min(ulong4 x, ulong y);
10058long8 __ovld __cnfn min(long8 x, long y);
10059ulong8 __ovld __cnfn min(ulong8 x, ulong y);
10060long16 __ovld __cnfn min(long16 x, long y);
10061ulong16 __ovld __cnfn min(ulong16 x, ulong y);
10062
10063/**
10064 * Computes x * y and returns the high half of the
10065 * product of x and y.
10066 */
10067char __ovld __cnfn mul_hi(char x, char y);
10068uchar __ovld __cnfn mul_hi(uchar x, uchar y);
10069char2 __ovld __cnfn mul_hi(char2 x, char2 y);
10070uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
10071char3 __ovld __cnfn mul_hi(char3 x, char3 y);
10072uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
10073char4 __ovld __cnfn mul_hi(char4 x, char4 y);
10074uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
10075char8 __ovld __cnfn mul_hi(char8 x, char8 y);
10076uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
10077char16 __ovld __cnfn mul_hi(char16 x, char16 y);
10078uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
10079short __ovld __cnfn mul_hi(short x, short y);
10080ushort __ovld __cnfn mul_hi(ushort x, ushort y);
10081short2 __ovld __cnfn mul_hi(short2 x, short2 y);
10082ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
10083short3 __ovld __cnfn mul_hi(short3 x, short3 y);
10084ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
10085short4 __ovld __cnfn mul_hi(short4 x, short4 y);
10086ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
10087short8 __ovld __cnfn mul_hi(short8 x, short8 y);
10088ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
10089short16 __ovld __cnfn mul_hi(short16 x, short16 y);
10090ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
10091int __ovld __cnfn mul_hi(int x, int y);
10092uint __ovld __cnfn mul_hi(uint x, uint y);
10093int2 __ovld __cnfn mul_hi(int2 x, int2 y);
10094uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
10095int3 __ovld __cnfn mul_hi(int3 x, int3 y);
10096uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
10097int4 __ovld __cnfn mul_hi(int4 x, int4 y);
10098uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
10099int8 __ovld __cnfn mul_hi(int8 x, int8 y);
10100uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
10101int16 __ovld __cnfn mul_hi(int16 x, int16 y);
10102uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
10103long __ovld __cnfn mul_hi(long x, long y);
10104ulong __ovld __cnfn mul_hi(ulong x, ulong y);
10105long2 __ovld __cnfn mul_hi(long2 x, long2 y);
10106ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
10107long3 __ovld __cnfn mul_hi(long3 x, long3 y);
10108ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
10109long4 __ovld __cnfn mul_hi(long4 x, long4 y);
10110ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
10111long8 __ovld __cnfn mul_hi(long8 x, long8 y);
10112ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
10113long16 __ovld __cnfn mul_hi(long16 x, long16 y);
10114ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
10115
10116/**
10117 * For each element in v, the bits are shifted left by
10118 * the number of bits given by the corresponding
10119 * element in i (subject to usual shift modulo rules
10120 * described in section 6.3). Bits shifted off the left
10121 * side of the element are shifted back in from the
10122 * right.
10123 */
10124char __ovld __cnfn rotate(char v, char i);
10125uchar __ovld __cnfn rotate(uchar v, uchar i);
10126char2 __ovld __cnfn rotate(char2 v, char2 i);
10127uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
10128char3 __ovld __cnfn rotate(char3 v, char3 i);
10129uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
10130char4 __ovld __cnfn rotate(char4 v, char4 i);
10131uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
10132char8 __ovld __cnfn rotate(char8 v, char8 i);
10133uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
10134char16 __ovld __cnfn rotate(char16 v, char16 i);
10135uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
10136short __ovld __cnfn rotate(short v, short i);
10137ushort __ovld __cnfn rotate(ushort v, ushort i);
10138short2 __ovld __cnfn rotate(short2 v, short2 i);
10139ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
10140short3 __ovld __cnfn rotate(short3 v, short3 i);
10141ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
10142short4 __ovld __cnfn rotate(short4 v, short4 i);
10143ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
10144short8 __ovld __cnfn rotate(short8 v, short8 i);
10145ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
10146short16 __ovld __cnfn rotate(short16 v, short16 i);
10147ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
10148int __ovld __cnfn rotate(int v, int i);
10149uint __ovld __cnfn rotate(uint v, uint i);
10150int2 __ovld __cnfn rotate(int2 v, int2 i);
10151uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
10152int3 __ovld __cnfn rotate(int3 v, int3 i);
10153uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
10154int4 __ovld __cnfn rotate(int4 v, int4 i);
10155uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
10156int8 __ovld __cnfn rotate(int8 v, int8 i);
10157uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
10158int16 __ovld __cnfn rotate(int16 v, int16 i);
10159uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
10160long __ovld __cnfn rotate(long v, long i);
10161ulong __ovld __cnfn rotate(ulong v, ulong i);
10162long2 __ovld __cnfn rotate(long2 v, long2 i);
10163ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
10164long3 __ovld __cnfn rotate(long3 v, long3 i);
10165ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
10166long4 __ovld __cnfn rotate(long4 v, long4 i);
10167ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
10168long8 __ovld __cnfn rotate(long8 v, long8 i);
10169ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
10170long16 __ovld __cnfn rotate(long16 v, long16 i);
10171ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
10172
10173/**
10174 * Returns x - y and saturates the result.
10175 */
10176char __ovld __cnfn sub_sat(char x, char y);
10177uchar __ovld __cnfn sub_sat(uchar x, uchar y);
10178char2 __ovld __cnfn sub_sat(char2 x, char2 y);
10179uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
10180char3 __ovld __cnfn sub_sat(char3 x, char3 y);
10181uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
10182char4 __ovld __cnfn sub_sat(char4 x, char4 y);
10183uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
10184char8 __ovld __cnfn sub_sat(char8 x, char8 y);
10185uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
10186char16 __ovld __cnfn sub_sat(char16 x, char16 y);
10187uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
10188short __ovld __cnfn sub_sat(short x, short y);
10189ushort __ovld __cnfn sub_sat(ushort x, ushort y);
10190short2 __ovld __cnfn sub_sat(short2 x, short2 y);
10191ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
10192short3 __ovld __cnfn sub_sat(short3 x, short3 y);
10193ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
10194short4 __ovld __cnfn sub_sat(short4 x, short4 y);
10195ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
10196short8 __ovld __cnfn sub_sat(short8 x, short8 y);
10197ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
10198short16 __ovld __cnfn sub_sat(short16 x, short16 y);
10199ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
10200int __ovld __cnfn sub_sat(int x, int y);
10201uint __ovld __cnfn sub_sat(uint x, uint y);
10202int2 __ovld __cnfn sub_sat(int2 x, int2 y);
10203uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
10204int3 __ovld __cnfn sub_sat(int3 x, int3 y);
10205uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
10206int4 __ovld __cnfn sub_sat(int4 x, int4 y);
10207uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
10208int8 __ovld __cnfn sub_sat(int8 x, int8 y);
10209uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
10210int16 __ovld __cnfn sub_sat(int16 x, int16 y);
10211uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
10212long __ovld __cnfn sub_sat(long x, long y);
10213ulong __ovld __cnfn sub_sat(ulong x, ulong y);
10214long2 __ovld __cnfn sub_sat(long2 x, long2 y);
10215ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
10216long3 __ovld __cnfn sub_sat(long3 x, long3 y);
10217ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
10218long4 __ovld __cnfn sub_sat(long4 x, long4 y);
10219ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
10220long8 __ovld __cnfn sub_sat(long8 x, long8 y);
10221ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
10222long16 __ovld __cnfn sub_sat(long16 x, long16 y);
10223ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
10224
10225/**
10226 * result[i] = ((short)hi[i] << 8) | lo[i]
10227 * result[i] = ((ushort)hi[i] << 8) | lo[i]
10228 */
10229short __ovld __cnfn upsample(char hi, uchar lo);
10230ushort __ovld __cnfn upsample(uchar hi, uchar lo);
10231short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
10232short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
10233short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
10234short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
10235short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
10236ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
10237ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
10238ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
10239ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
10240ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
10241
10242/**
10243 * result[i] = ((int)hi[i] << 16) | lo[i]
10244 * result[i] = ((uint)hi[i] << 16) | lo[i]
10245 */
10246int __ovld __cnfn upsample(short hi, ushort lo);
10247uint __ovld __cnfn upsample(ushort hi, ushort lo);
10248int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
10249int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
10250int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
10251int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
10252int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
10253uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
10254uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
10255uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
10256uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
10257uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
10258/**
10259 * result[i] = ((long)hi[i] << 32) | lo[i]
10260 * result[i] = ((ulong)hi[i] << 32) | lo[i]
10261 */
10262long __ovld __cnfn upsample(int hi, uint lo);
10263ulong __ovld __cnfn upsample(uint hi, uint lo);
10264long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
10265long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
10266long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
10267long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
10268long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
10269ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
10270ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
10271ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
10272ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
10273ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
10274
10275/*
10276 * popcount(x): returns the number of set bit in x
10277 */
10278char __ovld __cnfn popcount(char x);
10279uchar __ovld __cnfn popcount(uchar x);
10280char2 __ovld __cnfn popcount(char2 x);
10281uchar2 __ovld __cnfn popcount(uchar2 x);
10282char3 __ovld __cnfn popcount(char3 x);
10283uchar3 __ovld __cnfn popcount(uchar3 x);
10284char4 __ovld __cnfn popcount(char4 x);
10285uchar4 __ovld __cnfn popcount(uchar4 x);
10286char8 __ovld __cnfn popcount(char8 x);
10287uchar8 __ovld __cnfn popcount(uchar8 x);
10288char16 __ovld __cnfn popcount(char16 x);
10289uchar16 __ovld __cnfn popcount(uchar16 x);
10290short __ovld __cnfn popcount(short x);
10291ushort __ovld __cnfn popcount(ushort x);
10292short2 __ovld __cnfn popcount(short2 x);
10293ushort2 __ovld __cnfn popcount(ushort2 x);
10294short3 __ovld __cnfn popcount(short3 x);
10295ushort3 __ovld __cnfn popcount(ushort3 x);
10296short4 __ovld __cnfn popcount(short4 x);
10297ushort4 __ovld __cnfn popcount(ushort4 x);
10298short8 __ovld __cnfn popcount(short8 x);
10299ushort8 __ovld __cnfn popcount(ushort8 x);
10300short16 __ovld __cnfn popcount(short16 x);
10301ushort16 __ovld __cnfn popcount(ushort16 x);
10302int __ovld __cnfn popcount(int x);
10303uint __ovld __cnfn popcount(uint x);
10304int2 __ovld __cnfn popcount(int2 x);
10305uint2 __ovld __cnfn popcount(uint2 x);
10306int3 __ovld __cnfn popcount(int3 x);
10307uint3 __ovld __cnfn popcount(uint3 x);
10308int4 __ovld __cnfn popcount(int4 x);
10309uint4 __ovld __cnfn popcount(uint4 x);
10310int8 __ovld __cnfn popcount(int8 x);
10311uint8 __ovld __cnfn popcount(uint8 x);
10312int16 __ovld __cnfn popcount(int16 x);
10313uint16 __ovld __cnfn popcount(uint16 x);
10314long __ovld __cnfn popcount(long x);
10315ulong __ovld __cnfn popcount(ulong x);
10316long2 __ovld __cnfn popcount(long2 x);
10317ulong2 __ovld __cnfn popcount(ulong2 x);
10318long3 __ovld __cnfn popcount(long3 x);
10319ulong3 __ovld __cnfn popcount(ulong3 x);
10320long4 __ovld __cnfn popcount(long4 x);
10321ulong4 __ovld __cnfn popcount(ulong4 x);
10322long8 __ovld __cnfn popcount(long8 x);
10323ulong8 __ovld __cnfn popcount(ulong8 x);
10324long16 __ovld __cnfn popcount(long16 x);
10325ulong16 __ovld __cnfn popcount(ulong16 x);
10326
10327/**
10328 * Multiply two 24-bit integer values x and y and add
10329 * the 32-bit integer result to the 32-bit integer z.
10330 * Refer to definition of mul24 to see how the 24-bit
10331 * integer multiplication is performed.
10332 */
10333int __ovld __cnfn mad24(int x, int y, int z);
10334uint __ovld __cnfn mad24(uint x, uint y, uint z);
10335int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
10336uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
10337int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
10338uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
10339int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
10340uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
10341int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
10342uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
10343int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
10344uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
10345
10346/**
10347 * Multiply two 24-bit integer values x and y. x and y
10348 * are 32-bit integers but only the low 24-bits are used
10349 * to perform the multiplication. mul24 should only
10350 * be used when values in x and y are in the range [-
10351 * 2^23, 2^23-1] if x and y are signed integers and in the
10352 * range [0, 2^24-1] if x and y are unsigned integers. If
10353 * x and y are not in this range, the multiplication
10354 * result is implementation-defined.
10355 */
10356int __ovld __cnfn mul24(int x, int y);
10357uint __ovld __cnfn mul24(uint x, uint y);
10358int2 __ovld __cnfn mul24(int2 x, int2 y);
10359uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
10360int3 __ovld __cnfn mul24(int3 x, int3 y);
10361uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
10362int4 __ovld __cnfn mul24(int4 x, int4 y);
10363uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
10364int8 __ovld __cnfn mul24(int8 x, int8 y);
10365uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
10366int16 __ovld __cnfn mul24(int16 x, int16 y);
10367uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
10368
10369// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
10370
10371/**
10372 * Returns fmin(fmax(x, minval), maxval).
10373 * Results are undefined if minval > maxval.
10374 */
10375float __ovld __cnfn clamp(float x, float minval, float maxval);
10376float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
10377float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
10378float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
10379float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
10380float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
10381float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
10382float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
10383float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
10384float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
10385float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
10386#ifdef cl_khr_fp64
10387double __ovld __cnfn clamp(double x, double minval, double maxval);
10388double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
10389double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
10390double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
10391double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
10392double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
10393double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
10394double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
10395double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
10396double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
10397double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
10398#endif //cl_khr_fp64
10399#ifdef cl_khr_fp16
10400half __ovld __cnfn clamp(half x, half minval, half maxval);
10401half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
10402half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
10403half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
10404half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
10405half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
10406half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
10407half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
10408half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
10409half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
10410half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
10411#endif //cl_khr_fp16
10412
10413/**
10414 * Converts radians to degrees, i.e. (180 / PI) *
10415 * radians.
10416 */
10417float __ovld __cnfn degrees(float radians);
10418float2 __ovld __cnfn degrees(float2 radians);
10419float3 __ovld __cnfn degrees(float3 radians);
10420float4 __ovld __cnfn degrees(float4 radians);
10421float8 __ovld __cnfn degrees(float8 radians);
10422float16 __ovld __cnfn degrees(float16 radians);
10423#ifdef cl_khr_fp64
10424double __ovld __cnfn degrees(double radians);
10425double2 __ovld __cnfn degrees(double2 radians);
10426double3 __ovld __cnfn degrees(double3 radians);
10427double4 __ovld __cnfn degrees(double4 radians);
10428double8 __ovld __cnfn degrees(double8 radians);
10429double16 __ovld __cnfn degrees(double16 radians);
10430#endif //cl_khr_fp64
10431#ifdef cl_khr_fp16
10432half __ovld __cnfn degrees(half radians);
10433half2 __ovld __cnfn degrees(half2 radians);
10434half3 __ovld __cnfn degrees(half3 radians);
10435half4 __ovld __cnfn degrees(half4 radians);
10436half8 __ovld __cnfn degrees(half8 radians);
10437half16 __ovld __cnfn degrees(half16 radians);
10438#endif //cl_khr_fp16
10439
10440/**
10441 * Returns y if x < y, otherwise it returns x. If x and y
10442 * are infinite or NaN, the return values are undefined.
10443 */
10444float __ovld __cnfn max(float x, float y);
10445float2 __ovld __cnfn max(float2 x, float2 y);
10446float3 __ovld __cnfn max(float3 x, float3 y);
10447float4 __ovld __cnfn max(float4 x, float4 y);
10448float8 __ovld __cnfn max(float8 x, float8 y);
10449float16 __ovld __cnfn max(float16 x, float16 y);
10450float2 __ovld __cnfn max(float2 x, float y);
10451float3 __ovld __cnfn max(float3 x, float y);
10452float4 __ovld __cnfn max(float4 x, float y);
10453float8 __ovld __cnfn max(float8 x, float y);
10454float16 __ovld __cnfn max(float16 x, float y);
10455#ifdef cl_khr_fp64
10456double __ovld __cnfn max(double x, double y);
10457double2 __ovld __cnfn max(double2 x, double2 y);
10458double3 __ovld __cnfn max(double3 x, double3 y);
10459double4 __ovld __cnfn max(double4 x, double4 y);
10460double8 __ovld __cnfn max(double8 x, double8 y);
10461double16 __ovld __cnfn max(double16 x, double16 y);
10462double2 __ovld __cnfn max(double2 x, double y);
10463double3 __ovld __cnfn max(double3 x, double y);
10464double4 __ovld __cnfn max(double4 x, double y);
10465double8 __ovld __cnfn max(double8 x, double y);
10466double16 __ovld __cnfn max(double16 x, double y);
10467#endif //cl_khr_fp64
10468#ifdef cl_khr_fp16
10469half __ovld __cnfn max(half x, half y);
10470half2 __ovld __cnfn max(half2 x, half2 y);
10471half3 __ovld __cnfn max(half3 x, half3 y);
10472half4 __ovld __cnfn max(half4 x, half4 y);
10473half8 __ovld __cnfn max(half8 x, half8 y);
10474half16 __ovld __cnfn max(half16 x, half16 y);
10475half2 __ovld __cnfn max(half2 x, half y);
10476half3 __ovld __cnfn max(half3 x, half y);
10477half4 __ovld __cnfn max(half4 x, half y);
10478half8 __ovld __cnfn max(half8 x, half y);
10479half16 __ovld __cnfn max(half16 x, half y);
10480#endif //cl_khr_fp16
10481
10482/**
10483 * Returns y if y < x, otherwise it returns x. If x and y
10484 * are infinite or NaN, the return values are undefined.
10485 */
10486float __ovld __cnfn min(float x, float y);
10487float2 __ovld __cnfn min(float2 x, float2 y);
10488float3 __ovld __cnfn min(float3 x, float3 y);
10489float4 __ovld __cnfn min(float4 x, float4 y);
10490float8 __ovld __cnfn min(float8 x, float8 y);
10491float16 __ovld __cnfn min(float16 x, float16 y);
10492float2 __ovld __cnfn min(float2 x, float y);
10493float3 __ovld __cnfn min(float3 x, float y);
10494float4 __ovld __cnfn min(float4 x, float y);
10495float8 __ovld __cnfn min(float8 x, float y);
10496float16 __ovld __cnfn min(float16 x, float y);
10497#ifdef cl_khr_fp64
10498double __ovld __cnfn min(double x, double y);
10499double2 __ovld __cnfn min(double2 x, double2 y);
10500double3 __ovld __cnfn min(double3 x, double3 y);
10501double4 __ovld __cnfn min(double4 x, double4 y);
10502double8 __ovld __cnfn min(double8 x, double8 y);
10503double16 __ovld __cnfn min(double16 x, double16 y);
10504double2 __ovld __cnfn min(double2 x, double y);
10505double3 __ovld __cnfn min(double3 x, double y);
10506double4 __ovld __cnfn min(double4 x, double y);
10507double8 __ovld __cnfn min(double8 x, double y);
10508double16 __ovld __cnfn min(double16 x, double y);
10509#endif //cl_khr_fp64
10510#ifdef cl_khr_fp16
10511half __ovld __cnfn min(half x, half y);
10512half2 __ovld __cnfn min(half2 x, half2 y);
10513half3 __ovld __cnfn min(half3 x, half3 y);
10514half4 __ovld __cnfn min(half4 x, half4 y);
10515half8 __ovld __cnfn min(half8 x, half8 y);
10516half16 __ovld __cnfn min(half16 x, half16 y);
10517half2 __ovld __cnfn min(half2 x, half y);
10518half3 __ovld __cnfn min(half3 x, half y);
10519half4 __ovld __cnfn min(half4 x, half y);
10520half8 __ovld __cnfn min(half8 x, half y);
10521half16 __ovld __cnfn min(half16 x, half y);
10522#endif //cl_khr_fp16
10523
10524/**
10525 * Returns the linear blend of x & y implemented as:
10526 * x + (y - x) * a
10527 * a must be a value in the range 0.0 ... 1.0. If a is not
10528 * in the range 0.0 ... 1.0, the return values are
10529 * undefined.
10530 */
10531float __ovld __cnfn mix(float x, float y, float a);
10532float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
10533float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
10534float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
10535float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
10536float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
10537float2 __ovld __cnfn mix(float2 x, float2 y, float a);
10538float3 __ovld __cnfn mix(float3 x, float3 y, float a);
10539float4 __ovld __cnfn mix(float4 x, float4 y, float a);
10540float8 __ovld __cnfn mix(float8 x, float8 y, float a);
10541float16 __ovld __cnfn mix(float16 x, float16 y, float a);
10542#ifdef cl_khr_fp64
10543double __ovld __cnfn mix(double x, double y, double a);
10544double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
10545double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
10546double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
10547double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
10548double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
10549double2 __ovld __cnfn mix(double2 x, double2 y, double a);
10550double3 __ovld __cnfn mix(double3 x, double3 y, double a);
10551double4 __ovld __cnfn mix(double4 x, double4 y, double a);
10552double8 __ovld __cnfn mix(double8 x, double8 y, double a);
10553double16 __ovld __cnfn mix(double16 x, double16 y, double a);
10554#endif //cl_khr_fp64
10555#ifdef cl_khr_fp16
10556half __ovld __cnfn mix(half x, half y, half a);
10557half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
10558half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
10559half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
10560half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
10561half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
10562half2 __ovld __cnfn mix(half2 x, half2 y, half a);
10563half3 __ovld __cnfn mix(half3 x, half3 y, half a);
10564half4 __ovld __cnfn mix(half4 x, half4 y, half a);
10565half8 __ovld __cnfn mix(half8 x, half8 y, half a);
10566half16 __ovld __cnfn mix(half16 x, half16 y, half a);
10567#endif //cl_khr_fp16
10568
10569/**
10570 * Converts degrees to radians, i.e. (PI / 180) *
10571 * degrees.
10572 */
10573float __ovld __cnfn radians(float degrees);
10574float2 __ovld __cnfn radians(float2 degrees);
10575float3 __ovld __cnfn radians(float3 degrees);
10576float4 __ovld __cnfn radians(float4 degrees);
10577float8 __ovld __cnfn radians(float8 degrees);
10578float16 __ovld __cnfn radians(float16 degrees);
10579#ifdef cl_khr_fp64
10580double __ovld __cnfn radians(double degrees);
10581double2 __ovld __cnfn radians(double2 degrees);
10582double3 __ovld __cnfn radians(double3 degrees);
10583double4 __ovld __cnfn radians(double4 degrees);
10584double8 __ovld __cnfn radians(double8 degrees);
10585double16 __ovld __cnfn radians(double16 degrees);
10586#endif //cl_khr_fp64
10587#ifdef cl_khr_fp16
10588half __ovld __cnfn radians(half degrees);
10589half2 __ovld __cnfn radians(half2 degrees);
10590half3 __ovld __cnfn radians(half3 degrees);
10591half4 __ovld __cnfn radians(half4 degrees);
10592half8 __ovld __cnfn radians(half8 degrees);
10593half16 __ovld __cnfn radians(half16 degrees);
10594#endif //cl_khr_fp16
10595
10596/**
10597 * Returns 0.0 if x < edge, otherwise it returns 1.0.
10598 */
10599float __ovld __cnfn step(float edge, float x);
10600float2 __ovld __cnfn step(float2 edge, float2 x);
10601float3 __ovld __cnfn step(float3 edge, float3 x);
10602float4 __ovld __cnfn step(float4 edge, float4 x);
10603float8 __ovld __cnfn step(float8 edge, float8 x);
10604float16 __ovld __cnfn step(float16 edge, float16 x);
10605float2 __ovld __cnfn step(float edge, float2 x);
10606float3 __ovld __cnfn step(float edge, float3 x);
10607float4 __ovld __cnfn step(float edge, float4 x);
10608float8 __ovld __cnfn step(float edge, float8 x);
10609float16 __ovld __cnfn step(float edge, float16 x);
10610#ifdef cl_khr_fp64
10611double __ovld __cnfn step(double edge, double x);
10612double2 __ovld __cnfn step(double2 edge, double2 x);
10613double3 __ovld __cnfn step(double3 edge, double3 x);
10614double4 __ovld __cnfn step(double4 edge, double4 x);
10615double8 __ovld __cnfn step(double8 edge, double8 x);
10616double16 __ovld __cnfn step(double16 edge, double16 x);
10617double2 __ovld __cnfn step(double edge, double2 x);
10618double3 __ovld __cnfn step(double edge, double3 x);
10619double4 __ovld __cnfn step(double edge, double4 x);
10620double8 __ovld __cnfn step(double edge, double8 x);
10621double16 __ovld __cnfn step(double edge, double16 x);
10622#endif //cl_khr_fp64
10623#ifdef cl_khr_fp16
10624half __ovld __cnfn step(half edge, half x);
10625half2 __ovld __cnfn step(half2 edge, half2 x);
10626half3 __ovld __cnfn step(half3 edge, half3 x);
10627half4 __ovld __cnfn step(half4 edge, half4 x);
10628half8 __ovld __cnfn step(half8 edge, half8 x);
10629half16 __ovld __cnfn step(half16 edge, half16 x);
10630half __ovld __cnfn step(half edge, half x);
10631half2 __ovld __cnfn step(half edge, half2 x);
10632half3 __ovld __cnfn step(half edge, half3 x);
10633half4 __ovld __cnfn step(half edge, half4 x);
10634half8 __ovld __cnfn step(half edge, half8 x);
10635half16 __ovld __cnfn step(half edge, half16 x);
10636#endif //cl_khr_fp16
10637
10638/**
10639 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
10640 * performs smooth Hermite interpolation between 0
10641 * and 1when edge0 < x < edge1. This is useful in
10642 * cases where you would want a threshold function
10643 * with a smooth transition.
10644 * This is equivalent to:
10645 * gentype t;
10646 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
10647 * return t * t * (3 - 2 * t);
10648 * Results are undefined if edge0 >= edge1 or if x,
10649 * edge0 or edge1 is a NaN.
10650 */
10651float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
10652float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
10653float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
10654float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
10655float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
10656float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
10657float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
10658float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
10659float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
10660float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
10661float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
10662#ifdef cl_khr_fp64
10663double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
10664double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
10665double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
10666double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
10667double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
10668double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
10669double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
10670double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
10671double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
10672double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
10673double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
10674#endif //cl_khr_fp64
10675#ifdef cl_khr_fp16
10676half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
10677half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
10678half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
10679half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
10680half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
10681half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
10682half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
10683half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
10684half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
10685half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
10686half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
10687half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
10688#endif //cl_khr_fp16
10689
10690/**
10691 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
10692 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
10693 */
10694float __ovld __cnfn sign(float x);
10695float2 __ovld __cnfn sign(float2 x);
10696float3 __ovld __cnfn sign(float3 x);
10697float4 __ovld __cnfn sign(float4 x);
10698float8 __ovld __cnfn sign(float8 x);
10699float16 __ovld __cnfn sign(float16 x);
10700#ifdef cl_khr_fp64
10701double __ovld __cnfn sign(double x);
10702double2 __ovld __cnfn sign(double2 x);
10703double3 __ovld __cnfn sign(double3 x);
10704double4 __ovld __cnfn sign(double4 x);
10705double8 __ovld __cnfn sign(double8 x);
10706double16 __ovld __cnfn sign(double16 x);
10707#endif //cl_khr_fp64
10708#ifdef cl_khr_fp16
10709half __ovld __cnfn sign(half x);
10710half2 __ovld __cnfn sign(half2 x);
10711half3 __ovld __cnfn sign(half3 x);
10712half4 __ovld __cnfn sign(half4 x);
10713half8 __ovld __cnfn sign(half8 x);
10714half16 __ovld __cnfn sign(half16 x);
10715#endif //cl_khr_fp16
10716
10717// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
10718
10719/**
10720 * Returns the cross product of p0.xyz and p1.xyz. The
10721 * w component of float4 result returned will be 0.0.
10722 */
10723float4 __ovld __cnfn cross(float4 p0, float4 p1);
10724float3 __ovld __cnfn cross(float3 p0, float3 p1);
10725#ifdef cl_khr_fp64
10726double4 __ovld __cnfn cross(double4 p0, double4 p1);
10727double3 __ovld __cnfn cross(double3 p0, double3 p1);
10728#endif //cl_khr_fp64
10729#ifdef cl_khr_fp16
10730half4 __ovld __cnfn cross(half4 p0, half4 p1);
10731half3 __ovld __cnfn cross(half3 p0, half3 p1);
10732#endif //cl_khr_fp16
10733
10734/**
10735 * Compute dot product.
10736 */
10737float __ovld __cnfn dot(float p0, float p1);
10738float __ovld __cnfn dot(float2 p0, float2 p1);
10739float __ovld __cnfn dot(float3 p0, float3 p1);
10740float __ovld __cnfn dot(float4 p0, float4 p1);
10741#ifdef cl_khr_fp64
10742double __ovld __cnfn dot(double p0, double p1);
10743double __ovld __cnfn dot(double2 p0, double2 p1);
10744double __ovld __cnfn dot(double3 p0, double3 p1);
10745double __ovld __cnfn dot(double4 p0, double4 p1);
10746#endif //cl_khr_fp64
10747#ifdef cl_khr_fp16
10748half __ovld __cnfn dot(half p0, half p1);
10749half __ovld __cnfn dot(half2 p0, half2 p1);
10750half __ovld __cnfn dot(half3 p0, half3 p1);
10751half __ovld __cnfn dot(half4 p0, half4 p1);
10752#endif //cl_khr_fp16
10753
10754/**
10755 * Returns the distance between p0 and p1. This is
10756 * calculated as length(p0 - p1).
10757 */
10758float __ovld __cnfn distance(float p0, float p1);
10759float __ovld __cnfn distance(float2 p0, float2 p1);
10760float __ovld __cnfn distance(float3 p0, float3 p1);
10761float __ovld __cnfn distance(float4 p0, float4 p1);
10762#ifdef cl_khr_fp64
10763double __ovld __cnfn distance(double p0, double p1);
10764double __ovld __cnfn distance(double2 p0, double2 p1);
10765double __ovld __cnfn distance(double3 p0, double3 p1);
10766double __ovld __cnfn distance(double4 p0, double4 p1);
10767#endif //cl_khr_fp64
10768#ifdef cl_khr_fp16
10769half __ovld __cnfn distance(half p0, half p1);
10770half __ovld __cnfn distance(half2 p0, half2 p1);
10771half __ovld __cnfn distance(half3 p0, half3 p1);
10772half __ovld __cnfn distance(half4 p0, half4 p1);
10773#endif //cl_khr_fp16
10774
10775/**
10776 * Return the length of vector p, i.e.,
10777 * sqrt(p.x2 + p.y 2 + ...)
10778 */
10779float __ovld __cnfn length(float p);
10780float __ovld __cnfn length(float2 p);
10781float __ovld __cnfn length(float3 p);
10782float __ovld __cnfn length(float4 p);
10783#ifdef cl_khr_fp64
10784double __ovld __cnfn length(double p);
10785double __ovld __cnfn length(double2 p);
10786double __ovld __cnfn length(double3 p);
10787double __ovld __cnfn length(double4 p);
10788#endif //cl_khr_fp64
10789#ifdef cl_khr_fp16
10790half __ovld __cnfn length(half p);
10791half __ovld __cnfn length(half2 p);
10792half __ovld __cnfn length(half3 p);
10793half __ovld __cnfn length(half4 p);
10794#endif //cl_khr_fp16
10795
10796/**
10797 * Returns a vector in the same direction as p but with a
10798 * length of 1.
10799 */
10800float __ovld __cnfn normalize(float p);
10801float2 __ovld __cnfn normalize(float2 p);
10802float3 __ovld __cnfn normalize(float3 p);
10803float4 __ovld __cnfn normalize(float4 p);
10804#ifdef cl_khr_fp64
10805double __ovld __cnfn normalize(double p);
10806double2 __ovld __cnfn normalize(double2 p);
10807double3 __ovld __cnfn normalize(double3 p);
10808double4 __ovld __cnfn normalize(double4 p);
10809#endif //cl_khr_fp64
10810#ifdef cl_khr_fp16
10811half __ovld __cnfn normalize(half p);
10812half2 __ovld __cnfn normalize(half2 p);
10813half3 __ovld __cnfn normalize(half3 p);
10814half4 __ovld __cnfn normalize(half4 p);
10815#endif //cl_khr_fp16
10816
10817/**
10818 * Returns fast_length(p0 - p1).
10819 */
10820float __ovld __cnfn fast_distance(float p0, float p1);
10821float __ovld __cnfn fast_distance(float2 p0, float2 p1);
10822float __ovld __cnfn fast_distance(float3 p0, float3 p1);
10823float __ovld __cnfn fast_distance(float4 p0, float4 p1);
10824#ifdef cl_khr_fp16
10825half __ovld __cnfn fast_distance(half p0, half p1);
10826half __ovld __cnfn fast_distance(half2 p0, half2 p1);
10827half __ovld __cnfn fast_distance(half3 p0, half3 p1);
10828half __ovld __cnfn fast_distance(half4 p0, half4 p1);
10829#endif //cl_khr_fp16
10830
10831/**
10832 * Returns the length of vector p computed as:
10833 * half_sqrt(p.x2 + p.y2 + ...)
10834 */
10835float __ovld __cnfn fast_length(float p);
10836float __ovld __cnfn fast_length(float2 p);
10837float __ovld __cnfn fast_length(float3 p);
10838float __ovld __cnfn fast_length(float4 p);
10839#ifdef cl_khr_fp16
10840half __ovld __cnfn fast_length(half p);
10841half __ovld __cnfn fast_length(half2 p);
10842half __ovld __cnfn fast_length(half3 p);
10843half __ovld __cnfn fast_length(half4 p);
10844#endif //cl_khr_fp16
10845
10846/**
10847 * Returns a vector in the same direction as p but with a
10848 * length of 1. fast_normalize is computed as:
10849 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
10850 * The result shall be within 8192 ulps error from the
10851 * infinitely precise result of
10852 * if (all(p == 0.0f))
10853 * result = p;
10854 * else
10855 * result = p / sqrt (p.x^2 + p.y^2 + ...);
10856 * with the following exceptions:
10857 * 1) If the sum of squares is greater than FLT_MAX
10858 * then the value of the floating-point values in the
10859 * result vector are undefined.
10860 * 2) If the sum of squares is less than FLT_MIN then
10861 * the implementation may return back p.
10862 * 3) If the device is in "denorms are flushed to zero"
10863 * mode, individual operand elements with magnitude
10864 * less than sqrt(FLT_MIN) may be flushed to zero
10865 * before proceeding with the calculation.
10866 */
10867float __ovld __cnfn fast_normalize(float p);
10868float2 __ovld __cnfn fast_normalize(float2 p);
10869float3 __ovld __cnfn fast_normalize(float3 p);
10870float4 __ovld __cnfn fast_normalize(float4 p);
10871#ifdef cl_khr_fp16
10872half __ovld __cnfn fast_normalize(half p);
10873half2 __ovld __cnfn fast_normalize(half2 p);
10874half3 __ovld __cnfn fast_normalize(half3 p);
10875half4 __ovld __cnfn fast_normalize(half4 p);
10876#endif //cl_khr_fp16
10877
10878// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
10879
10880/**
10881 * intn isequal (floatn x, floatn y)
10882 * Returns the component-wise compare of x == y.
10883 */
10884int __ovld __cnfn isequal(float x, float y);
10885int2 __ovld __cnfn isequal(float2 x, float2 y);
10886int3 __ovld __cnfn isequal(float3 x, float3 y);
10887int4 __ovld __cnfn isequal(float4 x, float4 y);
10888int8 __ovld __cnfn isequal(float8 x, float8 y);
10889int16 __ovld __cnfn isequal(float16 x, float16 y);
10890#ifdef cl_khr_fp64
10891int __ovld __cnfn isequal(double x, double y);
10892long2 __ovld __cnfn isequal(double2 x, double2 y);
10893long3 __ovld __cnfn isequal(double3 x, double3 y);
10894long4 __ovld __cnfn isequal(double4 x, double4 y);
10895long8 __ovld __cnfn isequal(double8 x, double8 y);
10896long16 __ovld __cnfn isequal(double16 x, double16 y);
10897#endif //cl_khr_fp64
10898#ifdef cl_khr_fp16
10899int __ovld __cnfn isequal(half x, half y);
10900short2 __ovld __cnfn isequal(half2 x, half2 y);
10901short3 __ovld __cnfn isequal(half3 x, half3 y);
10902short4 __ovld __cnfn isequal(half4 x, half4 y);
10903short8 __ovld __cnfn isequal(half8 x, half8 y);
10904short16 __ovld __cnfn isequal(half16 x, half16 y);
10905#endif //cl_khr_fp16
10906
10907/**
10908 * Returns the component-wise compare of x != y.
10909 */
10910int __ovld __cnfn isnotequal(float x, float y);
10911int2 __ovld __cnfn isnotequal(float2 x, float2 y);
10912int3 __ovld __cnfn isnotequal(float3 x, float3 y);
10913int4 __ovld __cnfn isnotequal(float4 x, float4 y);
10914int8 __ovld __cnfn isnotequal(float8 x, float8 y);
10915int16 __ovld __cnfn isnotequal(float16 x, float16 y);
10916#ifdef cl_khr_fp64
10917int __ovld __cnfn isnotequal(double x, double y);
10918long2 __ovld __cnfn isnotequal(double2 x, double2 y);
10919long3 __ovld __cnfn isnotequal(double3 x, double3 y);
10920long4 __ovld __cnfn isnotequal(double4 x, double4 y);
10921long8 __ovld __cnfn isnotequal(double8 x, double8 y);
10922long16 __ovld __cnfn isnotequal(double16 x, double16 y);
10923#endif //cl_khr_fp64
10924#ifdef cl_khr_fp16
10925int __ovld __cnfn isnotequal(half x, half y);
10926short2 __ovld __cnfn isnotequal(half2 x, half2 y);
10927short3 __ovld __cnfn isnotequal(half3 x, half3 y);
10928short4 __ovld __cnfn isnotequal(half4 x, half4 y);
10929short8 __ovld __cnfn isnotequal(half8 x, half8 y);
10930short16 __ovld __cnfn isnotequal(half16 x, half16 y);
10931#endif //cl_khr_fp16
10932
10933/**
10934 * Returns the component-wise compare of x > y.
10935 */
10936int __ovld __cnfn isgreater(float x, float y);
10937int2 __ovld __cnfn isgreater(float2 x, float2 y);
10938int3 __ovld __cnfn isgreater(float3 x, float3 y);
10939int4 __ovld __cnfn isgreater(float4 x, float4 y);
10940int8 __ovld __cnfn isgreater(float8 x, float8 y);
10941int16 __ovld __cnfn isgreater(float16 x, float16 y);
10942#ifdef cl_khr_fp64
10943int __ovld __cnfn isgreater(double x, double y);
10944long2 __ovld __cnfn isgreater(double2 x, double2 y);
10945long3 __ovld __cnfn isgreater(double3 x, double3 y);
10946long4 __ovld __cnfn isgreater(double4 x, double4 y);
10947long8 __ovld __cnfn isgreater(double8 x, double8 y);
10948long16 __ovld __cnfn isgreater(double16 x, double16 y);
10949#endif //cl_khr_fp64
10950#ifdef cl_khr_fp16
10951int __ovld __cnfn isgreater(half x, half y);
10952short2 __ovld __cnfn isgreater(half2 x, half2 y);
10953short3 __ovld __cnfn isgreater(half3 x, half3 y);
10954short4 __ovld __cnfn isgreater(half4 x, half4 y);
10955short8 __ovld __cnfn isgreater(half8 x, half8 y);
10956short16 __ovld __cnfn isgreater(half16 x, half16 y);
10957#endif //cl_khr_fp16
10958
10959/**
10960 * Returns the component-wise compare of x >= y.
10961 */
10962int __ovld __cnfn isgreaterequal(float x, float y);
10963int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
10964int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
10965int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
10966int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
10967int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
10968#ifdef cl_khr_fp64
10969int __ovld __cnfn isgreaterequal(double x, double y);
10970long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
10971long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
10972long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
10973long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
10974long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
10975#endif //cl_khr_fp64
10976#ifdef cl_khr_fp16
10977int __ovld __cnfn isgreaterequal(half x, half y);
10978short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
10979short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
10980short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
10981short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
10982short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
10983#endif //cl_khr_fp16
10984
10985/**
10986 * Returns the component-wise compare of x < y.
10987 */
10988int __ovld __cnfn isless(float x, float y);
10989int2 __ovld __cnfn isless(float2 x, float2 y);
10990int3 __ovld __cnfn isless(float3 x, float3 y);
10991int4 __ovld __cnfn isless(float4 x, float4 y);
10992int8 __ovld __cnfn isless(float8 x, float8 y);
10993int16 __ovld __cnfn isless(float16 x, float16 y);
10994#ifdef cl_khr_fp64
10995int __ovld __cnfn isless(double x, double y);
10996long2 __ovld __cnfn isless(double2 x, double2 y);
10997long3 __ovld __cnfn isless(double3 x, double3 y);
10998long4 __ovld __cnfn isless(double4 x, double4 y);
10999long8 __ovld __cnfn isless(double8 x, double8 y);
11000long16 __ovld __cnfn isless(double16 x, double16 y);
11001#endif //cl_khr_fp64
11002#ifdef cl_khr_fp16
11003int __ovld __cnfn isless(half x, half y);
11004short2 __ovld __cnfn isless(half2 x, half2 y);
11005short3 __ovld __cnfn isless(half3 x, half3 y);
11006short4 __ovld __cnfn isless(half4 x, half4 y);
11007short8 __ovld __cnfn isless(half8 x, half8 y);
11008short16 __ovld __cnfn isless(half16 x, half16 y);
11009#endif //cl_khr_fp16
11010
11011/**
11012 * Returns the component-wise compare of x <= y.
11013 */
11014int __ovld __cnfn islessequal(float x, float y);
11015int2 __ovld __cnfn islessequal(float2 x, float2 y);
11016int3 __ovld __cnfn islessequal(float3 x, float3 y);
11017int4 __ovld __cnfn islessequal(float4 x, float4 y);
11018int8 __ovld __cnfn islessequal(float8 x, float8 y);
11019int16 __ovld __cnfn islessequal(float16 x, float16 y);
11020#ifdef cl_khr_fp64
11021int __ovld __cnfn islessequal(double x, double y);
11022long2 __ovld __cnfn islessequal(double2 x, double2 y);
11023long3 __ovld __cnfn islessequal(double3 x, double3 y);
11024long4 __ovld __cnfn islessequal(double4 x, double4 y);
11025long8 __ovld __cnfn islessequal(double8 x, double8 y);
11026long16 __ovld __cnfn islessequal(double16 x, double16 y);
11027#endif //cl_khr_fp64
11028#ifdef cl_khr_fp16
11029int __ovld __cnfn islessequal(half x, half y);
11030short2 __ovld __cnfn islessequal(half2 x, half2 y);
11031short3 __ovld __cnfn islessequal(half3 x, half3 y);
11032short4 __ovld __cnfn islessequal(half4 x, half4 y);
11033short8 __ovld __cnfn islessequal(half8 x, half8 y);
11034short16 __ovld __cnfn islessequal(half16 x, half16 y);
11035#endif //cl_khr_fp16
11036
11037/**
11038 * Returns the component-wise compare of
11039 * (x < y) || (x > y) .
11040 */
11041int __ovld __cnfn islessgreater(float x, float y);
11042int2 __ovld __cnfn islessgreater(float2 x, float2 y);
11043int3 __ovld __cnfn islessgreater(float3 x, float3 y);
11044int4 __ovld __cnfn islessgreater(float4 x, float4 y);
11045int8 __ovld __cnfn islessgreater(float8 x, float8 y);
11046int16 __ovld __cnfn islessgreater(float16 x, float16 y);
11047#ifdef cl_khr_fp64
11048int __ovld __cnfn islessgreater(double x, double y);
11049long2 __ovld __cnfn islessgreater(double2 x, double2 y);
11050long3 __ovld __cnfn islessgreater(double3 x, double3 y);
11051long4 __ovld __cnfn islessgreater(double4 x, double4 y);
11052long8 __ovld __cnfn islessgreater(double8 x, double8 y);
11053long16 __ovld __cnfn islessgreater(double16 x, double16 y);
11054#endif //cl_khr_fp64
11055#ifdef cl_khr_fp16
11056int __ovld __cnfn islessgreater(half x, half y);
11057short2 __ovld __cnfn islessgreater(half2 x, half2 y);
11058short3 __ovld __cnfn islessgreater(half3 x, half3 y);
11059short4 __ovld __cnfn islessgreater(half4 x, half4 y);
11060short8 __ovld __cnfn islessgreater(half8 x, half8 y);
11061short16 __ovld __cnfn islessgreater(half16 x, half16 y);
11062#endif //cl_khr_fp16
11063
11064/**
11065 * Test for finite value.
11066 */
11067int __ovld __cnfn isfinite(float);
11068int2 __ovld __cnfn isfinite(float2);
11069int3 __ovld __cnfn isfinite(float3);
11070int4 __ovld __cnfn isfinite(float4);
11071int8 __ovld __cnfn isfinite(float8);
11072int16 __ovld __cnfn isfinite(float16);
11073#ifdef cl_khr_fp64
11074int __ovld __cnfn isfinite(double);
11075long2 __ovld __cnfn isfinite(double2);
11076long3 __ovld __cnfn isfinite(double3);
11077long4 __ovld __cnfn isfinite(double4);
11078long8 __ovld __cnfn isfinite(double8);
11079long16 __ovld __cnfn isfinite(double16);
11080#endif //cl_khr_fp64
11081#ifdef cl_khr_fp16
11082int __ovld __cnfn isfinite(half);
11083short2 __ovld __cnfn isfinite(half2);
11084short3 __ovld __cnfn isfinite(half3);
11085short4 __ovld __cnfn isfinite(half4);
11086short8 __ovld __cnfn isfinite(half8);
11087short16 __ovld __cnfn isfinite(half16);
11088#endif //cl_khr_fp16
11089
11090/**
11091 * Test for infinity value (+ve or -ve) .
11092 */
11093int __ovld __cnfn isinf(float);
11094int2 __ovld __cnfn isinf(float2);
11095int3 __ovld __cnfn isinf(float3);
11096int4 __ovld __cnfn isinf(float4);
11097int8 __ovld __cnfn isinf(float8);
11098int16 __ovld __cnfn isinf(float16);
11099#ifdef cl_khr_fp64
11100int __ovld __cnfn isinf(double);
11101long2 __ovld __cnfn isinf(double2);
11102long3 __ovld __cnfn isinf(double3);
11103long4 __ovld __cnfn isinf(double4);
11104long8 __ovld __cnfn isinf(double8);
11105long16 __ovld __cnfn isinf(double16);
11106#endif //cl_khr_fp64
11107#ifdef cl_khr_fp16
11108int __ovld __cnfn isinf(half);
11109short2 __ovld __cnfn isinf(half2);
11110short3 __ovld __cnfn isinf(half3);
11111short4 __ovld __cnfn isinf(half4);
11112short8 __ovld __cnfn isinf(half8);
11113short16 __ovld __cnfn isinf(half16);
11114#endif //cl_khr_fp16
11115
11116/**
11117 * Test for a NaN.
11118 */
11119int __ovld __cnfn isnan(float);
11120int2 __ovld __cnfn isnan(float2);
11121int3 __ovld __cnfn isnan(float3);
11122int4 __ovld __cnfn isnan(float4);
11123int8 __ovld __cnfn isnan(float8);
11124int16 __ovld __cnfn isnan(float16);
11125#ifdef cl_khr_fp64
11126int __ovld __cnfn isnan(double);
11127long2 __ovld __cnfn isnan(double2);
11128long3 __ovld __cnfn isnan(double3);
11129long4 __ovld __cnfn isnan(double4);
11130long8 __ovld __cnfn isnan(double8);
11131long16 __ovld __cnfn isnan(double16);
11132#endif //cl_khr_fp64
11133#ifdef cl_khr_fp16
11134int __ovld __cnfn isnan(half);
11135short2 __ovld __cnfn isnan(half2);
11136short3 __ovld __cnfn isnan(half3);
11137short4 __ovld __cnfn isnan(half4);
11138short8 __ovld __cnfn isnan(half8);
11139short16 __ovld __cnfn isnan(half16);
11140#endif //cl_khr_fp16
11141
11142/**
11143 * Test for a normal value.
11144 */
11145int __ovld __cnfn isnormal(float);
11146int2 __ovld __cnfn isnormal(float2);
11147int3 __ovld __cnfn isnormal(float3);
11148int4 __ovld __cnfn isnormal(float4);
11149int8 __ovld __cnfn isnormal(float8);
11150int16 __ovld __cnfn isnormal(float16);
11151#ifdef cl_khr_fp64
11152int __ovld __cnfn isnormal(double);
11153long2 __ovld __cnfn isnormal(double2);
11154long3 __ovld __cnfn isnormal(double3);
11155long4 __ovld __cnfn isnormal(double4);
11156long8 __ovld __cnfn isnormal(double8);
11157long16 __ovld __cnfn isnormal(double16);
11158#endif //cl_khr_fp64
11159#ifdef cl_khr_fp16
11160int __ovld __cnfn isnormal(half);
11161short2 __ovld __cnfn isnormal(half2);
11162short3 __ovld __cnfn isnormal(half3);
11163short4 __ovld __cnfn isnormal(half4);
11164short8 __ovld __cnfn isnormal(half8);
11165short16 __ovld __cnfn isnormal(half16);
11166#endif //cl_khr_fp16
11167
11168/**
11169 * Test if arguments are ordered. isordered() takes
11170 * arguments x and y, and returns the result
11171 * isequal(x, x) && isequal(y, y).
11172 */
11173int __ovld __cnfn isordered(float x, float y);
11174int2 __ovld __cnfn isordered(float2 x, float2 y);
11175int3 __ovld __cnfn isordered(float3 x, float3 y);
11176int4 __ovld __cnfn isordered(float4 x, float4 y);
11177int8 __ovld __cnfn isordered(float8 x, float8 y);
11178int16 __ovld __cnfn isordered(float16 x, float16 y);
11179#ifdef cl_khr_fp64
11180int __ovld __cnfn isordered(double x, double y);
11181long2 __ovld __cnfn isordered(double2 x, double2 y);
11182long3 __ovld __cnfn isordered(double3 x, double3 y);
11183long4 __ovld __cnfn isordered(double4 x, double4 y);
11184long8 __ovld __cnfn isordered(double8 x, double8 y);
11185long16 __ovld __cnfn isordered(double16 x, double16 y);
11186#endif //cl_khr_fp64
11187#ifdef cl_khr_fp16
11188int __ovld __cnfn isordered(half x, half y);
11189short2 __ovld __cnfn isordered(half2 x, half2 y);
11190short3 __ovld __cnfn isordered(half3 x, half3 y);
11191short4 __ovld __cnfn isordered(half4 x, half4 y);
11192short8 __ovld __cnfn isordered(half8 x, half8 y);
11193short16 __ovld __cnfn isordered(half16 x, half16 y);
11194#endif //cl_khr_fp16
11195
11196/**
11197 * Test if arguments are unordered. isunordered()
11198 * takes arguments x and y, returning non-zero if x or y
11199 * is NaN, and zero otherwise.
11200 */
11201int __ovld __cnfn isunordered(float x, float y);
11202int2 __ovld __cnfn isunordered(float2 x, float2 y);
11203int3 __ovld __cnfn isunordered(float3 x, float3 y);
11204int4 __ovld __cnfn isunordered(float4 x, float4 y);
11205int8 __ovld __cnfn isunordered(float8 x, float8 y);
11206int16 __ovld __cnfn isunordered(float16 x, float16 y);
11207#ifdef cl_khr_fp64
11208int __ovld __cnfn isunordered(double x, double y);
11209long2 __ovld __cnfn isunordered(double2 x, double2 y);
11210long3 __ovld __cnfn isunordered(double3 x, double3 y);
11211long4 __ovld __cnfn isunordered(double4 x, double4 y);
11212long8 __ovld __cnfn isunordered(double8 x, double8 y);
11213long16 __ovld __cnfn isunordered(double16 x, double16 y);
11214#endif //cl_khr_fp64
11215#ifdef cl_khr_fp16
11216int __ovld __cnfn isunordered(half x, half y);
11217short2 __ovld __cnfn isunordered(half2 x, half2 y);
11218short3 __ovld __cnfn isunordered(half3 x, half3 y);
11219short4 __ovld __cnfn isunordered(half4 x, half4 y);
11220short8 __ovld __cnfn isunordered(half8 x, half8 y);
11221short16 __ovld __cnfn isunordered(half16 x, half16 y);
11222#endif //cl_khr_fp16
11223
11224/**
11225 * Test for sign bit. The scalar version of the function
11226 * returns a 1 if the sign bit in the float is set else returns
11227 * 0. The vector version of the function returns the
11228 * following for each component in floatn: a -1 if the
11229 * sign bit in the float is set else returns 0.
11230 */
11231int __ovld __cnfn signbit(float);
11232int2 __ovld __cnfn signbit(float2);
11233int3 __ovld __cnfn signbit(float3);
11234int4 __ovld __cnfn signbit(float4);
11235int8 __ovld __cnfn signbit(float8);
11236int16 __ovld __cnfn signbit(float16);
11237#ifdef cl_khr_fp64
11238int __ovld __cnfn signbit(double);
11239long2 __ovld __cnfn signbit(double2);
11240long3 __ovld __cnfn signbit(double3);
11241long4 __ovld __cnfn signbit(double4);
11242long8 __ovld __cnfn signbit(double8);
11243long16 __ovld __cnfn signbit(double16);
11244#endif //cl_khr_fp64
11245#ifdef cl_khr_fp16
11246int __ovld __cnfn signbit(half);
11247short2 __ovld __cnfn signbit(half2);
11248short3 __ovld __cnfn signbit(half3);
11249short4 __ovld __cnfn signbit(half4);
11250short8 __ovld __cnfn signbit(half8);
11251short16 __ovld __cnfn signbit(half16);
11252#endif //cl_khr_fp16
11253
11254/**
11255 * Returns 1 if the most significant bit in any component
11256 * of x is set; otherwise returns 0.
11257 */
11258int __ovld __cnfn any(char x);
11259int __ovld __cnfn any(char2 x);
11260int __ovld __cnfn any(char3 x);
11261int __ovld __cnfn any(char4 x);
11262int __ovld __cnfn any(char8 x);
11263int __ovld __cnfn any(char16 x);
11264int __ovld __cnfn any(short x);
11265int __ovld __cnfn any(short2 x);
11266int __ovld __cnfn any(short3 x);
11267int __ovld __cnfn any(short4 x);
11268int __ovld __cnfn any(short8 x);
11269int __ovld __cnfn any(short16 x);
11270int __ovld __cnfn any(int x);
11271int __ovld __cnfn any(int2 x);
11272int __ovld __cnfn any(int3 x);
11273int __ovld __cnfn any(int4 x);
11274int __ovld __cnfn any(int8 x);
11275int __ovld __cnfn any(int16 x);
11276int __ovld __cnfn any(long x);
11277int __ovld __cnfn any(long2 x);
11278int __ovld __cnfn any(long3 x);
11279int __ovld __cnfn any(long4 x);
11280int __ovld __cnfn any(long8 x);
11281int __ovld __cnfn any(long16 x);
11282
11283/**
11284 * Returns 1 if the most significant bit in all components
11285 * of x is set; otherwise returns 0.
11286 */
11287int __ovld __cnfn all(char x);
11288int __ovld __cnfn all(char2 x);
11289int __ovld __cnfn all(char3 x);
11290int __ovld __cnfn all(char4 x);
11291int __ovld __cnfn all(char8 x);
11292int __ovld __cnfn all(char16 x);
11293int __ovld __cnfn all(short x);
11294int __ovld __cnfn all(short2 x);
11295int __ovld __cnfn all(short3 x);
11296int __ovld __cnfn all(short4 x);
11297int __ovld __cnfn all(short8 x);
11298int __ovld __cnfn all(short16 x);
11299int __ovld __cnfn all(int x);
11300int __ovld __cnfn all(int2 x);
11301int __ovld __cnfn all(int3 x);
11302int __ovld __cnfn all(int4 x);
11303int __ovld __cnfn all(int8 x);
11304int __ovld __cnfn all(int16 x);
11305int __ovld __cnfn all(long x);
11306int __ovld __cnfn all(long2 x);
11307int __ovld __cnfn all(long3 x);
11308int __ovld __cnfn all(long4 x);
11309int __ovld __cnfn all(long8 x);
11310int __ovld __cnfn all(long16 x);
11311
11312/**
11313 * Each bit of the result is the corresponding bit of a if
11314 * the corresponding bit of c is 0. Otherwise it is the
11315 * corresponding bit of b.
11316 */
11317char __ovld __cnfn bitselect(char a, char b, char c);
11318uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
11319char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
11320uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
11321char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
11322uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
11323char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
11324uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
11325char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
11326uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
11327char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
11328uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
11329short __ovld __cnfn bitselect(short a, short b, short c);
11330ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
11331short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
11332ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
11333short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
11334ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
11335short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
11336ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
11337short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
11338ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
11339short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
11340ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
11341int __ovld __cnfn bitselect(int a, int b, int c);
11342uint __ovld __cnfn bitselect(uint a, uint b, uint c);
11343int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
11344uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
11345int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
11346uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
11347int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
11348uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
11349int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
11350uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
11351int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
11352uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
11353long __ovld __cnfn bitselect(long a, long b, long c);
11354ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
11355long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
11356ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
11357long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
11358ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
11359long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
11360ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
11361long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
11362ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
11363long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
11364ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
11365float __ovld __cnfn bitselect(float a, float b, float c);
11366float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
11367float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
11368float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
11369float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
11370float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
11371#ifdef cl_khr_fp64
11372double __ovld __cnfn bitselect(double a, double b, double c);
11373double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
11374double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
11375double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
11376double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
11377double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
11378#endif //cl_khr_fp64
11379#ifdef cl_khr_fp16
11380half __ovld __cnfn bitselect(half a, half b, half c);
11381half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
11382half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
11383half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
11384half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
11385half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
11386#endif //cl_khr_fp16
11387
11388/**
11389 * For each component of a vector type,
11390 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
11391 * For a scalar type, result = c ? b : a.
11392 * b and a must have the same type.
11393 * c must have the same number of elements and bits as a.
11394 */
11395char __ovld __cnfn select(char a, char b, char c);
11396uchar __ovld __cnfn select(uchar a, uchar b, char c);
11397char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
11398uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
11399char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
11400uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
11401char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
11402uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
11403char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
11404uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
11405char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
11406uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
11407
11408short __ovld __cnfn select(short a, short b, short c);
11409ushort __ovld __cnfn select(ushort a, ushort b, short c);
11410short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
11411ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
11412short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
11413ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
11414short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
11415ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
11416short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
11417ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
11418short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
11419ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
11420
11421int __ovld __cnfn select(int a, int b, int c);
11422uint __ovld __cnfn select(uint a, uint b, int c);
11423int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
11424uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
11425int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
11426uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
11427int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
11428uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
11429int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
11430uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
11431int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
11432uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
11433float __ovld __cnfn select(float a, float b, int c);
11434float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
11435float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
11436float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
11437float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
11438float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
11439
11440long __ovld __cnfn select(long a, long b, long c);
11441ulong __ovld __cnfn select(ulong a, ulong b, long c);
11442long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
11443ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
11444long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
11445ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
11446long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
11447ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
11448long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
11449ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
11450long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
11451ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
11452
11453char __ovld __cnfn select(char a, char b, uchar c);
11454uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
11455char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
11456uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
11457char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
11458uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
11459char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
11460uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
11461char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
11462uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
11463char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
11464uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
11465
11466short __ovld __cnfn select(short a, short b, ushort c);
11467ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
11468short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
11469ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
11470short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
11471ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
11472short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
11473ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
11474short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
11475ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
11476short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
11477ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
11478
11479int __ovld __cnfn select(int a, int b, uint c);
11480uint __ovld __cnfn select(uint a, uint b, uint c);
11481int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
11482uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
11483int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
11484uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
11485int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
11486uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
11487int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
11488uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
11489int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
11490uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
11491float __ovld __cnfn select(float a, float b, uint c);
11492float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
11493float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
11494float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
11495float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
11496float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
11497
11498long __ovld __cnfn select(long a, long b, ulong c);
11499ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
11500long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
11501ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
11502long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
11503ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
11504long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
11505ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
11506long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
11507ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
11508long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
11509ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
11510
11511#ifdef cl_khr_fp64
11512double __ovld __cnfn select(double a, double b, long c);
11513double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
11514double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
11515double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
11516double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
11517double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
11518double __ovld __cnfn select(double a, double b, ulong c);
11519double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
11520double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
11521double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
11522double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
11523double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
11524#endif //cl_khr_fp64
11525#ifdef cl_khr_fp16
11526half __ovld __cnfn select(half a, half b, short c);
11527half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
11528half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
11529half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
11530half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
11531half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
11532half __ovld __cnfn select(half a, half b, ushort c);
11533half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
11534half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
11535half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
11536half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
11537half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11538#endif //cl_khr_fp16
11539
11540// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
11541// 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
11542/**
11543 * Use generic type gentype to indicate the built-in data types
11544 * char, uchar, short, ushort, int, uint, long, ulong, float,
11545 * double or half.
11546 *
11547 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
11548 *
11549 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
11550 *
11551 * The address computed as (p + (offset * n)) must be
11552 * 8-bit aligned if gentype is char, uchar;
11553 * 16-bit aligned if gentype is short, ushort, half;
11554 * 32-bit aligned if gentype is int, uint, float;
11555 * 64-bit aligned if gentype is long, ulong, double.
11556 */
11557
11558char2 __ovld vload2(size_t offset, const __constant char *p);
11559uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11560short2 __ovld vload2(size_t offset, const __constant short *p);
11561ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11562int2 __ovld vload2(size_t offset, const __constant int *p);
11563uint2 __ovld vload2(size_t offset, const __constant uint *p);
11564long2 __ovld vload2(size_t offset, const __constant long *p);
11565ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11566float2 __ovld vload2(size_t offset, const __constant float *p);
11567char3 __ovld vload3(size_t offset, const __constant char *p);
11568uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11569short3 __ovld vload3(size_t offset, const __constant short *p);
11570ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11571int3 __ovld vload3(size_t offset, const __constant int *p);
11572uint3 __ovld vload3(size_t offset, const __constant uint *p);
11573long3 __ovld vload3(size_t offset, const __constant long *p);
11574ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11575float3 __ovld vload3(size_t offset, const __constant float *p);
11576char4 __ovld vload4(size_t offset, const __constant char *p);
11577uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11578short4 __ovld vload4(size_t offset, const __constant short *p);
11579ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11580int4 __ovld vload4(size_t offset, const __constant int *p);
11581uint4 __ovld vload4(size_t offset, const __constant uint *p);
11582long4 __ovld vload4(size_t offset, const __constant long *p);
11583ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11584float4 __ovld vload4(size_t offset, const __constant float *p);
11585char8 __ovld vload8(size_t offset, const __constant char *p);
11586uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11587short8 __ovld vload8(size_t offset, const __constant short *p);
11588ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11589int8 __ovld vload8(size_t offset, const __constant int *p);
11590uint8 __ovld vload8(size_t offset, const __constant uint *p);
11591long8 __ovld vload8(size_t offset, const __constant long *p);
11592ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11593float8 __ovld vload8(size_t offset, const __constant float *p);
11594char16 __ovld vload16(size_t offset, const __constant char *p);
11595uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11596short16 __ovld vload16(size_t offset, const __constant short *p);
11597ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11598int16 __ovld vload16(size_t offset, const __constant int *p);
11599uint16 __ovld vload16(size_t offset, const __constant uint *p);
11600long16 __ovld vload16(size_t offset, const __constant long *p);
11601ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11602float16 __ovld vload16(size_t offset, const __constant float *p);
11603#ifdef cl_khr_fp64
11604double2 __ovld vload2(size_t offset, const __constant double *p);
11605double3 __ovld vload3(size_t offset, const __constant double *p);
11606double4 __ovld vload4(size_t offset, const __constant double *p);
11607double8 __ovld vload8(size_t offset, const __constant double *p);
11608double16 __ovld vload16(size_t offset, const __constant double *p);
11609#endif //cl_khr_fp64
11610
11611#ifdef cl_khr_fp16
11612half __ovld vload(size_t offset, const __constant half *p);
11613half2 __ovld vload2(size_t offset, const __constant half *p);
11614half3 __ovld vload3(size_t offset, const __constant half *p);
11615half4 __ovld vload4(size_t offset, const __constant half *p);
11616half8 __ovld vload8(size_t offset, const __constant half *p);
11617half16 __ovld vload16(size_t offset, const __constant half *p);
11618#endif //cl_khr_fp16
11619
11620#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
11621char2 __ovld vload2(size_t offset, const char *p);
11622uchar2 __ovld vload2(size_t offset, const uchar *p);
11623short2 __ovld vload2(size_t offset, const short *p);
11624ushort2 __ovld vload2(size_t offset, const ushort *p);
11625int2 __ovld vload2(size_t offset, const int *p);
11626uint2 __ovld vload2(size_t offset, const uint *p);
11627long2 __ovld vload2(size_t offset, const long *p);
11628ulong2 __ovld vload2(size_t offset, const ulong *p);
11629float2 __ovld vload2(size_t offset, const float *p);
11630char3 __ovld vload3(size_t offset, const char *p);
11631uchar3 __ovld vload3(size_t offset, const uchar *p);
11632short3 __ovld vload3(size_t offset, const short *p);
11633ushort3 __ovld vload3(size_t offset, const ushort *p);
11634int3 __ovld vload3(size_t offset, const int *p);
11635uint3 __ovld vload3(size_t offset, const uint *p);
11636long3 __ovld vload3(size_t offset, const long *p);
11637ulong3 __ovld vload3(size_t offset, const ulong *p);
11638float3 __ovld vload3(size_t offset, const float *p);
11639char4 __ovld vload4(size_t offset, const char *p);
11640uchar4 __ovld vload4(size_t offset, const uchar *p);
11641short4 __ovld vload4(size_t offset, const short *p);
11642ushort4 __ovld vload4(size_t offset, const ushort *p);
11643int4 __ovld vload4(size_t offset, const int *p);
11644uint4 __ovld vload4(size_t offset, const uint *p);
11645long4 __ovld vload4(size_t offset, const long *p);
11646ulong4 __ovld vload4(size_t offset, const ulong *p);
11647float4 __ovld vload4(size_t offset, const float *p);
11648char8 __ovld vload8(size_t offset, const char *p);
11649uchar8 __ovld vload8(size_t offset, const uchar *p);
11650short8 __ovld vload8(size_t offset, const short *p);
11651ushort8 __ovld vload8(size_t offset, const ushort *p);
11652int8 __ovld vload8(size_t offset, const int *p);
11653uint8 __ovld vload8(size_t offset, const uint *p);
11654long8 __ovld vload8(size_t offset, const long *p);
11655ulong8 __ovld vload8(size_t offset, const ulong *p);
11656float8 __ovld vload8(size_t offset, const float *p);
11657char16 __ovld vload16(size_t offset, const char *p);
11658uchar16 __ovld vload16(size_t offset, const uchar *p);
11659short16 __ovld vload16(size_t offset, const short *p);
11660ushort16 __ovld vload16(size_t offset, const ushort *p);
11661int16 __ovld vload16(size_t offset, const int *p);
11662uint16 __ovld vload16(size_t offset, const uint *p);
11663long16 __ovld vload16(size_t offset, const long *p);
11664ulong16 __ovld vload16(size_t offset, const ulong *p);
11665float16 __ovld vload16(size_t offset, const float *p);
11666
11667#ifdef cl_khr_fp64
11668double2 __ovld vload2(size_t offset, const double *p);
11669double3 __ovld vload3(size_t offset, const double *p);
11670double4 __ovld vload4(size_t offset, const double *p);
11671double8 __ovld vload8(size_t offset, const double *p);
11672double16 __ovld vload16(size_t offset, const double *p);
11673#endif //cl_khr_fp64
11674
11675#ifdef cl_khr_fp16
11676half __ovld vload(size_t offset, const half *p);
11677half2 __ovld vload2(size_t offset, const half *p);
11678half3 __ovld vload3(size_t offset, const half *p);
11679half4 __ovld vload4(size_t offset, const half *p);
11680half8 __ovld vload8(size_t offset, const half *p);
11681half16 __ovld vload16(size_t offset, const half *p);
11682#endif //cl_khr_fp16
11683#else
11684char2 __ovld vload2(size_t offset, const __global char *p);
11685uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11686short2 __ovld vload2(size_t offset, const __global short *p);
11687ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11688int2 __ovld vload2(size_t offset, const __global int *p);
11689uint2 __ovld vload2(size_t offset, const __global uint *p);
11690long2 __ovld vload2(size_t offset, const __global long *p);
11691ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11692float2 __ovld vload2(size_t offset, const __global float *p);
11693char3 __ovld vload3(size_t offset, const __global char *p);
11694uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11695short3 __ovld vload3(size_t offset, const __global short *p);
11696ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11697int3 __ovld vload3(size_t offset, const __global int *p);
11698uint3 __ovld vload3(size_t offset, const __global uint *p);
11699long3 __ovld vload3(size_t offset, const __global long *p);
11700ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11701float3 __ovld vload3(size_t offset, const __global float *p);
11702char4 __ovld vload4(size_t offset, const __global char *p);
11703uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11704short4 __ovld vload4(size_t offset, const __global short *p);
11705ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11706int4 __ovld vload4(size_t offset, const __global int *p);
11707uint4 __ovld vload4(size_t offset, const __global uint *p);
11708long4 __ovld vload4(size_t offset, const __global long *p);
11709ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11710float4 __ovld vload4(size_t offset, const __global float *p);
11711char8 __ovld vload8(size_t offset, const __global char *p);
11712uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11713short8 __ovld vload8(size_t offset, const __global short *p);
11714ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11715int8 __ovld vload8(size_t offset, const __global int *p);
11716uint8 __ovld vload8(size_t offset, const __global uint *p);
11717long8 __ovld vload8(size_t offset, const __global long *p);
11718ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11719float8 __ovld vload8(size_t offset, const __global float *p);
11720char16 __ovld vload16(size_t offset, const __global char *p);
11721uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11722short16 __ovld vload16(size_t offset, const __global short *p);
11723ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11724int16 __ovld vload16(size_t offset, const __global int *p);
11725uint16 __ovld vload16(size_t offset, const __global uint *p);
11726long16 __ovld vload16(size_t offset, const __global long *p);
11727ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11728float16 __ovld vload16(size_t offset, const __global float *p);
11729char2 __ovld vload2(size_t offset, const __local char *p);
11730uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11731short2 __ovld vload2(size_t offset, const __local short *p);
11732ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11733int2 __ovld vload2(size_t offset, const __local int *p);
11734uint2 __ovld vload2(size_t offset, const __local uint *p);
11735long2 __ovld vload2(size_t offset, const __local long *p);
11736ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11737float2 __ovld vload2(size_t offset, const __local float *p);
11738char3 __ovld vload3(size_t offset, const __local char *p);
11739uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11740short3 __ovld vload3(size_t offset, const __local short *p);
11741ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11742int3 __ovld vload3(size_t offset, const __local int *p);
11743uint3 __ovld vload3(size_t offset, const __local uint *p);
11744long3 __ovld vload3(size_t offset, const __local long *p);
11745ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11746float3 __ovld vload3(size_t offset, const __local float *p);
11747char4 __ovld vload4(size_t offset, const __local char *p);
11748uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11749short4 __ovld vload4(size_t offset, const __local short *p);
11750ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11751int4 __ovld vload4(size_t offset, const __local int *p);
11752uint4 __ovld vload4(size_t offset, const __local uint *p);
11753long4 __ovld vload4(size_t offset, const __local long *p);
11754ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11755float4 __ovld vload4(size_t offset, const __local float *p);
11756char8 __ovld vload8(size_t offset, const __local char *p);
11757uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11758short8 __ovld vload8(size_t offset, const __local short *p);
11759ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11760int8 __ovld vload8(size_t offset, const __local int *p);
11761uint8 __ovld vload8(size_t offset, const __local uint *p);
11762long8 __ovld vload8(size_t offset, const __local long *p);
11763ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11764float8 __ovld vload8(size_t offset, const __local float *p);
11765char16 __ovld vload16(size_t offset, const __local char *p);
11766uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11767short16 __ovld vload16(size_t offset, const __local short *p);
11768ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11769int16 __ovld vload16(size_t offset, const __local int *p);
11770uint16 __ovld vload16(size_t offset, const __local uint *p);
11771long16 __ovld vload16(size_t offset, const __local long *p);
11772ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11773float16 __ovld vload16(size_t offset, const __local float *p);
11774char2 __ovld vload2(size_t offset, const __private char *p);
11775uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11776short2 __ovld vload2(size_t offset, const __private short *p);
11777ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11778int2 __ovld vload2(size_t offset, const __private int *p);
11779uint2 __ovld vload2(size_t offset, const __private uint *p);
11780long2 __ovld vload2(size_t offset, const __private long *p);
11781ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11782float2 __ovld vload2(size_t offset, const __private float *p);
11783char3 __ovld vload3(size_t offset, const __private char *p);
11784uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11785short3 __ovld vload3(size_t offset, const __private short *p);
11786ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11787int3 __ovld vload3(size_t offset, const __private int *p);
11788uint3 __ovld vload3(size_t offset, const __private uint *p);
11789long3 __ovld vload3(size_t offset, const __private long *p);
11790ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11791float3 __ovld vload3(size_t offset, const __private float *p);
11792char4 __ovld vload4(size_t offset, const __private char *p);
11793uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11794short4 __ovld vload4(size_t offset, const __private short *p);
11795ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11796int4 __ovld vload4(size_t offset, const __private int *p);
11797uint4 __ovld vload4(size_t offset, const __private uint *p);
11798long4 __ovld vload4(size_t offset, const __private long *p);
11799ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11800float4 __ovld vload4(size_t offset, const __private float *p);
11801char8 __ovld vload8(size_t offset, const __private char *p);
11802uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11803short8 __ovld vload8(size_t offset, const __private short *p);
11804ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11805int8 __ovld vload8(size_t offset, const __private int *p);
11806uint8 __ovld vload8(size_t offset, const __private uint *p);
11807long8 __ovld vload8(size_t offset, const __private long *p);
11808ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11809float8 __ovld vload8(size_t offset, const __private float *p);
11810char16 __ovld vload16(size_t offset, const __private char *p);
11811uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11812short16 __ovld vload16(size_t offset, const __private short *p);
11813ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11814int16 __ovld vload16(size_t offset, const __private int *p);
11815uint16 __ovld vload16(size_t offset, const __private uint *p);
11816long16 __ovld vload16(size_t offset, const __private long *p);
11817ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11818float16 __ovld vload16(size_t offset, const __private float *p);
11819
11820#ifdef cl_khr_fp64
11821double2 __ovld vload2(size_t offset, const __global double *p);
11822double3 __ovld vload3(size_t offset, const __global double *p);
11823double4 __ovld vload4(size_t offset, const __global double *p);
11824double8 __ovld vload8(size_t offset, const __global double *p);
11825double16 __ovld vload16(size_t offset, const __global double *p);
11826double2 __ovld vload2(size_t offset, const __local double *p);
11827double3 __ovld vload3(size_t offset, const __local double *p);
11828double4 __ovld vload4(size_t offset, const __local double *p);
11829double8 __ovld vload8(size_t offset, const __local double *p);
11830double16 __ovld vload16(size_t offset, const __local double *p);
11831double2 __ovld vload2(size_t offset, const __private double *p);
11832double3 __ovld vload3(size_t offset, const __private double *p);
11833double4 __ovld vload4(size_t offset, const __private double *p);
11834double8 __ovld vload8(size_t offset, const __private double *p);
11835double16 __ovld vload16(size_t offset, const __private double *p);
11836#endif //cl_khr_fp64
11837
11838#ifdef cl_khr_fp16
11839half __ovld vload(size_t offset, const __global half *p);
11840half2 __ovld vload2(size_t offset, const __global half *p);
11841half3 __ovld vload3(size_t offset, const __global half *p);
11842half4 __ovld vload4(size_t offset, const __global half *p);
11843half8 __ovld vload8(size_t offset, const __global half *p);
11844half16 __ovld vload16(size_t offset, const __global half *p);
11845half __ovld vload(size_t offset, const __local half *p);
11846half2 __ovld vload2(size_t offset, const __local half *p);
11847half3 __ovld vload3(size_t offset, const __local half *p);
11848half4 __ovld vload4(size_t offset, const __local half *p);
11849half8 __ovld vload8(size_t offset, const __local half *p);
11850half16 __ovld vload16(size_t offset, const __local half *p);
11851half __ovld vload(size_t offset, const __private half *p);
11852half2 __ovld vload2(size_t offset, const __private half *p);
11853half3 __ovld vload3(size_t offset, const __private half *p);
11854half4 __ovld vload4(size_t offset, const __private half *p);
11855half8 __ovld vload8(size_t offset, const __private half *p);
11856half16 __ovld vload16(size_t offset, const __private half *p);
11857#endif //cl_khr_fp16
11858#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
11859
11860#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
11861void __ovld vstore2(char2 data, size_t offset, char *p);
11862void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11863void __ovld vstore2(short2 data, size_t offset, short *p);
11864void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
11865void __ovld vstore2(int2 data, size_t offset, int *p);
11866void __ovld vstore2(uint2 data, size_t offset, uint *p);
11867void __ovld vstore2(long2 data, size_t offset, long *p);
11868void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
11869void __ovld vstore2(float2 data, size_t offset, float *p);
11870void __ovld vstore3(char3 data, size_t offset, char *p);
11871void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
11872void __ovld vstore3(short3 data, size_t offset, short *p);
11873void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
11874void __ovld vstore3(int3 data, size_t offset, int *p);
11875void __ovld vstore3(uint3 data, size_t offset, uint *p);
11876void __ovld vstore3(long3 data, size_t offset, long *p);
11877void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
11878void __ovld vstore3(float3 data, size_t offset, float *p);
11879void __ovld vstore4(char4 data, size_t offset, char *p);
11880void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
11881void __ovld vstore4(short4 data, size_t offset, short *p);
11882void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
11883void __ovld vstore4(int4 data, size_t offset, int *p);
11884void __ovld vstore4(uint4 data, size_t offset, uint *p);
11885void __ovld vstore4(long4 data, size_t offset, long *p);
11886void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
11887void __ovld vstore4(float4 data, size_t offset, float *p);
11888void __ovld vstore8(char8 data, size_t offset, char *p);
11889void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
11890void __ovld vstore8(short8 data, size_t offset, short *p);
11891void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
11892void __ovld vstore8(int8 data, size_t offset, int *p);
11893void __ovld vstore8(uint8 data, size_t offset, uint *p);
11894void __ovld vstore8(long8 data, size_t offset, long *p);
11895void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
11896void __ovld vstore8(float8 data, size_t offset, float *p);
11897void __ovld vstore16(char16 data, size_t offset, char *p);
11898void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
11899void __ovld vstore16(short16 data, size_t offset, short *p);
11900void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
11901void __ovld vstore16(int16 data, size_t offset, int *p);
11902void __ovld vstore16(uint16 data, size_t offset, uint *p);
11903void __ovld vstore16(long16 data, size_t offset, long *p);
11904void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
11905void __ovld vstore16(float16 data, size_t offset, float *p);
11906#ifdef cl_khr_fp64
11907void __ovld vstore2(double2 data, size_t offset, double *p);
11908void __ovld vstore3(double3 data, size_t offset, double *p);
11909void __ovld vstore4(double4 data, size_t offset, double *p);
11910void __ovld vstore8(double8 data, size_t offset, double *p);
11911void __ovld vstore16(double16 data, size_t offset, double *p);
11912#endif //cl_khr_fp64
11913#ifdef cl_khr_fp16
11914void __ovld vstore(half data, size_t offset, half *p);
11915void __ovld vstore2(half2 data, size_t offset, half *p);
11916void __ovld vstore3(half3 data, size_t offset, half *p);
11917void __ovld vstore4(half4 data, size_t offset, half *p);
11918void __ovld vstore8(half8 data, size_t offset, half *p);
11919void __ovld vstore16(half16 data, size_t offset, half *p);
11920#endif //cl_khr_fp16
11921#else
11922void __ovld vstore2(char2 data, size_t offset, __global char *p);
11923void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11924void __ovld vstore2(short2 data, size_t offset, __global short *p);
11925void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
11926void __ovld vstore2(int2 data, size_t offset, __global int *p);
11927void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
11928void __ovld vstore2(long2 data, size_t offset, __global long *p);
11929void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
11930void __ovld vstore2(float2 data, size_t offset, __global float *p);
11931void __ovld vstore3(char3 data, size_t offset, __global char *p);
11932void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
11933void __ovld vstore3(short3 data, size_t offset, __global short *p);
11934void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
11935void __ovld vstore3(int3 data, size_t offset, __global int *p);
11936void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
11937void __ovld vstore3(long3 data, size_t offset, __global long *p);
11938void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
11939void __ovld vstore3(float3 data, size_t offset, __global float *p);
11940void __ovld vstore4(char4 data, size_t offset, __global char *p);
11941void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
11942void __ovld vstore4(short4 data, size_t offset, __global short *p);
11943void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
11944void __ovld vstore4(int4 data, size_t offset, __global int *p);
11945void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
11946void __ovld vstore4(long4 data, size_t offset, __global long *p);
11947void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
11948void __ovld vstore4(float4 data, size_t offset, __global float *p);
11949void __ovld vstore8(char8 data, size_t offset, __global char *p);
11950void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
11951void __ovld vstore8(short8 data, size_t offset, __global short *p);
11952void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
11953void __ovld vstore8(int8 data, size_t offset, __global int *p);
11954void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
11955void __ovld vstore8(long8 data, size_t offset, __global long *p);
11956void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
11957void __ovld vstore8(float8 data, size_t offset, __global float *p);
11958void __ovld vstore16(char16 data, size_t offset, __global char *p);
11959void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
11960void __ovld vstore16(short16 data, size_t offset, __global short *p);
11961void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
11962void __ovld vstore16(int16 data, size_t offset, __global int *p);
11963void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
11964void __ovld vstore16(long16 data, size_t offset, __global long *p);
11965void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
11966void __ovld vstore16(float16 data, size_t offset, __global float *p);
11967void __ovld vstore2(char2 data, size_t offset, __local char *p);
11968void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
11969void __ovld vstore2(short2 data, size_t offset, __local short *p);
11970void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
11971void __ovld vstore2(int2 data, size_t offset, __local int *p);
11972void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
11973void __ovld vstore2(long2 data, size_t offset, __local long *p);
11974void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
11975void __ovld vstore2(float2 data, size_t offset, __local float *p);
11976void __ovld vstore3(char3 data, size_t offset, __local char *p);
11977void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
11978void __ovld vstore3(short3 data, size_t offset, __local short *p);
11979void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
11980void __ovld vstore3(int3 data, size_t offset, __local int *p);
11981void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
11982void __ovld vstore3(long3 data, size_t offset, __local long *p);
11983void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
11984void __ovld vstore3(float3 data, size_t offset, __local float *p);
11985void __ovld vstore4(char4 data, size_t offset, __local char *p);
11986void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
11987void __ovld vstore4(short4 data, size_t offset, __local short *p);
11988void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
11989void __ovld vstore4(int4 data, size_t offset, __local int *p);
11990void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
11991void __ovld vstore4(long4 data, size_t offset, __local long *p);
11992void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
11993void __ovld vstore4(float4 data, size_t offset, __local float *p);
11994void __ovld vstore8(char8 data, size_t offset, __local char *p);
11995void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
11996void __ovld vstore8(short8 data, size_t offset, __local short *p);
11997void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
11998void __ovld vstore8(int8 data, size_t offset, __local int *p);
11999void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
12000void __ovld vstore8(long8 data, size_t offset, __local long *p);
12001void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
12002void __ovld vstore8(float8 data, size_t offset, __local float *p);
12003void __ovld vstore16(char16 data, size_t offset, __local char *p);
12004void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
12005void __ovld vstore16(short16 data, size_t offset, __local short *p);
12006void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
12007void __ovld vstore16(int16 data, size_t offset, __local int *p);
12008void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
12009void __ovld vstore16(long16 data, size_t offset, __local long *p);
12010void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
12011void __ovld vstore16(float16 data, size_t offset, __local float *p);
12012void __ovld vstore2(char2 data, size_t offset, __private char *p);
12013void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
12014void __ovld vstore2(short2 data, size_t offset, __private short *p);
12015void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
12016void __ovld vstore2(int2 data, size_t offset, __private int *p);
12017void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
12018void __ovld vstore2(long2 data, size_t offset, __private long *p);
12019void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
12020void __ovld vstore2(float2 data, size_t offset, __private float *p);
12021void __ovld vstore3(char3 data, size_t offset, __private char *p);
12022void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
12023void __ovld vstore3(short3 data, size_t offset, __private short *p);
12024void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
12025void __ovld vstore3(int3 data, size_t offset, __private int *p);
12026void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
12027void __ovld vstore3(long3 data, size_t offset, __private long *p);
12028void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
12029void __ovld vstore3(float3 data, size_t offset, __private float *p);
12030void __ovld vstore4(char4 data, size_t offset, __private char *p);
12031void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
12032void __ovld vstore4(short4 data, size_t offset, __private short *p);
12033void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
12034void __ovld vstore4(int4 data, size_t offset, __private int *p);
12035void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
12036void __ovld vstore4(long4 data, size_t offset, __private long *p);
12037void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
12038void __ovld vstore4(float4 data, size_t offset, __private float *p);
12039void __ovld vstore8(char8 data, size_t offset, __private char *p);
12040void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
12041void __ovld vstore8(short8 data, size_t offset, __private short *p);
12042void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
12043void __ovld vstore8(int8 data, size_t offset, __private int *p);
12044void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
12045void __ovld vstore8(long8 data, size_t offset, __private long *p);
12046void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
12047void __ovld vstore8(float8 data, size_t offset, __private float *p);
12048void __ovld vstore16(char16 data, size_t offset, __private char *p);
12049void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
12050void __ovld vstore16(short16 data, size_t offset, __private short *p);
12051void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
12052void __ovld vstore16(int16 data, size_t offset, __private int *p);
12053void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
12054void __ovld vstore16(long16 data, size_t offset, __private long *p);
12055void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
12056void __ovld vstore16(float16 data, size_t offset, __private float *p);
12057#ifdef cl_khr_fp64
12058void __ovld vstore2(double2 data, size_t offset, __global double *p);
12059void __ovld vstore3(double3 data, size_t offset, __global double *p);
12060void __ovld vstore4(double4 data, size_t offset, __global double *p);
12061void __ovld vstore8(double8 data, size_t offset, __global double *p);
12062void __ovld vstore16(double16 data, size_t offset, __global double *p);
12063void __ovld vstore2(double2 data, size_t offset, __local double *p);
12064void __ovld vstore3(double3 data, size_t offset, __local double *p);
12065void __ovld vstore4(double4 data, size_t offset, __local double *p);
12066void __ovld vstore8(double8 data, size_t offset, __local double *p);
12067void __ovld vstore16(double16 data, size_t offset, __local double *p);
12068void __ovld vstore2(double2 data, size_t offset, __private double *p);
12069void __ovld vstore3(double3 data, size_t offset, __private double *p);
12070void __ovld vstore4(double4 data, size_t offset, __private double *p);
12071void __ovld vstore8(double8 data, size_t offset, __private double *p);
12072void __ovld vstore16(double16 data, size_t offset, __private double *p);
12073#endif //cl_khr_fp64
12074#ifdef cl_khr_fp16
12075void __ovld vstore(half data, size_t offset, __global half *p);
12076void __ovld vstore2(half2 data, size_t offset, __global half *p);
12077void __ovld vstore3(half3 data, size_t offset, __global half *p);
12078void __ovld vstore4(half4 data, size_t offset, __global half *p);
12079void __ovld vstore8(half8 data, size_t offset, __global half *p);
12080void __ovld vstore16(half16 data, size_t offset, __global half *p);
12081void __ovld vstore(half data, size_t offset, __local half *p);
12082void __ovld vstore2(half2 data, size_t offset, __local half *p);
12083void __ovld vstore3(half3 data, size_t offset, __local half *p);
12084void __ovld vstore4(half4 data, size_t offset, __local half *p);
12085void __ovld vstore8(half8 data, size_t offset, __local half *p);
12086void __ovld vstore16(half16 data, size_t offset, __local half *p);
12087void __ovld vstore(half data, size_t offset, __private half *p);
12088void __ovld vstore2(half2 data, size_t offset, __private half *p);
12089void __ovld vstore3(half3 data, size_t offset, __private half *p);
12090void __ovld vstore4(half4 data, size_t offset, __private half *p);
12091void __ovld vstore8(half8 data, size_t offset, __private half *p);
12092void __ovld vstore16(half16 data, size_t offset, __private half *p);
12093#endif //cl_khr_fp16
12094#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12095
12096/**
12097 * Read sizeof (half) bytes of data from address
12098 * (p + offset). The data read is interpreted as a
12099 * half value. The half value is converted to a
12100 * float value and the float value is returned.
12101 * The read address computed as (p + offset)
12102 * must be 16-bit aligned.
12103 */
12104float __ovld vload_half(size_t offset, const __constant half *p);
12105#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12106float __ovld vload_half(size_t offset, const half *p);
12107#else
12108float __ovld vload_half(size_t offset, const __global half *p);
12109float __ovld vload_half(size_t offset, const __local half *p);
12110float __ovld vload_half(size_t offset, const __private half *p);
12111#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12112
12113/**
12114 * Read sizeof (halfn) bytes of data from address
12115 * (p + (offset * n)). The data read is interpreted
12116 * as a halfn value. The halfn value read is
12117 * converted to a floatn value and the floatn
12118 * value is returned. The read address computed
12119 * as (p + (offset * n)) must be 16-bit aligned.
12120 */
12121float2 __ovld vload_half2(size_t offset, const __constant half *p);
12122float3 __ovld vload_half3(size_t offset, const __constant half *p);
12123float4 __ovld vload_half4(size_t offset, const __constant half *p);
12124float8 __ovld vload_half8(size_t offset, const __constant half *p);
12125float16 __ovld vload_half16(size_t offset, const __constant half *p);
12126#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12127float2 __ovld vload_half2(size_t offset, const half *p);
12128float3 __ovld vload_half3(size_t offset, const half *p);
12129float4 __ovld vload_half4(size_t offset, const half *p);
12130float8 __ovld vload_half8(size_t offset, const half *p);
12131float16 __ovld vload_half16(size_t offset, const half *p);
12132#else
12133float2 __ovld vload_half2(size_t offset, const __global half *p);
12134float3 __ovld vload_half3(size_t offset, const __global half *p);
12135float4 __ovld vload_half4(size_t offset, const __global half *p);
12136float8 __ovld vload_half8(size_t offset, const __global half *p);
12137float16 __ovld vload_half16(size_t offset, const __global half *p);
12138float2 __ovld vload_half2(size_t offset, const __local half *p);
12139float3 __ovld vload_half3(size_t offset, const __local half *p);
12140float4 __ovld vload_half4(size_t offset, const __local half *p);
12141float8 __ovld vload_half8(size_t offset, const __local half *p);
12142float16 __ovld vload_half16(size_t offset, const __local half *p);
12143float2 __ovld vload_half2(size_t offset, const __private half *p);
12144float3 __ovld vload_half3(size_t offset, const __private half *p);
12145float4 __ovld vload_half4(size_t offset, const __private half *p);
12146float8 __ovld vload_half8(size_t offset, const __private half *p);
12147float16 __ovld vload_half16(size_t offset, const __private half *p);
12148#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12149
12150/**
12151 * The float value given by data is first
12152 * converted to a half value using the appropriate
12153 * rounding mode. The half value is then written
12154 * to address computed as (p + offset). The
12155 * address computed as (p + offset) must be 16-
12156 * bit aligned.
12157 * vstore_half use the current rounding mode.
12158 * The default current rounding mode is round to
12159 * nearest even.
12160 */
12161#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12162void __ovld vstore_half(float data, size_t offset, half *p);
12163void __ovld vstore_half_rte(float data, size_t offset, half *p);
12164void __ovld vstore_half_rtz(float data, size_t offset, half *p);
12165void __ovld vstore_half_rtp(float data, size_t offset, half *p);
12166void __ovld vstore_half_rtn(float data, size_t offset, half *p);
12167#ifdef cl_khr_fp64
12168void __ovld vstore_half(double data, size_t offset, half *p);
12169void __ovld vstore_half_rte(double data, size_t offset, half *p);
12170void __ovld vstore_half_rtz(double data, size_t offset, half *p);
12171void __ovld vstore_half_rtp(double data, size_t offset, half *p);
12172void __ovld vstore_half_rtn(double data, size_t offset, half *p);
12173#endif //cl_khr_fp64
12174#else
12175void __ovld vstore_half(float data, size_t offset, __global half *p);
12176void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
12177void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
12178void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
12179void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
12180void __ovld vstore_half(float data, size_t offset, __local half *p);
12181void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
12182void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
12183void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
12184void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
12185void __ovld vstore_half(float data, size_t offset, __private half *p);
12186void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
12187void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
12188void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
12189void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
12190#ifdef cl_khr_fp64
12191void __ovld vstore_half(double data, size_t offset, __global half *p);
12192void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
12193void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
12194void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
12195void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
12196void __ovld vstore_half(double data, size_t offset, __local half *p);
12197void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
12198void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
12199void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
12200void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
12201void __ovld vstore_half(double data, size_t offset, __private half *p);
12202void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
12203void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
12204void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
12205void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
12206#endif //cl_khr_fp64
12207#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12208
12209/**
12210 * The floatn value given by data is converted to
12211 * a halfn value using the appropriate rounding
12212 * mode. The halfn value is then written to
12213 * address computed as (p + (offset * n)). The
12214 * address computed as (p + (offset * n)) must be
12215 * 16-bit aligned.
12216 * vstore_halfn uses the current rounding mode.
12217 * The default current rounding mode is round to
12218 * nearest even.
12219 */
12220#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12221void __ovld vstore_half2(float2 data, size_t offset, half *p);
12222void __ovld vstore_half3(float3 data, size_t offset, half *p);
12223void __ovld vstore_half4(float4 data, size_t offset, half *p);
12224void __ovld vstore_half8(float8 data, size_t offset, half *p);
12225void __ovld vstore_half16(float16 data, size_t offset, half *p);
12226void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
12227void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
12228void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
12229void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
12230void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
12231void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
12232void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
12233void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
12234void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
12235void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
12236void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
12237void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
12238void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
12239void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
12240void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
12241void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
12242void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
12243void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
12244void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
12245void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
12246#ifdef cl_khr_fp64
12247void __ovld vstore_half2(double2 data, size_t offset, half *p);
12248void __ovld vstore_half3(double3 data, size_t offset, half *p);
12249void __ovld vstore_half4(double4 data, size_t offset, half *p);
12250void __ovld vstore_half8(double8 data, size_t offset, half *p);
12251void __ovld vstore_half16(double16 data, size_t offset, half *p);
12252void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
12253void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
12254void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
12255void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
12256void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
12257void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
12258void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
12259void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
12260void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
12261void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
12262void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
12263void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
12264void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
12265void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
12266void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
12267void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
12268void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
12269void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
12270void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
12271void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
12272#endif //cl_khr_fp64
12273#else
12274void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
12275void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
12276void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
12277void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
12278void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
12279void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
12280void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
12281void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
12282void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
12283void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
12284void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
12285void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
12286void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
12287void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
12288void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
12289void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
12290void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
12291void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
12292void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
12293void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
12294void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
12295void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
12296void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
12297void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
12298void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
12299void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
12300void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
12301void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
12302void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
12303void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
12304void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
12305void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
12306void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
12307void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
12308void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
12309void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
12310void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
12311void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
12312void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
12313void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
12314void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
12315void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
12316void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
12317void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
12318void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
12319void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
12320void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
12321void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
12322void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
12323void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
12324void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
12325void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
12326void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
12327void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
12328void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
12329void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
12330void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
12331void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
12332void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
12333void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
12334void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
12335void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
12336void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
12337void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
12338void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
12339void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
12340void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
12341void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
12342void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
12343void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
12344void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
12345void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
12346void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
12347void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
12348void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
12349#ifdef cl_khr_fp64
12350void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
12351void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
12352void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
12353void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
12354void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
12355void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
12356void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
12357void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
12358void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
12359void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
12360void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
12361void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
12362void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
12363void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
12364void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
12365void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
12366void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
12367void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
12368void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
12369void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
12370void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
12371void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
12372void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
12373void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
12374void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
12375void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
12376void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
12377void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
12378void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
12379void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
12380void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
12381void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
12382void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
12383void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
12384void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
12385void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
12386void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
12387void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
12388void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
12389void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
12390void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
12391void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
12392void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
12393void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
12394void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
12395void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
12396void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
12397void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
12398void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
12399void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
12400void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
12401void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
12402void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
12403void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
12404void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
12405void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
12406void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
12407void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
12408void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
12409void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
12410void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
12411void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
12412void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
12413void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
12414void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
12415void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
12416void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
12417void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
12418void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
12419void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
12420void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
12421void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
12422void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12423void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12424void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12425#endif //cl_khr_fp64
12426#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12427
12428/**
12429 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
12430 * bytes of data from address (p + (offset * n)).
12431 * The data read is interpreted as a halfn value.
12432 * The halfn value read is converted to a floatn
12433 * value and the floatn value is returned.
12434 * The address computed as (p + (offset * n))
12435 * must be aligned to sizeof (halfn) bytes.
12436 * For n = 3, vloada_half3 reads a half3 from
12437 * address (p + (offset * 4)) and returns a float3.
12438 * The address computed as (p + (offset * 4))
12439 * must be aligned to sizeof (half) * 4 bytes.
12440 */
12441float __ovld vloada_half(size_t offset, const __constant half *p);
12442float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12443float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12444float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12445float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12446float16 __ovld vloada_half16(size_t offset, const __constant half *p);
12447#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12448float __ovld vloada_half(size_t offset, const half *p);
12449float2 __ovld vloada_half2(size_t offset, const half *p);
12450float3 __ovld vloada_half3(size_t offset, const half *p);
12451float4 __ovld vloada_half4(size_t offset, const half *p);
12452float8 __ovld vloada_half8(size_t offset, const half *p);
12453float16 __ovld vloada_half16(size_t offset, const half *p);
12454#else
12455float __ovld vloada_half(size_t offset, const __global half *p);
12456float2 __ovld vloada_half2(size_t offset, const __global half *p);
12457float3 __ovld vloada_half3(size_t offset, const __global half *p);
12458float4 __ovld vloada_half4(size_t offset, const __global half *p);
12459float8 __ovld vloada_half8(size_t offset, const __global half *p);
12460float16 __ovld vloada_half16(size_t offset, const __global half *p);
12461float __ovld vloada_half(size_t offset, const __local half *p);
12462float2 __ovld vloada_half2(size_t offset, const __local half *p);
12463float3 __ovld vloada_half3(size_t offset, const __local half *p);
12464float4 __ovld vloada_half4(size_t offset, const __local half *p);
12465float8 __ovld vloada_half8(size_t offset, const __local half *p);
12466float16 __ovld vloada_half16(size_t offset, const __local half *p);
12467float __ovld vloada_half(size_t offset, const __private half *p);
12468float2 __ovld vloada_half2(size_t offset, const __private half *p);
12469float3 __ovld vloada_half3(size_t offset, const __private half *p);
12470float4 __ovld vloada_half4(size_t offset, const __private half *p);
12471float8 __ovld vloada_half8(size_t offset, const __private half *p);
12472float16 __ovld vloada_half16(size_t offset, const __private half *p);
12473#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12474
12475/**
12476 * The floatn value given by data is converted to
12477 * a halfn value using the appropriate rounding
12478 * mode.
12479 * For n = 1, 2, 4, 8 and 16, the halfn value is
12480 * written to the address computed as (p + (offset
12481 * * n)). The address computed as (p + (offset *
12482 * n)) must be aligned to sizeof (halfn) bytes.
12483 * For n = 3, the half3 value is written to the
12484 * address computed as (p + (offset * 4)). The
12485 * address computed as (p + (offset * 4)) must be
12486 * aligned to sizeof (half) * 4 bytes.
12487 * vstorea_halfn uses the current rounding
12488 * mode. The default current rounding mode is
12489 * round to nearest even.
12490 */
12491#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12492void __ovld vstorea_half(float data, size_t offset, half *p);
12493void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12494void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12495void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12496void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12497void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12498
12499void __ovld vstorea_half_rte(float data, size_t offset, half *p);
12500void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12501void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12502void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12503void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12504void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12505
12506void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
12507void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12508void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12509void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12510void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12511void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12512
12513void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
12514void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12515void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12516void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12517void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12518void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12519
12520void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
12521void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12522void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12523void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
12524void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12525void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12526
12527#ifdef cl_khr_fp64
12528void __ovld vstorea_half(double data, size_t offset, half *p);
12529void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12530void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12531void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12532void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12533void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12534
12535void __ovld vstorea_half_rte(double data, size_t offset, half *p);
12536void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12537void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12538void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12539void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12540void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12541
12542void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
12543void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12544void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12545void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12546void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12547void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12548
12549void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
12550void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12551void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12552void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12553void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12554void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12555
12556void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
12557void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12558void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12559void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12560void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12561void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12562#endif //cl_khr_fp64
12563
12564#else
12565void __ovld vstorea_half(float data, size_t offset, __global half *p);
12566void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12567void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12568void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12569void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12570void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12571
12572void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
12573void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12574void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12575void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12576void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12577void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12578
12579void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
12580void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12581void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12582void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12583void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12584void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12585
12586void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
12587void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12588void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12589void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12590void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12591void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12592
12593void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
12594void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12595void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12596void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12597void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12598void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12599
12600void __ovld vstorea_half(float data, size_t offset, __local half *p);
12601void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12602void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12603void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12604void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12605void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12606
12607void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
12608void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12609void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12610void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12611void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12612void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12613
12614void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
12615void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12616void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12617void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12618void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12619void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12620
12621void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
12622void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12623void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12624void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12625void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12626void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12627
12628void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
12629void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12630void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12631void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12632void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12633void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12634
12635void __ovld vstorea_half(float data, size_t offset, __private half *p);
12636void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12637void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12638void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12639void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12640void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12641
12642void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
12643void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12644void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12645void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12646void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12647void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12648
12649void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
12650void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12651void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12652void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12653void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12654void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12655
12656void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
12657void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12658void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12659void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12660void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12661void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12662
12663void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
12664void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12665void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12666void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
12667void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12668void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12669
12670#ifdef cl_khr_fp64
12671void __ovld vstorea_half(double data, size_t offset, __global half *p);
12672void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12673void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12674void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12675void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12676void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12677
12678void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
12679void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12680void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12681void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12682void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12683void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12684
12685void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
12686void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12687void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12688void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12689void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12690void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12691
12692void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
12693void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12694void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12695void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12696void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12697void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12698
12699void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
12700void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12701void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12702void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12703void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12704void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12705
12706void __ovld vstorea_half(double data, size_t offset, __local half *p);
12707void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12708void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12709void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12710void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12711void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12712
12713void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
12714void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12715void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12716void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12717void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12718void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12719
12720void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
12721void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12722void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12723void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12724void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12725void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12726
12727void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
12728void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12729void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12730void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12731void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12732void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12733
12734void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
12735void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12736void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12737void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12738void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12739void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12740
12741void __ovld vstorea_half(double data, size_t offset, __private half *p);
12742void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12743void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12744void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12745void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12746void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12747
12748void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
12749void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12750void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12751void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12752void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12753void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12754
12755void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
12756void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12757void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12758void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12759void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12760void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12761
12762void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
12763void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12764void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12765void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12766void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12767void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12768
12769void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
12770void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12771void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12772void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12773void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12774void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12775#endif //cl_khr_fp64
12776#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12777
12778// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12779
12780// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence
12781typedef uint cl_mem_fence_flags;
12782
12783/**
12784 * Queue a memory fence to ensure correct
12785 * ordering of memory operations to local memory
12786 */
12787#define CLK_LOCAL_MEM_FENCE    0x01
12788
12789/**
12790 * Queue a memory fence to ensure correct
12791 * ordering of memory operations to global memory
12792 */
12793#define CLK_GLOBAL_MEM_FENCE   0x02
12794
12795#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12796/**
12797 * Queue a memory fence to ensure correct ordering of memory
12798 * operations between work-items of a work-group to
12799 * image memory.
12800 */
12801#define CLK_IMAGE_MEM_FENCE  0x04
12802#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12803
12804/**
12805 * All work-items in a work-group executing the kernel
12806 * on a processor must execute this function before any
12807 * are allowed to continue execution beyond the barrier.
12808 * This function must be encountered by all work-items in
12809 * a work-group executing the kernel.
12810 * If barrier is inside a conditional statement, then all
12811 * work-items must enter the conditional if any work-item
12812 * enters the conditional statement and executes the
12813 * barrier.
12814 * If barrer is inside a loop, all work-items must execute
12815 * the barrier for each iteration of the loop before any are
12816 * allowed to continue execution beyond the barrier.
12817 * The barrier function also queues a memory fence
12818 * (reads and writes) to ensure correct ordering of
12819 * memory operations to local or global memory.
12820 * The flags argument specifies the memory address space
12821 * and can be set to a combination of the following literal
12822 * values.
12823 * CLK_LOCAL_MEM_FENCE - The barrier function
12824 * will either flush any variables stored in local memory
12825 * or queue a memory fence to ensure correct ordering of
12826 * memory operations to local memory.
12827 * CLK_GLOBAL_MEM_FENCE - The barrier function
12828 * will queue a memory fence to ensure correct ordering
12829 * of memory operations to global memory. This can be
12830 * useful when work-items, for example, write to buffer or
12831 * image objects and then want to read the updated data.
12832 */
12833
12834void __ovld __conv barrier(cl_mem_fence_flags flags);
12835
12836#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12837
12838typedef enum memory_scope {
12839  memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM,
12840  memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP,
12841  memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE,
12842  memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES,
12843#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
12844  memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP
12845#endif
12846} memory_scope;
12847
12848void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
12849void __ovld __conv work_group_barrier(cl_mem_fence_flags flags);
12850#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12851
12852// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
12853
12854/**
12855 * Orders loads and stores of a work-item
12856 * executing a kernel. This means that loads
12857 * and stores preceding the mem_fence will
12858 * be committed to memory before any loads
12859 * and stores following the mem_fence.
12860 * The flags argument specifies the memory
12861 * address space and can be set to a
12862 * combination of the following literal
12863 * values:
12864 * CLK_LOCAL_MEM_FENCE
12865 * CLK_GLOBAL_MEM_FENCE.
12866 */
12867void __ovld mem_fence(cl_mem_fence_flags flags);
12868
12869/**
12870 * Read memory barrier that orders only
12871 * loads.
12872 * The flags argument specifies the memory
12873 * address space and can be set to a
12874 * combination of the following literal
12875 * values:
12876 * CLK_LOCAL_MEM_FENCE
12877 * CLK_GLOBAL_MEM_FENCE.
12878 */
12879void __ovld read_mem_fence(cl_mem_fence_flags flags);
12880
12881/**
12882 * Write memory barrier that orders only
12883 * stores.
12884 * The flags argument specifies the memory
12885 * address space and can be set to a
12886 * combination of the following literal
12887 * values:
12888 * CLK_LOCAL_MEM_FENCE
12889 * CLK_GLOBAL_MEM_FENCE.
12890 */
12891void __ovld write_mem_fence(cl_mem_fence_flags flags);
12892
12893// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12894
12895#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12896cl_mem_fence_flags __ovld get_fence(const void *ptr);
12897cl_mem_fence_flags __ovld get_fence(void *ptr);
12898
12899/**
12900 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
12901 * and checked in Sema since they should be declared as
12902 *   addr gentype* to_addr (gentype*);
12903 * where gentype is builtin type or user defined type.
12904 */
12905
12906#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12907
12908// 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
12909
12910/**
12911 * event_t async_work_group_copy (
12912 * __global gentype *dst,
12913 * const __local gentype *src,
12914 * size_t num_elements,
12915 * event_t event)
12916 * Perform an async copy of num_elements
12917 * gentype elements from src to dst. The async
12918 * copy is performed by all work-items in a workgroup
12919 * and this built-in function must therefore
12920 * be encountered by all work-items in a workgroup
12921 * executing the kernel with the same
12922 * argument values; otherwise the results are
12923 * undefined.
12924 * Returns an event object that can be used by
12925 * wait_group_events to wait for the async copy
12926 * to finish. The event argument can also be used
12927 * to associate the async_work_group_copy with
12928 * a previous async copy allowing an event to be
12929 * shared by multiple async copies; otherwise event
12930 * should be zero.
12931 * If event argument is non-zero, the event object
12932 * supplied in event argument will be returned.
12933 * This function does not perform any implicit
12934 * synchronization of source data such as using a
12935 * barrier before performing the copy.
12936 */
12937event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
12938event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
12939event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
12940event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
12941event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
12942event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
12943event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
12944event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
12945event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
12946event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
12947event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
12948event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
12949event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
12950event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
12951event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
12952event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
12953event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
12954event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
12955event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
12956event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
12957event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
12958event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
12959event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
12960event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
12961event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
12962event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
12963event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
12964event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
12965event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
12966event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
12967event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
12968event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
12969event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
12970event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
12971event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
12972event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
12973event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
12974event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
12975event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
12976event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
12977event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
12978event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
12979event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
12980event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
12981event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
12982event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
12983event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
12984event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
12985event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
12986event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
12987event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
12988event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
12989event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
12990event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
12991event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
12992event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
12993event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
12994event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
12995event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
12996event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
12997event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
12998event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
12999event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
13000event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
13001event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
13002event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
13003event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
13004event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
13005event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
13006event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
13007event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
13008event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
13009event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
13010event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
13011event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
13012event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
13013event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
13014event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
13015event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
13016event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
13017event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
13018event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
13019event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
13020event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
13021event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
13022event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
13023event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
13024event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
13025event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
13026event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
13027event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
13028event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
13029event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
13030event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
13031event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
13032event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
13033event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
13034event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
13035event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
13036event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
13037event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
13038event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
13039event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
13040event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
13041event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
13042event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
13043event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
13044event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
13045#ifdef cl_khr_fp64
13046event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
13047event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
13048event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
13049event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
13050event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
13051event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
13052event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
13053event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
13054event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
13055event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
13056event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
13057event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
13058#endif //cl_khr_fp64
13059#ifdef cl_khr_fp16
13060event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
13061event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
13062event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
13063event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
13064event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
13065event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
13066event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
13067event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
13068event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
13069event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
13070event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
13071event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
13072#endif //cl_khr_fp16
13073
13074/**
13075 * Perform an async gather of num_elements
13076 * gentype elements from src to dst. The
13077 * src_stride is the stride in elements for each
13078 * gentype element read from src. The dst_stride
13079 * is the stride in elements for each gentype
13080 * element written to dst. The async gather is
13081 * performed by all work-items in a work-group.
13082 * This built-in function must therefore be
13083 * encountered by all work-items in a work-group
13084 * executing the kernel with the same argument
13085 * values; otherwise the results are undefined.
13086 * Returns an event object that can be used by
13087 * wait_group_events to wait for the async copy
13088 * to finish. The event argument can also be used
13089 * to associate the
13090 * async_work_group_strided_copy with a
13091 * previous async copy allowing an event to be
13092 * shared by multiple async copies; otherwise event
13093 * should be zero.
13094 * If event argument is non-zero, the event object
13095 * supplied in event argument will be returned.
13096 * This function does not perform any implicit
13097 * synchronization of source data such as using a
13098 * barrier before performing the copy.
13099 */
13100event_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);
13101event_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);
13102event_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);
13103event_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);
13104event_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);
13105event_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);
13106event_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);
13107event_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);
13108event_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);
13109event_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);
13110event_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);
13111event_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);
13112event_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);
13113event_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);
13114event_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);
13115event_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);
13116event_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);
13117event_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);
13118event_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);
13119event_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);
13120event_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);
13121event_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);
13122event_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);
13123event_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);
13124event_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);
13125event_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);
13126event_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);
13127event_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);
13128event_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);
13129event_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);
13130event_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);
13131event_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);
13132event_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);
13133event_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);
13134event_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);
13135event_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);
13136event_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);
13137event_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);
13138event_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);
13139event_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);
13140event_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);
13141event_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);
13142event_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);
13143event_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);
13144event_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);
13145event_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);
13146event_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);
13147event_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);
13148event_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);
13149event_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);
13150event_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);
13151event_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);
13152event_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);
13153event_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);
13154event_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);
13155event_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);
13156event_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);
13157event_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);
13158event_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);
13159event_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);
13160event_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);
13161event_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);
13162event_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);
13163event_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);
13164event_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);
13165event_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);
13166event_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);
13167event_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);
13168event_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);
13169event_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);
13170event_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);
13171event_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);
13172event_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);
13173event_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);
13174event_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);
13175event_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);
13176event_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);
13177event_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);
13178event_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);
13179event_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);
13180event_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);
13181event_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);
13182event_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);
13183event_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);
13184event_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);
13185event_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);
13186event_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);
13187event_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);
13188event_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);
13189event_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);
13190event_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);
13191event_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);
13192event_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);
13193event_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);
13194event_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);
13195event_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);
13196event_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);
13197event_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);
13198event_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);
13199event_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);
13200event_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);
13201event_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);
13202event_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);
13203event_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);
13204event_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);
13205event_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);
13206event_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);
13207event_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);
13208#ifdef cl_khr_fp64
13209event_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);
13210event_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);
13211event_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);
13212event_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);
13213event_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);
13214event_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);
13215event_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);
13216event_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);
13217event_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);
13218event_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);
13219event_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);
13220event_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);
13221#endif //cl_khr_fp64
13222#ifdef cl_khr_fp16
13223event_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);
13224event_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);
13225event_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);
13226event_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);
13227event_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);
13228event_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);
13229event_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);
13230event_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);
13231event_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);
13232event_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);
13233event_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);
13234event_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);
13235#endif //cl_khr_fp16
13236
13237/**
13238 * Wait for events that identify the
13239 * async_work_group_copy operations to
13240 * complete. The event objects specified in
13241 * event_list will be released after the wait is
13242 * performed.
13243 * This function must be encountered by all workitems
13244 * in a work-group executing the kernel with
13245 * the same num_events and event objects specified
13246 * in event_list; otherwise the results are undefined.
13247 */
13248void __ovld wait_group_events(int num_events, event_t *event_list);
13249
13250/**
13251 * Prefetch num_elements * sizeof(gentype)
13252 * bytes into the global cache. The prefetch
13253 * instruction is applied to a work-item in a workgroup
13254 * and does not affect the functional
13255 * behavior of the kernel.
13256 */
13257void __ovld prefetch(const __global char *p, size_t num_elements);
13258void __ovld prefetch(const __global uchar *p, size_t num_elements);
13259void __ovld prefetch(const __global short *p, size_t num_elements);
13260void __ovld prefetch(const __global ushort *p, size_t num_elements);
13261void __ovld prefetch(const __global int *p, size_t num_elements);
13262void __ovld prefetch(const __global uint *p, size_t num_elements);
13263void __ovld prefetch(const __global long *p, size_t num_elements);
13264void __ovld prefetch(const __global ulong *p, size_t num_elements);
13265void __ovld prefetch(const __global float *p, size_t num_elements);
13266void __ovld prefetch(const __global char2 *p, size_t num_elements);
13267void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
13268void __ovld prefetch(const __global short2 *p, size_t num_elements);
13269void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
13270void __ovld prefetch(const __global int2 *p, size_t num_elements);
13271void __ovld prefetch(const __global uint2 *p, size_t num_elements);
13272void __ovld prefetch(const __global long2 *p, size_t num_elements);
13273void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
13274void __ovld prefetch(const __global float2 *p, size_t num_elements);
13275void __ovld prefetch(const __global char3 *p, size_t num_elements);
13276void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
13277void __ovld prefetch(const __global short3 *p, size_t num_elements);
13278void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
13279void __ovld prefetch(const __global int3 *p, size_t num_elements);
13280void __ovld prefetch(const __global uint3 *p, size_t num_elements);
13281void __ovld prefetch(const __global long3 *p, size_t num_elements);
13282void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
13283void __ovld prefetch(const __global float3 *p, size_t num_elements);
13284void __ovld prefetch(const __global char4 *p, size_t num_elements);
13285void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
13286void __ovld prefetch(const __global short4 *p, size_t num_elements);
13287void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
13288void __ovld prefetch(const __global int4 *p, size_t num_elements);
13289void __ovld prefetch(const __global uint4 *p, size_t num_elements);
13290void __ovld prefetch(const __global long4 *p, size_t num_elements);
13291void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
13292void __ovld prefetch(const __global float4 *p, size_t num_elements);
13293void __ovld prefetch(const __global char8 *p, size_t num_elements);
13294void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
13295void __ovld prefetch(const __global short8 *p, size_t num_elements);
13296void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
13297void __ovld prefetch(const __global int8 *p, size_t num_elements);
13298void __ovld prefetch(const __global uint8 *p, size_t num_elements);
13299void __ovld prefetch(const __global long8 *p, size_t num_elements);
13300void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
13301void __ovld prefetch(const __global float8 *p, size_t num_elements);
13302void __ovld prefetch(const __global char16 *p, size_t num_elements);
13303void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
13304void __ovld prefetch(const __global short16 *p, size_t num_elements);
13305void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
13306void __ovld prefetch(const __global int16 *p, size_t num_elements);
13307void __ovld prefetch(const __global uint16 *p, size_t num_elements);
13308void __ovld prefetch(const __global long16 *p, size_t num_elements);
13309void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
13310void __ovld prefetch(const __global float16 *p, size_t num_elements);
13311#ifdef cl_khr_fp64
13312void __ovld prefetch(const __global double *p, size_t num_elements);
13313void __ovld prefetch(const __global double2 *p, size_t num_elements);
13314void __ovld prefetch(const __global double3 *p, size_t num_elements);
13315void __ovld prefetch(const __global double4 *p, size_t num_elements);
13316void __ovld prefetch(const __global double8 *p, size_t num_elements);
13317void __ovld prefetch(const __global double16 *p, size_t num_elements);
13318#endif //cl_khr_fp64
13319#ifdef cl_khr_fp16
13320void __ovld prefetch(const __global half *p, size_t num_elements);
13321void __ovld prefetch(const __global half2 *p, size_t num_elements);
13322void __ovld prefetch(const __global half3 *p, size_t num_elements);
13323void __ovld prefetch(const __global half4 *p, size_t num_elements);
13324void __ovld prefetch(const __global half8 *p, size_t num_elements);
13325void __ovld prefetch(const __global half16 *p, size_t num_elements);
13326#endif // cl_khr_fp16
13327
13328// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
13329
13330#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13331#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13332#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13333#endif
13334/**
13335 * Read the 32-bit value (referred to as old)
13336 * stored at location pointed by p. Compute
13337 * (old + val) and store result at location
13338 * pointed by p. The function returns old.
13339 */
13340int __ovld atomic_add(volatile __global int *p, int val);
13341unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
13342int __ovld atomic_add(volatile __local int *p, int val);
13343unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
13344
13345#if defined(cl_khr_global_int32_base_atomics)
13346int __ovld atom_add(volatile __global int *p, int val);
13347unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
13348#endif
13349#if defined(cl_khr_local_int32_base_atomics)
13350int __ovld atom_add(volatile __local int *p, int val);
13351unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
13352#endif
13353
13354#if defined(cl_khr_int64_base_atomics)
13355long __ovld atom_add(volatile __global long *p, long val);
13356unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
13357long __ovld atom_add(volatile __local long *p, long val);
13358unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
13359#endif
13360
13361/**
13362 * Read the 32-bit value (referred to as old) stored at location pointed by p.
13363 * Compute (old - val) and store result at location pointed by p. The function
13364 * returns old.
13365 */
13366int __ovld atomic_sub(volatile __global int *p, int val);
13367unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
13368int __ovld atomic_sub(volatile __local int *p, int val);
13369unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
13370
13371#if defined(cl_khr_global_int32_base_atomics)
13372int __ovld atom_sub(volatile __global int *p, int val);
13373unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
13374#endif
13375#if defined(cl_khr_local_int32_base_atomics)
13376int __ovld atom_sub(volatile __local int *p, int val);
13377unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
13378#endif
13379
13380#if defined(cl_khr_int64_base_atomics)
13381long __ovld atom_sub(volatile __global long *p, long val);
13382unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
13383long __ovld atom_sub(volatile __local long *p, long val);
13384unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
13385#endif
13386
13387/**
13388 * Swaps the old value stored at location p
13389 * with new value given by val. Returns old
13390 * value.
13391 */
13392int __ovld atomic_xchg(volatile __global int *p, int val);
13393unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
13394int __ovld atomic_xchg(volatile __local int *p, int val);
13395unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
13396float __ovld atomic_xchg(volatile __global float *p, float val);
13397float __ovld atomic_xchg(volatile __local float *p, float val);
13398
13399#if defined(cl_khr_global_int32_base_atomics)
13400int __ovld atom_xchg(volatile __global int *p, int val);
13401unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
13402#endif
13403#if defined(cl_khr_local_int32_base_atomics)
13404int __ovld atom_xchg(volatile __local int *p, int val);
13405unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
13406#endif
13407
13408#if defined(cl_khr_int64_base_atomics)
13409long __ovld atom_xchg(volatile __global long *p, long val);
13410long __ovld atom_xchg(volatile __local long *p, long val);
13411unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
13412unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
13413#endif
13414
13415/**
13416 * Read the 32-bit value (referred to as old)
13417 * stored at location pointed by p. Compute
13418 * (old + 1) and store result at location
13419 * pointed by p. The function returns old.
13420 */
13421int __ovld atomic_inc(volatile __global int *p);
13422unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
13423int __ovld atomic_inc(volatile __local int *p);
13424unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
13425
13426#if defined(cl_khr_global_int32_base_atomics)
13427int __ovld atom_inc(volatile __global int *p);
13428unsigned int __ovld atom_inc(volatile __global unsigned int *p);
13429#endif
13430#if defined(cl_khr_local_int32_base_atomics)
13431int __ovld atom_inc(volatile __local int *p);
13432unsigned int __ovld atom_inc(volatile __local unsigned int *p);
13433#endif
13434
13435#if defined(cl_khr_int64_base_atomics)
13436long __ovld atom_inc(volatile __global long *p);
13437unsigned long __ovld atom_inc(volatile __global unsigned long *p);
13438long __ovld atom_inc(volatile __local long *p);
13439unsigned long __ovld atom_inc(volatile __local unsigned long *p);
13440#endif
13441
13442/**
13443 * Read the 32-bit value (referred to as old)
13444 * stored at location pointed by p. Compute
13445 * (old - 1) and store result at location
13446 * pointed by p. The function returns old.
13447 */
13448int __ovld atomic_dec(volatile __global int *p);
13449unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
13450int __ovld atomic_dec(volatile __local int *p);
13451unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
13452
13453#if defined(cl_khr_global_int32_base_atomics)
13454int __ovld atom_dec(volatile __global int *p);
13455unsigned int __ovld atom_dec(volatile __global unsigned int *p);
13456#endif
13457#if defined(cl_khr_local_int32_base_atomics)
13458int __ovld atom_dec(volatile __local int *p);
13459unsigned int __ovld atom_dec(volatile __local unsigned int *p);
13460#endif
13461
13462#if defined(cl_khr_int64_base_atomics)
13463long __ovld atom_dec(volatile __global long *p);
13464unsigned long __ovld atom_dec(volatile __global unsigned long *p);
13465long __ovld atom_dec(volatile __local long *p);
13466unsigned long __ovld atom_dec(volatile __local unsigned long *p);
13467#endif
13468
13469/**
13470 * Read the 32-bit value (referred to as old)
13471 * stored at location pointed by p. Compute
13472 * (old == cmp) ? val : old and store result at
13473 * location pointed by p. The function
13474 * returns old.
13475 */
13476int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
13477unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13478int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
13479unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13480
13481#if defined(cl_khr_global_int32_base_atomics)
13482int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
13483unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13484#endif
13485#if defined(cl_khr_local_int32_base_atomics)
13486int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
13487unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13488#endif
13489
13490#if defined(cl_khr_int64_base_atomics)
13491long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
13492unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
13493long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
13494unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
13495#endif
13496
13497/**
13498 * Read the 32-bit value (referred to as old)
13499 * stored at location pointed by p. Compute
13500 * min(old, val) and store minimum value at
13501 * location pointed by p. The function
13502 * returns old.
13503 */
13504int __ovld atomic_min(volatile __global int *p, int val);
13505unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
13506int __ovld atomic_min(volatile __local int *p, int val);
13507unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
13508
13509#if defined(cl_khr_global_int32_extended_atomics)
13510int __ovld atom_min(volatile __global int *p, int val);
13511unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
13512#endif
13513#if defined(cl_khr_local_int32_extended_atomics)
13514int __ovld atom_min(volatile __local int *p, int val);
13515unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
13516#endif
13517
13518#if defined(cl_khr_int64_extended_atomics)
13519long __ovld atom_min(volatile __global long *p, long val);
13520unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
13521long __ovld atom_min(volatile __local long *p, long val);
13522unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
13523#endif
13524
13525/**
13526 * Read the 32-bit value (referred to as old)
13527 * stored at location pointed by p. Compute
13528 * max(old, val) and store maximum value at
13529 * location pointed by p. The function
13530 * returns old.
13531 */
13532int __ovld atomic_max(volatile __global int *p, int val);
13533unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
13534int __ovld atomic_max(volatile __local int *p, int val);
13535unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
13536
13537#if defined(cl_khr_global_int32_extended_atomics)
13538int __ovld atom_max(volatile __global int *p, int val);
13539unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
13540#endif
13541#if defined(cl_khr_local_int32_extended_atomics)
13542int __ovld atom_max(volatile __local int *p, int val);
13543unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
13544#endif
13545
13546#if defined(cl_khr_int64_extended_atomics)
13547long __ovld atom_max(volatile __global long *p, long val);
13548unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
13549long __ovld atom_max(volatile __local long *p, long val);
13550unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
13551#endif
13552
13553/**
13554 * Read the 32-bit value (referred to as old)
13555 * stored at location pointed by p. Compute
13556 * (old & val) and store result at location
13557 * pointed by p. The function returns old.
13558 */
13559int __ovld atomic_and(volatile __global int *p, int val);
13560unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
13561int __ovld atomic_and(volatile __local int *p, int val);
13562unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
13563
13564#if defined(cl_khr_global_int32_extended_atomics)
13565int __ovld atom_and(volatile __global int *p, int val);
13566unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
13567#endif
13568#if defined(cl_khr_local_int32_extended_atomics)
13569int __ovld atom_and(volatile __local int *p, int val);
13570unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
13571#endif
13572
13573#if defined(cl_khr_int64_extended_atomics)
13574long __ovld atom_and(volatile __global long *p, long val);
13575unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
13576long __ovld atom_and(volatile __local long *p, long val);
13577unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
13578#endif
13579
13580/**
13581 * Read the 32-bit value (referred to as old)
13582 * stored at location pointed by p. Compute
13583 * (old | val) and store result at location
13584 * pointed by p. The function returns old.
13585 */
13586int __ovld atomic_or(volatile __global int *p, int val);
13587unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
13588int __ovld atomic_or(volatile __local int *p, int val);
13589unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
13590
13591#if defined(cl_khr_global_int32_extended_atomics)
13592int __ovld atom_or(volatile __global int *p, int val);
13593unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
13594#endif
13595#if defined(cl_khr_local_int32_extended_atomics)
13596int __ovld atom_or(volatile __local int *p, int val);
13597unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
13598#endif
13599
13600#if defined(cl_khr_int64_extended_atomics)
13601long __ovld atom_or(volatile __global long *p, long val);
13602unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
13603long __ovld atom_or(volatile __local long *p, long val);
13604unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
13605#endif
13606
13607/**
13608 * Read the 32-bit value (referred to as old)
13609 * stored at location pointed by p. Compute
13610 * (old ^ val) and store result at location
13611 * pointed by p. The function returns old.
13612 */
13613int __ovld atomic_xor(volatile __global int *p, int val);
13614unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
13615int __ovld atomic_xor(volatile __local int *p, int val);
13616unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
13617
13618#if defined(cl_khr_global_int32_extended_atomics)
13619int __ovld atom_xor(volatile __global int *p, int val);
13620unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
13621#endif
13622#if defined(cl_khr_local_int32_extended_atomics)
13623int __ovld atom_xor(volatile __local int *p, int val);
13624unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
13625#endif
13626
13627#if defined(cl_khr_int64_extended_atomics)
13628long __ovld atom_xor(volatile __global long *p, long val);
13629unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
13630long __ovld atom_xor(volatile __local long *p, long val);
13631unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
13632#endif
13633
13634#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13635#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
13636#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
13637#endif
13638
13639// OpenCL v2.0 s6.13.11 - Atomics Functions
13640
13641#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13642#ifndef ATOMIC_VAR_INIT
13643#define ATOMIC_VAR_INIT(x) (x)
13644#endif //ATOMIC_VAR_INIT
13645#define ATOMIC_FLAG_INIT 0
13646
13647// enum values aligned with what clang uses in EmitAtomicExpr()
13648typedef enum memory_order
13649{
13650  memory_order_relaxed = __ATOMIC_RELAXED,
13651  memory_order_acquire = __ATOMIC_ACQUIRE,
13652  memory_order_release = __ATOMIC_RELEASE,
13653  memory_order_acq_rel = __ATOMIC_ACQ_REL,
13654  memory_order_seq_cst = __ATOMIC_SEQ_CST
13655} memory_order;
13656
13657// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
13658#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13659#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13660#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13661#endif
13662
13663// atomic_init()
13664void __ovld atomic_init(volatile atomic_int *object, int value);
13665void __ovld atomic_init(volatile atomic_uint *object, uint value);
13666void __ovld atomic_init(volatile atomic_float *object, float value);
13667#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13668void __ovld atomic_init(volatile atomic_long *object, long value);
13669void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13670#ifdef cl_khr_fp64
13671void __ovld atomic_init(volatile atomic_double *object, double value);
13672#endif //cl_khr_fp64
13673#endif
13674
13675// atomic_work_item_fence()
13676void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
13677
13678// atomic_fetch()
13679
13680int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13681int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13682int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13683uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13684uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13685uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13686int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
13687int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13688int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13689uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
13690uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13691uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13692int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
13693int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13694int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13695uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
13696uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13697uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13698int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
13699int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13700int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13701uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
13702uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13703uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13704int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
13705int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13706int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13707uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
13708uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13709uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13710int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13711int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13712int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13713uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13714uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13715uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13716uint __ovld atomic_fetch_min(volatile atomic_uint *object, int operand);
13717uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order);
13718uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
13719int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13720int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13721int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13722uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
13723uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13724uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13725uint __ovld atomic_fetch_max(volatile atomic_uint *object, int operand);
13726uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order);
13727uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
13728
13729#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13730long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13731long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13732long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13733ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
13734ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13735ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13736long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
13737long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13738long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13739ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
13740ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13741ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13742long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
13743long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13744long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13745ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
13746ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13747ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13748long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
13749long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13750long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13751ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
13752ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13753ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13754long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
13755long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13756long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13757ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
13758ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13759ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13760long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
13761long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13762long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13763ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
13764ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13765ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13766ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, long operand);
13767ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order);
13768ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
13769long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
13770long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13771long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13772ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
13773ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13774ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13775ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, long operand);
13776ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order);
13777ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
13778#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13779
13780// OpenCL v2.0 s6.13.11.7.5:
13781// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13782// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
13783
13784#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13785uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13786uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13787uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13788uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13789uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13790uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13791
13792uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
13793uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13794uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13795uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
13796uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13797uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13798uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
13799uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13800uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13801uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
13802uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13803uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13804uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
13805uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13806uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13807
13808intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
13809intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13810intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13811intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
13812intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13813intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13814intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
13815intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13816intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13817intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
13818intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13819intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13820intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
13821intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13822intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13823#endif
13824
13825// atomic_store()
13826
13827void __ovld atomic_store(volatile atomic_int *object, int desired);
13828void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13829void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13830void __ovld atomic_store(volatile atomic_uint *object, uint desired);
13831void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13832void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13833void __ovld atomic_store(volatile atomic_float *object, float desired);
13834void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
13835void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13836#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13837#ifdef cl_khr_fp64
13838void __ovld atomic_store(volatile atomic_double *object, double desired);
13839void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
13840void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13841#endif //cl_khr_fp64
13842void __ovld atomic_store(volatile atomic_long *object, long desired);
13843void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13844void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13845void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
13846void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13847void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13848#endif
13849
13850// atomic_load()
13851
13852int __ovld atomic_load(volatile atomic_int *object);
13853int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13854int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13855uint __ovld atomic_load(volatile atomic_uint *object);
13856uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13857uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13858float __ovld atomic_load(volatile atomic_float *object);
13859float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
13860float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
13861#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13862#ifdef cl_khr_fp64
13863double __ovld atomic_load(volatile atomic_double *object);
13864double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
13865double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
13866#endif //cl_khr_fp64
13867long __ovld atomic_load(volatile atomic_long *object);
13868long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13869long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13870ulong __ovld atomic_load(volatile atomic_ulong *object);
13871ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
13872ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13873#endif
13874
13875// atomic_exchange()
13876
13877int __ovld atomic_exchange(volatile atomic_int *object, int desired);
13878int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13879int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13880uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
13881uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13882uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13883float __ovld atomic_exchange(volatile atomic_float *object, float desired);
13884float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
13885float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13886#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13887#ifdef cl_khr_fp64
13888double __ovld atomic_exchange(volatile atomic_double *object, double desired);
13889double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
13890double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13891#endif //cl_khr_fp64
13892long __ovld atomic_exchange(volatile atomic_long *object, long desired);
13893long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13894long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13895ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
13896ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13897ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13898#endif
13899
13900// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13901
13902bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
13903bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13904                                                                                 int desired, memory_order success, memory_order failure);
13905bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13906                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
13907bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
13908bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13909                                                                                 uint desired, memory_order success, memory_order failure);
13910bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13911                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
13912bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13913bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13914                                                                                 int desired, memory_order success, memory_order failure);
13915bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13916                                                                                 int desired, memory_order success, memory_order failure, memory_scope scope);
13917bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13918bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13919                                                                                 uint desired, memory_order success, memory_order failure);
13920bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13921                                                                                 uint desired, memory_order success, memory_order failure, memory_scope scope);
13922bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13923bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13924                                                                                 float desired, memory_order success, memory_order failure);
13925bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13926                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
13927bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13928bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13929                                                                                 float desired, memory_order success, memory_order failure);
13930bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13931                                                                                 float desired, memory_order success, memory_order failure, memory_scope scope);
13932#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13933#ifdef cl_khr_fp64
13934bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13935bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13936                                                                                 double desired, memory_order success, memory_order failure);
13937bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13938                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
13939bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
13940bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13941                                                                                 double desired, memory_order success, memory_order failure);
13942bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13943                                                                                 double desired, memory_order success, memory_order failure, memory_scope scope);
13944#endif //cl_khr_fp64
13945bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13946bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13947                                                                                 long desired, memory_order success, memory_order failure);
13948bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13949                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
13950bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
13951bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13952                                                                                 long desired, memory_order success, memory_order failure);
13953bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13954                                                                                 long desired, memory_order success, memory_order failure, memory_scope scope);
13955bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13956bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13957                                                                                 ulong desired, memory_order success, memory_order failure);
13958bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13959                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
13960bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13961bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13962                                                                                 ulong desired, memory_order success, memory_order failure);
13963bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13964                                                                                 ulong desired, memory_order success, memory_order failure, memory_scope scope);
13965#endif
13966
13967// atomic_flag_test_and_set() and atomic_flag_clear()
13968
13969bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
13970bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
13971bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13972void __ovld atomic_flag_clear(volatile atomic_flag *object);
13973void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
13974void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
13975
13976#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13977
13978// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
13979
13980/**
13981 * The shuffle and shuffle2 built-in functions construct
13982 * a permutation of elements from one or two input
13983 * vectors respectively that are of the same type,
13984 * returning a vector with the same element type as the
13985 * input and length that is the same as the shuffle mask.
13986 * The size of each element in the mask must match the
13987 * size of each element in the result. For shuffle, only
13988 * the ilogb(2m-1) least significant bits of each mask
13989 * element are considered. For shuffle2, only the
13990 * ilogb(2m-1)+1 least significant bits of each mask
13991 * element are considered. Other bits in the mask shall
13992 * be ignored.
13993 * The elements of the input vectors are numbered from
13994 * left to right across one or both of the vectors. For this
13995 * purpose, the number of elements in a vector is given
13996 * by vec_step(gentypem). The shuffle mask operand
13997 * specifies, for each element of the result vector, which
13998 * element of the one or two input vectors the result
13999 * element gets.
14000 * Examples:
14001 * uint4 mask = (uint4)(3, 2,
14002 * 1, 0);
14003 * float4 a;
14004 * float4 r = shuffle(a, mask);
14005 * // r.s0123 = a.wzyx
14006 * uint8 mask = (uint8)(0, 1, 2, 3,
14007 * 4, 5, 6, 7);
14008 * float4 a, b;
14009 * float8 r = shuffle2(a, b, mask);
14010 * // r.s0123 = a.xyzw
14011 * // r.s4567 = b.xyzw
14012 * uint4 mask;
14013 * float8 a;
14014 * float4 b;
14015 * b = shuffle(a, mask);
14016 * Examples that are not valid are:
14017 * uint8 mask;
14018 * short16 a;
14019 * short8 b;
14020 * b = shuffle(a, mask); <- not valid
14021 */
14022char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
14023char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
14024char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
14025char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
14026
14027uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
14028uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
14029uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
14030uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
14031
14032short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
14033short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
14034short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
14035short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
14036
14037ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
14038ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
14039ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
14040ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
14041
14042int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
14043int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
14044int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
14045int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
14046
14047uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
14048uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
14049uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
14050uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
14051
14052long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
14053long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
14054long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
14055long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
14056
14057ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
14058ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
14059ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
14060ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
14061
14062float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
14063float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
14064float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
14065float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
14066
14067char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
14068char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
14069char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
14070char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
14071
14072uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
14073uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
14074uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
14075uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
14076
14077short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
14078short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
14079short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
14080short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
14081
14082ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
14083ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
14084ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
14085ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
14086
14087int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
14088int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
14089int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
14090int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
14091
14092uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
14093uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
14094uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
14095uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
14096
14097long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
14098long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
14099long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
14100long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
14101
14102ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
14103ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
14104ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
14105ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
14106
14107float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
14108float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
14109float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
14110float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
14111
14112char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
14113char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
14114char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
14115char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
14116
14117uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
14118uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
14119uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
14120uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
14121
14122short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
14123short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
14124short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
14125short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
14126
14127ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
14128ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
14129ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
14130ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
14131
14132int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
14133int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
14134int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
14135int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
14136
14137uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
14138uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
14139uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
14140uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
14141
14142long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
14143long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
14144long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
14145long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
14146
14147ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
14148ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
14149ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
14150ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
14151
14152float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
14153float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
14154float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
14155float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
14156
14157char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
14158char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
14159char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
14160char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
14161
14162uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
14163uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
14164uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
14165uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
14166
14167short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
14168short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
14169short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
14170short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
14171
14172ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
14173ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
14174ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
14175ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
14176
14177int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
14178int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
14179int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
14180int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
14181
14182uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
14183uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
14184uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
14185uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
14186
14187long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
14188long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
14189long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
14190long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
14191
14192ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
14193ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
14194ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
14195ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
14196
14197float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
14198float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
14199float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
14200float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
14201
14202#ifdef cl_khr_fp64
14203double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
14204double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
14205double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
14206double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
14207
14208double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
14209double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
14210double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
14211double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
14212
14213double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
14214double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
14215double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
14216double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
14217
14218double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
14219double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
14220double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
14221double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
14222#endif //cl_khr_fp64
14223
14224#ifdef cl_khr_fp16
14225half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
14226half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
14227half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
14228half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
14229
14230half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
14231half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
14232half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
14233half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
14234
14235half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
14236half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
14237half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
14238half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
14239
14240half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
14241half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
14242half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
14243half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
14244#endif //cl_khr_fp16
14245
14246char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
14247char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
14248char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
14249char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
14250
14251uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
14252uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
14253uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
14254uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
14255
14256short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
14257short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
14258short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
14259short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
14260
14261ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
14262ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
14263ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
14264ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
14265
14266int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
14267int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
14268int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
14269int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
14270
14271uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
14272uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
14273uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
14274uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
14275
14276long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
14277long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
14278long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
14279long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
14280
14281ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
14282ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
14283ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
14284ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
14285
14286float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
14287float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
14288float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
14289float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
14290
14291char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
14292char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
14293char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
14294char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
14295
14296uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
14297uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
14298uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
14299uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
14300
14301short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
14302short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
14303short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
14304short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
14305
14306ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
14307ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
14308ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
14309ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
14310
14311int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
14312int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
14313int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
14314int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
14315
14316uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
14317uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
14318uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
14319uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
14320
14321long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
14322long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
14323long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
14324long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
14325
14326ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
14327ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
14328ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
14329ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
14330
14331float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
14332float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
14333float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
14334float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
14335
14336char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
14337char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
14338char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
14339char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
14340
14341uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
14342uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
14343uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
14344uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
14345
14346short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
14347short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
14348short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
14349short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
14350
14351ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
14352ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
14353ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
14354ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
14355
14356int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
14357int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
14358int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
14359int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
14360
14361uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
14362uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
14363uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
14364uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
14365
14366long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
14367long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
14368long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
14369long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
14370
14371ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
14372ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
14373ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
14374ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
14375
14376float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
14377float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
14378float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
14379float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
14380
14381char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
14382char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
14383char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
14384char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
14385
14386uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
14387uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
14388uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
14389uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
14390
14391short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
14392short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
14393short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
14394short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
14395
14396ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
14397ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
14398ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
14399ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
14400
14401int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
14402int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
14403int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
14404int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
14405
14406uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
14407uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
14408uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
14409uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
14410
14411long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
14412long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
14413long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
14414long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
14415
14416ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
14417ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
14418ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
14419ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
14420
14421float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
14422float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
14423float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
14424float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
14425
14426#ifdef cl_khr_fp64
14427double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
14428double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
14429double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
14430double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
14431
14432double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
14433double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
14434double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
14435double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
14436
14437double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
14438double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
14439double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
14440double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
14441
14442double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
14443double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
14444double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
14445double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
14446#endif //cl_khr_fp64
14447
14448#ifdef cl_khr_fp16
14449half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
14450half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
14451half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
14452half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
14453
14454half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
14455half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
14456half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
14457half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
14458
14459half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
14460half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
14461half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
14462half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
14463
14464half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
14465half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
14466half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
14467half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
14468#endif //cl_khr_fp16
14469
14470#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14471// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
14472
14473int printf(__constant const char* st, ...);
14474#endif
14475
14476// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
14477
14478// These values need to match the runtime equivalent
14479//
14480// Addressing Mode.
14481//
14482#define CLK_ADDRESS_NONE                0
14483#define CLK_ADDRESS_CLAMP_TO_EDGE       2
14484#define CLK_ADDRESS_CLAMP               4
14485#define CLK_ADDRESS_REPEAT              6
14486#define CLK_ADDRESS_MIRRORED_REPEAT     8
14487
14488//
14489// Coordination Normalization
14490//
14491#define CLK_NORMALIZED_COORDS_FALSE     0
14492#define CLK_NORMALIZED_COORDS_TRUE      1
14493
14494//
14495// Filtering Mode.
14496//
14497#define CLK_FILTER_NEAREST              0x10
14498#define CLK_FILTER_LINEAR               0x20
14499
14500#ifdef cl_khr_gl_msaa_sharing
14501#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
14502#endif //cl_khr_gl_msaa_sharing
14503
14504/**
14505 * Use the coordinate (coord.xy) to do an element lookup in
14506 * the 2D image object specified by image.
14507 *
14508 * Use the coordinate (coord.x, coord.y, coord.z) to do
14509 * an element lookup in the 3D image object specified
14510 * by image. coord.w is ignored.
14511 *
14512 * Use the coordinate (coord.z) to index into the
14513 * 2D image array object specified by image_array
14514 * and (coord.x, coord.y) to do an element lookup in
14515 * the 2D image object specified by image.
14516 *
14517 * Use the coordinate (x) to do an element lookup in
14518 * the 1D image object specified by image.
14519 *
14520 * Use the coordinate (coord.y) to index into the
14521 * 1D image array object specified by image_array
14522 * and (coord.x) to do an element lookup in
14523 * the 1D image object specified by image.
14524 *
14525 * Use the coordinate (cood.xy) and sample to do an
14526 * element lookup in the 2D multi-sample image specified
14527 * by image.
14528 *
14529 * Use coord.xy and sample to do an element
14530 * lookup in the 2D multi-sample image layer
14531 * identified by index coord.z in the 2D multi-sample
14532 * image array specified by image.
14533 *
14534 * For mipmap images, use the mip-level specified by
14535 * the Level-of-Detail (lod) or use gradients for LOD
14536 * computation.
14537 *
14538 * read_imagef returns floating-point values in the
14539 * range [0.0 ... 1.0] for image objects created with
14540 * image_channel_data_type set to one of the predefined
14541 * packed formats or CL_UNORM_INT8, or
14542 * CL_UNORM_INT16.
14543 *
14544 * read_imagef returns floating-point values in the
14545 * range [-1.0 ... 1.0] for image objects created with
14546 * image_channel_data_type set to CL_SNORM_INT8,
14547 * or CL_SNORM_INT16.
14548 *
14549 * read_imagef returns floating-point values for image
14550 * objects created with image_channel_data_type set to
14551 * CL_HALF_FLOAT or CL_FLOAT.
14552 *
14553 * read_imagei and read_imageui return
14554 * unnormalized signed integer and unsigned integer
14555 * values respectively. Each channel will be stored in a
14556 * 32-bit integer.
14557 *
14558 * read_imagei can only be used with image objects
14559 * created with image_channel_data_type set to one of
14560 * the following values:
14561 * CL_SIGNED_INT8,
14562 * CL_SIGNED_INT16 and
14563 * CL_SIGNED_INT32.
14564 * If the image_channel_data_type is not one of the
14565 * above values, the values returned by read_imagei
14566 * are undefined.
14567 *
14568 * read_imageui can only be used with image objects
14569 * created with image_channel_data_type set to one of
14570 * the following values:
14571 * CL_UNSIGNED_INT8,
14572 * CL_UNSIGNED_INT16 and
14573 * CL_UNSIGNED_INT32.
14574 * If the image_channel_data_type is not one of the
14575 * above values, the values returned by read_imageui
14576 * are undefined.
14577 *
14578 * The read_image{i|ui} calls support a nearest filter
14579 * only. The filter_mode specified in sampler
14580 * must be set to CLK_FILTER_NEAREST; otherwise
14581 * the values returned are undefined.
14582
14583 * The read_image{f|i|ui} calls that take
14584 * integer coordinates must use a sampler with
14585 * normalized coordinates set to
14586 * CLK_NORMALIZED_COORDS_FALSE and
14587 * addressing mode set to
14588 * CLK_ADDRESS_CLAMP_TO_EDGE,
14589 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
14590 * otherwise the values returned are undefined.
14591 *
14592 * Values returned by read_imagef for image objects
14593 * with image_channel_data_type values not specified
14594 * in the description above are undefined.
14595 */
14596
14597float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
14598float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
14599
14600int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
14601int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
14602uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
14603uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
14604
14605float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
14606float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
14607
14608int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
14609int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
14610uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
14611uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
14612
14613#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14614float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14615float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14616
14617int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14618int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14619uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14620uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14621#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14622
14623float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
14624float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
14625
14626int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
14627int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
14628uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
14629uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
14630
14631#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14632float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14633float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14634
14635int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14636int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14637uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14638uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14639#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14640
14641#ifdef cl_khr_depth_images
14642float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
14643float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
14644
14645float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
14646float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
14647#endif //cl_khr_depth_images
14648
14649#if defined(cl_khr_gl_msaa_sharing)
14650float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
14651int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
14652uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
14653
14654float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
14655
14656float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
14657int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
14658uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
14659
14660float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
14661#endif //cl_khr_gl_msaa_sharing
14662
14663// OpenCL Extension v2.0 s9.18 - Mipmaps
14664#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14665#ifdef cl_khr_mipmap_image
14666
14667float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14668int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14669uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14670
14671float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14672int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14673uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14674
14675float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14676int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14677uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14678
14679float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14680
14681float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14682int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14683uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14684
14685float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14686
14687float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14688int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14689uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14690
14691float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14692int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14693uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14694
14695float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14696int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14697uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14698
14699float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14700int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14701uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14702
14703float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14704
14705float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14706int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14707uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14708
14709float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14710
14711float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14712int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14713uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14714
14715float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14716int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14717uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14718
14719float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14720int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14721uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14722
14723float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14724int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14725uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14726
14727float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14728
14729float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14730int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14731uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14732
14733float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14734
14735float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14736int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14737uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14738
14739#endif //cl_khr_mipmap_image
14740#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14741
14742#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14743
14744/**
14745* Sampler-less Image Access
14746*/
14747
14748float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
14749int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
14750uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
14751
14752float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
14753int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
14754uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
14755
14756float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
14757int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
14758uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
14759
14760float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
14761int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
14762uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
14763
14764float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
14765int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
14766uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
14767
14768#ifdef cl_khr_depth_images
14769float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
14770float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
14771#endif //cl_khr_depth_images
14772
14773float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
14774int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
14775uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
14776
14777#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14778
14779// Image read functions returning half4 type
14780#ifdef cl_khr_fp16
14781half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
14782half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
14783half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
14784half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
14785half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
14786half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
14787#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14788half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
14789half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
14790half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
14791half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
14792/**
14793 * Sampler-less Image Access
14794 */
14795half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
14796half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
14797half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
14798half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
14799half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
14800half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
14801#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14802#endif //cl_khr_fp16
14803
14804// Image read functions for read_write images
14805#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14806float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
14807int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
14808uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
14809
14810float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
14811int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
14812uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
14813
14814float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
14815int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
14816uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
14817
14818float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
14819int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
14820uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
14821
14822float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
14823int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
14824uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
14825
14826float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
14827int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
14828uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
14829
14830#ifdef cl_khr_depth_images
14831float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
14832float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
14833#endif //cl_khr_depth_images
14834
14835#if cl_khr_gl_msaa_sharing
14836float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
14837int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
14838uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
14839
14840float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
14841int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
14842uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
14843
14844float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
14845float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
14846#endif //cl_khr_gl_msaa_sharing
14847
14848#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14849#ifdef cl_khr_mipmap_image
14850float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14851int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14852uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14853
14854float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14855int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14856uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14857
14858float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14859int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14860uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14861
14862float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14863
14864float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14865int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14866uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14867
14868float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14869
14870float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14871int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14872uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14873
14874float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14875int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14876uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14877
14878float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14879int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14880uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14881
14882float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14883int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14884uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14885
14886float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14887
14888float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14889int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14890uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14891
14892float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14893
14894float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14895int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14896uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14897
14898float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14899int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14900uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14901
14902float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14903int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14904uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14905
14906float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14907int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14908uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14909
14910float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14911
14912float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14913int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14914uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14915
14916float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14917
14918float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14919int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14920uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14921#endif //cl_khr_mipmap_image
14922#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14923
14924// Image read functions returning half4 type
14925#ifdef cl_khr_fp16
14926half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
14927half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
14928half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
14929half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
14930half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
14931half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
14932#endif //cl_khr_fp16
14933#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14934
14935/**
14936 * Write color value to location specified by coordinate
14937 * (coord.x, coord.y) in the 2D image object specified by image.
14938 * (coord.x, coord.y) are considered to be unnormalized coordinates
14939 * and must be in the range 0 ... image width - 1, and 0
14940 * ... image height - 1.
14941
14942 * Write color value to location specified by coordinate
14943 * (coord.x, coord.y) in the 2D image object specified by index
14944 * (coord.z) of the 2D image array object image_array.
14945 * (coord.x, coord.y) are considered to be unnormalized
14946 * coordinates and must be in the range 0 ... image width
14947 * - 1.
14948 *
14949 * Write color value to location specified by coordinate
14950 * (coord) in the 1D image (buffer) object specified by image.
14951 * coord is considered to be unnormalized coordinates
14952 * and must be in the range 0 ... image width - 1.
14953 *
14954 * Write color value to location specified by coordinate
14955 * (coord.x) in the 1D image object specified by index
14956 * (coord.y) of the 1D image array object image_array.
14957 * x is considered to be unnormalized coordinates
14958 * and must be in the range 0 ... image width - 1.
14959 *
14960 * Write color value to location specified by coordinate
14961 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
14962 * coord.x & coord.y are considered to be unnormalized coordinates
14963 * and must be in the range 0 ... image width - 1, and 0
14964 * ... image height - 1.
14965 *
14966 * For mipmap images, use mip-level specified by lod.
14967 *
14968 * Appropriate data format conversion to the specified
14969 * image format is done before writing the color value.
14970 *
14971 * write_imagef can only be used with image objects
14972 * created with image_channel_data_type set to one of
14973 * the pre-defined packed formats or set to
14974 * CL_SNORM_INT8, CL_UNORM_INT8,
14975 * CL_SNORM_INT16, CL_UNORM_INT16,
14976 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
14977 * format conversion will be done to convert channel
14978 * data from a floating-point value to actual data format
14979 * in which the channels are stored.
14980 *
14981 * write_imagei can only be used with image objects
14982 * created with image_channel_data_type set to one of
14983 * the following values:
14984 * CL_SIGNED_INT8,
14985 * CL_SIGNED_INT16 and
14986 * CL_SIGNED_INT32.
14987 *
14988 * write_imageui can only be used with image objects
14989 * created with image_channel_data_type set to one of
14990 * the following values:
14991 * CL_UNSIGNED_INT8,
14992 * CL_UNSIGNED_INT16 and
14993 * CL_UNSIGNED_INT32.
14994 *
14995 * The behavior of write_imagef, write_imagei and
14996 * write_imageui for image objects created with
14997 * image_channel_data_type values not specified in
14998 * the description above or with (x, y) coordinate
14999 * values that are not in the range (0 ... image width -1,
15000 * 0 ... image height - 1), respectively, is undefined.
15001 */
15002void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
15003void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
15004void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
15005
15006void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
15007void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
15008void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
15009
15010void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
15011void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
15012void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
15013
15014void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
15015void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
15016void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
15017
15018void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
15019void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
15020void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
15021
15022#ifdef cl_khr_3d_image_writes
15023void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
15024void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
15025void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
15026#endif
15027
15028#ifdef cl_khr_depth_images
15029void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
15030void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
15031#endif //cl_khr_depth_images
15032
15033// OpenCL Extension v2.0 s9.18 - Mipmaps
15034#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15035#ifdef cl_khr_mipmap_image
15036void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
15037void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
15038void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
15039
15040void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
15041void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
15042void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
15043
15044void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
15045void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
15046void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
15047
15048void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
15049void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
15050void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
15051
15052void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float color);
15053void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float color);
15054
15055#ifdef cl_khr_3d_image_writes
15056void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
15057void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
15058void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
15059#endif
15060#endif //cl_khr_mipmap_image
15061#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15062
15063// Image write functions for half4 type
15064#ifdef cl_khr_fp16
15065void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
15066void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
15067#ifdef cl_khr_3d_image_writes
15068void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
15069#endif
15070void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
15071void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
15072void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
15073#endif //cl_khr_fp16
15074
15075// Image write functions for read_write images
15076#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15077void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
15078void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
15079void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
15080
15081void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
15082void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
15083void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
15084
15085void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
15086void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
15087void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
15088
15089void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
15090void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
15091void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
15092
15093void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
15094void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
15095void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
15096
15097#ifdef cl_khr_3d_image_writes
15098void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
15099void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
15100void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
15101#endif
15102
15103#ifdef cl_khr_depth_images
15104void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
15105void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
15106#endif //cl_khr_depth_images
15107
15108#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15109#ifdef cl_khr_mipmap_image
15110void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
15111void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
15112void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
15113
15114void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
15115void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
15116void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
15117
15118void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
15119void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
15120void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
15121
15122void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
15123void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
15124void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
15125
15126void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
15127void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
15128
15129#ifdef cl_khr_3d_image_writes
15130void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
15131void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
15132void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
15133#endif
15134#endif //cl_khr_mipmap_image
15135#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15136
15137// Image write functions for half4 type
15138#ifdef cl_khr_fp16
15139void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
15140void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
15141#ifdef cl_khr_3d_image_writes
15142void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
15143#endif
15144void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
15145void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
15146void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
15147#endif //cl_khr_fp16
15148#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15149
15150// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
15151// access qualifier, which by default assume read_only access qualifier. Image query builtin
15152// functions with write_only image argument should also be declared.
15153
15154/**
15155 * Return the image width in pixels.
15156 *
15157  */
15158int __ovld __cnfn get_image_width(read_only image1d_t image);
15159int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
15160int __ovld __cnfn get_image_width(read_only image2d_t image);
15161#ifdef cl_khr_3d_image_writes
15162int __ovld __cnfn get_image_width(read_only image3d_t image);
15163#endif
15164int __ovld __cnfn get_image_width(read_only image1d_array_t image);
15165int __ovld __cnfn get_image_width(read_only image2d_array_t image);
15166#ifdef cl_khr_depth_images
15167int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
15168int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
15169#endif //cl_khr_depth_images
15170#if defined(cl_khr_gl_msaa_sharing)
15171int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
15172int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
15173int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
15174int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
15175#endif //cl_khr_gl_msaa_sharing
15176
15177int __ovld __cnfn get_image_width(write_only image1d_t image);
15178int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
15179int __ovld __cnfn get_image_width(write_only image2d_t image);
15180#ifdef cl_khr_3d_image_writes
15181int __ovld __cnfn get_image_width(write_only image3d_t image);
15182#endif
15183int __ovld __cnfn get_image_width(write_only image1d_array_t image);
15184int __ovld __cnfn get_image_width(write_only image2d_array_t image);
15185#ifdef cl_khr_depth_images
15186int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
15187int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
15188#endif //cl_khr_depth_images
15189#if defined(cl_khr_gl_msaa_sharing)
15190int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
15191int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
15192int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
15193int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
15194#endif //cl_khr_gl_msaa_sharing
15195
15196#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15197int __ovld __cnfn get_image_width(read_write image1d_t image);
15198int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
15199int __ovld __cnfn get_image_width(read_write image2d_t image);
15200int __ovld __cnfn get_image_width(read_write image3d_t image);
15201int __ovld __cnfn get_image_width(read_write image1d_array_t image);
15202int __ovld __cnfn get_image_width(read_write image2d_array_t image);
15203#ifdef cl_khr_depth_images
15204int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
15205int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
15206#endif //cl_khr_depth_images
15207#if defined(cl_khr_gl_msaa_sharing)
15208int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
15209int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
15210int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
15211int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
15212#endif //cl_khr_gl_msaa_sharing
15213#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15214
15215/**
15216 * Return the image height in pixels.
15217 */
15218int __ovld __cnfn get_image_height(read_only image2d_t image);
15219int __ovld __cnfn get_image_height(read_only image3d_t image);
15220int __ovld __cnfn get_image_height(read_only image2d_array_t image);
15221#ifdef cl_khr_depth_images
15222int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
15223int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
15224#endif //cl_khr_depth_images
15225#if defined(cl_khr_gl_msaa_sharing)
15226int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
15227int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
15228int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
15229int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
15230#endif //cl_khr_gl_msaa_sharing
15231
15232int __ovld __cnfn get_image_height(write_only image2d_t image);
15233#ifdef cl_khr_3d_image_writes
15234int __ovld __cnfn get_image_height(write_only image3d_t image);
15235#endif
15236int __ovld __cnfn get_image_height(write_only image2d_array_t image);
15237#ifdef cl_khr_depth_images
15238int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
15239int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
15240#endif //cl_khr_depth_images
15241#if defined(cl_khr_gl_msaa_sharing)
15242int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
15243int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
15244int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
15245int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
15246#endif //cl_khr_gl_msaa_sharing
15247
15248#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15249int __ovld __cnfn get_image_height(read_write image2d_t image);
15250int __ovld __cnfn get_image_height(read_write image3d_t image);
15251int __ovld __cnfn get_image_height(read_write image2d_array_t image);
15252#ifdef cl_khr_depth_images
15253int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
15254int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
15255#endif //cl_khr_depth_images
15256#if defined(cl_khr_gl_msaa_sharing)
15257int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
15258int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
15259int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
15260int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
15261#endif //cl_khr_gl_msaa_sharing
15262#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15263
15264/**
15265 * Return the image depth in pixels.
15266 */
15267int __ovld __cnfn get_image_depth(read_only image3d_t image);
15268
15269#ifdef cl_khr_3d_image_writes
15270int __ovld __cnfn get_image_depth(write_only image3d_t image);
15271#endif
15272
15273#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15274int __ovld __cnfn get_image_depth(read_write image3d_t image);
15275#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15276
15277// OpenCL Extension v2.0 s9.18 - Mipmaps
15278#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15279#ifdef cl_khr_mipmap_image
15280/**
15281 * Return the image miplevels.
15282 */
15283
15284int __ovld get_image_num_mip_levels(read_only image1d_t image);
15285int __ovld get_image_num_mip_levels(read_only image2d_t image);
15286int __ovld get_image_num_mip_levels(read_only image3d_t image);
15287
15288int __ovld get_image_num_mip_levels(write_only image1d_t image);
15289int __ovld get_image_num_mip_levels(write_only image2d_t image);
15290#ifdef cl_khr_3d_image_writes
15291int __ovld get_image_num_mip_levels(write_only image3d_t image);
15292#endif
15293
15294int __ovld get_image_num_mip_levels(read_write image1d_t image);
15295int __ovld get_image_num_mip_levels(read_write image2d_t image);
15296int __ovld get_image_num_mip_levels(read_write image3d_t image);
15297
15298int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
15299int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
15300int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
15301int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
15302
15303int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
15304int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
15305int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
15306int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
15307
15308int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
15309int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
15310int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
15311int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
15312
15313#endif //cl_khr_mipmap_image
15314#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15315
15316/**
15317 * Return the channel data type. Valid values are:
15318 * CLK_SNORM_INT8
15319 * CLK_SNORM_INT16
15320 * CLK_UNORM_INT8
15321 * CLK_UNORM_INT16
15322 * CLK_UNORM_SHORT_565
15323 * CLK_UNORM_SHORT_555
15324 * CLK_UNORM_SHORT_101010
15325 * CLK_SIGNED_INT8
15326 * CLK_SIGNED_INT16
15327 * CLK_SIGNED_INT32
15328 * CLK_UNSIGNED_INT8
15329 * CLK_UNSIGNED_INT16
15330 * CLK_UNSIGNED_INT32
15331 * CLK_HALF_FLOAT
15332 * CLK_FLOAT
15333 */
15334
15335//
15336// Channel Datatype.
15337//
15338#define CLK_SNORM_INT8        0x10D0
15339#define CLK_SNORM_INT16       0x10D1
15340#define CLK_UNORM_INT8        0x10D2
15341#define CLK_UNORM_INT16       0x10D3
15342#define CLK_UNORM_SHORT_565   0x10D4
15343#define CLK_UNORM_SHORT_555   0x10D5
15344#define CLK_UNORM_INT_101010  0x10D6
15345#define CLK_SIGNED_INT8       0x10D7
15346#define CLK_SIGNED_INT16      0x10D8
15347#define CLK_SIGNED_INT32      0x10D9
15348#define CLK_UNSIGNED_INT8     0x10DA
15349#define CLK_UNSIGNED_INT16    0x10DB
15350#define CLK_UNSIGNED_INT32    0x10DC
15351#define CLK_HALF_FLOAT        0x10DD
15352#define CLK_FLOAT             0x10DE
15353#define CLK_UNORM_INT24       0x10DF
15354
15355int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
15356int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
15357int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
15358int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
15359int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
15360int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
15361#ifdef cl_khr_depth_images
15362int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
15363int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
15364#endif //cl_khr_depth_images
15365#if defined(cl_khr_gl_msaa_sharing)
15366int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
15367int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
15368int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
15369int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
15370#endif //cl_khr_gl_msaa_sharing
15371
15372int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
15373int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
15374int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
15375#ifdef cl_khr_3d_image_writes
15376int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
15377#endif
15378int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
15379int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
15380#ifdef cl_khr_depth_images
15381int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
15382int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
15383#endif //cl_khr_depth_images
15384#if defined(cl_khr_gl_msaa_sharing)
15385int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
15386int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
15387int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
15388int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
15389#endif //cl_khr_gl_msaa_sharing
15390
15391#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15392int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
15393int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
15394int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
15395int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
15396int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
15397int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
15398#ifdef cl_khr_depth_images
15399int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
15400int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
15401#endif //cl_khr_depth_images
15402#if defined(cl_khr_gl_msaa_sharing)
15403int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
15404int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
15405int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
15406int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
15407#endif //cl_khr_gl_msaa_sharing
15408#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15409
15410/**
15411 * Return the image channel order. Valid values are:
15412 * CLK_A
15413 * CLK_R
15414 * CLK_Rx
15415 * CLK_RG
15416 * CLK_RGx
15417 * CLK_RA
15418 * CLK_RGB
15419 * CLK_RGBx
15420 * CLK_RGBA
15421 * CLK_ARGB
15422 * CLK_BGRA
15423 * CLK_INTENSITY
15424 * CLK_LUMINANCE
15425 */
15426// Channel order, numbering must be aligned with cl_channel_order in cl.h
15427//
15428#define CLK_R         0x10B0
15429#define CLK_A         0x10B1
15430#define CLK_RG        0x10B2
15431#define CLK_RA        0x10B3
15432#define CLK_RGB       0x10B4
15433#define CLK_RGBA      0x10B5
15434#define CLK_BGRA      0x10B6
15435#define CLK_ARGB      0x10B7
15436#define CLK_INTENSITY 0x10B8
15437#define CLK_LUMINANCE 0x10B9
15438#define CLK_Rx                0x10BA
15439#define CLK_RGx               0x10BB
15440#define CLK_RGBx              0x10BC
15441#define CLK_DEPTH             0x10BD
15442#define CLK_DEPTH_STENCIL     0x10BE
15443#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15444#define CLK_sRGB              0x10BF
15445#define CLK_sRGBx             0x10C0
15446#define CLK_sRGBA             0x10C1
15447#define CLK_sBGRA             0x10C2
15448#define CLK_ABGR              0x10C3
15449#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15450
15451int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
15452int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
15453int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
15454int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
15455int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
15456int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
15457#ifdef cl_khr_depth_images
15458int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
15459int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
15460#endif //cl_khr_depth_images
15461#if defined(cl_khr_gl_msaa_sharing)
15462int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
15463int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
15464int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
15465int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
15466#endif //cl_khr_gl_msaa_sharing
15467
15468int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
15469int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
15470int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
15471#ifdef cl_khr_3d_image_writes
15472int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
15473#endif
15474int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
15475int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
15476#ifdef cl_khr_depth_images
15477int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
15478int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
15479#endif //cl_khr_depth_images
15480#if defined(cl_khr_gl_msaa_sharing)
15481int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
15482int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
15483int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
15484int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
15485#endif //cl_khr_gl_msaa_sharing
15486
15487#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15488int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
15489int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
15490int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
15491int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
15492int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
15493int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
15494#ifdef cl_khr_depth_images
15495int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
15496int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
15497#endif //cl_khr_depth_images
15498#if defined(cl_khr_gl_msaa_sharing)
15499int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
15500int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
15501int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
15502int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
15503#endif //cl_khr_gl_msaa_sharing
15504#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15505
15506/**
15507 * Return the 2D image width and height as an int2
15508 * type. The width is returned in the x component, and
15509 * the height in the y component.
15510 */
15511int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
15512int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
15513#ifdef cl_khr_depth_images
15514int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
15515int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
15516#endif //cl_khr_depth_images
15517#if defined(cl_khr_gl_msaa_sharing)
15518int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
15519int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
15520int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
15521int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
15522#endif //cl_khr_gl_msaa_sharing
15523
15524int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
15525int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
15526#ifdef cl_khr_depth_images
15527int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
15528int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
15529#endif //cl_khr_depth_images
15530#if defined(cl_khr_gl_msaa_sharing)
15531int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
15532int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
15533int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
15534int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
15535#endif //cl_khr_gl_msaa_sharing
15536
15537#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15538int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
15539int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
15540#ifdef cl_khr_depth_images
15541int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
15542int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
15543#endif //cl_khr_depth_images
15544#if defined(cl_khr_gl_msaa_sharing)
15545int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
15546int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
15547int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
15548int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
15549#endif //cl_khr_gl_msaa_sharing
15550#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15551
15552/**
15553 * Return the 3D image width, height, and depth as an
15554 * int4 type. The width is returned in the x
15555 * component, height in the y component, depth in the z
15556 * component and the w component is 0.
15557 */
15558int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
15559#ifdef cl_khr_3d_image_writes
15560int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
15561#endif
15562#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15563int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
15564#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15565
15566/**
15567 * Return the image array size.
15568 */
15569
15570size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
15571size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
15572#ifdef cl_khr_depth_images
15573size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
15574#endif //cl_khr_depth_images
15575#if defined(cl_khr_gl_msaa_sharing)
15576size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
15577size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
15578#endif //cl_khr_gl_msaa_sharing
15579
15580size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
15581size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
15582#ifdef cl_khr_depth_images
15583size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
15584#endif //cl_khr_depth_images
15585#if defined(cl_khr_gl_msaa_sharing)
15586size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
15587size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
15588#endif //cl_khr_gl_msaa_sharing
15589
15590#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15591size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
15592size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
15593#ifdef cl_khr_depth_images
15594size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
15595#endif //cl_khr_depth_images
15596#if defined(cl_khr_gl_msaa_sharing)
15597size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
15598size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
15599#endif //cl_khr_gl_msaa_sharing
15600#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15601
15602/**
15603* Return the number of samples associated with image
15604*/
15605#if defined(cl_khr_gl_msaa_sharing)
15606int __ovld get_image_num_samples(read_only image2d_msaa_t image);
15607int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
15608int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
15609int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
15610int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
15611
15612int __ovld get_image_num_samples(write_only image2d_msaa_t image);
15613int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
15614int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15615int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
15616int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15617
15618#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15619int __ovld get_image_num_samples(read_write image2d_msaa_t image);
15620int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
15621int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
15622int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
15623int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
15624#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15625#endif
15626
15627// OpenCL v2.0 s6.13.15 - Work-group Functions
15628
15629#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15630int __ovld __conv work_group_all(int predicate);
15631int __ovld __conv work_group_any(int predicate);
15632
15633#ifdef cl_khr_fp16
15634half __ovld __conv work_group_broadcast(half a, size_t local_id);
15635half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
15636half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
15637#endif
15638int __ovld __conv work_group_broadcast(int a, size_t local_id);
15639int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
15640int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
15641uint __ovld __conv work_group_broadcast(uint a, size_t local_id);
15642uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y);
15643uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
15644long __ovld __conv work_group_broadcast(long a, size_t local_id);
15645long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
15646long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
15647ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id);
15648ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y);
15649ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
15650float __ovld __conv work_group_broadcast(float a, size_t local_id);
15651float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
15652float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
15653#ifdef cl_khr_fp64
15654double __ovld __conv work_group_broadcast(double a, size_t local_id);
15655double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
15656double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
15657#endif //cl_khr_fp64
15658
15659#ifdef cl_khr_fp16
15660half __ovld __conv work_group_reduce_add(half x);
15661half __ovld __conv work_group_reduce_min(half x);
15662half __ovld __conv work_group_reduce_max(half x);
15663half __ovld __conv work_group_scan_exclusive_add(half x);
15664half __ovld __conv work_group_scan_exclusive_min(half x);
15665half __ovld __conv work_group_scan_exclusive_max(half x);
15666half __ovld __conv work_group_scan_inclusive_add(half x);
15667half __ovld __conv work_group_scan_inclusive_min(half x);
15668half __ovld __conv work_group_scan_inclusive_max(half x);
15669#endif
15670int __ovld __conv work_group_reduce_add(int x);
15671int __ovld __conv work_group_reduce_min(int x);
15672int __ovld __conv work_group_reduce_max(int x);
15673int __ovld __conv work_group_scan_exclusive_add(int x);
15674int __ovld __conv work_group_scan_exclusive_min(int x);
15675int __ovld __conv work_group_scan_exclusive_max(int x);
15676int __ovld __conv work_group_scan_inclusive_add(int x);
15677int __ovld __conv work_group_scan_inclusive_min(int x);
15678int __ovld __conv work_group_scan_inclusive_max(int x);
15679uint __ovld __conv work_group_reduce_add(uint x);
15680uint __ovld __conv work_group_reduce_min(uint x);
15681uint __ovld __conv work_group_reduce_max(uint x);
15682uint __ovld __conv work_group_scan_exclusive_add(uint x);
15683uint __ovld __conv work_group_scan_exclusive_min(uint x);
15684uint __ovld __conv work_group_scan_exclusive_max(uint x);
15685uint __ovld __conv work_group_scan_inclusive_add(uint x);
15686uint __ovld __conv work_group_scan_inclusive_min(uint x);
15687uint __ovld __conv work_group_scan_inclusive_max(uint x);
15688long __ovld __conv work_group_reduce_add(long x);
15689long __ovld __conv work_group_reduce_min(long x);
15690long __ovld __conv work_group_reduce_max(long x);
15691long __ovld __conv work_group_scan_exclusive_add(long x);
15692long __ovld __conv work_group_scan_exclusive_min(long x);
15693long __ovld __conv work_group_scan_exclusive_max(long x);
15694long __ovld __conv work_group_scan_inclusive_add(long x);
15695long __ovld __conv work_group_scan_inclusive_min(long x);
15696long __ovld __conv work_group_scan_inclusive_max(long x);
15697ulong __ovld __conv work_group_reduce_add(ulong x);
15698ulong __ovld __conv work_group_reduce_min(ulong x);
15699ulong __ovld __conv work_group_reduce_max(ulong x);
15700ulong __ovld __conv work_group_scan_exclusive_add(ulong x);
15701ulong __ovld __conv work_group_scan_exclusive_min(ulong x);
15702ulong __ovld __conv work_group_scan_exclusive_max(ulong x);
15703ulong __ovld __conv work_group_scan_inclusive_add(ulong x);
15704ulong __ovld __conv work_group_scan_inclusive_min(ulong x);
15705ulong __ovld __conv work_group_scan_inclusive_max(ulong x);
15706float __ovld __conv work_group_reduce_add(float x);
15707float __ovld __conv work_group_reduce_min(float x);
15708float __ovld __conv work_group_reduce_max(float x);
15709float __ovld __conv work_group_scan_exclusive_add(float x);
15710float __ovld __conv work_group_scan_exclusive_min(float x);
15711float __ovld __conv work_group_scan_exclusive_max(float x);
15712float __ovld __conv work_group_scan_inclusive_add(float x);
15713float __ovld __conv work_group_scan_inclusive_min(float x);
15714float __ovld __conv work_group_scan_inclusive_max(float x);
15715#ifdef cl_khr_fp64
15716double __ovld __conv work_group_reduce_add(double x);
15717double __ovld __conv work_group_reduce_min(double x);
15718double __ovld __conv work_group_reduce_max(double x);
15719double __ovld __conv work_group_scan_exclusive_add(double x);
15720double __ovld __conv work_group_scan_exclusive_min(double x);
15721double __ovld __conv work_group_scan_exclusive_max(double x);
15722double __ovld __conv work_group_scan_inclusive_add(double x);
15723double __ovld __conv work_group_scan_inclusive_min(double x);
15724double __ovld __conv work_group_scan_inclusive_max(double x);
15725#endif //cl_khr_fp64
15726
15727#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15728
15729// OpenCL v2.0 s6.13.16 - Pipe Functions
15730#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15731#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
15732bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
15733#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15734
15735
15736// OpenCL v2.0 s6.13.17 - Enqueue Kernels
15737#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15738
15739#define CL_COMPLETE                                 0x0
15740#define CL_RUNNING                                  0x1
15741#define CL_SUBMITTED                                0x2
15742#define CL_QUEUED                                   0x3
15743
15744#define CLK_SUCCESS                                 0
15745#define CLK_ENQUEUE_FAILURE                         -101
15746#define CLK_INVALID_QUEUE                           -102
15747#define CLK_INVALID_NDRANGE                         -160
15748#define CLK_INVALID_EVENT_WAIT_LIST                 -57
15749#define CLK_DEVICE_QUEUE_FULL                       -161
15750#define CLK_INVALID_ARG_SIZE                        -51
15751#define CLK_EVENT_ALLOCATION_FAILURE                -100
15752#define CLK_OUT_OF_RESOURCES                        -5
15753
15754#define CLK_NULL_QUEUE                              0
15755#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
15756
15757// execution model related definitions
15758#define CLK_ENQUEUE_FLAGS_NO_WAIT                   0x0
15759#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL               0x1
15760#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP           0x2
15761
15762typedef int kernel_enqueue_flags_t;
15763typedef int clk_profiling_info;
15764
15765// Profiling info name (see capture_event_profiling_info)
15766#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
15767
15768#define MAX_WORK_DIM        3
15769
15770typedef struct {
15771    unsigned int workDimension;
15772    size_t globalWorkOffset[MAX_WORK_DIM];
15773    size_t globalWorkSize[MAX_WORK_DIM];
15774    size_t localWorkSize[MAX_WORK_DIM];
15775} ndrange_t;
15776
15777ndrange_t __ovld ndrange_1D(size_t);
15778ndrange_t __ovld ndrange_1D(size_t, size_t);
15779ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
15780
15781ndrange_t __ovld ndrange_2D(const size_t[2]);
15782ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
15783ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
15784
15785ndrange_t __ovld ndrange_3D(const size_t[3]);
15786ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
15787ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
15788
15789int __ovld enqueue_marker(queue_t, uint, const __private clk_event_t*, __private clk_event_t*);
15790
15791void __ovld retain_event(clk_event_t);
15792
15793void __ovld release_event(clk_event_t);
15794
15795clk_event_t __ovld create_user_event(void);
15796
15797void __ovld set_user_event_status(clk_event_t e, int state);
15798
15799bool __ovld is_valid_event (clk_event_t event);
15800
15801void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
15802
15803queue_t __ovld get_default_queue(void);
15804#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15805
15806// OpenCL Extension v2.0 s9.17 - Sub-groups
15807
15808#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
15809// Shared Sub Group Functions
15810uint    __ovld get_sub_group_size(void);
15811uint    __ovld get_max_sub_group_size(void);
15812uint    __ovld get_num_sub_groups(void);
15813#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15814uint    __ovld get_enqueued_num_sub_groups(void);
15815#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15816uint    __ovld get_sub_group_id(void);
15817uint    __ovld get_sub_group_local_id(void);
15818
15819void    __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
15820#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15821void    __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
15822#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15823
15824int     __ovld __conv sub_group_all(int predicate);
15825int     __ovld __conv sub_group_any(int predicate);
15826
15827int     __ovld __conv sub_group_broadcast(int   x, uint sub_group_local_id);
15828uint    __ovld __conv sub_group_broadcast(uint  x, uint sub_group_local_id);
15829long    __ovld __conv sub_group_broadcast(long  x, uint sub_group_local_id);
15830ulong   __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
15831float   __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
15832
15833int     __ovld __conv sub_group_reduce_add(int   x);
15834uint    __ovld __conv sub_group_reduce_add(uint  x);
15835long    __ovld __conv sub_group_reduce_add(long  x);
15836ulong   __ovld __conv sub_group_reduce_add(ulong x);
15837float   __ovld __conv sub_group_reduce_add(float x);
15838int     __ovld __conv sub_group_reduce_min(int   x);
15839uint    __ovld __conv sub_group_reduce_min(uint  x);
15840long    __ovld __conv sub_group_reduce_min(long  x);
15841ulong   __ovld __conv sub_group_reduce_min(ulong x);
15842float   __ovld __conv sub_group_reduce_min(float x);
15843int     __ovld __conv sub_group_reduce_max(int   x);
15844uint    __ovld __conv sub_group_reduce_max(uint  x);
15845long    __ovld __conv sub_group_reduce_max(long  x);
15846ulong   __ovld __conv sub_group_reduce_max(ulong x);
15847float   __ovld __conv sub_group_reduce_max(float x);
15848
15849int     __ovld __conv sub_group_scan_exclusive_add(int   x);
15850uint    __ovld __conv sub_group_scan_exclusive_add(uint  x);
15851long    __ovld __conv sub_group_scan_exclusive_add(long  x);
15852ulong   __ovld __conv sub_group_scan_exclusive_add(ulong x);
15853float   __ovld __conv sub_group_scan_exclusive_add(float x);
15854int     __ovld __conv sub_group_scan_exclusive_min(int   x);
15855uint    __ovld __conv sub_group_scan_exclusive_min(uint  x);
15856long    __ovld __conv sub_group_scan_exclusive_min(long  x);
15857ulong   __ovld __conv sub_group_scan_exclusive_min(ulong x);
15858float   __ovld __conv sub_group_scan_exclusive_min(float x);
15859int     __ovld __conv sub_group_scan_exclusive_max(int   x);
15860uint    __ovld __conv sub_group_scan_exclusive_max(uint  x);
15861long    __ovld __conv sub_group_scan_exclusive_max(long  x);
15862ulong   __ovld __conv sub_group_scan_exclusive_max(ulong x);
15863float   __ovld __conv sub_group_scan_exclusive_max(float x);
15864
15865int     __ovld __conv sub_group_scan_inclusive_add(int   x);
15866uint    __ovld __conv sub_group_scan_inclusive_add(uint  x);
15867long    __ovld __conv sub_group_scan_inclusive_add(long  x);
15868ulong   __ovld __conv sub_group_scan_inclusive_add(ulong x);
15869float   __ovld __conv sub_group_scan_inclusive_add(float x);
15870int     __ovld __conv sub_group_scan_inclusive_min(int   x);
15871uint    __ovld __conv sub_group_scan_inclusive_min(uint  x);
15872long    __ovld __conv sub_group_scan_inclusive_min(long  x);
15873ulong   __ovld __conv sub_group_scan_inclusive_min(ulong x);
15874float   __ovld __conv sub_group_scan_inclusive_min(float x);
15875int     __ovld __conv sub_group_scan_inclusive_max(int   x);
15876uint    __ovld __conv sub_group_scan_inclusive_max(uint  x);
15877long    __ovld __conv sub_group_scan_inclusive_max(long  x);
15878ulong   __ovld __conv sub_group_scan_inclusive_max(ulong x);
15879float   __ovld __conv sub_group_scan_inclusive_max(float x);
15880
15881#ifdef cl_khr_fp16
15882half    __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
15883half    __ovld __conv sub_group_reduce_add(half x);
15884half    __ovld __conv sub_group_reduce_min(half x);
15885half    __ovld __conv sub_group_reduce_max(half x);
15886half    __ovld __conv sub_group_scan_exclusive_add(half x);
15887half    __ovld __conv sub_group_scan_exclusive_min(half x);
15888half    __ovld __conv sub_group_scan_exclusive_max(half x);
15889half    __ovld __conv sub_group_scan_inclusive_add(half x);
15890half    __ovld __conv sub_group_scan_inclusive_min(half x);
15891half    __ovld __conv sub_group_scan_inclusive_max(half x);
15892#endif //cl_khr_fp16
15893
15894#ifdef cl_khr_fp64
15895double  __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
15896double  __ovld __conv sub_group_reduce_add(double x);
15897double  __ovld __conv sub_group_reduce_min(double x);
15898double  __ovld __conv sub_group_reduce_max(double x);
15899double  __ovld __conv sub_group_scan_exclusive_add(double x);
15900double  __ovld __conv sub_group_scan_exclusive_min(double x);
15901double  __ovld __conv sub_group_scan_exclusive_max(double x);
15902double  __ovld __conv sub_group_scan_inclusive_add(double x);
15903double  __ovld __conv sub_group_scan_inclusive_min(double x);
15904double  __ovld __conv sub_group_scan_inclusive_max(double x);
15905#endif //cl_khr_fp64
15906
15907#endif //cl_khr_subgroups cl_intel_subgroups
15908
15909#if defined(cl_intel_subgroups)
15910// Intel-Specific Sub Group Functions
15911float   __ovld __conv intel_sub_group_shuffle( float  x, uint c );
15912float2  __ovld __conv intel_sub_group_shuffle( float2 x, uint c );
15913float3  __ovld __conv intel_sub_group_shuffle( float3 x, uint c );
15914float4  __ovld __conv intel_sub_group_shuffle( float4 x, uint c );
15915float8  __ovld __conv intel_sub_group_shuffle( float8 x, uint c );
15916float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c );
15917
15918int     __ovld __conv intel_sub_group_shuffle( int  x, uint c );
15919int2    __ovld __conv intel_sub_group_shuffle( int2 x, uint c );
15920int3    __ovld __conv intel_sub_group_shuffle( int3 x, uint c );
15921int4    __ovld __conv intel_sub_group_shuffle( int4 x, uint c );
15922int8    __ovld __conv intel_sub_group_shuffle( int8 x, uint c );
15923int16   __ovld __conv intel_sub_group_shuffle( int16 x, uint c );
15924
15925uint    __ovld __conv intel_sub_group_shuffle( uint  x, uint c );
15926uint2   __ovld __conv intel_sub_group_shuffle( uint2 x, uint c );
15927uint3   __ovld __conv intel_sub_group_shuffle( uint3 x, uint c );
15928uint4   __ovld __conv intel_sub_group_shuffle( uint4 x, uint c );
15929uint8   __ovld __conv intel_sub_group_shuffle( uint8 x, uint c );
15930uint16  __ovld __conv intel_sub_group_shuffle( uint16 x, uint c );
15931
15932long    __ovld __conv intel_sub_group_shuffle( long x, uint c );
15933ulong   __ovld __conv intel_sub_group_shuffle( ulong x, uint c );
15934
15935float   __ovld __conv intel_sub_group_shuffle_down( float  cur, float  next, uint c );
15936float2  __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c );
15937float3  __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c );
15938float4  __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c );
15939float8  __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c );
15940float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c );
15941
15942int     __ovld __conv intel_sub_group_shuffle_down( int  cur, int  next, uint c );
15943int2    __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c );
15944int3    __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c );
15945int4    __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c );
15946int8    __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c );
15947int16   __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c );
15948
15949uint    __ovld __conv intel_sub_group_shuffle_down( uint  cur, uint  next, uint c );
15950uint2   __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c );
15951uint3   __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c );
15952uint4   __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c );
15953uint8   __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c );
15954uint16  __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c );
15955
15956long    __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c );
15957ulong   __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c );
15958
15959float   __ovld __conv intel_sub_group_shuffle_up( float  prev, float  cur, uint c );
15960float2  __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c );
15961float3  __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c );
15962float4  __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c );
15963float8  __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c );
15964float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c );
15965
15966int     __ovld __conv intel_sub_group_shuffle_up( int  prev, int  cur, uint c );
15967int2    __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c );
15968int3    __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c );
15969int4    __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c );
15970int8    __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c );
15971int16   __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c );
15972
15973uint    __ovld __conv intel_sub_group_shuffle_up( uint  prev, uint  cur, uint c );
15974uint2   __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c );
15975uint3   __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c );
15976uint4   __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c );
15977uint8   __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c );
15978uint16  __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c );
15979
15980long    __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c );
15981ulong   __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c );
15982
15983float   __ovld __conv intel_sub_group_shuffle_xor( float  x, uint c );
15984float2  __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c );
15985float3  __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c );
15986float4  __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c );
15987float8  __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c );
15988float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c );
15989
15990int     __ovld __conv intel_sub_group_shuffle_xor( int  x, uint c );
15991int2    __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c );
15992int3    __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c );
15993int4    __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c );
15994int8    __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c );
15995int16   __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c );
15996
15997uint    __ovld __conv intel_sub_group_shuffle_xor( uint  x, uint c );
15998uint2   __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c );
15999uint3   __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c );
16000uint4   __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c );
16001uint8   __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c );
16002uint16  __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
16003
16004long    __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
16005ulong   __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
16006
16007uint    __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
16008uint2   __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
16009uint4   __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
16010uint8   __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
16011
16012#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16013uint    __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
16014uint2   __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
16015uint4   __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
16016uint8   __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
16017#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16018
16019uint    __ovld __conv intel_sub_group_block_read( const __global uint* p );
16020uint2   __ovld __conv intel_sub_group_block_read2( const __global uint* p );
16021uint4   __ovld __conv intel_sub_group_block_read4( const __global uint* p );
16022uint8   __ovld __conv intel_sub_group_block_read8( const __global uint* p );
16023
16024void    __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
16025void    __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
16026void    __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
16027void    __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
16028
16029#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16030void    __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
16031void    __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
16032void    __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
16033void    __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
16034#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16035
16036void    __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
16037void    __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
16038void    __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data );
16039void    __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data );
16040
16041#ifdef cl_khr_fp16
16042half    __ovld __conv intel_sub_group_shuffle( half x, uint c );
16043half    __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c );
16044half    __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c );
16045half    __ovld __conv intel_sub_group_shuffle_xor( half x, uint c );
16046#endif
16047
16048#if defined(cl_khr_fp64)
16049double  __ovld __conv intel_sub_group_shuffle( double x, uint c );
16050double  __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c );
16051double  __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c );
16052double  __ovld __conv intel_sub_group_shuffle_xor( double x, uint c );
16053#endif
16054
16055#endif //cl_intel_subgroups
16056
16057#if defined(cl_intel_subgroups_short)
16058short       __ovld __conv intel_sub_group_broadcast( short  x, uint sub_group_local_id );
16059short2      __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id );
16060short3      __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id );
16061short4      __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id );
16062short8      __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id );
16063
16064ushort      __ovld __conv intel_sub_group_broadcast( ushort  x, uint sub_group_local_id );
16065ushort2     __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id );
16066ushort3     __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id );
16067ushort4     __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id );
16068ushort8     __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id );
16069
16070short       __ovld __conv intel_sub_group_shuffle( short   x, uint c );
16071short2      __ovld __conv intel_sub_group_shuffle( short2  x, uint c );
16072short3      __ovld __conv intel_sub_group_shuffle( short3  x, uint c );
16073short4      __ovld __conv intel_sub_group_shuffle( short4  x, uint c );
16074short8      __ovld __conv intel_sub_group_shuffle( short8  x, uint c );
16075short16     __ovld __conv intel_sub_group_shuffle( short16 x, uint c);
16076
16077ushort      __ovld __conv intel_sub_group_shuffle( ushort   x, uint c );
16078ushort2     __ovld __conv intel_sub_group_shuffle( ushort2  x, uint c );
16079ushort3     __ovld __conv intel_sub_group_shuffle( ushort3  x, uint c );
16080ushort4     __ovld __conv intel_sub_group_shuffle( ushort4  x, uint c );
16081ushort8     __ovld __conv intel_sub_group_shuffle( ushort8  x, uint c );
16082ushort16    __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c );
16083
16084short       __ovld __conv intel_sub_group_shuffle_down( short   cur, short   next, uint c );
16085short2      __ovld __conv intel_sub_group_shuffle_down( short2  cur, short2  next, uint c );
16086short3      __ovld __conv intel_sub_group_shuffle_down( short3  cur, short3  next, uint c );
16087short4      __ovld __conv intel_sub_group_shuffle_down( short4  cur, short4  next, uint c );
16088short8      __ovld __conv intel_sub_group_shuffle_down( short8  cur, short8  next, uint c );
16089short16     __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c );
16090
16091ushort      __ovld __conv intel_sub_group_shuffle_down( ushort   cur, ushort   next, uint c );
16092ushort2     __ovld __conv intel_sub_group_shuffle_down( ushort2  cur, ushort2  next, uint c );
16093ushort3     __ovld __conv intel_sub_group_shuffle_down( ushort3  cur, ushort3  next, uint c );
16094ushort4     __ovld __conv intel_sub_group_shuffle_down( ushort4  cur, ushort4  next, uint c );
16095ushort8     __ovld __conv intel_sub_group_shuffle_down( ushort8  cur, ushort8  next, uint c );
16096ushort16    __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c );
16097
16098short       __ovld __conv intel_sub_group_shuffle_up( short   cur, short   next, uint c );
16099short2      __ovld __conv intel_sub_group_shuffle_up( short2  cur, short2  next, uint c );
16100short3      __ovld __conv intel_sub_group_shuffle_up( short3  cur, short3  next, uint c );
16101short4      __ovld __conv intel_sub_group_shuffle_up( short4  cur, short4  next, uint c );
16102short8      __ovld __conv intel_sub_group_shuffle_up( short8  cur, short8  next, uint c );
16103short16     __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c );
16104
16105ushort      __ovld __conv intel_sub_group_shuffle_up( ushort   cur, ushort   next, uint c );
16106ushort2     __ovld __conv intel_sub_group_shuffle_up( ushort2  cur, ushort2  next, uint c );
16107ushort3     __ovld __conv intel_sub_group_shuffle_up( ushort3  cur, ushort3  next, uint c );
16108ushort4     __ovld __conv intel_sub_group_shuffle_up( ushort4  cur, ushort4  next, uint c );
16109ushort8     __ovld __conv intel_sub_group_shuffle_up( ushort8  cur, ushort8  next, uint c );
16110ushort16    __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c );
16111
16112short       __ovld __conv intel_sub_group_shuffle_xor( short   x, uint c );
16113short2      __ovld __conv intel_sub_group_shuffle_xor( short2  x, uint c );
16114short3      __ovld __conv intel_sub_group_shuffle_xor( short3  x, uint c );
16115short4      __ovld __conv intel_sub_group_shuffle_xor( short4  x, uint c );
16116short8      __ovld __conv intel_sub_group_shuffle_xor( short8  x, uint c );
16117short16     __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c );
16118
16119ushort      __ovld __conv intel_sub_group_shuffle_xor( ushort   x, uint c );
16120ushort2     __ovld __conv intel_sub_group_shuffle_xor( ushort2  x, uint c );
16121ushort3     __ovld __conv intel_sub_group_shuffle_xor( ushort3  x, uint c );
16122ushort4     __ovld __conv intel_sub_group_shuffle_xor( ushort4  x, uint c );
16123ushort8     __ovld __conv intel_sub_group_shuffle_xor( ushort8  x, uint c );
16124ushort16    __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c );
16125
16126short       __ovld __conv intel_sub_group_reduce_add( short   x );
16127ushort      __ovld __conv intel_sub_group_reduce_add( ushort  x );
16128short       __ovld __conv intel_sub_group_reduce_min( short   x );
16129ushort      __ovld __conv intel_sub_group_reduce_min( ushort  x );
16130short       __ovld __conv intel_sub_group_reduce_max( short   x );
16131ushort      __ovld __conv intel_sub_group_reduce_max( ushort  x );
16132
16133short       __ovld __conv intel_sub_group_scan_exclusive_add( short   x );
16134ushort      __ovld __conv intel_sub_group_scan_exclusive_add( ushort  x );
16135short       __ovld __conv intel_sub_group_scan_exclusive_min( short   x );
16136ushort      __ovld __conv intel_sub_group_scan_exclusive_min( ushort  x );
16137short       __ovld __conv intel_sub_group_scan_exclusive_max( short   x );
16138ushort      __ovld __conv intel_sub_group_scan_exclusive_max( ushort  x );
16139
16140short       __ovld __conv intel_sub_group_scan_inclusive_add( short   x );
16141ushort      __ovld __conv intel_sub_group_scan_inclusive_add( ushort  x );
16142short       __ovld __conv intel_sub_group_scan_inclusive_min( short   x );
16143ushort      __ovld __conv intel_sub_group_scan_inclusive_min( ushort  x );
16144short       __ovld __conv intel_sub_group_scan_inclusive_max( short   x );
16145ushort      __ovld __conv intel_sub_group_scan_inclusive_max( ushort  x );
16146
16147uint       __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
16148uint2      __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
16149uint4      __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
16150uint8      __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
16151
16152#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16153uint       __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
16154uint2      __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
16155uint4      __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
16156uint8      __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
16157#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16158
16159uint       __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
16160uint2      __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
16161uint4      __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
16162uint8      __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
16163
16164void       __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
16165void       __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
16166void       __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
16167void       __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
16168
16169#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16170void       __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
16171void       __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
16172void       __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
16173void       __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
16174#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16175
16176void       __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
16177void       __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
16178void       __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
16179void       __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
16180
16181ushort      __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
16182ushort2     __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
16183ushort4     __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
16184ushort8     __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
16185
16186#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16187ushort      __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
16188ushort2     __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
16189ushort4     __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
16190ushort8     __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
16191#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16192
16193ushort      __ovld __conv intel_sub_group_block_read_us(  const __global ushort* p );
16194ushort2     __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
16195ushort4     __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
16196ushort8     __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
16197
16198void        __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort  data);
16199void        __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
16200void        __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
16201void        __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
16202
16203#if (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16204void        __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort  data);
16205void        __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
16206void        __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
16207void        __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
16208#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16209
16210void        __ovld __conv intel_sub_group_block_write_us(  __global ushort* p, ushort  data );
16211void        __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
16212void        __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
16213void        __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
16214#endif // cl_intel_subgroups_short
16215
16216#ifdef cl_intel_device_side_avc_motion_estimation
16217#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
16218
16219#define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0
16220#define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1
16221#define CLK_AVC_ME_MAJOR_8x16_INTEL 0x2
16222#define CLK_AVC_ME_MAJOR_8x8_INTEL 0x3
16223
16224#define CLK_AVC_ME_MINOR_8x8_INTEL 0x0
16225#define CLK_AVC_ME_MINOR_8x4_INTEL 0x1
16226#define CLK_AVC_ME_MINOR_4x8_INTEL 0x2
16227#define CLK_AVC_ME_MINOR_4x4_INTEL 0x3
16228
16229#define CLK_AVC_ME_MAJOR_FORWARD_INTEL 0x0
16230#define CLK_AVC_ME_MAJOR_BACKWARD_INTEL 0x1
16231#define CLK_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2
16232
16233#define CLK_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0
16234#define CLK_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E
16235#define CLK_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D
16236#define CLK_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B
16237#define CLK_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77
16238#define CLK_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F
16239#define CLK_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F
16240#define CLK_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F
16241
16242#define CLK_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0
16243#define CLK_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1
16244#define CLK_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2
16245
16246#define CLK_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0
16247#define CLK_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1
16248#define CLK_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2
16249#define CLK_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3
16250#define CLK_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4
16251#define CLK_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5
16252#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6
16253#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7
16254#define CLK_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8
16255
16256#define CLK_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
16257#define CLK_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2
16258
16259#define CLK_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
16260#define CLK_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
16261#define CLK_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3
16262
16263#define CLK_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0
16264#define CLK_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1
16265#define CLK_AVC_ME_COST_PRECISION_PEL_INTEL 0x2
16266#define CLK_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3
16267
16268#define CLK_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10
16269#define CLK_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15
16270#define CLK_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20
16271#define CLK_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B
16272#define CLK_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30
16273
16274#define CLK_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0
16275#define CLK_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2
16276#define CLK_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4
16277#define CLK_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8
16278
16279#define CLK_AVC_ME_INTRA_16x16_INTEL 0x0
16280#define CLK_AVC_ME_INTRA_8x8_INTEL 0x1
16281#define CLK_AVC_ME_INTRA_4x4_INTEL 0x2
16282
16283#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0
16284#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000
16285
16286#define CLK_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24)
16287#define CLK_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24)
16288#define CLK_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24)
16289#define CLK_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24)
16290#define CLK_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24)
16291#define CLK_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24)
16292#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24)
16293#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24)
16294#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26)
16295#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26)
16296#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28)
16297#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28)
16298#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30)
16299#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30)
16300
16301#define CLK_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00
16302#define CLK_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80
16303
16304#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_ALL_INTEL 0x0
16305#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6
16306#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5
16307#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3
16308
16309#define CLK_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60
16310#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10
16311#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8
16312#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4
16313
16314#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
16315#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
16316#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
16317#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
16318#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
16319#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
16320#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
16321#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
16322#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
16323#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
16324#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
16325#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
16326#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
16327#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
16328
16329#define CLK_AVC_ME_FRAME_FORWARD_INTEL 0x1
16330#define CLK_AVC_ME_FRAME_BACKWARD_INTEL 0x2
16331#define CLK_AVC_ME_FRAME_DUAL_INTEL 0x3
16332
16333#define CLK_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
16334#define CLK_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
16335
16336#define CLK_AVC_ME_INITIALIZE_INTEL 0x0
16337
16338#define CLK_AVC_IME_PAYLOAD_INITIALIZE_INTEL 0x0
16339#define CLK_AVC_REF_PAYLOAD_INITIALIZE_INTEL 0x0
16340#define CLK_AVC_SIC_PAYLOAD_INITIALIZE_INTEL 0x0
16341
16342#define CLK_AVC_IME_RESULT_INITIALIZE_INTEL 0x0
16343#define CLK_AVC_REF_RESULT_INITIALIZE_INTEL 0x0
16344#define CLK_AVC_SIC_RESULT_INITIALIZE_INTEL 0x0
16345
16346#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
16347#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
16348#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
16349#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
16350
16351// MCE built-in functions
16352uchar __ovld
16353intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
16354    uchar slice_type, uchar qp);
16355ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
16356    uchar slice_type, uchar qp);
16357uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
16358    uchar slice_type, uchar qp);
16359uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
16360    uchar slice_type, uchar qp);
16361uint2 __ovld
16362intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
16363    uchar slice_type, uchar qp);
16364uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
16365    uchar slice_type, uchar qp);
16366
16367uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
16368uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
16369uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
16370uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
16371uchar __ovld
16372intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
16373
16374intel_sub_group_avc_mce_payload_t __ovld
16375intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
16376    uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
16377intel_sub_group_avc_mce_payload_t __ovld
16378intel_sub_group_avc_mce_set_inter_shape_penalty(
16379    ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
16380intel_sub_group_avc_mce_payload_t __ovld
16381intel_sub_group_avc_mce_set_inter_direction_penalty(
16382    uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
16383intel_sub_group_avc_mce_payload_t __ovld
16384intel_sub_group_avc_mce_set_motion_vector_cost_function(
16385    ulong packed_cost_center_delta, uint2 packed_cost_table,
16386    uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
16387intel_sub_group_avc_mce_payload_t __ovld
16388intel_sub_group_avc_mce_set_ac_only_haar(
16389    intel_sub_group_avc_mce_payload_t payload);
16390intel_sub_group_avc_mce_payload_t __ovld
16391intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
16392    uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16393intel_sub_group_avc_mce_payload_t __ovld
16394intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
16395    uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16396intel_sub_group_avc_mce_payload_t __ovld
16397intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
16398    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16399    intel_sub_group_avc_mce_payload_t payload);
16400
16401ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
16402    intel_sub_group_avc_mce_result_t result);
16403ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
16404    intel_sub_group_avc_mce_result_t result);
16405ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
16406    intel_sub_group_avc_mce_result_t result);
16407uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
16408    intel_sub_group_avc_mce_result_t result);
16409uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
16410    intel_sub_group_avc_mce_result_t result);
16411uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
16412    intel_sub_group_avc_mce_result_t result);
16413uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
16414    intel_sub_group_avc_mce_result_t result);
16415uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
16416    intel_sub_group_avc_mce_result_t result);
16417uchar __ovld
16418intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
16419    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16420    intel_sub_group_avc_mce_result_t result);
16421
16422// IME built-in functions
16423intel_sub_group_avc_ime_payload_t __ovld
16424intel_sub_group_avc_ime_initialize(
16425    ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
16426intel_sub_group_avc_ime_payload_t __ovld
16427intel_sub_group_avc_ime_set_single_reference(
16428    short2 ref_offset, uchar search_window_config,
16429    intel_sub_group_avc_ime_payload_t payload);
16430intel_sub_group_avc_ime_payload_t __ovld
16431intel_sub_group_avc_ime_set_dual_reference(
16432    short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
16433    intel_sub_group_avc_ime_payload_t payload);
16434intel_sub_group_avc_ime_payload_t __ovld
16435intel_sub_group_avc_ime_set_max_motion_vector_count(
16436    uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
16437intel_sub_group_avc_ime_payload_t __ovld
16438intel_sub_group_avc_ime_set_unidirectional_mix_disable(
16439    intel_sub_group_avc_ime_payload_t payload);
16440intel_sub_group_avc_ime_payload_t __ovld
16441intel_sub_group_avc_ime_set_early_search_termination_threshold(
16442    uchar threshold, intel_sub_group_avc_ime_payload_t payload);
16443intel_sub_group_avc_ime_payload_t __ovld
16444intel_sub_group_avc_ime_set_weighted_sad(
16445    uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
16446
16447__attribute__((deprecated("If you use the latest Intel driver, please use "
16448                          "intel_sub_group_avc_ime_ref_window_size instead",
16449                          "intel_sub_group_avc_ime_ref_window_size")))
16450ushort2 __ovld
16451intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
16452ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
16453    uchar search_window_config, char dual_ref);
16454short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
16455    short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
16456    ushort2 image_size);
16457
16458intel_sub_group_avc_ime_result_t __ovld
16459intel_sub_group_avc_ime_evaluate_with_single_reference(
16460    read_only image2d_t src_image, read_only image2d_t ref_image,
16461    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16462intel_sub_group_avc_ime_result_t __ovld
16463intel_sub_group_avc_ime_evaluate_with_dual_reference(
16464    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16465    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16466    intel_sub_group_avc_ime_payload_t payload);
16467intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16468intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
16469    read_only image2d_t src_image, read_only image2d_t ref_image,
16470    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16471intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16472intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
16473    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16474    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16475    intel_sub_group_avc_ime_payload_t payload);
16476intel_sub_group_avc_ime_result_t __ovld
16477intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
16478    read_only image2d_t src_image, read_only image2d_t ref_image,
16479    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16480    intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16481intel_sub_group_avc_ime_result_t __ovld
16482intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
16483    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16484    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16485    intel_sub_group_avc_ime_payload_t payload,
16486    intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16487intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16488intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
16489    read_only image2d_t src_image, read_only image2d_t ref_image,
16490    sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16491    intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16492intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16493intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
16494    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16495    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16496    intel_sub_group_avc_ime_payload_t payload,
16497    intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16498
16499intel_sub_group_avc_ime_single_reference_streamin_t __ovld
16500intel_sub_group_avc_ime_get_single_reference_streamin(
16501    intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16502intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
16503intel_sub_group_avc_ime_get_dual_reference_streamin(
16504    intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16505intel_sub_group_avc_ime_result_t __ovld
16506intel_sub_group_avc_ime_strip_single_reference_streamout(
16507    intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16508intel_sub_group_avc_ime_result_t __ovld
16509intel_sub_group_avc_ime_strip_dual_reference_streamout(
16510    intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16511
16512uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16513    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16514    uchar major_shape);
16515ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16516    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16517    uchar major_shape);
16518uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16519    intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16520    uchar major_shape);
16521uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16522    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16523    uchar major_shape, uchar direction);
16524ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16525    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16526    uchar major_shape, uchar direction);
16527uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16528    intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16529    uchar major_shape, uchar direction);
16530
16531uchar __ovld intel_sub_group_avc_ime_get_border_reached(
16532    uchar image_select, intel_sub_group_avc_ime_result_t result);
16533uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
16534    intel_sub_group_avc_ime_result_t result);
16535uchar __ovld
16536intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
16537    intel_sub_group_avc_ime_result_t result);
16538uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
16539    intel_sub_group_avc_ime_result_t result);
16540ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
16541    intel_sub_group_avc_ime_result_t result);
16542
16543// REF built-in functions
16544intel_sub_group_avc_ref_payload_t __ovld
16545intel_sub_group_avc_fme_initialize(
16546    ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16547    uchar minor_shapes, uchar directions, uchar pixel_resolution,
16548    uchar sad_adjustment);
16549intel_sub_group_avc_ref_payload_t __ovld
16550intel_sub_group_avc_bme_initialize(
16551    ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16552    uchar minor_shapes, uchar directions, uchar pixel_resolution,
16553    uchar bidirectional_weight, uchar sad_adjustment);
16554
16555intel_sub_group_avc_ref_payload_t __ovld
16556intel_sub_group_avc_ref_set_bidirectional_mix_disable(
16557    intel_sub_group_avc_ref_payload_t payload);
16558intel_sub_group_avc_ref_payload_t __ovld
16559intel_sub_group_avc_ref_set_bilinear_filter_enable(
16560    intel_sub_group_avc_ref_payload_t payload);
16561
16562intel_sub_group_avc_ref_result_t __ovld
16563intel_sub_group_avc_ref_evaluate_with_single_reference(
16564    read_only image2d_t src_image, read_only image2d_t ref_image,
16565    sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16566intel_sub_group_avc_ref_result_t __ovld
16567intel_sub_group_avc_ref_evaluate_with_dual_reference(
16568    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16569    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16570    intel_sub_group_avc_ref_payload_t payload);
16571intel_sub_group_avc_ref_result_t __ovld
16572intel_sub_group_avc_ref_evaluate_with_multi_reference(
16573    read_only image2d_t src_image, uint packed_reference_ids,
16574    sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16575intel_sub_group_avc_ref_result_t __ovld
16576intel_sub_group_avc_ref_evaluate_with_multi_reference(
16577    read_only image2d_t src_image, uint packed_reference_ids,
16578    uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16579    intel_sub_group_avc_ref_payload_t payload);
16580
16581// SIC built-in functions
16582intel_sub_group_avc_sic_payload_t __ovld
16583intel_sub_group_avc_sic_initialize(
16584    ushort2 src_coord);
16585intel_sub_group_avc_sic_payload_t __ovld
16586intel_sub_group_avc_sic_configure_skc(
16587    uint skip_block_partition_type, uint skip_motion_vector_mask,
16588    ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
16589    intel_sub_group_avc_sic_payload_t payload);
16590intel_sub_group_avc_sic_payload_t __ovld
16591intel_sub_group_avc_sic_configure_ipe(
16592    uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16593    uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16594    uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16595    uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
16596intel_sub_group_avc_sic_payload_t __ovld
16597intel_sub_group_avc_sic_configure_ipe(
16598    uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16599    uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16600    uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16601    ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
16602    ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
16603    intel_sub_group_avc_sic_payload_t payload);
16604uint __ovld
16605intel_sub_group_avc_sic_get_motion_vector_mask(
16606    uint skip_block_partition_type, uchar direction);
16607
16608intel_sub_group_avc_sic_payload_t __ovld
16609intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
16610    uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16611intel_sub_group_avc_sic_payload_t __ovld
16612intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
16613    uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
16614    uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
16615intel_sub_group_avc_sic_payload_t __ovld
16616intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
16617    uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
16618
16619intel_sub_group_avc_sic_payload_t __ovld
16620intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
16621    intel_sub_group_avc_sic_payload_t payload);
16622intel_sub_group_avc_sic_payload_t __ovld
16623intel_sub_group_avc_sic_set_skc_forward_transform_enable(
16624    ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
16625intel_sub_group_avc_sic_payload_t __ovld
16626intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
16627    uchar block_based_skip_type,
16628    intel_sub_group_avc_sic_payload_t payload);
16629
16630intel_sub_group_avc_sic_result_t __ovld
16631intel_sub_group_avc_sic_evaluate_ipe(
16632    read_only image2d_t src_image, sampler_t vme_media_sampler,
16633    intel_sub_group_avc_sic_payload_t payload);
16634intel_sub_group_avc_sic_result_t __ovld
16635intel_sub_group_avc_sic_evaluate_with_single_reference(
16636    read_only image2d_t src_image, read_only image2d_t ref_image,
16637    sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16638intel_sub_group_avc_sic_result_t __ovld
16639intel_sub_group_avc_sic_evaluate_with_dual_reference(
16640    read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16641    read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16642    intel_sub_group_avc_sic_payload_t payload);
16643intel_sub_group_avc_sic_result_t __ovld
16644intel_sub_group_avc_sic_evaluate_with_multi_reference(
16645    read_only image2d_t src_image, uint packed_reference_ids,
16646    sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16647intel_sub_group_avc_sic_result_t __ovld
16648intel_sub_group_avc_sic_evaluate_with_multi_reference(
16649    read_only image2d_t src_image, uint packed_reference_ids,
16650    uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16651    intel_sub_group_avc_sic_payload_t payload);
16652
16653uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
16654    intel_sub_group_avc_sic_result_t result);
16655ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
16656    intel_sub_group_avc_sic_result_t result);
16657ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
16658    intel_sub_group_avc_sic_result_t result);
16659ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
16660    intel_sub_group_avc_sic_result_t result);
16661uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
16662    intel_sub_group_avc_sic_result_t result);
16663uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
16664    intel_sub_group_avc_sic_result_t result);
16665ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
16666    intel_sub_group_avc_sic_result_t result);
16667ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
16668    intel_sub_group_avc_sic_result_t result);
16669
16670// Wrappers
16671intel_sub_group_avc_ime_payload_t __ovld
16672intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
16673    uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
16674intel_sub_group_avc_ref_payload_t __ovld
16675intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
16676    uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
16677intel_sub_group_avc_sic_payload_t __ovld
16678intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
16679    uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
16680
16681intel_sub_group_avc_ime_payload_t __ovld
16682intel_sub_group_avc_ime_set_inter_shape_penalty(
16683    ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
16684intel_sub_group_avc_ref_payload_t __ovld
16685intel_sub_group_avc_ref_set_inter_shape_penalty(
16686    ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
16687intel_sub_group_avc_sic_payload_t __ovld
16688intel_sub_group_avc_sic_set_inter_shape_penalty(
16689    ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16690
16691intel_sub_group_avc_ime_payload_t __ovld
16692intel_sub_group_avc_ime_set_inter_direction_penalty(
16693    uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
16694intel_sub_group_avc_ref_payload_t __ovld
16695intel_sub_group_avc_ref_set_inter_direction_penalty(
16696    uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
16697intel_sub_group_avc_sic_payload_t __ovld
16698intel_sub_group_avc_sic_set_inter_direction_penalty(
16699    uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
16700
16701intel_sub_group_avc_ime_payload_t __ovld
16702intel_sub_group_avc_ime_set_motion_vector_cost_function(
16703    ulong packed_cost_center_delta, uint2 packed_cost_table,
16704    uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
16705intel_sub_group_avc_ref_payload_t __ovld
16706intel_sub_group_avc_ref_set_motion_vector_cost_function(
16707    ulong packed_cost_center_delta, uint2 packed_cost_table,
16708    uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
16709intel_sub_group_avc_sic_payload_t __ovld
16710intel_sub_group_avc_sic_set_motion_vector_cost_function(
16711    ulong packed_cost_center_delta, uint2 packed_cost_table,
16712    uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
16713
16714intel_sub_group_avc_ime_payload_t __ovld
16715intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
16716    uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16717intel_sub_group_avc_ref_payload_t __ovld
16718intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
16719    uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16720intel_sub_group_avc_sic_payload_t __ovld
16721intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
16722    uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16723
16724intel_sub_group_avc_ime_payload_t __ovld
16725intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
16726    uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16727intel_sub_group_avc_ref_payload_t __ovld
16728intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
16729    uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16730intel_sub_group_avc_sic_payload_t __ovld
16731intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
16732    uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16733intel_sub_group_avc_ime_payload_t __ovld
16734intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
16735    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16736    intel_sub_group_avc_ime_payload_t payload);
16737intel_sub_group_avc_ref_payload_t __ovld
16738intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
16739    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16740    intel_sub_group_avc_ref_payload_t payload);
16741intel_sub_group_avc_sic_payload_t __ovld
16742intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
16743    uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16744    intel_sub_group_avc_sic_payload_t payload);
16745
16746intel_sub_group_avc_ime_payload_t __ovld
16747intel_sub_group_avc_ime_set_ac_only_haar(
16748    intel_sub_group_avc_ime_payload_t payload);
16749intel_sub_group_avc_ref_payload_t __ovld
16750intel_sub_group_avc_ref_set_ac_only_haar(
16751    intel_sub_group_avc_ref_payload_t payload);
16752intel_sub_group_avc_sic_payload_t __ovld
16753intel_sub_group_avc_sic_set_ac_only_haar(
16754    intel_sub_group_avc_sic_payload_t payload);
16755
16756ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
16757    intel_sub_group_avc_ime_result_t result);
16758ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
16759    intel_sub_group_avc_ref_result_t result);
16760
16761ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
16762    intel_sub_group_avc_ime_result_t result);
16763ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
16764    intel_sub_group_avc_ref_result_t result);
16765ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
16766    intel_sub_group_avc_sic_result_t result);
16767
16768ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
16769    intel_sub_group_avc_ime_result_t result);
16770ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
16771    intel_sub_group_avc_ref_result_t result);
16772
16773uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
16774    intel_sub_group_avc_ime_result_t result);
16775uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
16776    intel_sub_group_avc_ref_result_t result);
16777uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
16778    intel_sub_group_avc_ime_result_t result);
16779uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
16780    intel_sub_group_avc_ref_result_t result);
16781
16782uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
16783    intel_sub_group_avc_ime_result_t result);
16784uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
16785    intel_sub_group_avc_ref_result_t result);
16786
16787uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
16788    intel_sub_group_avc_ime_result_t result);
16789uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
16790    intel_sub_group_avc_ref_result_t result);
16791
16792uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
16793    intel_sub_group_avc_ime_result_t result);
16794uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
16795    intel_sub_group_avc_ref_result_t result);
16796
16797uchar __ovld
16798intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
16799    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16800    intel_sub_group_avc_ime_result_t result);
16801uchar __ovld
16802intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
16803    uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16804    intel_sub_group_avc_ref_result_t result);
16805
16806// Type conversion functions
16807intel_sub_group_avc_mce_payload_t __ovld
16808intel_sub_group_avc_ime_convert_to_mce_payload(
16809    intel_sub_group_avc_ime_payload_t payload);
16810intel_sub_group_avc_ime_payload_t __ovld
16811intel_sub_group_avc_mce_convert_to_ime_payload(
16812    intel_sub_group_avc_mce_payload_t payload);
16813intel_sub_group_avc_mce_payload_t __ovld
16814intel_sub_group_avc_ref_convert_to_mce_payload(
16815    intel_sub_group_avc_ref_payload_t payload);
16816intel_sub_group_avc_ref_payload_t __ovld
16817intel_sub_group_avc_mce_convert_to_ref_payload(
16818    intel_sub_group_avc_mce_payload_t payload);
16819intel_sub_group_avc_mce_payload_t __ovld
16820intel_sub_group_avc_sic_convert_to_mce_payload(
16821    intel_sub_group_avc_sic_payload_t payload);
16822intel_sub_group_avc_sic_payload_t __ovld
16823intel_sub_group_avc_mce_convert_to_sic_payload(
16824    intel_sub_group_avc_mce_payload_t payload);
16825
16826intel_sub_group_avc_mce_result_t __ovld
16827intel_sub_group_avc_ime_convert_to_mce_result(
16828    intel_sub_group_avc_ime_result_t result);
16829intel_sub_group_avc_ime_result_t __ovld
16830intel_sub_group_avc_mce_convert_to_ime_result(
16831    intel_sub_group_avc_mce_result_t result);
16832intel_sub_group_avc_mce_result_t __ovld
16833intel_sub_group_avc_ref_convert_to_mce_result(
16834    intel_sub_group_avc_ref_result_t result);
16835intel_sub_group_avc_ref_result_t __ovld
16836intel_sub_group_avc_mce_convert_to_ref_result(
16837    intel_sub_group_avc_mce_result_t result);
16838intel_sub_group_avc_mce_result_t __ovld
16839intel_sub_group_avc_sic_convert_to_mce_result(
16840    intel_sub_group_avc_sic_result_t result);
16841intel_sub_group_avc_sic_result_t __ovld
16842intel_sub_group_avc_mce_convert_to_sic_result(
16843    intel_sub_group_avc_mce_result_t result);
16844#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
16845#endif // cl_intel_device_side_avc_motion_estimation
16846
16847#ifdef cl_amd_media_ops
16848uint __ovld amd_bitalign(uint a, uint b, uint c);
16849uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
16850uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
16851uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
16852uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
16853uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
16854
16855uint __ovld amd_bytealign(uint a, uint b, uint c);
16856uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
16857uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
16858uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
16859uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
16860uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
16861
16862uint __ovld amd_lerp(uint a, uint b, uint c);
16863uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
16864uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
16865uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
16866uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
16867uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
16868
16869uint __ovld amd_pack(float4 v);
16870
16871uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
16872
16873uint __ovld amd_sadhi(uint a, uint b, uint c);
16874uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
16875uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
16876uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
16877uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
16878uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
16879
16880uint __ovld amd_sad(uint a, uint b, uint c);
16881uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
16882uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
16883uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
16884uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
16885uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
16886
16887float __ovld amd_unpack0(uint a);
16888float2 __ovld amd_unpack0(uint2 a);
16889float3 __ovld amd_unpack0(uint3 a);
16890float4 __ovld amd_unpack0(uint4 a);
16891float8 __ovld amd_unpack0(uint8 a);
16892float16 __ovld amd_unpack0(uint16 a);
16893
16894float __ovld amd_unpack1(uint a);
16895float2 __ovld amd_unpack1(uint2 a);
16896float3 __ovld amd_unpack1(uint3 a);
16897float4 __ovld amd_unpack1(uint4 a);
16898float8 __ovld amd_unpack1(uint8 a);
16899float16 __ovld amd_unpack1(uint16 a);
16900
16901float __ovld amd_unpack2(uint a);
16902float2 __ovld amd_unpack2(uint2 a);
16903float3 __ovld amd_unpack2(uint3 a);
16904float4 __ovld amd_unpack2(uint4 a);
16905float8 __ovld amd_unpack2(uint8 a);
16906float16 __ovld amd_unpack2(uint16 a);
16907
16908float __ovld amd_unpack3(uint a);
16909float2 __ovld amd_unpack3(uint2 a);
16910float3 __ovld amd_unpack3(uint3 a);
16911float4 __ovld amd_unpack3(uint4 a);
16912float8 __ovld amd_unpack3(uint8 a);
16913float16 __ovld amd_unpack3(uint16 a);
16914#endif // cl_amd_media_ops
16915
16916#ifdef cl_amd_media_ops2
16917int __ovld amd_bfe(int src0, uint src1, uint src2);
16918int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
16919int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
16920int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
16921int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
16922int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
16923
16924uint __ovld amd_bfe(uint src0, uint src1, uint src2);
16925uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
16926uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
16927uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
16928uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
16929uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
16930
16931uint __ovld amd_bfm(uint src0, uint src1);
16932uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
16933uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
16934uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
16935uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
16936uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
16937
16938float __ovld amd_max3(float src0, float src1, float src2);
16939float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
16940float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
16941float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
16942float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
16943float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
16944
16945int __ovld amd_max3(int src0, int src1, int src2);
16946int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
16947int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
16948int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
16949int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
16950int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
16951
16952uint __ovld amd_max3(uint src0, uint src1, uint src2);
16953uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
16954uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
16955uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
16956uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
16957uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
16958
16959float __ovld amd_median3(float src0, float src1, float src2);
16960float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
16961float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
16962float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
16963float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
16964float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
16965
16966int __ovld amd_median3(int src0, int src1, int src2);
16967int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
16968int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
16969int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
16970int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
16971int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
16972
16973uint __ovld amd_median3(uint src0, uint src1, uint src2);
16974uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
16975uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
16976uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
16977uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
16978uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
16979
16980float __ovld amd_min3(float src0, float src1, float src);
16981float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
16982float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
16983float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
16984float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
16985float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
16986
16987int __ovld amd_min3(int src0, int src1, int src2);
16988int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
16989int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
16990int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
16991int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
16992int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
16993
16994uint __ovld amd_min3(uint src0, uint src1, uint src2);
16995uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
16996uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
16997uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
16998uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
16999uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
17000
17001ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
17002ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
17003ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
17004ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
17005ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
17006ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
17007
17008ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
17009ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
17010ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
17011ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
17012ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
17013ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
17014
17015uint __ovld amd_msad(uint src0, uint src1, uint src2);
17016uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
17017uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
17018uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
17019uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
17020uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
17021
17022uint __ovld amd_sadd(uint src0, uint src1, uint src2);
17023uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
17024uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
17025uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
17026uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
17027uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
17028
17029uint __ovld amd_sadw(uint src0, uint src1, uint src2);
17030uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
17031uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
17032uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
17033uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
17034uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17035#endif // cl_amd_media_ops2
17036
17037// Disable any extensions we may have enabled previously.
17038#pragma OPENCL EXTENSION all : disable
17039
17040#undef __cnfn
17041#undef __ovld
17042#endif //_OPENCL_H_
17043