blob: 3bcb9a3af160f1d4268814974547d9c999bf3e32 [file] [log] [blame]
Yaxun Liue8f49b92016-05-30 02:22:28 +00001//===--- 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
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000019#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
Yaxun Liue8f49b92016-05-30 02:22:28 +000025#define __ovld __attribute__((overloadable))
Yaxun Liu7d07ae72016-11-01 18:45:32 +000026#define __conv __attribute__((convergent))
Yaxun Liue8f49b92016-05-30 02:22:28 +000027
28// Optimizations
Alexey Badere5b3aeb2016-06-29 12:30:26 +000029#define __purefn __attribute__((pure))
Yaxun Liue8f49b92016-05-30 02:22:28 +000030#define __cnfn __attribute__((const))
31
32// built-in scalar data types:
33
34/**
35 * An unsigned 8-bit integer.
36 */
37typedef unsigned char uchar;
38
39/**
40 * An unsigned 16-bit integer.
41 */
42typedef unsigned short ushort;
43
44/**
45 * An unsigned 32-bit integer.
46 */
47typedef unsigned int uint;
48
49/**
50 * An unsigned 64-bit integer.
51 */
52typedef unsigned long ulong;
53
54/**
55 * The unsigned integer type of the result of the sizeof operator. This
56 * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS
57 * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if
58 * CL_DEVICE_ADDRESS_BITS is 64-bits.
59 */
60typedef __SIZE_TYPE__ size_t;
61
62/**
63 * A signed integer type that is the result of subtracting two pointers.
64 * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS
65 * defined in table 4.3 is 32-bits and is a 64-bit signed integer if
66 * CL_DEVICE_ADDRESS_BITS is 64-bits.
67 */
68typedef __PTRDIFF_TYPE__ ptrdiff_t;
69
70/**
71* A signed integer type with the property that any valid pointer to
72* void can be converted to this type, then converted back to pointer
73* to void, and the result will compare equal to the original pointer.
74*/
75typedef __INTPTR_TYPE__ intptr_t;
76
77/**
78* An unsigned integer type with the property that any valid pointer to
79* void can be converted to this type, then converted back to pointer
80* to void, and the result will compare equal to the original pointer.
81*/
82typedef __UINTPTR_TYPE__ uintptr_t;
83
84// built-in vector data types:
85typedef char char2 __attribute__((ext_vector_type(2)));
86typedef char char3 __attribute__((ext_vector_type(3)));
87typedef char char4 __attribute__((ext_vector_type(4)));
88typedef char char8 __attribute__((ext_vector_type(8)));
89typedef char char16 __attribute__((ext_vector_type(16)));
90typedef uchar uchar2 __attribute__((ext_vector_type(2)));
91typedef uchar uchar3 __attribute__((ext_vector_type(3)));
92typedef uchar uchar4 __attribute__((ext_vector_type(4)));
93typedef uchar uchar8 __attribute__((ext_vector_type(8)));
94typedef uchar uchar16 __attribute__((ext_vector_type(16)));
95typedef short short2 __attribute__((ext_vector_type(2)));
96typedef short short3 __attribute__((ext_vector_type(3)));
97typedef short short4 __attribute__((ext_vector_type(4)));
98typedef short short8 __attribute__((ext_vector_type(8)));
99typedef short short16 __attribute__((ext_vector_type(16)));
100typedef ushort ushort2 __attribute__((ext_vector_type(2)));
101typedef ushort ushort3 __attribute__((ext_vector_type(3)));
102typedef ushort ushort4 __attribute__((ext_vector_type(4)));
103typedef ushort ushort8 __attribute__((ext_vector_type(8)));
104typedef ushort ushort16 __attribute__((ext_vector_type(16)));
105typedef int int2 __attribute__((ext_vector_type(2)));
106typedef int int3 __attribute__((ext_vector_type(3)));
107typedef int int4 __attribute__((ext_vector_type(4)));
108typedef int int8 __attribute__((ext_vector_type(8)));
109typedef int int16 __attribute__((ext_vector_type(16)));
110typedef uint uint2 __attribute__((ext_vector_type(2)));
111typedef uint uint3 __attribute__((ext_vector_type(3)));
112typedef uint uint4 __attribute__((ext_vector_type(4)));
113typedef uint uint8 __attribute__((ext_vector_type(8)));
114typedef uint uint16 __attribute__((ext_vector_type(16)));
115typedef long long2 __attribute__((ext_vector_type(2)));
116typedef long long3 __attribute__((ext_vector_type(3)));
117typedef long long4 __attribute__((ext_vector_type(4)));
118typedef long long8 __attribute__((ext_vector_type(8)));
119typedef long long16 __attribute__((ext_vector_type(16)));
120typedef ulong ulong2 __attribute__((ext_vector_type(2)));
121typedef ulong ulong3 __attribute__((ext_vector_type(3)));
122typedef ulong ulong4 __attribute__((ext_vector_type(4)));
123typedef ulong ulong8 __attribute__((ext_vector_type(8)));
124typedef ulong ulong16 __attribute__((ext_vector_type(16)));
125typedef float float2 __attribute__((ext_vector_type(2)));
126typedef float float3 __attribute__((ext_vector_type(3)));
127typedef float float4 __attribute__((ext_vector_type(4)));
128typedef float float8 __attribute__((ext_vector_type(8)));
129typedef float float16 __attribute__((ext_vector_type(16)));
130#ifdef cl_khr_fp16
131#pragma OPENCL EXTENSION cl_khr_fp16 : enable
132typedef half half2 __attribute__((ext_vector_type(2)));
133typedef half half3 __attribute__((ext_vector_type(3)));
134typedef half half4 __attribute__((ext_vector_type(4)));
135typedef half half8 __attribute__((ext_vector_type(8)));
136typedef half half16 __attribute__((ext_vector_type(16)));
137#endif
138#ifdef cl_khr_fp64
139#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
140#pragma OPENCL EXTENSION cl_khr_fp64 : enable
141#endif
142typedef double double2 __attribute__((ext_vector_type(2)));
143typedef double double3 __attribute__((ext_vector_type(3)));
144typedef double double4 __attribute__((ext_vector_type(4)));
145typedef double double8 __attribute__((ext_vector_type(8)));
146typedef double double16 __attribute__((ext_vector_type(16)));
147#endif
148
149#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
150#define NULL ((void*)0)
151#endif
152
153/**
154 * Value of maximum non-infinite single-precision floating-point
155 * number.
156 */
157#define MAXFLOAT 0x1.fffffep127f
158
159/**
160 * A positive float constant expression. HUGE_VALF evaluates
161 * to +infinity. Used as an error value returned by the built-in
162 * math functions.
163 */
164#define HUGE_VALF (__builtin_huge_valf())
165
166/**
167 * A positive double constant expression. HUGE_VAL evaluates
168 * to +infinity. Used as an error value returned by the built-in
169 * math functions.
170 */
171#define HUGE_VAL (__builtin_huge_val())
172
173/**
174 * A constant expression of type float representing positive or
175 * unsigned infinity.
176 */
177#define INFINITY (__builtin_inff())
178
179/**
180 * A constant expression of type float representing a quiet NaN.
181 */
182#define NAN as_float(INT_MAX)
183
184#define FP_ILOGB0 INT_MIN
185#define FP_ILOGBNAN INT_MAX
186
187#define FLT_DIG 6
188#define FLT_MANT_DIG 24
189#define FLT_MAX_10_EXP +38
190#define FLT_MAX_EXP +128
191#define FLT_MIN_10_EXP -37
192#define FLT_MIN_EXP -125
193#define FLT_RADIX 2
194#define FLT_MAX 0x1.fffffep127f
195#define FLT_MIN 0x1.0p-126f
196#define FLT_EPSILON 0x1.0p-23f
197
198#define M_E_F 2.71828182845904523536028747135266250f
199#define M_LOG2E_F 1.44269504088896340735992468100189214f
200#define M_LOG10E_F 0.434294481903251827651128918916605082f
201#define M_LN2_F 0.693147180559945309417232121458176568f
202#define M_LN10_F 2.30258509299404568401799145468436421f
203#define M_PI_F 3.14159265358979323846264338327950288f
204#define M_PI_2_F 1.57079632679489661923132169163975144f
205#define M_PI_4_F 0.785398163397448309615660845819875721f
206#define M_1_PI_F 0.318309886183790671537767526745028724f
207#define M_2_PI_F 0.636619772367581343075535053490057448f
208#define M_2_SQRTPI_F 1.12837916709551257389615890312154517f
209#define M_SQRT2_F 1.41421356237309504880168872420969808f
210#define M_SQRT1_2_F 0.707106781186547524400844362104849039f
211
212#define DBL_DIG 15
213#define DBL_MANT_DIG 53
214#define DBL_MAX_10_EXP +308
215#define DBL_MAX_EXP +1024
216#define DBL_MIN_10_EXP -307
217#define DBL_MIN_EXP -1021
218#define DBL_RADIX 2
219#define DBL_MAX 0x1.fffffffffffffp1023
220#define DBL_MIN 0x1.0p-1022
221#define DBL_EPSILON 0x1.0p-52
222
223#define M_E 0x1.5bf0a8b145769p+1
224#define M_LOG2E 0x1.71547652b82fep+0
225#define M_LOG10E 0x1.bcb7b1526e50ep-2
226#define M_LN2 0x1.62e42fefa39efp-1
227#define M_LN10 0x1.26bb1bbb55516p+1
228#define M_PI 0x1.921fb54442d18p+1
229#define M_PI_2 0x1.921fb54442d18p+0
230#define M_PI_4 0x1.921fb54442d18p-1
231#define M_1_PI 0x1.45f306dc9c883p-2
232#define M_2_PI 0x1.45f306dc9c883p-1
233#define M_2_SQRTPI 0x1.20dd750429b6dp+0
234#define M_SQRT2 0x1.6a09e667f3bcdp+0
235#define M_SQRT1_2 0x1.6a09e667f3bcdp-1
236
237#ifdef cl_khr_fp16
238
239#define HALF_DIG 3
240#define HALF_MANT_DIG 11
241#define HALF_MAX_10_EXP +4
242#define HALF_MAX_EXP +16
243#define HALF_MIN_10_EXP -4
244#define HALF_MIN_EXP -13
245#define HALF_RADIX 2
246#define HALF_MAX ((0x1.ffcp15h))
247#define HALF_MIN ((0x1.0p-14h))
248#define HALF_EPSILON ((0x1.0p-10h))
249
250#define M_E_H 2.71828182845904523536028747135266250h
251#define M_LOG2E_H 1.44269504088896340735992468100189214h
252#define M_LOG10E_H 0.434294481903251827651128918916605082h
253#define M_LN2_H 0.693147180559945309417232121458176568h
254#define M_LN10_H 2.30258509299404568401799145468436421h
255#define M_PI_H 3.14159265358979323846264338327950288h
256#define M_PI_2_H 1.57079632679489661923132169163975144h
257#define M_PI_4_H 0.785398163397448309615660845819875721h
258#define M_1_PI_H 0.318309886183790671537767526745028724h
259#define M_2_PI_H 0.636619772367581343075535053490057448h
260#define M_2_SQRTPI_H 1.12837916709551257389615890312154517h
261#define M_SQRT2_H 1.41421356237309504880168872420969808h
262#define M_SQRT1_2_H 0.707106781186547524400844362104849039h
263
264#endif //cl_khr_fp16
265
266#define CHAR_BIT 8
267#define SCHAR_MAX 127
268#define SCHAR_MIN (-128)
269#define UCHAR_MAX 255
270#define CHAR_MAX SCHAR_MAX
271#define CHAR_MIN SCHAR_MIN
272#define USHRT_MAX 65535
273#define SHRT_MAX 32767
274#define SHRT_MIN (-32768)
275#define UINT_MAX 0xffffffff
276#define INT_MAX 2147483647
277#define INT_MIN (-2147483647-1)
278#define ULONG_MAX 0xffffffffffffffffUL
279#define LONG_MAX 0x7fffffffffffffffL
280#define LONG_MIN (-0x7fffffffffffffffL-1)
281
282// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
283
284char __ovld __cnfn convert_char_rte(char);
285char __ovld __cnfn convert_char_sat_rte(char);
286char __ovld __cnfn convert_char_rtz(char);
287char __ovld __cnfn convert_char_sat_rtz(char);
288char __ovld __cnfn convert_char_rtp(char);
289char __ovld __cnfn convert_char_sat_rtp(char);
290char __ovld __cnfn convert_char_rtn(char);
291char __ovld __cnfn convert_char_sat_rtn(char);
292char __ovld __cnfn convert_char(char);
293char __ovld __cnfn convert_char_sat(char);
294char __ovld __cnfn convert_char_rte(uchar);
295char __ovld __cnfn convert_char_sat_rte(uchar);
296char __ovld __cnfn convert_char_rtz(uchar);
297char __ovld __cnfn convert_char_sat_rtz(uchar);
298char __ovld __cnfn convert_char_rtp(uchar);
299char __ovld __cnfn convert_char_sat_rtp(uchar);
300char __ovld __cnfn convert_char_rtn(uchar);
301char __ovld __cnfn convert_char_sat_rtn(uchar);
302char __ovld __cnfn convert_char(uchar);
303char __ovld __cnfn convert_char_sat(uchar);
304char __ovld __cnfn convert_char_rte(short);
305char __ovld __cnfn convert_char_sat_rte(short);
306char __ovld __cnfn convert_char_rtz(short);
307char __ovld __cnfn convert_char_sat_rtz(short);
308char __ovld __cnfn convert_char_rtp(short);
309char __ovld __cnfn convert_char_sat_rtp(short);
310char __ovld __cnfn convert_char_rtn(short);
311char __ovld __cnfn convert_char_sat_rtn(short);
312char __ovld __cnfn convert_char(short);
313char __ovld __cnfn convert_char_sat(short);
314char __ovld __cnfn convert_char_rte(ushort);
315char __ovld __cnfn convert_char_sat_rte(ushort);
316char __ovld __cnfn convert_char_rtz(ushort);
317char __ovld __cnfn convert_char_sat_rtz(ushort);
318char __ovld __cnfn convert_char_rtp(ushort);
319char __ovld __cnfn convert_char_sat_rtp(ushort);
320char __ovld __cnfn convert_char_rtn(ushort);
321char __ovld __cnfn convert_char_sat_rtn(ushort);
322char __ovld __cnfn convert_char(ushort);
323char __ovld __cnfn convert_char_sat(ushort);
324char __ovld __cnfn convert_char_rte(int);
325char __ovld __cnfn convert_char_sat_rte(int);
326char __ovld __cnfn convert_char_rtz(int);
327char __ovld __cnfn convert_char_sat_rtz(int);
328char __ovld __cnfn convert_char_rtp(int);
329char __ovld __cnfn convert_char_sat_rtp(int);
330char __ovld __cnfn convert_char_rtn(int);
331char __ovld __cnfn convert_char_sat_rtn(int);
332char __ovld __cnfn convert_char(int);
333char __ovld __cnfn convert_char_sat(int);
334char __ovld __cnfn convert_char_rte(uint);
335char __ovld __cnfn convert_char_sat_rte(uint);
336char __ovld __cnfn convert_char_rtz(uint);
337char __ovld __cnfn convert_char_sat_rtz(uint);
338char __ovld __cnfn convert_char_rtp(uint);
339char __ovld __cnfn convert_char_sat_rtp(uint);
340char __ovld __cnfn convert_char_rtn(uint);
341char __ovld __cnfn convert_char_sat_rtn(uint);
342char __ovld __cnfn convert_char(uint);
343char __ovld __cnfn convert_char_sat(uint);
344char __ovld __cnfn convert_char_rte(long);
345char __ovld __cnfn convert_char_sat_rte(long);
346char __ovld __cnfn convert_char_rtz(long);
347char __ovld __cnfn convert_char_sat_rtz(long);
348char __ovld __cnfn convert_char_rtp(long);
349char __ovld __cnfn convert_char_sat_rtp(long);
350char __ovld __cnfn convert_char_rtn(long);
351char __ovld __cnfn convert_char_sat_rtn(long);
352char __ovld __cnfn convert_char(long);
353char __ovld __cnfn convert_char_sat(long);
354char __ovld __cnfn convert_char_rte(ulong);
355char __ovld __cnfn convert_char_sat_rte(ulong);
356char __ovld __cnfn convert_char_rtz(ulong);
357char __ovld __cnfn convert_char_sat_rtz(ulong);
358char __ovld __cnfn convert_char_rtp(ulong);
359char __ovld __cnfn convert_char_sat_rtp(ulong);
360char __ovld __cnfn convert_char_rtn(ulong);
361char __ovld __cnfn convert_char_sat_rtn(ulong);
362char __ovld __cnfn convert_char(ulong);
363char __ovld __cnfn convert_char_sat(ulong);
364char __ovld __cnfn convert_char_rte(float);
365char __ovld __cnfn convert_char_sat_rte(float);
366char __ovld __cnfn convert_char_rtz(float);
367char __ovld __cnfn convert_char_sat_rtz(float);
368char __ovld __cnfn convert_char_rtp(float);
369char __ovld __cnfn convert_char_sat_rtp(float);
370char __ovld __cnfn convert_char_rtn(float);
371char __ovld __cnfn convert_char_sat_rtn(float);
372char __ovld __cnfn convert_char(float);
373char __ovld __cnfn convert_char_sat(float);
374uchar __ovld __cnfn convert_uchar_rte(char);
375uchar __ovld __cnfn convert_uchar_sat_rte(char);
376uchar __ovld __cnfn convert_uchar_rtz(char);
377uchar __ovld __cnfn convert_uchar_sat_rtz(char);
378uchar __ovld __cnfn convert_uchar_rtp(char);
379uchar __ovld __cnfn convert_uchar_sat_rtp(char);
380uchar __ovld __cnfn convert_uchar_rtn(char);
381uchar __ovld __cnfn convert_uchar_sat_rtn(char);
382uchar __ovld __cnfn convert_uchar(char);
383uchar __ovld __cnfn convert_uchar_sat(char);
384uchar __ovld __cnfn convert_uchar_rte(uchar);
385uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
386uchar __ovld __cnfn convert_uchar_rtz(uchar);
387uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
388uchar __ovld __cnfn convert_uchar_rtp(uchar);
389uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
390uchar __ovld __cnfn convert_uchar_rtn(uchar);
391uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
392uchar __ovld __cnfn convert_uchar(uchar);
393uchar __ovld __cnfn convert_uchar_sat(uchar);
394uchar __ovld __cnfn convert_uchar_rte(short);
395uchar __ovld __cnfn convert_uchar_sat_rte(short);
396uchar __ovld __cnfn convert_uchar_rtz(short);
397uchar __ovld __cnfn convert_uchar_sat_rtz(short);
398uchar __ovld __cnfn convert_uchar_rtp(short);
399uchar __ovld __cnfn convert_uchar_sat_rtp(short);
400uchar __ovld __cnfn convert_uchar_rtn(short);
401uchar __ovld __cnfn convert_uchar_sat_rtn(short);
402uchar __ovld __cnfn convert_uchar(short);
403uchar __ovld __cnfn convert_uchar_sat(short);
404uchar __ovld __cnfn convert_uchar_rte(ushort);
405uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
406uchar __ovld __cnfn convert_uchar_rtz(ushort);
407uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
408uchar __ovld __cnfn convert_uchar_rtp(ushort);
409uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
410uchar __ovld __cnfn convert_uchar_rtn(ushort);
411uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
412uchar __ovld __cnfn convert_uchar(ushort);
413uchar __ovld __cnfn convert_uchar_sat(ushort);
414uchar __ovld __cnfn convert_uchar_rte(int);
415uchar __ovld __cnfn convert_uchar_sat_rte(int);
416uchar __ovld __cnfn convert_uchar_rtz(int);
417uchar __ovld __cnfn convert_uchar_sat_rtz(int);
418uchar __ovld __cnfn convert_uchar_rtp(int);
419uchar __ovld __cnfn convert_uchar_sat_rtp(int);
420uchar __ovld __cnfn convert_uchar_rtn(int);
421uchar __ovld __cnfn convert_uchar_sat_rtn(int);
422uchar __ovld __cnfn convert_uchar(int);
423uchar __ovld __cnfn convert_uchar_sat(int);
424uchar __ovld __cnfn convert_uchar_rte(uint);
425uchar __ovld __cnfn convert_uchar_sat_rte(uint);
426uchar __ovld __cnfn convert_uchar_rtz(uint);
427uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
428uchar __ovld __cnfn convert_uchar_rtp(uint);
429uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
430uchar __ovld __cnfn convert_uchar_rtn(uint);
431uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
432uchar __ovld __cnfn convert_uchar(uint);
433uchar __ovld __cnfn convert_uchar_sat(uint);
434uchar __ovld __cnfn convert_uchar_rte(long);
435uchar __ovld __cnfn convert_uchar_sat_rte(long);
436uchar __ovld __cnfn convert_uchar_rtz(long);
437uchar __ovld __cnfn convert_uchar_sat_rtz(long);
438uchar __ovld __cnfn convert_uchar_rtp(long);
439uchar __ovld __cnfn convert_uchar_sat_rtp(long);
440uchar __ovld __cnfn convert_uchar_rtn(long);
441uchar __ovld __cnfn convert_uchar_sat_rtn(long);
442uchar __ovld __cnfn convert_uchar(long);
443uchar __ovld __cnfn convert_uchar_sat(long);
444uchar __ovld __cnfn convert_uchar_rte(ulong);
445uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
446uchar __ovld __cnfn convert_uchar_rtz(ulong);
447uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
448uchar __ovld __cnfn convert_uchar_rtp(ulong);
449uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
450uchar __ovld __cnfn convert_uchar_rtn(ulong);
451uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
452uchar __ovld __cnfn convert_uchar(ulong);
453uchar __ovld __cnfn convert_uchar_sat(ulong);
454uchar __ovld __cnfn convert_uchar_rte(float);
455uchar __ovld __cnfn convert_uchar_sat_rte(float);
456uchar __ovld __cnfn convert_uchar_rtz(float);
457uchar __ovld __cnfn convert_uchar_sat_rtz(float);
458uchar __ovld __cnfn convert_uchar_rtp(float);
459uchar __ovld __cnfn convert_uchar_sat_rtp(float);
460uchar __ovld __cnfn convert_uchar_rtn(float);
461uchar __ovld __cnfn convert_uchar_sat_rtn(float);
462uchar __ovld __cnfn convert_uchar(float);
463uchar __ovld __cnfn convert_uchar_sat(float);
464
465short __ovld __cnfn convert_short_rte(char);
466short __ovld __cnfn convert_short_sat_rte(char);
467short __ovld __cnfn convert_short_rtz(char);
468short __ovld __cnfn convert_short_sat_rtz(char);
469short __ovld __cnfn convert_short_rtp(char);
470short __ovld __cnfn convert_short_sat_rtp(char);
471short __ovld __cnfn convert_short_rtn(char);
472short __ovld __cnfn convert_short_sat_rtn(char);
473short __ovld __cnfn convert_short(char);
474short __ovld __cnfn convert_short_sat(char);
475short __ovld __cnfn convert_short_rte(uchar);
476short __ovld __cnfn convert_short_sat_rte(uchar);
477short __ovld __cnfn convert_short_rtz(uchar);
478short __ovld __cnfn convert_short_sat_rtz(uchar);
479short __ovld __cnfn convert_short_rtp(uchar);
480short __ovld __cnfn convert_short_sat_rtp(uchar);
481short __ovld __cnfn convert_short_rtn(uchar);
482short __ovld __cnfn convert_short_sat_rtn(uchar);
483short __ovld __cnfn convert_short(uchar);
484short __ovld __cnfn convert_short_sat(uchar);
485short __ovld __cnfn convert_short_rte(short);
486short __ovld __cnfn convert_short_sat_rte(short);
487short __ovld __cnfn convert_short_rtz(short);
488short __ovld __cnfn convert_short_sat_rtz(short);
489short __ovld __cnfn convert_short_rtp(short);
490short __ovld __cnfn convert_short_sat_rtp(short);
491short __ovld __cnfn convert_short_rtn(short);
492short __ovld __cnfn convert_short_sat_rtn(short);
493short __ovld __cnfn convert_short(short);
494short __ovld __cnfn convert_short_sat(short);
495short __ovld __cnfn convert_short_rte(ushort);
496short __ovld __cnfn convert_short_sat_rte(ushort);
497short __ovld __cnfn convert_short_rtz(ushort);
498short __ovld __cnfn convert_short_sat_rtz(ushort);
499short __ovld __cnfn convert_short_rtp(ushort);
500short __ovld __cnfn convert_short_sat_rtp(ushort);
501short __ovld __cnfn convert_short_rtn(ushort);
502short __ovld __cnfn convert_short_sat_rtn(ushort);
503short __ovld __cnfn convert_short(ushort);
504short __ovld __cnfn convert_short_sat(ushort);
505short __ovld __cnfn convert_short_rte(int);
506short __ovld __cnfn convert_short_sat_rte(int);
507short __ovld __cnfn convert_short_rtz(int);
508short __ovld __cnfn convert_short_sat_rtz(int);
509short __ovld __cnfn convert_short_rtp(int);
510short __ovld __cnfn convert_short_sat_rtp(int);
511short __ovld __cnfn convert_short_rtn(int);
512short __ovld __cnfn convert_short_sat_rtn(int);
513short __ovld __cnfn convert_short(int);
514short __ovld __cnfn convert_short_sat(int);
515short __ovld __cnfn convert_short_rte(uint);
516short __ovld __cnfn convert_short_sat_rte(uint);
517short __ovld __cnfn convert_short_rtz(uint);
518short __ovld __cnfn convert_short_sat_rtz(uint);
519short __ovld __cnfn convert_short_rtp(uint);
520short __ovld __cnfn convert_short_sat_rtp(uint);
521short __ovld __cnfn convert_short_rtn(uint);
522short __ovld __cnfn convert_short_sat_rtn(uint);
523short __ovld __cnfn convert_short(uint);
524short __ovld __cnfn convert_short_sat(uint);
525short __ovld __cnfn convert_short_rte(long);
526short __ovld __cnfn convert_short_sat_rte(long);
527short __ovld __cnfn convert_short_rtz(long);
528short __ovld __cnfn convert_short_sat_rtz(long);
529short __ovld __cnfn convert_short_rtp(long);
530short __ovld __cnfn convert_short_sat_rtp(long);
531short __ovld __cnfn convert_short_rtn(long);
532short __ovld __cnfn convert_short_sat_rtn(long);
533short __ovld __cnfn convert_short(long);
534short __ovld __cnfn convert_short_sat(long);
535short __ovld __cnfn convert_short_rte(ulong);
536short __ovld __cnfn convert_short_sat_rte(ulong);
537short __ovld __cnfn convert_short_rtz(ulong);
538short __ovld __cnfn convert_short_sat_rtz(ulong);
539short __ovld __cnfn convert_short_rtp(ulong);
540short __ovld __cnfn convert_short_sat_rtp(ulong);
541short __ovld __cnfn convert_short_rtn(ulong);
542short __ovld __cnfn convert_short_sat_rtn(ulong);
543short __ovld __cnfn convert_short(ulong);
544short __ovld __cnfn convert_short_sat(ulong);
545short __ovld __cnfn convert_short_rte(float);
546short __ovld __cnfn convert_short_sat_rte(float);
547short __ovld __cnfn convert_short_rtz(float);
548short __ovld __cnfn convert_short_sat_rtz(float);
549short __ovld __cnfn convert_short_rtp(float);
550short __ovld __cnfn convert_short_sat_rtp(float);
551short __ovld __cnfn convert_short_rtn(float);
552short __ovld __cnfn convert_short_sat_rtn(float);
553short __ovld __cnfn convert_short(float);
554short __ovld __cnfn convert_short_sat(float);
555ushort __ovld __cnfn convert_ushort_rte(char);
556ushort __ovld __cnfn convert_ushort_sat_rte(char);
557ushort __ovld __cnfn convert_ushort_rtz(char);
558ushort __ovld __cnfn convert_ushort_sat_rtz(char);
559ushort __ovld __cnfn convert_ushort_rtp(char);
560ushort __ovld __cnfn convert_ushort_sat_rtp(char);
561ushort __ovld __cnfn convert_ushort_rtn(char);
562ushort __ovld __cnfn convert_ushort_sat_rtn(char);
563ushort __ovld __cnfn convert_ushort(char);
564ushort __ovld __cnfn convert_ushort_sat(char);
565ushort __ovld __cnfn convert_ushort_rte(uchar);
566ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
567ushort __ovld __cnfn convert_ushort_rtz(uchar);
568ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
569ushort __ovld __cnfn convert_ushort_rtp(uchar);
570ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
571ushort __ovld __cnfn convert_ushort_rtn(uchar);
572ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
573ushort __ovld __cnfn convert_ushort(uchar);
574ushort __ovld __cnfn convert_ushort_sat(uchar);
575ushort __ovld __cnfn convert_ushort_rte(short);
576ushort __ovld __cnfn convert_ushort_sat_rte(short);
577ushort __ovld __cnfn convert_ushort_rtz(short);
578ushort __ovld __cnfn convert_ushort_sat_rtz(short);
579ushort __ovld __cnfn convert_ushort_rtp(short);
580ushort __ovld __cnfn convert_ushort_sat_rtp(short);
581ushort __ovld __cnfn convert_ushort_rtn(short);
582ushort __ovld __cnfn convert_ushort_sat_rtn(short);
583ushort __ovld __cnfn convert_ushort(short);
584ushort __ovld __cnfn convert_ushort_sat(short);
585ushort __ovld __cnfn convert_ushort_rte(ushort);
586ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
587ushort __ovld __cnfn convert_ushort_rtz(ushort);
588ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
589ushort __ovld __cnfn convert_ushort_rtp(ushort);
590ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
591ushort __ovld __cnfn convert_ushort_rtn(ushort);
592ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
593ushort __ovld __cnfn convert_ushort(ushort);
594ushort __ovld __cnfn convert_ushort_sat(ushort);
595ushort __ovld __cnfn convert_ushort_rte(int);
596ushort __ovld __cnfn convert_ushort_sat_rte(int);
597ushort __ovld __cnfn convert_ushort_rtz(int);
598ushort __ovld __cnfn convert_ushort_sat_rtz(int);
599ushort __ovld __cnfn convert_ushort_rtp(int);
600ushort __ovld __cnfn convert_ushort_sat_rtp(int);
601ushort __ovld __cnfn convert_ushort_rtn(int);
602ushort __ovld __cnfn convert_ushort_sat_rtn(int);
603ushort __ovld __cnfn convert_ushort(int);
604ushort __ovld __cnfn convert_ushort_sat(int);
605ushort __ovld __cnfn convert_ushort_rte(uint);
606ushort __ovld __cnfn convert_ushort_sat_rte(uint);
607ushort __ovld __cnfn convert_ushort_rtz(uint);
608ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
609ushort __ovld __cnfn convert_ushort_rtp(uint);
610ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
611ushort __ovld __cnfn convert_ushort_rtn(uint);
612ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
613ushort __ovld __cnfn convert_ushort(uint);
614ushort __ovld __cnfn convert_ushort_sat(uint);
615ushort __ovld __cnfn convert_ushort_rte(long);
616ushort __ovld __cnfn convert_ushort_sat_rte(long);
617ushort __ovld __cnfn convert_ushort_rtz(long);
618ushort __ovld __cnfn convert_ushort_sat_rtz(long);
619ushort __ovld __cnfn convert_ushort_rtp(long);
620ushort __ovld __cnfn convert_ushort_sat_rtp(long);
621ushort __ovld __cnfn convert_ushort_rtn(long);
622ushort __ovld __cnfn convert_ushort_sat_rtn(long);
623ushort __ovld __cnfn convert_ushort(long);
624ushort __ovld __cnfn convert_ushort_sat(long);
625ushort __ovld __cnfn convert_ushort_rte(ulong);
626ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
627ushort __ovld __cnfn convert_ushort_rtz(ulong);
628ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
629ushort __ovld __cnfn convert_ushort_rtp(ulong);
630ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
631ushort __ovld __cnfn convert_ushort_rtn(ulong);
632ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
633ushort __ovld __cnfn convert_ushort(ulong);
634ushort __ovld __cnfn convert_ushort_sat(ulong);
635ushort __ovld __cnfn convert_ushort_rte(float);
636ushort __ovld __cnfn convert_ushort_sat_rte(float);
637ushort __ovld __cnfn convert_ushort_rtz(float);
638ushort __ovld __cnfn convert_ushort_sat_rtz(float);
639ushort __ovld __cnfn convert_ushort_rtp(float);
640ushort __ovld __cnfn convert_ushort_sat_rtp(float);
641ushort __ovld __cnfn convert_ushort_rtn(float);
642ushort __ovld __cnfn convert_ushort_sat_rtn(float);
643ushort __ovld __cnfn convert_ushort(float);
644ushort __ovld __cnfn convert_ushort_sat(float);
645int __ovld __cnfn convert_int_rte(char);
646int __ovld __cnfn convert_int_sat_rte(char);
647int __ovld __cnfn convert_int_rtz(char);
648int __ovld __cnfn convert_int_sat_rtz(char);
649int __ovld __cnfn convert_int_rtp(char);
650int __ovld __cnfn convert_int_sat_rtp(char);
651int __ovld __cnfn convert_int_rtn(char);
652int __ovld __cnfn convert_int_sat_rtn(char);
653int __ovld __cnfn convert_int(char);
654int __ovld __cnfn convert_int_sat(char);
655int __ovld __cnfn convert_int_rte(uchar);
656int __ovld __cnfn convert_int_sat_rte(uchar);
657int __ovld __cnfn convert_int_rtz(uchar);
658int __ovld __cnfn convert_int_sat_rtz(uchar);
659int __ovld __cnfn convert_int_rtp(uchar);
660int __ovld __cnfn convert_int_sat_rtp(uchar);
661int __ovld __cnfn convert_int_rtn(uchar);
662int __ovld __cnfn convert_int_sat_rtn(uchar);
663int __ovld __cnfn convert_int(uchar);
664int __ovld __cnfn convert_int_sat(uchar);
665int __ovld __cnfn convert_int_rte(short);
666int __ovld __cnfn convert_int_sat_rte(short);
667int __ovld __cnfn convert_int_rtz(short);
668int __ovld __cnfn convert_int_sat_rtz(short);
669int __ovld __cnfn convert_int_rtp(short);
670int __ovld __cnfn convert_int_sat_rtp(short);
671int __ovld __cnfn convert_int_rtn(short);
672int __ovld __cnfn convert_int_sat_rtn(short);
673int __ovld __cnfn convert_int(short);
674int __ovld __cnfn convert_int_sat(short);
675int __ovld __cnfn convert_int_rte(ushort);
676int __ovld __cnfn convert_int_sat_rte(ushort);
677int __ovld __cnfn convert_int_rtz(ushort);
678int __ovld __cnfn convert_int_sat_rtz(ushort);
679int __ovld __cnfn convert_int_rtp(ushort);
680int __ovld __cnfn convert_int_sat_rtp(ushort);
681int __ovld __cnfn convert_int_rtn(ushort);
682int __ovld __cnfn convert_int_sat_rtn(ushort);
683int __ovld __cnfn convert_int(ushort);
684int __ovld __cnfn convert_int_sat(ushort);
685int __ovld __cnfn convert_int_rte(int);
686int __ovld __cnfn convert_int_sat_rte(int);
687int __ovld __cnfn convert_int_rtz(int);
688int __ovld __cnfn convert_int_sat_rtz(int);
689int __ovld __cnfn convert_int_rtp(int);
690int __ovld __cnfn convert_int_sat_rtp(int);
691int __ovld __cnfn convert_int_rtn(int);
692int __ovld __cnfn convert_int_sat_rtn(int);
693int __ovld __cnfn convert_int(int);
694int __ovld __cnfn convert_int_sat(int);
695int __ovld __cnfn convert_int_rte(uint);
696int __ovld __cnfn convert_int_sat_rte(uint);
697int __ovld __cnfn convert_int_rtz(uint);
698int __ovld __cnfn convert_int_sat_rtz(uint);
699int __ovld __cnfn convert_int_rtp(uint);
700int __ovld __cnfn convert_int_sat_rtp(uint);
701int __ovld __cnfn convert_int_rtn(uint);
702int __ovld __cnfn convert_int_sat_rtn(uint);
703int __ovld __cnfn convert_int(uint);
704int __ovld __cnfn convert_int_sat(uint);
705int __ovld __cnfn convert_int_rte(long);
706int __ovld __cnfn convert_int_sat_rte(long);
707int __ovld __cnfn convert_int_rtz(long);
708int __ovld __cnfn convert_int_sat_rtz(long);
709int __ovld __cnfn convert_int_rtp(long);
710int __ovld __cnfn convert_int_sat_rtp(long);
711int __ovld __cnfn convert_int_rtn(long);
712int __ovld __cnfn convert_int_sat_rtn(long);
713int __ovld __cnfn convert_int(long);
714int __ovld __cnfn convert_int_sat(long);
715int __ovld __cnfn convert_int_rte(ulong);
716int __ovld __cnfn convert_int_sat_rte(ulong);
717int __ovld __cnfn convert_int_rtz(ulong);
718int __ovld __cnfn convert_int_sat_rtz(ulong);
719int __ovld __cnfn convert_int_rtp(ulong);
720int __ovld __cnfn convert_int_sat_rtp(ulong);
721int __ovld __cnfn convert_int_rtn(ulong);
722int __ovld __cnfn convert_int_sat_rtn(ulong);
723int __ovld __cnfn convert_int(ulong);
724int __ovld __cnfn convert_int_sat(ulong);
725int __ovld __cnfn convert_int_rte(float);
726int __ovld __cnfn convert_int_sat_rte(float);
727int __ovld __cnfn convert_int_rtz(float);
728int __ovld __cnfn convert_int_sat_rtz(float);
729int __ovld __cnfn convert_int_rtp(float);
730int __ovld __cnfn convert_int_sat_rtp(float);
731int __ovld __cnfn convert_int_rtn(float);
732int __ovld __cnfn convert_int_sat_rtn(float);
733int __ovld __cnfn convert_int(float);
734int __ovld __cnfn convert_int_sat(float);
735uint __ovld __cnfn convert_uint_rte(char);
736uint __ovld __cnfn convert_uint_sat_rte(char);
737uint __ovld __cnfn convert_uint_rtz(char);
738uint __ovld __cnfn convert_uint_sat_rtz(char);
739uint __ovld __cnfn convert_uint_rtp(char);
740uint __ovld __cnfn convert_uint_sat_rtp(char);
741uint __ovld __cnfn convert_uint_rtn(char);
742uint __ovld __cnfn convert_uint_sat_rtn(char);
743uint __ovld __cnfn convert_uint(char);
744uint __ovld __cnfn convert_uint_sat(char);
745uint __ovld __cnfn convert_uint_rte(uchar);
746uint __ovld __cnfn convert_uint_sat_rte(uchar);
747uint __ovld __cnfn convert_uint_rtz(uchar);
748uint __ovld __cnfn convert_uint_sat_rtz(uchar);
749uint __ovld __cnfn convert_uint_rtp(uchar);
750uint __ovld __cnfn convert_uint_sat_rtp(uchar);
751uint __ovld __cnfn convert_uint_rtn(uchar);
752uint __ovld __cnfn convert_uint_sat_rtn(uchar);
753uint __ovld __cnfn convert_uint(uchar);
754uint __ovld __cnfn convert_uint_sat(uchar);
755uint __ovld __cnfn convert_uint_rte(short);
756uint __ovld __cnfn convert_uint_sat_rte(short);
757uint __ovld __cnfn convert_uint_rtz(short);
758uint __ovld __cnfn convert_uint_sat_rtz(short);
759uint __ovld __cnfn convert_uint_rtp(short);
760uint __ovld __cnfn convert_uint_sat_rtp(short);
761uint __ovld __cnfn convert_uint_rtn(short);
762uint __ovld __cnfn convert_uint_sat_rtn(short);
763uint __ovld __cnfn convert_uint(short);
764uint __ovld __cnfn convert_uint_sat(short);
765uint __ovld __cnfn convert_uint_rte(ushort);
766uint __ovld __cnfn convert_uint_sat_rte(ushort);
767uint __ovld __cnfn convert_uint_rtz(ushort);
768uint __ovld __cnfn convert_uint_sat_rtz(ushort);
769uint __ovld __cnfn convert_uint_rtp(ushort);
770uint __ovld __cnfn convert_uint_sat_rtp(ushort);
771uint __ovld __cnfn convert_uint_rtn(ushort);
772uint __ovld __cnfn convert_uint_sat_rtn(ushort);
773uint __ovld __cnfn convert_uint(ushort);
774uint __ovld __cnfn convert_uint_sat(ushort);
775uint __ovld __cnfn convert_uint_rte(int);
776uint __ovld __cnfn convert_uint_sat_rte(int);
777uint __ovld __cnfn convert_uint_rtz(int);
778uint __ovld __cnfn convert_uint_sat_rtz(int);
779uint __ovld __cnfn convert_uint_rtp(int);
780uint __ovld __cnfn convert_uint_sat_rtp(int);
781uint __ovld __cnfn convert_uint_rtn(int);
782uint __ovld __cnfn convert_uint_sat_rtn(int);
783uint __ovld __cnfn convert_uint(int);
784uint __ovld __cnfn convert_uint_sat(int);
785uint __ovld __cnfn convert_uint_rte(uint);
786uint __ovld __cnfn convert_uint_sat_rte(uint);
787uint __ovld __cnfn convert_uint_rtz(uint);
788uint __ovld __cnfn convert_uint_sat_rtz(uint);
789uint __ovld __cnfn convert_uint_rtp(uint);
790uint __ovld __cnfn convert_uint_sat_rtp(uint);
791uint __ovld __cnfn convert_uint_rtn(uint);
792uint __ovld __cnfn convert_uint_sat_rtn(uint);
793uint __ovld __cnfn convert_uint(uint);
794uint __ovld __cnfn convert_uint_sat(uint);
795uint __ovld __cnfn convert_uint_rte(long);
796uint __ovld __cnfn convert_uint_sat_rte(long);
797uint __ovld __cnfn convert_uint_rtz(long);
798uint __ovld __cnfn convert_uint_sat_rtz(long);
799uint __ovld __cnfn convert_uint_rtp(long);
800uint __ovld __cnfn convert_uint_sat_rtp(long);
801uint __ovld __cnfn convert_uint_rtn(long);
802uint __ovld __cnfn convert_uint_sat_rtn(long);
803uint __ovld __cnfn convert_uint(long);
804uint __ovld __cnfn convert_uint_sat(long);
805uint __ovld __cnfn convert_uint_rte(ulong);
806uint __ovld __cnfn convert_uint_sat_rte(ulong);
807uint __ovld __cnfn convert_uint_rtz(ulong);
808uint __ovld __cnfn convert_uint_sat_rtz(ulong);
809uint __ovld __cnfn convert_uint_rtp(ulong);
810uint __ovld __cnfn convert_uint_sat_rtp(ulong);
811uint __ovld __cnfn convert_uint_rtn(ulong);
812uint __ovld __cnfn convert_uint_sat_rtn(ulong);
813uint __ovld __cnfn convert_uint(ulong);
814uint __ovld __cnfn convert_uint_sat(ulong);
815uint __ovld __cnfn convert_uint_rte(float);
816uint __ovld __cnfn convert_uint_sat_rte(float);
817uint __ovld __cnfn convert_uint_rtz(float);
818uint __ovld __cnfn convert_uint_sat_rtz(float);
819uint __ovld __cnfn convert_uint_rtp(float);
820uint __ovld __cnfn convert_uint_sat_rtp(float);
821uint __ovld __cnfn convert_uint_rtn(float);
822uint __ovld __cnfn convert_uint_sat_rtn(float);
823uint __ovld __cnfn convert_uint(float);
824uint __ovld __cnfn convert_uint_sat(float);
825long __ovld __cnfn convert_long_rte(char);
826long __ovld __cnfn convert_long_sat_rte(char);
827long __ovld __cnfn convert_long_rtz(char);
828long __ovld __cnfn convert_long_sat_rtz(char);
829long __ovld __cnfn convert_long_rtp(char);
830long __ovld __cnfn convert_long_sat_rtp(char);
831long __ovld __cnfn convert_long_rtn(char);
832long __ovld __cnfn convert_long_sat_rtn(char);
833long __ovld __cnfn convert_long(char);
834long __ovld __cnfn convert_long_sat(char);
835long __ovld __cnfn convert_long_rte(uchar);
836long __ovld __cnfn convert_long_sat_rte(uchar);
837long __ovld __cnfn convert_long_rtz(uchar);
838long __ovld __cnfn convert_long_sat_rtz(uchar);
839long __ovld __cnfn convert_long_rtp(uchar);
840long __ovld __cnfn convert_long_sat_rtp(uchar);
841long __ovld __cnfn convert_long_rtn(uchar);
842long __ovld __cnfn convert_long_sat_rtn(uchar);
843long __ovld __cnfn convert_long(uchar);
844long __ovld __cnfn convert_long_sat(uchar);
845long __ovld __cnfn convert_long_rte(short);
846long __ovld __cnfn convert_long_sat_rte(short);
847long __ovld __cnfn convert_long_rtz(short);
848long __ovld __cnfn convert_long_sat_rtz(short);
849long __ovld __cnfn convert_long_rtp(short);
850long __ovld __cnfn convert_long_sat_rtp(short);
851long __ovld __cnfn convert_long_rtn(short);
852long __ovld __cnfn convert_long_sat_rtn(short);
853long __ovld __cnfn convert_long(short);
854long __ovld __cnfn convert_long_sat(short);
855long __ovld __cnfn convert_long_rte(ushort);
856long __ovld __cnfn convert_long_sat_rte(ushort);
857long __ovld __cnfn convert_long_rtz(ushort);
858long __ovld __cnfn convert_long_sat_rtz(ushort);
859long __ovld __cnfn convert_long_rtp(ushort);
860long __ovld __cnfn convert_long_sat_rtp(ushort);
861long __ovld __cnfn convert_long_rtn(ushort);
862long __ovld __cnfn convert_long_sat_rtn(ushort);
863long __ovld __cnfn convert_long(ushort);
864long __ovld __cnfn convert_long_sat(ushort);
865long __ovld __cnfn convert_long_rte(int);
866long __ovld __cnfn convert_long_sat_rte(int);
867long __ovld __cnfn convert_long_rtz(int);
868long __ovld __cnfn convert_long_sat_rtz(int);
869long __ovld __cnfn convert_long_rtp(int);
870long __ovld __cnfn convert_long_sat_rtp(int);
871long __ovld __cnfn convert_long_rtn(int);
872long __ovld __cnfn convert_long_sat_rtn(int);
873long __ovld __cnfn convert_long(int);
874long __ovld __cnfn convert_long_sat(int);
875long __ovld __cnfn convert_long_rte(uint);
876long __ovld __cnfn convert_long_sat_rte(uint);
877long __ovld __cnfn convert_long_rtz(uint);
878long __ovld __cnfn convert_long_sat_rtz(uint);
879long __ovld __cnfn convert_long_rtp(uint);
880long __ovld __cnfn convert_long_sat_rtp(uint);
881long __ovld __cnfn convert_long_rtn(uint);
882long __ovld __cnfn convert_long_sat_rtn(uint);
883long __ovld __cnfn convert_long(uint);
884long __ovld __cnfn convert_long_sat(uint);
885long __ovld __cnfn convert_long_rte(long);
886long __ovld __cnfn convert_long_sat_rte(long);
887long __ovld __cnfn convert_long_rtz(long);
888long __ovld __cnfn convert_long_sat_rtz(long);
889long __ovld __cnfn convert_long_rtp(long);
890long __ovld __cnfn convert_long_sat_rtp(long);
891long __ovld __cnfn convert_long_rtn(long);
892long __ovld __cnfn convert_long_sat_rtn(long);
893long __ovld __cnfn convert_long(long);
894long __ovld __cnfn convert_long_sat(long);
895long __ovld __cnfn convert_long_rte(ulong);
896long __ovld __cnfn convert_long_sat_rte(ulong);
897long __ovld __cnfn convert_long_rtz(ulong);
898long __ovld __cnfn convert_long_sat_rtz(ulong);
899long __ovld __cnfn convert_long_rtp(ulong);
900long __ovld __cnfn convert_long_sat_rtp(ulong);
901long __ovld __cnfn convert_long_rtn(ulong);
902long __ovld __cnfn convert_long_sat_rtn(ulong);
903long __ovld __cnfn convert_long(ulong);
904long __ovld __cnfn convert_long_sat(ulong);
905long __ovld __cnfn convert_long_rte(float);
906long __ovld __cnfn convert_long_sat_rte(float);
907long __ovld __cnfn convert_long_rtz(float);
908long __ovld __cnfn convert_long_sat_rtz(float);
909long __ovld __cnfn convert_long_rtp(float);
910long __ovld __cnfn convert_long_sat_rtp(float);
911long __ovld __cnfn convert_long_rtn(float);
912long __ovld __cnfn convert_long_sat_rtn(float);
913long __ovld __cnfn convert_long(float);
914long __ovld __cnfn convert_long_sat(float);
915ulong __ovld __cnfn convert_ulong_rte(char);
916ulong __ovld __cnfn convert_ulong_sat_rte(char);
917ulong __ovld __cnfn convert_ulong_rtz(char);
918ulong __ovld __cnfn convert_ulong_sat_rtz(char);
919ulong __ovld __cnfn convert_ulong_rtp(char);
920ulong __ovld __cnfn convert_ulong_sat_rtp(char);
921ulong __ovld __cnfn convert_ulong_rtn(char);
922ulong __ovld __cnfn convert_ulong_sat_rtn(char);
923ulong __ovld __cnfn convert_ulong(char);
924ulong __ovld __cnfn convert_ulong_sat(char);
925ulong __ovld __cnfn convert_ulong_rte(uchar);
926ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
927ulong __ovld __cnfn convert_ulong_rtz(uchar);
928ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
929ulong __ovld __cnfn convert_ulong_rtp(uchar);
930ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
931ulong __ovld __cnfn convert_ulong_rtn(uchar);
932ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
933ulong __ovld __cnfn convert_ulong(uchar);
934ulong __ovld __cnfn convert_ulong_sat(uchar);
935ulong __ovld __cnfn convert_ulong_rte(short);
936ulong __ovld __cnfn convert_ulong_sat_rte(short);
937ulong __ovld __cnfn convert_ulong_rtz(short);
938ulong __ovld __cnfn convert_ulong_sat_rtz(short);
939ulong __ovld __cnfn convert_ulong_rtp(short);
940ulong __ovld __cnfn convert_ulong_sat_rtp(short);
941ulong __ovld __cnfn convert_ulong_rtn(short);
942ulong __ovld __cnfn convert_ulong_sat_rtn(short);
943ulong __ovld __cnfn convert_ulong(short);
944ulong __ovld __cnfn convert_ulong_sat(short);
945ulong __ovld __cnfn convert_ulong_rte(ushort);
946ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
947ulong __ovld __cnfn convert_ulong_rtz(ushort);
948ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
949ulong __ovld __cnfn convert_ulong_rtp(ushort);
950ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
951ulong __ovld __cnfn convert_ulong_rtn(ushort);
952ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
953ulong __ovld __cnfn convert_ulong(ushort);
954ulong __ovld __cnfn convert_ulong_sat(ushort);
955ulong __ovld __cnfn convert_ulong_rte(int);
956ulong __ovld __cnfn convert_ulong_sat_rte(int);
957ulong __ovld __cnfn convert_ulong_rtz(int);
958ulong __ovld __cnfn convert_ulong_sat_rtz(int);
959ulong __ovld __cnfn convert_ulong_rtp(int);
960ulong __ovld __cnfn convert_ulong_sat_rtp(int);
961ulong __ovld __cnfn convert_ulong_rtn(int);
962ulong __ovld __cnfn convert_ulong_sat_rtn(int);
963ulong __ovld __cnfn convert_ulong(int);
964ulong __ovld __cnfn convert_ulong_sat(int);
965ulong __ovld __cnfn convert_ulong_rte(uint);
966ulong __ovld __cnfn convert_ulong_sat_rte(uint);
967ulong __ovld __cnfn convert_ulong_rtz(uint);
968ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
969ulong __ovld __cnfn convert_ulong_rtp(uint);
970ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
971ulong __ovld __cnfn convert_ulong_rtn(uint);
972ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
973ulong __ovld __cnfn convert_ulong(uint);
974ulong __ovld __cnfn convert_ulong_sat(uint);
975ulong __ovld __cnfn convert_ulong_rte(long);
976ulong __ovld __cnfn convert_ulong_sat_rte(long);
977ulong __ovld __cnfn convert_ulong_rtz(long);
978ulong __ovld __cnfn convert_ulong_sat_rtz(long);
979ulong __ovld __cnfn convert_ulong_rtp(long);
980ulong __ovld __cnfn convert_ulong_sat_rtp(long);
981ulong __ovld __cnfn convert_ulong_rtn(long);
982ulong __ovld __cnfn convert_ulong_sat_rtn(long);
983ulong __ovld __cnfn convert_ulong(long);
984ulong __ovld __cnfn convert_ulong_sat(long);
985ulong __ovld __cnfn convert_ulong_rte(ulong);
986ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
987ulong __ovld __cnfn convert_ulong_rtz(ulong);
988ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
989ulong __ovld __cnfn convert_ulong_rtp(ulong);
990ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
991ulong __ovld __cnfn convert_ulong_rtn(ulong);
992ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
993ulong __ovld __cnfn convert_ulong(ulong);
994ulong __ovld __cnfn convert_ulong_sat(ulong);
995ulong __ovld __cnfn convert_ulong_rte(float);
996ulong __ovld __cnfn convert_ulong_sat_rte(float);
997ulong __ovld __cnfn convert_ulong_rtz(float);
998ulong __ovld __cnfn convert_ulong_sat_rtz(float);
999ulong __ovld __cnfn convert_ulong_rtp(float);
1000ulong __ovld __cnfn convert_ulong_sat_rtp(float);
1001ulong __ovld __cnfn convert_ulong_rtn(float);
1002ulong __ovld __cnfn convert_ulong_sat_rtn(float);
1003ulong __ovld __cnfn convert_ulong(float);
1004ulong __ovld __cnfn convert_ulong_sat(float);
1005float __ovld __cnfn convert_float_rte(char);
1006float __ovld __cnfn convert_float_rtz(char);
1007float __ovld __cnfn convert_float_rtp(char);
1008float __ovld __cnfn convert_float_rtn(char);
1009float __ovld __cnfn convert_float(char);
1010float __ovld __cnfn convert_float_rte(uchar);
1011float __ovld __cnfn convert_float_rtz(uchar);
1012float __ovld __cnfn convert_float_rtp(uchar);
1013float __ovld __cnfn convert_float_rtn(uchar);
1014float __ovld __cnfn convert_float(uchar);
1015float __ovld __cnfn convert_float_rte(short);
1016float __ovld __cnfn convert_float_rtz(short);
1017float __ovld __cnfn convert_float_rtp(short);
1018float __ovld __cnfn convert_float_rtn(short);
1019float __ovld __cnfn convert_float(short);
1020float __ovld __cnfn convert_float_rte(ushort);
1021float __ovld __cnfn convert_float_rtz(ushort);
1022float __ovld __cnfn convert_float_rtp(ushort);
1023float __ovld __cnfn convert_float_rtn(ushort);
1024float __ovld __cnfn convert_float(ushort);
1025float __ovld __cnfn convert_float_rte(int);
1026float __ovld __cnfn convert_float_rtz(int);
1027float __ovld __cnfn convert_float_rtp(int);
1028float __ovld __cnfn convert_float_rtn(int);
1029float __ovld __cnfn convert_float(int);
1030float __ovld __cnfn convert_float_rte(uint);
1031float __ovld __cnfn convert_float_rtz(uint);
1032float __ovld __cnfn convert_float_rtp(uint);
1033float __ovld __cnfn convert_float_rtn(uint);
1034float __ovld __cnfn convert_float(uint);
1035float __ovld __cnfn convert_float_rte(long);
1036float __ovld __cnfn convert_float_rtz(long);
1037float __ovld __cnfn convert_float_rtp(long);
1038float __ovld __cnfn convert_float_rtn(long);
1039float __ovld __cnfn convert_float(long);
1040float __ovld __cnfn convert_float_rte(ulong);
1041float __ovld __cnfn convert_float_rtz(ulong);
1042float __ovld __cnfn convert_float_rtp(ulong);
1043float __ovld __cnfn convert_float_rtn(ulong);
1044float __ovld __cnfn convert_float(ulong);
1045float __ovld __cnfn convert_float_rte(float);
1046float __ovld __cnfn convert_float_rtz(float);
1047float __ovld __cnfn convert_float_rtp(float);
1048float __ovld __cnfn convert_float_rtn(float);
1049float __ovld __cnfn convert_float(float);
1050char2 __ovld __cnfn convert_char2_rte(char2);
1051char2 __ovld __cnfn convert_char2_sat_rte(char2);
1052char2 __ovld __cnfn convert_char2_rtz(char2);
1053char2 __ovld __cnfn convert_char2_sat_rtz(char2);
1054char2 __ovld __cnfn convert_char2_rtp(char2);
1055char2 __ovld __cnfn convert_char2_sat_rtp(char2);
1056char2 __ovld __cnfn convert_char2_rtn(char2);
1057char2 __ovld __cnfn convert_char2_sat_rtn(char2);
1058char2 __ovld __cnfn convert_char2(char2);
1059char2 __ovld __cnfn convert_char2_sat(char2);
1060char2 __ovld __cnfn convert_char2_rte(uchar2);
1061char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
1062char2 __ovld __cnfn convert_char2_rtz(uchar2);
1063char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
1064char2 __ovld __cnfn convert_char2_rtp(uchar2);
1065char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
1066char2 __ovld __cnfn convert_char2_rtn(uchar2);
1067char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
1068char2 __ovld __cnfn convert_char2(uchar2);
1069char2 __ovld __cnfn convert_char2_sat(uchar2);
1070char2 __ovld __cnfn convert_char2_rte(short2);
1071char2 __ovld __cnfn convert_char2_sat_rte(short2);
1072char2 __ovld __cnfn convert_char2_rtz(short2);
1073char2 __ovld __cnfn convert_char2_sat_rtz(short2);
1074char2 __ovld __cnfn convert_char2_rtp(short2);
1075char2 __ovld __cnfn convert_char2_sat_rtp(short2);
1076char2 __ovld __cnfn convert_char2_rtn(short2);
1077char2 __ovld __cnfn convert_char2_sat_rtn(short2);
1078char2 __ovld __cnfn convert_char2(short2);
1079char2 __ovld __cnfn convert_char2_sat(short2);
1080char2 __ovld __cnfn convert_char2_rte(ushort2);
1081char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
1082char2 __ovld __cnfn convert_char2_rtz(ushort2);
1083char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
1084char2 __ovld __cnfn convert_char2_rtp(ushort2);
1085char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
1086char2 __ovld __cnfn convert_char2_rtn(ushort2);
1087char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
1088char2 __ovld __cnfn convert_char2(ushort2);
1089char2 __ovld __cnfn convert_char2_sat(ushort2);
1090char2 __ovld __cnfn convert_char2_rte(int2);
1091char2 __ovld __cnfn convert_char2_sat_rte(int2);
1092char2 __ovld __cnfn convert_char2_rtz(int2);
1093char2 __ovld __cnfn convert_char2_sat_rtz(int2);
1094char2 __ovld __cnfn convert_char2_rtp(int2);
1095char2 __ovld __cnfn convert_char2_sat_rtp(int2);
1096char2 __ovld __cnfn convert_char2_rtn(int2);
1097char2 __ovld __cnfn convert_char2_sat_rtn(int2);
1098char2 __ovld __cnfn convert_char2(int2);
1099char2 __ovld __cnfn convert_char2_sat(int2);
1100char2 __ovld __cnfn convert_char2_rte(uint2);
1101char2 __ovld __cnfn convert_char2_sat_rte(uint2);
1102char2 __ovld __cnfn convert_char2_rtz(uint2);
1103char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
1104char2 __ovld __cnfn convert_char2_rtp(uint2);
1105char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
1106char2 __ovld __cnfn convert_char2_rtn(uint2);
1107char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
1108char2 __ovld __cnfn convert_char2(uint2);
1109char2 __ovld __cnfn convert_char2_sat(uint2);
1110char2 __ovld __cnfn convert_char2_rte(long2);
1111char2 __ovld __cnfn convert_char2_sat_rte(long2);
1112char2 __ovld __cnfn convert_char2_rtz(long2);
1113char2 __ovld __cnfn convert_char2_sat_rtz(long2);
1114char2 __ovld __cnfn convert_char2_rtp(long2);
1115char2 __ovld __cnfn convert_char2_sat_rtp(long2);
1116char2 __ovld __cnfn convert_char2_rtn(long2);
1117char2 __ovld __cnfn convert_char2_sat_rtn(long2);
1118char2 __ovld __cnfn convert_char2(long2);
1119char2 __ovld __cnfn convert_char2_sat(long2);
1120char2 __ovld __cnfn convert_char2_rte(ulong2);
1121char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
1122char2 __ovld __cnfn convert_char2_rtz(ulong2);
1123char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
1124char2 __ovld __cnfn convert_char2_rtp(ulong2);
1125char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
1126char2 __ovld __cnfn convert_char2_rtn(ulong2);
1127char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
1128char2 __ovld __cnfn convert_char2(ulong2);
1129char2 __ovld __cnfn convert_char2_sat(ulong2);
1130char2 __ovld __cnfn convert_char2_rte(float2);
1131char2 __ovld __cnfn convert_char2_sat_rte(float2);
1132char2 __ovld __cnfn convert_char2_rtz(float2);
1133char2 __ovld __cnfn convert_char2_sat_rtz(float2);
1134char2 __ovld __cnfn convert_char2_rtp(float2);
1135char2 __ovld __cnfn convert_char2_sat_rtp(float2);
1136char2 __ovld __cnfn convert_char2_rtn(float2);
1137char2 __ovld __cnfn convert_char2_sat_rtn(float2);
1138char2 __ovld __cnfn convert_char2(float2);
1139char2 __ovld __cnfn convert_char2_sat(float2);
1140uchar2 __ovld __cnfn convert_uchar2_rte(char2);
1141uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
1142uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
1143uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
1144uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
1145uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
1146uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
1147uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
1148uchar2 __ovld __cnfn convert_uchar2(char2);
1149uchar2 __ovld __cnfn convert_uchar2_sat(char2);
1150uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
1151uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
1152uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
1153uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
1154uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
1155uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
1156uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
1157uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
1158uchar2 __ovld __cnfn convert_uchar2(uchar2);
1159uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
1160uchar2 __ovld __cnfn convert_uchar2_rte(short2);
1161uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
1162uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
1163uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
1164uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
1165uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
1166uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
1167uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
1168uchar2 __ovld __cnfn convert_uchar2(short2);
1169uchar2 __ovld __cnfn convert_uchar2_sat(short2);
1170uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
1171uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
1172uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
1173uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
1174uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
1175uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
1176uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
1177uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
1178uchar2 __ovld __cnfn convert_uchar2(ushort2);
1179uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
1180uchar2 __ovld __cnfn convert_uchar2_rte(int2);
1181uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
1182uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
1183uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
1184uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
1185uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
1186uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
1187uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
1188uchar2 __ovld __cnfn convert_uchar2(int2);
1189uchar2 __ovld __cnfn convert_uchar2_sat(int2);
1190uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
1191uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
1192uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
1193uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
1194uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
1195uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
1196uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
1197uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
1198uchar2 __ovld __cnfn convert_uchar2(uint2);
1199uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
1200uchar2 __ovld __cnfn convert_uchar2_rte(long2);
1201uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
1202uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
1203uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
1204uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
1205uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
1206uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
1207uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
1208uchar2 __ovld __cnfn convert_uchar2(long2);
1209uchar2 __ovld __cnfn convert_uchar2_sat(long2);
1210uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
1211uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
1212uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
1213uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
1214uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
1215uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
1216uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
1217uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
1218uchar2 __ovld __cnfn convert_uchar2(ulong2);
1219uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
1220uchar2 __ovld __cnfn convert_uchar2_rte(float2);
1221uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
1222uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
1223uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
1224uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
1225uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
1226uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
1227uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
1228uchar2 __ovld __cnfn convert_uchar2(float2);
1229uchar2 __ovld __cnfn convert_uchar2_sat(float2);
1230short2 __ovld __cnfn convert_short2_rte(char2);
1231short2 __ovld __cnfn convert_short2_sat_rte(char2);
1232short2 __ovld __cnfn convert_short2_rtz(char2);
1233short2 __ovld __cnfn convert_short2_sat_rtz(char2);
1234short2 __ovld __cnfn convert_short2_rtp(char2);
1235short2 __ovld __cnfn convert_short2_sat_rtp(char2);
1236short2 __ovld __cnfn convert_short2_rtn(char2);
1237short2 __ovld __cnfn convert_short2_sat_rtn(char2);
1238short2 __ovld __cnfn convert_short2(char2);
1239short2 __ovld __cnfn convert_short2_sat(char2);
1240short2 __ovld __cnfn convert_short2_rte(uchar2);
1241short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1242short2 __ovld __cnfn convert_short2_rtz(uchar2);
1243short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1244short2 __ovld __cnfn convert_short2_rtp(uchar2);
1245short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1246short2 __ovld __cnfn convert_short2_rtn(uchar2);
1247short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1248short2 __ovld __cnfn convert_short2(uchar2);
1249short2 __ovld __cnfn convert_short2_sat(uchar2);
1250short2 __ovld __cnfn convert_short2_rte(short2);
1251short2 __ovld __cnfn convert_short2_sat_rte(short2);
1252short2 __ovld __cnfn convert_short2_rtz(short2);
1253short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1254short2 __ovld __cnfn convert_short2_rtp(short2);
1255short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1256short2 __ovld __cnfn convert_short2_rtn(short2);
1257short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1258short2 __ovld __cnfn convert_short2(short2);
1259short2 __ovld __cnfn convert_short2_sat(short2);
1260short2 __ovld __cnfn convert_short2_rte(ushort2);
1261short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1262short2 __ovld __cnfn convert_short2_rtz(ushort2);
1263short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1264short2 __ovld __cnfn convert_short2_rtp(ushort2);
1265short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1266short2 __ovld __cnfn convert_short2_rtn(ushort2);
1267short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1268short2 __ovld __cnfn convert_short2(ushort2);
1269short2 __ovld __cnfn convert_short2_sat(ushort2);
1270short2 __ovld __cnfn convert_short2_rte(int2);
1271short2 __ovld __cnfn convert_short2_sat_rte(int2);
1272short2 __ovld __cnfn convert_short2_rtz(int2);
1273short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1274short2 __ovld __cnfn convert_short2_rtp(int2);
1275short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1276short2 __ovld __cnfn convert_short2_rtn(int2);
1277short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1278short2 __ovld __cnfn convert_short2(int2);
1279short2 __ovld __cnfn convert_short2_sat(int2);
1280short2 __ovld __cnfn convert_short2_rte(uint2);
1281short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1282short2 __ovld __cnfn convert_short2_rtz(uint2);
1283short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1284short2 __ovld __cnfn convert_short2_rtp(uint2);
1285short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1286short2 __ovld __cnfn convert_short2_rtn(uint2);
1287short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1288short2 __ovld __cnfn convert_short2(uint2);
1289short2 __ovld __cnfn convert_short2_sat(uint2);
1290short2 __ovld __cnfn convert_short2_rte(long2);
1291short2 __ovld __cnfn convert_short2_sat_rte(long2);
1292short2 __ovld __cnfn convert_short2_rtz(long2);
1293short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1294short2 __ovld __cnfn convert_short2_rtp(long2);
1295short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1296short2 __ovld __cnfn convert_short2_rtn(long2);
1297short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1298short2 __ovld __cnfn convert_short2(long2);
1299short2 __ovld __cnfn convert_short2_sat(long2);
1300short2 __ovld __cnfn convert_short2_rte(ulong2);
1301short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1302short2 __ovld __cnfn convert_short2_rtz(ulong2);
1303short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1304short2 __ovld __cnfn convert_short2_rtp(ulong2);
1305short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1306short2 __ovld __cnfn convert_short2_rtn(ulong2);
1307short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1308short2 __ovld __cnfn convert_short2(ulong2);
1309short2 __ovld __cnfn convert_short2_sat(ulong2);
1310short2 __ovld __cnfn convert_short2_rte(float2);
1311short2 __ovld __cnfn convert_short2_sat_rte(float2);
1312short2 __ovld __cnfn convert_short2_rtz(float2);
1313short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1314short2 __ovld __cnfn convert_short2_rtp(float2);
1315short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1316short2 __ovld __cnfn convert_short2_rtn(float2);
1317short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1318short2 __ovld __cnfn convert_short2(float2);
1319short2 __ovld __cnfn convert_short2_sat(float2);
1320ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1321ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1322ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1323ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1324ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1325ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1326ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1327ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1328ushort2 __ovld __cnfn convert_ushort2(char2);
1329ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1330ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1331ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1332ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1333ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1334ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1335ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1336ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1337ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1338ushort2 __ovld __cnfn convert_ushort2(uchar2);
1339ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1340ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1341ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1342ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1343ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1344ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1345ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1346ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1347ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1348ushort2 __ovld __cnfn convert_ushort2(short2);
1349ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1350ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1351ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1352ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1353ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1354ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1355ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1356ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1357ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1358ushort2 __ovld __cnfn convert_ushort2(ushort2);
1359ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1360ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1361ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1362ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1363ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1364ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1365ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1366ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1367ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1368ushort2 __ovld __cnfn convert_ushort2(int2);
1369ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1370ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1371ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1372ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1373ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1374ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1375ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1376ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1377ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1378ushort2 __ovld __cnfn convert_ushort2(uint2);
1379ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1380ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1381ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1382ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1383ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1384ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1385ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1386ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1387ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1388ushort2 __ovld __cnfn convert_ushort2(long2);
1389ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1390ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1391ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1392ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1393ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1394ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1395ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1396ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1397ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1398ushort2 __ovld __cnfn convert_ushort2(ulong2);
1399ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1400ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1401ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1402ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1403ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1404ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1405ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1406ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1407ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1408ushort2 __ovld __cnfn convert_ushort2(float2);
1409ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1410int2 __ovld __cnfn convert_int2_rte(char2);
1411int2 __ovld __cnfn convert_int2_sat_rte(char2);
1412int2 __ovld __cnfn convert_int2_rtz(char2);
1413int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1414int2 __ovld __cnfn convert_int2_rtp(char2);
1415int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1416int2 __ovld __cnfn convert_int2_rtn(char2);
1417int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1418int2 __ovld __cnfn convert_int2(char2);
1419int2 __ovld __cnfn convert_int2_sat(char2);
1420int2 __ovld __cnfn convert_int2_rte(uchar2);
1421int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1422int2 __ovld __cnfn convert_int2_rtz(uchar2);
1423int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1424int2 __ovld __cnfn convert_int2_rtp(uchar2);
1425int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1426int2 __ovld __cnfn convert_int2_rtn(uchar2);
1427int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1428int2 __ovld __cnfn convert_int2(uchar2);
1429int2 __ovld __cnfn convert_int2_sat(uchar2);
1430int2 __ovld __cnfn convert_int2_rte(short2);
1431int2 __ovld __cnfn convert_int2_sat_rte(short2);
1432int2 __ovld __cnfn convert_int2_rtz(short2);
1433int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1434int2 __ovld __cnfn convert_int2_rtp(short2);
1435int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1436int2 __ovld __cnfn convert_int2_rtn(short2);
1437int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1438int2 __ovld __cnfn convert_int2(short2);
1439int2 __ovld __cnfn convert_int2_sat(short2);
1440int2 __ovld __cnfn convert_int2_rte(ushort2);
1441int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1442int2 __ovld __cnfn convert_int2_rtz(ushort2);
1443int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1444int2 __ovld __cnfn convert_int2_rtp(ushort2);
1445int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1446int2 __ovld __cnfn convert_int2_rtn(ushort2);
1447int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1448int2 __ovld __cnfn convert_int2(ushort2);
1449int2 __ovld __cnfn convert_int2_sat(ushort2);
1450int2 __ovld __cnfn convert_int2_rte(int2);
1451int2 __ovld __cnfn convert_int2_sat_rte(int2);
1452int2 __ovld __cnfn convert_int2_rtz(int2);
1453int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1454int2 __ovld __cnfn convert_int2_rtp(int2);
1455int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1456int2 __ovld __cnfn convert_int2_rtn(int2);
1457int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1458int2 __ovld __cnfn convert_int2(int2);
1459int2 __ovld __cnfn convert_int2_sat(int2);
1460int2 __ovld __cnfn convert_int2_rte(uint2);
1461int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1462int2 __ovld __cnfn convert_int2_rtz(uint2);
1463int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1464int2 __ovld __cnfn convert_int2_rtp(uint2);
1465int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1466int2 __ovld __cnfn convert_int2_rtn(uint2);
1467int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1468int2 __ovld __cnfn convert_int2(uint2);
1469int2 __ovld __cnfn convert_int2_sat(uint2);
1470int2 __ovld __cnfn convert_int2_rte(long2);
1471int2 __ovld __cnfn convert_int2_sat_rte(long2);
1472int2 __ovld __cnfn convert_int2_rtz(long2);
1473int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1474int2 __ovld __cnfn convert_int2_rtp(long2);
1475int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1476int2 __ovld __cnfn convert_int2_rtn(long2);
1477int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1478int2 __ovld __cnfn convert_int2(long2);
1479int2 __ovld __cnfn convert_int2_sat(long2);
1480int2 __ovld __cnfn convert_int2_rte(ulong2);
1481int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1482int2 __ovld __cnfn convert_int2_rtz(ulong2);
1483int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1484int2 __ovld __cnfn convert_int2_rtp(ulong2);
1485int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1486int2 __ovld __cnfn convert_int2_rtn(ulong2);
1487int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1488int2 __ovld __cnfn convert_int2(ulong2);
1489int2 __ovld __cnfn convert_int2_sat(ulong2);
1490int2 __ovld __cnfn convert_int2_rte(float2);
1491int2 __ovld __cnfn convert_int2_sat_rte(float2);
1492int2 __ovld __cnfn convert_int2_rtz(float2);
1493int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1494int2 __ovld __cnfn convert_int2_rtp(float2);
1495int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1496int2 __ovld __cnfn convert_int2_rtn(float2);
1497int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1498int2 __ovld __cnfn convert_int2(float2);
1499int2 __ovld __cnfn convert_int2_sat(float2);
1500uint2 __ovld __cnfn convert_uint2_rte(char2);
1501uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1502uint2 __ovld __cnfn convert_uint2_rtz(char2);
1503uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1504uint2 __ovld __cnfn convert_uint2_rtp(char2);
1505uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1506uint2 __ovld __cnfn convert_uint2_rtn(char2);
1507uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1508uint2 __ovld __cnfn convert_uint2(char2);
1509uint2 __ovld __cnfn convert_uint2_sat(char2);
1510uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1511uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1512uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1513uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1514uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1515uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1516uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1517uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1518uint2 __ovld __cnfn convert_uint2(uchar2);
1519uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1520uint2 __ovld __cnfn convert_uint2_rte(short2);
1521uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1522uint2 __ovld __cnfn convert_uint2_rtz(short2);
1523uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1524uint2 __ovld __cnfn convert_uint2_rtp(short2);
1525uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1526uint2 __ovld __cnfn convert_uint2_rtn(short2);
1527uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1528uint2 __ovld __cnfn convert_uint2(short2);
1529uint2 __ovld __cnfn convert_uint2_sat(short2);
1530uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1531uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1532uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1533uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1534uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1535uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1536uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1537uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1538uint2 __ovld __cnfn convert_uint2(ushort2);
1539uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1540uint2 __ovld __cnfn convert_uint2_rte(int2);
1541uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1542uint2 __ovld __cnfn convert_uint2_rtz(int2);
1543uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1544uint2 __ovld __cnfn convert_uint2_rtp(int2);
1545uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1546uint2 __ovld __cnfn convert_uint2_rtn(int2);
1547uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1548uint2 __ovld __cnfn convert_uint2(int2);
1549uint2 __ovld __cnfn convert_uint2_sat(int2);
1550uint2 __ovld __cnfn convert_uint2_rte(uint2);
1551uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1552uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1553uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1554uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1555uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1556uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1557uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1558uint2 __ovld __cnfn convert_uint2(uint2);
1559uint2 __ovld __cnfn convert_uint2_sat(uint2);
1560uint2 __ovld __cnfn convert_uint2_rte(long2);
1561uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1562uint2 __ovld __cnfn convert_uint2_rtz(long2);
1563uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1564uint2 __ovld __cnfn convert_uint2_rtp(long2);
1565uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1566uint2 __ovld __cnfn convert_uint2_rtn(long2);
1567uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1568uint2 __ovld __cnfn convert_uint2(long2);
1569uint2 __ovld __cnfn convert_uint2_sat(long2);
1570uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1571uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1572uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1573uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1574uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1575uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1576uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1577uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1578uint2 __ovld __cnfn convert_uint2(ulong2);
1579uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1580uint2 __ovld __cnfn convert_uint2_rte(float2);
1581uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1582uint2 __ovld __cnfn convert_uint2_rtz(float2);
1583uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1584uint2 __ovld __cnfn convert_uint2_rtp(float2);
1585uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1586uint2 __ovld __cnfn convert_uint2_rtn(float2);
1587uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1588uint2 __ovld __cnfn convert_uint2(float2);
1589uint2 __ovld __cnfn convert_uint2_sat(float2);
1590long2 __ovld __cnfn convert_long2_rte(char2);
1591long2 __ovld __cnfn convert_long2_sat_rte(char2);
1592long2 __ovld __cnfn convert_long2_rtz(char2);
1593long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1594long2 __ovld __cnfn convert_long2_rtp(char2);
1595long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1596long2 __ovld __cnfn convert_long2_rtn(char2);
1597long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1598long2 __ovld __cnfn convert_long2(char2);
1599long2 __ovld __cnfn convert_long2_sat(char2);
1600long2 __ovld __cnfn convert_long2_rte(uchar2);
1601long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1602long2 __ovld __cnfn convert_long2_rtz(uchar2);
1603long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1604long2 __ovld __cnfn convert_long2_rtp(uchar2);
1605long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1606long2 __ovld __cnfn convert_long2_rtn(uchar2);
1607long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1608long2 __ovld __cnfn convert_long2(uchar2);
1609long2 __ovld __cnfn convert_long2_sat(uchar2);
1610long2 __ovld __cnfn convert_long2_rte(short2);
1611long2 __ovld __cnfn convert_long2_sat_rte(short2);
1612long2 __ovld __cnfn convert_long2_rtz(short2);
1613long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1614long2 __ovld __cnfn convert_long2_rtp(short2);
1615long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1616long2 __ovld __cnfn convert_long2_rtn(short2);
1617long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1618long2 __ovld __cnfn convert_long2(short2);
1619long2 __ovld __cnfn convert_long2_sat(short2);
1620long2 __ovld __cnfn convert_long2_rte(ushort2);
1621long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1622long2 __ovld __cnfn convert_long2_rtz(ushort2);
1623long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1624long2 __ovld __cnfn convert_long2_rtp(ushort2);
1625long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1626long2 __ovld __cnfn convert_long2_rtn(ushort2);
1627long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1628long2 __ovld __cnfn convert_long2(ushort2);
1629long2 __ovld __cnfn convert_long2_sat(ushort2);
1630long2 __ovld __cnfn convert_long2_rte(int2);
1631long2 __ovld __cnfn convert_long2_sat_rte(int2);
1632long2 __ovld __cnfn convert_long2_rtz(int2);
1633long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1634long2 __ovld __cnfn convert_long2_rtp(int2);
1635long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1636long2 __ovld __cnfn convert_long2_rtn(int2);
1637long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1638long2 __ovld __cnfn convert_long2(int2);
1639long2 __ovld __cnfn convert_long2_sat(int2);
1640long2 __ovld __cnfn convert_long2_rte(uint2);
1641long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1642long2 __ovld __cnfn convert_long2_rtz(uint2);
1643long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1644long2 __ovld __cnfn convert_long2_rtp(uint2);
1645long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1646long2 __ovld __cnfn convert_long2_rtn(uint2);
1647long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1648long2 __ovld __cnfn convert_long2(uint2);
1649long2 __ovld __cnfn convert_long2_sat(uint2);
1650long2 __ovld __cnfn convert_long2_rte(long2);
1651long2 __ovld __cnfn convert_long2_sat_rte(long2);
1652long2 __ovld __cnfn convert_long2_rtz(long2);
1653long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1654long2 __ovld __cnfn convert_long2_rtp(long2);
1655long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1656long2 __ovld __cnfn convert_long2_rtn(long2);
1657long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1658long2 __ovld __cnfn convert_long2(long2);
1659long2 __ovld __cnfn convert_long2_sat(long2);
1660long2 __ovld __cnfn convert_long2_rte(ulong2);
1661long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1662long2 __ovld __cnfn convert_long2_rtz(ulong2);
1663long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1664long2 __ovld __cnfn convert_long2_rtp(ulong2);
1665long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1666long2 __ovld __cnfn convert_long2_rtn(ulong2);
1667long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1668long2 __ovld __cnfn convert_long2(ulong2);
1669long2 __ovld __cnfn convert_long2_sat(ulong2);
1670long2 __ovld __cnfn convert_long2_rte(float2);
1671long2 __ovld __cnfn convert_long2_sat_rte(float2);
1672long2 __ovld __cnfn convert_long2_rtz(float2);
1673long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1674long2 __ovld __cnfn convert_long2_rtp(float2);
1675long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1676long2 __ovld __cnfn convert_long2_rtn(float2);
1677long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1678long2 __ovld __cnfn convert_long2(float2);
1679long2 __ovld __cnfn convert_long2_sat(float2);
1680ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1681ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1682ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1683ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1684ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1685ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1686ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1687ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1688ulong2 __ovld __cnfn convert_ulong2(char2);
1689ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1690ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1691ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1692ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1693ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1694ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1695ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1696ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1697ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1698ulong2 __ovld __cnfn convert_ulong2(uchar2);
1699ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1700ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1701ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1702ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1703ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1704ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1705ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1706ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1707ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1708ulong2 __ovld __cnfn convert_ulong2(short2);
1709ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1710ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1711ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1712ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1713ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1714ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1715ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1716ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1717ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1718ulong2 __ovld __cnfn convert_ulong2(ushort2);
1719ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1720ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1721ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1722ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1723ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1724ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1725ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1726ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1727ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1728ulong2 __ovld __cnfn convert_ulong2(int2);
1729ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1730ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1731ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1732ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1733ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1734ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1735ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1736ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1737ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1738ulong2 __ovld __cnfn convert_ulong2(uint2);
1739ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1740ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1741ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1742ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1743ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1744ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1745ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1746ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1747ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1748ulong2 __ovld __cnfn convert_ulong2(long2);
1749ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1750ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1751ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1752ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1753ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1754ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1755ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1756ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1757ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1758ulong2 __ovld __cnfn convert_ulong2(ulong2);
1759ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1760ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1761ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1762ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1763ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1764ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1765ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1766ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1767ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1768ulong2 __ovld __cnfn convert_ulong2(float2);
1769ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1770float2 __ovld __cnfn convert_float2_rte(char2);
1771float2 __ovld __cnfn convert_float2_rtz(char2);
1772float2 __ovld __cnfn convert_float2_rtp(char2);
1773float2 __ovld __cnfn convert_float2_rtn(char2);
1774float2 __ovld __cnfn convert_float2(char2);
1775float2 __ovld __cnfn convert_float2_rte(uchar2);
1776float2 __ovld __cnfn convert_float2_rtz(uchar2);
1777float2 __ovld __cnfn convert_float2_rtp(uchar2);
1778float2 __ovld __cnfn convert_float2_rtn(uchar2);
1779float2 __ovld __cnfn convert_float2(uchar2);
1780float2 __ovld __cnfn convert_float2_rte(short2);
1781float2 __ovld __cnfn convert_float2_rtz(short2);
1782float2 __ovld __cnfn convert_float2_rtp(short2);
1783float2 __ovld __cnfn convert_float2_rtn(short2);
1784float2 __ovld __cnfn convert_float2(short2);
1785float2 __ovld __cnfn convert_float2_rte(ushort2);
1786float2 __ovld __cnfn convert_float2_rtz(ushort2);
1787float2 __ovld __cnfn convert_float2_rtp(ushort2);
1788float2 __ovld __cnfn convert_float2_rtn(ushort2);
1789float2 __ovld __cnfn convert_float2(ushort2);
1790float2 __ovld __cnfn convert_float2_rte(int2);
1791float2 __ovld __cnfn convert_float2_rtz(int2);
1792float2 __ovld __cnfn convert_float2_rtp(int2);
1793float2 __ovld __cnfn convert_float2_rtn(int2);
1794float2 __ovld __cnfn convert_float2(int2);
1795float2 __ovld __cnfn convert_float2_rte(uint2);
1796float2 __ovld __cnfn convert_float2_rtz(uint2);
1797float2 __ovld __cnfn convert_float2_rtp(uint2);
1798float2 __ovld __cnfn convert_float2_rtn(uint2);
1799float2 __ovld __cnfn convert_float2(uint2);
1800float2 __ovld __cnfn convert_float2_rte(long2);
1801float2 __ovld __cnfn convert_float2_rtz(long2);
1802float2 __ovld __cnfn convert_float2_rtp(long2);
1803float2 __ovld __cnfn convert_float2_rtn(long2);
1804float2 __ovld __cnfn convert_float2(long2);
1805float2 __ovld __cnfn convert_float2_rte(ulong2);
1806float2 __ovld __cnfn convert_float2_rtz(ulong2);
1807float2 __ovld __cnfn convert_float2_rtp(ulong2);
1808float2 __ovld __cnfn convert_float2_rtn(ulong2);
1809float2 __ovld __cnfn convert_float2(ulong2);
1810float2 __ovld __cnfn convert_float2_rte(float2);
1811float2 __ovld __cnfn convert_float2_rtz(float2);
1812float2 __ovld __cnfn convert_float2_rtp(float2);
1813float2 __ovld __cnfn convert_float2_rtn(float2);
1814float2 __ovld __cnfn convert_float2(float2);
1815char3 __ovld __cnfn convert_char3_rte(char3);
1816char3 __ovld __cnfn convert_char3_sat_rte(char3);
1817char3 __ovld __cnfn convert_char3_rtz(char3);
1818char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1819char3 __ovld __cnfn convert_char3_rtp(char3);
1820char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1821char3 __ovld __cnfn convert_char3_rtn(char3);
1822char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1823char3 __ovld __cnfn convert_char3(char3);
1824char3 __ovld __cnfn convert_char3_sat(char3);
1825char3 __ovld __cnfn convert_char3_rte(uchar3);
1826char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1827char3 __ovld __cnfn convert_char3_rtz(uchar3);
1828char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1829char3 __ovld __cnfn convert_char3_rtp(uchar3);
1830char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1831char3 __ovld __cnfn convert_char3_rtn(uchar3);
1832char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1833char3 __ovld __cnfn convert_char3(uchar3);
1834char3 __ovld __cnfn convert_char3_sat(uchar3);
1835char3 __ovld __cnfn convert_char3_rte(short3);
1836char3 __ovld __cnfn convert_char3_sat_rte(short3);
1837char3 __ovld __cnfn convert_char3_rtz(short3);
1838char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1839char3 __ovld __cnfn convert_char3_rtp(short3);
1840char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1841char3 __ovld __cnfn convert_char3_rtn(short3);
1842char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1843char3 __ovld __cnfn convert_char3(short3);
1844char3 __ovld __cnfn convert_char3_sat(short3);
1845char3 __ovld __cnfn convert_char3_rte(ushort3);
1846char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1847char3 __ovld __cnfn convert_char3_rtz(ushort3);
1848char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1849char3 __ovld __cnfn convert_char3_rtp(ushort3);
1850char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1851char3 __ovld __cnfn convert_char3_rtn(ushort3);
1852char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1853char3 __ovld __cnfn convert_char3(ushort3);
1854char3 __ovld __cnfn convert_char3_sat(ushort3);
1855char3 __ovld __cnfn convert_char3_rte(int3);
1856char3 __ovld __cnfn convert_char3_sat_rte(int3);
1857char3 __ovld __cnfn convert_char3_rtz(int3);
1858char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1859char3 __ovld __cnfn convert_char3_rtp(int3);
1860char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1861char3 __ovld __cnfn convert_char3_rtn(int3);
1862char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1863char3 __ovld __cnfn convert_char3(int3);
1864char3 __ovld __cnfn convert_char3_sat(int3);
1865char3 __ovld __cnfn convert_char3_rte(uint3);
1866char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1867char3 __ovld __cnfn convert_char3_rtz(uint3);
1868char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1869char3 __ovld __cnfn convert_char3_rtp(uint3);
1870char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1871char3 __ovld __cnfn convert_char3_rtn(uint3);
1872char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1873char3 __ovld __cnfn convert_char3(uint3);
1874char3 __ovld __cnfn convert_char3_sat(uint3);
1875char3 __ovld __cnfn convert_char3_rte(long3);
1876char3 __ovld __cnfn convert_char3_sat_rte(long3);
1877char3 __ovld __cnfn convert_char3_rtz(long3);
1878char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1879char3 __ovld __cnfn convert_char3_rtp(long3);
1880char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1881char3 __ovld __cnfn convert_char3_rtn(long3);
1882char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1883char3 __ovld __cnfn convert_char3(long3);
1884char3 __ovld __cnfn convert_char3_sat(long3);
1885char3 __ovld __cnfn convert_char3_rte(ulong3);
1886char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1887char3 __ovld __cnfn convert_char3_rtz(ulong3);
1888char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1889char3 __ovld __cnfn convert_char3_rtp(ulong3);
1890char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1891char3 __ovld __cnfn convert_char3_rtn(ulong3);
1892char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1893char3 __ovld __cnfn convert_char3(ulong3);
1894char3 __ovld __cnfn convert_char3_sat(ulong3);
1895char3 __ovld __cnfn convert_char3_rte(float3);
1896char3 __ovld __cnfn convert_char3_sat_rte(float3);
1897char3 __ovld __cnfn convert_char3_rtz(float3);
1898char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1899char3 __ovld __cnfn convert_char3_rtp(float3);
1900char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1901char3 __ovld __cnfn convert_char3_rtn(float3);
1902char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1903char3 __ovld __cnfn convert_char3(float3);
1904char3 __ovld __cnfn convert_char3_sat(float3);
1905uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1906uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1907uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1908uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1909uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1910uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1911uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1912uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1913uchar3 __ovld __cnfn convert_uchar3(char3);
1914uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1915uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1916uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1917uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1918uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1919uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1920uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1921uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1922uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1923uchar3 __ovld __cnfn convert_uchar3(uchar3);
1924uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1925uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1926uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1927uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1928uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1929uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1930uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1931uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1932uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1933uchar3 __ovld __cnfn convert_uchar3(short3);
1934uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1935uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1936uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1937uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1938uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1939uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1940uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1941uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1942uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1943uchar3 __ovld __cnfn convert_uchar3(ushort3);
1944uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1945uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1946uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1947uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1948uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1949uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1950uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1951uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1952uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1953uchar3 __ovld __cnfn convert_uchar3(int3);
1954uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1955uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1956uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1957uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1958uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1959uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1960uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1961uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1962uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1963uchar3 __ovld __cnfn convert_uchar3(uint3);
1964uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1965uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1966uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1967uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1968uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1969uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1970uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1971uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1972uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1973uchar3 __ovld __cnfn convert_uchar3(long3);
1974uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1975uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1976uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1977uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1978uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1979uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1980uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1981uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1982uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1983uchar3 __ovld __cnfn convert_uchar3(ulong3);
1984uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1985uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1986uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1987uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1988uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1989uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1990uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1991uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
1992uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
1993uchar3 __ovld __cnfn convert_uchar3(float3);
1994uchar3 __ovld __cnfn convert_uchar3_sat(float3);
1995short3 __ovld __cnfn convert_short3_rte(char3);
1996short3 __ovld __cnfn convert_short3_sat_rte(char3);
1997short3 __ovld __cnfn convert_short3_rtz(char3);
1998short3 __ovld __cnfn convert_short3_sat_rtz(char3);
1999short3 __ovld __cnfn convert_short3_rtp(char3);
2000short3 __ovld __cnfn convert_short3_sat_rtp(char3);
2001short3 __ovld __cnfn convert_short3_rtn(char3);
2002short3 __ovld __cnfn convert_short3_sat_rtn(char3);
2003short3 __ovld __cnfn convert_short3(char3);
2004short3 __ovld __cnfn convert_short3_sat(char3);
2005short3 __ovld __cnfn convert_short3_rte(uchar3);
2006short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
2007short3 __ovld __cnfn convert_short3_rtz(uchar3);
2008short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
2009short3 __ovld __cnfn convert_short3_rtp(uchar3);
2010short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
2011short3 __ovld __cnfn convert_short3_rtn(uchar3);
2012short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
2013short3 __ovld __cnfn convert_short3(uchar3);
2014short3 __ovld __cnfn convert_short3_sat(uchar3);
2015short3 __ovld __cnfn convert_short3_rte(short3);
2016short3 __ovld __cnfn convert_short3_sat_rte(short3);
2017short3 __ovld __cnfn convert_short3_rtz(short3);
2018short3 __ovld __cnfn convert_short3_sat_rtz(short3);
2019short3 __ovld __cnfn convert_short3_rtp(short3);
2020short3 __ovld __cnfn convert_short3_sat_rtp(short3);
2021short3 __ovld __cnfn convert_short3_rtn(short3);
2022short3 __ovld __cnfn convert_short3_sat_rtn(short3);
2023short3 __ovld __cnfn convert_short3(short3);
2024short3 __ovld __cnfn convert_short3_sat(short3);
2025short3 __ovld __cnfn convert_short3_rte(ushort3);
2026short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
2027short3 __ovld __cnfn convert_short3_rtz(ushort3);
2028short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
2029short3 __ovld __cnfn convert_short3_rtp(ushort3);
2030short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
2031short3 __ovld __cnfn convert_short3_rtn(ushort3);
2032short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
2033short3 __ovld __cnfn convert_short3(ushort3);
2034short3 __ovld __cnfn convert_short3_sat(ushort3);
2035short3 __ovld __cnfn convert_short3_rte(int3);
2036short3 __ovld __cnfn convert_short3_sat_rte(int3);
2037short3 __ovld __cnfn convert_short3_rtz(int3);
2038short3 __ovld __cnfn convert_short3_sat_rtz(int3);
2039short3 __ovld __cnfn convert_short3_rtp(int3);
2040short3 __ovld __cnfn convert_short3_sat_rtp(int3);
2041short3 __ovld __cnfn convert_short3_rtn(int3);
2042short3 __ovld __cnfn convert_short3_sat_rtn(int3);
2043short3 __ovld __cnfn convert_short3(int3);
2044short3 __ovld __cnfn convert_short3_sat(int3);
2045short3 __ovld __cnfn convert_short3_rte(uint3);
2046short3 __ovld __cnfn convert_short3_sat_rte(uint3);
2047short3 __ovld __cnfn convert_short3_rtz(uint3);
2048short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
2049short3 __ovld __cnfn convert_short3_rtp(uint3);
2050short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
2051short3 __ovld __cnfn convert_short3_rtn(uint3);
2052short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
2053short3 __ovld __cnfn convert_short3(uint3);
2054short3 __ovld __cnfn convert_short3_sat(uint3);
2055short3 __ovld __cnfn convert_short3_rte(long3);
2056short3 __ovld __cnfn convert_short3_sat_rte(long3);
2057short3 __ovld __cnfn convert_short3_rtz(long3);
2058short3 __ovld __cnfn convert_short3_sat_rtz(long3);
2059short3 __ovld __cnfn convert_short3_rtp(long3);
2060short3 __ovld __cnfn convert_short3_sat_rtp(long3);
2061short3 __ovld __cnfn convert_short3_rtn(long3);
2062short3 __ovld __cnfn convert_short3_sat_rtn(long3);
2063short3 __ovld __cnfn convert_short3(long3);
2064short3 __ovld __cnfn convert_short3_sat(long3);
2065short3 __ovld __cnfn convert_short3_rte(ulong3);
2066short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
2067short3 __ovld __cnfn convert_short3_rtz(ulong3);
2068short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
2069short3 __ovld __cnfn convert_short3_rtp(ulong3);
2070short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
2071short3 __ovld __cnfn convert_short3_rtn(ulong3);
2072short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
2073short3 __ovld __cnfn convert_short3(ulong3);
2074short3 __ovld __cnfn convert_short3_sat(ulong3);
2075short3 __ovld __cnfn convert_short3_rte(float3);
2076short3 __ovld __cnfn convert_short3_sat_rte(float3);
2077short3 __ovld __cnfn convert_short3_rtz(float3);
2078short3 __ovld __cnfn convert_short3_sat_rtz(float3);
2079short3 __ovld __cnfn convert_short3_rtp(float3);
2080short3 __ovld __cnfn convert_short3_sat_rtp(float3);
2081short3 __ovld __cnfn convert_short3_rtn(float3);
2082short3 __ovld __cnfn convert_short3_sat_rtn(float3);
2083short3 __ovld __cnfn convert_short3(float3);
2084short3 __ovld __cnfn convert_short3_sat(float3);
2085ushort3 __ovld __cnfn convert_ushort3_rte(char3);
2086ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
2087ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
2088ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
2089ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
2090ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
2091ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
2092ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
2093ushort3 __ovld __cnfn convert_ushort3(char3);
2094ushort3 __ovld __cnfn convert_ushort3_sat(char3);
2095ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
2096ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
2097ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
2098ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
2099ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
2100ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
2101ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
2102ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
2103ushort3 __ovld __cnfn convert_ushort3(uchar3);
2104ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
2105ushort3 __ovld __cnfn convert_ushort3_rte(short3);
2106ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
2107ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
2108ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
2109ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
2110ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
2111ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
2112ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
2113ushort3 __ovld __cnfn convert_ushort3(short3);
2114ushort3 __ovld __cnfn convert_ushort3_sat(short3);
2115ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
2116ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
2117ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
2118ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
2119ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
2120ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
2121ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
2122ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
2123ushort3 __ovld __cnfn convert_ushort3(ushort3);
2124ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
2125ushort3 __ovld __cnfn convert_ushort3_rte(int3);
2126ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
2127ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
2128ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
2129ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
2130ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
2131ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
2132ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
2133ushort3 __ovld __cnfn convert_ushort3(int3);
2134ushort3 __ovld __cnfn convert_ushort3_sat(int3);
2135ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
2136ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
2137ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
2138ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
2139ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
2140ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
2141ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
2142ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
2143ushort3 __ovld __cnfn convert_ushort3(uint3);
2144ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
2145ushort3 __ovld __cnfn convert_ushort3_rte(long3);
2146ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
2147ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
2148ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
2149ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
2150ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
2151ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
2152ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
2153ushort3 __ovld __cnfn convert_ushort3(long3);
2154ushort3 __ovld __cnfn convert_ushort3_sat(long3);
2155ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
2156ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
2157ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
2158ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
2159ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
2160ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
2161ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
2162ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
2163ushort3 __ovld __cnfn convert_ushort3(ulong3);
2164ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
2165ushort3 __ovld __cnfn convert_ushort3_rte(float3);
2166ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
2167ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
2168ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
2169ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
2170ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
2171ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
2172ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
2173ushort3 __ovld __cnfn convert_ushort3(float3);
2174ushort3 __ovld __cnfn convert_ushort3_sat(float3);
2175int3 __ovld __cnfn convert_int3_rte(char3);
2176int3 __ovld __cnfn convert_int3_sat_rte(char3);
2177int3 __ovld __cnfn convert_int3_rtz(char3);
2178int3 __ovld __cnfn convert_int3_sat_rtz(char3);
2179int3 __ovld __cnfn convert_int3_rtp(char3);
2180int3 __ovld __cnfn convert_int3_sat_rtp(char3);
2181int3 __ovld __cnfn convert_int3_rtn(char3);
2182int3 __ovld __cnfn convert_int3_sat_rtn(char3);
2183int3 __ovld __cnfn convert_int3(char3);
2184int3 __ovld __cnfn convert_int3_sat(char3);
2185int3 __ovld __cnfn convert_int3_rte(uchar3);
2186int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
2187int3 __ovld __cnfn convert_int3_rtz(uchar3);
2188int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
2189int3 __ovld __cnfn convert_int3_rtp(uchar3);
2190int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
2191int3 __ovld __cnfn convert_int3_rtn(uchar3);
2192int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
2193int3 __ovld __cnfn convert_int3(uchar3);
2194int3 __ovld __cnfn convert_int3_sat(uchar3);
2195int3 __ovld __cnfn convert_int3_rte(short3);
2196int3 __ovld __cnfn convert_int3_sat_rte(short3);
2197int3 __ovld __cnfn convert_int3_rtz(short3);
2198int3 __ovld __cnfn convert_int3_sat_rtz(short3);
2199int3 __ovld __cnfn convert_int3_rtp(short3);
2200int3 __ovld __cnfn convert_int3_sat_rtp(short3);
2201int3 __ovld __cnfn convert_int3_rtn(short3);
2202int3 __ovld __cnfn convert_int3_sat_rtn(short3);
2203int3 __ovld __cnfn convert_int3(short3);
2204int3 __ovld __cnfn convert_int3_sat(short3);
2205int3 __ovld __cnfn convert_int3_rte(ushort3);
2206int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
2207int3 __ovld __cnfn convert_int3_rtz(ushort3);
2208int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
2209int3 __ovld __cnfn convert_int3_rtp(ushort3);
2210int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
2211int3 __ovld __cnfn convert_int3_rtn(ushort3);
2212int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
2213int3 __ovld __cnfn convert_int3(ushort3);
2214int3 __ovld __cnfn convert_int3_sat(ushort3);
2215int3 __ovld __cnfn convert_int3_rte(int3);
2216int3 __ovld __cnfn convert_int3_sat_rte(int3);
2217int3 __ovld __cnfn convert_int3_rtz(int3);
2218int3 __ovld __cnfn convert_int3_sat_rtz(int3);
2219int3 __ovld __cnfn convert_int3_rtp(int3);
2220int3 __ovld __cnfn convert_int3_sat_rtp(int3);
2221int3 __ovld __cnfn convert_int3_rtn(int3);
2222int3 __ovld __cnfn convert_int3_sat_rtn(int3);
2223int3 __ovld __cnfn convert_int3(int3);
2224int3 __ovld __cnfn convert_int3_sat(int3);
2225int3 __ovld __cnfn convert_int3_rte(uint3);
2226int3 __ovld __cnfn convert_int3_sat_rte(uint3);
2227int3 __ovld __cnfn convert_int3_rtz(uint3);
2228int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
2229int3 __ovld __cnfn convert_int3_rtp(uint3);
2230int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
2231int3 __ovld __cnfn convert_int3_rtn(uint3);
2232int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
2233int3 __ovld __cnfn convert_int3(uint3);
2234int3 __ovld __cnfn convert_int3_sat(uint3);
2235int3 __ovld __cnfn convert_int3_rte(long3);
2236int3 __ovld __cnfn convert_int3_sat_rte(long3);
2237int3 __ovld __cnfn convert_int3_rtz(long3);
2238int3 __ovld __cnfn convert_int3_sat_rtz(long3);
2239int3 __ovld __cnfn convert_int3_rtp(long3);
2240int3 __ovld __cnfn convert_int3_sat_rtp(long3);
2241int3 __ovld __cnfn convert_int3_rtn(long3);
2242int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2243int3 __ovld __cnfn convert_int3(long3);
2244int3 __ovld __cnfn convert_int3_sat(long3);
2245int3 __ovld __cnfn convert_int3_rte(ulong3);
2246int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2247int3 __ovld __cnfn convert_int3_rtz(ulong3);
2248int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2249int3 __ovld __cnfn convert_int3_rtp(ulong3);
2250int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2251int3 __ovld __cnfn convert_int3_rtn(ulong3);
2252int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2253int3 __ovld __cnfn convert_int3(ulong3);
2254int3 __ovld __cnfn convert_int3_sat(ulong3);
2255int3 __ovld __cnfn convert_int3_rte(float3);
2256int3 __ovld __cnfn convert_int3_sat_rte(float3);
2257int3 __ovld __cnfn convert_int3_rtz(float3);
2258int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2259int3 __ovld __cnfn convert_int3_rtp(float3);
2260int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2261int3 __ovld __cnfn convert_int3_rtn(float3);
2262int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2263int3 __ovld __cnfn convert_int3(float3);
2264int3 __ovld __cnfn convert_int3_sat(float3);
2265uint3 __ovld __cnfn convert_uint3_rte(char3);
2266uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2267uint3 __ovld __cnfn convert_uint3_rtz(char3);
2268uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2269uint3 __ovld __cnfn convert_uint3_rtp(char3);
2270uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2271uint3 __ovld __cnfn convert_uint3_rtn(char3);
2272uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2273uint3 __ovld __cnfn convert_uint3(char3);
2274uint3 __ovld __cnfn convert_uint3_sat(char3);
2275uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2276uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2277uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2278uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2279uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2280uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2281uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2282uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2283uint3 __ovld __cnfn convert_uint3(uchar3);
2284uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2285uint3 __ovld __cnfn convert_uint3_rte(short3);
2286uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2287uint3 __ovld __cnfn convert_uint3_rtz(short3);
2288uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2289uint3 __ovld __cnfn convert_uint3_rtp(short3);
2290uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2291uint3 __ovld __cnfn convert_uint3_rtn(short3);
2292uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2293uint3 __ovld __cnfn convert_uint3(short3);
2294uint3 __ovld __cnfn convert_uint3_sat(short3);
2295uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2296uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2297uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2298uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2299uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2300uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2301uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2302uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2303uint3 __ovld __cnfn convert_uint3(ushort3);
2304uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2305uint3 __ovld __cnfn convert_uint3_rte(int3);
2306uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2307uint3 __ovld __cnfn convert_uint3_rtz(int3);
2308uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2309uint3 __ovld __cnfn convert_uint3_rtp(int3);
2310uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2311uint3 __ovld __cnfn convert_uint3_rtn(int3);
2312uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2313uint3 __ovld __cnfn convert_uint3(int3);
2314uint3 __ovld __cnfn convert_uint3_sat(int3);
2315uint3 __ovld __cnfn convert_uint3_rte(uint3);
2316uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2317uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2318uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2319uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2320uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2321uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2322uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2323uint3 __ovld __cnfn convert_uint3(uint3);
2324uint3 __ovld __cnfn convert_uint3_sat(uint3);
2325uint3 __ovld __cnfn convert_uint3_rte(long3);
2326uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2327uint3 __ovld __cnfn convert_uint3_rtz(long3);
2328uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2329uint3 __ovld __cnfn convert_uint3_rtp(long3);
2330uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2331uint3 __ovld __cnfn convert_uint3_rtn(long3);
2332uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2333uint3 __ovld __cnfn convert_uint3(long3);
2334uint3 __ovld __cnfn convert_uint3_sat(long3);
2335uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2336uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2337uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2338uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2339uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2340uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2341uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2342uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2343uint3 __ovld __cnfn convert_uint3(ulong3);
2344uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2345uint3 __ovld __cnfn convert_uint3_rte(float3);
2346uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2347uint3 __ovld __cnfn convert_uint3_rtz(float3);
2348uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2349uint3 __ovld __cnfn convert_uint3_rtp(float3);
2350uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2351uint3 __ovld __cnfn convert_uint3_rtn(float3);
2352uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2353uint3 __ovld __cnfn convert_uint3(float3);
2354uint3 __ovld __cnfn convert_uint3_sat(float3);
2355long3 __ovld __cnfn convert_long3_rte(char3);
2356long3 __ovld __cnfn convert_long3_sat_rte(char3);
2357long3 __ovld __cnfn convert_long3_rtz(char3);
2358long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2359long3 __ovld __cnfn convert_long3_rtp(char3);
2360long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2361long3 __ovld __cnfn convert_long3_rtn(char3);
2362long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2363long3 __ovld __cnfn convert_long3(char3);
2364long3 __ovld __cnfn convert_long3_sat(char3);
2365long3 __ovld __cnfn convert_long3_rte(uchar3);
2366long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2367long3 __ovld __cnfn convert_long3_rtz(uchar3);
2368long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2369long3 __ovld __cnfn convert_long3_rtp(uchar3);
2370long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2371long3 __ovld __cnfn convert_long3_rtn(uchar3);
2372long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2373long3 __ovld __cnfn convert_long3(uchar3);
2374long3 __ovld __cnfn convert_long3_sat(uchar3);
2375long3 __ovld __cnfn convert_long3_rte(short3);
2376long3 __ovld __cnfn convert_long3_sat_rte(short3);
2377long3 __ovld __cnfn convert_long3_rtz(short3);
2378long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2379long3 __ovld __cnfn convert_long3_rtp(short3);
2380long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2381long3 __ovld __cnfn convert_long3_rtn(short3);
2382long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2383long3 __ovld __cnfn convert_long3(short3);
2384long3 __ovld __cnfn convert_long3_sat(short3);
2385long3 __ovld __cnfn convert_long3_rte(ushort3);
2386long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2387long3 __ovld __cnfn convert_long3_rtz(ushort3);
2388long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2389long3 __ovld __cnfn convert_long3_rtp(ushort3);
2390long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2391long3 __ovld __cnfn convert_long3_rtn(ushort3);
2392long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2393long3 __ovld __cnfn convert_long3(ushort3);
2394long3 __ovld __cnfn convert_long3_sat(ushort3);
2395long3 __ovld __cnfn convert_long3_rte(int3);
2396long3 __ovld __cnfn convert_long3_sat_rte(int3);
2397long3 __ovld __cnfn convert_long3_rtz(int3);
2398long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2399long3 __ovld __cnfn convert_long3_rtp(int3);
2400long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2401long3 __ovld __cnfn convert_long3_rtn(int3);
2402long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2403long3 __ovld __cnfn convert_long3(int3);
2404long3 __ovld __cnfn convert_long3_sat(int3);
2405long3 __ovld __cnfn convert_long3_rte(uint3);
2406long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2407long3 __ovld __cnfn convert_long3_rtz(uint3);
2408long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2409long3 __ovld __cnfn convert_long3_rtp(uint3);
2410long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2411long3 __ovld __cnfn convert_long3_rtn(uint3);
2412long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2413long3 __ovld __cnfn convert_long3(uint3);
2414long3 __ovld __cnfn convert_long3_sat(uint3);
2415long3 __ovld __cnfn convert_long3_rte(long3);
2416long3 __ovld __cnfn convert_long3_sat_rte(long3);
2417long3 __ovld __cnfn convert_long3_rtz(long3);
2418long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2419long3 __ovld __cnfn convert_long3_rtp(long3);
2420long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2421long3 __ovld __cnfn convert_long3_rtn(long3);
2422long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2423long3 __ovld __cnfn convert_long3(long3);
2424long3 __ovld __cnfn convert_long3_sat(long3);
2425long3 __ovld __cnfn convert_long3_rte(ulong3);
2426long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2427long3 __ovld __cnfn convert_long3_rtz(ulong3);
2428long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2429long3 __ovld __cnfn convert_long3_rtp(ulong3);
2430long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2431long3 __ovld __cnfn convert_long3_rtn(ulong3);
2432long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2433long3 __ovld __cnfn convert_long3(ulong3);
2434long3 __ovld __cnfn convert_long3_sat(ulong3);
2435long3 __ovld __cnfn convert_long3_rte(float3);
2436long3 __ovld __cnfn convert_long3_sat_rte(float3);
2437long3 __ovld __cnfn convert_long3_rtz(float3);
2438long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2439long3 __ovld __cnfn convert_long3_rtp(float3);
2440long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2441long3 __ovld __cnfn convert_long3_rtn(float3);
2442long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2443long3 __ovld __cnfn convert_long3(float3);
2444long3 __ovld __cnfn convert_long3_sat(float3);
2445ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2446ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2447ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2448ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2449ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2450ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2451ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2452ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2453ulong3 __ovld __cnfn convert_ulong3(char3);
2454ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2455ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2456ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2457ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2458ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2459ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2460ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2461ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2462ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2463ulong3 __ovld __cnfn convert_ulong3(uchar3);
2464ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2465ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2466ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2467ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2468ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2469ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2470ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2471ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2472ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2473ulong3 __ovld __cnfn convert_ulong3(short3);
2474ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2475ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2476ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2477ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2478ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2479ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2480ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2481ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2482ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2483ulong3 __ovld __cnfn convert_ulong3(ushort3);
2484ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2485ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2486ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2487ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2488ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2489ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2490ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2491ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2492ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2493ulong3 __ovld __cnfn convert_ulong3(int3);
2494ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2495ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2496ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2497ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2498ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2499ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2500ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2501ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2502ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2503ulong3 __ovld __cnfn convert_ulong3(uint3);
2504ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2505ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2506ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2507ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2508ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2509ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2510ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2511ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2512ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2513ulong3 __ovld __cnfn convert_ulong3(long3);
2514ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2515ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2516ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2517ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2518ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2519ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2520ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2521ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2522ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2523ulong3 __ovld __cnfn convert_ulong3(ulong3);
2524ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2525ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2526ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2527ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2528ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2529ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2530ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2531ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2532ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2533ulong3 __ovld __cnfn convert_ulong3(float3);
2534ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2535float3 __ovld __cnfn convert_float3_rte(char3);
2536float3 __ovld __cnfn convert_float3_rtz(char3);
2537float3 __ovld __cnfn convert_float3_rtp(char3);
2538float3 __ovld __cnfn convert_float3_rtn(char3);
2539float3 __ovld __cnfn convert_float3(char3);
2540float3 __ovld __cnfn convert_float3_rte(uchar3);
2541float3 __ovld __cnfn convert_float3_rtz(uchar3);
2542float3 __ovld __cnfn convert_float3_rtp(uchar3);
2543float3 __ovld __cnfn convert_float3_rtn(uchar3);
2544float3 __ovld __cnfn convert_float3(uchar3);
2545float3 __ovld __cnfn convert_float3_rte(short3);
2546float3 __ovld __cnfn convert_float3_rtz(short3);
2547float3 __ovld __cnfn convert_float3_rtp(short3);
2548float3 __ovld __cnfn convert_float3_rtn(short3);
2549float3 __ovld __cnfn convert_float3(short3);
2550float3 __ovld __cnfn convert_float3_rte(ushort3);
2551float3 __ovld __cnfn convert_float3_rtz(ushort3);
2552float3 __ovld __cnfn convert_float3_rtp(ushort3);
2553float3 __ovld __cnfn convert_float3_rtn(ushort3);
2554float3 __ovld __cnfn convert_float3(ushort3);
2555float3 __ovld __cnfn convert_float3_rte(int3);
2556float3 __ovld __cnfn convert_float3_rtz(int3);
2557float3 __ovld __cnfn convert_float3_rtp(int3);
2558float3 __ovld __cnfn convert_float3_rtn(int3);
2559float3 __ovld __cnfn convert_float3(int3);
2560float3 __ovld __cnfn convert_float3_rte(uint3);
2561float3 __ovld __cnfn convert_float3_rtz(uint3);
2562float3 __ovld __cnfn convert_float3_rtp(uint3);
2563float3 __ovld __cnfn convert_float3_rtn(uint3);
2564float3 __ovld __cnfn convert_float3(uint3);
2565float3 __ovld __cnfn convert_float3_rte(long3);
2566float3 __ovld __cnfn convert_float3_rtz(long3);
2567float3 __ovld __cnfn convert_float3_rtp(long3);
2568float3 __ovld __cnfn convert_float3_rtn(long3);
2569float3 __ovld __cnfn convert_float3(long3);
2570float3 __ovld __cnfn convert_float3_rte(ulong3);
2571float3 __ovld __cnfn convert_float3_rtz(ulong3);
2572float3 __ovld __cnfn convert_float3_rtp(ulong3);
2573float3 __ovld __cnfn convert_float3_rtn(ulong3);
2574float3 __ovld __cnfn convert_float3(ulong3);
2575float3 __ovld __cnfn convert_float3_rte(float3);
2576float3 __ovld __cnfn convert_float3_rtz(float3);
2577float3 __ovld __cnfn convert_float3_rtp(float3);
2578float3 __ovld __cnfn convert_float3_rtn(float3);
2579float3 __ovld __cnfn convert_float3(float3);
2580char4 __ovld __cnfn convert_char4_rte(char4);
2581char4 __ovld __cnfn convert_char4_sat_rte(char4);
2582char4 __ovld __cnfn convert_char4_rtz(char4);
2583char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2584char4 __ovld __cnfn convert_char4_rtp(char4);
2585char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2586char4 __ovld __cnfn convert_char4_rtn(char4);
2587char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2588char4 __ovld __cnfn convert_char4(char4);
2589char4 __ovld __cnfn convert_char4_sat(char4);
2590char4 __ovld __cnfn convert_char4_rte(uchar4);
2591char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2592char4 __ovld __cnfn convert_char4_rtz(uchar4);
2593char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2594char4 __ovld __cnfn convert_char4_rtp(uchar4);
2595char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2596char4 __ovld __cnfn convert_char4_rtn(uchar4);
2597char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2598char4 __ovld __cnfn convert_char4(uchar4);
2599char4 __ovld __cnfn convert_char4_sat(uchar4);
2600char4 __ovld __cnfn convert_char4_rte(short4);
2601char4 __ovld __cnfn convert_char4_sat_rte(short4);
2602char4 __ovld __cnfn convert_char4_rtz(short4);
2603char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2604char4 __ovld __cnfn convert_char4_rtp(short4);
2605char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2606char4 __ovld __cnfn convert_char4_rtn(short4);
2607char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2608char4 __ovld __cnfn convert_char4(short4);
2609char4 __ovld __cnfn convert_char4_sat(short4);
2610char4 __ovld __cnfn convert_char4_rte(ushort4);
2611char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2612char4 __ovld __cnfn convert_char4_rtz(ushort4);
2613char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2614char4 __ovld __cnfn convert_char4_rtp(ushort4);
2615char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2616char4 __ovld __cnfn convert_char4_rtn(ushort4);
2617char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2618char4 __ovld __cnfn convert_char4(ushort4);
2619char4 __ovld __cnfn convert_char4_sat(ushort4);
2620char4 __ovld __cnfn convert_char4_rte(int4);
2621char4 __ovld __cnfn convert_char4_sat_rte(int4);
2622char4 __ovld __cnfn convert_char4_rtz(int4);
2623char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2624char4 __ovld __cnfn convert_char4_rtp(int4);
2625char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2626char4 __ovld __cnfn convert_char4_rtn(int4);
2627char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2628char4 __ovld __cnfn convert_char4(int4);
2629char4 __ovld __cnfn convert_char4_sat(int4);
2630char4 __ovld __cnfn convert_char4_rte(uint4);
2631char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2632char4 __ovld __cnfn convert_char4_rtz(uint4);
2633char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2634char4 __ovld __cnfn convert_char4_rtp(uint4);
2635char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2636char4 __ovld __cnfn convert_char4_rtn(uint4);
2637char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2638char4 __ovld __cnfn convert_char4(uint4);
2639char4 __ovld __cnfn convert_char4_sat(uint4);
2640char4 __ovld __cnfn convert_char4_rte(long4);
2641char4 __ovld __cnfn convert_char4_sat_rte(long4);
2642char4 __ovld __cnfn convert_char4_rtz(long4);
2643char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2644char4 __ovld __cnfn convert_char4_rtp(long4);
2645char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2646char4 __ovld __cnfn convert_char4_rtn(long4);
2647char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2648char4 __ovld __cnfn convert_char4(long4);
2649char4 __ovld __cnfn convert_char4_sat(long4);
2650char4 __ovld __cnfn convert_char4_rte(ulong4);
2651char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2652char4 __ovld __cnfn convert_char4_rtz(ulong4);
2653char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2654char4 __ovld __cnfn convert_char4_rtp(ulong4);
2655char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2656char4 __ovld __cnfn convert_char4_rtn(ulong4);
2657char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2658char4 __ovld __cnfn convert_char4(ulong4);
2659char4 __ovld __cnfn convert_char4_sat(ulong4);
2660char4 __ovld __cnfn convert_char4_rte(float4);
2661char4 __ovld __cnfn convert_char4_sat_rte(float4);
2662char4 __ovld __cnfn convert_char4_rtz(float4);
2663char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2664char4 __ovld __cnfn convert_char4_rtp(float4);
2665char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2666char4 __ovld __cnfn convert_char4_rtn(float4);
2667char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2668char4 __ovld __cnfn convert_char4(float4);
2669char4 __ovld __cnfn convert_char4_sat(float4);
2670uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2671uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2672uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2673uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2674uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2675uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2676uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2677uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2678uchar4 __ovld __cnfn convert_uchar4(char4);
2679uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2680uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2681uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2682uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2683uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2684uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2685uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2686uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2687uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2688uchar4 __ovld __cnfn convert_uchar4(uchar4);
2689uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2690uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2691uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2692uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2693uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2694uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2695uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2696uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2697uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2698uchar4 __ovld __cnfn convert_uchar4(short4);
2699uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2700uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2701uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2702uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2703uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2704uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2705uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2706uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2707uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2708uchar4 __ovld __cnfn convert_uchar4(ushort4);
2709uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2710uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2711uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2712uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2713uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2714uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2715uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2716uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2717uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2718uchar4 __ovld __cnfn convert_uchar4(int4);
2719uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2720uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2721uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2722uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2723uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2724uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2725uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2726uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2727uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2728uchar4 __ovld __cnfn convert_uchar4(uint4);
2729uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2730uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2731uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2732uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2733uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2734uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2735uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2736uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2737uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2738uchar4 __ovld __cnfn convert_uchar4(long4);
2739uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2740uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2741uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2742uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2743uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2744uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2745uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2746uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2747uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2748uchar4 __ovld __cnfn convert_uchar4(ulong4);
2749uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2750uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2751uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2752uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2753uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2754uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2755uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2756uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2757uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2758uchar4 __ovld __cnfn convert_uchar4(float4);
2759uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2760short4 __ovld __cnfn convert_short4_rte(char4);
2761short4 __ovld __cnfn convert_short4_sat_rte(char4);
2762short4 __ovld __cnfn convert_short4_rtz(char4);
2763short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2764short4 __ovld __cnfn convert_short4_rtp(char4);
2765short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2766short4 __ovld __cnfn convert_short4_rtn(char4);
2767short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2768short4 __ovld __cnfn convert_short4(char4);
2769short4 __ovld __cnfn convert_short4_sat(char4);
2770short4 __ovld __cnfn convert_short4_rte(uchar4);
2771short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2772short4 __ovld __cnfn convert_short4_rtz(uchar4);
2773short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2774short4 __ovld __cnfn convert_short4_rtp(uchar4);
2775short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2776short4 __ovld __cnfn convert_short4_rtn(uchar4);
2777short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2778short4 __ovld __cnfn convert_short4(uchar4);
2779short4 __ovld __cnfn convert_short4_sat(uchar4);
2780short4 __ovld __cnfn convert_short4_rte(short4);
2781short4 __ovld __cnfn convert_short4_sat_rte(short4);
2782short4 __ovld __cnfn convert_short4_rtz(short4);
2783short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2784short4 __ovld __cnfn convert_short4_rtp(short4);
2785short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2786short4 __ovld __cnfn convert_short4_rtn(short4);
2787short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2788short4 __ovld __cnfn convert_short4(short4);
2789short4 __ovld __cnfn convert_short4_sat(short4);
2790short4 __ovld __cnfn convert_short4_rte(ushort4);
2791short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2792short4 __ovld __cnfn convert_short4_rtz(ushort4);
2793short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2794short4 __ovld __cnfn convert_short4_rtp(ushort4);
2795short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2796short4 __ovld __cnfn convert_short4_rtn(ushort4);
2797short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2798short4 __ovld __cnfn convert_short4(ushort4);
2799short4 __ovld __cnfn convert_short4_sat(ushort4);
2800short4 __ovld __cnfn convert_short4_rte(int4);
2801short4 __ovld __cnfn convert_short4_sat_rte(int4);
2802short4 __ovld __cnfn convert_short4_rtz(int4);
2803short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2804short4 __ovld __cnfn convert_short4_rtp(int4);
2805short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2806short4 __ovld __cnfn convert_short4_rtn(int4);
2807short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2808short4 __ovld __cnfn convert_short4(int4);
2809short4 __ovld __cnfn convert_short4_sat(int4);
2810short4 __ovld __cnfn convert_short4_rte(uint4);
2811short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2812short4 __ovld __cnfn convert_short4_rtz(uint4);
2813short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2814short4 __ovld __cnfn convert_short4_rtp(uint4);
2815short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2816short4 __ovld __cnfn convert_short4_rtn(uint4);
2817short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2818short4 __ovld __cnfn convert_short4(uint4);
2819short4 __ovld __cnfn convert_short4_sat(uint4);
2820short4 __ovld __cnfn convert_short4_rte(long4);
2821short4 __ovld __cnfn convert_short4_sat_rte(long4);
2822short4 __ovld __cnfn convert_short4_rtz(long4);
2823short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2824short4 __ovld __cnfn convert_short4_rtp(long4);
2825short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2826short4 __ovld __cnfn convert_short4_rtn(long4);
2827short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2828short4 __ovld __cnfn convert_short4(long4);
2829short4 __ovld __cnfn convert_short4_sat(long4);
2830short4 __ovld __cnfn convert_short4_rte(ulong4);
2831short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2832short4 __ovld __cnfn convert_short4_rtz(ulong4);
2833short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2834short4 __ovld __cnfn convert_short4_rtp(ulong4);
2835short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2836short4 __ovld __cnfn convert_short4_rtn(ulong4);
2837short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2838short4 __ovld __cnfn convert_short4(ulong4);
2839short4 __ovld __cnfn convert_short4_sat(ulong4);
2840short4 __ovld __cnfn convert_short4_rte(float4);
2841short4 __ovld __cnfn convert_short4_sat_rte(float4);
2842short4 __ovld __cnfn convert_short4_rtz(float4);
2843short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2844short4 __ovld __cnfn convert_short4_rtp(float4);
2845short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2846short4 __ovld __cnfn convert_short4_rtn(float4);
2847short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2848short4 __ovld __cnfn convert_short4(float4);
2849short4 __ovld __cnfn convert_short4_sat(float4);
2850ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2851ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2852ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2853ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2854ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2855ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2856ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2857ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2858ushort4 __ovld __cnfn convert_ushort4(char4);
2859ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2860ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2861ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2862ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2863ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2864ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2865ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2866ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2867ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2868ushort4 __ovld __cnfn convert_ushort4(uchar4);
2869ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2870ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2871ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2872ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2873ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2874ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2875ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2876ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2877ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2878ushort4 __ovld __cnfn convert_ushort4(short4);
2879ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2880ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2881ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2882ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2883ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2884ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2885ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2886ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2887ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2888ushort4 __ovld __cnfn convert_ushort4(ushort4);
2889ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2890ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2891ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2892ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2893ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2894ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2895ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2896ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2897ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2898ushort4 __ovld __cnfn convert_ushort4(int4);
2899ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2900ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2901ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2902ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2903ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2904ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2905ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2906ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2907ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2908ushort4 __ovld __cnfn convert_ushort4(uint4);
2909ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2910ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2911ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2912ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2913ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2914ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2915ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2916ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2917ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2918ushort4 __ovld __cnfn convert_ushort4(long4);
2919ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2920ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2921ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2922ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2923ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2924ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2925ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2926ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2927ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2928ushort4 __ovld __cnfn convert_ushort4(ulong4);
2929ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2930ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2931ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2932ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2933ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2934ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2935ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2936ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2937ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2938ushort4 __ovld __cnfn convert_ushort4(float4);
2939ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2940int4 __ovld __cnfn convert_int4_rte(char4);
2941int4 __ovld __cnfn convert_int4_sat_rte(char4);
2942int4 __ovld __cnfn convert_int4_rtz(char4);
2943int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2944int4 __ovld __cnfn convert_int4_rtp(char4);
2945int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2946int4 __ovld __cnfn convert_int4_rtn(char4);
2947int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2948int4 __ovld __cnfn convert_int4(char4);
2949int4 __ovld __cnfn convert_int4_sat(char4);
2950int4 __ovld __cnfn convert_int4_rte(uchar4);
2951int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2952int4 __ovld __cnfn convert_int4_rtz(uchar4);
2953int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2954int4 __ovld __cnfn convert_int4_rtp(uchar4);
2955int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2956int4 __ovld __cnfn convert_int4_rtn(uchar4);
2957int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2958int4 __ovld __cnfn convert_int4(uchar4);
2959int4 __ovld __cnfn convert_int4_sat(uchar4);
2960int4 __ovld __cnfn convert_int4_rte(short4);
2961int4 __ovld __cnfn convert_int4_sat_rte(short4);
2962int4 __ovld __cnfn convert_int4_rtz(short4);
2963int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2964int4 __ovld __cnfn convert_int4_rtp(short4);
2965int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2966int4 __ovld __cnfn convert_int4_rtn(short4);
2967int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2968int4 __ovld __cnfn convert_int4(short4);
2969int4 __ovld __cnfn convert_int4_sat(short4);
2970int4 __ovld __cnfn convert_int4_rte(ushort4);
2971int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2972int4 __ovld __cnfn convert_int4_rtz(ushort4);
2973int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2974int4 __ovld __cnfn convert_int4_rtp(ushort4);
2975int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2976int4 __ovld __cnfn convert_int4_rtn(ushort4);
2977int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2978int4 __ovld __cnfn convert_int4(ushort4);
2979int4 __ovld __cnfn convert_int4_sat(ushort4);
2980int4 __ovld __cnfn convert_int4_rte(int4);
2981int4 __ovld __cnfn convert_int4_sat_rte(int4);
2982int4 __ovld __cnfn convert_int4_rtz(int4);
2983int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2984int4 __ovld __cnfn convert_int4_rtp(int4);
2985int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2986int4 __ovld __cnfn convert_int4_rtn(int4);
2987int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2988int4 __ovld __cnfn convert_int4(int4);
2989int4 __ovld __cnfn convert_int4_sat(int4);
2990int4 __ovld __cnfn convert_int4_rte(uint4);
2991int4 __ovld __cnfn convert_int4_sat_rte(uint4);
2992int4 __ovld __cnfn convert_int4_rtz(uint4);
2993int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
2994int4 __ovld __cnfn convert_int4_rtp(uint4);
2995int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
2996int4 __ovld __cnfn convert_int4_rtn(uint4);
2997int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
2998int4 __ovld __cnfn convert_int4(uint4);
2999int4 __ovld __cnfn convert_int4_sat(uint4);
3000int4 __ovld __cnfn convert_int4_rte(long4);
3001int4 __ovld __cnfn convert_int4_sat_rte(long4);
3002int4 __ovld __cnfn convert_int4_rtz(long4);
3003int4 __ovld __cnfn convert_int4_sat_rtz(long4);
3004int4 __ovld __cnfn convert_int4_rtp(long4);
3005int4 __ovld __cnfn convert_int4_sat_rtp(long4);
3006int4 __ovld __cnfn convert_int4_rtn(long4);
3007int4 __ovld __cnfn convert_int4_sat_rtn(long4);
3008int4 __ovld __cnfn convert_int4(long4);
3009int4 __ovld __cnfn convert_int4_sat(long4);
3010int4 __ovld __cnfn convert_int4_rte(ulong4);
3011int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
3012int4 __ovld __cnfn convert_int4_rtz(ulong4);
3013int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
3014int4 __ovld __cnfn convert_int4_rtp(ulong4);
3015int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
3016int4 __ovld __cnfn convert_int4_rtn(ulong4);
3017int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
3018int4 __ovld __cnfn convert_int4(ulong4);
3019int4 __ovld __cnfn convert_int4_sat(ulong4);
3020int4 __ovld __cnfn convert_int4_rte(float4);
3021int4 __ovld __cnfn convert_int4_sat_rte(float4);
3022int4 __ovld __cnfn convert_int4_rtz(float4);
3023int4 __ovld __cnfn convert_int4_sat_rtz(float4);
3024int4 __ovld __cnfn convert_int4_rtp(float4);
3025int4 __ovld __cnfn convert_int4_sat_rtp(float4);
3026int4 __ovld __cnfn convert_int4_rtn(float4);
3027int4 __ovld __cnfn convert_int4_sat_rtn(float4);
3028int4 __ovld __cnfn convert_int4(float4);
3029int4 __ovld __cnfn convert_int4_sat(float4);
3030uint4 __ovld __cnfn convert_uint4_rte(char4);
3031uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
3032uint4 __ovld __cnfn convert_uint4_rtz(char4);
3033uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
3034uint4 __ovld __cnfn convert_uint4_rtp(char4);
3035uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
3036uint4 __ovld __cnfn convert_uint4_rtn(char4);
3037uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
3038uint4 __ovld __cnfn convert_uint4(char4);
3039uint4 __ovld __cnfn convert_uint4_sat(char4);
3040uint4 __ovld __cnfn convert_uint4_rte(uchar4);
3041uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
3042uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
3043uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
3044uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
3045uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
3046uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
3047uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
3048uint4 __ovld __cnfn convert_uint4(uchar4);
3049uint4 __ovld __cnfn convert_uint4_sat(uchar4);
3050uint4 __ovld __cnfn convert_uint4_rte(short4);
3051uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
3052uint4 __ovld __cnfn convert_uint4_rtz(short4);
3053uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
3054uint4 __ovld __cnfn convert_uint4_rtp(short4);
3055uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
3056uint4 __ovld __cnfn convert_uint4_rtn(short4);
3057uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
3058uint4 __ovld __cnfn convert_uint4(short4);
3059uint4 __ovld __cnfn convert_uint4_sat(short4);
3060uint4 __ovld __cnfn convert_uint4_rte(ushort4);
3061uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
3062uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
3063uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
3064uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
3065uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
3066uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
3067uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
3068uint4 __ovld __cnfn convert_uint4(ushort4);
3069uint4 __ovld __cnfn convert_uint4_sat(ushort4);
3070uint4 __ovld __cnfn convert_uint4_rte(int4);
3071uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
3072uint4 __ovld __cnfn convert_uint4_rtz(int4);
3073uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
3074uint4 __ovld __cnfn convert_uint4_rtp(int4);
3075uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
3076uint4 __ovld __cnfn convert_uint4_rtn(int4);
3077uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
3078uint4 __ovld __cnfn convert_uint4(int4);
3079uint4 __ovld __cnfn convert_uint4_sat(int4);
3080uint4 __ovld __cnfn convert_uint4_rte(uint4);
3081uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
3082uint4 __ovld __cnfn convert_uint4_rtz(uint4);
3083uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
3084uint4 __ovld __cnfn convert_uint4_rtp(uint4);
3085uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
3086uint4 __ovld __cnfn convert_uint4_rtn(uint4);
3087uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
3088uint4 __ovld __cnfn convert_uint4(uint4);
3089uint4 __ovld __cnfn convert_uint4_sat(uint4);
3090uint4 __ovld __cnfn convert_uint4_rte(long4);
3091uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
3092uint4 __ovld __cnfn convert_uint4_rtz(long4);
3093uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
3094uint4 __ovld __cnfn convert_uint4_rtp(long4);
3095uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
3096uint4 __ovld __cnfn convert_uint4_rtn(long4);
3097uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
3098uint4 __ovld __cnfn convert_uint4(long4);
3099uint4 __ovld __cnfn convert_uint4_sat(long4);
3100uint4 __ovld __cnfn convert_uint4_rte(ulong4);
3101uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
3102uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
3103uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
3104uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
3105uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
3106uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
3107uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
3108uint4 __ovld __cnfn convert_uint4(ulong4);
3109uint4 __ovld __cnfn convert_uint4_sat(ulong4);
3110uint4 __ovld __cnfn convert_uint4_rte(float4);
3111uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
3112uint4 __ovld __cnfn convert_uint4_rtz(float4);
3113uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
3114uint4 __ovld __cnfn convert_uint4_rtp(float4);
3115uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
3116uint4 __ovld __cnfn convert_uint4_rtn(float4);
3117uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
3118uint4 __ovld __cnfn convert_uint4(float4);
3119uint4 __ovld __cnfn convert_uint4_sat(float4);
3120long4 __ovld __cnfn convert_long4_rte(char4);
3121long4 __ovld __cnfn convert_long4_sat_rte(char4);
3122long4 __ovld __cnfn convert_long4_rtz(char4);
3123long4 __ovld __cnfn convert_long4_sat_rtz(char4);
3124long4 __ovld __cnfn convert_long4_rtp(char4);
3125long4 __ovld __cnfn convert_long4_sat_rtp(char4);
3126long4 __ovld __cnfn convert_long4_rtn(char4);
3127long4 __ovld __cnfn convert_long4_sat_rtn(char4);
3128long4 __ovld __cnfn convert_long4(char4);
3129long4 __ovld __cnfn convert_long4_sat(char4);
3130long4 __ovld __cnfn convert_long4_rte(uchar4);
3131long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
3132long4 __ovld __cnfn convert_long4_rtz(uchar4);
3133long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
3134long4 __ovld __cnfn convert_long4_rtp(uchar4);
3135long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
3136long4 __ovld __cnfn convert_long4_rtn(uchar4);
3137long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
3138long4 __ovld __cnfn convert_long4(uchar4);
3139long4 __ovld __cnfn convert_long4_sat(uchar4);
3140long4 __ovld __cnfn convert_long4_rte(short4);
3141long4 __ovld __cnfn convert_long4_sat_rte(short4);
3142long4 __ovld __cnfn convert_long4_rtz(short4);
3143long4 __ovld __cnfn convert_long4_sat_rtz(short4);
3144long4 __ovld __cnfn convert_long4_rtp(short4);
3145long4 __ovld __cnfn convert_long4_sat_rtp(short4);
3146long4 __ovld __cnfn convert_long4_rtn(short4);
3147long4 __ovld __cnfn convert_long4_sat_rtn(short4);
3148long4 __ovld __cnfn convert_long4(short4);
3149long4 __ovld __cnfn convert_long4_sat(short4);
3150long4 __ovld __cnfn convert_long4_rte(ushort4);
3151long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
3152long4 __ovld __cnfn convert_long4_rtz(ushort4);
3153long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
3154long4 __ovld __cnfn convert_long4_rtp(ushort4);
3155long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
3156long4 __ovld __cnfn convert_long4_rtn(ushort4);
3157long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
3158long4 __ovld __cnfn convert_long4(ushort4);
3159long4 __ovld __cnfn convert_long4_sat(ushort4);
3160long4 __ovld __cnfn convert_long4_rte(int4);
3161long4 __ovld __cnfn convert_long4_sat_rte(int4);
3162long4 __ovld __cnfn convert_long4_rtz(int4);
3163long4 __ovld __cnfn convert_long4_sat_rtz(int4);
3164long4 __ovld __cnfn convert_long4_rtp(int4);
3165long4 __ovld __cnfn convert_long4_sat_rtp(int4);
3166long4 __ovld __cnfn convert_long4_rtn(int4);
3167long4 __ovld __cnfn convert_long4_sat_rtn(int4);
3168long4 __ovld __cnfn convert_long4(int4);
3169long4 __ovld __cnfn convert_long4_sat(int4);
3170long4 __ovld __cnfn convert_long4_rte(uint4);
3171long4 __ovld __cnfn convert_long4_sat_rte(uint4);
3172long4 __ovld __cnfn convert_long4_rtz(uint4);
3173long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
3174long4 __ovld __cnfn convert_long4_rtp(uint4);
3175long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
3176long4 __ovld __cnfn convert_long4_rtn(uint4);
3177long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
3178long4 __ovld __cnfn convert_long4(uint4);
3179long4 __ovld __cnfn convert_long4_sat(uint4);
3180long4 __ovld __cnfn convert_long4_rte(long4);
3181long4 __ovld __cnfn convert_long4_sat_rte(long4);
3182long4 __ovld __cnfn convert_long4_rtz(long4);
3183long4 __ovld __cnfn convert_long4_sat_rtz(long4);
3184long4 __ovld __cnfn convert_long4_rtp(long4);
3185long4 __ovld __cnfn convert_long4_sat_rtp(long4);
3186long4 __ovld __cnfn convert_long4_rtn(long4);
3187long4 __ovld __cnfn convert_long4_sat_rtn(long4);
3188long4 __ovld __cnfn convert_long4(long4);
3189long4 __ovld __cnfn convert_long4_sat(long4);
3190long4 __ovld __cnfn convert_long4_rte(ulong4);
3191long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
3192long4 __ovld __cnfn convert_long4_rtz(ulong4);
3193long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
3194long4 __ovld __cnfn convert_long4_rtp(ulong4);
3195long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
3196long4 __ovld __cnfn convert_long4_rtn(ulong4);
3197long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
3198long4 __ovld __cnfn convert_long4(ulong4);
3199long4 __ovld __cnfn convert_long4_sat(ulong4);
3200long4 __ovld __cnfn convert_long4_rte(float4);
3201long4 __ovld __cnfn convert_long4_sat_rte(float4);
3202long4 __ovld __cnfn convert_long4_rtz(float4);
3203long4 __ovld __cnfn convert_long4_sat_rtz(float4);
3204long4 __ovld __cnfn convert_long4_rtp(float4);
3205long4 __ovld __cnfn convert_long4_sat_rtp(float4);
3206long4 __ovld __cnfn convert_long4_rtn(float4);
3207long4 __ovld __cnfn convert_long4_sat_rtn(float4);
3208long4 __ovld __cnfn convert_long4(float4);
3209long4 __ovld __cnfn convert_long4_sat(float4);
3210ulong4 __ovld __cnfn convert_ulong4_rte(char4);
3211ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
3212ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
3213ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
3214ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
3215ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
3216ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
3217ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
3218ulong4 __ovld __cnfn convert_ulong4(char4);
3219ulong4 __ovld __cnfn convert_ulong4_sat(char4);
3220ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
3221ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
3222ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
3223ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
3224ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
3225ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
3226ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
3227ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
3228ulong4 __ovld __cnfn convert_ulong4(uchar4);
3229ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
3230ulong4 __ovld __cnfn convert_ulong4_rte(short4);
3231ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
3232ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
3233ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
3234ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
3235ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
3236ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
3237ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
3238ulong4 __ovld __cnfn convert_ulong4(short4);
3239ulong4 __ovld __cnfn convert_ulong4_sat(short4);
3240ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
3241ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3242ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3243ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3244ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3245ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3246ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3247ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3248ulong4 __ovld __cnfn convert_ulong4(ushort4);
3249ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3250ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3251ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3252ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3253ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3254ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3255ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3256ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3257ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3258ulong4 __ovld __cnfn convert_ulong4(int4);
3259ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3260ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3261ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3262ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3263ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3264ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3265ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3266ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3267ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3268ulong4 __ovld __cnfn convert_ulong4(uint4);
3269ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3270ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3271ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3272ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3273ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3274ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3275ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3276ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3277ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3278ulong4 __ovld __cnfn convert_ulong4(long4);
3279ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3280ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3281ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3282ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3283ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3284ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3285ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3286ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3287ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3288ulong4 __ovld __cnfn convert_ulong4(ulong4);
3289ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3290ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3291ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3292ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3293ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3294ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3295ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3296ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3297ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3298ulong4 __ovld __cnfn convert_ulong4(float4);
3299ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3300float4 __ovld __cnfn convert_float4_rte(char4);
3301float4 __ovld __cnfn convert_float4_rtz(char4);
3302float4 __ovld __cnfn convert_float4_rtp(char4);
3303float4 __ovld __cnfn convert_float4_rtn(char4);
3304float4 __ovld __cnfn convert_float4(char4);
3305float4 __ovld __cnfn convert_float4_rte(uchar4);
3306float4 __ovld __cnfn convert_float4_rtz(uchar4);
3307float4 __ovld __cnfn convert_float4_rtp(uchar4);
3308float4 __ovld __cnfn convert_float4_rtn(uchar4);
3309float4 __ovld __cnfn convert_float4(uchar4);
3310float4 __ovld __cnfn convert_float4_rte(short4);
3311float4 __ovld __cnfn convert_float4_rtz(short4);
3312float4 __ovld __cnfn convert_float4_rtp(short4);
3313float4 __ovld __cnfn convert_float4_rtn(short4);
3314float4 __ovld __cnfn convert_float4(short4);
3315float4 __ovld __cnfn convert_float4_rte(ushort4);
3316float4 __ovld __cnfn convert_float4_rtz(ushort4);
3317float4 __ovld __cnfn convert_float4_rtp(ushort4);
3318float4 __ovld __cnfn convert_float4_rtn(ushort4);
3319float4 __ovld __cnfn convert_float4(ushort4);
3320float4 __ovld __cnfn convert_float4_rte(int4);
3321float4 __ovld __cnfn convert_float4_rtz(int4);
3322float4 __ovld __cnfn convert_float4_rtp(int4);
3323float4 __ovld __cnfn convert_float4_rtn(int4);
3324float4 __ovld __cnfn convert_float4(int4);
3325float4 __ovld __cnfn convert_float4_rte(uint4);
3326float4 __ovld __cnfn convert_float4_rtz(uint4);
3327float4 __ovld __cnfn convert_float4_rtp(uint4);
3328float4 __ovld __cnfn convert_float4_rtn(uint4);
3329float4 __ovld __cnfn convert_float4(uint4);
3330float4 __ovld __cnfn convert_float4_rte(long4);
3331float4 __ovld __cnfn convert_float4_rtz(long4);
3332float4 __ovld __cnfn convert_float4_rtp(long4);
3333float4 __ovld __cnfn convert_float4_rtn(long4);
3334float4 __ovld __cnfn convert_float4(long4);
3335float4 __ovld __cnfn convert_float4_rte(ulong4);
3336float4 __ovld __cnfn convert_float4_rtz(ulong4);
3337float4 __ovld __cnfn convert_float4_rtp(ulong4);
3338float4 __ovld __cnfn convert_float4_rtn(ulong4);
3339float4 __ovld __cnfn convert_float4(ulong4);
3340float4 __ovld __cnfn convert_float4_rte(float4);
3341float4 __ovld __cnfn convert_float4_rtz(float4);
3342float4 __ovld __cnfn convert_float4_rtp(float4);
3343float4 __ovld __cnfn convert_float4_rtn(float4);
3344float4 __ovld __cnfn convert_float4(float4);
3345char8 __ovld __cnfn convert_char8_rte(char8);
3346char8 __ovld __cnfn convert_char8_sat_rte(char8);
3347char8 __ovld __cnfn convert_char8_rtz(char8);
3348char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3349char8 __ovld __cnfn convert_char8_rtp(char8);
3350char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3351char8 __ovld __cnfn convert_char8_rtn(char8);
3352char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3353char8 __ovld __cnfn convert_char8(char8);
3354char8 __ovld __cnfn convert_char8_sat(char8);
3355char8 __ovld __cnfn convert_char8_rte(uchar8);
3356char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3357char8 __ovld __cnfn convert_char8_rtz(uchar8);
3358char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3359char8 __ovld __cnfn convert_char8_rtp(uchar8);
3360char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3361char8 __ovld __cnfn convert_char8_rtn(uchar8);
3362char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3363char8 __ovld __cnfn convert_char8(uchar8);
3364char8 __ovld __cnfn convert_char8_sat(uchar8);
3365char8 __ovld __cnfn convert_char8_rte(short8);
3366char8 __ovld __cnfn convert_char8_sat_rte(short8);
3367char8 __ovld __cnfn convert_char8_rtz(short8);
3368char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3369char8 __ovld __cnfn convert_char8_rtp(short8);
3370char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3371char8 __ovld __cnfn convert_char8_rtn(short8);
3372char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3373char8 __ovld __cnfn convert_char8(short8);
3374char8 __ovld __cnfn convert_char8_sat(short8);
3375char8 __ovld __cnfn convert_char8_rte(ushort8);
3376char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3377char8 __ovld __cnfn convert_char8_rtz(ushort8);
3378char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3379char8 __ovld __cnfn convert_char8_rtp(ushort8);
3380char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3381char8 __ovld __cnfn convert_char8_rtn(ushort8);
3382char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3383char8 __ovld __cnfn convert_char8(ushort8);
3384char8 __ovld __cnfn convert_char8_sat(ushort8);
3385char8 __ovld __cnfn convert_char8_rte(int8);
3386char8 __ovld __cnfn convert_char8_sat_rte(int8);
3387char8 __ovld __cnfn convert_char8_rtz(int8);
3388char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3389char8 __ovld __cnfn convert_char8_rtp(int8);
3390char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3391char8 __ovld __cnfn convert_char8_rtn(int8);
3392char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3393char8 __ovld __cnfn convert_char8(int8);
3394char8 __ovld __cnfn convert_char8_sat(int8);
3395char8 __ovld __cnfn convert_char8_rte(uint8);
3396char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3397char8 __ovld __cnfn convert_char8_rtz(uint8);
3398char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3399char8 __ovld __cnfn convert_char8_rtp(uint8);
3400char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3401char8 __ovld __cnfn convert_char8_rtn(uint8);
3402char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3403char8 __ovld __cnfn convert_char8(uint8);
3404char8 __ovld __cnfn convert_char8_sat(uint8);
3405char8 __ovld __cnfn convert_char8_rte(long8);
3406char8 __ovld __cnfn convert_char8_sat_rte(long8);
3407char8 __ovld __cnfn convert_char8_rtz(long8);
3408char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3409char8 __ovld __cnfn convert_char8_rtp(long8);
3410char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3411char8 __ovld __cnfn convert_char8_rtn(long8);
3412char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3413char8 __ovld __cnfn convert_char8(long8);
3414char8 __ovld __cnfn convert_char8_sat(long8);
3415char8 __ovld __cnfn convert_char8_rte(ulong8);
3416char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3417char8 __ovld __cnfn convert_char8_rtz(ulong8);
3418char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3419char8 __ovld __cnfn convert_char8_rtp(ulong8);
3420char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3421char8 __ovld __cnfn convert_char8_rtn(ulong8);
3422char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3423char8 __ovld __cnfn convert_char8(ulong8);
3424char8 __ovld __cnfn convert_char8_sat(ulong8);
3425char8 __ovld __cnfn convert_char8_rte(float8);
3426char8 __ovld __cnfn convert_char8_sat_rte(float8);
3427char8 __ovld __cnfn convert_char8_rtz(float8);
3428char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3429char8 __ovld __cnfn convert_char8_rtp(float8);
3430char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3431char8 __ovld __cnfn convert_char8_rtn(float8);
3432char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3433char8 __ovld __cnfn convert_char8(float8);
3434char8 __ovld __cnfn convert_char8_sat(float8);
3435uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3436uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3437uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3438uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3439uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3440uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3441uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3442uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3443uchar8 __ovld __cnfn convert_uchar8(char8);
3444uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3445uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3446uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3447uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3448uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3449uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3450uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3451uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3452uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3453uchar8 __ovld __cnfn convert_uchar8(uchar8);
3454uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3455uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3456uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3457uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3458uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3459uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3460uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3461uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3462uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3463uchar8 __ovld __cnfn convert_uchar8(short8);
3464uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3465uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3466uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3467uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3468uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3469uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3470uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3471uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3472uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3473uchar8 __ovld __cnfn convert_uchar8(ushort8);
3474uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3475uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3476uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3477uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3478uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3479uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3480uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3481uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3482uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3483uchar8 __ovld __cnfn convert_uchar8(int8);
3484uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3485uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3486uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3487uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3488uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3489uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3490uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3491uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3492uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3493uchar8 __ovld __cnfn convert_uchar8(uint8);
3494uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3495uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3496uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3497uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3498uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3499uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3500uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3501uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3502uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3503uchar8 __ovld __cnfn convert_uchar8(long8);
3504uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3505uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3506uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3507uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3508uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3509uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3510uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3511uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3512uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3513uchar8 __ovld __cnfn convert_uchar8(ulong8);
3514uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3515uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3516uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3517uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3518uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3519uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3520uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3521uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3522uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3523uchar8 __ovld __cnfn convert_uchar8(float8);
3524uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3525short8 __ovld __cnfn convert_short8_rte(char8);
3526short8 __ovld __cnfn convert_short8_sat_rte(char8);
3527short8 __ovld __cnfn convert_short8_rtz(char8);
3528short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3529short8 __ovld __cnfn convert_short8_rtp(char8);
3530short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3531short8 __ovld __cnfn convert_short8_rtn(char8);
3532short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3533short8 __ovld __cnfn convert_short8(char8);
3534short8 __ovld __cnfn convert_short8_sat(char8);
3535short8 __ovld __cnfn convert_short8_rte(uchar8);
3536short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3537short8 __ovld __cnfn convert_short8_rtz(uchar8);
3538short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3539short8 __ovld __cnfn convert_short8_rtp(uchar8);
3540short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3541short8 __ovld __cnfn convert_short8_rtn(uchar8);
3542short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3543short8 __ovld __cnfn convert_short8(uchar8);
3544short8 __ovld __cnfn convert_short8_sat(uchar8);
3545short8 __ovld __cnfn convert_short8_rte(short8);
3546short8 __ovld __cnfn convert_short8_sat_rte(short8);
3547short8 __ovld __cnfn convert_short8_rtz(short8);
3548short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3549short8 __ovld __cnfn convert_short8_rtp(short8);
3550short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3551short8 __ovld __cnfn convert_short8_rtn(short8);
3552short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3553short8 __ovld __cnfn convert_short8(short8);
3554short8 __ovld __cnfn convert_short8_sat(short8);
3555short8 __ovld __cnfn convert_short8_rte(ushort8);
3556short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3557short8 __ovld __cnfn convert_short8_rtz(ushort8);
3558short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3559short8 __ovld __cnfn convert_short8_rtp(ushort8);
3560short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3561short8 __ovld __cnfn convert_short8_rtn(ushort8);
3562short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3563short8 __ovld __cnfn convert_short8(ushort8);
3564short8 __ovld __cnfn convert_short8_sat(ushort8);
3565short8 __ovld __cnfn convert_short8_rte(int8);
3566short8 __ovld __cnfn convert_short8_sat_rte(int8);
3567short8 __ovld __cnfn convert_short8_rtz(int8);
3568short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3569short8 __ovld __cnfn convert_short8_rtp(int8);
3570short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3571short8 __ovld __cnfn convert_short8_rtn(int8);
3572short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3573short8 __ovld __cnfn convert_short8(int8);
3574short8 __ovld __cnfn convert_short8_sat(int8);
3575short8 __ovld __cnfn convert_short8_rte(uint8);
3576short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3577short8 __ovld __cnfn convert_short8_rtz(uint8);
3578short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3579short8 __ovld __cnfn convert_short8_rtp(uint8);
3580short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3581short8 __ovld __cnfn convert_short8_rtn(uint8);
3582short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3583short8 __ovld __cnfn convert_short8(uint8);
3584short8 __ovld __cnfn convert_short8_sat(uint8);
3585short8 __ovld __cnfn convert_short8_rte(long8);
3586short8 __ovld __cnfn convert_short8_sat_rte(long8);
3587short8 __ovld __cnfn convert_short8_rtz(long8);
3588short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3589short8 __ovld __cnfn convert_short8_rtp(long8);
3590short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3591short8 __ovld __cnfn convert_short8_rtn(long8);
3592short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3593short8 __ovld __cnfn convert_short8(long8);
3594short8 __ovld __cnfn convert_short8_sat(long8);
3595short8 __ovld __cnfn convert_short8_rte(ulong8);
3596short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3597short8 __ovld __cnfn convert_short8_rtz(ulong8);
3598short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3599short8 __ovld __cnfn convert_short8_rtp(ulong8);
3600short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3601short8 __ovld __cnfn convert_short8_rtn(ulong8);
3602short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3603short8 __ovld __cnfn convert_short8(ulong8);
3604short8 __ovld __cnfn convert_short8_sat(ulong8);
3605short8 __ovld __cnfn convert_short8_rte(float8);
3606short8 __ovld __cnfn convert_short8_sat_rte(float8);
3607short8 __ovld __cnfn convert_short8_rtz(float8);
3608short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3609short8 __ovld __cnfn convert_short8_rtp(float8);
3610short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3611short8 __ovld __cnfn convert_short8_rtn(float8);
3612short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3613short8 __ovld __cnfn convert_short8(float8);
3614short8 __ovld __cnfn convert_short8_sat(float8);
3615ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3616ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3617ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3618ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3619ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3620ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3621ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3622ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3623ushort8 __ovld __cnfn convert_ushort8(char8);
3624ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3625ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3626ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3627ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3628ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3629ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3630ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3631ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3632ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3633ushort8 __ovld __cnfn convert_ushort8(uchar8);
3634ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3635ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3636ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3637ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3638ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3639ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3640ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3641ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3642ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3643ushort8 __ovld __cnfn convert_ushort8(short8);
3644ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3645ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3646ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3647ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3648ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3649ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3650ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3651ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3652ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3653ushort8 __ovld __cnfn convert_ushort8(ushort8);
3654ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3655ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3656ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3657ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3658ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3659ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3660ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3661ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3662ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3663ushort8 __ovld __cnfn convert_ushort8(int8);
3664ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3665ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3666ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3667ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3668ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3669ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3670ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3671ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3672ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3673ushort8 __ovld __cnfn convert_ushort8(uint8);
3674ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3675ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3676ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3677ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3678ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3679ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3680ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3681ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3682ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3683ushort8 __ovld __cnfn convert_ushort8(long8);
3684ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3685ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3686ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3687ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3688ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3689ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3690ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3691ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3692ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3693ushort8 __ovld __cnfn convert_ushort8(ulong8);
3694ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3695ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3696ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3697ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3698ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3699ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3700ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3701ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3702ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3703ushort8 __ovld __cnfn convert_ushort8(float8);
3704ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3705int8 __ovld __cnfn convert_int8_rte(char8);
3706int8 __ovld __cnfn convert_int8_sat_rte(char8);
3707int8 __ovld __cnfn convert_int8_rtz(char8);
3708int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3709int8 __ovld __cnfn convert_int8_rtp(char8);
3710int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3711int8 __ovld __cnfn convert_int8_rtn(char8);
3712int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3713int8 __ovld __cnfn convert_int8(char8);
3714int8 __ovld __cnfn convert_int8_sat(char8);
3715int8 __ovld __cnfn convert_int8_rte(uchar8);
3716int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3717int8 __ovld __cnfn convert_int8_rtz(uchar8);
3718int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3719int8 __ovld __cnfn convert_int8_rtp(uchar8);
3720int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3721int8 __ovld __cnfn convert_int8_rtn(uchar8);
3722int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3723int8 __ovld __cnfn convert_int8(uchar8);
3724int8 __ovld __cnfn convert_int8_sat(uchar8);
3725int8 __ovld __cnfn convert_int8_rte(short8);
3726int8 __ovld __cnfn convert_int8_sat_rte(short8);
3727int8 __ovld __cnfn convert_int8_rtz(short8);
3728int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3729int8 __ovld __cnfn convert_int8_rtp(short8);
3730int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3731int8 __ovld __cnfn convert_int8_rtn(short8);
3732int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3733int8 __ovld __cnfn convert_int8(short8);
3734int8 __ovld __cnfn convert_int8_sat(short8);
3735int8 __ovld __cnfn convert_int8_rte(ushort8);
3736int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3737int8 __ovld __cnfn convert_int8_rtz(ushort8);
3738int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3739int8 __ovld __cnfn convert_int8_rtp(ushort8);
3740int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3741int8 __ovld __cnfn convert_int8_rtn(ushort8);
3742int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3743int8 __ovld __cnfn convert_int8(ushort8);
3744int8 __ovld __cnfn convert_int8_sat(ushort8);
3745int8 __ovld __cnfn convert_int8_rte(int8);
3746int8 __ovld __cnfn convert_int8_sat_rte(int8);
3747int8 __ovld __cnfn convert_int8_rtz(int8);
3748int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3749int8 __ovld __cnfn convert_int8_rtp(int8);
3750int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3751int8 __ovld __cnfn convert_int8_rtn(int8);
3752int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3753int8 __ovld __cnfn convert_int8(int8);
3754int8 __ovld __cnfn convert_int8_sat(int8);
3755int8 __ovld __cnfn convert_int8_rte(uint8);
3756int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3757int8 __ovld __cnfn convert_int8_rtz(uint8);
3758int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3759int8 __ovld __cnfn convert_int8_rtp(uint8);
3760int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3761int8 __ovld __cnfn convert_int8_rtn(uint8);
3762int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3763int8 __ovld __cnfn convert_int8(uint8);
3764int8 __ovld __cnfn convert_int8_sat(uint8);
3765int8 __ovld __cnfn convert_int8_rte(long8);
3766int8 __ovld __cnfn convert_int8_sat_rte(long8);
3767int8 __ovld __cnfn convert_int8_rtz(long8);
3768int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3769int8 __ovld __cnfn convert_int8_rtp(long8);
3770int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3771int8 __ovld __cnfn convert_int8_rtn(long8);
3772int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3773int8 __ovld __cnfn convert_int8(long8);
3774int8 __ovld __cnfn convert_int8_sat(long8);
3775int8 __ovld __cnfn convert_int8_rte(ulong8);
3776int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3777int8 __ovld __cnfn convert_int8_rtz(ulong8);
3778int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3779int8 __ovld __cnfn convert_int8_rtp(ulong8);
3780int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3781int8 __ovld __cnfn convert_int8_rtn(ulong8);
3782int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3783int8 __ovld __cnfn convert_int8(ulong8);
3784int8 __ovld __cnfn convert_int8_sat(ulong8);
3785int8 __ovld __cnfn convert_int8_rte(float8);
3786int8 __ovld __cnfn convert_int8_sat_rte(float8);
3787int8 __ovld __cnfn convert_int8_rtz(float8);
3788int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3789int8 __ovld __cnfn convert_int8_rtp(float8);
3790int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3791int8 __ovld __cnfn convert_int8_rtn(float8);
3792int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3793int8 __ovld __cnfn convert_int8(float8);
3794int8 __ovld __cnfn convert_int8_sat(float8);
3795uint8 __ovld __cnfn convert_uint8_rte(char8);
3796uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3797uint8 __ovld __cnfn convert_uint8_rtz(char8);
3798uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3799uint8 __ovld __cnfn convert_uint8_rtp(char8);
3800uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3801uint8 __ovld __cnfn convert_uint8_rtn(char8);
3802uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3803uint8 __ovld __cnfn convert_uint8(char8);
3804uint8 __ovld __cnfn convert_uint8_sat(char8);
3805uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3806uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3807uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3808uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3809uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3810uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3811uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3812uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3813uint8 __ovld __cnfn convert_uint8(uchar8);
3814uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3815uint8 __ovld __cnfn convert_uint8_rte(short8);
3816uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3817uint8 __ovld __cnfn convert_uint8_rtz(short8);
3818uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3819uint8 __ovld __cnfn convert_uint8_rtp(short8);
3820uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3821uint8 __ovld __cnfn convert_uint8_rtn(short8);
3822uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3823uint8 __ovld __cnfn convert_uint8(short8);
3824uint8 __ovld __cnfn convert_uint8_sat(short8);
3825uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3826uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3827uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3828uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3829uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3830uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3831uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3832uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3833uint8 __ovld __cnfn convert_uint8(ushort8);
3834uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3835uint8 __ovld __cnfn convert_uint8_rte(int8);
3836uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3837uint8 __ovld __cnfn convert_uint8_rtz(int8);
3838uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3839uint8 __ovld __cnfn convert_uint8_rtp(int8);
3840uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3841uint8 __ovld __cnfn convert_uint8_rtn(int8);
3842uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3843uint8 __ovld __cnfn convert_uint8(int8);
3844uint8 __ovld __cnfn convert_uint8_sat(int8);
3845uint8 __ovld __cnfn convert_uint8_rte(uint8);
3846uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3847uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3848uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3849uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3850uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3851uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3852uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3853uint8 __ovld __cnfn convert_uint8(uint8);
3854uint8 __ovld __cnfn convert_uint8_sat(uint8);
3855uint8 __ovld __cnfn convert_uint8_rte(long8);
3856uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3857uint8 __ovld __cnfn convert_uint8_rtz(long8);
3858uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3859uint8 __ovld __cnfn convert_uint8_rtp(long8);
3860uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3861uint8 __ovld __cnfn convert_uint8_rtn(long8);
3862uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3863uint8 __ovld __cnfn convert_uint8(long8);
3864uint8 __ovld __cnfn convert_uint8_sat(long8);
3865uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3866uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3867uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3868uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3869uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3870uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3871uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3872uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3873uint8 __ovld __cnfn convert_uint8(ulong8);
3874uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3875uint8 __ovld __cnfn convert_uint8_rte(float8);
3876uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3877uint8 __ovld __cnfn convert_uint8_rtz(float8);
3878uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3879uint8 __ovld __cnfn convert_uint8_rtp(float8);
3880uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3881uint8 __ovld __cnfn convert_uint8_rtn(float8);
3882uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3883uint8 __ovld __cnfn convert_uint8(float8);
3884uint8 __ovld __cnfn convert_uint8_sat(float8);
3885long8 __ovld __cnfn convert_long8_rte(char8);
3886long8 __ovld __cnfn convert_long8_sat_rte(char8);
3887long8 __ovld __cnfn convert_long8_rtz(char8);
3888long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3889long8 __ovld __cnfn convert_long8_rtp(char8);
3890long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3891long8 __ovld __cnfn convert_long8_rtn(char8);
3892long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3893long8 __ovld __cnfn convert_long8(char8);
3894long8 __ovld __cnfn convert_long8_sat(char8);
3895long8 __ovld __cnfn convert_long8_rte(uchar8);
3896long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3897long8 __ovld __cnfn convert_long8_rtz(uchar8);
3898long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3899long8 __ovld __cnfn convert_long8_rtp(uchar8);
3900long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3901long8 __ovld __cnfn convert_long8_rtn(uchar8);
3902long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3903long8 __ovld __cnfn convert_long8(uchar8);
3904long8 __ovld __cnfn convert_long8_sat(uchar8);
3905long8 __ovld __cnfn convert_long8_rte(short8);
3906long8 __ovld __cnfn convert_long8_sat_rte(short8);
3907long8 __ovld __cnfn convert_long8_rtz(short8);
3908long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3909long8 __ovld __cnfn convert_long8_rtp(short8);
3910long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3911long8 __ovld __cnfn convert_long8_rtn(short8);
3912long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3913long8 __ovld __cnfn convert_long8(short8);
3914long8 __ovld __cnfn convert_long8_sat(short8);
3915long8 __ovld __cnfn convert_long8_rte(ushort8);
3916long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3917long8 __ovld __cnfn convert_long8_rtz(ushort8);
3918long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3919long8 __ovld __cnfn convert_long8_rtp(ushort8);
3920long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3921long8 __ovld __cnfn convert_long8_rtn(ushort8);
3922long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3923long8 __ovld __cnfn convert_long8(ushort8);
3924long8 __ovld __cnfn convert_long8_sat(ushort8);
3925long8 __ovld __cnfn convert_long8_rte(int8);
3926long8 __ovld __cnfn convert_long8_sat_rte(int8);
3927long8 __ovld __cnfn convert_long8_rtz(int8);
3928long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3929long8 __ovld __cnfn convert_long8_rtp(int8);
3930long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3931long8 __ovld __cnfn convert_long8_rtn(int8);
3932long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3933long8 __ovld __cnfn convert_long8(int8);
3934long8 __ovld __cnfn convert_long8_sat(int8);
3935long8 __ovld __cnfn convert_long8_rte(uint8);
3936long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3937long8 __ovld __cnfn convert_long8_rtz(uint8);
3938long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3939long8 __ovld __cnfn convert_long8_rtp(uint8);
3940long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3941long8 __ovld __cnfn convert_long8_rtn(uint8);
3942long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3943long8 __ovld __cnfn convert_long8(uint8);
3944long8 __ovld __cnfn convert_long8_sat(uint8);
3945long8 __ovld __cnfn convert_long8_rte(long8);
3946long8 __ovld __cnfn convert_long8_sat_rte(long8);
3947long8 __ovld __cnfn convert_long8_rtz(long8);
3948long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3949long8 __ovld __cnfn convert_long8_rtp(long8);
3950long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3951long8 __ovld __cnfn convert_long8_rtn(long8);
3952long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3953long8 __ovld __cnfn convert_long8(long8);
3954long8 __ovld __cnfn convert_long8_sat(long8);
3955long8 __ovld __cnfn convert_long8_rte(ulong8);
3956long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3957long8 __ovld __cnfn convert_long8_rtz(ulong8);
3958long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3959long8 __ovld __cnfn convert_long8_rtp(ulong8);
3960long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3961long8 __ovld __cnfn convert_long8_rtn(ulong8);
3962long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3963long8 __ovld __cnfn convert_long8(ulong8);
3964long8 __ovld __cnfn convert_long8_sat(ulong8);
3965long8 __ovld __cnfn convert_long8_rte(float8);
3966long8 __ovld __cnfn convert_long8_sat_rte(float8);
3967long8 __ovld __cnfn convert_long8_rtz(float8);
3968long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3969long8 __ovld __cnfn convert_long8_rtp(float8);
3970long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3971long8 __ovld __cnfn convert_long8_rtn(float8);
3972long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3973long8 __ovld __cnfn convert_long8(float8);
3974long8 __ovld __cnfn convert_long8_sat(float8);
3975ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3976ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3977ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3978ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3979ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3980ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3981ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3982ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3983ulong8 __ovld __cnfn convert_ulong8(char8);
3984ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3985ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3986ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3987ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3988ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3989ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3990ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3991ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
3992ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
3993ulong8 __ovld __cnfn convert_ulong8(uchar8);
3994ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
3995ulong8 __ovld __cnfn convert_ulong8_rte(short8);
3996ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
3997ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
3998ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
3999ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
4000ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
4001ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
4002ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
4003ulong8 __ovld __cnfn convert_ulong8(short8);
4004ulong8 __ovld __cnfn convert_ulong8_sat(short8);
4005ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
4006ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
4007ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
4008ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
4009ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
4010ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
4011ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
4012ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
4013ulong8 __ovld __cnfn convert_ulong8(ushort8);
4014ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
4015ulong8 __ovld __cnfn convert_ulong8_rte(int8);
4016ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
4017ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
4018ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
4019ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
4020ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
4021ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
4022ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
4023ulong8 __ovld __cnfn convert_ulong8(int8);
4024ulong8 __ovld __cnfn convert_ulong8_sat(int8);
4025ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
4026ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
4027ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
4028ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
4029ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
4030ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
4031ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
4032ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
4033ulong8 __ovld __cnfn convert_ulong8(uint8);
4034ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
4035ulong8 __ovld __cnfn convert_ulong8_rte(long8);
4036ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
4037ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
4038ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
4039ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
4040ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
4041ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
4042ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
4043ulong8 __ovld __cnfn convert_ulong8(long8);
4044ulong8 __ovld __cnfn convert_ulong8_sat(long8);
4045ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
4046ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
4047ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
4048ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
4049ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
4050ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
4051ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
4052ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
4053ulong8 __ovld __cnfn convert_ulong8(ulong8);
4054ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
4055ulong8 __ovld __cnfn convert_ulong8_rte(float8);
4056ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
4057ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
4058ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
4059ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
4060ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
4061ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
4062ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
4063ulong8 __ovld __cnfn convert_ulong8(float8);
4064ulong8 __ovld __cnfn convert_ulong8_sat(float8);
4065float8 __ovld __cnfn convert_float8_rte(char8);
4066float8 __ovld __cnfn convert_float8_rtz(char8);
4067float8 __ovld __cnfn convert_float8_rtp(char8);
4068float8 __ovld __cnfn convert_float8_rtn(char8);
4069float8 __ovld __cnfn convert_float8(char8);
4070float8 __ovld __cnfn convert_float8_rte(uchar8);
4071float8 __ovld __cnfn convert_float8_rtz(uchar8);
4072float8 __ovld __cnfn convert_float8_rtp(uchar8);
4073float8 __ovld __cnfn convert_float8_rtn(uchar8);
4074float8 __ovld __cnfn convert_float8(uchar8);
4075float8 __ovld __cnfn convert_float8_rte(short8);
4076float8 __ovld __cnfn convert_float8_rtz(short8);
4077float8 __ovld __cnfn convert_float8_rtp(short8);
4078float8 __ovld __cnfn convert_float8_rtn(short8);
4079float8 __ovld __cnfn convert_float8(short8);
4080float8 __ovld __cnfn convert_float8_rte(ushort8);
4081float8 __ovld __cnfn convert_float8_rtz(ushort8);
4082float8 __ovld __cnfn convert_float8_rtp(ushort8);
4083float8 __ovld __cnfn convert_float8_rtn(ushort8);
4084float8 __ovld __cnfn convert_float8(ushort8);
4085float8 __ovld __cnfn convert_float8_rte(int8);
4086float8 __ovld __cnfn convert_float8_rtz(int8);
4087float8 __ovld __cnfn convert_float8_rtp(int8);
4088float8 __ovld __cnfn convert_float8_rtn(int8);
4089float8 __ovld __cnfn convert_float8(int8);
4090float8 __ovld __cnfn convert_float8_rte(uint8);
4091float8 __ovld __cnfn convert_float8_rtz(uint8);
4092float8 __ovld __cnfn convert_float8_rtp(uint8);
4093float8 __ovld __cnfn convert_float8_rtn(uint8);
4094float8 __ovld __cnfn convert_float8(uint8);
4095float8 __ovld __cnfn convert_float8_rte(long8);
4096float8 __ovld __cnfn convert_float8_rtz(long8);
4097float8 __ovld __cnfn convert_float8_rtp(long8);
4098float8 __ovld __cnfn convert_float8_rtn(long8);
4099float8 __ovld __cnfn convert_float8(long8);
4100float8 __ovld __cnfn convert_float8_rte(ulong8);
4101float8 __ovld __cnfn convert_float8_rtz(ulong8);
4102float8 __ovld __cnfn convert_float8_rtp(ulong8);
4103float8 __ovld __cnfn convert_float8_rtn(ulong8);
4104float8 __ovld __cnfn convert_float8(ulong8);
4105float8 __ovld __cnfn convert_float8_rte(float8);
4106float8 __ovld __cnfn convert_float8_rtz(float8);
4107float8 __ovld __cnfn convert_float8_rtp(float8);
4108float8 __ovld __cnfn convert_float8_rtn(float8);
4109float8 __ovld __cnfn convert_float8(float8);
4110char16 __ovld __cnfn convert_char16_rte(char16);
4111char16 __ovld __cnfn convert_char16_sat_rte(char16);
4112char16 __ovld __cnfn convert_char16_rtz(char16);
4113char16 __ovld __cnfn convert_char16_sat_rtz(char16);
4114char16 __ovld __cnfn convert_char16_rtp(char16);
4115char16 __ovld __cnfn convert_char16_sat_rtp(char16);
4116char16 __ovld __cnfn convert_char16_rtn(char16);
4117char16 __ovld __cnfn convert_char16_sat_rtn(char16);
4118char16 __ovld __cnfn convert_char16(char16);
4119char16 __ovld __cnfn convert_char16_sat(char16);
4120char16 __ovld __cnfn convert_char16_rte(uchar16);
4121char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
4122char16 __ovld __cnfn convert_char16_rtz(uchar16);
4123char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
4124char16 __ovld __cnfn convert_char16_rtp(uchar16);
4125char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
4126char16 __ovld __cnfn convert_char16_rtn(uchar16);
4127char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
4128char16 __ovld __cnfn convert_char16(uchar16);
4129char16 __ovld __cnfn convert_char16_sat(uchar16);
4130char16 __ovld __cnfn convert_char16_rte(short16);
4131char16 __ovld __cnfn convert_char16_sat_rte(short16);
4132char16 __ovld __cnfn convert_char16_rtz(short16);
4133char16 __ovld __cnfn convert_char16_sat_rtz(short16);
4134char16 __ovld __cnfn convert_char16_rtp(short16);
4135char16 __ovld __cnfn convert_char16_sat_rtp(short16);
4136char16 __ovld __cnfn convert_char16_rtn(short16);
4137char16 __ovld __cnfn convert_char16_sat_rtn(short16);
4138char16 __ovld __cnfn convert_char16(short16);
4139char16 __ovld __cnfn convert_char16_sat(short16);
4140char16 __ovld __cnfn convert_char16_rte(ushort16);
4141char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
4142char16 __ovld __cnfn convert_char16_rtz(ushort16);
4143char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
4144char16 __ovld __cnfn convert_char16_rtp(ushort16);
4145char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
4146char16 __ovld __cnfn convert_char16_rtn(ushort16);
4147char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
4148char16 __ovld __cnfn convert_char16(ushort16);
4149char16 __ovld __cnfn convert_char16_sat(ushort16);
4150char16 __ovld __cnfn convert_char16_rte(int16);
4151char16 __ovld __cnfn convert_char16_sat_rte(int16);
4152char16 __ovld __cnfn convert_char16_rtz(int16);
4153char16 __ovld __cnfn convert_char16_sat_rtz(int16);
4154char16 __ovld __cnfn convert_char16_rtp(int16);
4155char16 __ovld __cnfn convert_char16_sat_rtp(int16);
4156char16 __ovld __cnfn convert_char16_rtn(int16);
4157char16 __ovld __cnfn convert_char16_sat_rtn(int16);
4158char16 __ovld __cnfn convert_char16(int16);
4159char16 __ovld __cnfn convert_char16_sat(int16);
4160char16 __ovld __cnfn convert_char16_rte(uint16);
4161char16 __ovld __cnfn convert_char16_sat_rte(uint16);
4162char16 __ovld __cnfn convert_char16_rtz(uint16);
4163char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
4164char16 __ovld __cnfn convert_char16_rtp(uint16);
4165char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
4166char16 __ovld __cnfn convert_char16_rtn(uint16);
4167char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
4168char16 __ovld __cnfn convert_char16(uint16);
4169char16 __ovld __cnfn convert_char16_sat(uint16);
4170char16 __ovld __cnfn convert_char16_rte(long16);
4171char16 __ovld __cnfn convert_char16_sat_rte(long16);
4172char16 __ovld __cnfn convert_char16_rtz(long16);
4173char16 __ovld __cnfn convert_char16_sat_rtz(long16);
4174char16 __ovld __cnfn convert_char16_rtp(long16);
4175char16 __ovld __cnfn convert_char16_sat_rtp(long16);
4176char16 __ovld __cnfn convert_char16_rtn(long16);
4177char16 __ovld __cnfn convert_char16_sat_rtn(long16);
4178char16 __ovld __cnfn convert_char16(long16);
4179char16 __ovld __cnfn convert_char16_sat(long16);
4180char16 __ovld __cnfn convert_char16_rte(ulong16);
4181char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
4182char16 __ovld __cnfn convert_char16_rtz(ulong16);
4183char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
4184char16 __ovld __cnfn convert_char16_rtp(ulong16);
4185char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
4186char16 __ovld __cnfn convert_char16_rtn(ulong16);
4187char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
4188char16 __ovld __cnfn convert_char16(ulong16);
4189char16 __ovld __cnfn convert_char16_sat(ulong16);
4190char16 __ovld __cnfn convert_char16_rte(float16);
4191char16 __ovld __cnfn convert_char16_sat_rte(float16);
4192char16 __ovld __cnfn convert_char16_rtz(float16);
4193char16 __ovld __cnfn convert_char16_sat_rtz(float16);
4194char16 __ovld __cnfn convert_char16_rtp(float16);
4195char16 __ovld __cnfn convert_char16_sat_rtp(float16);
4196char16 __ovld __cnfn convert_char16_rtn(float16);
4197char16 __ovld __cnfn convert_char16_sat_rtn(float16);
4198char16 __ovld __cnfn convert_char16(float16);
4199char16 __ovld __cnfn convert_char16_sat(float16);
4200uchar16 __ovld __cnfn convert_uchar16_rte(char16);
4201uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
4202uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
4203uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
4204uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
4205uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
4206uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
4207uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
4208uchar16 __ovld __cnfn convert_uchar16(char16);
4209uchar16 __ovld __cnfn convert_uchar16_sat(char16);
4210uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
4211uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
4212uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
4213uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
4214uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
4215uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
4216uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
4217uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
4218uchar16 __ovld __cnfn convert_uchar16(uchar16);
4219uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
4220uchar16 __ovld __cnfn convert_uchar16_rte(short16);
4221uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
4222uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
4223uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
4224uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
4225uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
4226uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
4227uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
4228uchar16 __ovld __cnfn convert_uchar16(short16);
4229uchar16 __ovld __cnfn convert_uchar16_sat(short16);
4230uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
4231uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
4232uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
4233uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
4234uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
4235uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
4236uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
4237uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
4238uchar16 __ovld __cnfn convert_uchar16(ushort16);
4239uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
4240uchar16 __ovld __cnfn convert_uchar16_rte(int16);
4241uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4242uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4243uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4244uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4245uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4246uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4247uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4248uchar16 __ovld __cnfn convert_uchar16(int16);
4249uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4250uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4251uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4252uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4253uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4254uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4255uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4256uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4257uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4258uchar16 __ovld __cnfn convert_uchar16(uint16);
4259uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4260uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4261uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4262uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4263uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4264uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4265uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4266uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4267uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4268uchar16 __ovld __cnfn convert_uchar16(long16);
4269uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4270uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4271uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4272uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4273uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4274uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4275uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4276uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4277uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4278uchar16 __ovld __cnfn convert_uchar16(ulong16);
4279uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4280uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4281uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4282uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4283uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4284uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4285uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4286uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4287uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4288uchar16 __ovld __cnfn convert_uchar16(float16);
4289uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4290short16 __ovld __cnfn convert_short16_rte(char16);
4291short16 __ovld __cnfn convert_short16_sat_rte(char16);
4292short16 __ovld __cnfn convert_short16_rtz(char16);
4293short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4294short16 __ovld __cnfn convert_short16_rtp(char16);
4295short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4296short16 __ovld __cnfn convert_short16_rtn(char16);
4297short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4298short16 __ovld __cnfn convert_short16(char16);
4299short16 __ovld __cnfn convert_short16_sat(char16);
4300short16 __ovld __cnfn convert_short16_rte(uchar16);
4301short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4302short16 __ovld __cnfn convert_short16_rtz(uchar16);
4303short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4304short16 __ovld __cnfn convert_short16_rtp(uchar16);
4305short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4306short16 __ovld __cnfn convert_short16_rtn(uchar16);
4307short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4308short16 __ovld __cnfn convert_short16(uchar16);
4309short16 __ovld __cnfn convert_short16_sat(uchar16);
4310short16 __ovld __cnfn convert_short16_rte(short16);
4311short16 __ovld __cnfn convert_short16_sat_rte(short16);
4312short16 __ovld __cnfn convert_short16_rtz(short16);
4313short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4314short16 __ovld __cnfn convert_short16_rtp(short16);
4315short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4316short16 __ovld __cnfn convert_short16_rtn(short16);
4317short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4318short16 __ovld __cnfn convert_short16(short16);
4319short16 __ovld __cnfn convert_short16_sat(short16);
4320short16 __ovld __cnfn convert_short16_rte(ushort16);
4321short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4322short16 __ovld __cnfn convert_short16_rtz(ushort16);
4323short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4324short16 __ovld __cnfn convert_short16_rtp(ushort16);
4325short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4326short16 __ovld __cnfn convert_short16_rtn(ushort16);
4327short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4328short16 __ovld __cnfn convert_short16(ushort16);
4329short16 __ovld __cnfn convert_short16_sat(ushort16);
4330short16 __ovld __cnfn convert_short16_rte(int16);
4331short16 __ovld __cnfn convert_short16_sat_rte(int16);
4332short16 __ovld __cnfn convert_short16_rtz(int16);
4333short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4334short16 __ovld __cnfn convert_short16_rtp(int16);
4335short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4336short16 __ovld __cnfn convert_short16_rtn(int16);
4337short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4338short16 __ovld __cnfn convert_short16(int16);
4339short16 __ovld __cnfn convert_short16_sat(int16);
4340short16 __ovld __cnfn convert_short16_rte(uint16);
4341short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4342short16 __ovld __cnfn convert_short16_rtz(uint16);
4343short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4344short16 __ovld __cnfn convert_short16_rtp(uint16);
4345short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4346short16 __ovld __cnfn convert_short16_rtn(uint16);
4347short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4348short16 __ovld __cnfn convert_short16(uint16);
4349short16 __ovld __cnfn convert_short16_sat(uint16);
4350short16 __ovld __cnfn convert_short16_rte(long16);
4351short16 __ovld __cnfn convert_short16_sat_rte(long16);
4352short16 __ovld __cnfn convert_short16_rtz(long16);
4353short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4354short16 __ovld __cnfn convert_short16_rtp(long16);
4355short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4356short16 __ovld __cnfn convert_short16_rtn(long16);
4357short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4358short16 __ovld __cnfn convert_short16(long16);
4359short16 __ovld __cnfn convert_short16_sat(long16);
4360short16 __ovld __cnfn convert_short16_rte(ulong16);
4361short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4362short16 __ovld __cnfn convert_short16_rtz(ulong16);
4363short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4364short16 __ovld __cnfn convert_short16_rtp(ulong16);
4365short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4366short16 __ovld __cnfn convert_short16_rtn(ulong16);
4367short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4368short16 __ovld __cnfn convert_short16(ulong16);
4369short16 __ovld __cnfn convert_short16_sat(ulong16);
4370short16 __ovld __cnfn convert_short16_rte(float16);
4371short16 __ovld __cnfn convert_short16_sat_rte(float16);
4372short16 __ovld __cnfn convert_short16_rtz(float16);
4373short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4374short16 __ovld __cnfn convert_short16_rtp(float16);
4375short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4376short16 __ovld __cnfn convert_short16_rtn(float16);
4377short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4378short16 __ovld __cnfn convert_short16(float16);
4379short16 __ovld __cnfn convert_short16_sat(float16);
4380ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4381ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4382ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4383ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4384ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4385ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4386ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4387ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4388ushort16 __ovld __cnfn convert_ushort16(char16);
4389ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4390ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4391ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4392ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4393ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4394ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4395ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4396ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4397ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4398ushort16 __ovld __cnfn convert_ushort16(uchar16);
4399ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4400ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4401ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4402ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4403ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4404ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4405ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4406ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4407ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4408ushort16 __ovld __cnfn convert_ushort16(short16);
4409ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4410ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4411ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4412ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4413ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4414ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4415ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4416ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4417ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4418ushort16 __ovld __cnfn convert_ushort16(ushort16);
4419ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4420ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4421ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4422ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4423ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4424ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4425ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4426ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4427ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4428ushort16 __ovld __cnfn convert_ushort16(int16);
4429ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4430ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4431ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4432ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4433ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4434ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4435ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4436ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4437ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4438ushort16 __ovld __cnfn convert_ushort16(uint16);
4439ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4440ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4441ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4442ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4443ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4444ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4445ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4446ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4447ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4448ushort16 __ovld __cnfn convert_ushort16(long16);
4449ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4450ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4451ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4452ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4453ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4454ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4455ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4456ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4457ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4458ushort16 __ovld __cnfn convert_ushort16(ulong16);
4459ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4460ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4461ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4462ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4463ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4464ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4465ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4466ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4467ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4468ushort16 __ovld __cnfn convert_ushort16(float16);
4469ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4470int16 __ovld __cnfn convert_int16_rte(char16);
4471int16 __ovld __cnfn convert_int16_sat_rte(char16);
4472int16 __ovld __cnfn convert_int16_rtz(char16);
4473int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4474int16 __ovld __cnfn convert_int16_rtp(char16);
4475int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4476int16 __ovld __cnfn convert_int16_rtn(char16);
4477int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4478int16 __ovld __cnfn convert_int16(char16);
4479int16 __ovld __cnfn convert_int16_sat(char16);
4480int16 __ovld __cnfn convert_int16_rte(uchar16);
4481int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4482int16 __ovld __cnfn convert_int16_rtz(uchar16);
4483int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4484int16 __ovld __cnfn convert_int16_rtp(uchar16);
4485int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4486int16 __ovld __cnfn convert_int16_rtn(uchar16);
4487int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4488int16 __ovld __cnfn convert_int16(uchar16);
4489int16 __ovld __cnfn convert_int16_sat(uchar16);
4490int16 __ovld __cnfn convert_int16_rte(short16);
4491int16 __ovld __cnfn convert_int16_sat_rte(short16);
4492int16 __ovld __cnfn convert_int16_rtz(short16);
4493int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4494int16 __ovld __cnfn convert_int16_rtp(short16);
4495int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4496int16 __ovld __cnfn convert_int16_rtn(short16);
4497int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4498int16 __ovld __cnfn convert_int16(short16);
4499int16 __ovld __cnfn convert_int16_sat(short16);
4500int16 __ovld __cnfn convert_int16_rte(ushort16);
4501int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4502int16 __ovld __cnfn convert_int16_rtz(ushort16);
4503int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4504int16 __ovld __cnfn convert_int16_rtp(ushort16);
4505int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4506int16 __ovld __cnfn convert_int16_rtn(ushort16);
4507int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4508int16 __ovld __cnfn convert_int16(ushort16);
4509int16 __ovld __cnfn convert_int16_sat(ushort16);
4510int16 __ovld __cnfn convert_int16_rte(int16);
4511int16 __ovld __cnfn convert_int16_sat_rte(int16);
4512int16 __ovld __cnfn convert_int16_rtz(int16);
4513int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4514int16 __ovld __cnfn convert_int16_rtp(int16);
4515int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4516int16 __ovld __cnfn convert_int16_rtn(int16);
4517int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4518int16 __ovld __cnfn convert_int16(int16);
4519int16 __ovld __cnfn convert_int16_sat(int16);
4520int16 __ovld __cnfn convert_int16_rte(uint16);
4521int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4522int16 __ovld __cnfn convert_int16_rtz(uint16);
4523int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4524int16 __ovld __cnfn convert_int16_rtp(uint16);
4525int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4526int16 __ovld __cnfn convert_int16_rtn(uint16);
4527int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4528int16 __ovld __cnfn convert_int16(uint16);
4529int16 __ovld __cnfn convert_int16_sat(uint16);
4530int16 __ovld __cnfn convert_int16_rte(long16);
4531int16 __ovld __cnfn convert_int16_sat_rte(long16);
4532int16 __ovld __cnfn convert_int16_rtz(long16);
4533int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4534int16 __ovld __cnfn convert_int16_rtp(long16);
4535int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4536int16 __ovld __cnfn convert_int16_rtn(long16);
4537int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4538int16 __ovld __cnfn convert_int16(long16);
4539int16 __ovld __cnfn convert_int16_sat(long16);
4540int16 __ovld __cnfn convert_int16_rte(ulong16);
4541int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4542int16 __ovld __cnfn convert_int16_rtz(ulong16);
4543int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4544int16 __ovld __cnfn convert_int16_rtp(ulong16);
4545int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4546int16 __ovld __cnfn convert_int16_rtn(ulong16);
4547int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4548int16 __ovld __cnfn convert_int16(ulong16);
4549int16 __ovld __cnfn convert_int16_sat(ulong16);
4550int16 __ovld __cnfn convert_int16_rte(float16);
4551int16 __ovld __cnfn convert_int16_sat_rte(float16);
4552int16 __ovld __cnfn convert_int16_rtz(float16);
4553int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4554int16 __ovld __cnfn convert_int16_rtp(float16);
4555int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4556int16 __ovld __cnfn convert_int16_rtn(float16);
4557int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4558int16 __ovld __cnfn convert_int16(float16);
4559int16 __ovld __cnfn convert_int16_sat(float16);
4560uint16 __ovld __cnfn convert_uint16_rte(char16);
4561uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4562uint16 __ovld __cnfn convert_uint16_rtz(char16);
4563uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4564uint16 __ovld __cnfn convert_uint16_rtp(char16);
4565uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4566uint16 __ovld __cnfn convert_uint16_rtn(char16);
4567uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4568uint16 __ovld __cnfn convert_uint16(char16);
4569uint16 __ovld __cnfn convert_uint16_sat(char16);
4570uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4571uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4572uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4573uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4574uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4575uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4576uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4577uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4578uint16 __ovld __cnfn convert_uint16(uchar16);
4579uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4580uint16 __ovld __cnfn convert_uint16_rte(short16);
4581uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4582uint16 __ovld __cnfn convert_uint16_rtz(short16);
4583uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4584uint16 __ovld __cnfn convert_uint16_rtp(short16);
4585uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4586uint16 __ovld __cnfn convert_uint16_rtn(short16);
4587uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4588uint16 __ovld __cnfn convert_uint16(short16);
4589uint16 __ovld __cnfn convert_uint16_sat(short16);
4590uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4591uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4592uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4593uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4594uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4595uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4596uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4597uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4598uint16 __ovld __cnfn convert_uint16(ushort16);
4599uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4600uint16 __ovld __cnfn convert_uint16_rte(int16);
4601uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4602uint16 __ovld __cnfn convert_uint16_rtz(int16);
4603uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4604uint16 __ovld __cnfn convert_uint16_rtp(int16);
4605uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4606uint16 __ovld __cnfn convert_uint16_rtn(int16);
4607uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4608uint16 __ovld __cnfn convert_uint16(int16);
4609uint16 __ovld __cnfn convert_uint16_sat(int16);
4610uint16 __ovld __cnfn convert_uint16_rte(uint16);
4611uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4612uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4613uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4614uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4615uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4616uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4617uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4618uint16 __ovld __cnfn convert_uint16(uint16);
4619uint16 __ovld __cnfn convert_uint16_sat(uint16);
4620uint16 __ovld __cnfn convert_uint16_rte(long16);
4621uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4622uint16 __ovld __cnfn convert_uint16_rtz(long16);
4623uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4624uint16 __ovld __cnfn convert_uint16_rtp(long16);
4625uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4626uint16 __ovld __cnfn convert_uint16_rtn(long16);
4627uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4628uint16 __ovld __cnfn convert_uint16(long16);
4629uint16 __ovld __cnfn convert_uint16_sat(long16);
4630uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4631uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4632uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4633uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4634uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4635uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4636uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4637uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4638uint16 __ovld __cnfn convert_uint16(ulong16);
4639uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4640uint16 __ovld __cnfn convert_uint16_rte(float16);
4641uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4642uint16 __ovld __cnfn convert_uint16_rtz(float16);
4643uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4644uint16 __ovld __cnfn convert_uint16_rtp(float16);
4645uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4646uint16 __ovld __cnfn convert_uint16_rtn(float16);
4647uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4648uint16 __ovld __cnfn convert_uint16(float16);
4649uint16 __ovld __cnfn convert_uint16_sat(float16);
4650long16 __ovld __cnfn convert_long16_rte(char16);
4651long16 __ovld __cnfn convert_long16_sat_rte(char16);
4652long16 __ovld __cnfn convert_long16_rtz(char16);
4653long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4654long16 __ovld __cnfn convert_long16_rtp(char16);
4655long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4656long16 __ovld __cnfn convert_long16_rtn(char16);
4657long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4658long16 __ovld __cnfn convert_long16(char16);
4659long16 __ovld __cnfn convert_long16_sat(char16);
4660long16 __ovld __cnfn convert_long16_rte(uchar16);
4661long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4662long16 __ovld __cnfn convert_long16_rtz(uchar16);
4663long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4664long16 __ovld __cnfn convert_long16_rtp(uchar16);
4665long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4666long16 __ovld __cnfn convert_long16_rtn(uchar16);
4667long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4668long16 __ovld __cnfn convert_long16(uchar16);
4669long16 __ovld __cnfn convert_long16_sat(uchar16);
4670long16 __ovld __cnfn convert_long16_rte(short16);
4671long16 __ovld __cnfn convert_long16_sat_rte(short16);
4672long16 __ovld __cnfn convert_long16_rtz(short16);
4673long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4674long16 __ovld __cnfn convert_long16_rtp(short16);
4675long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4676long16 __ovld __cnfn convert_long16_rtn(short16);
4677long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4678long16 __ovld __cnfn convert_long16(short16);
4679long16 __ovld __cnfn convert_long16_sat(short16);
4680long16 __ovld __cnfn convert_long16_rte(ushort16);
4681long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4682long16 __ovld __cnfn convert_long16_rtz(ushort16);
4683long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4684long16 __ovld __cnfn convert_long16_rtp(ushort16);
4685long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4686long16 __ovld __cnfn convert_long16_rtn(ushort16);
4687long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4688long16 __ovld __cnfn convert_long16(ushort16);
4689long16 __ovld __cnfn convert_long16_sat(ushort16);
4690long16 __ovld __cnfn convert_long16_rte(int16);
4691long16 __ovld __cnfn convert_long16_sat_rte(int16);
4692long16 __ovld __cnfn convert_long16_rtz(int16);
4693long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4694long16 __ovld __cnfn convert_long16_rtp(int16);
4695long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4696long16 __ovld __cnfn convert_long16_rtn(int16);
4697long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4698long16 __ovld __cnfn convert_long16(int16);
4699long16 __ovld __cnfn convert_long16_sat(int16);
4700long16 __ovld __cnfn convert_long16_rte(uint16);
4701long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4702long16 __ovld __cnfn convert_long16_rtz(uint16);
4703long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4704long16 __ovld __cnfn convert_long16_rtp(uint16);
4705long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4706long16 __ovld __cnfn convert_long16_rtn(uint16);
4707long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4708long16 __ovld __cnfn convert_long16(uint16);
4709long16 __ovld __cnfn convert_long16_sat(uint16);
4710long16 __ovld __cnfn convert_long16_rte(long16);
4711long16 __ovld __cnfn convert_long16_sat_rte(long16);
4712long16 __ovld __cnfn convert_long16_rtz(long16);
4713long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4714long16 __ovld __cnfn convert_long16_rtp(long16);
4715long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4716long16 __ovld __cnfn convert_long16_rtn(long16);
4717long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4718long16 __ovld __cnfn convert_long16(long16);
4719long16 __ovld __cnfn convert_long16_sat(long16);
4720long16 __ovld __cnfn convert_long16_rte(ulong16);
4721long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4722long16 __ovld __cnfn convert_long16_rtz(ulong16);
4723long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4724long16 __ovld __cnfn convert_long16_rtp(ulong16);
4725long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4726long16 __ovld __cnfn convert_long16_rtn(ulong16);
4727long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4728long16 __ovld __cnfn convert_long16(ulong16);
4729long16 __ovld __cnfn convert_long16_sat(ulong16);
4730long16 __ovld __cnfn convert_long16_rte(float16);
4731long16 __ovld __cnfn convert_long16_sat_rte(float16);
4732long16 __ovld __cnfn convert_long16_rtz(float16);
4733long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4734long16 __ovld __cnfn convert_long16_rtp(float16);
4735long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4736long16 __ovld __cnfn convert_long16_rtn(float16);
4737long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4738long16 __ovld __cnfn convert_long16(float16);
4739long16 __ovld __cnfn convert_long16_sat(float16);
4740ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4741ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4742ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4743ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4744ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4745ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4746ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4747ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4748ulong16 __ovld __cnfn convert_ulong16(char16);
4749ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4750ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4751ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4752ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4753ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4754ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4755ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4756ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4757ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4758ulong16 __ovld __cnfn convert_ulong16(uchar16);
4759ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4760ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4761ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4762ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4763ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4764ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4765ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4766ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4767ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4768ulong16 __ovld __cnfn convert_ulong16(short16);
4769ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4770ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4771ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4772ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4773ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4774ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4775ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4776ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4777ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4778ulong16 __ovld __cnfn convert_ulong16(ushort16);
4779ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4780ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4781ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4782ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4783ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4784ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4785ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4786ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4787ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4788ulong16 __ovld __cnfn convert_ulong16(int16);
4789ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4790ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4791ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4792ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4793ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4794ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4795ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4796ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4797ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4798ulong16 __ovld __cnfn convert_ulong16(uint16);
4799ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4800ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4801ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4802ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4803ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4804ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4805ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4806ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4807ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4808ulong16 __ovld __cnfn convert_ulong16(long16);
4809ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4810ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4811ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4812ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4813ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4814ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4815ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4816ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4817ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4818ulong16 __ovld __cnfn convert_ulong16(ulong16);
4819ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4820ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4821ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4822ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4823ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4824ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4825ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4826ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4827ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4828ulong16 __ovld __cnfn convert_ulong16(float16);
4829ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4830float16 __ovld __cnfn convert_float16_rte(char16);
4831float16 __ovld __cnfn convert_float16_rtz(char16);
4832float16 __ovld __cnfn convert_float16_rtp(char16);
4833float16 __ovld __cnfn convert_float16_rtn(char16);
4834float16 __ovld __cnfn convert_float16(char16);
4835float16 __ovld __cnfn convert_float16_rte(uchar16);
4836float16 __ovld __cnfn convert_float16_rtz(uchar16);
4837float16 __ovld __cnfn convert_float16_rtp(uchar16);
4838float16 __ovld __cnfn convert_float16_rtn(uchar16);
4839float16 __ovld __cnfn convert_float16(uchar16);
4840float16 __ovld __cnfn convert_float16_rte(short16);
4841float16 __ovld __cnfn convert_float16_rtz(short16);
4842float16 __ovld __cnfn convert_float16_rtp(short16);
4843float16 __ovld __cnfn convert_float16_rtn(short16);
4844float16 __ovld __cnfn convert_float16(short16);
4845float16 __ovld __cnfn convert_float16_rte(ushort16);
4846float16 __ovld __cnfn convert_float16_rtz(ushort16);
4847float16 __ovld __cnfn convert_float16_rtp(ushort16);
4848float16 __ovld __cnfn convert_float16_rtn(ushort16);
4849float16 __ovld __cnfn convert_float16(ushort16);
4850float16 __ovld __cnfn convert_float16_rte(int16);
4851float16 __ovld __cnfn convert_float16_rtz(int16);
4852float16 __ovld __cnfn convert_float16_rtp(int16);
4853float16 __ovld __cnfn convert_float16_rtn(int16);
4854float16 __ovld __cnfn convert_float16(int16);
4855float16 __ovld __cnfn convert_float16_rte(uint16);
4856float16 __ovld __cnfn convert_float16_rtz(uint16);
4857float16 __ovld __cnfn convert_float16_rtp(uint16);
4858float16 __ovld __cnfn convert_float16_rtn(uint16);
4859float16 __ovld __cnfn convert_float16(uint16);
4860float16 __ovld __cnfn convert_float16_rte(long16);
4861float16 __ovld __cnfn convert_float16_rtz(long16);
4862float16 __ovld __cnfn convert_float16_rtp(long16);
4863float16 __ovld __cnfn convert_float16_rtn(long16);
4864float16 __ovld __cnfn convert_float16(long16);
4865float16 __ovld __cnfn convert_float16_rte(ulong16);
4866float16 __ovld __cnfn convert_float16_rtz(ulong16);
4867float16 __ovld __cnfn convert_float16_rtp(ulong16);
4868float16 __ovld __cnfn convert_float16_rtn(ulong16);
4869float16 __ovld __cnfn convert_float16(ulong16);
4870float16 __ovld __cnfn convert_float16_rte(float16);
4871float16 __ovld __cnfn convert_float16_rtz(float16);
4872float16 __ovld __cnfn convert_float16_rtp(float16);
4873float16 __ovld __cnfn convert_float16_rtn(float16);
4874float16 __ovld __cnfn convert_float16(float16);
4875
4876// Conversions with double data type parameters or return value.
4877
4878#ifdef cl_khr_fp64
4879char __ovld __cnfn convert_char(double);
4880char __ovld __cnfn convert_char_rte(double);
4881char __ovld __cnfn convert_char_rtn(double);
4882char __ovld __cnfn convert_char_rtp(double);
4883char __ovld __cnfn convert_char_rtz(double);
4884char __ovld __cnfn convert_char_sat(double);
4885char __ovld __cnfn convert_char_sat_rte(double);
4886char __ovld __cnfn convert_char_sat_rtn(double);
4887char __ovld __cnfn convert_char_sat_rtp(double);
4888char __ovld __cnfn convert_char_sat_rtz(double);
4889char2 __ovld __cnfn convert_char2(double2);
4890char2 __ovld __cnfn convert_char2_rte(double2);
4891char2 __ovld __cnfn convert_char2_rtn(double2);
4892char2 __ovld __cnfn convert_char2_rtp(double2);
4893char2 __ovld __cnfn convert_char2_rtz(double2);
4894char2 __ovld __cnfn convert_char2_sat(double2);
4895char2 __ovld __cnfn convert_char2_sat_rte(double2);
4896char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4897char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4898char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4899char3 __ovld __cnfn convert_char3(double3);
4900char3 __ovld __cnfn convert_char3_rte(double3);
4901char3 __ovld __cnfn convert_char3_rtn(double3);
4902char3 __ovld __cnfn convert_char3_rtp(double3);
4903char3 __ovld __cnfn convert_char3_rtz(double3);
4904char3 __ovld __cnfn convert_char3_sat(double3);
4905char3 __ovld __cnfn convert_char3_sat_rte(double3);
4906char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4907char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4908char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4909char4 __ovld __cnfn convert_char4(double4);
4910char4 __ovld __cnfn convert_char4_rte(double4);
4911char4 __ovld __cnfn convert_char4_rtn(double4);
4912char4 __ovld __cnfn convert_char4_rtp(double4);
4913char4 __ovld __cnfn convert_char4_rtz(double4);
4914char4 __ovld __cnfn convert_char4_sat(double4);
4915char4 __ovld __cnfn convert_char4_sat_rte(double4);
4916char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4917char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4918char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4919char8 __ovld __cnfn convert_char8(double8);
4920char8 __ovld __cnfn convert_char8_rte(double8);
4921char8 __ovld __cnfn convert_char8_rtn(double8);
4922char8 __ovld __cnfn convert_char8_rtp(double8);
4923char8 __ovld __cnfn convert_char8_rtz(double8);
4924char8 __ovld __cnfn convert_char8_sat(double8);
4925char8 __ovld __cnfn convert_char8_sat_rte(double8);
4926char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4927char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4928char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4929char16 __ovld __cnfn convert_char16(double16);
4930char16 __ovld __cnfn convert_char16_rte(double16);
4931char16 __ovld __cnfn convert_char16_rtn(double16);
4932char16 __ovld __cnfn convert_char16_rtp(double16);
4933char16 __ovld __cnfn convert_char16_rtz(double16);
4934char16 __ovld __cnfn convert_char16_sat(double16);
4935char16 __ovld __cnfn convert_char16_sat_rte(double16);
4936char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4937char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4938char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4939
4940uchar __ovld __cnfn convert_uchar(double);
4941uchar __ovld __cnfn convert_uchar_rte(double);
4942uchar __ovld __cnfn convert_uchar_rtn(double);
4943uchar __ovld __cnfn convert_uchar_rtp(double);
4944uchar __ovld __cnfn convert_uchar_rtz(double);
4945uchar __ovld __cnfn convert_uchar_sat(double);
4946uchar __ovld __cnfn convert_uchar_sat_rte(double);
4947uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4948uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4949uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4950uchar2 __ovld __cnfn convert_uchar2(double2);
4951uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4952uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4953uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4954uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4955uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4956uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4957uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4958uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4959uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4960uchar3 __ovld __cnfn convert_uchar3(double3);
4961uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4962uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4963uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4964uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4965uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4966uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4967uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4968uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4969uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4970uchar4 __ovld __cnfn convert_uchar4(double4);
4971uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4972uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4973uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4974uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4975uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4976uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4977uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4978uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4979uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4980uchar8 __ovld __cnfn convert_uchar8(double8);
4981uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4982uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4983uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4984uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4985uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4986uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4987uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4988uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4989uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4990uchar16 __ovld __cnfn convert_uchar16(double16);
4991uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4992uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4993uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4994uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4995uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4996uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4997uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4998uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4999uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
5000
5001short __ovld __cnfn convert_short(double);
5002short __ovld __cnfn convert_short_rte(double);
5003short __ovld __cnfn convert_short_rtn(double);
5004short __ovld __cnfn convert_short_rtp(double);
5005short __ovld __cnfn convert_short_rtz(double);
5006short __ovld __cnfn convert_short_sat(double);
5007short __ovld __cnfn convert_short_sat_rte(double);
5008short __ovld __cnfn convert_short_sat_rtn(double);
5009short __ovld __cnfn convert_short_sat_rtp(double);
5010short __ovld __cnfn convert_short_sat_rtz(double);
5011short2 __ovld __cnfn convert_short2(double2);
5012short2 __ovld __cnfn convert_short2_rte(double2);
5013short2 __ovld __cnfn convert_short2_rtn(double2);
5014short2 __ovld __cnfn convert_short2_rtp(double2);
5015short2 __ovld __cnfn convert_short2_rtz(double2);
5016short2 __ovld __cnfn convert_short2_sat(double2);
5017short2 __ovld __cnfn convert_short2_sat_rte(double2);
5018short2 __ovld __cnfn convert_short2_sat_rtn(double2);
5019short2 __ovld __cnfn convert_short2_sat_rtp(double2);
5020short2 __ovld __cnfn convert_short2_sat_rtz(double2);
5021short3 __ovld __cnfn convert_short3(double3);
5022short3 __ovld __cnfn convert_short3_rte(double3);
5023short3 __ovld __cnfn convert_short3_rtn(double3);
5024short3 __ovld __cnfn convert_short3_rtp(double3);
5025short3 __ovld __cnfn convert_short3_rtz(double3);
5026short3 __ovld __cnfn convert_short3_sat(double3);
5027short3 __ovld __cnfn convert_short3_sat_rte(double3);
5028short3 __ovld __cnfn convert_short3_sat_rtn(double3);
5029short3 __ovld __cnfn convert_short3_sat_rtp(double3);
5030short3 __ovld __cnfn convert_short3_sat_rtz(double3);
5031short4 __ovld __cnfn convert_short4(double4);
5032short4 __ovld __cnfn convert_short4_rte(double4);
5033short4 __ovld __cnfn convert_short4_rtn(double4);
5034short4 __ovld __cnfn convert_short4_rtp(double4);
5035short4 __ovld __cnfn convert_short4_rtz(double4);
5036short4 __ovld __cnfn convert_short4_sat(double4);
5037short4 __ovld __cnfn convert_short4_sat_rte(double4);
5038short4 __ovld __cnfn convert_short4_sat_rtn(double4);
5039short4 __ovld __cnfn convert_short4_sat_rtp(double4);
5040short4 __ovld __cnfn convert_short4_sat_rtz(double4);
5041short8 __ovld __cnfn convert_short8(double8);
5042short8 __ovld __cnfn convert_short8_rte(double8);
5043short8 __ovld __cnfn convert_short8_rtn(double8);
5044short8 __ovld __cnfn convert_short8_rtp(double8);
5045short8 __ovld __cnfn convert_short8_rtz(double8);
5046short8 __ovld __cnfn convert_short8_sat(double8);
5047short8 __ovld __cnfn convert_short8_sat_rte(double8);
5048short8 __ovld __cnfn convert_short8_sat_rtn(double8);
5049short8 __ovld __cnfn convert_short8_sat_rtp(double8);
5050short8 __ovld __cnfn convert_short8_sat_rtz(double8);
5051short16 __ovld __cnfn convert_short16(double16);
5052short16 __ovld __cnfn convert_short16_rte(double16);
5053short16 __ovld __cnfn convert_short16_rtn(double16);
5054short16 __ovld __cnfn convert_short16_rtp(double16);
5055short16 __ovld __cnfn convert_short16_rtz(double16);
5056short16 __ovld __cnfn convert_short16_sat(double16);
5057short16 __ovld __cnfn convert_short16_sat_rte(double16);
5058short16 __ovld __cnfn convert_short16_sat_rtn(double16);
5059short16 __ovld __cnfn convert_short16_sat_rtp(double16);
5060short16 __ovld __cnfn convert_short16_sat_rtz(double16);
5061
5062ushort __ovld __cnfn convert_ushort(double);
5063ushort __ovld __cnfn convert_ushort_rte(double);
5064ushort __ovld __cnfn convert_ushort_rtn(double);
5065ushort __ovld __cnfn convert_ushort_rtp(double);
5066ushort __ovld __cnfn convert_ushort_rtz(double);
5067ushort __ovld __cnfn convert_ushort_sat(double);
5068ushort __ovld __cnfn convert_ushort_sat_rte(double);
5069ushort __ovld __cnfn convert_ushort_sat_rtn(double);
5070ushort __ovld __cnfn convert_ushort_sat_rtp(double);
5071ushort __ovld __cnfn convert_ushort_sat_rtz(double);
5072ushort2 __ovld __cnfn convert_ushort2(double2);
5073ushort2 __ovld __cnfn convert_ushort2_rte(double2);
5074ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
5075ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
5076ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
5077ushort2 __ovld __cnfn convert_ushort2_sat(double2);
5078ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
5079ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
5080ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
5081ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
5082ushort3 __ovld __cnfn convert_ushort3(double3);
5083ushort3 __ovld __cnfn convert_ushort3_rte(double3);
5084ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
5085ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
5086ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
5087ushort3 __ovld __cnfn convert_ushort3_sat(double3);
5088ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
5089ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
5090ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
5091ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
5092ushort4 __ovld __cnfn convert_ushort4(double4);
5093ushort4 __ovld __cnfn convert_ushort4_rte(double4);
5094ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
5095ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
5096ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
5097ushort4 __ovld __cnfn convert_ushort4_sat(double4);
5098ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
5099ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
5100ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
5101ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
5102ushort8 __ovld __cnfn convert_ushort8(double8);
5103ushort8 __ovld __cnfn convert_ushort8_rte(double8);
5104ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
5105ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
5106ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
5107ushort8 __ovld __cnfn convert_ushort8_sat(double8);
5108ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
5109ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
5110ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
5111ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
5112ushort16 __ovld __cnfn convert_ushort16(double16);
5113ushort16 __ovld __cnfn convert_ushort16_rte(double16);
5114ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
5115ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
5116ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
5117ushort16 __ovld __cnfn convert_ushort16_sat(double16);
5118ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
5119ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
5120ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
5121ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
5122
5123int __ovld __cnfn convert_int(double);
5124int __ovld __cnfn convert_int_rte(double);
5125int __ovld __cnfn convert_int_rtn(double);
5126int __ovld __cnfn convert_int_rtp(double);
5127int __ovld __cnfn convert_int_rtz(double);
5128int __ovld __cnfn convert_int_sat(double);
5129int __ovld __cnfn convert_int_sat_rte(double);
5130int __ovld __cnfn convert_int_sat_rtn(double);
5131int __ovld __cnfn convert_int_sat_rtp(double);
5132int __ovld __cnfn convert_int_sat_rtz(double);
5133int2 __ovld __cnfn convert_int2(double2);
5134int2 __ovld __cnfn convert_int2_rte(double2);
5135int2 __ovld __cnfn convert_int2_rtn(double2);
5136int2 __ovld __cnfn convert_int2_rtp(double2);
5137int2 __ovld __cnfn convert_int2_rtz(double2);
5138int2 __ovld __cnfn convert_int2_sat(double2);
5139int2 __ovld __cnfn convert_int2_sat_rte(double2);
5140int2 __ovld __cnfn convert_int2_sat_rtn(double2);
5141int2 __ovld __cnfn convert_int2_sat_rtp(double2);
5142int2 __ovld __cnfn convert_int2_sat_rtz(double2);
5143int3 __ovld __cnfn convert_int3(double3);
5144int3 __ovld __cnfn convert_int3_rte(double3);
5145int3 __ovld __cnfn convert_int3_rtn(double3);
5146int3 __ovld __cnfn convert_int3_rtp(double3);
5147int3 __ovld __cnfn convert_int3_rtz(double3);
5148int3 __ovld __cnfn convert_int3_sat(double3);
5149int3 __ovld __cnfn convert_int3_sat_rte(double3);
5150int3 __ovld __cnfn convert_int3_sat_rtn(double3);
5151int3 __ovld __cnfn convert_int3_sat_rtp(double3);
5152int3 __ovld __cnfn convert_int3_sat_rtz(double3);
5153int4 __ovld __cnfn convert_int4(double4);
5154int4 __ovld __cnfn convert_int4_rte(double4);
5155int4 __ovld __cnfn convert_int4_rtn(double4);
5156int4 __ovld __cnfn convert_int4_rtp(double4);
5157int4 __ovld __cnfn convert_int4_rtz(double4);
5158int4 __ovld __cnfn convert_int4_sat(double4);
5159int4 __ovld __cnfn convert_int4_sat_rte(double4);
5160int4 __ovld __cnfn convert_int4_sat_rtn(double4);
5161int4 __ovld __cnfn convert_int4_sat_rtp(double4);
5162int4 __ovld __cnfn convert_int4_sat_rtz(double4);
5163int8 __ovld __cnfn convert_int8(double8);
5164int8 __ovld __cnfn convert_int8_rte(double8);
5165int8 __ovld __cnfn convert_int8_rtn(double8);
5166int8 __ovld __cnfn convert_int8_rtp(double8);
5167int8 __ovld __cnfn convert_int8_rtz(double8);
5168int8 __ovld __cnfn convert_int8_sat(double8);
5169int8 __ovld __cnfn convert_int8_sat_rte(double8);
5170int8 __ovld __cnfn convert_int8_sat_rtn(double8);
5171int8 __ovld __cnfn convert_int8_sat_rtp(double8);
5172int8 __ovld __cnfn convert_int8_sat_rtz(double8);
5173int16 __ovld __cnfn convert_int16(double16);
5174int16 __ovld __cnfn convert_int16_rte(double16);
5175int16 __ovld __cnfn convert_int16_rtn(double16);
5176int16 __ovld __cnfn convert_int16_rtp(double16);
5177int16 __ovld __cnfn convert_int16_rtz(double16);
5178int16 __ovld __cnfn convert_int16_sat(double16);
5179int16 __ovld __cnfn convert_int16_sat_rte(double16);
5180int16 __ovld __cnfn convert_int16_sat_rtn(double16);
5181int16 __ovld __cnfn convert_int16_sat_rtp(double16);
5182int16 __ovld __cnfn convert_int16_sat_rtz(double16);
5183
5184uint __ovld __cnfn convert_uint(double);
5185uint __ovld __cnfn convert_uint_rte(double);
5186uint __ovld __cnfn convert_uint_rtn(double);
5187uint __ovld __cnfn convert_uint_rtp(double);
5188uint __ovld __cnfn convert_uint_rtz(double);
5189uint __ovld __cnfn convert_uint_sat(double);
5190uint __ovld __cnfn convert_uint_sat_rte(double);
5191uint __ovld __cnfn convert_uint_sat_rtn(double);
5192uint __ovld __cnfn convert_uint_sat_rtp(double);
5193uint __ovld __cnfn convert_uint_sat_rtz(double);
5194uint2 __ovld __cnfn convert_uint2(double2);
5195uint2 __ovld __cnfn convert_uint2_rte(double2);
5196uint2 __ovld __cnfn convert_uint2_rtn(double2);
5197uint2 __ovld __cnfn convert_uint2_rtp(double2);
5198uint2 __ovld __cnfn convert_uint2_rtz(double2);
5199uint2 __ovld __cnfn convert_uint2_sat(double2);
5200uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
5201uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
5202uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
5203uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
5204uint3 __ovld __cnfn convert_uint3(double3);
5205uint3 __ovld __cnfn convert_uint3_rte(double3);
5206uint3 __ovld __cnfn convert_uint3_rtn(double3);
5207uint3 __ovld __cnfn convert_uint3_rtp(double3);
5208uint3 __ovld __cnfn convert_uint3_rtz(double3);
5209uint3 __ovld __cnfn convert_uint3_sat(double3);
5210uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
5211uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
5212uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
5213uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
5214uint4 __ovld __cnfn convert_uint4(double4);
5215uint4 __ovld __cnfn convert_uint4_rte(double4);
5216uint4 __ovld __cnfn convert_uint4_rtn(double4);
5217uint4 __ovld __cnfn convert_uint4_rtp(double4);
5218uint4 __ovld __cnfn convert_uint4_rtz(double4);
5219uint4 __ovld __cnfn convert_uint4_sat(double4);
5220uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
5221uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
5222uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
5223uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
5224uint8 __ovld __cnfn convert_uint8(double8);
5225uint8 __ovld __cnfn convert_uint8_rte(double8);
5226uint8 __ovld __cnfn convert_uint8_rtn(double8);
5227uint8 __ovld __cnfn convert_uint8_rtp(double8);
5228uint8 __ovld __cnfn convert_uint8_rtz(double8);
5229uint8 __ovld __cnfn convert_uint8_sat(double8);
5230uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
5231uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
5232uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
5233uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
5234uint16 __ovld __cnfn convert_uint16(double16);
5235uint16 __ovld __cnfn convert_uint16_rte(double16);
5236uint16 __ovld __cnfn convert_uint16_rtn(double16);
5237uint16 __ovld __cnfn convert_uint16_rtp(double16);
5238uint16 __ovld __cnfn convert_uint16_rtz(double16);
5239uint16 __ovld __cnfn convert_uint16_sat(double16);
5240uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5241uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5242uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5243uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5244
5245long __ovld __cnfn convert_long(double);
5246long __ovld __cnfn convert_long_rte(double);
5247long __ovld __cnfn convert_long_rtn(double);
5248long __ovld __cnfn convert_long_rtp(double);
5249long __ovld __cnfn convert_long_rtz(double);
5250long __ovld __cnfn convert_long_sat(double);
5251long __ovld __cnfn convert_long_sat_rte(double);
5252long __ovld __cnfn convert_long_sat_rtn(double);
5253long __ovld __cnfn convert_long_sat_rtp(double);
5254long __ovld __cnfn convert_long_sat_rtz(double);
5255long2 __ovld __cnfn convert_long2(double2);
5256long2 __ovld __cnfn convert_long2_rte(double2);
5257long2 __ovld __cnfn convert_long2_rtn(double2);
5258long2 __ovld __cnfn convert_long2_rtp(double2);
5259long2 __ovld __cnfn convert_long2_rtz(double2);
5260long2 __ovld __cnfn convert_long2_sat(double2);
5261long2 __ovld __cnfn convert_long2_sat_rte(double2);
5262long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5263long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5264long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5265long3 __ovld __cnfn convert_long3(double3);
5266long3 __ovld __cnfn convert_long3_rte(double3);
5267long3 __ovld __cnfn convert_long3_rtn(double3);
5268long3 __ovld __cnfn convert_long3_rtp(double3);
5269long3 __ovld __cnfn convert_long3_rtz(double3);
5270long3 __ovld __cnfn convert_long3_sat(double3);
5271long3 __ovld __cnfn convert_long3_sat_rte(double3);
5272long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5273long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5274long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5275long4 __ovld __cnfn convert_long4(double4);
5276long4 __ovld __cnfn convert_long4_rte(double4);
5277long4 __ovld __cnfn convert_long4_rtn(double4);
5278long4 __ovld __cnfn convert_long4_rtp(double4);
5279long4 __ovld __cnfn convert_long4_rtz(double4);
5280long4 __ovld __cnfn convert_long4_sat(double4);
5281long4 __ovld __cnfn convert_long4_sat_rte(double4);
5282long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5283long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5284long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5285long8 __ovld __cnfn convert_long8(double8);
5286long8 __ovld __cnfn convert_long8_rte(double8);
5287long8 __ovld __cnfn convert_long8_rtn(double8);
5288long8 __ovld __cnfn convert_long8_rtp(double8);
5289long8 __ovld __cnfn convert_long8_rtz(double8);
5290long8 __ovld __cnfn convert_long8_sat(double8);
5291long8 __ovld __cnfn convert_long8_sat_rte(double8);
5292long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5293long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5294long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5295long16 __ovld __cnfn convert_long16(double16);
5296long16 __ovld __cnfn convert_long16_rte(double16);
5297long16 __ovld __cnfn convert_long16_rtn(double16);
5298long16 __ovld __cnfn convert_long16_rtp(double16);
5299long16 __ovld __cnfn convert_long16_rtz(double16);
5300long16 __ovld __cnfn convert_long16_sat(double16);
5301long16 __ovld __cnfn convert_long16_sat_rte(double16);
5302long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5303long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5304long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5305
5306ulong __ovld __cnfn convert_ulong(double);
5307ulong __ovld __cnfn convert_ulong_rte(double);
5308ulong __ovld __cnfn convert_ulong_rtn(double);
5309ulong __ovld __cnfn convert_ulong_rtp(double);
5310ulong __ovld __cnfn convert_ulong_rtz(double);
5311ulong __ovld __cnfn convert_ulong_sat(double);
5312ulong __ovld __cnfn convert_ulong_sat_rte(double);
5313ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5314ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5315ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5316ulong2 __ovld __cnfn convert_ulong2(double2);
5317ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5318ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5319ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5320ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5321ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5322ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5323ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5324ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5325ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5326ulong3 __ovld __cnfn convert_ulong3(double3);
5327ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5328ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5329ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5330ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5331ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5332ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5333ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5334ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5335ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5336ulong4 __ovld __cnfn convert_ulong4(double4);
5337ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5338ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5339ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5340ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5341ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5342ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5343ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5344ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5345ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5346ulong8 __ovld __cnfn convert_ulong8(double8);
5347ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5348ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5349ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5350ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5351ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5352ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5353ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5354ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5355ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5356ulong16 __ovld __cnfn convert_ulong16(double16);
5357ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5358ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5359ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5360ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5361ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5362ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5363ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5364ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5365ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5366
5367float __ovld __cnfn convert_float(double);
5368float __ovld __cnfn convert_float_rte(double);
5369float __ovld __cnfn convert_float_rtn(double);
5370float __ovld __cnfn convert_float_rtp(double);
5371float __ovld __cnfn convert_float_rtz(double);
5372float2 __ovld __cnfn convert_float2(double2);
5373float2 __ovld __cnfn convert_float2_rte(double2);
5374float2 __ovld __cnfn convert_float2_rtn(double2);
5375float2 __ovld __cnfn convert_float2_rtp(double2);
5376float2 __ovld __cnfn convert_float2_rtz(double2);
5377float3 __ovld __cnfn convert_float3(double3);
5378float3 __ovld __cnfn convert_float3_rte(double3);
5379float3 __ovld __cnfn convert_float3_rtn(double3);
5380float3 __ovld __cnfn convert_float3_rtp(double3);
5381float3 __ovld __cnfn convert_float3_rtz(double3);
5382float4 __ovld __cnfn convert_float4(double4);
5383float4 __ovld __cnfn convert_float4_rte(double4);
5384float4 __ovld __cnfn convert_float4_rtn(double4);
5385float4 __ovld __cnfn convert_float4_rtp(double4);
5386float4 __ovld __cnfn convert_float4_rtz(double4);
5387float8 __ovld __cnfn convert_float8(double8);
5388float8 __ovld __cnfn convert_float8_rte(double8);
5389float8 __ovld __cnfn convert_float8_rtn(double8);
5390float8 __ovld __cnfn convert_float8_rtp(double8);
5391float8 __ovld __cnfn convert_float8_rtz(double8);
5392float16 __ovld __cnfn convert_float16(double16);
5393float16 __ovld __cnfn convert_float16_rte(double16);
5394float16 __ovld __cnfn convert_float16_rtn(double16);
5395float16 __ovld __cnfn convert_float16_rtp(double16);
5396float16 __ovld __cnfn convert_float16_rtz(double16);
5397
5398double __ovld __cnfn convert_double(char);
5399double __ovld __cnfn convert_double(double);
5400double __ovld __cnfn convert_double(float);
5401double __ovld __cnfn convert_double(int);
5402double __ovld __cnfn convert_double(long);
5403double __ovld __cnfn convert_double(short);
5404double __ovld __cnfn convert_double(uchar);
5405double __ovld __cnfn convert_double(uint);
5406double __ovld __cnfn convert_double(ulong);
5407double __ovld __cnfn convert_double(ushort);
5408double __ovld __cnfn convert_double_rte(char);
5409double __ovld __cnfn convert_double_rte(double);
5410double __ovld __cnfn convert_double_rte(float);
5411double __ovld __cnfn convert_double_rte(int);
5412double __ovld __cnfn convert_double_rte(long);
5413double __ovld __cnfn convert_double_rte(short);
5414double __ovld __cnfn convert_double_rte(uchar);
5415double __ovld __cnfn convert_double_rte(uint);
5416double __ovld __cnfn convert_double_rte(ulong);
5417double __ovld __cnfn convert_double_rte(ushort);
5418double __ovld __cnfn convert_double_rtn(char);
5419double __ovld __cnfn convert_double_rtn(double);
5420double __ovld __cnfn convert_double_rtn(float);
5421double __ovld __cnfn convert_double_rtn(int);
5422double __ovld __cnfn convert_double_rtn(long);
5423double __ovld __cnfn convert_double_rtn(short);
5424double __ovld __cnfn convert_double_rtn(uchar);
5425double __ovld __cnfn convert_double_rtn(uint);
5426double __ovld __cnfn convert_double_rtn(ulong);
5427double __ovld __cnfn convert_double_rtn(ushort);
5428double __ovld __cnfn convert_double_rtp(char);
5429double __ovld __cnfn convert_double_rtp(double);
5430double __ovld __cnfn convert_double_rtp(float);
5431double __ovld __cnfn convert_double_rtp(int);
5432double __ovld __cnfn convert_double_rtp(long);
5433double __ovld __cnfn convert_double_rtp(short);
5434double __ovld __cnfn convert_double_rtp(uchar);
5435double __ovld __cnfn convert_double_rtp(uint);
5436double __ovld __cnfn convert_double_rtp(ulong);
5437double __ovld __cnfn convert_double_rtp(ushort);
5438double __ovld __cnfn convert_double_rtz(char);
5439double __ovld __cnfn convert_double_rtz(double);
5440double __ovld __cnfn convert_double_rtz(float);
5441double __ovld __cnfn convert_double_rtz(int);
5442double __ovld __cnfn convert_double_rtz(long);
5443double __ovld __cnfn convert_double_rtz(short);
5444double __ovld __cnfn convert_double_rtz(uchar);
5445double __ovld __cnfn convert_double_rtz(uint);
5446double __ovld __cnfn convert_double_rtz(ulong);
5447double __ovld __cnfn convert_double_rtz(ushort);
5448double2 __ovld __cnfn convert_double2(char2);
5449double2 __ovld __cnfn convert_double2(double2);
5450double2 __ovld __cnfn convert_double2(float2);
5451double2 __ovld __cnfn convert_double2(int2);
5452double2 __ovld __cnfn convert_double2(long2);
5453double2 __ovld __cnfn convert_double2(short2);
5454double2 __ovld __cnfn convert_double2(uchar2);
5455double2 __ovld __cnfn convert_double2(uint2);
5456double2 __ovld __cnfn convert_double2(ulong2);
5457double2 __ovld __cnfn convert_double2(ushort2);
5458double2 __ovld __cnfn convert_double2_rte(char2);
5459double2 __ovld __cnfn convert_double2_rte(double2);
5460double2 __ovld __cnfn convert_double2_rte(float2);
5461double2 __ovld __cnfn convert_double2_rte(int2);
5462double2 __ovld __cnfn convert_double2_rte(long2);
5463double2 __ovld __cnfn convert_double2_rte(short2);
5464double2 __ovld __cnfn convert_double2_rte(uchar2);
5465double2 __ovld __cnfn convert_double2_rte(uint2);
5466double2 __ovld __cnfn convert_double2_rte(ulong2);
5467double2 __ovld __cnfn convert_double2_rte(ushort2);
5468double2 __ovld __cnfn convert_double2_rtn(char2);
5469double2 __ovld __cnfn convert_double2_rtn(double2);
5470double2 __ovld __cnfn convert_double2_rtn(float2);
5471double2 __ovld __cnfn convert_double2_rtn(int2);
5472double2 __ovld __cnfn convert_double2_rtn(long2);
5473double2 __ovld __cnfn convert_double2_rtn(short2);
5474double2 __ovld __cnfn convert_double2_rtn(uchar2);
5475double2 __ovld __cnfn convert_double2_rtn(uint2);
5476double2 __ovld __cnfn convert_double2_rtn(ulong2);
5477double2 __ovld __cnfn convert_double2_rtn(ushort2);
5478double2 __ovld __cnfn convert_double2_rtp(char2);
5479double2 __ovld __cnfn convert_double2_rtp(double2);
5480double2 __ovld __cnfn convert_double2_rtp(float2);
5481double2 __ovld __cnfn convert_double2_rtp(int2);
5482double2 __ovld __cnfn convert_double2_rtp(long2);
5483double2 __ovld __cnfn convert_double2_rtp(short2);
5484double2 __ovld __cnfn convert_double2_rtp(uchar2);
5485double2 __ovld __cnfn convert_double2_rtp(uint2);
5486double2 __ovld __cnfn convert_double2_rtp(ulong2);
5487double2 __ovld __cnfn convert_double2_rtp(ushort2);
5488double2 __ovld __cnfn convert_double2_rtz(char2);
5489double2 __ovld __cnfn convert_double2_rtz(double2);
5490double2 __ovld __cnfn convert_double2_rtz(float2);
5491double2 __ovld __cnfn convert_double2_rtz(int2);
5492double2 __ovld __cnfn convert_double2_rtz(long2);
5493double2 __ovld __cnfn convert_double2_rtz(short2);
5494double2 __ovld __cnfn convert_double2_rtz(uchar2);
5495double2 __ovld __cnfn convert_double2_rtz(uint2);
5496double2 __ovld __cnfn convert_double2_rtz(ulong2);
5497double2 __ovld __cnfn convert_double2_rtz(ushort2);
5498double3 __ovld __cnfn convert_double3(char3);
5499double3 __ovld __cnfn convert_double3(double3);
5500double3 __ovld __cnfn convert_double3(float3);
5501double3 __ovld __cnfn convert_double3(int3);
5502double3 __ovld __cnfn convert_double3(long3);
5503double3 __ovld __cnfn convert_double3(short3);
5504double3 __ovld __cnfn convert_double3(uchar3);
5505double3 __ovld __cnfn convert_double3(uint3);
5506double3 __ovld __cnfn convert_double3(ulong3);
5507double3 __ovld __cnfn convert_double3(ushort3);
5508double3 __ovld __cnfn convert_double3_rte(char3);
5509double3 __ovld __cnfn convert_double3_rte(double3);
5510double3 __ovld __cnfn convert_double3_rte(float3);
5511double3 __ovld __cnfn convert_double3_rte(int3);
5512double3 __ovld __cnfn convert_double3_rte(long3);
5513double3 __ovld __cnfn convert_double3_rte(short3);
5514double3 __ovld __cnfn convert_double3_rte(uchar3);
5515double3 __ovld __cnfn convert_double3_rte(uint3);
5516double3 __ovld __cnfn convert_double3_rte(ulong3);
5517double3 __ovld __cnfn convert_double3_rte(ushort3);
5518double3 __ovld __cnfn convert_double3_rtn(char3);
5519double3 __ovld __cnfn convert_double3_rtn(double3);
5520double3 __ovld __cnfn convert_double3_rtn(float3);
5521double3 __ovld __cnfn convert_double3_rtn(int3);
5522double3 __ovld __cnfn convert_double3_rtn(long3);
5523double3 __ovld __cnfn convert_double3_rtn(short3);
5524double3 __ovld __cnfn convert_double3_rtn(uchar3);
5525double3 __ovld __cnfn convert_double3_rtn(uint3);
5526double3 __ovld __cnfn convert_double3_rtn(ulong3);
5527double3 __ovld __cnfn convert_double3_rtn(ushort3);
5528double3 __ovld __cnfn convert_double3_rtp(char3);
5529double3 __ovld __cnfn convert_double3_rtp(double3);
5530double3 __ovld __cnfn convert_double3_rtp(float3);
5531double3 __ovld __cnfn convert_double3_rtp(int3);
5532double3 __ovld __cnfn convert_double3_rtp(long3);
5533double3 __ovld __cnfn convert_double3_rtp(short3);
5534double3 __ovld __cnfn convert_double3_rtp(uchar3);
5535double3 __ovld __cnfn convert_double3_rtp(uint3);
5536double3 __ovld __cnfn convert_double3_rtp(ulong3);
5537double3 __ovld __cnfn convert_double3_rtp(ushort3);
5538double3 __ovld __cnfn convert_double3_rtz(char3);
5539double3 __ovld __cnfn convert_double3_rtz(double3);
5540double3 __ovld __cnfn convert_double3_rtz(float3);
5541double3 __ovld __cnfn convert_double3_rtz(int3);
5542double3 __ovld __cnfn convert_double3_rtz(long3);
5543double3 __ovld __cnfn convert_double3_rtz(short3);
5544double3 __ovld __cnfn convert_double3_rtz(uchar3);
5545double3 __ovld __cnfn convert_double3_rtz(uint3);
5546double3 __ovld __cnfn convert_double3_rtz(ulong3);
5547double3 __ovld __cnfn convert_double3_rtz(ushort3);
5548double4 __ovld __cnfn convert_double4(char4);
5549double4 __ovld __cnfn convert_double4(double4);
5550double4 __ovld __cnfn convert_double4(float4);
5551double4 __ovld __cnfn convert_double4(int4);
5552double4 __ovld __cnfn convert_double4(long4);
5553double4 __ovld __cnfn convert_double4(short4);
5554double4 __ovld __cnfn convert_double4(uchar4);
5555double4 __ovld __cnfn convert_double4(uint4);
5556double4 __ovld __cnfn convert_double4(ulong4);
5557double4 __ovld __cnfn convert_double4(ushort4);
5558double4 __ovld __cnfn convert_double4_rte(char4);
5559double4 __ovld __cnfn convert_double4_rte(double4);
5560double4 __ovld __cnfn convert_double4_rte(float4);
5561double4 __ovld __cnfn convert_double4_rte(int4);
5562double4 __ovld __cnfn convert_double4_rte(long4);
5563double4 __ovld __cnfn convert_double4_rte(short4);
5564double4 __ovld __cnfn convert_double4_rte(uchar4);
5565double4 __ovld __cnfn convert_double4_rte(uint4);
5566double4 __ovld __cnfn convert_double4_rte(ulong4);
5567double4 __ovld __cnfn convert_double4_rte(ushort4);
5568double4 __ovld __cnfn convert_double4_rtn(char4);
5569double4 __ovld __cnfn convert_double4_rtn(double4);
5570double4 __ovld __cnfn convert_double4_rtn(float4);
5571double4 __ovld __cnfn convert_double4_rtn(int4);
5572double4 __ovld __cnfn convert_double4_rtn(long4);
5573double4 __ovld __cnfn convert_double4_rtn(short4);
5574double4 __ovld __cnfn convert_double4_rtn(uchar4);
5575double4 __ovld __cnfn convert_double4_rtn(uint4);
5576double4 __ovld __cnfn convert_double4_rtn(ulong4);
5577double4 __ovld __cnfn convert_double4_rtn(ushort4);
5578double4 __ovld __cnfn convert_double4_rtp(char4);
5579double4 __ovld __cnfn convert_double4_rtp(double4);
5580double4 __ovld __cnfn convert_double4_rtp(float4);
5581double4 __ovld __cnfn convert_double4_rtp(int4);
5582double4 __ovld __cnfn convert_double4_rtp(long4);
5583double4 __ovld __cnfn convert_double4_rtp(short4);
5584double4 __ovld __cnfn convert_double4_rtp(uchar4);
5585double4 __ovld __cnfn convert_double4_rtp(uint4);
5586double4 __ovld __cnfn convert_double4_rtp(ulong4);
5587double4 __ovld __cnfn convert_double4_rtp(ushort4);
5588double4 __ovld __cnfn convert_double4_rtz(char4);
5589double4 __ovld __cnfn convert_double4_rtz(double4);
5590double4 __ovld __cnfn convert_double4_rtz(float4);
5591double4 __ovld __cnfn convert_double4_rtz(int4);
5592double4 __ovld __cnfn convert_double4_rtz(long4);
5593double4 __ovld __cnfn convert_double4_rtz(short4);
5594double4 __ovld __cnfn convert_double4_rtz(uchar4);
5595double4 __ovld __cnfn convert_double4_rtz(uint4);
5596double4 __ovld __cnfn convert_double4_rtz(ulong4);
5597double4 __ovld __cnfn convert_double4_rtz(ushort4);
5598double8 __ovld __cnfn convert_double8(char8);
5599double8 __ovld __cnfn convert_double8(double8);
5600double8 __ovld __cnfn convert_double8(float8);
5601double8 __ovld __cnfn convert_double8(int8);
5602double8 __ovld __cnfn convert_double8(long8);
5603double8 __ovld __cnfn convert_double8(short8);
5604double8 __ovld __cnfn convert_double8(uchar8);
5605double8 __ovld __cnfn convert_double8(uint8);
5606double8 __ovld __cnfn convert_double8(ulong8);
5607double8 __ovld __cnfn convert_double8(ushort8);
5608double8 __ovld __cnfn convert_double8_rte(char8);
5609double8 __ovld __cnfn convert_double8_rte(double8);
5610double8 __ovld __cnfn convert_double8_rte(float8);
5611double8 __ovld __cnfn convert_double8_rte(int8);
5612double8 __ovld __cnfn convert_double8_rte(long8);
5613double8 __ovld __cnfn convert_double8_rte(short8);
5614double8 __ovld __cnfn convert_double8_rte(uchar8);
5615double8 __ovld __cnfn convert_double8_rte(uint8);
5616double8 __ovld __cnfn convert_double8_rte(ulong8);
5617double8 __ovld __cnfn convert_double8_rte(ushort8);
5618double8 __ovld __cnfn convert_double8_rtn(char8);
5619double8 __ovld __cnfn convert_double8_rtn(double8);
5620double8 __ovld __cnfn convert_double8_rtn(float8);
5621double8 __ovld __cnfn convert_double8_rtn(int8);
5622double8 __ovld __cnfn convert_double8_rtn(long8);
5623double8 __ovld __cnfn convert_double8_rtn(short8);
5624double8 __ovld __cnfn convert_double8_rtn(uchar8);
5625double8 __ovld __cnfn convert_double8_rtn(uint8);
5626double8 __ovld __cnfn convert_double8_rtn(ulong8);
5627double8 __ovld __cnfn convert_double8_rtn(ushort8);
5628double8 __ovld __cnfn convert_double8_rtp(char8);
5629double8 __ovld __cnfn convert_double8_rtp(double8);
5630double8 __ovld __cnfn convert_double8_rtp(float8);
5631double8 __ovld __cnfn convert_double8_rtp(int8);
5632double8 __ovld __cnfn convert_double8_rtp(long8);
5633double8 __ovld __cnfn convert_double8_rtp(short8);
5634double8 __ovld __cnfn convert_double8_rtp(uchar8);
5635double8 __ovld __cnfn convert_double8_rtp(uint8);
5636double8 __ovld __cnfn convert_double8_rtp(ulong8);
5637double8 __ovld __cnfn convert_double8_rtp(ushort8);
5638double8 __ovld __cnfn convert_double8_rtz(char8);
5639double8 __ovld __cnfn convert_double8_rtz(double8);
5640double8 __ovld __cnfn convert_double8_rtz(float8);
5641double8 __ovld __cnfn convert_double8_rtz(int8);
5642double8 __ovld __cnfn convert_double8_rtz(long8);
5643double8 __ovld __cnfn convert_double8_rtz(short8);
5644double8 __ovld __cnfn convert_double8_rtz(uchar8);
5645double8 __ovld __cnfn convert_double8_rtz(uint8);
5646double8 __ovld __cnfn convert_double8_rtz(ulong8);
5647double8 __ovld __cnfn convert_double8_rtz(ushort8);
5648double16 __ovld __cnfn convert_double16(char16);
5649double16 __ovld __cnfn convert_double16(double16);
5650double16 __ovld __cnfn convert_double16(float16);
5651double16 __ovld __cnfn convert_double16(int16);
5652double16 __ovld __cnfn convert_double16(long16);
5653double16 __ovld __cnfn convert_double16(short16);
5654double16 __ovld __cnfn convert_double16(uchar16);
5655double16 __ovld __cnfn convert_double16(uint16);
5656double16 __ovld __cnfn convert_double16(ulong16);
5657double16 __ovld __cnfn convert_double16(ushort16);
5658double16 __ovld __cnfn convert_double16_rte(char16);
5659double16 __ovld __cnfn convert_double16_rte(double16);
5660double16 __ovld __cnfn convert_double16_rte(float16);
5661double16 __ovld __cnfn convert_double16_rte(int16);
5662double16 __ovld __cnfn convert_double16_rte(long16);
5663double16 __ovld __cnfn convert_double16_rte(short16);
5664double16 __ovld __cnfn convert_double16_rte(uchar16);
5665double16 __ovld __cnfn convert_double16_rte(uint16);
5666double16 __ovld __cnfn convert_double16_rte(ulong16);
5667double16 __ovld __cnfn convert_double16_rte(ushort16);
5668double16 __ovld __cnfn convert_double16_rtn(char16);
5669double16 __ovld __cnfn convert_double16_rtn(double16);
5670double16 __ovld __cnfn convert_double16_rtn(float16);
5671double16 __ovld __cnfn convert_double16_rtn(int16);
5672double16 __ovld __cnfn convert_double16_rtn(long16);
5673double16 __ovld __cnfn convert_double16_rtn(short16);
5674double16 __ovld __cnfn convert_double16_rtn(uchar16);
5675double16 __ovld __cnfn convert_double16_rtn(uint16);
5676double16 __ovld __cnfn convert_double16_rtn(ulong16);
5677double16 __ovld __cnfn convert_double16_rtn(ushort16);
5678double16 __ovld __cnfn convert_double16_rtp(char16);
5679double16 __ovld __cnfn convert_double16_rtp(double16);
5680double16 __ovld __cnfn convert_double16_rtp(float16);
5681double16 __ovld __cnfn convert_double16_rtp(int16);
5682double16 __ovld __cnfn convert_double16_rtp(long16);
5683double16 __ovld __cnfn convert_double16_rtp(short16);
5684double16 __ovld __cnfn convert_double16_rtp(uchar16);
5685double16 __ovld __cnfn convert_double16_rtp(uint16);
5686double16 __ovld __cnfn convert_double16_rtp(ulong16);
5687double16 __ovld __cnfn convert_double16_rtp(ushort16);
5688double16 __ovld __cnfn convert_double16_rtz(char16);
5689double16 __ovld __cnfn convert_double16_rtz(double16);
5690double16 __ovld __cnfn convert_double16_rtz(float16);
5691double16 __ovld __cnfn convert_double16_rtz(int16);
5692double16 __ovld __cnfn convert_double16_rtz(long16);
5693double16 __ovld __cnfn convert_double16_rtz(short16);
5694double16 __ovld __cnfn convert_double16_rtz(uchar16);
5695double16 __ovld __cnfn convert_double16_rtz(uint16);
5696double16 __ovld __cnfn convert_double16_rtz(ulong16);
5697double16 __ovld __cnfn convert_double16_rtz(ushort16);
5698#endif //cl_khr_fp64
5699
5700#ifdef cl_khr_fp16
5701// Convert half types to non-double types.
5702uchar __ovld __cnfn convert_uchar(half);
5703uchar __ovld __cnfn convert_uchar_rte(half);
5704uchar __ovld __cnfn convert_uchar_rtp(half);
5705uchar __ovld __cnfn convert_uchar_rtn(half);
5706uchar __ovld __cnfn convert_uchar_rtz(half);
5707uchar __ovld __cnfn convert_uchar_sat(half);
5708uchar __ovld __cnfn convert_uchar_sat_rte(half);
5709uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5710uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5711uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5712uchar2 __ovld __cnfn convert_uchar2(half2);
5713uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5714uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5715uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5716uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5717uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5718uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5719uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5720uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5721uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5722uchar3 __ovld __cnfn convert_uchar3(half3);
5723uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5724uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5725uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5726uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5727uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5728uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5729uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5730uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5731uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5732uchar4 __ovld __cnfn convert_uchar4(half4);
5733uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5734uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5735uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5736uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5737uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5738uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5739uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5740uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5741uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5742uchar8 __ovld __cnfn convert_uchar8(half8);
5743uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5744uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5745uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5746uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5747uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5748uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5749uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5750uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5751uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5752uchar16 __ovld __cnfn convert_uchar16(half16);
5753uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5754uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5755uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5756uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5757uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5758uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5759uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5760uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5761uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5762ushort __ovld __cnfn convert_ushort(half);
5763ushort __ovld __cnfn convert_ushort_rte(half);
5764ushort __ovld __cnfn convert_ushort_rtp(half);
5765ushort __ovld __cnfn convert_ushort_rtn(half);
5766ushort __ovld __cnfn convert_ushort_rtz(half);
5767ushort __ovld __cnfn convert_ushort_sat(half);
5768ushort __ovld __cnfn convert_ushort_sat_rte(half);
5769ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5770ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5771ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5772ushort2 __ovld __cnfn convert_ushort2(half2);
5773ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5774ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5775ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5776ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5777ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5778ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5779ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5780ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5781ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5782ushort3 __ovld __cnfn convert_ushort3(half3);
5783ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5784ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5785ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5786ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5787ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5788ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5789ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5790ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5791ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5792ushort4 __ovld __cnfn convert_ushort4(half4);
5793ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5794ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5795ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5796ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5797ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5798ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5799ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5800ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5801ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5802ushort8 __ovld __cnfn convert_ushort8(half8);
5803ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5804ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5805ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5806ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5807ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5808ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5809ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5810ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5811ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5812ushort16 __ovld __cnfn convert_ushort16(half16);
5813ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5814ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5815ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5816ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5817ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5818ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5819ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5820ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5821ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5822uint __ovld __cnfn convert_uint(half);
5823uint __ovld __cnfn convert_uint_rte(half);
5824uint __ovld __cnfn convert_uint_rtp(half);
5825uint __ovld __cnfn convert_uint_rtn(half);
5826uint __ovld __cnfn convert_uint_rtz(half);
5827uint __ovld __cnfn convert_uint_sat(half);
5828uint __ovld __cnfn convert_uint_sat_rte(half);
5829uint __ovld __cnfn convert_uint_sat_rtp(half);
5830uint __ovld __cnfn convert_uint_sat_rtn(half);
5831uint __ovld __cnfn convert_uint_sat_rtz(half);
5832uint2 __ovld __cnfn convert_uint2(half2);
5833uint2 __ovld __cnfn convert_uint2_rte(half2);
5834uint2 __ovld __cnfn convert_uint2_rtp(half2);
5835uint2 __ovld __cnfn convert_uint2_rtn(half2);
5836uint2 __ovld __cnfn convert_uint2_rtz(half2);
5837uint2 __ovld __cnfn convert_uint2_sat(half2);
5838uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5839uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5840uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5841uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5842uint3 __ovld __cnfn convert_uint3(half3);
5843uint3 __ovld __cnfn convert_uint3_rte(half3);
5844uint3 __ovld __cnfn convert_uint3_rtp(half3);
5845uint3 __ovld __cnfn convert_uint3_rtn(half3);
5846uint3 __ovld __cnfn convert_uint3_rtz(half3);
5847uint3 __ovld __cnfn convert_uint3_sat(half3);
5848uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5849uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5850uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5851uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5852uint4 __ovld __cnfn convert_uint4(half4);
5853uint4 __ovld __cnfn convert_uint4_rte(half4);
5854uint4 __ovld __cnfn convert_uint4_rtp(half4);
5855uint4 __ovld __cnfn convert_uint4_rtn(half4);
5856uint4 __ovld __cnfn convert_uint4_rtz(half4);
5857uint4 __ovld __cnfn convert_uint4_sat(half4);
5858uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5859uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5860uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5861uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5862uint8 __ovld __cnfn convert_uint8(half8);
5863uint8 __ovld __cnfn convert_uint8_rte(half8);
5864uint8 __ovld __cnfn convert_uint8_rtp(half8);
5865uint8 __ovld __cnfn convert_uint8_rtn(half8);
5866uint8 __ovld __cnfn convert_uint8_rtz(half8);
5867uint8 __ovld __cnfn convert_uint8_sat(half8);
5868uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5869uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5870uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5871uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5872uint16 __ovld __cnfn convert_uint16(half16);
5873uint16 __ovld __cnfn convert_uint16_rte(half16);
5874uint16 __ovld __cnfn convert_uint16_rtp(half16);
5875uint16 __ovld __cnfn convert_uint16_rtn(half16);
5876uint16 __ovld __cnfn convert_uint16_rtz(half16);
5877uint16 __ovld __cnfn convert_uint16_sat(half16);
5878uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5879uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5880uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5881uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5882ulong __ovld __cnfn convert_ulong(half);
5883ulong __ovld __cnfn convert_ulong_rte(half);
5884ulong __ovld __cnfn convert_ulong_rtp(half);
5885ulong __ovld __cnfn convert_ulong_rtn(half);
5886ulong __ovld __cnfn convert_ulong_rtz(half);
5887ulong __ovld __cnfn convert_ulong_sat(half);
5888ulong __ovld __cnfn convert_ulong_sat_rte(half);
5889ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5890ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5891ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5892ulong2 __ovld __cnfn convert_ulong2(half2);
5893ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5894ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5895ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5896ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5897ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5898ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5899ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5900ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5901ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5902ulong3 __ovld __cnfn convert_ulong3(half3);
5903ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5904ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5905ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5906ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5907ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5908ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5909ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5910ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5911ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5912ulong4 __ovld __cnfn convert_ulong4(half4);
5913ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5914ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5915ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5916ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5917ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5918ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5919ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5920ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5921ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5922ulong8 __ovld __cnfn convert_ulong8(half8);
5923ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5924ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5925ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5926ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5927ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5928ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5929ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5930ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5931ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5932ulong16 __ovld __cnfn convert_ulong16(half16);
5933ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5934ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5935ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5936ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5937ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5938ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5939ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5940ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5941ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5942char __ovld __cnfn convert_char(half);
5943char __ovld __cnfn convert_char_rte(half);
5944char __ovld __cnfn convert_char_rtp(half);
5945char __ovld __cnfn convert_char_rtn(half);
5946char __ovld __cnfn convert_char_rtz(half);
5947char __ovld __cnfn convert_char_sat(half);
5948char __ovld __cnfn convert_char_sat_rte(half);
5949char __ovld __cnfn convert_char_sat_rtp(half);
5950char __ovld __cnfn convert_char_sat_rtn(half);
5951char __ovld __cnfn convert_char_sat_rtz(half);
5952char2 __ovld __cnfn convert_char2(half2);
5953char2 __ovld __cnfn convert_char2_rte(half2);
5954char2 __ovld __cnfn convert_char2_rtp(half2);
5955char2 __ovld __cnfn convert_char2_rtn(half2);
5956char2 __ovld __cnfn convert_char2_rtz(half2);
5957char2 __ovld __cnfn convert_char2_sat(half2);
5958char2 __ovld __cnfn convert_char2_sat_rte(half2);
5959char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5960char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5961char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5962char3 __ovld __cnfn convert_char3(half3);
5963char3 __ovld __cnfn convert_char3_rte(half3);
5964char3 __ovld __cnfn convert_char3_rtp(half3);
5965char3 __ovld __cnfn convert_char3_rtn(half3);
5966char3 __ovld __cnfn convert_char3_rtz(half3);
5967char3 __ovld __cnfn convert_char3_sat(half3);
5968char3 __ovld __cnfn convert_char3_sat_rte(half3);
5969char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5970char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5971char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5972char4 __ovld __cnfn convert_char4(half4);
5973char4 __ovld __cnfn convert_char4_rte(half4);
5974char4 __ovld __cnfn convert_char4_rtp(half4);
5975char4 __ovld __cnfn convert_char4_rtn(half4);
5976char4 __ovld __cnfn convert_char4_rtz(half4);
5977char4 __ovld __cnfn convert_char4_sat(half4);
5978char4 __ovld __cnfn convert_char4_sat_rte(half4);
5979char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5980char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5981char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5982char8 __ovld __cnfn convert_char8(half8);
5983char8 __ovld __cnfn convert_char8_rte(half8);
5984char8 __ovld __cnfn convert_char8_rtp(half8);
5985char8 __ovld __cnfn convert_char8_rtn(half8);
5986char8 __ovld __cnfn convert_char8_rtz(half8);
5987char8 __ovld __cnfn convert_char8_sat(half8);
5988char8 __ovld __cnfn convert_char8_sat_rte(half8);
5989char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5990char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5991char8 __ovld __cnfn convert_char8_sat_rtz(half8);
5992char16 __ovld __cnfn convert_char16(half16);
5993char16 __ovld __cnfn convert_char16_rte(half16);
5994char16 __ovld __cnfn convert_char16_rtp(half16);
5995char16 __ovld __cnfn convert_char16_rtn(half16);
5996char16 __ovld __cnfn convert_char16_rtz(half16);
5997char16 __ovld __cnfn convert_char16_sat(half16);
5998char16 __ovld __cnfn convert_char16_sat_rte(half16);
5999char16 __ovld __cnfn convert_char16_sat_rtp(half16);
6000char16 __ovld __cnfn convert_char16_sat_rtn(half16);
6001char16 __ovld __cnfn convert_char16_sat_rtz(half16);
6002short __ovld __cnfn convert_short(half);
6003short __ovld __cnfn convert_short_rte(half);
6004short __ovld __cnfn convert_short_rtp(half);
6005short __ovld __cnfn convert_short_rtn(half);
6006short __ovld __cnfn convert_short_rtz(half);
6007short __ovld __cnfn convert_short_sat(half);
6008short __ovld __cnfn convert_short_sat_rte(half);
6009short __ovld __cnfn convert_short_sat_rtp(half);
6010short __ovld __cnfn convert_short_sat_rtn(half);
6011short __ovld __cnfn convert_short_sat_rtz(half);
6012short2 __ovld __cnfn convert_short2(half2);
6013short2 __ovld __cnfn convert_short2_rte(half2);
6014short2 __ovld __cnfn convert_short2_rtp(half2);
6015short2 __ovld __cnfn convert_short2_rtn(half2);
6016short2 __ovld __cnfn convert_short2_rtz(half2);
6017short2 __ovld __cnfn convert_short2_sat(half2);
6018short2 __ovld __cnfn convert_short2_sat_rte(half2);
6019short2 __ovld __cnfn convert_short2_sat_rtp(half2);
6020short2 __ovld __cnfn convert_short2_sat_rtn(half2);
6021short2 __ovld __cnfn convert_short2_sat_rtz(half2);
6022short3 __ovld __cnfn convert_short3(half3);
6023short3 __ovld __cnfn convert_short3_rte(half3);
6024short3 __ovld __cnfn convert_short3_rtp(half3);
6025short3 __ovld __cnfn convert_short3_rtn(half3);
6026short3 __ovld __cnfn convert_short3_rtz(half3);
6027short3 __ovld __cnfn convert_short3_sat(half3);
6028short3 __ovld __cnfn convert_short3_sat_rte(half3);
6029short3 __ovld __cnfn convert_short3_sat_rtp(half3);
6030short3 __ovld __cnfn convert_short3_sat_rtn(half3);
6031short3 __ovld __cnfn convert_short3_sat_rtz(half3);
6032short4 __ovld __cnfn convert_short4(half4);
6033short4 __ovld __cnfn convert_short4_rte(half4);
6034short4 __ovld __cnfn convert_short4_rtp(half4);
6035short4 __ovld __cnfn convert_short4_rtn(half4);
6036short4 __ovld __cnfn convert_short4_rtz(half4);
6037short4 __ovld __cnfn convert_short4_sat(half4);
6038short4 __ovld __cnfn convert_short4_sat_rte(half4);
6039short4 __ovld __cnfn convert_short4_sat_rtp(half4);
6040short4 __ovld __cnfn convert_short4_sat_rtn(half4);
6041short4 __ovld __cnfn convert_short4_sat_rtz(half4);
6042short8 __ovld __cnfn convert_short8(half8);
6043short8 __ovld __cnfn convert_short8_rte(half8);
6044short8 __ovld __cnfn convert_short8_rtp(half8);
6045short8 __ovld __cnfn convert_short8_rtn(half8);
6046short8 __ovld __cnfn convert_short8_rtz(half8);
6047short8 __ovld __cnfn convert_short8_sat(half8);
6048short8 __ovld __cnfn convert_short8_sat_rte(half8);
6049short8 __ovld __cnfn convert_short8_sat_rtp(half8);
6050short8 __ovld __cnfn convert_short8_sat_rtn(half8);
6051short8 __ovld __cnfn convert_short8_sat_rtz(half8);
6052short16 __ovld __cnfn convert_short16(half16);
6053short16 __ovld __cnfn convert_short16_rte(half16);
6054short16 __ovld __cnfn convert_short16_rtp(half16);
6055short16 __ovld __cnfn convert_short16_rtn(half16);
6056short16 __ovld __cnfn convert_short16_rtz(half16);
6057short16 __ovld __cnfn convert_short16_sat(half16);
6058short16 __ovld __cnfn convert_short16_sat_rte(half16);
6059short16 __ovld __cnfn convert_short16_sat_rtp(half16);
6060short16 __ovld __cnfn convert_short16_sat_rtn(half16);
6061short16 __ovld __cnfn convert_short16_sat_rtz(half16);
6062int __ovld __cnfn convert_int(half);
6063int __ovld __cnfn convert_int_rte(half);
6064int __ovld __cnfn convert_int_rtp(half);
6065int __ovld __cnfn convert_int_rtn(half);
6066int __ovld __cnfn convert_int_rtz(half);
6067int __ovld __cnfn convert_int_sat(half);
6068int __ovld __cnfn convert_int_sat_rte(half);
6069int __ovld __cnfn convert_int_sat_rtp(half);
6070int __ovld __cnfn convert_int_sat_rtn(half);
6071int __ovld __cnfn convert_int_sat_rtz(half);
6072int2 __ovld __cnfn convert_int2(half2);
6073int2 __ovld __cnfn convert_int2_rte(half2);
6074int2 __ovld __cnfn convert_int2_rtp(half2);
6075int2 __ovld __cnfn convert_int2_rtn(half2);
6076int2 __ovld __cnfn convert_int2_rtz(half2);
6077int2 __ovld __cnfn convert_int2_sat(half2);
6078int2 __ovld __cnfn convert_int2_sat_rte(half2);
6079int2 __ovld __cnfn convert_int2_sat_rtp(half2);
6080int2 __ovld __cnfn convert_int2_sat_rtn(half2);
6081int2 __ovld __cnfn convert_int2_sat_rtz(half2);
6082int3 __ovld __cnfn convert_int3(half3);
6083int3 __ovld __cnfn convert_int3_rte(half3);
6084int3 __ovld __cnfn convert_int3_rtp(half3);
6085int3 __ovld __cnfn convert_int3_rtn(half3);
6086int3 __ovld __cnfn convert_int3_rtz(half3);
6087int3 __ovld __cnfn convert_int3_sat(half3);
6088int3 __ovld __cnfn convert_int3_sat_rte(half3);
6089int3 __ovld __cnfn convert_int3_sat_rtp(half3);
6090int3 __ovld __cnfn convert_int3_sat_rtn(half3);
6091int3 __ovld __cnfn convert_int3_sat_rtz(half3);
6092int4 __ovld __cnfn convert_int4(half4);
6093int4 __ovld __cnfn convert_int4_rte(half4);
6094int4 __ovld __cnfn convert_int4_rtp(half4);
6095int4 __ovld __cnfn convert_int4_rtn(half4);
6096int4 __ovld __cnfn convert_int4_rtz(half4);
6097int4 __ovld __cnfn convert_int4_sat(half4);
6098int4 __ovld __cnfn convert_int4_sat_rte(half4);
6099int4 __ovld __cnfn convert_int4_sat_rtp(half4);
6100int4 __ovld __cnfn convert_int4_sat_rtn(half4);
6101int4 __ovld __cnfn convert_int4_sat_rtz(half4);
6102int8 __ovld __cnfn convert_int8(half8);
6103int8 __ovld __cnfn convert_int8_rte(half8);
6104int8 __ovld __cnfn convert_int8_rtp(half8);
6105int8 __ovld __cnfn convert_int8_rtn(half8);
6106int8 __ovld __cnfn convert_int8_rtz(half8);
6107int8 __ovld __cnfn convert_int8_sat(half8);
6108int8 __ovld __cnfn convert_int8_sat_rte(half8);
6109int8 __ovld __cnfn convert_int8_sat_rtp(half8);
6110int8 __ovld __cnfn convert_int8_sat_rtn(half8);
6111int8 __ovld __cnfn convert_int8_sat_rtz(half8);
6112int16 __ovld __cnfn convert_int16(half16);
6113int16 __ovld __cnfn convert_int16_rte(half16);
6114int16 __ovld __cnfn convert_int16_rtp(half16);
6115int16 __ovld __cnfn convert_int16_rtn(half16);
6116int16 __ovld __cnfn convert_int16_rtz(half16);
6117int16 __ovld __cnfn convert_int16_sat(half16);
6118int16 __ovld __cnfn convert_int16_sat_rte(half16);
6119int16 __ovld __cnfn convert_int16_sat_rtp(half16);
6120int16 __ovld __cnfn convert_int16_sat_rtn(half16);
6121int16 __ovld __cnfn convert_int16_sat_rtz(half16);
6122long __ovld __cnfn convert_long(half);
6123long __ovld __cnfn convert_long_rte(half);
6124long __ovld __cnfn convert_long_rtp(half);
6125long __ovld __cnfn convert_long_rtn(half);
6126long __ovld __cnfn convert_long_rtz(half);
6127long __ovld __cnfn convert_long_sat(half);
6128long __ovld __cnfn convert_long_sat_rte(half);
6129long __ovld __cnfn convert_long_sat_rtp(half);
6130long __ovld __cnfn convert_long_sat_rtn(half);
6131long __ovld __cnfn convert_long_sat_rtz(half);
6132long2 __ovld __cnfn convert_long2(half2);
6133long2 __ovld __cnfn convert_long2_rte(half2);
6134long2 __ovld __cnfn convert_long2_rtp(half2);
6135long2 __ovld __cnfn convert_long2_rtn(half2);
6136long2 __ovld __cnfn convert_long2_rtz(half2);
6137long2 __ovld __cnfn convert_long2_sat(half2);
6138long2 __ovld __cnfn convert_long2_sat_rte(half2);
6139long2 __ovld __cnfn convert_long2_sat_rtp(half2);
6140long2 __ovld __cnfn convert_long2_sat_rtn(half2);
6141long2 __ovld __cnfn convert_long2_sat_rtz(half2);
6142long3 __ovld __cnfn convert_long3(half3);
6143long3 __ovld __cnfn convert_long3_rte(half3);
6144long3 __ovld __cnfn convert_long3_rtp(half3);
6145long3 __ovld __cnfn convert_long3_rtn(half3);
6146long3 __ovld __cnfn convert_long3_rtz(half3);
6147long3 __ovld __cnfn convert_long3_sat(half3);
6148long3 __ovld __cnfn convert_long3_sat_rte(half3);
6149long3 __ovld __cnfn convert_long3_sat_rtp(half3);
6150long3 __ovld __cnfn convert_long3_sat_rtn(half3);
6151long3 __ovld __cnfn convert_long3_sat_rtz(half3);
6152long4 __ovld __cnfn convert_long4(half4);
6153long4 __ovld __cnfn convert_long4_rte(half4);
6154long4 __ovld __cnfn convert_long4_rtp(half4);
6155long4 __ovld __cnfn convert_long4_rtn(half4);
6156long4 __ovld __cnfn convert_long4_rtz(half4);
6157long4 __ovld __cnfn convert_long4_sat(half4);
6158long4 __ovld __cnfn convert_long4_sat_rte(half4);
6159long4 __ovld __cnfn convert_long4_sat_rtp(half4);
6160long4 __ovld __cnfn convert_long4_sat_rtn(half4);
6161long4 __ovld __cnfn convert_long4_sat_rtz(half4);
6162long8 __ovld __cnfn convert_long8(half8);
6163long8 __ovld __cnfn convert_long8_rte(half8);
6164long8 __ovld __cnfn convert_long8_rtp(half8);
6165long8 __ovld __cnfn convert_long8_rtn(half8);
6166long8 __ovld __cnfn convert_long8_rtz(half8);
6167long8 __ovld __cnfn convert_long8_sat(half8);
6168long8 __ovld __cnfn convert_long8_sat_rte(half8);
6169long8 __ovld __cnfn convert_long8_sat_rtp(half8);
6170long8 __ovld __cnfn convert_long8_sat_rtn(half8);
6171long8 __ovld __cnfn convert_long8_sat_rtz(half8);
6172long16 __ovld __cnfn convert_long16(half16);
6173long16 __ovld __cnfn convert_long16_rte(half16);
6174long16 __ovld __cnfn convert_long16_rtp(half16);
6175long16 __ovld __cnfn convert_long16_rtn(half16);
6176long16 __ovld __cnfn convert_long16_rtz(half16);
6177long16 __ovld __cnfn convert_long16_sat(half16);
6178long16 __ovld __cnfn convert_long16_sat_rte(half16);
6179long16 __ovld __cnfn convert_long16_sat_rtp(half16);
6180long16 __ovld __cnfn convert_long16_sat_rtn(half16);
6181long16 __ovld __cnfn convert_long16_sat_rtz(half16);
6182float __ovld __cnfn convert_float(half);
6183float __ovld __cnfn convert_float_rte(half);
6184float __ovld __cnfn convert_float_rtp(half);
6185float __ovld __cnfn convert_float_rtn(half);
6186float __ovld __cnfn convert_float_rtz(half);
6187float2 __ovld __cnfn convert_float2(half2);
6188float2 __ovld __cnfn convert_float2_rte(half2);
6189float2 __ovld __cnfn convert_float2_rtp(half2);
6190float2 __ovld __cnfn convert_float2_rtn(half2);
6191float2 __ovld __cnfn convert_float2_rtz(half2);
6192float3 __ovld __cnfn convert_float3(half3);
6193float3 __ovld __cnfn convert_float3_rte(half3);
6194float3 __ovld __cnfn convert_float3_rtp(half3);
6195float3 __ovld __cnfn convert_float3_rtn(half3);
6196float3 __ovld __cnfn convert_float3_rtz(half3);
6197float4 __ovld __cnfn convert_float4(half4);
6198float4 __ovld __cnfn convert_float4_rte(half4);
6199float4 __ovld __cnfn convert_float4_rtp(half4);
6200float4 __ovld __cnfn convert_float4_rtn(half4);
6201float4 __ovld __cnfn convert_float4_rtz(half4);
6202float8 __ovld __cnfn convert_float8(half8);
6203float8 __ovld __cnfn convert_float8_rte(half8);
6204float8 __ovld __cnfn convert_float8_rtp(half8);
6205float8 __ovld __cnfn convert_float8_rtn(half8);
6206float8 __ovld __cnfn convert_float8_rtz(half8);
6207float16 __ovld __cnfn convert_float16(half16);
6208float16 __ovld __cnfn convert_float16_rte(half16);
6209float16 __ovld __cnfn convert_float16_rtp(half16);
6210float16 __ovld __cnfn convert_float16_rtn(half16);
6211float16 __ovld __cnfn convert_float16_rtz(half16);
6212
6213// Convert non-double types to half types.
6214half __ovld __cnfn convert_half(uchar);
6215half __ovld __cnfn convert_half(ushort);
6216half __ovld __cnfn convert_half(uint);
6217half __ovld __cnfn convert_half(ulong);
6218half __ovld __cnfn convert_half(char);
6219half __ovld __cnfn convert_half(short);
6220half __ovld __cnfn convert_half(int);
6221half __ovld __cnfn convert_half(long);
6222half __ovld __cnfn convert_half(float);
6223half __ovld __cnfn convert_half(half);
6224half __ovld __cnfn convert_half_rte(uchar);
6225half __ovld __cnfn convert_half_rte(ushort);
6226half __ovld __cnfn convert_half_rte(uint);
6227half __ovld __cnfn convert_half_rte(ulong);
6228half __ovld __cnfn convert_half_rte(char);
6229half __ovld __cnfn convert_half_rte(short);
6230half __ovld __cnfn convert_half_rte(int);
6231half __ovld __cnfn convert_half_rte(long);
6232half __ovld __cnfn convert_half_rte(float);
6233half __ovld __cnfn convert_half_rte(half);
6234half __ovld __cnfn convert_half_rtp(uchar);
6235half __ovld __cnfn convert_half_rtp(ushort);
6236half __ovld __cnfn convert_half_rtp(uint);
6237half __ovld __cnfn convert_half_rtp(ulong);
6238half __ovld __cnfn convert_half_rtp(char);
6239half __ovld __cnfn convert_half_rtp(short);
6240half __ovld __cnfn convert_half_rtp(int);
6241half __ovld __cnfn convert_half_rtp(long);
6242half __ovld __cnfn convert_half_rtp(float);
6243half __ovld __cnfn convert_half_rtp(half);
6244half __ovld __cnfn convert_half_rtn(uchar);
6245half __ovld __cnfn convert_half_rtn(ushort);
6246half __ovld __cnfn convert_half_rtn(uint);
6247half __ovld __cnfn convert_half_rtn(ulong);
6248half __ovld __cnfn convert_half_rtn(char);
6249half __ovld __cnfn convert_half_rtn(short);
6250half __ovld __cnfn convert_half_rtn(int);
6251half __ovld __cnfn convert_half_rtn(long);
6252half __ovld __cnfn convert_half_rtn(float);
6253half __ovld __cnfn convert_half_rtn(half);
6254half __ovld __cnfn convert_half_rtz(uchar);
6255half __ovld __cnfn convert_half_rtz(ushort);
6256half __ovld __cnfn convert_half_rtz(uint);
6257half __ovld __cnfn convert_half_rtz(ulong);
6258half __ovld __cnfn convert_half_rtz(char);
6259half __ovld __cnfn convert_half_rtz(short);
6260half __ovld __cnfn convert_half_rtz(int);
6261half __ovld __cnfn convert_half_rtz(long);
6262half __ovld __cnfn convert_half_rtz(float);
6263half __ovld __cnfn convert_half_rtz(half);
6264half2 __ovld __cnfn convert_half2(char2);
6265half2 __ovld __cnfn convert_half2(uchar2);
6266half2 __ovld __cnfn convert_half2(short2);
6267half2 __ovld __cnfn convert_half2(ushort2);
6268half2 __ovld __cnfn convert_half2(int2);
6269half2 __ovld __cnfn convert_half2(uint2);
6270half2 __ovld __cnfn convert_half2(long2);
6271half2 __ovld __cnfn convert_half2(ulong2);
6272half2 __ovld __cnfn convert_half2(float2);
6273half2 __ovld __cnfn convert_half2(half2);
6274half2 __ovld __cnfn convert_half2_rte(char2);
6275half2 __ovld __cnfn convert_half2_rte(uchar2);
6276half2 __ovld __cnfn convert_half2_rte(short2);
6277half2 __ovld __cnfn convert_half2_rte(ushort2);
6278half2 __ovld __cnfn convert_half2_rte(int2);
6279half2 __ovld __cnfn convert_half2_rte(uint2);
6280half2 __ovld __cnfn convert_half2_rte(long2);
6281half2 __ovld __cnfn convert_half2_rte(ulong2);
6282half2 __ovld __cnfn convert_half2_rte(float2);
6283half2 __ovld __cnfn convert_half2_rte(half2);
6284half2 __ovld __cnfn convert_half2_rtp(char2);
6285half2 __ovld __cnfn convert_half2_rtp(uchar2);
6286half2 __ovld __cnfn convert_half2_rtp(short2);
6287half2 __ovld __cnfn convert_half2_rtp(ushort2);
6288half2 __ovld __cnfn convert_half2_rtp(int2);
6289half2 __ovld __cnfn convert_half2_rtp(uint2);
6290half2 __ovld __cnfn convert_half2_rtp(long2);
6291half2 __ovld __cnfn convert_half2_rtp(ulong2);
6292half2 __ovld __cnfn convert_half2_rtp(float2);
6293half2 __ovld __cnfn convert_half2_rtp(half2);
6294half2 __ovld __cnfn convert_half2_rtn(char2);
6295half2 __ovld __cnfn convert_half2_rtn(uchar2);
6296half2 __ovld __cnfn convert_half2_rtn(short2);
6297half2 __ovld __cnfn convert_half2_rtn(ushort2);
6298half2 __ovld __cnfn convert_half2_rtn(int2);
6299half2 __ovld __cnfn convert_half2_rtn(uint2);
6300half2 __ovld __cnfn convert_half2_rtn(long2);
6301half2 __ovld __cnfn convert_half2_rtn(ulong2);
6302half2 __ovld __cnfn convert_half2_rtn(float2);
6303half2 __ovld __cnfn convert_half2_rtn(half2);
6304half2 __ovld __cnfn convert_half2_rtz(char2);
6305half2 __ovld __cnfn convert_half2_rtz(uchar2);
6306half2 __ovld __cnfn convert_half2_rtz(short2);
6307half2 __ovld __cnfn convert_half2_rtz(ushort2);
6308half2 __ovld __cnfn convert_half2_rtz(int2);
6309half2 __ovld __cnfn convert_half2_rtz(uint2);
6310half2 __ovld __cnfn convert_half2_rtz(long2);
6311half2 __ovld __cnfn convert_half2_rtz(ulong2);
6312half2 __ovld __cnfn convert_half2_rtz(float2);
6313half2 __ovld __cnfn convert_half2_rtz(half2);
6314half3 __ovld __cnfn convert_half3(char3);
6315half3 __ovld __cnfn convert_half3(uchar3);
6316half3 __ovld __cnfn convert_half3(short3);
6317half3 __ovld __cnfn convert_half3(ushort3);
6318half3 __ovld __cnfn convert_half3(int3);
6319half3 __ovld __cnfn convert_half3(uint3);
6320half3 __ovld __cnfn convert_half3(long3);
6321half3 __ovld __cnfn convert_half3(ulong3);
6322half3 __ovld __cnfn convert_half3(float3);
6323half3 __ovld __cnfn convert_half3(half3);
6324half3 __ovld __cnfn convert_half3_rte(char3);
6325half3 __ovld __cnfn convert_half3_rte(uchar3);
6326half3 __ovld __cnfn convert_half3_rte(short3);
6327half3 __ovld __cnfn convert_half3_rte(ushort3);
6328half3 __ovld __cnfn convert_half3_rte(int3);
6329half3 __ovld __cnfn convert_half3_rte(uint3);
6330half3 __ovld __cnfn convert_half3_rte(long3);
6331half3 __ovld __cnfn convert_half3_rte(ulong3);
6332half3 __ovld __cnfn convert_half3_rte(float3);
6333half3 __ovld __cnfn convert_half3_rte(half3);
6334half3 __ovld __cnfn convert_half3_rtp(char3);
6335half3 __ovld __cnfn convert_half3_rtp(uchar3);
6336half3 __ovld __cnfn convert_half3_rtp(short3);
6337half3 __ovld __cnfn convert_half3_rtp(ushort3);
6338half3 __ovld __cnfn convert_half3_rtp(int3);
6339half3 __ovld __cnfn convert_half3_rtp(uint3);
6340half3 __ovld __cnfn convert_half3_rtp(long3);
6341half3 __ovld __cnfn convert_half3_rtp(ulong3);
6342half3 __ovld __cnfn convert_half3_rtp(float3);
6343half3 __ovld __cnfn convert_half3_rtp(half3);
6344half3 __ovld __cnfn convert_half3_rtn(char3);
6345half3 __ovld __cnfn convert_half3_rtn(uchar3);
6346half3 __ovld __cnfn convert_half3_rtn(short3);
6347half3 __ovld __cnfn convert_half3_rtn(ushort3);
6348half3 __ovld __cnfn convert_half3_rtn(int3);
6349half3 __ovld __cnfn convert_half3_rtn(uint3);
6350half3 __ovld __cnfn convert_half3_rtn(long3);
6351half3 __ovld __cnfn convert_half3_rtn(ulong3);
6352half3 __ovld __cnfn convert_half3_rtn(float3);
6353half3 __ovld __cnfn convert_half3_rtn(half3);
6354half3 __ovld __cnfn convert_half3_rtz(char3);
6355half3 __ovld __cnfn convert_half3_rtz(uchar3);
6356half3 __ovld __cnfn convert_half3_rtz(short3);
6357half3 __ovld __cnfn convert_half3_rtz(ushort3);
6358half3 __ovld __cnfn convert_half3_rtz(int3);
6359half3 __ovld __cnfn convert_half3_rtz(uint3);
6360half3 __ovld __cnfn convert_half3_rtz(long3);
6361half3 __ovld __cnfn convert_half3_rtz(ulong3);
6362half3 __ovld __cnfn convert_half3_rtz(float3);
6363half3 __ovld __cnfn convert_half3_rtz(half3);
6364half4 __ovld __cnfn convert_half4(char4);
6365half4 __ovld __cnfn convert_half4(uchar4);
6366half4 __ovld __cnfn convert_half4(short4);
6367half4 __ovld __cnfn convert_half4(ushort4);
6368half4 __ovld __cnfn convert_half4(int4);
6369half4 __ovld __cnfn convert_half4(uint4);
6370half4 __ovld __cnfn convert_half4(long4);
6371half4 __ovld __cnfn convert_half4(ulong4);
6372half4 __ovld __cnfn convert_half4(float4);
6373half4 __ovld __cnfn convert_half4(half4);
6374half4 __ovld __cnfn convert_half4_rte(char4);
6375half4 __ovld __cnfn convert_half4_rte(uchar4);
6376half4 __ovld __cnfn convert_half4_rte(short4);
6377half4 __ovld __cnfn convert_half4_rte(ushort4);
6378half4 __ovld __cnfn convert_half4_rte(int4);
6379half4 __ovld __cnfn convert_half4_rte(uint4);
6380half4 __ovld __cnfn convert_half4_rte(long4);
6381half4 __ovld __cnfn convert_half4_rte(ulong4);
6382half4 __ovld __cnfn convert_half4_rte(float4);
6383half4 __ovld __cnfn convert_half4_rte(half4);
6384half4 __ovld __cnfn convert_half4_rtp(char4);
6385half4 __ovld __cnfn convert_half4_rtp(uchar4);
6386half4 __ovld __cnfn convert_half4_rtp(short4);
6387half4 __ovld __cnfn convert_half4_rtp(ushort4);
6388half4 __ovld __cnfn convert_half4_rtp(int4);
6389half4 __ovld __cnfn convert_half4_rtp(uint4);
6390half4 __ovld __cnfn convert_half4_rtp(long4);
6391half4 __ovld __cnfn convert_half4_rtp(ulong4);
6392half4 __ovld __cnfn convert_half4_rtp(float4);
6393half4 __ovld __cnfn convert_half4_rtp(half4);
6394half4 __ovld __cnfn convert_half4_rtn(char4);
6395half4 __ovld __cnfn convert_half4_rtn(uchar4);
6396half4 __ovld __cnfn convert_half4_rtn(short4);
6397half4 __ovld __cnfn convert_half4_rtn(ushort4);
6398half4 __ovld __cnfn convert_half4_rtn(int4);
6399half4 __ovld __cnfn convert_half4_rtn(uint4);
6400half4 __ovld __cnfn convert_half4_rtn(long4);
6401half4 __ovld __cnfn convert_half4_rtn(ulong4);
6402half4 __ovld __cnfn convert_half4_rtn(float4);
6403half4 __ovld __cnfn convert_half4_rtn(half4);
6404half4 __ovld __cnfn convert_half4_rtz(char4);
6405half4 __ovld __cnfn convert_half4_rtz(uchar4);
6406half4 __ovld __cnfn convert_half4_rtz(short4);
6407half4 __ovld __cnfn convert_half4_rtz(ushort4);
6408half4 __ovld __cnfn convert_half4_rtz(int4);
6409half4 __ovld __cnfn convert_half4_rtz(uint4);
6410half4 __ovld __cnfn convert_half4_rtz(long4);
6411half4 __ovld __cnfn convert_half4_rtz(ulong4);
6412half4 __ovld __cnfn convert_half4_rtz(float4);
6413half4 __ovld __cnfn convert_half4_rtz(half4);
6414half8 __ovld __cnfn convert_half8(char8);
6415half8 __ovld __cnfn convert_half8(uchar8);
6416half8 __ovld __cnfn convert_half8(short8);
6417half8 __ovld __cnfn convert_half8(ushort8);
6418half8 __ovld __cnfn convert_half8(int8);
6419half8 __ovld __cnfn convert_half8(uint8);
6420half8 __ovld __cnfn convert_half8(long8);
6421half8 __ovld __cnfn convert_half8(ulong8);
6422half8 __ovld __cnfn convert_half8(float8);
6423half8 __ovld __cnfn convert_half8(half8);
6424half8 __ovld __cnfn convert_half8_rte(char8);
6425half8 __ovld __cnfn convert_half8_rte(uchar8);
6426half8 __ovld __cnfn convert_half8_rte(short8);
6427half8 __ovld __cnfn convert_half8_rte(ushort8);
6428half8 __ovld __cnfn convert_half8_rte(int8);
6429half8 __ovld __cnfn convert_half8_rte(uint8);
6430half8 __ovld __cnfn convert_half8_rte(long8);
6431half8 __ovld __cnfn convert_half8_rte(ulong8);
6432half8 __ovld __cnfn convert_half8_rte(float8);
6433half8 __ovld __cnfn convert_half8_rte(half8);
6434half8 __ovld __cnfn convert_half8_rtp(char8);
6435half8 __ovld __cnfn convert_half8_rtp(uchar8);
6436half8 __ovld __cnfn convert_half8_rtp(short8);
6437half8 __ovld __cnfn convert_half8_rtp(ushort8);
6438half8 __ovld __cnfn convert_half8_rtp(int8);
6439half8 __ovld __cnfn convert_half8_rtp(uint8);
6440half8 __ovld __cnfn convert_half8_rtp(long8);
6441half8 __ovld __cnfn convert_half8_rtp(ulong8);
6442half8 __ovld __cnfn convert_half8_rtp(float8);
6443half8 __ovld __cnfn convert_half8_rtp(half8);
6444half8 __ovld __cnfn convert_half8_rtn(char8);
6445half8 __ovld __cnfn convert_half8_rtn(uchar8);
6446half8 __ovld __cnfn convert_half8_rtn(short8);
6447half8 __ovld __cnfn convert_half8_rtn(ushort8);
6448half8 __ovld __cnfn convert_half8_rtn(int8);
6449half8 __ovld __cnfn convert_half8_rtn(uint8);
6450half8 __ovld __cnfn convert_half8_rtn(long8);
6451half8 __ovld __cnfn convert_half8_rtn(ulong8);
6452half8 __ovld __cnfn convert_half8_rtn(float8);
6453half8 __ovld __cnfn convert_half8_rtn(half8);
6454half8 __ovld __cnfn convert_half8_rtz(char8);
6455half8 __ovld __cnfn convert_half8_rtz(uchar8);
6456half8 __ovld __cnfn convert_half8_rtz(short8);
6457half8 __ovld __cnfn convert_half8_rtz(ushort8);
6458half8 __ovld __cnfn convert_half8_rtz(int8);
6459half8 __ovld __cnfn convert_half8_rtz(uint8);
6460half8 __ovld __cnfn convert_half8_rtz(long8);
6461half8 __ovld __cnfn convert_half8_rtz(ulong8);
6462half8 __ovld __cnfn convert_half8_rtz(float8);
6463half8 __ovld __cnfn convert_half8_rtz(half8);
6464half16 __ovld __cnfn convert_half16(char16);
6465half16 __ovld __cnfn convert_half16(uchar16);
6466half16 __ovld __cnfn convert_half16(short16);
6467half16 __ovld __cnfn convert_half16(ushort16);
6468half16 __ovld __cnfn convert_half16(int16);
6469half16 __ovld __cnfn convert_half16(uint16);
6470half16 __ovld __cnfn convert_half16(long16);
6471half16 __ovld __cnfn convert_half16(ulong16);
6472half16 __ovld __cnfn convert_half16(float16);
6473half16 __ovld __cnfn convert_half16(half16);
6474half16 __ovld __cnfn convert_half16_rte(char16);
6475half16 __ovld __cnfn convert_half16_rte(uchar16);
6476half16 __ovld __cnfn convert_half16_rte(short16);
6477half16 __ovld __cnfn convert_half16_rte(ushort16);
6478half16 __ovld __cnfn convert_half16_rte(int16);
6479half16 __ovld __cnfn convert_half16_rte(uint16);
6480half16 __ovld __cnfn convert_half16_rte(long16);
6481half16 __ovld __cnfn convert_half16_rte(ulong16);
6482half16 __ovld __cnfn convert_half16_rte(float16);
6483half16 __ovld __cnfn convert_half16_rte(half16);
6484half16 __ovld __cnfn convert_half16_rtp(char16);
6485half16 __ovld __cnfn convert_half16_rtp(uchar16);
6486half16 __ovld __cnfn convert_half16_rtp(short16);
6487half16 __ovld __cnfn convert_half16_rtp(ushort16);
6488half16 __ovld __cnfn convert_half16_rtp(int16);
6489half16 __ovld __cnfn convert_half16_rtp(uint16);
6490half16 __ovld __cnfn convert_half16_rtp(long16);
6491half16 __ovld __cnfn convert_half16_rtp(ulong16);
6492half16 __ovld __cnfn convert_half16_rtp(float16);
6493half16 __ovld __cnfn convert_half16_rtp(half16);
6494half16 __ovld __cnfn convert_half16_rtn(char16);
6495half16 __ovld __cnfn convert_half16_rtn(uchar16);
6496half16 __ovld __cnfn convert_half16_rtn(short16);
6497half16 __ovld __cnfn convert_half16_rtn(ushort16);
6498half16 __ovld __cnfn convert_half16_rtn(int16);
6499half16 __ovld __cnfn convert_half16_rtn(uint16);
6500half16 __ovld __cnfn convert_half16_rtn(long16);
6501half16 __ovld __cnfn convert_half16_rtn(ulong16);
6502half16 __ovld __cnfn convert_half16_rtn(float16);
6503half16 __ovld __cnfn convert_half16_rtn(half16);
6504half16 __ovld __cnfn convert_half16_rtz(char16);
6505half16 __ovld __cnfn convert_half16_rtz(uchar16);
6506half16 __ovld __cnfn convert_half16_rtz(short16);
6507half16 __ovld __cnfn convert_half16_rtz(ushort16);
6508half16 __ovld __cnfn convert_half16_rtz(int16);
6509half16 __ovld __cnfn convert_half16_rtz(uint16);
6510half16 __ovld __cnfn convert_half16_rtz(long16);
6511half16 __ovld __cnfn convert_half16_rtz(ulong16);
6512half16 __ovld __cnfn convert_half16_rtz(float16);
6513half16 __ovld __cnfn convert_half16_rtz(half16);
6514
6515// Convert half types to double types.
6516#ifdef cl_khr_fp64
6517double __ovld __cnfn convert_double(half);
6518double __ovld __cnfn convert_double_rte(half);
6519double __ovld __cnfn convert_double_rtp(half);
6520double __ovld __cnfn convert_double_rtn(half);
6521double __ovld __cnfn convert_double_rtz(half);
6522double2 __ovld __cnfn convert_double2(half2);
6523double2 __ovld __cnfn convert_double2_rte(half2);
6524double2 __ovld __cnfn convert_double2_rtp(half2);
6525double2 __ovld __cnfn convert_double2_rtn(half2);
6526double2 __ovld __cnfn convert_double2_rtz(half2);
6527double3 __ovld __cnfn convert_double3(half3);
6528double3 __ovld __cnfn convert_double3_rte(half3);
6529double3 __ovld __cnfn convert_double3_rtp(half3);
6530double3 __ovld __cnfn convert_double3_rtn(half3);
6531double3 __ovld __cnfn convert_double3_rtz(half3);
6532double4 __ovld __cnfn convert_double4(half4);
6533double4 __ovld __cnfn convert_double4_rte(half4);
6534double4 __ovld __cnfn convert_double4_rtp(half4);
6535double4 __ovld __cnfn convert_double4_rtn(half4);
6536double4 __ovld __cnfn convert_double4_rtz(half4);
6537double8 __ovld __cnfn convert_double8(half8);
6538double8 __ovld __cnfn convert_double8_rte(half8);
6539double8 __ovld __cnfn convert_double8_rtp(half8);
6540double8 __ovld __cnfn convert_double8_rtn(half8);
6541double8 __ovld __cnfn convert_double8_rtz(half8);
6542double16 __ovld __cnfn convert_double16(half16);
6543double16 __ovld __cnfn convert_double16_rte(half16);
6544double16 __ovld __cnfn convert_double16_rtp(half16);
6545double16 __ovld __cnfn convert_double16_rtn(half16);
6546double16 __ovld __cnfn convert_double16_rtz(half16);
6547
6548// Convert double types to half types.
6549half __ovld __cnfn convert_half(double);
6550half __ovld __cnfn convert_half_rte(double);
6551half __ovld __cnfn convert_half_rtp(double);
6552half __ovld __cnfn convert_half_rtn(double);
6553half __ovld __cnfn convert_half_rtz(double);
6554half2 __ovld __cnfn convert_half2(double2);
6555half2 __ovld __cnfn convert_half2_rte(double2);
6556half2 __ovld __cnfn convert_half2_rtp(double2);
6557half2 __ovld __cnfn convert_half2_rtn(double2);
6558half2 __ovld __cnfn convert_half2_rtz(double2);
6559half3 __ovld __cnfn convert_half3(double3);
6560half3 __ovld __cnfn convert_half3_rte(double3);
6561half3 __ovld __cnfn convert_half3_rtp(double3);
6562half3 __ovld __cnfn convert_half3_rtn(double3);
6563half3 __ovld __cnfn convert_half3_rtz(double3);
6564half4 __ovld __cnfn convert_half4(double4);
6565half4 __ovld __cnfn convert_half4_rte(double4);
6566half4 __ovld __cnfn convert_half4_rtp(double4);
6567half4 __ovld __cnfn convert_half4_rtn(double4);
6568half4 __ovld __cnfn convert_half4_rtz(double4);
6569half8 __ovld __cnfn convert_half8(double8);
6570half8 __ovld __cnfn convert_half8_rte(double8);
6571half8 __ovld __cnfn convert_half8_rtp(double8);
6572half8 __ovld __cnfn convert_half8_rtn(double8);
6573half8 __ovld __cnfn convert_half8_rtz(double8);
6574half16 __ovld __cnfn convert_half16(double16);
6575half16 __ovld __cnfn convert_half16_rte(double16);
6576half16 __ovld __cnfn convert_half16_rtp(double16);
6577half16 __ovld __cnfn convert_half16_rtn(double16);
6578half16 __ovld __cnfn convert_half16_rtz(double16);
6579#endif //cl_khr_fp64
6580
6581#endif // cl_khr_fp16
6582
6583/**
6584 * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
6585 * Reinterprets a data type as another data type of the same size
6586 */
6587char __ovld __cnfn as_char(char);
6588char __ovld __cnfn as_char(uchar);
6589
6590char2 __ovld __cnfn as_char2(char2);
6591char2 __ovld __cnfn as_char2(uchar2);
6592char2 __ovld __cnfn as_char2(short);
6593char2 __ovld __cnfn as_char2(ushort);
6594
6595char3 __ovld __cnfn as_char3(char3);
6596char3 __ovld __cnfn as_char3(char4);
6597char3 __ovld __cnfn as_char3(uchar3);
6598char3 __ovld __cnfn as_char3(uchar4);
6599char3 __ovld __cnfn as_char3(short2);
6600char3 __ovld __cnfn as_char3(ushort2);
6601char3 __ovld __cnfn as_char3(int);
6602char3 __ovld __cnfn as_char3(uint);
6603char3 __ovld __cnfn as_char3(float);
6604
6605char4 __ovld __cnfn as_char4(char3);
6606char4 __ovld __cnfn as_char4(char4);
6607char4 __ovld __cnfn as_char4(uchar3);
6608char4 __ovld __cnfn as_char4(uchar4);
6609char4 __ovld __cnfn as_char4(short2);
6610char4 __ovld __cnfn as_char4(ushort2);
6611char4 __ovld __cnfn as_char4(int);
6612char4 __ovld __cnfn as_char4(uint);
6613char4 __ovld __cnfn as_char4(float);
6614
6615char8 __ovld __cnfn as_char8(char8);
6616char8 __ovld __cnfn as_char8(uchar8);
6617char8 __ovld __cnfn as_char8(short3);
6618char8 __ovld __cnfn as_char8(short4);
6619char8 __ovld __cnfn as_char8(ushort3);
6620char8 __ovld __cnfn as_char8(ushort4);
6621char8 __ovld __cnfn as_char8(int2);
6622char8 __ovld __cnfn as_char8(uint2);
6623char8 __ovld __cnfn as_char8(long);
6624char8 __ovld __cnfn as_char8(ulong);
6625char8 __ovld __cnfn as_char8(float2);
6626
6627char16 __ovld __cnfn as_char16(char16);
6628char16 __ovld __cnfn as_char16(uchar16);
6629char16 __ovld __cnfn as_char16(short8);
6630char16 __ovld __cnfn as_char16(ushort8);
6631char16 __ovld __cnfn as_char16(int3);
6632char16 __ovld __cnfn as_char16(int4);
6633char16 __ovld __cnfn as_char16(uint3);
6634char16 __ovld __cnfn as_char16(uint4);
6635char16 __ovld __cnfn as_char16(long2);
6636char16 __ovld __cnfn as_char16(ulong2);
6637char16 __ovld __cnfn as_char16(float3);
6638char16 __ovld __cnfn as_char16(float4);
6639
6640uchar __ovld __cnfn as_uchar(char);
6641uchar __ovld __cnfn as_uchar(uchar);
6642
6643uchar2 __ovld __cnfn as_uchar2(char2);
6644uchar2 __ovld __cnfn as_uchar2(uchar2);
6645uchar2 __ovld __cnfn as_uchar2(short);
6646uchar2 __ovld __cnfn as_uchar2(ushort);
6647
6648uchar3 __ovld __cnfn as_uchar3(char3);
6649uchar3 __ovld __cnfn as_uchar3(char4);
6650uchar3 __ovld __cnfn as_uchar3(uchar3);
6651uchar3 __ovld __cnfn as_uchar3(uchar4);
6652uchar3 __ovld __cnfn as_uchar3(short2);
6653uchar3 __ovld __cnfn as_uchar3(ushort2);
6654uchar3 __ovld __cnfn as_uchar3(int);
6655uchar3 __ovld __cnfn as_uchar3(uint);
6656uchar3 __ovld __cnfn as_uchar3(float);
6657
6658uchar4 __ovld __cnfn as_uchar4(char3);
6659uchar4 __ovld __cnfn as_uchar4(char4);
6660uchar4 __ovld __cnfn as_uchar4(uchar3);
6661uchar4 __ovld __cnfn as_uchar4(uchar4);
6662uchar4 __ovld __cnfn as_uchar4(short2);
6663uchar4 __ovld __cnfn as_uchar4(ushort2);
6664uchar4 __ovld __cnfn as_uchar4(int);
6665uchar4 __ovld __cnfn as_uchar4(uint);
6666uchar4 __ovld __cnfn as_uchar4(float);
6667
6668uchar8 __ovld __cnfn as_uchar8(char8);
6669uchar8 __ovld __cnfn as_uchar8(uchar8);
6670uchar8 __ovld __cnfn as_uchar8(short3);
6671uchar8 __ovld __cnfn as_uchar8(short4);
6672uchar8 __ovld __cnfn as_uchar8(ushort3);
6673uchar8 __ovld __cnfn as_uchar8(ushort4);
6674uchar8 __ovld __cnfn as_uchar8(int2);
6675uchar8 __ovld __cnfn as_uchar8(uint2);
6676uchar8 __ovld __cnfn as_uchar8(long);
6677uchar8 __ovld __cnfn as_uchar8(ulong);
6678uchar8 __ovld __cnfn as_uchar8(float2);
6679
6680uchar16 __ovld __cnfn as_uchar16(char16);
6681uchar16 __ovld __cnfn as_uchar16(uchar16);
6682uchar16 __ovld __cnfn as_uchar16(short8);
6683uchar16 __ovld __cnfn as_uchar16(ushort8);
6684uchar16 __ovld __cnfn as_uchar16(int3);
6685uchar16 __ovld __cnfn as_uchar16(int4);
6686uchar16 __ovld __cnfn as_uchar16(uint3);
6687uchar16 __ovld __cnfn as_uchar16(uint4);
6688uchar16 __ovld __cnfn as_uchar16(long2);
6689uchar16 __ovld __cnfn as_uchar16(ulong2);
6690uchar16 __ovld __cnfn as_uchar16(float3);
6691uchar16 __ovld __cnfn as_uchar16(float4);
6692
6693short __ovld __cnfn as_short(char2);
6694short __ovld __cnfn as_short(uchar2);
6695short __ovld __cnfn as_short(short);
6696short __ovld __cnfn as_short(ushort);
6697
6698short2 __ovld __cnfn as_short2(char3);
6699short2 __ovld __cnfn as_short2(char4);
6700short2 __ovld __cnfn as_short2(uchar3);
6701short2 __ovld __cnfn as_short2(uchar4);
6702short2 __ovld __cnfn as_short2(short2);
6703short2 __ovld __cnfn as_short2(ushort2);
6704short2 __ovld __cnfn as_short2(int);
6705short2 __ovld __cnfn as_short2(uint);
6706short2 __ovld __cnfn as_short2(float);
6707
6708short3 __ovld __cnfn as_short3(char8);
6709short3 __ovld __cnfn as_short3(uchar8);
6710short3 __ovld __cnfn as_short3(short3);
6711short3 __ovld __cnfn as_short3(short4);
6712short3 __ovld __cnfn as_short3(ushort3);
6713short3 __ovld __cnfn as_short3(ushort4);
6714short3 __ovld __cnfn as_short3(int2);
6715short3 __ovld __cnfn as_short3(uint2);
6716short3 __ovld __cnfn as_short3(long);
6717short3 __ovld __cnfn as_short3(ulong);
6718short3 __ovld __cnfn as_short3(float2);
6719
6720short4 __ovld __cnfn as_short4(char8);
6721short4 __ovld __cnfn as_short4(uchar8);
6722short4 __ovld __cnfn as_short4(short3);
6723short4 __ovld __cnfn as_short4(short4);
6724short4 __ovld __cnfn as_short4(ushort3);
6725short4 __ovld __cnfn as_short4(ushort4);
6726short4 __ovld __cnfn as_short4(int2);
6727short4 __ovld __cnfn as_short4(uint2);
6728short4 __ovld __cnfn as_short4(long);
6729short4 __ovld __cnfn as_short4(ulong);
6730short4 __ovld __cnfn as_short4(float2);
6731
6732short8 __ovld __cnfn as_short8(char16);
6733short8 __ovld __cnfn as_short8(uchar16);
6734short8 __ovld __cnfn as_short8(short8);
6735short8 __ovld __cnfn as_short8(ushort8);
6736short8 __ovld __cnfn as_short8(int3);
6737short8 __ovld __cnfn as_short8(int4);
6738short8 __ovld __cnfn as_short8(uint3);
6739short8 __ovld __cnfn as_short8(uint4);
6740short8 __ovld __cnfn as_short8(long2);
6741short8 __ovld __cnfn as_short8(ulong2);
6742short8 __ovld __cnfn as_short8(float3);
6743short8 __ovld __cnfn as_short8(float4);
6744
6745short16 __ovld __cnfn as_short16(short16);
6746short16 __ovld __cnfn as_short16(ushort16);
6747short16 __ovld __cnfn as_short16(int8);
6748short16 __ovld __cnfn as_short16(uint8);
6749short16 __ovld __cnfn as_short16(long3);
6750short16 __ovld __cnfn as_short16(long4);
6751short16 __ovld __cnfn as_short16(ulong3);
6752short16 __ovld __cnfn as_short16(ulong4);
6753short16 __ovld __cnfn as_short16(float8);
6754
6755ushort __ovld __cnfn as_ushort(char2);
6756ushort __ovld __cnfn as_ushort(uchar2);
6757ushort __ovld __cnfn as_ushort(short);
6758ushort __ovld __cnfn as_ushort(ushort);
6759
6760ushort2 __ovld __cnfn as_ushort2(char3);
6761ushort2 __ovld __cnfn as_ushort2(char4);
6762ushort2 __ovld __cnfn as_ushort2(uchar3);
6763ushort2 __ovld __cnfn as_ushort2(uchar4);
6764ushort2 __ovld __cnfn as_ushort2(short2);
6765ushort2 __ovld __cnfn as_ushort2(ushort2);
6766ushort2 __ovld __cnfn as_ushort2(int);
6767ushort2 __ovld __cnfn as_ushort2(uint);
6768ushort2 __ovld __cnfn as_ushort2(float);
6769
6770ushort3 __ovld __cnfn as_ushort3(char8);
6771ushort3 __ovld __cnfn as_ushort3(uchar8);
6772ushort3 __ovld __cnfn as_ushort3(short3);
6773ushort3 __ovld __cnfn as_ushort3(short4);
6774ushort3 __ovld __cnfn as_ushort3(ushort3);
6775ushort3 __ovld __cnfn as_ushort3(ushort4);
6776ushort3 __ovld __cnfn as_ushort3(int2);
6777ushort3 __ovld __cnfn as_ushort3(uint2);
6778ushort3 __ovld __cnfn as_ushort3(long);
6779ushort3 __ovld __cnfn as_ushort3(ulong);
6780ushort3 __ovld __cnfn as_ushort3(float2);
6781
6782ushort4 __ovld __cnfn as_ushort4(char8);
6783ushort4 __ovld __cnfn as_ushort4(uchar8);
6784ushort4 __ovld __cnfn as_ushort4(short3);
6785ushort4 __ovld __cnfn as_ushort4(short4);
6786ushort4 __ovld __cnfn as_ushort4(ushort3);
6787ushort4 __ovld __cnfn as_ushort4(ushort4);
6788ushort4 __ovld __cnfn as_ushort4(int2);
6789ushort4 __ovld __cnfn as_ushort4(uint2);
6790ushort4 __ovld __cnfn as_ushort4(long);
6791ushort4 __ovld __cnfn as_ushort4(ulong);
6792ushort4 __ovld __cnfn as_ushort4(float2);
6793
6794ushort8 __ovld __cnfn as_ushort8(char16);
6795ushort8 __ovld __cnfn as_ushort8(uchar16);
6796ushort8 __ovld __cnfn as_ushort8(short8);
6797ushort8 __ovld __cnfn as_ushort8(ushort8);
6798ushort8 __ovld __cnfn as_ushort8(int3);
6799ushort8 __ovld __cnfn as_ushort8(int4);
6800ushort8 __ovld __cnfn as_ushort8(uint3);
6801ushort8 __ovld __cnfn as_ushort8(uint4);
6802ushort8 __ovld __cnfn as_ushort8(long2);
6803ushort8 __ovld __cnfn as_ushort8(ulong2);
6804ushort8 __ovld __cnfn as_ushort8(float3);
6805ushort8 __ovld __cnfn as_ushort8(float4);
6806
6807ushort16 __ovld __cnfn as_ushort16(short16);
6808ushort16 __ovld __cnfn as_ushort16(ushort16);
6809ushort16 __ovld __cnfn as_ushort16(int8);
6810ushort16 __ovld __cnfn as_ushort16(uint8);
6811ushort16 __ovld __cnfn as_ushort16(long3);
6812ushort16 __ovld __cnfn as_ushort16(long4);
6813ushort16 __ovld __cnfn as_ushort16(ulong3);
6814ushort16 __ovld __cnfn as_ushort16(ulong4);
6815ushort16 __ovld __cnfn as_ushort16(float8);
6816
6817int __ovld __cnfn as_int(char3);
6818int __ovld __cnfn as_int(char4);
6819int __ovld __cnfn as_int(uchar3);
6820int __ovld __cnfn as_int(uchar4);
6821int __ovld __cnfn as_int(short2);
6822int __ovld __cnfn as_int(ushort2);
6823int __ovld __cnfn as_int(int);
6824int __ovld __cnfn as_int(uint);
6825int __ovld __cnfn as_int(float);
6826
6827int2 __ovld __cnfn as_int2(char8);
6828int2 __ovld __cnfn as_int2(uchar8);
6829int2 __ovld __cnfn as_int2(short3);
6830int2 __ovld __cnfn as_int2(short4);
6831int2 __ovld __cnfn as_int2(ushort3);
6832int2 __ovld __cnfn as_int2(ushort4);
6833int2 __ovld __cnfn as_int2(int2);
6834int2 __ovld __cnfn as_int2(uint2);
6835int2 __ovld __cnfn as_int2(long);
6836int2 __ovld __cnfn as_int2(ulong);
6837int2 __ovld __cnfn as_int2(float2);
6838
6839int3 __ovld __cnfn as_int3(char16);
6840int3 __ovld __cnfn as_int3(uchar16);
6841int3 __ovld __cnfn as_int3(short8);
6842int3 __ovld __cnfn as_int3(ushort8);
6843int3 __ovld __cnfn as_int3(int3);
6844int3 __ovld __cnfn as_int3(int4);
6845int3 __ovld __cnfn as_int3(uint3);
6846int3 __ovld __cnfn as_int3(uint4);
6847int3 __ovld __cnfn as_int3(long2);
6848int3 __ovld __cnfn as_int3(ulong2);
6849int3 __ovld __cnfn as_int3(float3);
6850int3 __ovld __cnfn as_int3(float4);
6851
6852int4 __ovld __cnfn as_int4(char16);
6853int4 __ovld __cnfn as_int4(uchar16);
6854int4 __ovld __cnfn as_int4(short8);
6855int4 __ovld __cnfn as_int4(ushort8);
6856int4 __ovld __cnfn as_int4(int3);
6857int4 __ovld __cnfn as_int4(int4);
6858int4 __ovld __cnfn as_int4(uint3);
6859int4 __ovld __cnfn as_int4(uint4);
6860int4 __ovld __cnfn as_int4(long2);
6861int4 __ovld __cnfn as_int4(ulong2);
6862int4 __ovld __cnfn as_int4(float3);
6863int4 __ovld __cnfn as_int4(float4);
6864
6865int8 __ovld __cnfn as_int8(short16);
6866int8 __ovld __cnfn as_int8(ushort16);
6867int8 __ovld __cnfn as_int8(int8);
6868int8 __ovld __cnfn as_int8(uint8);
6869int8 __ovld __cnfn as_int8(long3);
6870int8 __ovld __cnfn as_int8(long4);
6871int8 __ovld __cnfn as_int8(ulong3);
6872int8 __ovld __cnfn as_int8(ulong4);
6873int8 __ovld __cnfn as_int8(float8);
6874
6875int16 __ovld __cnfn as_int16(int16);
6876int16 __ovld __cnfn as_int16(uint16);
6877int16 __ovld __cnfn as_int16(long8);
6878int16 __ovld __cnfn as_int16(ulong8);
6879int16 __ovld __cnfn as_int16(float16);
6880
6881uint __ovld __cnfn as_uint(char3);
6882uint __ovld __cnfn as_uint(char4);
6883uint __ovld __cnfn as_uint(uchar3);
6884uint __ovld __cnfn as_uint(uchar4);
6885uint __ovld __cnfn as_uint(short2);
6886uint __ovld __cnfn as_uint(ushort2);
6887uint __ovld __cnfn as_uint(int);
6888uint __ovld __cnfn as_uint(uint);
6889uint __ovld __cnfn as_uint(float);
6890
6891uint2 __ovld __cnfn as_uint2(char8);
6892uint2 __ovld __cnfn as_uint2(uchar8);
6893uint2 __ovld __cnfn as_uint2(short3);
6894uint2 __ovld __cnfn as_uint2(short4);
6895uint2 __ovld __cnfn as_uint2(ushort3);
6896uint2 __ovld __cnfn as_uint2(ushort4);
6897uint2 __ovld __cnfn as_uint2(int2);
6898uint2 __ovld __cnfn as_uint2(uint2);
6899uint2 __ovld __cnfn as_uint2(long);
6900uint2 __ovld __cnfn as_uint2(ulong);
6901uint2 __ovld __cnfn as_uint2(float2);
6902
6903uint3 __ovld __cnfn as_uint3(char16);
6904uint3 __ovld __cnfn as_uint3(uchar16);
6905uint3 __ovld __cnfn as_uint3(short8);
6906uint3 __ovld __cnfn as_uint3(ushort8);
6907uint3 __ovld __cnfn as_uint3(int3);
6908uint3 __ovld __cnfn as_uint3(int4);
6909uint3 __ovld __cnfn as_uint3(uint3);
6910uint3 __ovld __cnfn as_uint3(uint4);
6911uint3 __ovld __cnfn as_uint3(long2);
6912uint3 __ovld __cnfn as_uint3(ulong2);
6913uint3 __ovld __cnfn as_uint3(float3);
6914uint3 __ovld __cnfn as_uint3(float4);
6915
6916uint4 __ovld __cnfn as_uint4(char16);
6917uint4 __ovld __cnfn as_uint4(uchar16);
6918uint4 __ovld __cnfn as_uint4(short8);
6919uint4 __ovld __cnfn as_uint4(ushort8);
6920uint4 __ovld __cnfn as_uint4(int3);
6921uint4 __ovld __cnfn as_uint4(int4);
6922uint4 __ovld __cnfn as_uint4(uint3);
6923uint4 __ovld __cnfn as_uint4(uint4);
6924uint4 __ovld __cnfn as_uint4(long2);
6925uint4 __ovld __cnfn as_uint4(ulong2);
6926uint4 __ovld __cnfn as_uint4(float3);
6927uint4 __ovld __cnfn as_uint4(float4);
6928
6929uint8 __ovld __cnfn as_uint8(short16);
6930uint8 __ovld __cnfn as_uint8(ushort16);
6931uint8 __ovld __cnfn as_uint8(int8);
6932uint8 __ovld __cnfn as_uint8(uint8);
6933uint8 __ovld __cnfn as_uint8(long3);
6934uint8 __ovld __cnfn as_uint8(long4);
6935uint8 __ovld __cnfn as_uint8(ulong3);
6936uint8 __ovld __cnfn as_uint8(ulong4);
6937uint8 __ovld __cnfn as_uint8(float8);
6938
6939uint16 __ovld __cnfn as_uint16(int16);
6940uint16 __ovld __cnfn as_uint16(uint16);
6941uint16 __ovld __cnfn as_uint16(long8);
6942uint16 __ovld __cnfn as_uint16(ulong8);
6943uint16 __ovld __cnfn as_uint16(float16);
6944
6945long __ovld __cnfn as_long(char8);
6946long __ovld __cnfn as_long(uchar8);
6947long __ovld __cnfn as_long(short3);
6948long __ovld __cnfn as_long(short4);
6949long __ovld __cnfn as_long(ushort3);
6950long __ovld __cnfn as_long(ushort4);
6951long __ovld __cnfn as_long(int2);
6952long __ovld __cnfn as_long(uint2);
6953long __ovld __cnfn as_long(long);
6954long __ovld __cnfn as_long(ulong);
6955long __ovld __cnfn as_long(float2);
6956
6957long2 __ovld __cnfn as_long2(char16);
6958long2 __ovld __cnfn as_long2(uchar16);
6959long2 __ovld __cnfn as_long2(short8);
6960long2 __ovld __cnfn as_long2(ushort8);
6961long2 __ovld __cnfn as_long2(int3);
6962long2 __ovld __cnfn as_long2(int4);
6963long2 __ovld __cnfn as_long2(uint3);
6964long2 __ovld __cnfn as_long2(uint4);
6965long2 __ovld __cnfn as_long2(long2);
6966long2 __ovld __cnfn as_long2(ulong2);
6967long2 __ovld __cnfn as_long2(float3);
6968long2 __ovld __cnfn as_long2(float4);
6969
6970long3 __ovld __cnfn as_long3(short16);
6971long3 __ovld __cnfn as_long3(ushort16);
6972long3 __ovld __cnfn as_long3(int8);
6973long3 __ovld __cnfn as_long3(uint8);
6974long3 __ovld __cnfn as_long3(long3);
6975long3 __ovld __cnfn as_long3(long4);
6976long3 __ovld __cnfn as_long3(ulong3);
6977long3 __ovld __cnfn as_long3(ulong4);
6978long3 __ovld __cnfn as_long3(float8);
6979
6980long4 __ovld __cnfn as_long4(short16);
6981long4 __ovld __cnfn as_long4(ushort16);
6982long4 __ovld __cnfn as_long4(int8);
6983long4 __ovld __cnfn as_long4(uint8);
6984long4 __ovld __cnfn as_long4(long3);
6985long4 __ovld __cnfn as_long4(long4);
6986long4 __ovld __cnfn as_long4(ulong3);
6987long4 __ovld __cnfn as_long4(ulong4);
6988long4 __ovld __cnfn as_long4(float8);
6989
6990long8 __ovld __cnfn as_long8(int16);
6991long8 __ovld __cnfn as_long8(uint16);
6992long8 __ovld __cnfn as_long8(long8);
6993long8 __ovld __cnfn as_long8(ulong8);
6994long8 __ovld __cnfn as_long8(float16);
6995
6996long16 __ovld __cnfn as_long16(long16);
6997long16 __ovld __cnfn as_long16(ulong16);
6998
6999ulong __ovld __cnfn as_ulong(char8);
7000ulong __ovld __cnfn as_ulong(uchar8);
7001ulong __ovld __cnfn as_ulong(short3);
7002ulong __ovld __cnfn as_ulong(short4);
7003ulong __ovld __cnfn as_ulong(ushort3);
7004ulong __ovld __cnfn as_ulong(ushort4);
7005ulong __ovld __cnfn as_ulong(int2);
7006ulong __ovld __cnfn as_ulong(uint2);
7007ulong __ovld __cnfn as_ulong(long);
7008ulong __ovld __cnfn as_ulong(ulong);
7009ulong __ovld __cnfn as_ulong(float2);
7010
7011ulong2 __ovld __cnfn as_ulong2(char16);
7012ulong2 __ovld __cnfn as_ulong2(uchar16);
7013ulong2 __ovld __cnfn as_ulong2(short8);
7014ulong2 __ovld __cnfn as_ulong2(ushort8);
7015ulong2 __ovld __cnfn as_ulong2(int3);
7016ulong2 __ovld __cnfn as_ulong2(int4);
7017ulong2 __ovld __cnfn as_ulong2(uint3);
7018ulong2 __ovld __cnfn as_ulong2(uint4);
7019ulong2 __ovld __cnfn as_ulong2(long2);
7020ulong2 __ovld __cnfn as_ulong2(ulong2);
7021ulong2 __ovld __cnfn as_ulong2(float3);
7022ulong2 __ovld __cnfn as_ulong2(float4);
7023
7024ulong3 __ovld __cnfn as_ulong3(short16);
7025ulong3 __ovld __cnfn as_ulong3(ushort16);
7026ulong3 __ovld __cnfn as_ulong3(int8);
7027ulong3 __ovld __cnfn as_ulong3(uint8);
7028ulong3 __ovld __cnfn as_ulong3(long3);
7029ulong3 __ovld __cnfn as_ulong3(long4);
7030ulong3 __ovld __cnfn as_ulong3(ulong3);
7031ulong3 __ovld __cnfn as_ulong3(ulong4);
7032ulong3 __ovld __cnfn as_ulong3(float8);
7033
7034ulong4 __ovld __cnfn as_ulong4(short16);
7035ulong4 __ovld __cnfn as_ulong4(ushort16);
7036ulong4 __ovld __cnfn as_ulong4(int8);
7037ulong4 __ovld __cnfn as_ulong4(uint8);
7038ulong4 __ovld __cnfn as_ulong4(long3);
7039ulong4 __ovld __cnfn as_ulong4(long4);
7040ulong4 __ovld __cnfn as_ulong4(ulong3);
7041ulong4 __ovld __cnfn as_ulong4(ulong4);
7042ulong4 __ovld __cnfn as_ulong4(float8);
7043
7044ulong8 __ovld __cnfn as_ulong8(int16);
7045ulong8 __ovld __cnfn as_ulong8(uint16);
7046ulong8 __ovld __cnfn as_ulong8(long8);
7047ulong8 __ovld __cnfn as_ulong8(ulong8);
7048ulong8 __ovld __cnfn as_ulong8(float16);
7049
7050ulong16 __ovld __cnfn as_ulong16(long16);
7051ulong16 __ovld __cnfn as_ulong16(ulong16);
7052
7053float __ovld __cnfn as_float(char3);
7054float __ovld __cnfn as_float(char4);
7055float __ovld __cnfn as_float(uchar3);
7056float __ovld __cnfn as_float(uchar4);
7057float __ovld __cnfn as_float(short2);
7058float __ovld __cnfn as_float(ushort2);
7059float __ovld __cnfn as_float(int);
7060float __ovld __cnfn as_float(uint);
7061float __ovld __cnfn as_float(float);
7062
7063float2 __ovld __cnfn as_float2(char8);
7064float2 __ovld __cnfn as_float2(uchar8);
7065float2 __ovld __cnfn as_float2(short3);
7066float2 __ovld __cnfn as_float2(short4);
7067float2 __ovld __cnfn as_float2(ushort3);
7068float2 __ovld __cnfn as_float2(ushort4);
7069float2 __ovld __cnfn as_float2(int2);
7070float2 __ovld __cnfn as_float2(uint2);
7071float2 __ovld __cnfn as_float2(long);
7072float2 __ovld __cnfn as_float2(ulong);
7073float2 __ovld __cnfn as_float2(float2);
7074
7075float3 __ovld __cnfn as_float3(char16);
7076float3 __ovld __cnfn as_float3(uchar16);
7077float3 __ovld __cnfn as_float3(short8);
7078float3 __ovld __cnfn as_float3(ushort8);
7079float3 __ovld __cnfn as_float3(int3);
7080float3 __ovld __cnfn as_float3(int4);
7081float3 __ovld __cnfn as_float3(uint3);
7082float3 __ovld __cnfn as_float3(uint4);
7083float3 __ovld __cnfn as_float3(long2);
7084float3 __ovld __cnfn as_float3(ulong2);
7085float3 __ovld __cnfn as_float3(float3);
7086float3 __ovld __cnfn as_float3(float4);
7087
7088float4 __ovld __cnfn as_float4(char16);
7089float4 __ovld __cnfn as_float4(uchar16);
7090float4 __ovld __cnfn as_float4(short8);
7091float4 __ovld __cnfn as_float4(ushort8);
7092float4 __ovld __cnfn as_float4(int3);
7093float4 __ovld __cnfn as_float4(int4);
7094float4 __ovld __cnfn as_float4(uint3);
7095float4 __ovld __cnfn as_float4(uint4);
7096float4 __ovld __cnfn as_float4(long2);
7097float4 __ovld __cnfn as_float4(ulong2);
7098float4 __ovld __cnfn as_float4(float3);
7099float4 __ovld __cnfn as_float4(float4);
7100
7101float8 __ovld __cnfn as_float8(short16);
7102float8 __ovld __cnfn as_float8(ushort16);
7103float8 __ovld __cnfn as_float8(int8);
7104float8 __ovld __cnfn as_float8(uint8);
7105float8 __ovld __cnfn as_float8(long3);
7106float8 __ovld __cnfn as_float8(long4);
7107float8 __ovld __cnfn as_float8(ulong3);
7108float8 __ovld __cnfn as_float8(ulong4);
7109float8 __ovld __cnfn as_float8(float8);
7110
7111float16 __ovld __cnfn as_float16(int16);
7112float16 __ovld __cnfn as_float16(uint16);
7113float16 __ovld __cnfn as_float16(long8);
7114float16 __ovld __cnfn as_float16(ulong8);
7115float16 __ovld __cnfn as_float16(float16);
7116
7117#ifdef cl_khr_fp64
7118char8 __ovld __cnfn as_char8(double);
7119char16 __ovld __cnfn as_char16(double2);
7120uchar8 __ovld __cnfn as_uchar8(double);
7121uchar16 __ovld __cnfn as_uchar16(double2);
7122short3 __ovld __cnfn as_short3(double);
7123short4 __ovld __cnfn as_short4(double);
7124short8 __ovld __cnfn as_short8(double2);
7125short16 __ovld __cnfn as_short16(double3);
7126short16 __ovld __cnfn as_short16(double4);
7127ushort3 __ovld __cnfn as_ushort3(double);
7128ushort4 __ovld __cnfn as_ushort4(double);
7129ushort8 __ovld __cnfn as_ushort8(double2);
7130ushort16 __ovld __cnfn as_ushort16(double3);
7131ushort16 __ovld __cnfn as_ushort16(double4);
7132int2 __ovld __cnfn as_int2(double);
7133int3 __ovld __cnfn as_int3(double2);
7134int4 __ovld __cnfn as_int4(double2);
7135int8 __ovld __cnfn as_int8(double3);
7136int8 __ovld __cnfn as_int8(double4);
7137int16 __ovld __cnfn as_int16(double8);
7138uint2 __ovld __cnfn as_uint2(double);
7139uint3 __ovld __cnfn as_uint3(double2);
7140uint4 __ovld __cnfn as_uint4(double2);
7141uint8 __ovld __cnfn as_uint8(double3);
7142uint8 __ovld __cnfn as_uint8(double4);
7143uint16 __ovld __cnfn as_uint16(double8);
7144long __ovld __cnfn as_long(double);
7145long2 __ovld __cnfn as_long2(double2);
7146long3 __ovld __cnfn as_long3(double3);
7147long3 __ovld __cnfn as_long3(double4);
7148long4 __ovld __cnfn as_long4(double3);
7149long4 __ovld __cnfn as_long4(double4);
7150long8 __ovld __cnfn as_long8(double8);
7151long16 __ovld __cnfn as_long16(double16);
7152ulong __ovld __cnfn as_ulong(double);
7153ulong2 __ovld __cnfn as_ulong2(double2);
7154ulong3 __ovld __cnfn as_ulong3(double3);
7155ulong3 __ovld __cnfn as_ulong3(double4);
7156ulong4 __ovld __cnfn as_ulong4(double3);
7157ulong4 __ovld __cnfn as_ulong4(double4);
7158ulong8 __ovld __cnfn as_ulong8(double8);
7159ulong16 __ovld __cnfn as_ulong16(double16);
7160float2 __ovld __cnfn as_float2(double);
7161float3 __ovld __cnfn as_float3(double2);
7162float4 __ovld __cnfn as_float4(double2);
7163float8 __ovld __cnfn as_float8(double3);
7164float8 __ovld __cnfn as_float8(double4);
7165float16 __ovld __cnfn as_float16(double8);
7166double __ovld __cnfn as_double(char8);
7167double __ovld __cnfn as_double(uchar8);
7168double __ovld __cnfn as_double(short3);
7169double __ovld __cnfn as_double(short4);
7170double __ovld __cnfn as_double(ushort3);
7171double __ovld __cnfn as_double(ushort4);
7172double __ovld __cnfn as_double(int2);
7173double __ovld __cnfn as_double(uint2);
7174double __ovld __cnfn as_double(long);
7175double __ovld __cnfn as_double(ulong);
7176double __ovld __cnfn as_double(float2);
7177double __ovld __cnfn as_double(double);
7178double2 __ovld __cnfn as_double2(char16);
7179double2 __ovld __cnfn as_double2(uchar16);
7180double2 __ovld __cnfn as_double2(short8);
7181double2 __ovld __cnfn as_double2(ushort8);
7182double2 __ovld __cnfn as_double2(int3);
7183double2 __ovld __cnfn as_double2(int4);
7184double2 __ovld __cnfn as_double2(uint3);
7185double2 __ovld __cnfn as_double2(uint4);
7186double2 __ovld __cnfn as_double2(long2);
7187double2 __ovld __cnfn as_double2(ulong2);
7188double2 __ovld __cnfn as_double2(float3);
7189double2 __ovld __cnfn as_double2(float4);
7190double2 __ovld __cnfn as_double2(double2);
7191double3 __ovld __cnfn as_double3(short16);
7192double3 __ovld __cnfn as_double3(ushort16);
7193double3 __ovld __cnfn as_double3(int8);
7194double3 __ovld __cnfn as_double3(uint8);
7195double3 __ovld __cnfn as_double3(long3);
7196double3 __ovld __cnfn as_double3(long4);
7197double3 __ovld __cnfn as_double3(ulong3);
7198double3 __ovld __cnfn as_double3(ulong4);
7199double3 __ovld __cnfn as_double3(float8);
7200double3 __ovld __cnfn as_double3(double3);
7201double3 __ovld __cnfn as_double3(double4);
7202double4 __ovld __cnfn as_double4(short16);
7203double4 __ovld __cnfn as_double4(ushort16);
7204double4 __ovld __cnfn as_double4(int8);
7205double4 __ovld __cnfn as_double4(uint8);
7206double4 __ovld __cnfn as_double4(long3);
7207double4 __ovld __cnfn as_double4(long4);
7208double4 __ovld __cnfn as_double4(ulong3);
7209double4 __ovld __cnfn as_double4(ulong4);
7210double4 __ovld __cnfn as_double4(float8);
7211double4 __ovld __cnfn as_double4(double3);
7212double4 __ovld __cnfn as_double4(double4);
7213double8 __ovld __cnfn as_double8(int16);
7214double8 __ovld __cnfn as_double8(uint16);
7215double8 __ovld __cnfn as_double8(long8);
7216double8 __ovld __cnfn as_double8(ulong8);
7217double8 __ovld __cnfn as_double8(float16);
7218double8 __ovld __cnfn as_double8(double8);
7219double16 __ovld __cnfn as_double16(long16);
7220double16 __ovld __cnfn as_double16(ulong16);
7221double16 __ovld __cnfn as_double16(double16);
7222#endif //cl_khr_fp64
7223
7224#ifdef cl_khr_fp16
7225char2 __ovld __cnfn as_char2(half);
7226char3 __ovld __cnfn as_char3(half2);
7227char4 __ovld __cnfn as_char4(half2);
7228char8 __ovld __cnfn as_char8(half3);
7229char8 __ovld __cnfn as_char8(half4);
7230char16 __ovld __cnfn as_char16(half8);
7231uchar2 __ovld __cnfn as_uchar2(half);
7232uchar3 __ovld __cnfn as_uchar3(half2);
7233uchar4 __ovld __cnfn as_uchar4(half2);
7234uchar8 __ovld __cnfn as_uchar8(half3);
7235uchar8 __ovld __cnfn as_uchar8(half4);
7236uchar16 __ovld __cnfn as_uchar16(half8);
7237short __ovld __cnfn as_short(half);
7238short2 __ovld __cnfn as_short2(half2);
7239short3 __ovld __cnfn as_short3(half3);
7240short3 __ovld __cnfn as_short3(half4);
7241short4 __ovld __cnfn as_short4(half3);
7242short4 __ovld __cnfn as_short4(half4);
7243short8 __ovld __cnfn as_short8(half8);
7244short16 __ovld __cnfn as_short16(half16);
7245ushort __ovld __cnfn as_ushort(half);
7246ushort2 __ovld __cnfn as_ushort2(half2);
7247ushort3 __ovld __cnfn as_ushort3(half3);
7248ushort3 __ovld __cnfn as_ushort3(half4);
7249ushort4 __ovld __cnfn as_ushort4(half3);
7250ushort4 __ovld __cnfn as_ushort4(half4);
7251ushort8 __ovld __cnfn as_ushort8(half8);
7252ushort16 __ovld __cnfn as_ushort16(half16);
7253int __ovld __cnfn as_int(half2);
7254int2 __ovld __cnfn as_int2(half3);
7255int2 __ovld __cnfn as_int2(half4);
7256int3 __ovld __cnfn as_int3(half8);
7257int4 __ovld __cnfn as_int4(half8);
7258int8 __ovld __cnfn as_int8(half16);
7259uint __ovld __cnfn as_uint(half2);
7260uint2 __ovld __cnfn as_uint2(half3);
7261uint2 __ovld __cnfn as_uint2(half4);
7262uint3 __ovld __cnfn as_uint3(half8);
7263uint4 __ovld __cnfn as_uint4(half8);
7264uint8 __ovld __cnfn as_uint8(half16);
7265long __ovld __cnfn as_long(half3);
7266long __ovld __cnfn as_long(half4);
7267long2 __ovld __cnfn as_long2(half8);
7268long3 __ovld __cnfn as_long3(half16);
7269long4 __ovld __cnfn as_long4(half16);
7270ulong __ovld __cnfn as_ulong(half3);
7271ulong __ovld __cnfn as_ulong(half4);
7272ulong2 __ovld __cnfn as_ulong2(half8);
7273ulong3 __ovld __cnfn as_ulong3(half16);
7274ulong4 __ovld __cnfn as_ulong4(half16);
7275half __ovld __cnfn as_half(char2);
7276half __ovld __cnfn as_half(uchar2);
7277half __ovld __cnfn as_half(short);
7278half __ovld __cnfn as_half(ushort);
7279half __ovld __cnfn as_half(half);
7280half2 __ovld __cnfn as_half2(char3);
7281half2 __ovld __cnfn as_half2(char4);
7282half2 __ovld __cnfn as_half2(uchar3);
7283half2 __ovld __cnfn as_half2(uchar4);
7284half2 __ovld __cnfn as_half2(short2);
7285half2 __ovld __cnfn as_half2(ushort2);
7286half2 __ovld __cnfn as_half2(int);
7287half2 __ovld __cnfn as_half2(uint);
7288half2 __ovld __cnfn as_half2(half2);
7289half2 __ovld __cnfn as_half2(float);
7290half3 __ovld __cnfn as_half3(char8);
7291half3 __ovld __cnfn as_half3(uchar8);
7292half3 __ovld __cnfn as_half3(short3);
7293half3 __ovld __cnfn as_half3(short4);
7294half3 __ovld __cnfn as_half3(ushort3);
7295half3 __ovld __cnfn as_half3(ushort4);
7296half3 __ovld __cnfn as_half3(int2);
7297half3 __ovld __cnfn as_half3(uint2);
7298half3 __ovld __cnfn as_half3(long);
7299half3 __ovld __cnfn as_half3(ulong);
7300half3 __ovld __cnfn as_half3(half3);
7301half3 __ovld __cnfn as_half3(half4);
7302half3 __ovld __cnfn as_half3(float2);
7303half4 __ovld __cnfn as_half4(char8);
7304half4 __ovld __cnfn as_half4(uchar8);
7305half4 __ovld __cnfn as_half4(short3);
7306half4 __ovld __cnfn as_half4(short4);
7307half4 __ovld __cnfn as_half4(ushort3);
7308half4 __ovld __cnfn as_half4(ushort4);
7309half4 __ovld __cnfn as_half4(int2);
7310half4 __ovld __cnfn as_half4(uint2);
7311half4 __ovld __cnfn as_half4(long);
7312half4 __ovld __cnfn as_half4(ulong);
7313half4 __ovld __cnfn as_half4(half3);
7314half4 __ovld __cnfn as_half4(half4);
7315half4 __ovld __cnfn as_half4(float2);
7316half8 __ovld __cnfn as_half8(char16);
7317half8 __ovld __cnfn as_half8(uchar16);
7318half8 __ovld __cnfn as_half8(short8);
7319half8 __ovld __cnfn as_half8(ushort8);
7320half8 __ovld __cnfn as_half8(int3);
7321half8 __ovld __cnfn as_half8(int4);
7322half8 __ovld __cnfn as_half8(uint3);
7323half8 __ovld __cnfn as_half8(uint4);
7324half8 __ovld __cnfn as_half8(long2);
7325half8 __ovld __cnfn as_half8(ulong2);
7326half8 __ovld __cnfn as_half8(half8);
7327half8 __ovld __cnfn as_half8(float3);
7328half8 __ovld __cnfn as_half8(float4);
7329half16 __ovld __cnfn as_half16(short16);
7330half16 __ovld __cnfn as_half16(ushort16);
7331half16 __ovld __cnfn as_half16(int8);
7332half16 __ovld __cnfn as_half16(uint8);
7333half16 __ovld __cnfn as_half16(long3);
7334half16 __ovld __cnfn as_half16(long4);
7335half16 __ovld __cnfn as_half16(ulong3);
7336half16 __ovld __cnfn as_half16(ulong4);
7337half16 __ovld __cnfn as_half16(half16);
7338half16 __ovld __cnfn as_half16(float8);
7339float __ovld __cnfn as_float(half2);
7340float2 __ovld __cnfn as_float2(half3);
7341float2 __ovld __cnfn as_float2(half4);
7342float3 __ovld __cnfn as_float3(half8);
7343float4 __ovld __cnfn as_float4(half8);
7344float8 __ovld __cnfn as_float8(half16);
7345
7346#ifdef cl_khr_fp64
7347half3 __ovld __cnfn as_half3(double);
7348half4 __ovld __cnfn as_half4(double);
7349half8 __ovld __cnfn as_half8(double2);
7350half16 __ovld __cnfn as_half16(double3);
7351half16 __ovld __cnfn as_half16(double4);
7352double __ovld __cnfn as_double(half3);
7353double __ovld __cnfn as_double(half4);
7354double2 __ovld __cnfn as_double2(half8);
7355double3 __ovld __cnfn as_double3(half16);
7356double4 __ovld __cnfn as_double4(half16);
7357#endif //cl_khr_fp64
7358#endif //cl_khr_fp16
7359
7360// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
7361
7362#define __kernel_exec(X, typen) __kernel \
7363 __attribute__((work_group_size_hint(X, 1, 1))) \
7364 __attribute__((vec_type_hint(typen)))
7365
7366#define kernel_exec(X, typen) __kernel \
7367 __attribute__((work_group_size_hint(X, 1, 1))) \
7368 __attribute__((vec_type_hint(typen)))
7369
7370// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
7371
7372/**
7373 * Returns the number of dimensions in use. This is the
7374 * value given to the work_dim argument specified in
7375 * clEnqueueNDRangeKernel.
7376 * For clEnqueueTask, this returns 1.
7377 */
7378uint __ovld __cnfn get_work_dim(void);
7379
7380/**
7381 * Returns the number of global work-items specified for
7382 * dimension identified by dimindx. This value is given by
7383 * the global_work_size argument to
7384 * clEnqueueNDRangeKernel. Valid values of dimindx
7385 * are 0 to get_work_dim() - 1. For other values of
7386 * dimindx, get_global_size() returns 1.
7387 * For clEnqueueTask, this always returns 1.
7388 */
7389size_t __ovld __cnfn get_global_size(uint dimindx);
7390
7391/**
7392 * Returns the unique global work-item ID value for
7393 * dimension identified by dimindx. The global work-item
7394 * ID specifies the work-item ID based on the number of
7395 * global work-items specified to execute the kernel. Valid
7396 * values of dimindx are 0 to get_work_dim() - 1. For
7397 * other values of dimindx, get_global_id() returns 0.
7398 * For clEnqueueTask, this returns 0.
7399 */
7400size_t __ovld __cnfn get_global_id(uint dimindx);
7401
7402/**
7403 * Returns the number of local work-items specified in
7404 * dimension identified by dimindx. This value is given by
7405 * the local_work_size argument to
7406 * clEnqueueNDRangeKernel if local_work_size is not
7407 * NULL; otherwise the OpenCL implementation chooses
7408 * an appropriate local_work_size value which is returned
7409 * by this function. Valid values of dimindx are 0 to
7410 * get_work_dim() - 1. For other values of dimindx,
7411 * get_local_size() returns 1.
7412 * For clEnqueueTask, this always returns 1.
7413 */
7414size_t __ovld __cnfn get_local_size(uint dimindx);
7415
7416/**
7417 * Returns the unique local work-item ID i.e. a work-item
7418 * within a specific work-group for dimension identified by
7419 * dimindx. Valid values of dimindx are 0 to
7420 * get_work_dim() - 1. For other values of dimindx,
7421 * get_local_id() returns 0.
7422 * For clEnqueueTask, this returns 0.
7423 */
7424size_t __ovld __cnfn get_local_id(uint dimindx);
7425
7426/**
7427 * Returns the number of work-groups that will execute a
7428 * kernel for dimension identified by dimindx.
7429 * Valid values of dimindx are 0 to get_work_dim() - 1.
7430 * For other values of dimindx, get_num_groups () returns
7431 * 1.
7432 * For clEnqueueTask, this always returns 1.
7433 */
7434size_t __ovld __cnfn get_num_groups(uint dimindx);
7435
7436/**
7437 * get_group_id returns the work-group ID which is a
7438 * number from 0 .. get_num_groups(dimindx) - 1.
7439 * Valid values of dimindx are 0 to get_work_dim() - 1.
7440 * For other values, get_group_id() returns 0.
7441 * For clEnqueueTask, this returns 0.
7442 */
7443size_t __ovld __cnfn get_group_id(uint dimindx);
7444
7445/**
7446 * get_global_offset returns the offset values specified in
7447 * global_work_offset argument to
7448 * clEnqueueNDRangeKernel.
7449 * Valid values of dimindx are 0 to get_work_dim() - 1.
7450 * For other values, get_global_offset() returns 0.
7451 * For clEnqueueTask, this returns 0.
7452 */
7453size_t __ovld __cnfn get_global_offset(uint dimindx);
7454
7455#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7456size_t __ovld get_enqueued_local_size(uint dimindx);
7457size_t __ovld get_global_linear_id(void);
7458size_t __ovld get_local_linear_id(void);
7459#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7460
7461// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
7462
7463/**
7464 * Arc cosine function.
7465 */
7466float __ovld __cnfn acos(float);
7467float2 __ovld __cnfn acos(float2);
7468float3 __ovld __cnfn acos(float3);
7469float4 __ovld __cnfn acos(float4);
7470float8 __ovld __cnfn acos(float8);
7471float16 __ovld __cnfn acos(float16);
7472#ifdef cl_khr_fp64
7473double __ovld __cnfn acos(double);
7474double2 __ovld __cnfn acos(double2);
7475double3 __ovld __cnfn acos(double3);
7476double4 __ovld __cnfn acos(double4);
7477double8 __ovld __cnfn acos(double8);
7478double16 __ovld __cnfn acos(double16);
7479#endif //cl_khr_fp64
7480#ifdef cl_khr_fp16
7481half __ovld __cnfn acos(half);
7482half2 __ovld __cnfn acos(half2);
7483half3 __ovld __cnfn acos(half3);
7484half4 __ovld __cnfn acos(half4);
7485half8 __ovld __cnfn acos(half8);
7486half16 __ovld __cnfn acos(half16);
7487#endif //cl_khr_fp16
7488
7489/**
7490 * Inverse hyperbolic cosine.
7491 */
7492float __ovld __cnfn acosh(float);
7493float2 __ovld __cnfn acosh(float2);
7494float3 __ovld __cnfn acosh(float3);
7495float4 __ovld __cnfn acosh(float4);
7496float8 __ovld __cnfn acosh(float8);
7497float16 __ovld __cnfn acosh(float16);
7498#ifdef cl_khr_fp64
7499double __ovld __cnfn acosh(double);
7500double2 __ovld __cnfn acosh(double2);
7501double3 __ovld __cnfn acosh(double3);
7502double4 __ovld __cnfn acosh(double4);
7503double8 __ovld __cnfn acosh(double8);
7504double16 __ovld __cnfn acosh(double16);
7505#endif //cl_khr_fp64
7506#ifdef cl_khr_fp16
7507half __ovld __cnfn acosh(half);
7508half2 __ovld __cnfn acosh(half2);
7509half3 __ovld __cnfn acosh(half3);
7510half4 __ovld __cnfn acosh(half4);
7511half8 __ovld __cnfn acosh(half8);
7512half16 __ovld __cnfn acosh(half16);
7513#endif //cl_khr_fp16
7514
7515/**
7516 * Compute acos (x) / PI.
7517 */
7518float __ovld __cnfn acospi(float x);
7519float2 __ovld __cnfn acospi(float2 x);
7520float3 __ovld __cnfn acospi(float3 x);
7521float4 __ovld __cnfn acospi(float4 x);
7522float8 __ovld __cnfn acospi(float8 x);
7523float16 __ovld __cnfn acospi(float16 x);
7524#ifdef cl_khr_fp64
7525double __ovld __cnfn acospi(double x);
7526double2 __ovld __cnfn acospi(double2 x);
7527double3 __ovld __cnfn acospi(double3 x);
7528double4 __ovld __cnfn acospi(double4 x);
7529double8 __ovld __cnfn acospi(double8 x);
7530double16 __ovld __cnfn acospi(double16 x);
7531#endif //cl_khr_fp64
7532#ifdef cl_khr_fp16
7533half __ovld __cnfn acospi(half x);
7534half2 __ovld __cnfn acospi(half2 x);
7535half3 __ovld __cnfn acospi(half3 x);
7536half4 __ovld __cnfn acospi(half4 x);
7537half8 __ovld __cnfn acospi(half8 x);
7538half16 __ovld __cnfn acospi(half16 x);
7539#endif //cl_khr_fp16
7540
7541/**
7542 * Arc sine function.
7543 */
7544float __ovld __cnfn asin(float);
7545float2 __ovld __cnfn asin(float2);
7546float3 __ovld __cnfn asin(float3);
7547float4 __ovld __cnfn asin(float4);
7548float8 __ovld __cnfn asin(float8);
7549float16 __ovld __cnfn asin(float16);
7550#ifdef cl_khr_fp64
7551double __ovld __cnfn asin(double);
7552double2 __ovld __cnfn asin(double2);
7553double3 __ovld __cnfn asin(double3);
7554double4 __ovld __cnfn asin(double4);
7555double8 __ovld __cnfn asin(double8);
7556double16 __ovld __cnfn asin(double16);
7557#endif //cl_khr_fp64
7558#ifdef cl_khr_fp16
7559half __ovld __cnfn asin(half);
7560half2 __ovld __cnfn asin(half2);
7561half3 __ovld __cnfn asin(half3);
7562half4 __ovld __cnfn asin(half4);
7563half8 __ovld __cnfn asin(half8);
7564half16 __ovld __cnfn asin(half16);
7565#endif //cl_khr_fp16
7566
7567/**
7568 * Inverse hyperbolic sine.
7569 */
7570float __ovld __cnfn asinh(float);
7571float2 __ovld __cnfn asinh(float2);
7572float3 __ovld __cnfn asinh(float3);
7573float4 __ovld __cnfn asinh(float4);
7574float8 __ovld __cnfn asinh(float8);
7575float16 __ovld __cnfn asinh(float16);
7576#ifdef cl_khr_fp64
7577double __ovld __cnfn asinh(double);
7578double2 __ovld __cnfn asinh(double2);
7579double3 __ovld __cnfn asinh(double3);
7580double4 __ovld __cnfn asinh(double4);
7581double8 __ovld __cnfn asinh(double8);
7582double16 __ovld __cnfn asinh(double16);
7583#endif //cl_khr_fp64
7584#ifdef cl_khr_fp16
7585half __ovld __cnfn asinh(half);
7586half2 __ovld __cnfn asinh(half2);
7587half3 __ovld __cnfn asinh(half3);
7588half4 __ovld __cnfn asinh(half4);
7589half8 __ovld __cnfn asinh(half8);
7590half16 __ovld __cnfn asinh(half16);
7591#endif //cl_khr_fp16
7592
7593/**
7594 * Compute asin (x) / PI.
7595 */
7596float __ovld __cnfn asinpi(float x);
7597float2 __ovld __cnfn asinpi(float2 x);
7598float3 __ovld __cnfn asinpi(float3 x);
7599float4 __ovld __cnfn asinpi(float4 x);
7600float8 __ovld __cnfn asinpi(float8 x);
7601float16 __ovld __cnfn asinpi(float16 x);
7602#ifdef cl_khr_fp64
7603double __ovld __cnfn asinpi(double x);
7604double2 __ovld __cnfn asinpi(double2 x);
7605double3 __ovld __cnfn asinpi(double3 x);
7606double4 __ovld __cnfn asinpi(double4 x);
7607double8 __ovld __cnfn asinpi(double8 x);
7608double16 __ovld __cnfn asinpi(double16 x);
7609#endif //cl_khr_fp64
7610#ifdef cl_khr_fp16
7611half __ovld __cnfn asinpi(half x);
7612half2 __ovld __cnfn asinpi(half2 x);
7613half3 __ovld __cnfn asinpi(half3 x);
7614half4 __ovld __cnfn asinpi(half4 x);
7615half8 __ovld __cnfn asinpi(half8 x);
7616half16 __ovld __cnfn asinpi(half16 x);
7617#endif //cl_khr_fp16
7618
7619/**
7620 * Arc tangent function.
7621 */
7622float __ovld __cnfn atan(float y_over_x);
7623float2 __ovld __cnfn atan(float2 y_over_x);
7624float3 __ovld __cnfn atan(float3 y_over_x);
7625float4 __ovld __cnfn atan(float4 y_over_x);
7626float8 __ovld __cnfn atan(float8 y_over_x);
7627float16 __ovld __cnfn atan(float16 y_over_x);
7628#ifdef cl_khr_fp64
7629double __ovld __cnfn atan(double y_over_x);
7630double2 __ovld __cnfn atan(double2 y_over_x);
7631double3 __ovld __cnfn atan(double3 y_over_x);
7632double4 __ovld __cnfn atan(double4 y_over_x);
7633double8 __ovld __cnfn atan(double8 y_over_x);
7634double16 __ovld __cnfn atan(double16 y_over_x);
7635#endif //cl_khr_fp64
7636#ifdef cl_khr_fp16
7637half __ovld __cnfn atan(half y_over_x);
7638half2 __ovld __cnfn atan(half2 y_over_x);
7639half3 __ovld __cnfn atan(half3 y_over_x);
7640half4 __ovld __cnfn atan(half4 y_over_x);
7641half8 __ovld __cnfn atan(half8 y_over_x);
7642half16 __ovld __cnfn atan(half16 y_over_x);
7643#endif //cl_khr_fp16
7644
7645/**
7646 * Arc tangent of y / x.
7647 */
7648float __ovld __cnfn atan2(float y, float x);
7649float2 __ovld __cnfn atan2(float2 y, float2 x);
7650float3 __ovld __cnfn atan2(float3 y, float3 x);
7651float4 __ovld __cnfn atan2(float4 y, float4 x);
7652float8 __ovld __cnfn atan2(float8 y, float8 x);
7653float16 __ovld __cnfn atan2(float16 y, float16 x);
7654#ifdef cl_khr_fp64
7655double __ovld __cnfn atan2(double y, double x);
7656double2 __ovld __cnfn atan2(double2 y, double2 x);
7657double3 __ovld __cnfn atan2(double3 y, double3 x);
7658double4 __ovld __cnfn atan2(double4 y, double4 x);
7659double8 __ovld __cnfn atan2(double8 y, double8 x);
7660double16 __ovld __cnfn atan2(double16 y, double16 x);
7661#endif //cl_khr_fp64
7662#ifdef cl_khr_fp16
7663half __ovld __cnfn atan2(half y, half x);
7664half2 __ovld __cnfn atan2(half2 y, half2 x);
7665half3 __ovld __cnfn atan2(half3 y, half3 x);
7666half4 __ovld __cnfn atan2(half4 y, half4 x);
7667half8 __ovld __cnfn atan2(half8 y, half8 x);
7668half16 __ovld __cnfn atan2(half16 y, half16 x);
7669#endif //cl_khr_fp16
7670
7671/**
7672 * Hyperbolic arc tangent.
7673 */
7674float __ovld __cnfn atanh(float);
7675float2 __ovld __cnfn atanh(float2);
7676float3 __ovld __cnfn atanh(float3);
7677float4 __ovld __cnfn atanh(float4);
7678float8 __ovld __cnfn atanh(float8);
7679float16 __ovld __cnfn atanh(float16);
7680#ifdef cl_khr_fp64
7681double __ovld __cnfn atanh(double);
7682double2 __ovld __cnfn atanh(double2);
7683double3 __ovld __cnfn atanh(double3);
7684double4 __ovld __cnfn atanh(double4);
7685double8 __ovld __cnfn atanh(double8);
7686double16 __ovld __cnfn atanh(double16);
7687#endif //cl_khr_fp64
7688#ifdef cl_khr_fp16
7689half __ovld __cnfn atanh(half);
7690half2 __ovld __cnfn atanh(half2);
7691half3 __ovld __cnfn atanh(half3);
7692half4 __ovld __cnfn atanh(half4);
7693half8 __ovld __cnfn atanh(half8);
7694half16 __ovld __cnfn atanh(half16);
7695#endif //cl_khr_fp16
7696
7697/**
7698 * Compute atan (x) / PI.
7699 */
7700float __ovld __cnfn atanpi(float x);
7701float2 __ovld __cnfn atanpi(float2 x);
7702float3 __ovld __cnfn atanpi(float3 x);
7703float4 __ovld __cnfn atanpi(float4 x);
7704float8 __ovld __cnfn atanpi(float8 x);
7705float16 __ovld __cnfn atanpi(float16 x);
7706#ifdef cl_khr_fp64
7707double __ovld __cnfn atanpi(double x);
7708double2 __ovld __cnfn atanpi(double2 x);
7709double3 __ovld __cnfn atanpi(double3 x);
7710double4 __ovld __cnfn atanpi(double4 x);
7711double8 __ovld __cnfn atanpi(double8 x);
7712double16 __ovld __cnfn atanpi(double16 x);
7713#endif //cl_khr_fp64
7714#ifdef cl_khr_fp16
7715half __ovld __cnfn atanpi(half x);
7716half2 __ovld __cnfn atanpi(half2 x);
7717half3 __ovld __cnfn atanpi(half3 x);
7718half4 __ovld __cnfn atanpi(half4 x);
7719half8 __ovld __cnfn atanpi(half8 x);
7720half16 __ovld __cnfn atanpi(half16 x);
7721#endif //cl_khr_fp16
7722
7723/**
7724 * Compute atan2 (y, x) / PI.
7725 */
7726float __ovld __cnfn atan2pi(float y, float x);
7727float2 __ovld __cnfn atan2pi(float2 y, float2 x);
7728float3 __ovld __cnfn atan2pi(float3 y, float3 x);
7729float4 __ovld __cnfn atan2pi(float4 y, float4 x);
7730float8 __ovld __cnfn atan2pi(float8 y, float8 x);
7731float16 __ovld __cnfn atan2pi(float16 y, float16 x);
7732#ifdef cl_khr_fp64
7733double __ovld __cnfn atan2pi(double y, double x);
7734double2 __ovld __cnfn atan2pi(double2 y, double2 x);
7735double3 __ovld __cnfn atan2pi(double3 y, double3 x);
7736double4 __ovld __cnfn atan2pi(double4 y, double4 x);
7737double8 __ovld __cnfn atan2pi(double8 y, double8 x);
7738double16 __ovld __cnfn atan2pi(double16 y, double16 x);
7739#endif //cl_khr_fp64
7740#ifdef cl_khr_fp16
7741half __ovld __cnfn atan2pi(half y, half x);
7742half2 __ovld __cnfn atan2pi(half2 y, half2 x);
7743half3 __ovld __cnfn atan2pi(half3 y, half3 x);
7744half4 __ovld __cnfn atan2pi(half4 y, half4 x);
7745half8 __ovld __cnfn atan2pi(half8 y, half8 x);
7746half16 __ovld __cnfn atan2pi(half16 y, half16 x);
7747#endif //cl_khr_fp16
7748
7749/**
7750 * Compute cube-root.
7751 */
7752float __ovld __cnfn cbrt(float);
7753float2 __ovld __cnfn cbrt(float2);
7754float3 __ovld __cnfn cbrt(float3);
7755float4 __ovld __cnfn cbrt(float4);
7756float8 __ovld __cnfn cbrt(float8);
7757float16 __ovld __cnfn cbrt(float16);
7758#ifdef cl_khr_fp64
7759double __ovld __cnfn cbrt(double);
7760double2 __ovld __cnfn cbrt(double2);
7761double3 __ovld __cnfn cbrt(double3);
7762double4 __ovld __cnfn cbrt(double4);
7763double8 __ovld __cnfn cbrt(double8);
7764double16 __ovld __cnfn cbrt(double16);
7765#endif //cl_khr_fp64
7766#ifdef cl_khr_fp16
7767half __ovld __cnfn cbrt(half);
7768half2 __ovld __cnfn cbrt(half2);
7769half3 __ovld __cnfn cbrt(half3);
7770half4 __ovld __cnfn cbrt(half4);
7771half8 __ovld __cnfn cbrt(half8);
7772half16 __ovld __cnfn cbrt(half16);
7773#endif //cl_khr_fp16
7774
7775/**
7776 * Round to integral value using the round to positive
7777 * infinity rounding mode.
7778 */
7779float __ovld __cnfn ceil(float);
7780float2 __ovld __cnfn ceil(float2);
7781float3 __ovld __cnfn ceil(float3);
7782float4 __ovld __cnfn ceil(float4);
7783float8 __ovld __cnfn ceil(float8);
7784float16 __ovld __cnfn ceil(float16);
7785#ifdef cl_khr_fp64
7786double __ovld __cnfn ceil(double);
7787double2 __ovld __cnfn ceil(double2);
7788double3 __ovld __cnfn ceil(double3);
7789double4 __ovld __cnfn ceil(double4);
7790double8 __ovld __cnfn ceil(double8);
7791double16 __ovld __cnfn ceil(double16);
7792#endif //cl_khr_fp64
7793#ifdef cl_khr_fp16
7794half __ovld __cnfn ceil(half);
7795half2 __ovld __cnfn ceil(half2);
7796half3 __ovld __cnfn ceil(half3);
7797half4 __ovld __cnfn ceil(half4);
7798half8 __ovld __cnfn ceil(half8);
7799half16 __ovld __cnfn ceil(half16);
7800#endif //cl_khr_fp16
7801
7802/**
7803 * Returns x with its sign changed to match the sign of y.
7804 */
7805float __ovld __cnfn copysign(float x, float y);
7806float2 __ovld __cnfn copysign(float2 x, float2 y);
7807float3 __ovld __cnfn copysign(float3 x, float3 y);
7808float4 __ovld __cnfn copysign(float4 x, float4 y);
7809float8 __ovld __cnfn copysign(float8 x, float8 y);
7810float16 __ovld __cnfn copysign(float16 x, float16 y);
7811#ifdef cl_khr_fp64
7812double __ovld __cnfn copysign(double x, double y);
7813double2 __ovld __cnfn copysign(double2 x, double2 y);
7814double3 __ovld __cnfn copysign(double3 x, double3 y);
7815double4 __ovld __cnfn copysign(double4 x, double4 y);
7816double8 __ovld __cnfn copysign(double8 x, double8 y);
7817double16 __ovld __cnfn copysign(double16 x, double16 y);
7818#endif //cl_khr_fp64
7819#ifdef cl_khr_fp16
7820half __ovld __cnfn copysign(half x, half y);
7821half2 __ovld __cnfn copysign(half2 x, half2 y);
7822half3 __ovld __cnfn copysign(half3 x, half3 y);
7823half4 __ovld __cnfn copysign(half4 x, half4 y);
7824half8 __ovld __cnfn copysign(half8 x, half8 y);
7825half16 __ovld __cnfn copysign(half16 x, half16 y);
7826#endif //cl_khr_fp16
7827
7828/**
7829 * Compute cosine.
7830 */
7831float __ovld __cnfn cos(float);
7832float2 __ovld __cnfn cos(float2);
7833float3 __ovld __cnfn cos(float3);
7834float4 __ovld __cnfn cos(float4);
7835float8 __ovld __cnfn cos(float8);
7836float16 __ovld __cnfn cos(float16);
7837#ifdef cl_khr_fp64
7838double __ovld __cnfn cos(double);
7839double2 __ovld __cnfn cos(double2);
7840double3 __ovld __cnfn cos(double3);
7841double4 __ovld __cnfn cos(double4);
7842double8 __ovld __cnfn cos(double8);
7843double16 __ovld __cnfn cos(double16);
7844#endif //cl_khr_fp64
7845#ifdef cl_khr_fp16
7846half __ovld __cnfn cos(half);
7847half2 __ovld __cnfn cos(half2);
7848half3 __ovld __cnfn cos(half3);
7849half4 __ovld __cnfn cos(half4);
7850half8 __ovld __cnfn cos(half8);
7851half16 __ovld __cnfn cos(half16);
7852#endif //cl_khr_fp16
7853
7854/**
7855 * Compute hyperbolic cosine.
7856 */
7857float __ovld __cnfn cosh(float);
7858float2 __ovld __cnfn cosh(float2);
7859float3 __ovld __cnfn cosh(float3);
7860float4 __ovld __cnfn cosh(float4);
7861float8 __ovld __cnfn cosh(float8);
7862float16 __ovld __cnfn cosh(float16);
7863#ifdef cl_khr_fp64
7864double __ovld __cnfn cosh(double);
7865double2 __ovld __cnfn cosh(double2);
7866double3 __ovld __cnfn cosh(double3);
7867double4 __ovld __cnfn cosh(double4);
7868double8 __ovld __cnfn cosh(double8);
7869double16 __ovld __cnfn cosh(double16);
7870#endif //cl_khr_fp64
7871#ifdef cl_khr_fp16
7872half __ovld __cnfn cosh(half);
7873half2 __ovld __cnfn cosh(half2);
7874half3 __ovld __cnfn cosh(half3);
7875half4 __ovld __cnfn cosh(half4);
7876half8 __ovld __cnfn cosh(half8);
7877half16 __ovld __cnfn cosh(half16);
7878#endif //cl_khr_fp16
7879
7880/**
7881 * Compute cos (PI * x).
7882 */
7883float __ovld __cnfn cospi(float x);
7884float2 __ovld __cnfn cospi(float2 x);
7885float3 __ovld __cnfn cospi(float3 x);
7886float4 __ovld __cnfn cospi(float4 x);
7887float8 __ovld __cnfn cospi(float8 x);
7888float16 __ovld __cnfn cospi(float16 x);
7889#ifdef cl_khr_fp64
7890double __ovld __cnfn cospi(double x);
7891double2 __ovld __cnfn cospi(double2 x);
7892double3 __ovld __cnfn cospi(double3 x);
7893double4 __ovld __cnfn cospi(double4 x);
7894double8 __ovld __cnfn cospi(double8 x);
7895double16 __ovld __cnfn cospi(double16 x);
7896#endif //cl_khr_fp64
7897#ifdef cl_khr_fp16
7898half __ovld __cnfn cospi(half x);
7899half2 __ovld __cnfn cospi(half2 x);
7900half3 __ovld __cnfn cospi(half3 x);
7901half4 __ovld __cnfn cospi(half4 x);
7902half8 __ovld __cnfn cospi(half8 x);
7903half16 __ovld __cnfn cospi(half16 x);
7904#endif //cl_khr_fp16
7905
7906/**
7907 * Complementary error function.
7908 */
7909float __ovld __cnfn erfc(float);
7910float2 __ovld __cnfn erfc(float2);
7911float3 __ovld __cnfn erfc(float3);
7912float4 __ovld __cnfn erfc(float4);
7913float8 __ovld __cnfn erfc(float8);
7914float16 __ovld __cnfn erfc(float16);
7915#ifdef cl_khr_fp64
7916double __ovld __cnfn erfc(double);
7917double2 __ovld __cnfn erfc(double2);
7918double3 __ovld __cnfn erfc(double3);
7919double4 __ovld __cnfn erfc(double4);
7920double8 __ovld __cnfn erfc(double8);
7921double16 __ovld __cnfn erfc(double16);
7922#endif //cl_khr_fp64
7923#ifdef cl_khr_fp16
7924half __ovld __cnfn erfc(half);
7925half2 __ovld __cnfn erfc(half2);
7926half3 __ovld __cnfn erfc(half3);
7927half4 __ovld __cnfn erfc(half4);
7928half8 __ovld __cnfn erfc(half8);
7929half16 __ovld __cnfn erfc(half16);
7930#endif //cl_khr_fp16
7931
7932/**
7933 * Error function encountered in integrating the
7934 * normal distribution.
7935 */
7936float __ovld __cnfn erf(float);
7937float2 __ovld __cnfn erf(float2);
7938float3 __ovld __cnfn erf(float3);
7939float4 __ovld __cnfn erf(float4);
7940float8 __ovld __cnfn erf(float8);
7941float16 __ovld __cnfn erf(float16);
7942#ifdef cl_khr_fp64
7943double __ovld __cnfn erf(double);
7944double2 __ovld __cnfn erf(double2);
7945double3 __ovld __cnfn erf(double3);
7946double4 __ovld __cnfn erf(double4);
7947double8 __ovld __cnfn erf(double8);
7948double16 __ovld __cnfn erf(double16);
7949#endif //cl_khr_fp64
7950#ifdef cl_khr_fp16
7951half __ovld __cnfn erf(half);
7952half2 __ovld __cnfn erf(half2);
7953half3 __ovld __cnfn erf(half3);
7954half4 __ovld __cnfn erf(half4);
7955half8 __ovld __cnfn erf(half8);
7956half16 __ovld __cnfn erf(half16);
7957#endif //cl_khr_fp16
7958
7959/**
7960 * Compute the base e exponential function of x.
7961 */
7962float __ovld __cnfn exp(float x);
7963float2 __ovld __cnfn exp(float2 x);
7964float3 __ovld __cnfn exp(float3 x);
7965float4 __ovld __cnfn exp(float4 x);
7966float8 __ovld __cnfn exp(float8 x);
7967float16 __ovld __cnfn exp(float16 x);
7968#ifdef cl_khr_fp64
7969double __ovld __cnfn exp(double x);
7970double2 __ovld __cnfn exp(double2 x);
7971double3 __ovld __cnfn exp(double3 x);
7972double4 __ovld __cnfn exp(double4 x);
7973double8 __ovld __cnfn exp(double8 x);
7974double16 __ovld __cnfn exp(double16 x);
7975#endif //cl_khr_fp64
7976#ifdef cl_khr_fp16
7977half __ovld __cnfn exp(half x);
7978half2 __ovld __cnfn exp(half2 x);
7979half3 __ovld __cnfn exp(half3 x);
7980half4 __ovld __cnfn exp(half4 x);
7981half8 __ovld __cnfn exp(half8 x);
7982half16 __ovld __cnfn exp(half16 x);
7983#endif //cl_khr_fp16
7984
7985/**
7986 * Exponential base 2 function.
7987 */
7988float __ovld __cnfn exp2(float);
7989float2 __ovld __cnfn exp2(float2);
7990float3 __ovld __cnfn exp2(float3);
7991float4 __ovld __cnfn exp2(float4);
7992float8 __ovld __cnfn exp2(float8);
7993float16 __ovld __cnfn exp2(float16);
7994#ifdef cl_khr_fp64
7995double __ovld __cnfn exp2(double);
7996double2 __ovld __cnfn exp2(double2);
7997double3 __ovld __cnfn exp2(double3);
7998double4 __ovld __cnfn exp2(double4);
7999double8 __ovld __cnfn exp2(double8);
8000double16 __ovld __cnfn exp2(double16);
8001#endif //cl_khr_fp64
8002#ifdef cl_khr_fp16
8003half __ovld __cnfn exp2(half);
8004half2 __ovld __cnfn exp2(half2);
8005half3 __ovld __cnfn exp2(half3);
8006half4 __ovld __cnfn exp2(half4);
8007half8 __ovld __cnfn exp2(half8);
8008half16 __ovld __cnfn exp2(half16);
8009#endif //cl_khr_fp16
8010
8011/**
8012 * Exponential base 10 function.
8013 */
8014float __ovld __cnfn exp10(float);
8015float2 __ovld __cnfn exp10(float2);
8016float3 __ovld __cnfn exp10(float3);
8017float4 __ovld __cnfn exp10(float4);
8018float8 __ovld __cnfn exp10(float8);
8019float16 __ovld __cnfn exp10(float16);
8020#ifdef cl_khr_fp64
8021double __ovld __cnfn exp10(double);
8022double2 __ovld __cnfn exp10(double2);
8023double3 __ovld __cnfn exp10(double3);
8024double4 __ovld __cnfn exp10(double4);
8025double8 __ovld __cnfn exp10(double8);
8026double16 __ovld __cnfn exp10(double16);
8027#endif //cl_khr_fp64
8028#ifdef cl_khr_fp16
8029half __ovld __cnfn exp10(half);
8030half2 __ovld __cnfn exp10(half2);
8031half3 __ovld __cnfn exp10(half3);
8032half4 __ovld __cnfn exp10(half4);
8033half8 __ovld __cnfn exp10(half8);
8034half16 __ovld __cnfn exp10(half16);
8035#endif //cl_khr_fp16
8036
8037/**
8038 * Compute e^x- 1.0.
8039 */
8040float __ovld __cnfn expm1(float x);
8041float2 __ovld __cnfn expm1(float2 x);
8042float3 __ovld __cnfn expm1(float3 x);
8043float4 __ovld __cnfn expm1(float4 x);
8044float8 __ovld __cnfn expm1(float8 x);
8045float16 __ovld __cnfn expm1(float16 x);
8046#ifdef cl_khr_fp64
8047double __ovld __cnfn expm1(double x);
8048double2 __ovld __cnfn expm1(double2 x);
8049double3 __ovld __cnfn expm1(double3 x);
8050double4 __ovld __cnfn expm1(double4 x);
8051double8 __ovld __cnfn expm1(double8 x);
8052double16 __ovld __cnfn expm1(double16 x);
8053#endif //cl_khr_fp64
8054#ifdef cl_khr_fp16
8055half __ovld __cnfn expm1(half x);
8056half2 __ovld __cnfn expm1(half2 x);
8057half3 __ovld __cnfn expm1(half3 x);
8058half4 __ovld __cnfn expm1(half4 x);
8059half8 __ovld __cnfn expm1(half8 x);
8060half16 __ovld __cnfn expm1(half16 x);
8061#endif //cl_khr_fp16
8062
8063/**
8064 * Compute absolute value of a floating-point number.
8065 */
8066float __ovld __cnfn fabs(float);
8067float2 __ovld __cnfn fabs(float2);
8068float3 __ovld __cnfn fabs(float3);
8069float4 __ovld __cnfn fabs(float4);
8070float8 __ovld __cnfn fabs(float8);
8071float16 __ovld __cnfn fabs(float16);
8072#ifdef cl_khr_fp64
8073double __ovld __cnfn fabs(double);
8074double2 __ovld __cnfn fabs(double2);
8075double3 __ovld __cnfn fabs(double3);
8076double4 __ovld __cnfn fabs(double4);
8077double8 __ovld __cnfn fabs(double8);
8078double16 __ovld __cnfn fabs(double16);
8079#endif //cl_khr_fp64
8080#ifdef cl_khr_fp16
8081half __ovld __cnfn fabs(half);
8082half2 __ovld __cnfn fabs(half2);
8083half3 __ovld __cnfn fabs(half3);
8084half4 __ovld __cnfn fabs(half4);
8085half8 __ovld __cnfn fabs(half8);
8086half16 __ovld __cnfn fabs(half16);
8087#endif //cl_khr_fp16
8088
8089/**
8090 * x - y if x > y, +0 if x is less than or equal to y.
8091 */
8092float __ovld __cnfn fdim(float x, float y);
8093float2 __ovld __cnfn fdim(float2 x, float2 y);
8094float3 __ovld __cnfn fdim(float3 x, float3 y);
8095float4 __ovld __cnfn fdim(float4 x, float4 y);
8096float8 __ovld __cnfn fdim(float8 x, float8 y);
8097float16 __ovld __cnfn fdim(float16 x, float16 y);
8098#ifdef cl_khr_fp64
8099double __ovld __cnfn fdim(double x, double y);
8100double2 __ovld __cnfn fdim(double2 x, double2 y);
8101double3 __ovld __cnfn fdim(double3 x, double3 y);
8102double4 __ovld __cnfn fdim(double4 x, double4 y);
8103double8 __ovld __cnfn fdim(double8 x, double8 y);
8104double16 __ovld __cnfn fdim(double16 x, double16 y);
8105#endif //cl_khr_fp64
8106#ifdef cl_khr_fp16
8107half __ovld __cnfn fdim(half x, half y);
8108half2 __ovld __cnfn fdim(half2 x, half2 y);
8109half3 __ovld __cnfn fdim(half3 x, half3 y);
8110half4 __ovld __cnfn fdim(half4 x, half4 y);
8111half8 __ovld __cnfn fdim(half8 x, half8 y);
8112half16 __ovld __cnfn fdim(half16 x, half16 y);
8113#endif //cl_khr_fp16
8114
8115/**
8116 * Round to integral value using the round to -ve
8117 * infinity rounding mode.
8118 */
8119float __ovld __cnfn floor(float);
8120float2 __ovld __cnfn floor(float2);
8121float3 __ovld __cnfn floor(float3);
8122float4 __ovld __cnfn floor(float4);
8123float8 __ovld __cnfn floor(float8);
8124float16 __ovld __cnfn floor(float16);
8125#ifdef cl_khr_fp64
8126double __ovld __cnfn floor(double);
8127double2 __ovld __cnfn floor(double2);
8128double3 __ovld __cnfn floor(double3);
8129double4 __ovld __cnfn floor(double4);
8130double8 __ovld __cnfn floor(double8);
8131double16 __ovld __cnfn floor(double16);
8132#endif //cl_khr_fp64
8133#ifdef cl_khr_fp16
8134half __ovld __cnfn floor(half);
8135half2 __ovld __cnfn floor(half2);
8136half3 __ovld __cnfn floor(half3);
8137half4 __ovld __cnfn floor(half4);
8138half8 __ovld __cnfn floor(half8);
8139half16 __ovld __cnfn floor(half16);
8140#endif //cl_khr_fp16
8141
8142/**
8143 * Returns the correctly rounded floating-point
8144 * representation of the sum of c with the infinitely
8145 * precise product of a and b. Rounding of
8146 * intermediate products shall not occur. Edge case
8147 * behavior is per the IEEE 754-2008 standard.
8148 */
8149float __ovld __cnfn fma(float a, float b, float c);
8150float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
8151float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
8152float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
8153float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
8154float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
8155#ifdef cl_khr_fp64
8156double __ovld __cnfn fma(double a, double b, double c);
8157double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
8158double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
8159double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
8160double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
8161double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
8162#endif //cl_khr_fp64
8163#ifdef cl_khr_fp16
8164half __ovld __cnfn fma(half a, half b, half c);
8165half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
8166half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
8167half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
8168half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
8169half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
8170#endif //cl_khr_fp16
8171
8172/**
8173 * Returns y if x < y, otherwise it returns x. If one
8174 * argument is a NaN, fmax() returns the other
8175 * argument. If both arguments are NaNs, fmax()
8176 * returns a NaN.
8177 */
8178float __ovld __cnfn fmax(float x, float y);
8179float2 __ovld __cnfn fmax(float2 x, float2 y);
8180float3 __ovld __cnfn fmax(float3 x, float3 y);
8181float4 __ovld __cnfn fmax(float4 x, float4 y);
8182float8 __ovld __cnfn fmax(float8 x, float8 y);
8183float16 __ovld __cnfn fmax(float16 x, float16 y);
8184float2 __ovld __cnfn fmax(float2 x, float y);
8185float3 __ovld __cnfn fmax(float3 x, float y);
8186float4 __ovld __cnfn fmax(float4 x, float y);
8187float8 __ovld __cnfn fmax(float8 x, float y);
8188float16 __ovld __cnfn fmax(float16 x, float y);
8189#ifdef cl_khr_fp64
8190double __ovld __cnfn fmax(double x, double y);
8191double2 __ovld __cnfn fmax(double2 x, double2 y);
8192double3 __ovld __cnfn fmax(double3 x, double3 y);
8193double4 __ovld __cnfn fmax(double4 x, double4 y);
8194double8 __ovld __cnfn fmax(double8 x, double8 y);
8195double16 __ovld __cnfn fmax(double16 x, double16 y);
8196double2 __ovld __cnfn fmax(double2 x, double y);
8197double3 __ovld __cnfn fmax(double3 x, double y);
8198double4 __ovld __cnfn fmax(double4 x, double y);
8199double8 __ovld __cnfn fmax(double8 x, double y);
8200double16 __ovld __cnfn fmax(double16 x, double y);
8201#endif //cl_khr_fp64
8202#ifdef cl_khr_fp16
8203half __ovld __cnfn fmax(half x, half y);
8204half2 __ovld __cnfn fmax(half2 x, half2 y);
8205half3 __ovld __cnfn fmax(half3 x, half3 y);
8206half4 __ovld __cnfn fmax(half4 x, half4 y);
8207half8 __ovld __cnfn fmax(half8 x, half8 y);
8208half16 __ovld __cnfn fmax(half16 x, half16 y);
8209half2 __ovld __cnfn fmax(half2 x, half y);
8210half3 __ovld __cnfn fmax(half3 x, half y);
8211half4 __ovld __cnfn fmax(half4 x, half y);
8212half8 __ovld __cnfn fmax(half8 x, half y);
8213half16 __ovld __cnfn fmax(half16 x, half y);
8214#endif //cl_khr_fp16
8215
8216/**
8217 * Returns y if y < x, otherwise it returns x. If one
8218 * argument is a NaN, fmin() returns the other
8219 * argument. If both arguments are NaNs, fmin()
8220 * returns a NaN.
8221 */
8222float __ovld __cnfn fmin(float x, float y);
8223float2 __ovld __cnfn fmin(float2 x, float2 y);
8224float3 __ovld __cnfn fmin(float3 x, float3 y);
8225float4 __ovld __cnfn fmin(float4 x, float4 y);
8226float8 __ovld __cnfn fmin(float8 x, float8 y);
8227float16 __ovld __cnfn fmin(float16 x, float16 y);
8228float2 __ovld __cnfn fmin(float2 x, float y);
8229float3 __ovld __cnfn fmin(float3 x, float y);
8230float4 __ovld __cnfn fmin(float4 x, float y);
8231float8 __ovld __cnfn fmin(float8 x, float y);
8232float16 __ovld __cnfn fmin(float16 x, float y);
8233#ifdef cl_khr_fp64
8234double __ovld __cnfn fmin(double x, double y);
8235double2 __ovld __cnfn fmin(double2 x, double2 y);
8236double3 __ovld __cnfn fmin(double3 x, double3 y);
8237double4 __ovld __cnfn fmin(double4 x, double4 y);
8238double8 __ovld __cnfn fmin(double8 x, double8 y);
8239double16 __ovld __cnfn fmin(double16 x, double16 y);
8240double2 __ovld __cnfn fmin(double2 x, double y);
8241double3 __ovld __cnfn fmin(double3 x, double y);
8242double4 __ovld __cnfn fmin(double4 x, double y);
8243double8 __ovld __cnfn fmin(double8 x, double y);
8244double16 __ovld __cnfn fmin(double16 x, double y);
8245#endif //cl_khr_fp64
8246#ifdef cl_khr_fp16
8247half __ovld __cnfn fmin(half x, half y);
8248half2 __ovld __cnfn fmin(half2 x, half2 y);
8249half3 __ovld __cnfn fmin(half3 x, half3 y);
8250half4 __ovld __cnfn fmin(half4 x, half4 y);
8251half8 __ovld __cnfn fmin(half8 x, half8 y);
8252half16 __ovld __cnfn fmin(half16 x, half16 y);
8253half2 __ovld __cnfn fmin(half2 x, half y);
8254half3 __ovld __cnfn fmin(half3 x, half y);
8255half4 __ovld __cnfn fmin(half4 x, half y);
8256half8 __ovld __cnfn fmin(half8 x, half y);
8257half16 __ovld __cnfn fmin(half16 x, half y);
8258#endif //cl_khr_fp16
8259
8260/**
8261 * Modulus. Returns x - y * trunc (x/y).
8262 */
8263float __ovld __cnfn fmod(float x, float y);
8264float2 __ovld __cnfn fmod(float2 x, float2 y);
8265float3 __ovld __cnfn fmod(float3 x, float3 y);
8266float4 __ovld __cnfn fmod(float4 x, float4 y);
8267float8 __ovld __cnfn fmod(float8 x, float8 y);
8268float16 __ovld __cnfn fmod(float16 x, float16 y);
8269#ifdef cl_khr_fp64
8270double __ovld __cnfn fmod(double x, double y);
8271double2 __ovld __cnfn fmod(double2 x, double2 y);
8272double3 __ovld __cnfn fmod(double3 x, double3 y);
8273double4 __ovld __cnfn fmod(double4 x, double4 y);
8274double8 __ovld __cnfn fmod(double8 x, double8 y);
8275double16 __ovld __cnfn fmod(double16 x, double16 y);
8276#endif //cl_khr_fp64
8277#ifdef cl_khr_fp16
8278half __ovld __cnfn fmod(half x, half y);
8279half2 __ovld __cnfn fmod(half2 x, half2 y);
8280half3 __ovld __cnfn fmod(half3 x, half3 y);
8281half4 __ovld __cnfn fmod(half4 x, half4 y);
8282half8 __ovld __cnfn fmod(half8 x, half8 y);
8283half16 __ovld __cnfn fmod(half16 x, half16 y);
8284#endif //cl_khr_fp16
8285
8286/**
8287 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
8288 * floor(x) is returned in iptr.
8289 */
8290#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8291float __ovld fract(float x, float *iptr);
8292float2 __ovld fract(float2 x, float2 *iptr);
8293float3 __ovld fract(float3 x, float3 *iptr);
8294float4 __ovld fract(float4 x, float4 *iptr);
8295float8 __ovld fract(float8 x, float8 *iptr);
8296float16 __ovld fract(float16 x, float16 *iptr);
8297#ifdef cl_khr_fp64
8298double __ovld fract(double x, double *iptr);
8299double2 __ovld fract(double2 x, double2 *iptr);
8300double3 __ovld fract(double3 x, double3 *iptr);
8301double4 __ovld fract(double4 x, double4 *iptr);
8302double8 __ovld fract(double8 x, double8 *iptr);
8303double16 __ovld fract(double16 x, double16 *iptr);
8304#endif //cl_khr_fp64
8305#ifdef cl_khr_fp16
8306half __ovld fract(half x, half *iptr);
8307half2 __ovld fract(half2 x, half2 *iptr);
8308half3 __ovld fract(half3 x, half3 *iptr);
8309half4 __ovld fract(half4 x, half4 *iptr);
8310half8 __ovld fract(half8 x, half8 *iptr);
8311half16 __ovld fract(half16 x, half16 *iptr);
8312#endif //cl_khr_fp16
8313#else
8314float __ovld fract(float x, __global float *iptr);
8315float2 __ovld fract(float2 x, __global float2 *iptr);
8316float3 __ovld fract(float3 x, __global float3 *iptr);
8317float4 __ovld fract(float4 x, __global float4 *iptr);
8318float8 __ovld fract(float8 x, __global float8 *iptr);
8319float16 __ovld fract(float16 x, __global float16 *iptr);
8320float __ovld fract(float x, __local float *iptr);
8321float2 __ovld fract(float2 x, __local float2 *iptr);
8322float3 __ovld fract(float3 x, __local float3 *iptr);
8323float4 __ovld fract(float4 x, __local float4 *iptr);
8324float8 __ovld fract(float8 x, __local float8 *iptr);
8325float16 __ovld fract(float16 x, __local float16 *iptr);
8326float __ovld fract(float x, __private float *iptr);
8327float2 __ovld fract(float2 x, __private float2 *iptr);
8328float3 __ovld fract(float3 x, __private float3 *iptr);
8329float4 __ovld fract(float4 x, __private float4 *iptr);
8330float8 __ovld fract(float8 x, __private float8 *iptr);
8331float16 __ovld fract(float16 x, __private float16 *iptr);
8332#ifdef cl_khr_fp64
8333double __ovld fract(double x, __global double *iptr);
8334double2 __ovld fract(double2 x, __global double2 *iptr);
8335double3 __ovld fract(double3 x, __global double3 *iptr);
8336double4 __ovld fract(double4 x, __global double4 *iptr);
8337double8 __ovld fract(double8 x, __global double8 *iptr);
8338double16 __ovld fract(double16 x, __global double16 *iptr);
8339double __ovld fract(double x, __local double *iptr);
8340double2 __ovld fract(double2 x, __local double2 *iptr);
8341double3 __ovld fract(double3 x, __local double3 *iptr);
8342double4 __ovld fract(double4 x, __local double4 *iptr);
8343double8 __ovld fract(double8 x, __local double8 *iptr);
8344double16 __ovld fract(double16 x, __local double16 *iptr);
8345double __ovld fract(double x, __private double *iptr);
8346double2 __ovld fract(double2 x, __private double2 *iptr);
8347double3 __ovld fract(double3 x, __private double3 *iptr);
8348double4 __ovld fract(double4 x, __private double4 *iptr);
8349double8 __ovld fract(double8 x, __private double8 *iptr);
8350double16 __ovld fract(double16 x, __private double16 *iptr);
8351#endif //cl_khr_fp64
8352#ifdef cl_khr_fp16
8353half __ovld fract(half x, __global half *iptr);
8354half2 __ovld fract(half2 x, __global half2 *iptr);
8355half3 __ovld fract(half3 x, __global half3 *iptr);
8356half4 __ovld fract(half4 x, __global half4 *iptr);
8357half8 __ovld fract(half8 x, __global half8 *iptr);
8358half16 __ovld fract(half16 x, __global half16 *iptr);
8359half __ovld fract(half x, __local half *iptr);
8360half2 __ovld fract(half2 x, __local half2 *iptr);
8361half3 __ovld fract(half3 x, __local half3 *iptr);
8362half4 __ovld fract(half4 x, __local half4 *iptr);
8363half8 __ovld fract(half8 x, __local half8 *iptr);
8364half16 __ovld fract(half16 x, __local half16 *iptr);
8365half __ovld fract(half x, __private half *iptr);
8366half2 __ovld fract(half2 x, __private half2 *iptr);
8367half3 __ovld fract(half3 x, __private half3 *iptr);
8368half4 __ovld fract(half4 x, __private half4 *iptr);
8369half8 __ovld fract(half8 x, __private half8 *iptr);
8370half16 __ovld fract(half16 x, __private half16 *iptr);
8371#endif //cl_khr_fp16
8372#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8373
8374/**
8375 * Extract mantissa and exponent from x. For each
8376 * component the mantissa returned is a float with
8377 * magnitude in the interval [1/2, 1) or 0. Each
8378 * component of x equals mantissa returned * 2^exp.
8379 */
8380#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8381float __ovld frexp(float x, int *exp);
8382float2 __ovld frexp(float2 x, int2 *exp);
8383float3 __ovld frexp(float3 x, int3 *exp);
8384float4 __ovld frexp(float4 x, int4 *exp);
8385float8 __ovld frexp(float8 x, int8 *exp);
8386float16 __ovld frexp(float16 x, int16 *exp);
8387#ifdef cl_khr_fp64
8388double __ovld frexp(double x, int *exp);
8389double2 __ovld frexp(double2 x, int2 *exp);
8390double3 __ovld frexp(double3 x, int3 *exp);
8391double4 __ovld frexp(double4 x, int4 *exp);
8392double8 __ovld frexp(double8 x, int8 *exp);
8393double16 __ovld frexp(double16 x, int16 *exp);
8394#endif //cl_khr_fp64
8395#ifdef cl_khr_fp16
8396half __ovld frexp(half x, int *exp);
8397half2 __ovld frexp(half2 x, int2 *exp);
8398half3 __ovld frexp(half3 x, int3 *exp);
8399half4 __ovld frexp(half4 x, int4 *exp);
8400half8 __ovld frexp(half8 x, int8 *exp);
8401half16 __ovld frexp(half16 x, int16 *exp);
8402#endif //cl_khr_fp16
8403#else
8404float __ovld frexp(float x, __global int *exp);
8405float2 __ovld frexp(float2 x, __global int2 *exp);
8406float3 __ovld frexp(float3 x, __global int3 *exp);
8407float4 __ovld frexp(float4 x, __global int4 *exp);
8408float8 __ovld frexp(float8 x, __global int8 *exp);
8409float16 __ovld frexp(float16 x, __global int16 *exp);
8410float __ovld frexp(float x, __local int *exp);
8411float2 __ovld frexp(float2 x, __local int2 *exp);
8412float3 __ovld frexp(float3 x, __local int3 *exp);
8413float4 __ovld frexp(float4 x, __local int4 *exp);
8414float8 __ovld frexp(float8 x, __local int8 *exp);
8415float16 __ovld frexp(float16 x, __local int16 *exp);
8416float __ovld frexp(float x, __private int *exp);
8417float2 __ovld frexp(float2 x, __private int2 *exp);
8418float3 __ovld frexp(float3 x, __private int3 *exp);
8419float4 __ovld frexp(float4 x, __private int4 *exp);
8420float8 __ovld frexp(float8 x, __private int8 *exp);
8421float16 __ovld frexp(float16 x, __private int16 *exp);
8422#ifdef cl_khr_fp64
8423double __ovld frexp(double x, __global int *exp);
8424double2 __ovld frexp(double2 x, __global int2 *exp);
8425double3 __ovld frexp(double3 x, __global int3 *exp);
8426double4 __ovld frexp(double4 x, __global int4 *exp);
8427double8 __ovld frexp(double8 x, __global int8 *exp);
8428double16 __ovld frexp(double16 x, __global int16 *exp);
8429double __ovld frexp(double x, __local int *exp);
8430double2 __ovld frexp(double2 x, __local int2 *exp);
8431double3 __ovld frexp(double3 x, __local int3 *exp);
8432double4 __ovld frexp(double4 x, __local int4 *exp);
8433double8 __ovld frexp(double8 x, __local int8 *exp);
8434double16 __ovld frexp(double16 x, __local int16 *exp);
8435double __ovld frexp(double x, __private int *exp);
8436double2 __ovld frexp(double2 x, __private int2 *exp);
8437double3 __ovld frexp(double3 x, __private int3 *exp);
8438double4 __ovld frexp(double4 x, __private int4 *exp);
8439double8 __ovld frexp(double8 x, __private int8 *exp);
8440double16 __ovld frexp(double16 x, __private int16 *exp);
8441#endif //cl_khr_fp64
8442#ifdef cl_khr_fp16
8443half __ovld frexp(half x, __global int *exp);
8444half2 __ovld frexp(half2 x, __global int2 *exp);
8445half3 __ovld frexp(half3 x, __global int3 *exp);
8446half4 __ovld frexp(half4 x, __global int4 *exp);
8447half8 __ovld frexp(half8 x, __global int8 *exp);
8448half16 __ovld frexp(half16 x, __global int16 *exp);
8449half __ovld frexp(half x, __local int *exp);
8450half2 __ovld frexp(half2 x, __local int2 *exp);
8451half3 __ovld frexp(half3 x, __local int3 *exp);
8452half4 __ovld frexp(half4 x, __local int4 *exp);
8453half8 __ovld frexp(half8 x, __local int8 *exp);
8454half16 __ovld frexp(half16 x, __local int16 *exp);
8455half __ovld frexp(half x, __private int *exp);
8456half2 __ovld frexp(half2 x, __private int2 *exp);
8457half3 __ovld frexp(half3 x, __private int3 *exp);
8458half4 __ovld frexp(half4 x, __private int4 *exp);
8459half8 __ovld frexp(half8 x, __private int8 *exp);
8460half16 __ovld frexp(half16 x, __private int16 *exp);
8461#endif //cl_khr_fp16
8462#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8463
8464/**
8465 * Compute the value of the square root of x^2 + y^2
8466 * without undue overflow or underflow.
8467 */
8468float __ovld __cnfn hypot(float x, float y);
8469float2 __ovld __cnfn hypot(float2 x, float2 y);
8470float3 __ovld __cnfn hypot(float3 x, float3 y);
8471float4 __ovld __cnfn hypot(float4 x, float4 y);
8472float8 __ovld __cnfn hypot(float8 x, float8 y);
8473float16 __ovld __cnfn hypot(float16 x, float16 y);
8474#ifdef cl_khr_fp64
8475double __ovld __cnfn hypot(double x, double y);
8476double2 __ovld __cnfn hypot(double2 x, double2 y);
8477double3 __ovld __cnfn hypot(double3 x, double3 y);
8478double4 __ovld __cnfn hypot(double4 x, double4 y);
8479double8 __ovld __cnfn hypot(double8 x, double8 y);
8480double16 __ovld __cnfn hypot(double16 x, double16 y);
8481#endif //cl_khr_fp64
8482#ifdef cl_khr_fp16
8483half __ovld __cnfn hypot(half x, half y);
8484half2 __ovld __cnfn hypot(half2 x, half2 y);
8485half3 __ovld __cnfn hypot(half3 x, half3 y);
8486half4 __ovld __cnfn hypot(half4 x, half4 y);
8487half8 __ovld __cnfn hypot(half8 x, half8 y);
8488half16 __ovld __cnfn hypot(half16 x, half16 y);
8489#endif //cl_khr_fp16
8490
8491/**
8492 * Return the exponent as an integer value.
8493 */
8494int __ovld __cnfn ilogb(float x);
8495int2 __ovld __cnfn ilogb(float2 x);
8496int3 __ovld __cnfn ilogb(float3 x);
8497int4 __ovld __cnfn ilogb(float4 x);
8498int8 __ovld __cnfn ilogb(float8 x);
8499int16 __ovld __cnfn ilogb(float16 x);
8500#ifdef cl_khr_fp64
8501int __ovld __cnfn ilogb(double x);
8502int2 __ovld __cnfn ilogb(double2 x);
8503int3 __ovld __cnfn ilogb(double3 x);
8504int4 __ovld __cnfn ilogb(double4 x);
8505int8 __ovld __cnfn ilogb(double8 x);
8506int16 __ovld __cnfn ilogb(double16 x);
8507#endif //cl_khr_fp64
8508#ifdef cl_khr_fp16
8509int __ovld __cnfn ilogb(half x);
8510int2 __ovld __cnfn ilogb(half2 x);
8511int3 __ovld __cnfn ilogb(half3 x);
8512int4 __ovld __cnfn ilogb(half4 x);
8513int8 __ovld __cnfn ilogb(half8 x);
8514int16 __ovld __cnfn ilogb(half16 x);
8515#endif //cl_khr_fp16
8516
8517/**
8518 * Multiply x by 2 to the power n.
8519 */
8520float __ovld __cnfn ldexp(float x, int n);
8521float2 __ovld __cnfn ldexp(float2 x, int2 n);
8522float3 __ovld __cnfn ldexp(float3 x, int3 n);
8523float4 __ovld __cnfn ldexp(float4 x, int4 n);
8524float8 __ovld __cnfn ldexp(float8 x, int8 n);
8525float16 __ovld __cnfn ldexp(float16 x, int16 n);
8526float2 __ovld __cnfn ldexp(float2 x, int n);
8527float3 __ovld __cnfn ldexp(float3 x, int n);
8528float4 __ovld __cnfn ldexp(float4 x, int n);
8529float8 __ovld __cnfn ldexp(float8 x, int n);
8530float16 __ovld __cnfn ldexp(float16 x, int n);
8531#ifdef cl_khr_fp64
8532double __ovld __cnfn ldexp(double x, int n);
8533double2 __ovld __cnfn ldexp(double2 x, int2 n);
8534double3 __ovld __cnfn ldexp(double3 x, int3 n);
8535double4 __ovld __cnfn ldexp(double4 x, int4 n);
8536double8 __ovld __cnfn ldexp(double8 x, int8 n);
8537double16 __ovld __cnfn ldexp(double16 x, int16 n);
8538double2 __ovld __cnfn ldexp(double2 x, int n);
8539double3 __ovld __cnfn ldexp(double3 x, int n);
8540double4 __ovld __cnfn ldexp(double4 x, int n);
8541double8 __ovld __cnfn ldexp(double8 x, int n);
8542double16 __ovld __cnfn ldexp(double16 x, int n);
8543#endif //cl_khr_fp64
8544#ifdef cl_khr_fp16
8545half __ovld __cnfn ldexp(half x, int n);
8546half2 __ovld __cnfn ldexp(half2 x, int2 n);
8547half3 __ovld __cnfn ldexp(half3 x, int3 n);
8548half4 __ovld __cnfn ldexp(half4 x, int4 n);
8549half8 __ovld __cnfn ldexp(half8 x, int8 n);
8550half16 __ovld __cnfn ldexp(half16 x, int16 n);
8551half2 __ovld __cnfn ldexp(half2 x, int n);
8552half3 __ovld __cnfn ldexp(half3 x, int n);
8553half4 __ovld __cnfn ldexp(half4 x, int n);
8554half8 __ovld __cnfn ldexp(half8 x, int n);
8555half16 __ovld __cnfn ldexp(half16 x, int n);
8556#endif //cl_khr_fp16
8557
8558/**
8559 * Log gamma function. Returns the natural
8560 * logarithm of the absolute value of the gamma
8561 * function. The sign of the gamma function is
8562 * returned in the signp argument of lgamma_r.
8563 */
8564float __ovld __cnfn lgamma(float x);
8565float2 __ovld __cnfn lgamma(float2 x);
8566float3 __ovld __cnfn lgamma(float3 x);
8567float4 __ovld __cnfn lgamma(float4 x);
8568float8 __ovld __cnfn lgamma(float8 x);
8569float16 __ovld __cnfn lgamma(float16 x);
8570#ifdef cl_khr_fp64
8571double __ovld __cnfn lgamma(double x);
8572double2 __ovld __cnfn lgamma(double2 x);
8573double3 __ovld __cnfn lgamma(double3 x);
8574double4 __ovld __cnfn lgamma(double4 x);
8575double8 __ovld __cnfn lgamma(double8 x);
8576double16 __ovld __cnfn lgamma(double16 x);
8577#endif //cl_khr_fp64
8578#ifdef cl_khr_fp16
8579half __ovld __cnfn lgamma(half x);
8580half2 __ovld __cnfn lgamma(half2 x);
8581half3 __ovld __cnfn lgamma(half3 x);
8582half4 __ovld __cnfn lgamma(half4 x);
8583half8 __ovld __cnfn lgamma(half8 x);
8584half16 __ovld __cnfn lgamma(half16 x);
8585#endif //cl_khr_fp16
8586
8587#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8588float __ovld lgamma_r(float x, int *signp);
8589float2 __ovld lgamma_r(float2 x, int2 *signp);
8590float3 __ovld lgamma_r(float3 x, int3 *signp);
8591float4 __ovld lgamma_r(float4 x, int4 *signp);
8592float8 __ovld lgamma_r(float8 x, int8 *signp);
8593float16 __ovld lgamma_r(float16 x, int16 *signp);
8594#ifdef cl_khr_fp64
8595double __ovld lgamma_r(double x, int *signp);
8596double2 __ovld lgamma_r(double2 x, int2 *signp);
8597double3 __ovld lgamma_r(double3 x, int3 *signp);
8598double4 __ovld lgamma_r(double4 x, int4 *signp);
8599double8 __ovld lgamma_r(double8 x, int8 *signp);
8600double16 __ovld lgamma_r(double16 x, int16 *signp);
8601#endif //cl_khr_fp64
8602#ifdef cl_khr_fp16
8603half __ovld lgamma_r(half x, int *signp);
8604half2 __ovld lgamma_r(half2 x, int2 *signp);
8605half3 __ovld lgamma_r(half3 x, int3 *signp);
8606half4 __ovld lgamma_r(half4 x, int4 *signp);
8607half8 __ovld lgamma_r(half8 x, int8 *signp);
8608half16 __ovld lgamma_r(half16 x, int16 *signp);
8609#endif //cl_khr_fp16
8610#else
8611float __ovld lgamma_r(float x, __global int *signp);
8612float2 __ovld lgamma_r(float2 x, __global int2 *signp);
8613float3 __ovld lgamma_r(float3 x, __global int3 *signp);
8614float4 __ovld lgamma_r(float4 x, __global int4 *signp);
8615float8 __ovld lgamma_r(float8 x, __global int8 *signp);
8616float16 __ovld lgamma_r(float16 x, __global int16 *signp);
8617float __ovld lgamma_r(float x, __local int *signp);
8618float2 __ovld lgamma_r(float2 x, __local int2 *signp);
8619float3 __ovld lgamma_r(float3 x, __local int3 *signp);
8620float4 __ovld lgamma_r(float4 x, __local int4 *signp);
8621float8 __ovld lgamma_r(float8 x, __local int8 *signp);
8622float16 __ovld lgamma_r(float16 x, __local int16 *signp);
8623float __ovld lgamma_r(float x, __private int *signp);
8624float2 __ovld lgamma_r(float2 x, __private int2 *signp);
8625float3 __ovld lgamma_r(float3 x, __private int3 *signp);
8626float4 __ovld lgamma_r(float4 x, __private int4 *signp);
8627float8 __ovld lgamma_r(float8 x, __private int8 *signp);
8628float16 __ovld lgamma_r(float16 x, __private int16 *signp);
8629#ifdef cl_khr_fp64
8630double __ovld lgamma_r(double x, __global int *signp);
8631double2 __ovld lgamma_r(double2 x, __global int2 *signp);
8632double3 __ovld lgamma_r(double3 x, __global int3 *signp);
8633double4 __ovld lgamma_r(double4 x, __global int4 *signp);
8634double8 __ovld lgamma_r(double8 x, __global int8 *signp);
8635double16 __ovld lgamma_r(double16 x, __global int16 *signp);
8636double __ovld lgamma_r(double x, __local int *signp);
8637double2 __ovld lgamma_r(double2 x, __local int2 *signp);
8638double3 __ovld lgamma_r(double3 x, __local int3 *signp);
8639double4 __ovld lgamma_r(double4 x, __local int4 *signp);
8640double8 __ovld lgamma_r(double8 x, __local int8 *signp);
8641double16 __ovld lgamma_r(double16 x, __local int16 *signp);
8642double __ovld lgamma_r(double x, __private int *signp);
8643double2 __ovld lgamma_r(double2 x, __private int2 *signp);
8644double3 __ovld lgamma_r(double3 x, __private int3 *signp);
8645double4 __ovld lgamma_r(double4 x, __private int4 *signp);
8646double8 __ovld lgamma_r(double8 x, __private int8 *signp);
8647double16 __ovld lgamma_r(double16 x, __private int16 *signp);
8648#endif //cl_khr_fp64
8649#ifdef cl_khr_fp16
8650half __ovld lgamma_r(half x, __global int *signp);
8651half2 __ovld lgamma_r(half2 x, __global int2 *signp);
8652half3 __ovld lgamma_r(half3 x, __global int3 *signp);
8653half4 __ovld lgamma_r(half4 x, __global int4 *signp);
8654half8 __ovld lgamma_r(half8 x, __global int8 *signp);
8655half16 __ovld lgamma_r(half16 x, __global int16 *signp);
8656half __ovld lgamma_r(half x, __local int *signp);
8657half2 __ovld lgamma_r(half2 x, __local int2 *signp);
8658half3 __ovld lgamma_r(half3 x, __local int3 *signp);
8659half4 __ovld lgamma_r(half4 x, __local int4 *signp);
8660half8 __ovld lgamma_r(half8 x, __local int8 *signp);
8661half16 __ovld lgamma_r(half16 x, __local int16 *signp);
8662half __ovld lgamma_r(half x, __private int *signp);
8663half2 __ovld lgamma_r(half2 x, __private int2 *signp);
8664half3 __ovld lgamma_r(half3 x, __private int3 *signp);
8665half4 __ovld lgamma_r(half4 x, __private int4 *signp);
8666half8 __ovld lgamma_r(half8 x, __private int8 *signp);
8667half16 __ovld lgamma_r(half16 x, __private int16 *signp);
8668#endif //cl_khr_fp16
8669#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8670
8671/**
8672 * Compute natural logarithm.
8673 */
8674float __ovld __cnfn log(float);
8675float2 __ovld __cnfn log(float2);
8676float3 __ovld __cnfn log(float3);
8677float4 __ovld __cnfn log(float4);
8678float8 __ovld __cnfn log(float8);
8679float16 __ovld __cnfn log(float16);
8680#ifdef cl_khr_fp64
8681double __ovld __cnfn log(double);
8682double2 __ovld __cnfn log(double2);
8683double3 __ovld __cnfn log(double3);
8684double4 __ovld __cnfn log(double4);
8685double8 __ovld __cnfn log(double8);
8686double16 __ovld __cnfn log(double16);
8687#endif //cl_khr_fp64
8688#ifdef cl_khr_fp16
8689half __ovld __cnfn log(half);
8690half2 __ovld __cnfn log(half2);
8691half3 __ovld __cnfn log(half3);
8692half4 __ovld __cnfn log(half4);
8693half8 __ovld __cnfn log(half8);
8694half16 __ovld __cnfn log(half16);
8695#endif //cl_khr_fp16
8696
8697/**
8698 * Compute a base 2 logarithm.
8699 */
8700float __ovld __cnfn log2(float);
8701float2 __ovld __cnfn log2(float2);
8702float3 __ovld __cnfn log2(float3);
8703float4 __ovld __cnfn log2(float4);
8704float8 __ovld __cnfn log2(float8);
8705float16 __ovld __cnfn log2(float16);
8706#ifdef cl_khr_fp64
8707double __ovld __cnfn log2(double);
8708double2 __ovld __cnfn log2(double2);
8709double3 __ovld __cnfn log2(double3);
8710double4 __ovld __cnfn log2(double4);
8711double8 __ovld __cnfn log2(double8);
8712double16 __ovld __cnfn log2(double16);
8713#endif //cl_khr_fp64
8714#ifdef cl_khr_fp16
8715half __ovld __cnfn log2(half);
8716half2 __ovld __cnfn log2(half2);
8717half3 __ovld __cnfn log2(half3);
8718half4 __ovld __cnfn log2(half4);
8719half8 __ovld __cnfn log2(half8);
8720half16 __ovld __cnfn log2(half16);
8721#endif //cl_khr_fp16
8722
8723/**
8724 * Compute a base 10 logarithm.
8725 */
8726float __ovld __cnfn log10(float);
8727float2 __ovld __cnfn log10(float2);
8728float3 __ovld __cnfn log10(float3);
8729float4 __ovld __cnfn log10(float4);
8730float8 __ovld __cnfn log10(float8);
8731float16 __ovld __cnfn log10(float16);
8732#ifdef cl_khr_fp64
8733double __ovld __cnfn log10(double);
8734double2 __ovld __cnfn log10(double2);
8735double3 __ovld __cnfn log10(double3);
8736double4 __ovld __cnfn log10(double4);
8737double8 __ovld __cnfn log10(double8);
8738double16 __ovld __cnfn log10(double16);
8739#endif //cl_khr_fp64
8740#ifdef cl_khr_fp16
8741half __ovld __cnfn log10(half);
8742half2 __ovld __cnfn log10(half2);
8743half3 __ovld __cnfn log10(half3);
8744half4 __ovld __cnfn log10(half4);
8745half8 __ovld __cnfn log10(half8);
8746half16 __ovld __cnfn log10(half16);
8747#endif //cl_khr_fp16
8748
8749/**
8750 * Compute a base e logarithm of (1.0 + x).
8751 */
8752float __ovld __cnfn log1p(float x);
8753float2 __ovld __cnfn log1p(float2 x);
8754float3 __ovld __cnfn log1p(float3 x);
8755float4 __ovld __cnfn log1p(float4 x);
8756float8 __ovld __cnfn log1p(float8 x);
8757float16 __ovld __cnfn log1p(float16 x);
8758#ifdef cl_khr_fp64
8759double __ovld __cnfn log1p(double x);
8760double2 __ovld __cnfn log1p(double2 x);
8761double3 __ovld __cnfn log1p(double3 x);
8762double4 __ovld __cnfn log1p(double4 x);
8763double8 __ovld __cnfn log1p(double8 x);
8764double16 __ovld __cnfn log1p(double16 x);
8765#endif //cl_khr_fp64
8766#ifdef cl_khr_fp16
8767half __ovld __cnfn log1p(half x);
8768half2 __ovld __cnfn log1p(half2 x);
8769half3 __ovld __cnfn log1p(half3 x);
8770half4 __ovld __cnfn log1p(half4 x);
8771half8 __ovld __cnfn log1p(half8 x);
8772half16 __ovld __cnfn log1p(half16 x);
8773#endif //cl_khr_fp16
8774
8775/**
8776 * Compute the exponent of x, which is the integral
8777 * part of logr | x |.
8778 */
8779float __ovld __cnfn logb(float x);
8780float2 __ovld __cnfn logb(float2 x);
8781float3 __ovld __cnfn logb(float3 x);
8782float4 __ovld __cnfn logb(float4 x);
8783float8 __ovld __cnfn logb(float8 x);
8784float16 __ovld __cnfn logb(float16 x);
8785#ifdef cl_khr_fp64
8786double __ovld __cnfn logb(double x);
8787double2 __ovld __cnfn logb(double2 x);
8788double3 __ovld __cnfn logb(double3 x);
8789double4 __ovld __cnfn logb(double4 x);
8790double8 __ovld __cnfn logb(double8 x);
8791double16 __ovld __cnfn logb(double16 x);
8792#endif //cl_khr_fp64
8793#ifdef cl_khr_fp16
8794half __ovld __cnfn logb(half x);
8795half2 __ovld __cnfn logb(half2 x);
8796half3 __ovld __cnfn logb(half3 x);
8797half4 __ovld __cnfn logb(half4 x);
8798half8 __ovld __cnfn logb(half8 x);
8799half16 __ovld __cnfn logb(half16 x);
8800#endif //cl_khr_fp16
8801
8802/**
8803 * mad approximates a * b + c. Whether or how the
8804 * product of a * b is rounded and how supernormal or
8805 * subnormal intermediate products are handled is not
8806 * defined. mad is intended to be used where speed is
8807 * preferred over accuracy.
8808 */
8809float __ovld __cnfn mad(float a, float b, float c);
8810float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
8811float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
8812float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
8813float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
8814float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
8815#ifdef cl_khr_fp64
8816double __ovld __cnfn mad(double a, double b, double c);
8817double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
8818double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
8819double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
8820double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
8821double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
8822#endif //cl_khr_fp64
8823#ifdef cl_khr_fp16
8824half __ovld __cnfn mad(half a, half b, half c);
8825half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
8826half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
8827half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
8828half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
8829half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
8830#endif //cl_khr_fp16
8831
8832/**
8833 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
8834 * fmax(x, y).
8835 */
8836float __ovld __cnfn maxmag(float x, float y);
8837float2 __ovld __cnfn maxmag(float2 x, float2 y);
8838float3 __ovld __cnfn maxmag(float3 x, float3 y);
8839float4 __ovld __cnfn maxmag(float4 x, float4 y);
8840float8 __ovld __cnfn maxmag(float8 x, float8 y);
8841float16 __ovld __cnfn maxmag(float16 x, float16 y);
8842#ifdef cl_khr_fp64
8843double __ovld __cnfn maxmag(double x, double y);
8844double2 __ovld __cnfn maxmag(double2 x, double2 y);
8845double3 __ovld __cnfn maxmag(double3 x, double3 y);
8846double4 __ovld __cnfn maxmag(double4 x, double4 y);
8847double8 __ovld __cnfn maxmag(double8 x, double8 y);
8848double16 __ovld __cnfn maxmag(double16 x, double16 y);
8849#endif //cl_khr_fp64
8850#ifdef cl_khr_fp16
8851half __ovld __cnfn maxmag(half x, half y);
8852half2 __ovld __cnfn maxmag(half2 x, half2 y);
8853half3 __ovld __cnfn maxmag(half3 x, half3 y);
8854half4 __ovld __cnfn maxmag(half4 x, half4 y);
8855half8 __ovld __cnfn maxmag(half8 x, half8 y);
8856half16 __ovld __cnfn maxmag(half16 x, half16 y);
8857#endif //cl_khr_fp16
8858
8859/**
8860 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
8861 * fmin(x, y).
8862 */
8863float __ovld __cnfn minmag(float x, float y);
8864float2 __ovld __cnfn minmag(float2 x, float2 y);
8865float3 __ovld __cnfn minmag(float3 x, float3 y);
8866float4 __ovld __cnfn minmag(float4 x, float4 y);
8867float8 __ovld __cnfn minmag(float8 x, float8 y);
8868float16 __ovld __cnfn minmag(float16 x, float16 y);
8869#ifdef cl_khr_fp64
8870double __ovld __cnfn minmag(double x, double y);
8871double2 __ovld __cnfn minmag(double2 x, double2 y);
8872double3 __ovld __cnfn minmag(double3 x, double3 y);
8873double4 __ovld __cnfn minmag(double4 x, double4 y);
8874double8 __ovld __cnfn minmag(double8 x, double8 y);
8875double16 __ovld __cnfn minmag(double16 x, double16 y);
8876#endif //cl_khr_fp64
8877#ifdef cl_khr_fp16
8878half __ovld __cnfn minmag(half x, half y);
8879half2 __ovld __cnfn minmag(half2 x, half2 y);
8880half3 __ovld __cnfn minmag(half3 x, half3 y);
8881half4 __ovld __cnfn minmag(half4 x, half4 y);
8882half8 __ovld __cnfn minmag(half8 x, half8 y);
8883half16 __ovld __cnfn minmag(half16 x, half16 y);
8884#endif //cl_khr_fp16
8885
8886/**
8887 * Decompose a floating-point number. The modf
8888 * function breaks the argument x into integral and
8889 * fractional parts, each of which has the same sign as
8890 * the argument. It stores the integral part in the object
8891 * pointed to by iptr.
8892 */
8893#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8894float __ovld modf(float x, float *iptr);
8895float2 __ovld modf(float2 x, float2 *iptr);
8896float3 __ovld modf(float3 x, float3 *iptr);
8897float4 __ovld modf(float4 x, float4 *iptr);
8898float8 __ovld modf(float8 x, float8 *iptr);
8899float16 __ovld modf(float16 x, float16 *iptr);
8900#ifdef cl_khr_fp64
8901double __ovld modf(double x, double *iptr);
8902double2 __ovld modf(double2 x, double2 *iptr);
8903double3 __ovld modf(double3 x, double3 *iptr);
8904double4 __ovld modf(double4 x, double4 *iptr);
8905double8 __ovld modf(double8 x, double8 *iptr);
8906double16 __ovld modf(double16 x, double16 *iptr);
8907#endif //cl_khr_fp64
8908#ifdef cl_khr_fp16
8909half __ovld modf(half x, half *iptr);
8910half2 __ovld modf(half2 x, half2 *iptr);
8911half3 __ovld modf(half3 x, half3 *iptr);
8912half4 __ovld modf(half4 x, half4 *iptr);
8913half8 __ovld modf(half8 x, half8 *iptr);
8914half16 __ovld modf(half16 x, half16 *iptr);
8915#endif //cl_khr_fp16
8916#else
8917float __ovld modf(float x, __global float *iptr);
8918float2 __ovld modf(float2 x, __global float2 *iptr);
8919float3 __ovld modf(float3 x, __global float3 *iptr);
8920float4 __ovld modf(float4 x, __global float4 *iptr);
8921float8 __ovld modf(float8 x, __global float8 *iptr);
8922float16 __ovld modf(float16 x, __global float16 *iptr);
8923float __ovld modf(float x, __local float *iptr);
8924float2 __ovld modf(float2 x, __local float2 *iptr);
8925float3 __ovld modf(float3 x, __local float3 *iptr);
8926float4 __ovld modf(float4 x, __local float4 *iptr);
8927float8 __ovld modf(float8 x, __local float8 *iptr);
8928float16 __ovld modf(float16 x, __local float16 *iptr);
8929float __ovld modf(float x, __private float *iptr);
8930float2 __ovld modf(float2 x, __private float2 *iptr);
8931float3 __ovld modf(float3 x, __private float3 *iptr);
8932float4 __ovld modf(float4 x, __private float4 *iptr);
8933float8 __ovld modf(float8 x, __private float8 *iptr);
8934float16 __ovld modf(float16 x, __private float16 *iptr);
8935#ifdef cl_khr_fp64
8936double __ovld modf(double x, __global double *iptr);
8937double2 __ovld modf(double2 x, __global double2 *iptr);
8938double3 __ovld modf(double3 x, __global double3 *iptr);
8939double4 __ovld modf(double4 x, __global double4 *iptr);
8940double8 __ovld modf(double8 x, __global double8 *iptr);
8941double16 __ovld modf(double16 x, __global double16 *iptr);
8942double __ovld modf(double x, __local double *iptr);
8943double2 __ovld modf(double2 x, __local double2 *iptr);
8944double3 __ovld modf(double3 x, __local double3 *iptr);
8945double4 __ovld modf(double4 x, __local double4 *iptr);
8946double8 __ovld modf(double8 x, __local double8 *iptr);
8947double16 __ovld modf(double16 x, __local double16 *iptr);
8948double __ovld modf(double x, __private double *iptr);
8949double2 __ovld modf(double2 x, __private double2 *iptr);
8950double3 __ovld modf(double3 x, __private double3 *iptr);
8951double4 __ovld modf(double4 x, __private double4 *iptr);
8952double8 __ovld modf(double8 x, __private double8 *iptr);
8953double16 __ovld modf(double16 x, __private double16 *iptr);
8954#endif //cl_khr_fp64
8955#ifdef cl_khr_fp16
8956half __ovld modf(half x, __global half *iptr);
8957half2 __ovld modf(half2 x, __global half2 *iptr);
8958half3 __ovld modf(half3 x, __global half3 *iptr);
8959half4 __ovld modf(half4 x, __global half4 *iptr);
8960half8 __ovld modf(half8 x, __global half8 *iptr);
8961half16 __ovld modf(half16 x, __global half16 *iptr);
8962half __ovld modf(half x, __local half *iptr);
8963half2 __ovld modf(half2 x, __local half2 *iptr);
8964half3 __ovld modf(half3 x, __local half3 *iptr);
8965half4 __ovld modf(half4 x, __local half4 *iptr);
8966half8 __ovld modf(half8 x, __local half8 *iptr);
8967half16 __ovld modf(half16 x, __local half16 *iptr);
8968half __ovld modf(half x, __private half *iptr);
8969half2 __ovld modf(half2 x, __private half2 *iptr);
8970half3 __ovld modf(half3 x, __private half3 *iptr);
8971half4 __ovld modf(half4 x, __private half4 *iptr);
8972half8 __ovld modf(half8 x, __private half8 *iptr);
8973half16 __ovld modf(half16 x, __private half16 *iptr);
8974#endif //cl_khr_fp16
8975#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8976
8977/**
8978 * Returns a quiet NaN. The nancode may be placed
8979 * in the significand of the resulting NaN.
8980 */
8981float __ovld __cnfn nan(uint nancode);
8982float2 __ovld __cnfn nan(uint2 nancode);
8983float3 __ovld __cnfn nan(uint3 nancode);
8984float4 __ovld __cnfn nan(uint4 nancode);
8985float8 __ovld __cnfn nan(uint8 nancode);
8986float16 __ovld __cnfn nan(uint16 nancode);
8987#ifdef cl_khr_fp64
8988double __ovld __cnfn nan(ulong nancode);
8989double2 __ovld __cnfn nan(ulong2 nancode);
8990double3 __ovld __cnfn nan(ulong3 nancode);
8991double4 __ovld __cnfn nan(ulong4 nancode);
8992double8 __ovld __cnfn nan(ulong8 nancode);
8993double16 __ovld __cnfn nan(ulong16 nancode);
8994#endif //cl_khr_fp64
8995#ifdef cl_khr_fp16
8996half __ovld __cnfn nan(ushort nancode);
8997half2 __ovld __cnfn nan(ushort2 nancode);
8998half3 __ovld __cnfn nan(ushort3 nancode);
8999half4 __ovld __cnfn nan(ushort4 nancode);
9000half8 __ovld __cnfn nan(ushort8 nancode);
9001half16 __ovld __cnfn nan(ushort16 nancode);
9002#endif //cl_khr_fp16
9003
9004/**
9005 * Computes the next representable single-precision
9006 * floating-point value following x in the direction of
9007 * y. Thus, if y is less than x, nextafter() returns the
9008 * largest representable floating-point number less
9009 * than x.
9010 */
9011float __ovld __cnfn nextafter(float x, float y);
9012float2 __ovld __cnfn nextafter(float2 x, float2 y);
9013float3 __ovld __cnfn nextafter(float3 x, float3 y);
9014float4 __ovld __cnfn nextafter(float4 x, float4 y);
9015float8 __ovld __cnfn nextafter(float8 x, float8 y);
9016float16 __ovld __cnfn nextafter(float16 x, float16 y);
9017#ifdef cl_khr_fp64
9018double __ovld __cnfn nextafter(double x, double y);
9019double2 __ovld __cnfn nextafter(double2 x, double2 y);
9020double3 __ovld __cnfn nextafter(double3 x, double3 y);
9021double4 __ovld __cnfn nextafter(double4 x, double4 y);
9022double8 __ovld __cnfn nextafter(double8 x, double8 y);
9023double16 __ovld __cnfn nextafter(double16 x, double16 y);
9024#endif //cl_khr_fp64
9025#ifdef cl_khr_fp16
9026half __ovld __cnfn nextafter(half x, half y);
9027half2 __ovld __cnfn nextafter(half2 x, half2 y);
9028half3 __ovld __cnfn nextafter(half3 x, half3 y);
9029half4 __ovld __cnfn nextafter(half4 x, half4 y);
9030half8 __ovld __cnfn nextafter(half8 x, half8 y);
9031half16 __ovld __cnfn nextafter(half16 x, half16 y);
9032#endif //cl_khr_fp16
9033
9034/**
9035 * Compute x to the power y.
9036 */
9037float __ovld __cnfn pow(float x, float y);
9038float2 __ovld __cnfn pow(float2 x, float2 y);
9039float3 __ovld __cnfn pow(float3 x, float3 y);
9040float4 __ovld __cnfn pow(float4 x, float4 y);
9041float8 __ovld __cnfn pow(float8 x, float8 y);
9042float16 __ovld __cnfn pow(float16 x, float16 y);
9043#ifdef cl_khr_fp64
9044double __ovld __cnfn pow(double x, double y);
9045double2 __ovld __cnfn pow(double2 x, double2 y);
9046double3 __ovld __cnfn pow(double3 x, double3 y);
9047double4 __ovld __cnfn pow(double4 x, double4 y);
9048double8 __ovld __cnfn pow(double8 x, double8 y);
9049double16 __ovld __cnfn pow(double16 x, double16 y);
9050#endif //cl_khr_fp64
9051#ifdef cl_khr_fp16
9052half __ovld __cnfn pow(half x, half y);
9053half2 __ovld __cnfn pow(half2 x, half2 y);
9054half3 __ovld __cnfn pow(half3 x, half3 y);
9055half4 __ovld __cnfn pow(half4 x, half4 y);
9056half8 __ovld __cnfn pow(half8 x, half8 y);
9057half16 __ovld __cnfn pow(half16 x, half16 y);
9058#endif //cl_khr_fp16
9059
9060/**
9061 * Compute x to the power y, where y is an integer.
9062 */
9063float __ovld __cnfn pown(float x, int y);
9064float2 __ovld __cnfn pown(float2 x, int2 y);
9065float3 __ovld __cnfn pown(float3 x, int3 y);
9066float4 __ovld __cnfn pown(float4 x, int4 y);
9067float8 __ovld __cnfn pown(float8 x, int8 y);
9068float16 __ovld __cnfn pown(float16 x, int16 y);
9069#ifdef cl_khr_fp64
9070double __ovld __cnfn pown(double x, int y);
9071double2 __ovld __cnfn pown(double2 x, int2 y);
9072double3 __ovld __cnfn pown(double3 x, int3 y);
9073double4 __ovld __cnfn pown(double4 x, int4 y);
9074double8 __ovld __cnfn pown(double8 x, int8 y);
9075double16 __ovld __cnfn pown(double16 x, int16 y);
9076#endif //cl_khr_fp64
9077#ifdef cl_khr_fp16
9078half __ovld __cnfn pown(half x, int y);
9079half2 __ovld __cnfn pown(half2 x, int2 y);
9080half3 __ovld __cnfn pown(half3 x, int3 y);
9081half4 __ovld __cnfn pown(half4 x, int4 y);
9082half8 __ovld __cnfn pown(half8 x, int8 y);
9083half16 __ovld __cnfn pown(half16 x, int16 y);
9084#endif //cl_khr_fp16
9085
9086/**
9087 * Compute x to the power y, where x is >= 0.
9088 */
9089float __ovld __cnfn powr(float x, float y);
9090float2 __ovld __cnfn powr(float2 x, float2 y);
9091float3 __ovld __cnfn powr(float3 x, float3 y);
9092float4 __ovld __cnfn powr(float4 x, float4 y);
9093float8 __ovld __cnfn powr(float8 x, float8 y);
9094float16 __ovld __cnfn powr(float16 x, float16 y);
9095#ifdef cl_khr_fp64
9096double __ovld __cnfn powr(double x, double y);
9097double2 __ovld __cnfn powr(double2 x, double2 y);
9098double3 __ovld __cnfn powr(double3 x, double3 y);
9099double4 __ovld __cnfn powr(double4 x, double4 y);
9100double8 __ovld __cnfn powr(double8 x, double8 y);
9101double16 __ovld __cnfn powr(double16 x, double16 y);
9102#endif //cl_khr_fp64
9103#ifdef cl_khr_fp16
9104half __ovld __cnfn powr(half x, half y);
9105half2 __ovld __cnfn powr(half2 x, half2 y);
9106half3 __ovld __cnfn powr(half3 x, half3 y);
9107half4 __ovld __cnfn powr(half4 x, half4 y);
9108half8 __ovld __cnfn powr(half8 x, half8 y);
9109half16 __ovld __cnfn powr(half16 x, half16 y);
9110#endif //cl_khr_fp16
9111
9112/**
9113 * Compute the value r such that r = x - n*y, where n
9114 * is the integer nearest the exact value of x/y. If there
9115 * are two integers closest to x/y, n shall be the even
9116 * one. If r is zero, it is given the same sign as x.
9117 */
9118float __ovld __cnfn remainder(float x, float y);
9119float2 __ovld __cnfn remainder(float2 x, float2 y);
9120float3 __ovld __cnfn remainder(float3 x, float3 y);
9121float4 __ovld __cnfn remainder(float4 x, float4 y);
9122float8 __ovld __cnfn remainder(float8 x, float8 y);
9123float16 __ovld __cnfn remainder(float16 x, float16 y);
9124#ifdef cl_khr_fp64
9125double __ovld __cnfn remainder(double x, double y);
9126double2 __ovld __cnfn remainder(double2 x, double2 y);
9127double3 __ovld __cnfn remainder(double3 x, double3 y);
9128double4 __ovld __cnfn remainder(double4 x, double4 y);
9129double8 __ovld __cnfn remainder(double8 x, double8 y);
9130double16 __ovld __cnfn remainder(double16 x, double16 y);
9131#endif //cl_khr_fp64
9132#ifdef cl_khr_fp16
9133half __ovld __cnfn remainder(half x, half y);
9134half2 __ovld __cnfn remainder(half2 x, half2 y);
9135half3 __ovld __cnfn remainder(half3 x, half3 y);
9136half4 __ovld __cnfn remainder(half4 x, half4 y);
9137half8 __ovld __cnfn remainder(half8 x, half8 y);
9138half16 __ovld __cnfn remainder(half16 x, half16 y);
9139#endif //cl_khr_fp16
9140
9141/**
9142 * The remquo function computes the value r such
9143 * that r = x - n*y, where n is the integer nearest the
9144 * exact value of x/y. If there are two integers closest
9145 * to x/y, n shall be the even one. If r is zero, it is
9146 * given the same sign as x. This is the same value
9147 * that is returned by the remainder function.
9148 * remquo also calculates the lower seven bits of the
9149 * integral quotient x/y, and gives that value the same
9150 * sign as x/y. It stores this signed value in the object
9151 * pointed to by quo.
9152 */
9153#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9154float __ovld remquo(float x, float y, int *quo);
9155float2 __ovld remquo(float2 x, float2 y, int2 *quo);
9156float3 __ovld remquo(float3 x, float3 y, int3 *quo);
9157float4 __ovld remquo(float4 x, float4 y, int4 *quo);
9158float8 __ovld remquo(float8 x, float8 y, int8 *quo);
9159float16 __ovld remquo(float16 x, float16 y, int16 *quo);
9160#ifdef cl_khr_fp64
9161double __ovld remquo(double x, double y, int *quo);
9162double2 __ovld remquo(double2 x, double2 y, int2 *quo);
9163double3 __ovld remquo(double3 x, double3 y, int3 *quo);
9164double4 __ovld remquo(double4 x, double4 y, int4 *quo);
9165double8 __ovld remquo(double8 x, double8 y, int8 *quo);
9166double16 __ovld remquo(double16 x, double16 y, int16 *quo);
9167#endif //cl_khr_fp64
9168#ifdef cl_khr_fp16
9169half __ovld remquo(half x, half y, int *quo);
9170half2 __ovld remquo(half2 x, half2 y, int2 *quo);
9171half3 __ovld remquo(half3 x, half3 y, int3 *quo);
9172half4 __ovld remquo(half4 x, half4 y, int4 *quo);
9173half8 __ovld remquo(half8 x, half8 y, int8 *quo);
9174half16 __ovld remquo(half16 x, half16 y, int16 *quo);
9175
9176#endif //cl_khr_fp16
9177#else
9178float __ovld remquo(float x, float y, __global int *quo);
9179float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
9180float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
9181float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
9182float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
9183float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
9184float __ovld remquo(float x, float y, __local int *quo);
9185float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
9186float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
9187float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
9188float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
9189float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
9190float __ovld remquo(float x, float y, __private int *quo);
9191float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
9192float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
9193float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
9194float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
9195float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
9196#ifdef cl_khr_fp64
9197double __ovld remquo(double x, double y, __global int *quo);
9198double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
9199double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
9200double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
9201double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
9202double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
9203double __ovld remquo(double x, double y, __local int *quo);
9204double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
9205double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
9206double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
9207double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
9208double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
9209double __ovld remquo(double x, double y, __private int *quo);
9210double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
9211double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
9212double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
9213double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
9214double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
9215#endif //cl_khr_fp64
9216#ifdef cl_khr_fp16
9217half __ovld remquo(half x, half y, __global int *quo);
9218half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
9219half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
9220half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
9221half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
9222half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
9223half __ovld remquo(half x, half y, __local int *quo);
9224half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
9225half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
9226half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
9227half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
9228half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
9229half __ovld remquo(half x, half y, __private int *quo);
9230half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
9231half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
9232half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
9233half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
9234half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
9235#endif //cl_khr_fp16
9236#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9237/**
9238 * Round to integral value (using round to nearest
9239 * even rounding mode) in floating-point format.
9240 * Refer to section 7.1 for description of rounding
9241 * modes.
9242 */
9243float __ovld __cnfn rint(float);
9244float2 __ovld __cnfn rint(float2);
9245float3 __ovld __cnfn rint(float3);
9246float4 __ovld __cnfn rint(float4);
9247float8 __ovld __cnfn rint(float8);
9248float16 __ovld __cnfn rint(float16);
9249#ifdef cl_khr_fp64
9250double __ovld __cnfn rint(double);
9251double2 __ovld __cnfn rint(double2);
9252double3 __ovld __cnfn rint(double3);
9253double4 __ovld __cnfn rint(double4);
9254double8 __ovld __cnfn rint(double8);
9255double16 __ovld __cnfn rint(double16);
9256#endif //cl_khr_fp64
9257#ifdef cl_khr_fp16
9258half __ovld __cnfn rint(half);
9259half2 __ovld __cnfn rint(half2);
9260half3 __ovld __cnfn rint(half3);
9261half4 __ovld __cnfn rint(half4);
9262half8 __ovld __cnfn rint(half8);
9263half16 __ovld __cnfn rint(half16);
9264#endif //cl_khr_fp16
9265
9266/**
9267 * Compute x to the power 1/y.
9268 */
9269float __ovld __cnfn rootn(float x, int y);
9270float2 __ovld __cnfn rootn(float2 x, int2 y);
9271float3 __ovld __cnfn rootn(float3 x, int3 y);
9272float4 __ovld __cnfn rootn(float4 x, int4 y);
9273float8 __ovld __cnfn rootn(float8 x, int8 y);
9274float16 __ovld __cnfn rootn(float16 x, int16 y);
9275#ifdef cl_khr_fp64
9276double __ovld __cnfn rootn(double x, int y);
9277double2 __ovld __cnfn rootn(double2 x, int2 y);
9278double3 __ovld __cnfn rootn(double3 x, int3 y);
9279double4 __ovld __cnfn rootn(double4 x, int4 y);
9280double8 __ovld __cnfn rootn(double8 x, int8 y);
9281double16 __ovld __cnfn rootn(double16 x, int16 y);
9282#endif //cl_khr_fp64
9283#ifdef cl_khr_fp16
9284half __ovld __cnfn rootn(half x, int y);
9285half2 __ovld __cnfn rootn(half2 x, int2 y);
9286half3 __ovld __cnfn rootn(half3 x, int3 y);
9287half4 __ovld __cnfn rootn(half4 x, int4 y);
9288half8 __ovld __cnfn rootn(half8 x, int8 y);
9289half16 __ovld __cnfn rootn(half16 x, int16 y);
9290#endif //cl_khr_fp16
9291
9292/**
9293 * Return the integral value nearest to x rounding
9294 * halfway cases away from zero, regardless of the
9295 * current rounding direction.
9296 */
9297float __ovld __cnfn round(float x);
9298float2 __ovld __cnfn round(float2 x);
9299float3 __ovld __cnfn round(float3 x);
9300float4 __ovld __cnfn round(float4 x);
9301float8 __ovld __cnfn round(float8 x);
9302float16 __ovld __cnfn round(float16 x);
9303#ifdef cl_khr_fp64
9304double __ovld __cnfn round(double x);
9305double2 __ovld __cnfn round(double2 x);
9306double3 __ovld __cnfn round(double3 x);
9307double4 __ovld __cnfn round(double4 x);
9308double8 __ovld __cnfn round(double8 x);
9309double16 __ovld __cnfn round(double16 x);
9310#endif //cl_khr_fp64
9311#ifdef cl_khr_fp16
9312half __ovld __cnfn round(half x);
9313half2 __ovld __cnfn round(half2 x);
9314half3 __ovld __cnfn round(half3 x);
9315half4 __ovld __cnfn round(half4 x);
9316half8 __ovld __cnfn round(half8 x);
9317half16 __ovld __cnfn round(half16 x);
9318#endif //cl_khr_fp16
9319
9320/**
9321 * Compute inverse square root.
9322 */
9323float __ovld __cnfn rsqrt(float);
9324float2 __ovld __cnfn rsqrt(float2);
9325float3 __ovld __cnfn rsqrt(float3);
9326float4 __ovld __cnfn rsqrt(float4);
9327float8 __ovld __cnfn rsqrt(float8);
9328float16 __ovld __cnfn rsqrt(float16);
9329#ifdef cl_khr_fp64
9330double __ovld __cnfn rsqrt(double);
9331double2 __ovld __cnfn rsqrt(double2);
9332double3 __ovld __cnfn rsqrt(double3);
9333double4 __ovld __cnfn rsqrt(double4);
9334double8 __ovld __cnfn rsqrt(double8);
9335double16 __ovld __cnfn rsqrt(double16);
9336#endif //cl_khr_fp64
9337#ifdef cl_khr_fp16
9338half __ovld __cnfn rsqrt(half);
9339half2 __ovld __cnfn rsqrt(half2);
9340half3 __ovld __cnfn rsqrt(half3);
9341half4 __ovld __cnfn rsqrt(half4);
9342half8 __ovld __cnfn rsqrt(half8);
9343half16 __ovld __cnfn rsqrt(half16);
9344#endif //cl_khr_fp16
9345
9346/**
9347 * Compute sine.
9348 */
9349float __ovld __cnfn sin(float);
9350float2 __ovld __cnfn sin(float2);
9351float3 __ovld __cnfn sin(float3);
9352float4 __ovld __cnfn sin(float4);
9353float8 __ovld __cnfn sin(float8);
9354float16 __ovld __cnfn sin(float16);
9355#ifdef cl_khr_fp64
9356double __ovld __cnfn sin(double);
9357double2 __ovld __cnfn sin(double2);
9358double3 __ovld __cnfn sin(double3);
9359double4 __ovld __cnfn sin(double4);
9360double8 __ovld __cnfn sin(double8);
9361double16 __ovld __cnfn sin(double16);
9362#endif //cl_khr_fp64
9363#ifdef cl_khr_fp16
9364half __ovld __cnfn sin(half);
9365half2 __ovld __cnfn sin(half2);
9366half3 __ovld __cnfn sin(half3);
9367half4 __ovld __cnfn sin(half4);
9368half8 __ovld __cnfn sin(half8);
9369half16 __ovld __cnfn sin(half16);
9370#endif //cl_khr_fp16
9371
9372/**
9373 * Compute sine and cosine of x. The computed sine
9374 * is the return value and computed cosine is returned
9375 * in cosval.
9376 */
9377#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9378float __ovld sincos(float x, float *cosval);
9379float2 __ovld sincos(float2 x, float2 *cosval);
9380float3 __ovld sincos(float3 x, float3 *cosval);
9381float4 __ovld sincos(float4 x, float4 *cosval);
9382float8 __ovld sincos(float8 x, float8 *cosval);
9383float16 __ovld sincos(float16 x, float16 *cosval);
9384#ifdef cl_khr_fp64
9385double __ovld sincos(double x, double *cosval);
9386double2 __ovld sincos(double2 x, double2 *cosval);
9387double3 __ovld sincos(double3 x, double3 *cosval);
9388double4 __ovld sincos(double4 x, double4 *cosval);
9389double8 __ovld sincos(double8 x, double8 *cosval);
9390double16 __ovld sincos(double16 x, double16 *cosval);
9391#endif //cl_khr_fp64
9392#ifdef cl_khr_fp16
9393half __ovld sincos(half x, half *cosval);
9394half2 __ovld sincos(half2 x, half2 *cosval);
9395half3 __ovld sincos(half3 x, half3 *cosval);
9396half4 __ovld sincos(half4 x, half4 *cosval);
9397half8 __ovld sincos(half8 x, half8 *cosval);
9398half16 __ovld sincos(half16 x, half16 *cosval);
9399#endif //cl_khr_fp16
9400#else
9401float __ovld sincos(float x, __global float *cosval);
9402float2 __ovld sincos(float2 x, __global float2 *cosval);
9403float3 __ovld sincos(float3 x, __global float3 *cosval);
9404float4 __ovld sincos(float4 x, __global float4 *cosval);
9405float8 __ovld sincos(float8 x, __global float8 *cosval);
9406float16 __ovld sincos(float16 x, __global float16 *cosval);
9407float __ovld sincos(float x, __local float *cosval);
9408float2 __ovld sincos(float2 x, __local float2 *cosval);
9409float3 __ovld sincos(float3 x, __local float3 *cosval);
9410float4 __ovld sincos(float4 x, __local float4 *cosval);
9411float8 __ovld sincos(float8 x, __local float8 *cosval);
9412float16 __ovld sincos(float16 x, __local float16 *cosval);
9413float __ovld sincos(float x, __private float *cosval);
9414float2 __ovld sincos(float2 x, __private float2 *cosval);
9415float3 __ovld sincos(float3 x, __private float3 *cosval);
9416float4 __ovld sincos(float4 x, __private float4 *cosval);
9417float8 __ovld sincos(float8 x, __private float8 *cosval);
9418float16 __ovld sincos(float16 x, __private float16 *cosval);
9419#ifdef cl_khr_fp64
9420double __ovld sincos(double x, __global double *cosval);
9421double2 __ovld sincos(double2 x, __global double2 *cosval);
9422double3 __ovld sincos(double3 x, __global double3 *cosval);
9423double4 __ovld sincos(double4 x, __global double4 *cosval);
9424double8 __ovld sincos(double8 x, __global double8 *cosval);
9425double16 __ovld sincos(double16 x, __global double16 *cosval);
9426double __ovld sincos(double x, __local double *cosval);
9427double2 __ovld sincos(double2 x, __local double2 *cosval);
9428double3 __ovld sincos(double3 x, __local double3 *cosval);
9429double4 __ovld sincos(double4 x, __local double4 *cosval);
9430double8 __ovld sincos(double8 x, __local double8 *cosval);
9431double16 __ovld sincos(double16 x, __local double16 *cosval);
9432double __ovld sincos(double x, __private double *cosval);
9433double2 __ovld sincos(double2 x, __private double2 *cosval);
9434double3 __ovld sincos(double3 x, __private double3 *cosval);
9435double4 __ovld sincos(double4 x, __private double4 *cosval);
9436double8 __ovld sincos(double8 x, __private double8 *cosval);
9437double16 __ovld sincos(double16 x, __private double16 *cosval);
9438#endif //cl_khr_fp64
9439#ifdef cl_khr_fp16
9440half __ovld sincos(half x, __global half *cosval);
9441half2 __ovld sincos(half2 x, __global half2 *cosval);
9442half3 __ovld sincos(half3 x, __global half3 *cosval);
9443half4 __ovld sincos(half4 x, __global half4 *cosval);
9444half8 __ovld sincos(half8 x, __global half8 *cosval);
9445half16 __ovld sincos(half16 x, __global half16 *cosval);
9446half __ovld sincos(half x, __local half *cosval);
9447half2 __ovld sincos(half2 x, __local half2 *cosval);
9448half3 __ovld sincos(half3 x, __local half3 *cosval);
9449half4 __ovld sincos(half4 x, __local half4 *cosval);
9450half8 __ovld sincos(half8 x, __local half8 *cosval);
9451half16 __ovld sincos(half16 x, __local half16 *cosval);
9452half __ovld sincos(half x, __private half *cosval);
9453half2 __ovld sincos(half2 x, __private half2 *cosval);
9454half3 __ovld sincos(half3 x, __private half3 *cosval);
9455half4 __ovld sincos(half4 x, __private half4 *cosval);
9456half8 __ovld sincos(half8 x, __private half8 *cosval);
9457half16 __ovld sincos(half16 x, __private half16 *cosval);
9458#endif //cl_khr_fp16
9459#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9460
9461/**
9462 * Compute hyperbolic sine.
9463 */
9464float __ovld __cnfn sinh(float);
9465float2 __ovld __cnfn sinh(float2);
9466float3 __ovld __cnfn sinh(float3);
9467float4 __ovld __cnfn sinh(float4);
9468float8 __ovld __cnfn sinh(float8);
9469float16 __ovld __cnfn sinh(float16);
9470#ifdef cl_khr_fp64
9471double __ovld __cnfn sinh(double);
9472double2 __ovld __cnfn sinh(double2);
9473double3 __ovld __cnfn sinh(double3);
9474double4 __ovld __cnfn sinh(double4);
9475double8 __ovld __cnfn sinh(double8);
9476double16 __ovld __cnfn sinh(double16);
9477#endif //cl_khr_fp64
9478#ifdef cl_khr_fp16
9479half __ovld __cnfn sinh(half);
9480half2 __ovld __cnfn sinh(half2);
9481half3 __ovld __cnfn sinh(half3);
9482half4 __ovld __cnfn sinh(half4);
9483half8 __ovld __cnfn sinh(half8);
9484half16 __ovld __cnfn sinh(half16);
9485#endif //cl_khr_fp16
9486
9487/**
9488 * Compute sin (PI * x).
9489 */
9490float __ovld __cnfn sinpi(float x);
9491float2 __ovld __cnfn sinpi(float2 x);
9492float3 __ovld __cnfn sinpi(float3 x);
9493float4 __ovld __cnfn sinpi(float4 x);
9494float8 __ovld __cnfn sinpi(float8 x);
9495float16 __ovld __cnfn sinpi(float16 x);
9496#ifdef cl_khr_fp64
9497double __ovld __cnfn sinpi(double x);
9498double2 __ovld __cnfn sinpi(double2 x);
9499double3 __ovld __cnfn sinpi(double3 x);
9500double4 __ovld __cnfn sinpi(double4 x);
9501double8 __ovld __cnfn sinpi(double8 x);
9502double16 __ovld __cnfn sinpi(double16 x);
9503#endif //cl_khr_fp64
9504#ifdef cl_khr_fp16
9505half __ovld __cnfn sinpi(half x);
9506half2 __ovld __cnfn sinpi(half2 x);
9507half3 __ovld __cnfn sinpi(half3 x);
9508half4 __ovld __cnfn sinpi(half4 x);
9509half8 __ovld __cnfn sinpi(half8 x);
9510half16 __ovld __cnfn sinpi(half16 x);
9511#endif //cl_khr_fp16
9512
9513/**
9514 * Compute square root.
9515 */
9516float __ovld __cnfn sqrt(float);
9517float2 __ovld __cnfn sqrt(float2);
9518float3 __ovld __cnfn sqrt(float3);
9519float4 __ovld __cnfn sqrt(float4);
9520float8 __ovld __cnfn sqrt(float8);
9521float16 __ovld __cnfn sqrt(float16);
9522#ifdef cl_khr_fp64
9523double __ovld __cnfn sqrt(double);
9524double2 __ovld __cnfn sqrt(double2);
9525double3 __ovld __cnfn sqrt(double3);
9526double4 __ovld __cnfn sqrt(double4);
9527double8 __ovld __cnfn sqrt(double8);
9528double16 __ovld __cnfn sqrt(double16);
9529#endif //cl_khr_fp64
9530#ifdef cl_khr_fp16
9531half __ovld __cnfn sqrt(half);
9532half2 __ovld __cnfn sqrt(half2);
9533half3 __ovld __cnfn sqrt(half3);
9534half4 __ovld __cnfn sqrt(half4);
9535half8 __ovld __cnfn sqrt(half8);
9536half16 __ovld __cnfn sqrt(half16);
9537#endif //cl_khr_fp16
9538
9539/**
9540 * Compute tangent.
9541 */
9542float __ovld __cnfn tan(float);
9543float2 __ovld __cnfn tan(float2);
9544float3 __ovld __cnfn tan(float3);
9545float4 __ovld __cnfn tan(float4);
9546float8 __ovld __cnfn tan(float8);
9547float16 __ovld __cnfn tan(float16);
9548#ifdef cl_khr_fp64
9549double __ovld __cnfn tan(double);
9550double2 __ovld __cnfn tan(double2);
9551double3 __ovld __cnfn tan(double3);
9552double4 __ovld __cnfn tan(double4);
9553double8 __ovld __cnfn tan(double8);
9554double16 __ovld __cnfn tan(double16);
9555#endif //cl_khr_fp64
9556#ifdef cl_khr_fp16
9557half __ovld __cnfn tan(half);
9558half2 __ovld __cnfn tan(half2);
9559half3 __ovld __cnfn tan(half3);
9560half4 __ovld __cnfn tan(half4);
9561half8 __ovld __cnfn tan(half8);
9562half16 __ovld __cnfn tan(half16);
9563#endif //cl_khr_fp16
9564
9565/**
9566 * Compute hyperbolic tangent.
9567 */
9568float __ovld __cnfn tanh(float);
9569float2 __ovld __cnfn tanh(float2);
9570float3 __ovld __cnfn tanh(float3);
9571float4 __ovld __cnfn tanh(float4);
9572float8 __ovld __cnfn tanh(float8);
9573float16 __ovld __cnfn tanh(float16);
9574#ifdef cl_khr_fp64
9575double __ovld __cnfn tanh(double);
9576double2 __ovld __cnfn tanh(double2);
9577double3 __ovld __cnfn tanh(double3);
9578double4 __ovld __cnfn tanh(double4);
9579double8 __ovld __cnfn tanh(double8);
9580double16 __ovld __cnfn tanh(double16);
9581#endif //cl_khr_fp64
9582#ifdef cl_khr_fp16
9583half __ovld __cnfn tanh(half);
9584half2 __ovld __cnfn tanh(half2);
9585half3 __ovld __cnfn tanh(half3);
9586half4 __ovld __cnfn tanh(half4);
9587half8 __ovld __cnfn tanh(half8);
9588half16 __ovld __cnfn tanh(half16);
9589#endif //cl_khr_fp16
9590
9591/**
9592 * Compute tan (PI * x).
9593 */
9594float __ovld __cnfn tanpi(float x);
9595float2 __ovld __cnfn tanpi(float2 x);
9596float3 __ovld __cnfn tanpi(float3 x);
9597float4 __ovld __cnfn tanpi(float4 x);
9598float8 __ovld __cnfn tanpi(float8 x);
9599float16 __ovld __cnfn tanpi(float16 x);
9600#ifdef cl_khr_fp64
9601double __ovld __cnfn tanpi(double x);
9602double2 __ovld __cnfn tanpi(double2 x);
9603double3 __ovld __cnfn tanpi(double3 x);
9604double4 __ovld __cnfn tanpi(double4 x);
9605double8 __ovld __cnfn tanpi(double8 x);
9606double16 __ovld __cnfn tanpi(double16 x);
9607#endif //cl_khr_fp64
9608#ifdef cl_khr_fp16
9609half __ovld __cnfn tanpi(half x);
9610half2 __ovld __cnfn tanpi(half2 x);
9611half3 __ovld __cnfn tanpi(half3 x);
9612half4 __ovld __cnfn tanpi(half4 x);
9613half8 __ovld __cnfn tanpi(half8 x);
9614half16 __ovld __cnfn tanpi(half16 x);
9615#endif //cl_khr_fp16
9616
9617/**
9618 * Compute the gamma function.
9619 */
9620float __ovld __cnfn tgamma(float);
9621float2 __ovld __cnfn tgamma(float2);
9622float3 __ovld __cnfn tgamma(float3);
9623float4 __ovld __cnfn tgamma(float4);
9624float8 __ovld __cnfn tgamma(float8);
9625float16 __ovld __cnfn tgamma(float16);
9626#ifdef cl_khr_fp64
9627double __ovld __cnfn tgamma(double);
9628double2 __ovld __cnfn tgamma(double2);
9629double3 __ovld __cnfn tgamma(double3);
9630double4 __ovld __cnfn tgamma(double4);
9631double8 __ovld __cnfn tgamma(double8);
9632double16 __ovld __cnfn tgamma(double16);
9633#endif //cl_khr_fp64
9634#ifdef cl_khr_fp16
9635half __ovld __cnfn tgamma(half);
9636half2 __ovld __cnfn tgamma(half2);
9637half3 __ovld __cnfn tgamma(half3);
9638half4 __ovld __cnfn tgamma(half4);
9639half8 __ovld __cnfn tgamma(half8);
9640half16 __ovld __cnfn tgamma(half16);
9641#endif //cl_khr_fp16
9642
9643/**
9644 * Round to integral value using the round to zero
9645 * rounding mode.
9646 */
9647float __ovld __cnfn trunc(float);
9648float2 __ovld __cnfn trunc(float2);
9649float3 __ovld __cnfn trunc(float3);
9650float4 __ovld __cnfn trunc(float4);
9651float8 __ovld __cnfn trunc(float8);
9652float16 __ovld __cnfn trunc(float16);
9653#ifdef cl_khr_fp64
9654double __ovld __cnfn trunc(double);
9655double2 __ovld __cnfn trunc(double2);
9656double3 __ovld __cnfn trunc(double3);
9657double4 __ovld __cnfn trunc(double4);
9658double8 __ovld __cnfn trunc(double8);
9659double16 __ovld __cnfn trunc(double16);
9660#endif //cl_khr_fp64
9661#ifdef cl_khr_fp16
9662half __ovld __cnfn trunc(half);
9663half2 __ovld __cnfn trunc(half2);
9664half3 __ovld __cnfn trunc(half3);
9665half4 __ovld __cnfn trunc(half4);
9666half8 __ovld __cnfn trunc(half8);
9667half16 __ovld __cnfn trunc(half16);
9668#endif //cl_khr_fp16
9669
9670/**
9671 * Compute cosine. x must be in the range -2^16 ... +2^16.
9672 */
9673float __ovld __cnfn half_cos(float x);
9674float2 __ovld __cnfn half_cos(float2 x);
9675float3 __ovld __cnfn half_cos(float3 x);
9676float4 __ovld __cnfn half_cos(float4 x);
9677float8 __ovld __cnfn half_cos(float8 x);
9678float16 __ovld __cnfn half_cos(float16 x);
9679
9680/**
9681 * Compute x / y.
9682 */
9683float __ovld __cnfn half_divide(float x, float y);
9684float2 __ovld __cnfn half_divide(float2 x, float2 y);
9685float3 __ovld __cnfn half_divide(float3 x, float3 y);
9686float4 __ovld __cnfn half_divide(float4 x, float4 y);
9687float8 __ovld __cnfn half_divide(float8 x, float8 y);
9688float16 __ovld __cnfn half_divide(float16 x, float16 y);
9689
9690/**
9691 * Compute the base- e exponential of x.
9692 */
9693float __ovld __cnfn half_exp(float x);
9694float2 __ovld __cnfn half_exp(float2 x);
9695float3 __ovld __cnfn half_exp(float3 x);
9696float4 __ovld __cnfn half_exp(float4 x);
9697float8 __ovld __cnfn half_exp(float8 x);
9698float16 __ovld __cnfn half_exp(float16 x);
9699
9700/**
9701 * Compute the base- 2 exponential of x.
9702 */
9703float __ovld __cnfn half_exp2(float x);
9704float2 __ovld __cnfn half_exp2(float2 x);
9705float3 __ovld __cnfn half_exp2(float3 x);
9706float4 __ovld __cnfn half_exp2(float4 x);
9707float8 __ovld __cnfn half_exp2(float8 x);
9708float16 __ovld __cnfn half_exp2(float16 x);
9709
9710/**
9711 * Compute the base- 10 exponential of x.
9712 */
9713float __ovld __cnfn half_exp10(float x);
9714float2 __ovld __cnfn half_exp10(float2 x);
9715float3 __ovld __cnfn half_exp10(float3 x);
9716float4 __ovld __cnfn half_exp10(float4 x);
9717float8 __ovld __cnfn half_exp10(float8 x);
9718float16 __ovld __cnfn half_exp10(float16 x);
9719
9720/**
9721 * Compute natural logarithm.
9722 */
9723float __ovld __cnfn half_log(float x);
9724float2 __ovld __cnfn half_log(float2 x);
9725float3 __ovld __cnfn half_log(float3 x);
9726float4 __ovld __cnfn half_log(float4 x);
9727float8 __ovld __cnfn half_log(float8 x);
9728float16 __ovld __cnfn half_log(float16 x);
9729
9730/**
9731 * Compute a base 2 logarithm.
9732 */
9733float __ovld __cnfn half_log2(float x);
9734float2 __ovld __cnfn half_log2(float2 x);
9735float3 __ovld __cnfn half_log2(float3 x);
9736float4 __ovld __cnfn half_log2(float4 x);
9737float8 __ovld __cnfn half_log2(float8 x);
9738float16 __ovld __cnfn half_log2(float16 x);
9739
9740/**
9741 * Compute a base 10 logarithm.
9742 */
9743float __ovld __cnfn half_log10(float x);
9744float2 __ovld __cnfn half_log10(float2 x);
9745float3 __ovld __cnfn half_log10(float3 x);
9746float4 __ovld __cnfn half_log10(float4 x);
9747float8 __ovld __cnfn half_log10(float8 x);
9748float16 __ovld __cnfn half_log10(float16 x);
9749
9750/**
9751 * Compute x to the power y, where x is >= 0.
9752 */
9753float __ovld __cnfn half_powr(float x, float y);
9754float2 __ovld __cnfn half_powr(float2 x, float2 y);
9755float3 __ovld __cnfn half_powr(float3 x, float3 y);
9756float4 __ovld __cnfn half_powr(float4 x, float4 y);
9757float8 __ovld __cnfn half_powr(float8 x, float8 y);
9758float16 __ovld __cnfn half_powr(float16 x, float16 y);
9759
9760/**
9761 * Compute reciprocal.
9762 */
9763float __ovld __cnfn half_recip(float x);
9764float2 __ovld __cnfn half_recip(float2 x);
9765float3 __ovld __cnfn half_recip(float3 x);
9766float4 __ovld __cnfn half_recip(float4 x);
9767float8 __ovld __cnfn half_recip(float8 x);
9768float16 __ovld __cnfn half_recip(float16 x);
9769
9770/**
9771 * Compute inverse square root.
9772 */
9773float __ovld __cnfn half_rsqrt(float x);
9774float2 __ovld __cnfn half_rsqrt(float2 x);
9775float3 __ovld __cnfn half_rsqrt(float3 x);
9776float4 __ovld __cnfn half_rsqrt(float4 x);
9777float8 __ovld __cnfn half_rsqrt(float8 x);
9778float16 __ovld __cnfn half_rsqrt(float16 x);
9779
9780/**
9781 * Compute sine. x must be in the range -2^16 ... +2^16.
9782 */
9783float __ovld __cnfn half_sin(float x);
9784float2 __ovld __cnfn half_sin(float2 x);
9785float3 __ovld __cnfn half_sin(float3 x);
9786float4 __ovld __cnfn half_sin(float4 x);
9787float8 __ovld __cnfn half_sin(float8 x);
9788float16 __ovld __cnfn half_sin(float16 x);
9789
9790/**
9791 * Compute square root.
9792 */
9793float __ovld __cnfn half_sqrt(float x);
9794float2 __ovld __cnfn half_sqrt(float2 x);
9795float3 __ovld __cnfn half_sqrt(float3 x);
9796float4 __ovld __cnfn half_sqrt(float4 x);
9797float8 __ovld __cnfn half_sqrt(float8 x);
9798float16 __ovld __cnfn half_sqrt(float16 x);
9799
9800/**
9801 * Compute tangent. x must be in the range -216 ... +216.
9802 */
9803float __ovld __cnfn half_tan(float x);
9804float2 __ovld __cnfn half_tan(float2 x);
9805float3 __ovld __cnfn half_tan(float3 x);
9806float4 __ovld __cnfn half_tan(float4 x);
9807float8 __ovld __cnfn half_tan(float8 x);
9808float16 __ovld __cnfn half_tan(float16 x);
9809
9810/**
9811 * Compute cosine over an implementation-defined range.
9812 * The maximum error is implementation-defined.
9813 */
9814float __ovld __cnfn native_cos(float x);
9815float2 __ovld __cnfn native_cos(float2 x);
9816float3 __ovld __cnfn native_cos(float3 x);
9817float4 __ovld __cnfn native_cos(float4 x);
9818float8 __ovld __cnfn native_cos(float8 x);
9819float16 __ovld __cnfn native_cos(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009820
9821/**
9822 * Compute x / y over an implementation-defined range.
9823 * The maximum error is implementation-defined.
9824 */
9825float __ovld __cnfn native_divide(float x, float y);
9826float2 __ovld __cnfn native_divide(float2 x, float2 y);
9827float3 __ovld __cnfn native_divide(float3 x, float3 y);
9828float4 __ovld __cnfn native_divide(float4 x, float4 y);
9829float8 __ovld __cnfn native_divide(float8 x, float8 y);
9830float16 __ovld __cnfn native_divide(float16 x, float16 y);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009831
9832/**
9833 * Compute the base- e exponential of x over an
9834 * implementation-defined range. The maximum error is
9835 * implementation-defined.
9836 */
9837float __ovld __cnfn native_exp(float x);
9838float2 __ovld __cnfn native_exp(float2 x);
9839float3 __ovld __cnfn native_exp(float3 x);
9840float4 __ovld __cnfn native_exp(float4 x);
9841float8 __ovld __cnfn native_exp(float8 x);
9842float16 __ovld __cnfn native_exp(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009843
9844/**
9845 * Compute the base- 2 exponential of x over an
9846 * implementation-defined range. The maximum error is
9847 * implementation-defined.
9848 */
9849float __ovld __cnfn native_exp2(float x);
9850float2 __ovld __cnfn native_exp2(float2 x);
9851float3 __ovld __cnfn native_exp2(float3 x);
9852float4 __ovld __cnfn native_exp2(float4 x);
9853float8 __ovld __cnfn native_exp2(float8 x);
9854float16 __ovld __cnfn native_exp2(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009855
9856/**
9857 * Compute the base- 10 exponential of x over an
9858 * implementation-defined range. The maximum error is
9859 * implementation-defined.
9860 */
9861float __ovld __cnfn native_exp10(float x);
9862float2 __ovld __cnfn native_exp10(float2 x);
9863float3 __ovld __cnfn native_exp10(float3 x);
9864float4 __ovld __cnfn native_exp10(float4 x);
9865float8 __ovld __cnfn native_exp10(float8 x);
9866float16 __ovld __cnfn native_exp10(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009867
9868/**
9869 * Compute natural logarithm over an implementationdefined
9870 * range. The maximum error is implementation
9871 * defined.
9872 */
9873float __ovld __cnfn native_log(float x);
9874float2 __ovld __cnfn native_log(float2 x);
9875float3 __ovld __cnfn native_log(float3 x);
9876float4 __ovld __cnfn native_log(float4 x);
9877float8 __ovld __cnfn native_log(float8 x);
9878float16 __ovld __cnfn native_log(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009879
9880/**
9881 * Compute a base 2 logarithm over an implementationdefined
9882 * range. The maximum error is implementationdefined.
9883 */
9884float __ovld __cnfn native_log2(float x);
9885float2 __ovld __cnfn native_log2(float2 x);
9886float3 __ovld __cnfn native_log2(float3 x);
9887float4 __ovld __cnfn native_log2(float4 x);
9888float8 __ovld __cnfn native_log2(float8 x);
9889float16 __ovld __cnfn native_log2(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009890
9891/**
9892 * Compute a base 10 logarithm over an implementationdefined
9893 * range. The maximum error is implementationdefined.
9894 */
9895float __ovld __cnfn native_log10(float x);
9896float2 __ovld __cnfn native_log10(float2 x);
9897float3 __ovld __cnfn native_log10(float3 x);
9898float4 __ovld __cnfn native_log10(float4 x);
9899float8 __ovld __cnfn native_log10(float8 x);
9900float16 __ovld __cnfn native_log10(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009901
9902/**
9903 * Compute x to the power y, where x is >= 0. The range of
9904 * x and y are implementation-defined. The maximum error
9905 * is implementation-defined.
9906 */
9907float __ovld __cnfn native_powr(float x, float y);
9908float2 __ovld __cnfn native_powr(float2 x, float2 y);
9909float3 __ovld __cnfn native_powr(float3 x, float3 y);
9910float4 __ovld __cnfn native_powr(float4 x, float4 y);
9911float8 __ovld __cnfn native_powr(float8 x, float8 y);
9912float16 __ovld __cnfn native_powr(float16 x, float16 y);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009913
9914/**
9915 * Compute reciprocal over an implementation-defined
9916 * range. The maximum error is implementation-defined.
9917 */
9918float __ovld __cnfn native_recip(float x);
9919float2 __ovld __cnfn native_recip(float2 x);
9920float3 __ovld __cnfn native_recip(float3 x);
9921float4 __ovld __cnfn native_recip(float4 x);
9922float8 __ovld __cnfn native_recip(float8 x);
9923float16 __ovld __cnfn native_recip(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009924
9925/**
9926 * Compute inverse square root over an implementationdefined
9927 * range. The maximum error is implementationdefined.
9928 */
9929float __ovld __cnfn native_rsqrt(float x);
9930float2 __ovld __cnfn native_rsqrt(float2 x);
9931float3 __ovld __cnfn native_rsqrt(float3 x);
9932float4 __ovld __cnfn native_rsqrt(float4 x);
9933float8 __ovld __cnfn native_rsqrt(float8 x);
9934float16 __ovld __cnfn native_rsqrt(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009935
9936/**
9937 * Compute sine over an implementation-defined range.
9938 * The maximum error is implementation-defined.
9939 */
9940float __ovld __cnfn native_sin(float x);
9941float2 __ovld __cnfn native_sin(float2 x);
9942float3 __ovld __cnfn native_sin(float3 x);
9943float4 __ovld __cnfn native_sin(float4 x);
9944float8 __ovld __cnfn native_sin(float8 x);
9945float16 __ovld __cnfn native_sin(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009946
9947/**
9948 * Compute square root over an implementation-defined
9949 * range. The maximum error is implementation-defined.
9950 */
9951float __ovld __cnfn native_sqrt(float x);
9952float2 __ovld __cnfn native_sqrt(float2 x);
9953float3 __ovld __cnfn native_sqrt(float3 x);
9954float4 __ovld __cnfn native_sqrt(float4 x);
9955float8 __ovld __cnfn native_sqrt(float8 x);
9956float16 __ovld __cnfn native_sqrt(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009957
9958/**
9959 * Compute tangent over an implementation-defined range.
9960 * The maximum error is implementation-defined.
9961 */
9962float __ovld __cnfn native_tan(float x);
9963float2 __ovld __cnfn native_tan(float2 x);
9964float3 __ovld __cnfn native_tan(float3 x);
9965float4 __ovld __cnfn native_tan(float4 x);
9966float8 __ovld __cnfn native_tan(float8 x);
9967float16 __ovld __cnfn native_tan(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009968
9969// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
9970
9971/**
9972 * Returns | x |.
9973 */
9974uchar __ovld __cnfn abs(char x);
9975uchar __ovld __cnfn abs(uchar x);
9976uchar2 __ovld __cnfn abs(char2 x);
9977uchar2 __ovld __cnfn abs(uchar2 x);
9978uchar3 __ovld __cnfn abs(char3 x);
9979uchar3 __ovld __cnfn abs(uchar3 x);
9980uchar4 __ovld __cnfn abs(char4 x);
9981uchar4 __ovld __cnfn abs(uchar4 x);
9982uchar8 __ovld __cnfn abs(char8 x);
9983uchar8 __ovld __cnfn abs(uchar8 x);
9984uchar16 __ovld __cnfn abs(char16 x);
9985uchar16 __ovld __cnfn abs(uchar16 x);
9986ushort __ovld __cnfn abs(short x);
9987ushort __ovld __cnfn abs(ushort x);
9988ushort2 __ovld __cnfn abs(short2 x);
9989ushort2 __ovld __cnfn abs(ushort2 x);
9990ushort3 __ovld __cnfn abs(short3 x);
9991ushort3 __ovld __cnfn abs(ushort3 x);
9992ushort4 __ovld __cnfn abs(short4 x);
9993ushort4 __ovld __cnfn abs(ushort4 x);
9994ushort8 __ovld __cnfn abs(short8 x);
9995ushort8 __ovld __cnfn abs(ushort8 x);
9996ushort16 __ovld __cnfn abs(short16 x);
9997ushort16 __ovld __cnfn abs(ushort16 x);
9998uint __ovld __cnfn abs(int x);
9999uint __ovld __cnfn abs(uint x);
10000uint2 __ovld __cnfn abs(int2 x);
10001uint2 __ovld __cnfn abs(uint2 x);
10002uint3 __ovld __cnfn abs(int3 x);
10003uint3 __ovld __cnfn abs(uint3 x);
10004uint4 __ovld __cnfn abs(int4 x);
10005uint4 __ovld __cnfn abs(uint4 x);
10006uint8 __ovld __cnfn abs(int8 x);
10007uint8 __ovld __cnfn abs(uint8 x);
10008uint16 __ovld __cnfn abs(int16 x);
10009uint16 __ovld __cnfn abs(uint16 x);
10010ulong __ovld __cnfn abs(long x);
10011ulong __ovld __cnfn abs(ulong x);
10012ulong2 __ovld __cnfn abs(long2 x);
10013ulong2 __ovld __cnfn abs(ulong2 x);
10014ulong3 __ovld __cnfn abs(long3 x);
10015ulong3 __ovld __cnfn abs(ulong3 x);
10016ulong4 __ovld __cnfn abs(long4 x);
10017ulong4 __ovld __cnfn abs(ulong4 x);
10018ulong8 __ovld __cnfn abs(long8 x);
10019ulong8 __ovld __cnfn abs(ulong8 x);
10020ulong16 __ovld __cnfn abs(long16 x);
10021ulong16 __ovld __cnfn abs(ulong16 x);
10022
10023/**
10024 * Returns | x - y | without modulo overflow.
10025 */
10026uchar __ovld __cnfn abs_diff(char x, char y);
10027uchar __ovld __cnfn abs_diff(uchar x, uchar y);
10028uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
10029uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
10030uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
10031uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
10032uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
10033uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
10034uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
10035uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
10036uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
10037uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
10038ushort __ovld __cnfn abs_diff(short x, short y);
10039ushort __ovld __cnfn abs_diff(ushort x, ushort y);
10040ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
10041ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
10042ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
10043ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
10044ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
10045ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
10046ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
10047ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
10048ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
10049ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
10050uint __ovld __cnfn abs_diff(int x, int y);
10051uint __ovld __cnfn abs_diff(uint x, uint y);
10052uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
10053uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
10054uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
10055uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
10056uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
10057uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
10058uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
10059uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
10060uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
10061uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
10062ulong __ovld __cnfn abs_diff(long x, long y);
10063ulong __ovld __cnfn abs_diff(ulong x, ulong y);
10064ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
10065ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
10066ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
10067ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
10068ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
10069ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
10070ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
10071ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
10072ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
10073ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
10074
10075/**
10076 * Returns x + y and saturates the result.
10077 */
10078char __ovld __cnfn add_sat(char x, char y);
10079uchar __ovld __cnfn add_sat(uchar x, uchar y);
10080char2 __ovld __cnfn add_sat(char2 x, char2 y);
10081uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
10082char3 __ovld __cnfn add_sat(char3 x, char3 y);
10083uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
10084char4 __ovld __cnfn add_sat(char4 x, char4 y);
10085uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
10086char8 __ovld __cnfn add_sat(char8 x, char8 y);
10087uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
10088char16 __ovld __cnfn add_sat(char16 x, char16 y);
10089uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
10090short __ovld __cnfn add_sat(short x, short y);
10091ushort __ovld __cnfn add_sat(ushort x, ushort y);
10092short2 __ovld __cnfn add_sat(short2 x, short2 y);
10093ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
10094short3 __ovld __cnfn add_sat(short3 x, short3 y);
10095ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
10096short4 __ovld __cnfn add_sat(short4 x, short4 y);
10097ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
10098short8 __ovld __cnfn add_sat(short8 x, short8 y);
10099ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
10100short16 __ovld __cnfn add_sat(short16 x, short16 y);
10101ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
10102int __ovld __cnfn add_sat(int x, int y);
10103uint __ovld __cnfn add_sat(uint x, uint y);
10104int2 __ovld __cnfn add_sat(int2 x, int2 y);
10105uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
10106int3 __ovld __cnfn add_sat(int3 x, int3 y);
10107uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
10108int4 __ovld __cnfn add_sat(int4 x, int4 y);
10109uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
10110int8 __ovld __cnfn add_sat(int8 x, int8 y);
10111uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
10112int16 __ovld __cnfn add_sat(int16 x, int16 y);
10113uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
10114long __ovld __cnfn add_sat(long x, long y);
10115ulong __ovld __cnfn add_sat(ulong x, ulong y);
10116long2 __ovld __cnfn add_sat(long2 x, long2 y);
10117ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
10118long3 __ovld __cnfn add_sat(long3 x, long3 y);
10119ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
10120long4 __ovld __cnfn add_sat(long4 x, long4 y);
10121ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
10122long8 __ovld __cnfn add_sat(long8 x, long8 y);
10123ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
10124long16 __ovld __cnfn add_sat(long16 x, long16 y);
10125ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
10126
10127/**
10128 * Returns (x + y) >> 1. The intermediate sum does
10129 * not modulo overflow.
10130 */
10131char __ovld __cnfn hadd(char x, char y);
10132uchar __ovld __cnfn hadd(uchar x, uchar y);
10133char2 __ovld __cnfn hadd(char2 x, char2 y);
10134uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
10135char3 __ovld __cnfn hadd(char3 x, char3 y);
10136uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
10137char4 __ovld __cnfn hadd(char4 x, char4 y);
10138uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
10139char8 __ovld __cnfn hadd(char8 x, char8 y);
10140uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
10141char16 __ovld __cnfn hadd(char16 x, char16 y);
10142uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
10143short __ovld __cnfn hadd(short x, short y);
10144ushort __ovld __cnfn hadd(ushort x, ushort y);
10145short2 __ovld __cnfn hadd(short2 x, short2 y);
10146ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
10147short3 __ovld __cnfn hadd(short3 x, short3 y);
10148ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
10149short4 __ovld __cnfn hadd(short4 x, short4 y);
10150ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
10151short8 __ovld __cnfn hadd(short8 x, short8 y);
10152ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
10153short16 __ovld __cnfn hadd(short16 x, short16 y);
10154ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
10155int __ovld __cnfn hadd(int x, int y);
10156uint __ovld __cnfn hadd(uint x, uint y);
10157int2 __ovld __cnfn hadd(int2 x, int2 y);
10158uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
10159int3 __ovld __cnfn hadd(int3 x, int3 y);
10160uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
10161int4 __ovld __cnfn hadd(int4 x, int4 y);
10162uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
10163int8 __ovld __cnfn hadd(int8 x, int8 y);
10164uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
10165int16 __ovld __cnfn hadd(int16 x, int16 y);
10166uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
10167long __ovld __cnfn hadd(long x, long y);
10168ulong __ovld __cnfn hadd(ulong x, ulong y);
10169long2 __ovld __cnfn hadd(long2 x, long2 y);
10170ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
10171long3 __ovld __cnfn hadd(long3 x, long3 y);
10172ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
10173long4 __ovld __cnfn hadd(long4 x, long4 y);
10174ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
10175long8 __ovld __cnfn hadd(long8 x, long8 y);
10176ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
10177long16 __ovld __cnfn hadd(long16 x, long16 y);
10178ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
10179
10180/**
10181 * Returns (x + y + 1) >> 1. The intermediate sum
10182 * does not modulo overflow.
10183 */
10184char __ovld __cnfn rhadd(char x, char y);
10185uchar __ovld __cnfn rhadd(uchar x, uchar y);
10186char2 __ovld __cnfn rhadd(char2 x, char2 y);
10187uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
10188char3 __ovld __cnfn rhadd(char3 x, char3 y);
10189uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
10190char4 __ovld __cnfn rhadd(char4 x, char4 y);
10191uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
10192char8 __ovld __cnfn rhadd(char8 x, char8 y);
10193uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
10194char16 __ovld __cnfn rhadd(char16 x, char16 y);
10195uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
10196short __ovld __cnfn rhadd(short x, short y);
10197ushort __ovld __cnfn rhadd(ushort x, ushort y);
10198short2 __ovld __cnfn rhadd(short2 x, short2 y);
10199ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
10200short3 __ovld __cnfn rhadd(short3 x, short3 y);
10201ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
10202short4 __ovld __cnfn rhadd(short4 x, short4 y);
10203ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
10204short8 __ovld __cnfn rhadd(short8 x, short8 y);
10205ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
10206short16 __ovld __cnfn rhadd(short16 x, short16 y);
10207ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
10208int __ovld __cnfn rhadd(int x, int y);
10209uint __ovld __cnfn rhadd(uint x, uint y);
10210int2 __ovld __cnfn rhadd(int2 x, int2 y);
10211uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
10212int3 __ovld __cnfn rhadd(int3 x, int3 y);
10213uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
10214int4 __ovld __cnfn rhadd(int4 x, int4 y);
10215uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
10216int8 __ovld __cnfn rhadd(int8 x, int8 y);
10217uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
10218int16 __ovld __cnfn rhadd(int16 x, int16 y);
10219uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
10220long __ovld __cnfn rhadd(long x, long y);
10221ulong __ovld __cnfn rhadd(ulong x, ulong y);
10222long2 __ovld __cnfn rhadd(long2 x, long2 y);
10223ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
10224long3 __ovld __cnfn rhadd(long3 x, long3 y);
10225ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
10226long4 __ovld __cnfn rhadd(long4 x, long4 y);
10227ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
10228long8 __ovld __cnfn rhadd(long8 x, long8 y);
10229ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
10230long16 __ovld __cnfn rhadd(long16 x, long16 y);
10231ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
10232
10233/**
10234 * Returns min(max(x, minval), maxval).
10235 * Results are undefined if minval > maxval.
10236 */
10237char __ovld __cnfn clamp(char x, char minval, char maxval);
10238uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10239char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
10240uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
10241char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
10242uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
10243char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
10244uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
10245char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
10246uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
10247char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
10248uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
10249short __ovld __cnfn clamp(short x, short minval, short maxval);
10250ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10251short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
10252ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
10253short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
10254ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
10255short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
10256ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
10257short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
10258ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
10259short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
10260ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
10261int __ovld __cnfn clamp(int x, int minval, int maxval);
10262uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10263int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
10264uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
10265int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
10266uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
10267int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
10268uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
10269int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
10270uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
10271int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
10272uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
10273long __ovld __cnfn clamp(long x, long minval, long maxval);
10274ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10275long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
10276ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
10277long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
10278ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
10279long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
10280ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
10281long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
10282ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
10283long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
10284ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
10285char __ovld __cnfn clamp(char x, char minval, char maxval);
10286uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10287char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
10288uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
10289char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
10290uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
10291char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
10292uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
10293char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
10294uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
10295char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
10296uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
10297short __ovld __cnfn clamp(short x, short minval, short maxval);
10298ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10299short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
10300ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
10301short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
10302ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
10303short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
10304ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
10305short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
10306ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
10307short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
10308ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
10309int __ovld __cnfn clamp(int x, int minval, int maxval);
10310uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10311int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
10312uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
10313int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
10314uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
10315int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
10316uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
10317int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
10318uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
10319int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
10320uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
10321long __ovld __cnfn clamp(long x, long minval, long maxval);
10322ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10323long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
10324ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
10325long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
10326ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
10327long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
10328ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
10329long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
10330ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
10331long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
10332ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
10333
10334/**
10335 * Returns the number of leading 0-bits in x, starting
10336 * at the most significant bit position.
10337 */
10338char __ovld __cnfn clz(char x);
10339uchar __ovld __cnfn clz(uchar x);
10340char2 __ovld __cnfn clz(char2 x);
10341uchar2 __ovld __cnfn clz(uchar2 x);
10342char3 __ovld __cnfn clz(char3 x);
10343uchar3 __ovld __cnfn clz(uchar3 x);
10344char4 __ovld __cnfn clz(char4 x);
10345uchar4 __ovld __cnfn clz(uchar4 x);
10346char8 __ovld __cnfn clz(char8 x);
10347uchar8 __ovld __cnfn clz(uchar8 x);
10348char16 __ovld __cnfn clz(char16 x);
10349uchar16 __ovld __cnfn clz(uchar16 x);
10350short __ovld __cnfn clz(short x);
10351ushort __ovld __cnfn clz(ushort x);
10352short2 __ovld __cnfn clz(short2 x);
10353ushort2 __ovld __cnfn clz(ushort2 x);
10354short3 __ovld __cnfn clz(short3 x);
10355ushort3 __ovld __cnfn clz(ushort3 x);
10356short4 __ovld __cnfn clz(short4 x);
10357ushort4 __ovld __cnfn clz(ushort4 x);
10358short8 __ovld __cnfn clz(short8 x);
10359ushort8 __ovld __cnfn clz(ushort8 x);
10360short16 __ovld __cnfn clz(short16 x);
10361ushort16 __ovld __cnfn clz(ushort16 x);
10362int __ovld __cnfn clz(int x);
10363uint __ovld __cnfn clz(uint x);
10364int2 __ovld __cnfn clz(int2 x);
10365uint2 __ovld __cnfn clz(uint2 x);
10366int3 __ovld __cnfn clz(int3 x);
10367uint3 __ovld __cnfn clz(uint3 x);
10368int4 __ovld __cnfn clz(int4 x);
10369uint4 __ovld __cnfn clz(uint4 x);
10370int8 __ovld __cnfn clz(int8 x);
10371uint8 __ovld __cnfn clz(uint8 x);
10372int16 __ovld __cnfn clz(int16 x);
10373uint16 __ovld __cnfn clz(uint16 x);
10374long __ovld __cnfn clz(long x);
10375ulong __ovld __cnfn clz(ulong x);
10376long2 __ovld __cnfn clz(long2 x);
10377ulong2 __ovld __cnfn clz(ulong2 x);
10378long3 __ovld __cnfn clz(long3 x);
10379ulong3 __ovld __cnfn clz(ulong3 x);
10380long4 __ovld __cnfn clz(long4 x);
10381ulong4 __ovld __cnfn clz(ulong4 x);
10382long8 __ovld __cnfn clz(long8 x);
10383ulong8 __ovld __cnfn clz(ulong8 x);
10384long16 __ovld __cnfn clz(long16 x);
10385ulong16 __ovld __cnfn clz(ulong16 x);
10386
10387/**
10388 * Returns the count of trailing 0-bits in x. If x is 0,
10389 * returns the size in bits of the type of x or
10390 * component type of x, if x is a vector.
10391 */
10392#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
10393char __ovld ctz(char x);
10394uchar __ovld ctz(uchar x);
10395char2 __ovld ctz(char2 x);
10396uchar2 __ovld ctz(uchar2 x);
10397char3 __ovld ctz(char3 x);
10398uchar3 __ovld ctz(uchar3 x);
10399char4 __ovld ctz(char4 x);
10400uchar4 __ovld ctz(uchar4 x);
10401char8 __ovld ctz(char8 x);
10402uchar8 __ovld ctz(uchar8 x);
10403char16 __ovld ctz(char16 x);
10404uchar16 __ovld ctz(uchar16 x);
10405short __ovld ctz(short x);
10406ushort __ovld ctz(ushort x);
10407short2 __ovld ctz(short2 x);
10408ushort2 __ovld ctz(ushort2 x);
10409short3 __ovld ctz(short3 x);
10410ushort3 __ovld ctz(ushort3 x);
10411short4 __ovld ctz(short4 x);
10412ushort4 __ovld ctz(ushort4 x);
10413short8 __ovld ctz(short8 x);
10414ushort8 __ovld ctz(ushort8 x);
10415short16 __ovld ctz(short16 x);
10416ushort16 __ovld ctz(ushort16 x);
10417int __ovld ctz(int x);
10418uint __ovld ctz(uint x);
10419int2 __ovld ctz(int2 x);
10420uint2 __ovld ctz(uint2 x);
10421int3 __ovld ctz(int3 x);
10422uint3 __ovld ctz(uint3 x);
10423int4 __ovld ctz(int4 x);
10424uint4 __ovld ctz(uint4 x);
10425int8 __ovld ctz(int8 x);
10426uint8 __ovld ctz(uint8 x);
10427int16 __ovld ctz(int16 x);
10428uint16 __ovld ctz(uint16 x);
10429long __ovld ctz(long x);
10430ulong __ovld ctz(ulong x);
10431long2 __ovld ctz(long2 x);
10432ulong2 __ovld ctz(ulong2 x);
10433long3 __ovld ctz(long3 x);
10434ulong3 __ovld ctz(ulong3 x);
10435long4 __ovld ctz(long4 x);
10436ulong4 __ovld ctz(ulong4 x);
10437long8 __ovld ctz(long8 x);
10438ulong8 __ovld ctz(ulong8 x);
10439long16 __ovld ctz(long16 x);
10440ulong16 __ovld ctz(ulong16 x);
10441#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
10442
10443/**
10444 * Returns mul_hi(a, b) + c.
10445 */
10446char __ovld __cnfn mad_hi(char a, char b, char c);
10447uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
10448char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
10449uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
10450char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
10451uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
10452char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
10453uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
10454char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
10455uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
10456char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
10457uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
10458short __ovld __cnfn mad_hi(short a, short b, short c);
10459ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
10460short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
10461ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
10462short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
10463ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
10464short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
10465ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
10466short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
10467ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
10468short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
10469ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
10470int __ovld __cnfn mad_hi(int a, int b, int c);
10471uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
10472int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
10473uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
10474int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
10475uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
10476int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
10477uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
10478int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
10479uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
10480int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
10481uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
10482long __ovld __cnfn mad_hi(long a, long b, long c);
10483ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
10484long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
10485ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
10486long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
10487ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
10488long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
10489ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
10490long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
10491ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
10492long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
10493ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
10494
10495/**
10496 * Returns a * b + c and saturates the result.
10497 */
10498char __ovld __cnfn mad_sat(char a, char b, char c);
10499uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
10500char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
10501uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
10502char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
10503uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
10504char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
10505uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
10506char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
10507uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
10508char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
10509uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
10510short __ovld __cnfn mad_sat(short a, short b, short c);
10511ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
10512short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
10513ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
10514short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
10515ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
10516short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
10517ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
10518short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
10519ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
10520short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
10521ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
10522int __ovld __cnfn mad_sat(int a, int b, int c);
10523uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
10524int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
10525uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
10526int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
10527uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
10528int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
10529uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
10530int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
10531uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
10532int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
10533uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
10534long __ovld __cnfn mad_sat(long a, long b, long c);
10535ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
10536long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
10537ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
10538long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
10539ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
10540long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
10541ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
10542long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
10543ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
10544long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
10545ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
10546
10547/**
10548 * Returns y if x < y, otherwise it returns x.
10549 */
10550char __ovld __cnfn max(char x, char y);
10551uchar __ovld __cnfn max(uchar x, uchar y);
10552char2 __ovld __cnfn max(char2 x, char2 y);
10553uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
10554char3 __ovld __cnfn max(char3 x, char3 y);
10555uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
10556char4 __ovld __cnfn max(char4 x, char4 y);
10557uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
10558char8 __ovld __cnfn max(char8 x, char8 y);
10559uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
10560char16 __ovld __cnfn max(char16 x, char16 y);
10561uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
10562short __ovld __cnfn max(short x, short y);
10563ushort __ovld __cnfn max(ushort x, ushort y);
10564short2 __ovld __cnfn max(short2 x, short2 y);
10565ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
10566short3 __ovld __cnfn max(short3 x, short3 y);
10567ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
10568short4 __ovld __cnfn max(short4 x, short4 y);
10569ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
10570short8 __ovld __cnfn max(short8 x, short8 y);
10571ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
10572short16 __ovld __cnfn max(short16 x, short16 y);
10573ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
10574int __ovld __cnfn max(int x, int y);
10575uint __ovld __cnfn max(uint x, uint y);
10576int2 __ovld __cnfn max(int2 x, int2 y);
10577uint2 __ovld __cnfn max(uint2 x, uint2 y);
10578int3 __ovld __cnfn max(int3 x, int3 y);
10579uint3 __ovld __cnfn max(uint3 x, uint3 y);
10580int4 __ovld __cnfn max(int4 x, int4 y);
10581uint4 __ovld __cnfn max(uint4 x, uint4 y);
10582int8 __ovld __cnfn max(int8 x, int8 y);
10583uint8 __ovld __cnfn max(uint8 x, uint8 y);
10584int16 __ovld __cnfn max(int16 x, int16 y);
10585uint16 __ovld __cnfn max(uint16 x, uint16 y);
10586long __ovld __cnfn max(long x, long y);
10587ulong __ovld __cnfn max(ulong x, ulong y);
10588long2 __ovld __cnfn max(long2 x, long2 y);
10589ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
10590long3 __ovld __cnfn max(long3 x, long3 y);
10591ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
10592long4 __ovld __cnfn max(long4 x, long4 y);
10593ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
10594long8 __ovld __cnfn max(long8 x, long8 y);
10595ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
10596long16 __ovld __cnfn max(long16 x, long16 y);
10597ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
10598char __ovld __cnfn max(char x, char y);
10599uchar __ovld __cnfn max(uchar x, uchar y);
10600char2 __ovld __cnfn max(char2 x, char y);
10601uchar2 __ovld __cnfn max(uchar2 x, uchar y);
10602char3 __ovld __cnfn max(char3 x, char y);
10603uchar3 __ovld __cnfn max(uchar3 x, uchar y);
10604char4 __ovld __cnfn max(char4 x, char y);
10605uchar4 __ovld __cnfn max(uchar4 x, uchar y);
10606char8 __ovld __cnfn max(char8 x, char y);
10607uchar8 __ovld __cnfn max(uchar8 x, uchar y);
10608char16 __ovld __cnfn max(char16 x, char y);
10609uchar16 __ovld __cnfn max(uchar16 x, uchar y);
10610short __ovld __cnfn max(short x, short y);
10611ushort __ovld __cnfn max(ushort x, ushort y);
10612short2 __ovld __cnfn max(short2 x, short y);
10613ushort2 __ovld __cnfn max(ushort2 x, ushort y);
10614short3 __ovld __cnfn max(short3 x, short y);
10615ushort3 __ovld __cnfn max(ushort3 x, ushort y);
10616short4 __ovld __cnfn max(short4 x, short y);
10617ushort4 __ovld __cnfn max(ushort4 x, ushort y);
10618short8 __ovld __cnfn max(short8 x, short y);
10619ushort8 __ovld __cnfn max(ushort8 x, ushort y);
10620short16 __ovld __cnfn max(short16 x, short y);
10621ushort16 __ovld __cnfn max(ushort16 x, ushort y);
10622int __ovld __cnfn max(int x, int y);
10623uint __ovld __cnfn max(uint x, uint y);
10624int2 __ovld __cnfn max(int2 x, int y);
10625uint2 __ovld __cnfn max(uint2 x, uint y);
10626int3 __ovld __cnfn max(int3 x, int y);
10627uint3 __ovld __cnfn max(uint3 x, uint y);
10628int4 __ovld __cnfn max(int4 x, int y);
10629uint4 __ovld __cnfn max(uint4 x, uint y);
10630int8 __ovld __cnfn max(int8 x, int y);
10631uint8 __ovld __cnfn max(uint8 x, uint y);
10632int16 __ovld __cnfn max(int16 x, int y);
10633uint16 __ovld __cnfn max(uint16 x, uint y);
10634long __ovld __cnfn max(long x, long y);
10635ulong __ovld __cnfn max(ulong x, ulong y);
10636long2 __ovld __cnfn max(long2 x, long y);
10637ulong2 __ovld __cnfn max(ulong2 x, ulong y);
10638long3 __ovld __cnfn max(long3 x, long y);
10639ulong3 __ovld __cnfn max(ulong3 x, ulong y);
10640long4 __ovld __cnfn max(long4 x, long y);
10641ulong4 __ovld __cnfn max(ulong4 x, ulong y);
10642long8 __ovld __cnfn max(long8 x, long y);
10643ulong8 __ovld __cnfn max(ulong8 x, ulong y);
10644long16 __ovld __cnfn max(long16 x, long y);
10645ulong16 __ovld __cnfn max(ulong16 x, ulong y);
10646
10647/**
10648 * Returns y if y < x, otherwise it returns x.
10649 */
10650char __ovld __cnfn min(char x, char y);
10651uchar __ovld __cnfn min(uchar x, uchar y);
10652char2 __ovld __cnfn min(char2 x, char2 y);
10653uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
10654char3 __ovld __cnfn min(char3 x, char3 y);
10655uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
10656char4 __ovld __cnfn min(char4 x, char4 y);
10657uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
10658char8 __ovld __cnfn min(char8 x, char8 y);
10659uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
10660char16 __ovld __cnfn min(char16 x, char16 y);
10661uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
10662short __ovld __cnfn min(short x, short y);
10663ushort __ovld __cnfn min(ushort x, ushort y);
10664short2 __ovld __cnfn min(short2 x, short2 y);
10665ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
10666short3 __ovld __cnfn min(short3 x, short3 y);
10667ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
10668short4 __ovld __cnfn min(short4 x, short4 y);
10669ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
10670short8 __ovld __cnfn min(short8 x, short8 y);
10671ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
10672short16 __ovld __cnfn min(short16 x, short16 y);
10673ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
10674int __ovld __cnfn min(int x, int y);
10675uint __ovld __cnfn min(uint x, uint y);
10676int2 __ovld __cnfn min(int2 x, int2 y);
10677uint2 __ovld __cnfn min(uint2 x, uint2 y);
10678int3 __ovld __cnfn min(int3 x, int3 y);
10679uint3 __ovld __cnfn min(uint3 x, uint3 y);
10680int4 __ovld __cnfn min(int4 x, int4 y);
10681uint4 __ovld __cnfn min(uint4 x, uint4 y);
10682int8 __ovld __cnfn min(int8 x, int8 y);
10683uint8 __ovld __cnfn min(uint8 x, uint8 y);
10684int16 __ovld __cnfn min(int16 x, int16 y);
10685uint16 __ovld __cnfn min(uint16 x, uint16 y);
10686long __ovld __cnfn min(long x, long y);
10687ulong __ovld __cnfn min(ulong x, ulong y);
10688long2 __ovld __cnfn min(long2 x, long2 y);
10689ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
10690long3 __ovld __cnfn min(long3 x, long3 y);
10691ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
10692long4 __ovld __cnfn min(long4 x, long4 y);
10693ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
10694long8 __ovld __cnfn min(long8 x, long8 y);
10695ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
10696long16 __ovld __cnfn min(long16 x, long16 y);
10697ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
10698char __ovld __cnfn min(char x, char y);
10699uchar __ovld __cnfn min(uchar x, uchar y);
10700char2 __ovld __cnfn min(char2 x, char y);
10701uchar2 __ovld __cnfn min(uchar2 x, uchar y);
10702char3 __ovld __cnfn min(char3 x, char y);
10703uchar3 __ovld __cnfn min(uchar3 x, uchar y);
10704char4 __ovld __cnfn min(char4 x, char y);
10705uchar4 __ovld __cnfn min(uchar4 x, uchar y);
10706char8 __ovld __cnfn min(char8 x, char y);
10707uchar8 __ovld __cnfn min(uchar8 x, uchar y);
10708char16 __ovld __cnfn min(char16 x, char y);
10709uchar16 __ovld __cnfn min(uchar16 x, uchar y);
10710short __ovld __cnfn min(short x, short y);
10711ushort __ovld __cnfn min(ushort x, ushort y);
10712short2 __ovld __cnfn min(short2 x, short y);
10713ushort2 __ovld __cnfn min(ushort2 x, ushort y);
10714short3 __ovld __cnfn min(short3 x, short y);
10715ushort3 __ovld __cnfn min(ushort3 x, ushort y);
10716short4 __ovld __cnfn min(short4 x, short y);
10717ushort4 __ovld __cnfn min(ushort4 x, ushort y);
10718short8 __ovld __cnfn min(short8 x, short y);
10719ushort8 __ovld __cnfn min(ushort8 x, ushort y);
10720short16 __ovld __cnfn min(short16 x, short y);
10721ushort16 __ovld __cnfn min(ushort16 x, ushort y);
10722int __ovld __cnfn min(int x, int y);
10723uint __ovld __cnfn min(uint x, uint y);
10724int2 __ovld __cnfn min(int2 x, int y);
10725uint2 __ovld __cnfn min(uint2 x, uint y);
10726int3 __ovld __cnfn min(int3 x, int y);
10727uint3 __ovld __cnfn min(uint3 x, uint y);
10728int4 __ovld __cnfn min(int4 x, int y);
10729uint4 __ovld __cnfn min(uint4 x, uint y);
10730int8 __ovld __cnfn min(int8 x, int y);
10731uint8 __ovld __cnfn min(uint8 x, uint y);
10732int16 __ovld __cnfn min(int16 x, int y);
10733uint16 __ovld __cnfn min(uint16 x, uint y);
10734long __ovld __cnfn min(long x, long y);
10735ulong __ovld __cnfn min(ulong x, ulong y);
10736long2 __ovld __cnfn min(long2 x, long y);
10737ulong2 __ovld __cnfn min(ulong2 x, ulong y);
10738long3 __ovld __cnfn min(long3 x, long y);
10739ulong3 __ovld __cnfn min(ulong3 x, ulong y);
10740long4 __ovld __cnfn min(long4 x, long y);
10741ulong4 __ovld __cnfn min(ulong4 x, ulong y);
10742long8 __ovld __cnfn min(long8 x, long y);
10743ulong8 __ovld __cnfn min(ulong8 x, ulong y);
10744long16 __ovld __cnfn min(long16 x, long y);
10745ulong16 __ovld __cnfn min(ulong16 x, ulong y);
10746
10747/**
10748 * Computes x * y and returns the high half of the
10749 * product of x and y.
10750 */
10751char __ovld __cnfn mul_hi(char x, char y);
10752uchar __ovld __cnfn mul_hi(uchar x, uchar y);
10753char2 __ovld __cnfn mul_hi(char2 x, char2 y);
10754uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
10755char3 __ovld __cnfn mul_hi(char3 x, char3 y);
10756uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
10757char4 __ovld __cnfn mul_hi(char4 x, char4 y);
10758uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
10759char8 __ovld __cnfn mul_hi(char8 x, char8 y);
10760uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
10761char16 __ovld __cnfn mul_hi(char16 x, char16 y);
10762uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
10763short __ovld __cnfn mul_hi(short x, short y);
10764ushort __ovld __cnfn mul_hi(ushort x, ushort y);
10765short2 __ovld __cnfn mul_hi(short2 x, short2 y);
10766ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
10767short3 __ovld __cnfn mul_hi(short3 x, short3 y);
10768ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
10769short4 __ovld __cnfn mul_hi(short4 x, short4 y);
10770ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
10771short8 __ovld __cnfn mul_hi(short8 x, short8 y);
10772ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
10773short16 __ovld __cnfn mul_hi(short16 x, short16 y);
10774ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
10775int __ovld __cnfn mul_hi(int x, int y);
10776uint __ovld __cnfn mul_hi(uint x, uint y);
10777int2 __ovld __cnfn mul_hi(int2 x, int2 y);
10778uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
10779int3 __ovld __cnfn mul_hi(int3 x, int3 y);
10780uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
10781int4 __ovld __cnfn mul_hi(int4 x, int4 y);
10782uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
10783int8 __ovld __cnfn mul_hi(int8 x, int8 y);
10784uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
10785int16 __ovld __cnfn mul_hi(int16 x, int16 y);
10786uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
10787long __ovld __cnfn mul_hi(long x, long y);
10788ulong __ovld __cnfn mul_hi(ulong x, ulong y);
10789long2 __ovld __cnfn mul_hi(long2 x, long2 y);
10790ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
10791long3 __ovld __cnfn mul_hi(long3 x, long3 y);
10792ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
10793long4 __ovld __cnfn mul_hi(long4 x, long4 y);
10794ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
10795long8 __ovld __cnfn mul_hi(long8 x, long8 y);
10796ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
10797long16 __ovld __cnfn mul_hi(long16 x, long16 y);
10798ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
10799
10800/**
10801 * For each element in v, the bits are shifted left by
10802 * the number of bits given by the corresponding
10803 * element in i (subject to usual shift modulo rules
10804 * described in section 6.3). Bits shifted off the left
10805 * side of the element are shifted back in from the
10806 * right.
10807 */
10808char __ovld __cnfn rotate(char v, char i);
10809uchar __ovld __cnfn rotate(uchar v, uchar i);
10810char2 __ovld __cnfn rotate(char2 v, char2 i);
10811uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
10812char3 __ovld __cnfn rotate(char3 v, char3 i);
10813uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
10814char4 __ovld __cnfn rotate(char4 v, char4 i);
10815uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
10816char8 __ovld __cnfn rotate(char8 v, char8 i);
10817uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
10818char16 __ovld __cnfn rotate(char16 v, char16 i);
10819uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
10820short __ovld __cnfn rotate(short v, short i);
10821ushort __ovld __cnfn rotate(ushort v, ushort i);
10822short2 __ovld __cnfn rotate(short2 v, short2 i);
10823ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
10824short3 __ovld __cnfn rotate(short3 v, short3 i);
10825ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
10826short4 __ovld __cnfn rotate(short4 v, short4 i);
10827ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
10828short8 __ovld __cnfn rotate(short8 v, short8 i);
10829ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
10830short16 __ovld __cnfn rotate(short16 v, short16 i);
10831ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
10832int __ovld __cnfn rotate(int v, int i);
10833uint __ovld __cnfn rotate(uint v, uint i);
10834int2 __ovld __cnfn rotate(int2 v, int2 i);
10835uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
10836int3 __ovld __cnfn rotate(int3 v, int3 i);
10837uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
10838int4 __ovld __cnfn rotate(int4 v, int4 i);
10839uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
10840int8 __ovld __cnfn rotate(int8 v, int8 i);
10841uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
10842int16 __ovld __cnfn rotate(int16 v, int16 i);
10843uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
10844long __ovld __cnfn rotate(long v, long i);
10845ulong __ovld __cnfn rotate(ulong v, ulong i);
10846long2 __ovld __cnfn rotate(long2 v, long2 i);
10847ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
10848long3 __ovld __cnfn rotate(long3 v, long3 i);
10849ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
10850long4 __ovld __cnfn rotate(long4 v, long4 i);
10851ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
10852long8 __ovld __cnfn rotate(long8 v, long8 i);
10853ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
10854long16 __ovld __cnfn rotate(long16 v, long16 i);
10855ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
10856
10857/**
10858 * Returns x - y and saturates the result.
10859 */
10860char __ovld __cnfn sub_sat(char x, char y);
10861uchar __ovld __cnfn sub_sat(uchar x, uchar y);
10862char2 __ovld __cnfn sub_sat(char2 x, char2 y);
10863uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
10864char3 __ovld __cnfn sub_sat(char3 x, char3 y);
10865uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
10866char4 __ovld __cnfn sub_sat(char4 x, char4 y);
10867uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
10868char8 __ovld __cnfn sub_sat(char8 x, char8 y);
10869uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
10870char16 __ovld __cnfn sub_sat(char16 x, char16 y);
10871uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
10872short __ovld __cnfn sub_sat(short x, short y);
10873ushort __ovld __cnfn sub_sat(ushort x, ushort y);
10874short2 __ovld __cnfn sub_sat(short2 x, short2 y);
10875ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
10876short3 __ovld __cnfn sub_sat(short3 x, short3 y);
10877ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
10878short4 __ovld __cnfn sub_sat(short4 x, short4 y);
10879ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
10880short8 __ovld __cnfn sub_sat(short8 x, short8 y);
10881ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
10882short16 __ovld __cnfn sub_sat(short16 x, short16 y);
10883ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
10884int __ovld __cnfn sub_sat(int x, int y);
10885uint __ovld __cnfn sub_sat(uint x, uint y);
10886int2 __ovld __cnfn sub_sat(int2 x, int2 y);
10887uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
10888int3 __ovld __cnfn sub_sat(int3 x, int3 y);
10889uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
10890int4 __ovld __cnfn sub_sat(int4 x, int4 y);
10891uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
10892int8 __ovld __cnfn sub_sat(int8 x, int8 y);
10893uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
10894int16 __ovld __cnfn sub_sat(int16 x, int16 y);
10895uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
10896long __ovld __cnfn sub_sat(long x, long y);
10897ulong __ovld __cnfn sub_sat(ulong x, ulong y);
10898long2 __ovld __cnfn sub_sat(long2 x, long2 y);
10899ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
10900long3 __ovld __cnfn sub_sat(long3 x, long3 y);
10901ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
10902long4 __ovld __cnfn sub_sat(long4 x, long4 y);
10903ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
10904long8 __ovld __cnfn sub_sat(long8 x, long8 y);
10905ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
10906long16 __ovld __cnfn sub_sat(long16 x, long16 y);
10907ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
10908
10909/**
10910 * result[i] = ((short)hi[i] << 8) | lo[i]
10911 * result[i] = ((ushort)hi[i] << 8) | lo[i]
10912 */
10913short __ovld __cnfn upsample(char hi, uchar lo);
10914ushort __ovld __cnfn upsample(uchar hi, uchar lo);
10915short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
10916short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
10917short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
10918short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
10919short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
10920ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
10921ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
10922ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
10923ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
10924ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
10925
10926/**
10927 * result[i] = ((int)hi[i] << 16) | lo[i]
10928 * result[i] = ((uint)hi[i] << 16) | lo[i]
10929 */
10930int __ovld __cnfn upsample(short hi, ushort lo);
10931uint __ovld __cnfn upsample(ushort hi, ushort lo);
10932int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
10933int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
10934int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
10935int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
10936int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
10937uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
10938uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
10939uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
10940uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
10941uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
10942/**
10943 * result[i] = ((long)hi[i] << 32) | lo[i]
10944 * result[i] = ((ulong)hi[i] << 32) | lo[i]
10945 */
10946long __ovld __cnfn upsample(int hi, uint lo);
10947ulong __ovld __cnfn upsample(uint hi, uint lo);
10948long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
10949long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
10950long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
10951long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
10952long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
10953ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
10954ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
10955ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
10956ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
10957ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
10958
10959/*
10960 * popcount(x): returns the number of set bit in x
10961 */
10962char __ovld __cnfn popcount(char x);
10963uchar __ovld __cnfn popcount(uchar x);
10964char2 __ovld __cnfn popcount(char2 x);
10965uchar2 __ovld __cnfn popcount(uchar2 x);
10966char3 __ovld __cnfn popcount(char3 x);
10967uchar3 __ovld __cnfn popcount(uchar3 x);
10968char4 __ovld __cnfn popcount(char4 x);
10969uchar4 __ovld __cnfn popcount(uchar4 x);
10970char8 __ovld __cnfn popcount(char8 x);
10971uchar8 __ovld __cnfn popcount(uchar8 x);
10972char16 __ovld __cnfn popcount(char16 x);
10973uchar16 __ovld __cnfn popcount(uchar16 x);
10974short __ovld __cnfn popcount(short x);
10975ushort __ovld __cnfn popcount(ushort x);
10976short2 __ovld __cnfn popcount(short2 x);
10977ushort2 __ovld __cnfn popcount(ushort2 x);
10978short3 __ovld __cnfn popcount(short3 x);
10979ushort3 __ovld __cnfn popcount(ushort3 x);
10980short4 __ovld __cnfn popcount(short4 x);
10981ushort4 __ovld __cnfn popcount(ushort4 x);
10982short8 __ovld __cnfn popcount(short8 x);
10983ushort8 __ovld __cnfn popcount(ushort8 x);
10984short16 __ovld __cnfn popcount(short16 x);
10985ushort16 __ovld __cnfn popcount(ushort16 x);
10986int __ovld __cnfn popcount(int x);
10987uint __ovld __cnfn popcount(uint x);
10988int2 __ovld __cnfn popcount(int2 x);
10989uint2 __ovld __cnfn popcount(uint2 x);
10990int3 __ovld __cnfn popcount(int3 x);
10991uint3 __ovld __cnfn popcount(uint3 x);
10992int4 __ovld __cnfn popcount(int4 x);
10993uint4 __ovld __cnfn popcount(uint4 x);
10994int8 __ovld __cnfn popcount(int8 x);
10995uint8 __ovld __cnfn popcount(uint8 x);
10996int16 __ovld __cnfn popcount(int16 x);
10997uint16 __ovld __cnfn popcount(uint16 x);
10998long __ovld __cnfn popcount(long x);
10999ulong __ovld __cnfn popcount(ulong x);
11000long2 __ovld __cnfn popcount(long2 x);
11001ulong2 __ovld __cnfn popcount(ulong2 x);
11002long3 __ovld __cnfn popcount(long3 x);
11003ulong3 __ovld __cnfn popcount(ulong3 x);
11004long4 __ovld __cnfn popcount(long4 x);
11005ulong4 __ovld __cnfn popcount(ulong4 x);
11006long8 __ovld __cnfn popcount(long8 x);
11007ulong8 __ovld __cnfn popcount(ulong8 x);
11008long16 __ovld __cnfn popcount(long16 x);
11009ulong16 __ovld __cnfn popcount(ulong16 x);
11010
11011/**
11012 * Multiply two 24-bit integer values x and y and add
11013 * the 32-bit integer result to the 32-bit integer z.
11014 * Refer to definition of mul24 to see how the 24-bit
11015 * integer multiplication is performed.
11016 */
11017int __ovld __cnfn mad24(int x, int y, int z);
11018uint __ovld __cnfn mad24(uint x, uint y, uint z);
11019int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
11020uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
11021int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
11022uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
11023int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
11024uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
11025int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
11026uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
11027int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
11028uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
11029
11030/**
11031 * Multiply two 24-bit integer values x and y. x and y
11032 * are 32-bit integers but only the low 24-bits are used
11033 * to perform the multiplication. mul24 should only
11034 * be used when values in x and y are in the range [-
11035 * 2^23, 2^23-1] if x and y are signed integers and in the
11036 * range [0, 2^24-1] if x and y are unsigned integers. If
11037 * x and y are not in this range, the multiplication
11038 * result is implementation-defined.
11039 */
11040int __ovld __cnfn mul24(int x, int y);
11041uint __ovld __cnfn mul24(uint x, uint y);
11042int2 __ovld __cnfn mul24(int2 x, int2 y);
11043uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
11044int3 __ovld __cnfn mul24(int3 x, int3 y);
11045uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
11046int4 __ovld __cnfn mul24(int4 x, int4 y);
11047uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
11048int8 __ovld __cnfn mul24(int8 x, int8 y);
11049uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
11050int16 __ovld __cnfn mul24(int16 x, int16 y);
11051uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
11052
11053// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
11054
11055/**
11056 * Returns fmin(fmax(x, minval), maxval).
11057 * Results are undefined if minval > maxval.
11058 */
11059float __ovld __cnfn clamp(float x, float minval, float maxval);
11060float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
11061float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
11062float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
11063float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
11064float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
11065float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
11066float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
11067float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
11068float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
11069float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
11070#ifdef cl_khr_fp64
11071double __ovld __cnfn clamp(double x, double minval, double maxval);
11072double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
11073double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
11074double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
11075double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
11076double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
11077double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
11078double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
11079double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
11080double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
11081double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
11082#endif //cl_khr_fp64
11083#ifdef cl_khr_fp16
11084half __ovld __cnfn clamp(half x, half minval, half maxval);
11085half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
11086half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
11087half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
11088half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
11089half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
11090half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
11091half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
11092half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
11093half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
11094half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
11095#endif //cl_khr_fp16
11096
11097/**
11098 * Converts radians to degrees, i.e. (180 / PI) *
11099 * radians.
11100 */
11101float __ovld __cnfn degrees(float radians);
11102float2 __ovld __cnfn degrees(float2 radians);
11103float3 __ovld __cnfn degrees(float3 radians);
11104float4 __ovld __cnfn degrees(float4 radians);
11105float8 __ovld __cnfn degrees(float8 radians);
11106float16 __ovld __cnfn degrees(float16 radians);
11107#ifdef cl_khr_fp64
11108double __ovld __cnfn degrees(double radians);
11109double2 __ovld __cnfn degrees(double2 radians);
11110double3 __ovld __cnfn degrees(double3 radians);
11111double4 __ovld __cnfn degrees(double4 radians);
11112double8 __ovld __cnfn degrees(double8 radians);
11113double16 __ovld __cnfn degrees(double16 radians);
11114#endif //cl_khr_fp64
11115#ifdef cl_khr_fp16
11116half __ovld __cnfn degrees(half radians);
11117half2 __ovld __cnfn degrees(half2 radians);
11118half3 __ovld __cnfn degrees(half3 radians);
11119half4 __ovld __cnfn degrees(half4 radians);
11120half8 __ovld __cnfn degrees(half8 radians);
11121half16 __ovld __cnfn degrees(half16 radians);
11122#endif //cl_khr_fp16
11123
11124/**
11125 * Returns y if x < y, otherwise it returns x. If x and y
11126 * are infinite or NaN, the return values are undefined.
11127 */
11128float __ovld __cnfn max(float x, float y);
11129float2 __ovld __cnfn max(float2 x, float2 y);
11130float3 __ovld __cnfn max(float3 x, float3 y);
11131float4 __ovld __cnfn max(float4 x, float4 y);
11132float8 __ovld __cnfn max(float8 x, float8 y);
11133float16 __ovld __cnfn max(float16 x, float16 y);
11134float2 __ovld __cnfn max(float2 x, float y);
11135float3 __ovld __cnfn max(float3 x, float y);
11136float4 __ovld __cnfn max(float4 x, float y);
11137float8 __ovld __cnfn max(float8 x, float y);
11138float16 __ovld __cnfn max(float16 x, float y);
11139#ifdef cl_khr_fp64
11140double __ovld __cnfn max(double x, double y);
11141double2 __ovld __cnfn max(double2 x, double2 y);
11142double3 __ovld __cnfn max(double3 x, double3 y);
11143double4 __ovld __cnfn max(double4 x, double4 y);
11144double8 __ovld __cnfn max(double8 x, double8 y);
11145double16 __ovld __cnfn max(double16 x, double16 y);
11146double2 __ovld __cnfn max(double2 x, double y);
11147double3 __ovld __cnfn max(double3 x, double y);
11148double4 __ovld __cnfn max(double4 x, double y);
11149double8 __ovld __cnfn max(double8 x, double y);
11150double16 __ovld __cnfn max(double16 x, double y);
11151#endif //cl_khr_fp64
11152#ifdef cl_khr_fp16
11153half __ovld __cnfn max(half x, half y);
11154half2 __ovld __cnfn max(half2 x, half2 y);
11155half3 __ovld __cnfn max(half3 x, half3 y);
11156half4 __ovld __cnfn max(half4 x, half4 y);
11157half8 __ovld __cnfn max(half8 x, half8 y);
11158half16 __ovld __cnfn max(half16 x, half16 y);
11159half2 __ovld __cnfn max(half2 x, half y);
11160half3 __ovld __cnfn max(half3 x, half y);
11161half4 __ovld __cnfn max(half4 x, half y);
11162half8 __ovld __cnfn max(half8 x, half y);
11163half16 __ovld __cnfn max(half16 x, half y);
11164#endif //cl_khr_fp16
11165
11166/**
11167 * Returns y if y < x, otherwise it returns x. If x and y
11168 * are infinite or NaN, the return values are undefined.
11169 */
11170float __ovld __cnfn min(float x, float y);
11171float2 __ovld __cnfn min(float2 x, float2 y);
11172float3 __ovld __cnfn min(float3 x, float3 y);
11173float4 __ovld __cnfn min(float4 x, float4 y);
11174float8 __ovld __cnfn min(float8 x, float8 y);
11175float16 __ovld __cnfn min(float16 x, float16 y);
11176float2 __ovld __cnfn min(float2 x, float y);
11177float3 __ovld __cnfn min(float3 x, float y);
11178float4 __ovld __cnfn min(float4 x, float y);
11179float8 __ovld __cnfn min(float8 x, float y);
11180float16 __ovld __cnfn min(float16 x, float y);
11181#ifdef cl_khr_fp64
11182double __ovld __cnfn min(double x, double y);
11183double2 __ovld __cnfn min(double2 x, double2 y);
11184double3 __ovld __cnfn min(double3 x, double3 y);
11185double4 __ovld __cnfn min(double4 x, double4 y);
11186double8 __ovld __cnfn min(double8 x, double8 y);
11187double16 __ovld __cnfn min(double16 x, double16 y);
11188double2 __ovld __cnfn min(double2 x, double y);
11189double3 __ovld __cnfn min(double3 x, double y);
11190double4 __ovld __cnfn min(double4 x, double y);
11191double8 __ovld __cnfn min(double8 x, double y);
11192double16 __ovld __cnfn min(double16 x, double y);
11193#endif //cl_khr_fp64
11194#ifdef cl_khr_fp16
11195half __ovld __cnfn min(half x, half y);
11196half2 __ovld __cnfn min(half2 x, half2 y);
11197half3 __ovld __cnfn min(half3 x, half3 y);
11198half4 __ovld __cnfn min(half4 x, half4 y);
11199half8 __ovld __cnfn min(half8 x, half8 y);
11200half16 __ovld __cnfn min(half16 x, half16 y);
11201half2 __ovld __cnfn min(half2 x, half y);
11202half3 __ovld __cnfn min(half3 x, half y);
11203half4 __ovld __cnfn min(half4 x, half y);
11204half8 __ovld __cnfn min(half8 x, half y);
11205half16 __ovld __cnfn min(half16 x, half y);
11206#endif //cl_khr_fp16
11207
11208/**
11209 * Returns the linear blend of x & y implemented as:
11210 * x + (y - x) * a
11211 * a must be a value in the range 0.0 ... 1.0. If a is not
11212 * in the range 0.0 ... 1.0, the return values are
11213 * undefined.
11214 */
11215float __ovld __cnfn mix(float x, float y, float a);
11216float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
11217float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
11218float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
11219float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
11220float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
11221float2 __ovld __cnfn mix(float2 x, float2 y, float a);
11222float3 __ovld __cnfn mix(float3 x, float3 y, float a);
11223float4 __ovld __cnfn mix(float4 x, float4 y, float a);
11224float8 __ovld __cnfn mix(float8 x, float8 y, float a);
11225float16 __ovld __cnfn mix(float16 x, float16 y, float a);
11226#ifdef cl_khr_fp64
11227double __ovld __cnfn mix(double x, double y, double a);
11228double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
11229double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
11230double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
11231double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
11232double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
11233double2 __ovld __cnfn mix(double2 x, double2 y, double a);
11234double3 __ovld __cnfn mix(double3 x, double3 y, double a);
11235double4 __ovld __cnfn mix(double4 x, double4 y, double a);
11236double8 __ovld __cnfn mix(double8 x, double8 y, double a);
11237double16 __ovld __cnfn mix(double16 x, double16 y, double a);
11238#endif //cl_khr_fp64
11239#ifdef cl_khr_fp16
11240half __ovld __cnfn mix(half x, half y, half a);
11241half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
11242half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
11243half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
11244half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
11245half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
11246half2 __ovld __cnfn mix(half2 x, half2 y, half a);
11247half3 __ovld __cnfn mix(half3 x, half3 y, half a);
11248half4 __ovld __cnfn mix(half4 x, half4 y, half a);
11249half8 __ovld __cnfn mix(half8 x, half8 y, half a);
11250half16 __ovld __cnfn mix(half16 x, half16 y, half a);
11251#endif //cl_khr_fp16
11252
11253/**
11254 * Converts degrees to radians, i.e. (PI / 180) *
11255 * degrees.
11256 */
11257float __ovld __cnfn radians(float degrees);
11258float2 __ovld __cnfn radians(float2 degrees);
11259float3 __ovld __cnfn radians(float3 degrees);
11260float4 __ovld __cnfn radians(float4 degrees);
11261float8 __ovld __cnfn radians(float8 degrees);
11262float16 __ovld __cnfn radians(float16 degrees);
11263#ifdef cl_khr_fp64
11264double __ovld __cnfn radians(double degrees);
11265double2 __ovld __cnfn radians(double2 degrees);
11266double3 __ovld __cnfn radians(double3 degrees);
11267double4 __ovld __cnfn radians(double4 degrees);
11268double8 __ovld __cnfn radians(double8 degrees);
11269double16 __ovld __cnfn radians(double16 degrees);
11270#endif //cl_khr_fp64
11271#ifdef cl_khr_fp16
11272half __ovld __cnfn radians(half degrees);
11273half2 __ovld __cnfn radians(half2 degrees);
11274half3 __ovld __cnfn radians(half3 degrees);
11275half4 __ovld __cnfn radians(half4 degrees);
11276half8 __ovld __cnfn radians(half8 degrees);
11277half16 __ovld __cnfn radians(half16 degrees);
11278#endif //cl_khr_fp16
11279
11280/**
11281 * Returns 0.0 if x < edge, otherwise it returns 1.0.
11282 */
11283float __ovld __cnfn step(float edge, float x);
11284float2 __ovld __cnfn step(float2 edge, float2 x);
11285float3 __ovld __cnfn step(float3 edge, float3 x);
11286float4 __ovld __cnfn step(float4 edge, float4 x);
11287float8 __ovld __cnfn step(float8 edge, float8 x);
11288float16 __ovld __cnfn step(float16 edge, float16 x);
11289float2 __ovld __cnfn step(float edge, float2 x);
11290float3 __ovld __cnfn step(float edge, float3 x);
11291float4 __ovld __cnfn step(float edge, float4 x);
11292float8 __ovld __cnfn step(float edge, float8 x);
11293float16 __ovld __cnfn step(float edge, float16 x);
11294#ifdef cl_khr_fp64
11295double __ovld __cnfn step(double edge, double x);
11296double2 __ovld __cnfn step(double2 edge, double2 x);
11297double3 __ovld __cnfn step(double3 edge, double3 x);
11298double4 __ovld __cnfn step(double4 edge, double4 x);
11299double8 __ovld __cnfn step(double8 edge, double8 x);
11300double16 __ovld __cnfn step(double16 edge, double16 x);
11301double2 __ovld __cnfn step(double edge, double2 x);
11302double3 __ovld __cnfn step(double edge, double3 x);
11303double4 __ovld __cnfn step(double edge, double4 x);
11304double8 __ovld __cnfn step(double edge, double8 x);
11305double16 __ovld __cnfn step(double edge, double16 x);
11306#endif //cl_khr_fp64
11307#ifdef cl_khr_fp16
11308half __ovld __cnfn step(half edge, half x);
11309half2 __ovld __cnfn step(half2 edge, half2 x);
11310half3 __ovld __cnfn step(half3 edge, half3 x);
11311half4 __ovld __cnfn step(half4 edge, half4 x);
11312half8 __ovld __cnfn step(half8 edge, half8 x);
11313half16 __ovld __cnfn step(half16 edge, half16 x);
11314half __ovld __cnfn step(half edge, half x);
11315half2 __ovld __cnfn step(half edge, half2 x);
11316half3 __ovld __cnfn step(half edge, half3 x);
11317half4 __ovld __cnfn step(half edge, half4 x);
11318half8 __ovld __cnfn step(half edge, half8 x);
11319half16 __ovld __cnfn step(half edge, half16 x);
11320#endif //cl_khr_fp16
11321
11322/**
11323 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
11324 * performs smooth Hermite interpolation between 0
11325 * and 1when edge0 < x < edge1. This is useful in
11326 * cases where you would want a threshold function
11327 * with a smooth transition.
11328 * This is equivalent to:
11329 * gentype t;
11330 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
11331 * return t * t * (3 - 2 * t);
11332 * Results are undefined if edge0 >= edge1 or if x,
11333 * edge0 or edge1 is a NaN.
11334 */
11335float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
11336float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
11337float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
11338float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
11339float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
11340float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
11341float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
11342float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
11343float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
11344float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
11345float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
11346#ifdef cl_khr_fp64
11347double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
11348double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
11349double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
11350double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
11351double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
11352double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
11353double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
11354double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
11355double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
11356double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
11357double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
11358#endif //cl_khr_fp64
11359#ifdef cl_khr_fp16
11360half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11361half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
11362half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
11363half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
11364half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
11365half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
11366half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11367half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
11368half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
11369half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
11370half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
11371half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
11372#endif //cl_khr_fp16
11373
11374/**
11375 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
11376 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
11377 */
11378float __ovld __cnfn sign(float x);
11379float2 __ovld __cnfn sign(float2 x);
11380float3 __ovld __cnfn sign(float3 x);
11381float4 __ovld __cnfn sign(float4 x);
11382float8 __ovld __cnfn sign(float8 x);
11383float16 __ovld __cnfn sign(float16 x);
11384#ifdef cl_khr_fp64
11385double __ovld __cnfn sign(double x);
11386double2 __ovld __cnfn sign(double2 x);
11387double3 __ovld __cnfn sign(double3 x);
11388double4 __ovld __cnfn sign(double4 x);
11389double8 __ovld __cnfn sign(double8 x);
11390double16 __ovld __cnfn sign(double16 x);
11391#endif //cl_khr_fp64
11392#ifdef cl_khr_fp16
11393half __ovld __cnfn sign(half x);
11394half2 __ovld __cnfn sign(half2 x);
11395half3 __ovld __cnfn sign(half3 x);
11396half4 __ovld __cnfn sign(half4 x);
11397half8 __ovld __cnfn sign(half8 x);
11398half16 __ovld __cnfn sign(half16 x);
11399#endif //cl_khr_fp16
11400
11401// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
11402
11403/**
11404 * Returns the cross product of p0.xyz and p1.xyz. The
11405 * w component of float4 result returned will be 0.0.
11406 */
11407float4 __ovld __cnfn cross(float4 p0, float4 p1);
11408float3 __ovld __cnfn cross(float3 p0, float3 p1);
11409#ifdef cl_khr_fp64
11410double4 __ovld __cnfn cross(double4 p0, double4 p1);
11411double3 __ovld __cnfn cross(double3 p0, double3 p1);
11412#endif //cl_khr_fp64
11413#ifdef cl_khr_fp16
11414half4 __ovld __cnfn cross(half4 p0, half4 p1);
11415half3 __ovld __cnfn cross(half3 p0, half3 p1);
11416#endif //cl_khr_fp16
11417
11418/**
11419 * Compute dot product.
11420 */
11421float __ovld __cnfn dot(float p0, float p1);
11422float __ovld __cnfn dot(float2 p0, float2 p1);
11423float __ovld __cnfn dot(float3 p0, float3 p1);
11424float __ovld __cnfn dot(float4 p0, float4 p1);
11425#ifdef cl_khr_fp64
11426double __ovld __cnfn dot(double p0, double p1);
11427double __ovld __cnfn dot(double2 p0, double2 p1);
11428double __ovld __cnfn dot(double3 p0, double3 p1);
11429double __ovld __cnfn dot(double4 p0, double4 p1);
11430#endif //cl_khr_fp64
11431#ifdef cl_khr_fp16
11432half __ovld __cnfn dot(half p0, half p1);
11433half __ovld __cnfn dot(half2 p0, half2 p1);
11434half __ovld __cnfn dot(half3 p0, half3 p1);
11435half __ovld __cnfn dot(half4 p0, half4 p1);
11436#endif //cl_khr_fp16
11437
11438/**
11439 * Returns the distance between p0 and p1. This is
11440 * calculated as length(p0 - p1).
11441 */
11442float __ovld __cnfn distance(float p0, float p1);
11443float __ovld __cnfn distance(float2 p0, float2 p1);
11444float __ovld __cnfn distance(float3 p0, float3 p1);
11445float __ovld __cnfn distance(float4 p0, float4 p1);
11446#ifdef cl_khr_fp64
11447double __ovld __cnfn distance(double p0, double p1);
11448double __ovld __cnfn distance(double2 p0, double2 p1);
11449double __ovld __cnfn distance(double3 p0, double3 p1);
11450double __ovld __cnfn distance(double4 p0, double4 p1);
11451#endif //cl_khr_fp64
11452#ifdef cl_khr_fp16
11453half __ovld __cnfn distance(half p0, half p1);
11454half __ovld __cnfn distance(half2 p0, half2 p1);
11455half __ovld __cnfn distance(half3 p0, half3 p1);
11456half __ovld __cnfn distance(half4 p0, half4 p1);
11457#endif //cl_khr_fp16
11458
11459/**
11460 * Return the length of vector p, i.e.,
11461 * sqrt(p.x2 + p.y 2 + ...)
11462 */
11463float __ovld __cnfn length(float p);
11464float __ovld __cnfn length(float2 p);
11465float __ovld __cnfn length(float3 p);
11466float __ovld __cnfn length(float4 p);
11467#ifdef cl_khr_fp64
11468double __ovld __cnfn length(double p);
11469double __ovld __cnfn length(double2 p);
11470double __ovld __cnfn length(double3 p);
11471double __ovld __cnfn length(double4 p);
11472#endif //cl_khr_fp64
11473#ifdef cl_khr_fp16
11474half __ovld __cnfn length(half p);
11475half __ovld __cnfn length(half2 p);
11476half __ovld __cnfn length(half3 p);
11477half __ovld __cnfn length(half4 p);
11478#endif //cl_khr_fp16
11479
11480/**
11481 * Returns a vector in the same direction as p but with a
11482 * length of 1.
11483 */
11484float __ovld __cnfn normalize(float p);
11485float2 __ovld __cnfn normalize(float2 p);
11486float3 __ovld __cnfn normalize(float3 p);
11487float4 __ovld __cnfn normalize(float4 p);
11488#ifdef cl_khr_fp64
11489double __ovld __cnfn normalize(double p);
11490double2 __ovld __cnfn normalize(double2 p);
11491double3 __ovld __cnfn normalize(double3 p);
11492double4 __ovld __cnfn normalize(double4 p);
11493#endif //cl_khr_fp64
11494#ifdef cl_khr_fp16
11495half __ovld __cnfn normalize(half p);
11496half2 __ovld __cnfn normalize(half2 p);
11497half3 __ovld __cnfn normalize(half3 p);
11498half4 __ovld __cnfn normalize(half4 p);
11499#endif //cl_khr_fp16
11500
11501/**
11502 * Returns fast_length(p0 - p1).
11503 */
11504float __ovld __cnfn fast_distance(float p0, float p1);
11505float __ovld __cnfn fast_distance(float2 p0, float2 p1);
11506float __ovld __cnfn fast_distance(float3 p0, float3 p1);
11507float __ovld __cnfn fast_distance(float4 p0, float4 p1);
11508#ifdef cl_khr_fp16
11509half __ovld __cnfn fast_distance(half p0, half p1);
11510half __ovld __cnfn fast_distance(half2 p0, half2 p1);
11511half __ovld __cnfn fast_distance(half3 p0, half3 p1);
11512half __ovld __cnfn fast_distance(half4 p0, half4 p1);
11513#endif //cl_khr_fp16
11514
11515/**
11516 * Returns the length of vector p computed as:
11517 * half_sqrt(p.x2 + p.y2 + ...)
11518 */
11519float __ovld __cnfn fast_length(float p);
11520float __ovld __cnfn fast_length(float2 p);
11521float __ovld __cnfn fast_length(float3 p);
11522float __ovld __cnfn fast_length(float4 p);
11523#ifdef cl_khr_fp16
11524half __ovld __cnfn fast_length(half p);
11525half __ovld __cnfn fast_length(half2 p);
11526half __ovld __cnfn fast_length(half3 p);
11527half __ovld __cnfn fast_length(half4 p);
11528#endif //cl_khr_fp16
11529
11530/**
11531 * Returns a vector in the same direction as p but with a
11532 * length of 1. fast_normalize is computed as:
11533 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
11534 * The result shall be within 8192 ulps error from the
11535 * infinitely precise result of
11536 * if (all(p == 0.0f))
11537 * result = p;
11538 * else
11539 * result = p / sqrt (p.x^2 + p.y^2 + ...);
11540 * with the following exceptions:
11541 * 1) If the sum of squares is greater than FLT_MAX
11542 * then the value of the floating-point values in the
11543 * result vector are undefined.
11544 * 2) If the sum of squares is less than FLT_MIN then
11545 * the implementation may return back p.
11546 * 3) If the device is in "denorms are flushed to zero"
11547 * mode, individual operand elements with magnitude
11548 * less than sqrt(FLT_MIN) may be flushed to zero
11549 * before proceeding with the calculation.
11550 */
11551float __ovld __cnfn fast_normalize(float p);
11552float2 __ovld __cnfn fast_normalize(float2 p);
11553float3 __ovld __cnfn fast_normalize(float3 p);
11554float4 __ovld __cnfn fast_normalize(float4 p);
11555#ifdef cl_khr_fp16
11556half __ovld __cnfn fast_normalize(half p);
11557half2 __ovld __cnfn fast_normalize(half2 p);
11558half3 __ovld __cnfn fast_normalize(half3 p);
11559half4 __ovld __cnfn fast_normalize(half4 p);
11560#endif //cl_khr_fp16
11561
11562// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
11563
11564/**
11565 * intn isequal (floatn x, floatn y)
11566 * Returns the component-wise compare of x == y.
11567 */
11568int __ovld __cnfn isequal(float x, float y);
11569int2 __ovld __cnfn isequal(float2 x, float2 y);
11570int3 __ovld __cnfn isequal(float3 x, float3 y);
11571int4 __ovld __cnfn isequal(float4 x, float4 y);
11572int8 __ovld __cnfn isequal(float8 x, float8 y);
11573int16 __ovld __cnfn isequal(float16 x, float16 y);
11574#ifdef cl_khr_fp64
11575int __ovld __cnfn isequal(double x, double y);
11576long2 __ovld __cnfn isequal(double2 x, double2 y);
11577long3 __ovld __cnfn isequal(double3 x, double3 y);
11578long4 __ovld __cnfn isequal(double4 x, double4 y);
11579long8 __ovld __cnfn isequal(double8 x, double8 y);
11580long16 __ovld __cnfn isequal(double16 x, double16 y);
11581#endif //cl_khr_fp64
11582#ifdef cl_khr_fp16
11583int __ovld __cnfn isequal(half x, half y);
11584short2 __ovld __cnfn isequal(half2 x, half2 y);
11585short3 __ovld __cnfn isequal(half3 x, half3 y);
11586short4 __ovld __cnfn isequal(half4 x, half4 y);
11587short8 __ovld __cnfn isequal(half8 x, half8 y);
11588short16 __ovld __cnfn isequal(half16 x, half16 y);
11589#endif //cl_khr_fp16
11590
11591/**
11592 * Returns the component-wise compare of x != y.
11593 */
11594int __ovld __cnfn isnotequal(float x, float y);
11595int2 __ovld __cnfn isnotequal(float2 x, float2 y);
11596int3 __ovld __cnfn isnotequal(float3 x, float3 y);
11597int4 __ovld __cnfn isnotequal(float4 x, float4 y);
11598int8 __ovld __cnfn isnotequal(float8 x, float8 y);
11599int16 __ovld __cnfn isnotequal(float16 x, float16 y);
11600#ifdef cl_khr_fp64
11601int __ovld __cnfn isnotequal(double x, double y);
11602long2 __ovld __cnfn isnotequal(double2 x, double2 y);
11603long3 __ovld __cnfn isnotequal(double3 x, double3 y);
11604long4 __ovld __cnfn isnotequal(double4 x, double4 y);
11605long8 __ovld __cnfn isnotequal(double8 x, double8 y);
11606long16 __ovld __cnfn isnotequal(double16 x, double16 y);
11607#endif //cl_khr_fp64
11608#ifdef cl_khr_fp16
11609int __ovld __cnfn isnotequal(half x, half y);
11610short2 __ovld __cnfn isnotequal(half2 x, half2 y);
11611short3 __ovld __cnfn isnotequal(half3 x, half3 y);
11612short4 __ovld __cnfn isnotequal(half4 x, half4 y);
11613short8 __ovld __cnfn isnotequal(half8 x, half8 y);
11614short16 __ovld __cnfn isnotequal(half16 x, half16 y);
11615#endif //cl_khr_fp16
11616
11617/**
11618 * Returns the component-wise compare of x > y.
11619 */
11620int __ovld __cnfn isgreater(float x, float y);
11621int2 __ovld __cnfn isgreater(float2 x, float2 y);
11622int3 __ovld __cnfn isgreater(float3 x, float3 y);
11623int4 __ovld __cnfn isgreater(float4 x, float4 y);
11624int8 __ovld __cnfn isgreater(float8 x, float8 y);
11625int16 __ovld __cnfn isgreater(float16 x, float16 y);
11626#ifdef cl_khr_fp64
11627int __ovld __cnfn isgreater(double x, double y);
11628long2 __ovld __cnfn isgreater(double2 x, double2 y);
11629long3 __ovld __cnfn isgreater(double3 x, double3 y);
11630long4 __ovld __cnfn isgreater(double4 x, double4 y);
11631long8 __ovld __cnfn isgreater(double8 x, double8 y);
11632long16 __ovld __cnfn isgreater(double16 x, double16 y);
11633#endif //cl_khr_fp64
11634#ifdef cl_khr_fp16
11635int __ovld __cnfn isgreater(half x, half y);
11636short2 __ovld __cnfn isgreater(half2 x, half2 y);
11637short3 __ovld __cnfn isgreater(half3 x, half3 y);
11638short4 __ovld __cnfn isgreater(half4 x, half4 y);
11639short8 __ovld __cnfn isgreater(half8 x, half8 y);
11640short16 __ovld __cnfn isgreater(half16 x, half16 y);
11641#endif //cl_khr_fp16
11642
11643/**
11644 * Returns the component-wise compare of x >= y.
11645 */
11646int __ovld __cnfn isgreaterequal(float x, float y);
11647int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
11648int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
11649int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
11650int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
11651int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
11652#ifdef cl_khr_fp64
11653int __ovld __cnfn isgreaterequal(double x, double y);
11654long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
11655long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
11656long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
11657long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
11658long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
11659#endif //cl_khr_fp64
11660#ifdef cl_khr_fp16
11661int __ovld __cnfn isgreaterequal(half x, half y);
11662short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
11663short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
11664short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
11665short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
11666short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
11667#endif //cl_khr_fp16
11668
11669/**
11670 * Returns the component-wise compare of x < y.
11671 */
11672int __ovld __cnfn isless(float x, float y);
11673int2 __ovld __cnfn isless(float2 x, float2 y);
11674int3 __ovld __cnfn isless(float3 x, float3 y);
11675int4 __ovld __cnfn isless(float4 x, float4 y);
11676int8 __ovld __cnfn isless(float8 x, float8 y);
11677int16 __ovld __cnfn isless(float16 x, float16 y);
11678#ifdef cl_khr_fp64
11679int __ovld __cnfn isless(double x, double y);
11680long2 __ovld __cnfn isless(double2 x, double2 y);
11681long3 __ovld __cnfn isless(double3 x, double3 y);
11682long4 __ovld __cnfn isless(double4 x, double4 y);
11683long8 __ovld __cnfn isless(double8 x, double8 y);
11684long16 __ovld __cnfn isless(double16 x, double16 y);
11685#endif //cl_khr_fp64
11686#ifdef cl_khr_fp16
11687int __ovld __cnfn isless(half x, half y);
11688short2 __ovld __cnfn isless(half2 x, half2 y);
11689short3 __ovld __cnfn isless(half3 x, half3 y);
11690short4 __ovld __cnfn isless(half4 x, half4 y);
11691short8 __ovld __cnfn isless(half8 x, half8 y);
11692short16 __ovld __cnfn isless(half16 x, half16 y);
11693#endif //cl_khr_fp16
11694
11695/**
11696 * Returns the component-wise compare of x <= y.
11697 */
11698int __ovld __cnfn islessequal(float x, float y);
11699int2 __ovld __cnfn islessequal(float2 x, float2 y);
11700int3 __ovld __cnfn islessequal(float3 x, float3 y);
11701int4 __ovld __cnfn islessequal(float4 x, float4 y);
11702int8 __ovld __cnfn islessequal(float8 x, float8 y);
11703int16 __ovld __cnfn islessequal(float16 x, float16 y);
11704#ifdef cl_khr_fp64
11705int __ovld __cnfn islessequal(double x, double y);
11706long2 __ovld __cnfn islessequal(double2 x, double2 y);
11707long3 __ovld __cnfn islessequal(double3 x, double3 y);
11708long4 __ovld __cnfn islessequal(double4 x, double4 y);
11709long8 __ovld __cnfn islessequal(double8 x, double8 y);
11710long16 __ovld __cnfn islessequal(double16 x, double16 y);
11711#endif //cl_khr_fp64
11712#ifdef cl_khr_fp16
11713int __ovld __cnfn islessequal(half x, half y);
11714short2 __ovld __cnfn islessequal(half2 x, half2 y);
11715short3 __ovld __cnfn islessequal(half3 x, half3 y);
11716short4 __ovld __cnfn islessequal(half4 x, half4 y);
11717short8 __ovld __cnfn islessequal(half8 x, half8 y);
11718short16 __ovld __cnfn islessequal(half16 x, half16 y);
11719#endif //cl_khr_fp16
11720
11721/**
11722 * Returns the component-wise compare of
11723 * (x < y) || (x > y) .
11724 */
11725int __ovld __cnfn islessgreater(float x, float y);
11726int2 __ovld __cnfn islessgreater(float2 x, float2 y);
11727int3 __ovld __cnfn islessgreater(float3 x, float3 y);
11728int4 __ovld __cnfn islessgreater(float4 x, float4 y);
11729int8 __ovld __cnfn islessgreater(float8 x, float8 y);
11730int16 __ovld __cnfn islessgreater(float16 x, float16 y);
11731#ifdef cl_khr_fp64
11732int __ovld __cnfn islessgreater(double x, double y);
11733long2 __ovld __cnfn islessgreater(double2 x, double2 y);
11734long3 __ovld __cnfn islessgreater(double3 x, double3 y);
11735long4 __ovld __cnfn islessgreater(double4 x, double4 y);
11736long8 __ovld __cnfn islessgreater(double8 x, double8 y);
11737long16 __ovld __cnfn islessgreater(double16 x, double16 y);
11738#endif //cl_khr_fp64
11739#ifdef cl_khr_fp16
11740int __ovld __cnfn islessgreater(half x, half y);
11741short2 __ovld __cnfn islessgreater(half2 x, half2 y);
11742short3 __ovld __cnfn islessgreater(half3 x, half3 y);
11743short4 __ovld __cnfn islessgreater(half4 x, half4 y);
11744short8 __ovld __cnfn islessgreater(half8 x, half8 y);
11745short16 __ovld __cnfn islessgreater(half16 x, half16 y);
11746#endif //cl_khr_fp16
11747
11748/**
11749 * Test for finite value.
11750 */
11751int __ovld __cnfn isfinite(float);
11752int2 __ovld __cnfn isfinite(float2);
11753int3 __ovld __cnfn isfinite(float3);
11754int4 __ovld __cnfn isfinite(float4);
11755int8 __ovld __cnfn isfinite(float8);
11756int16 __ovld __cnfn isfinite(float16);
11757#ifdef cl_khr_fp64
11758int __ovld __cnfn isfinite(double);
11759long2 __ovld __cnfn isfinite(double2);
11760long3 __ovld __cnfn isfinite(double3);
11761long4 __ovld __cnfn isfinite(double4);
11762long8 __ovld __cnfn isfinite(double8);
11763long16 __ovld __cnfn isfinite(double16);
11764#endif //cl_khr_fp64
11765#ifdef cl_khr_fp16
11766int __ovld __cnfn isfinite(half);
11767short2 __ovld __cnfn isfinite(half2);
11768short3 __ovld __cnfn isfinite(half3);
11769short4 __ovld __cnfn isfinite(half4);
11770short8 __ovld __cnfn isfinite(half8);
11771short16 __ovld __cnfn isfinite(half16);
11772#endif //cl_khr_fp16
11773
11774/**
11775 * Test for infinity value (+ve or -ve) .
11776 */
11777int __ovld __cnfn isinf(float);
11778int2 __ovld __cnfn isinf(float2);
11779int3 __ovld __cnfn isinf(float3);
11780int4 __ovld __cnfn isinf(float4);
11781int8 __ovld __cnfn isinf(float8);
11782int16 __ovld __cnfn isinf(float16);
11783#ifdef cl_khr_fp64
11784int __ovld __cnfn isinf(double);
11785long2 __ovld __cnfn isinf(double2);
11786long3 __ovld __cnfn isinf(double3);
11787long4 __ovld __cnfn isinf(double4);
11788long8 __ovld __cnfn isinf(double8);
11789long16 __ovld __cnfn isinf(double16);
11790#endif //cl_khr_fp64
11791#ifdef cl_khr_fp16
11792int __ovld __cnfn isinf(half);
11793short2 __ovld __cnfn isinf(half2);
11794short3 __ovld __cnfn isinf(half3);
11795short4 __ovld __cnfn isinf(half4);
11796short8 __ovld __cnfn isinf(half8);
11797short16 __ovld __cnfn isinf(half16);
11798#endif //cl_khr_fp16
11799
11800/**
11801 * Test for a NaN.
11802 */
11803int __ovld __cnfn isnan(float);
11804int2 __ovld __cnfn isnan(float2);
11805int3 __ovld __cnfn isnan(float3);
11806int4 __ovld __cnfn isnan(float4);
11807int8 __ovld __cnfn isnan(float8);
11808int16 __ovld __cnfn isnan(float16);
11809#ifdef cl_khr_fp64
11810int __ovld __cnfn isnan(double);
11811long2 __ovld __cnfn isnan(double2);
11812long3 __ovld __cnfn isnan(double3);
11813long4 __ovld __cnfn isnan(double4);
11814long8 __ovld __cnfn isnan(double8);
11815long16 __ovld __cnfn isnan(double16);
11816#endif //cl_khr_fp64
11817#ifdef cl_khr_fp16
11818int __ovld __cnfn isnan(half);
11819short2 __ovld __cnfn isnan(half2);
11820short3 __ovld __cnfn isnan(half3);
11821short4 __ovld __cnfn isnan(half4);
11822short8 __ovld __cnfn isnan(half8);
11823short16 __ovld __cnfn isnan(half16);
11824#endif //cl_khr_fp16
11825
11826/**
11827 * Test for a normal value.
11828 */
11829int __ovld __cnfn isnormal(float);
11830int2 __ovld __cnfn isnormal(float2);
11831int3 __ovld __cnfn isnormal(float3);
11832int4 __ovld __cnfn isnormal(float4);
11833int8 __ovld __cnfn isnormal(float8);
11834int16 __ovld __cnfn isnormal(float16);
11835#ifdef cl_khr_fp64
11836int __ovld __cnfn isnormal(double);
11837long2 __ovld __cnfn isnormal(double2);
11838long3 __ovld __cnfn isnormal(double3);
11839long4 __ovld __cnfn isnormal(double4);
11840long8 __ovld __cnfn isnormal(double8);
11841long16 __ovld __cnfn isnormal(double16);
11842#endif //cl_khr_fp64
11843#ifdef cl_khr_fp16
11844int __ovld __cnfn isnormal(half);
11845short2 __ovld __cnfn isnormal(half2);
11846short3 __ovld __cnfn isnormal(half3);
11847short4 __ovld __cnfn isnormal(half4);
11848short8 __ovld __cnfn isnormal(half8);
11849short16 __ovld __cnfn isnormal(half16);
11850#endif //cl_khr_fp16
11851
11852/**
11853 * Test if arguments are ordered. isordered() takes
11854 * arguments x and y, and returns the result
11855 * isequal(x, x) && isequal(y, y).
11856 */
11857int __ovld __cnfn isordered(float x, float y);
11858int2 __ovld __cnfn isordered(float2 x, float2 y);
11859int3 __ovld __cnfn isordered(float3 x, float3 y);
11860int4 __ovld __cnfn isordered(float4 x, float4 y);
11861int8 __ovld __cnfn isordered(float8 x, float8 y);
11862int16 __ovld __cnfn isordered(float16 x, float16 y);
11863#ifdef cl_khr_fp64
11864int __ovld __cnfn isordered(double x, double y);
11865long2 __ovld __cnfn isordered(double2 x, double2 y);
11866long3 __ovld __cnfn isordered(double3 x, double3 y);
11867long4 __ovld __cnfn isordered(double4 x, double4 y);
11868long8 __ovld __cnfn isordered(double8 x, double8 y);
11869long16 __ovld __cnfn isordered(double16 x, double16 y);
11870#endif //cl_khr_fp64
11871#ifdef cl_khr_fp16
11872int __ovld __cnfn isordered(half x, half y);
11873short2 __ovld __cnfn isordered(half2 x, half2 y);
11874short3 __ovld __cnfn isordered(half3 x, half3 y);
11875short4 __ovld __cnfn isordered(half4 x, half4 y);
11876short8 __ovld __cnfn isordered(half8 x, half8 y);
11877short16 __ovld __cnfn isordered(half16 x, half16 y);
11878#endif //cl_khr_fp16
11879
11880/**
11881 * Test if arguments are unordered. isunordered()
11882 * takes arguments x and y, returning non-zero if x or y
11883 * is NaN, and zero otherwise.
11884 */
11885int __ovld __cnfn isunordered(float x, float y);
11886int2 __ovld __cnfn isunordered(float2 x, float2 y);
11887int3 __ovld __cnfn isunordered(float3 x, float3 y);
11888int4 __ovld __cnfn isunordered(float4 x, float4 y);
11889int8 __ovld __cnfn isunordered(float8 x, float8 y);
11890int16 __ovld __cnfn isunordered(float16 x, float16 y);
11891#ifdef cl_khr_fp64
11892int __ovld __cnfn isunordered(double x, double y);
11893long2 __ovld __cnfn isunordered(double2 x, double2 y);
11894long3 __ovld __cnfn isunordered(double3 x, double3 y);
11895long4 __ovld __cnfn isunordered(double4 x, double4 y);
11896long8 __ovld __cnfn isunordered(double8 x, double8 y);
11897long16 __ovld __cnfn isunordered(double16 x, double16 y);
11898#endif //cl_khr_fp64
11899#ifdef cl_khr_fp16
11900int __ovld __cnfn isunordered(half x, half y);
11901short2 __ovld __cnfn isunordered(half2 x, half2 y);
11902short3 __ovld __cnfn isunordered(half3 x, half3 y);
11903short4 __ovld __cnfn isunordered(half4 x, half4 y);
11904short8 __ovld __cnfn isunordered(half8 x, half8 y);
11905short16 __ovld __cnfn isunordered(half16 x, half16 y);
11906#endif //cl_khr_fp16
11907
11908/**
11909 * Test for sign bit. The scalar version of the function
11910 * returns a 1 if the sign bit in the float is set else returns
11911 * 0. The vector version of the function returns the
11912 * following for each component in floatn: a -1 if the
11913 * sign bit in the float is set else returns 0.
11914 */
11915int __ovld __cnfn signbit(float);
11916int2 __ovld __cnfn signbit(float2);
11917int3 __ovld __cnfn signbit(float3);
11918int4 __ovld __cnfn signbit(float4);
11919int8 __ovld __cnfn signbit(float8);
11920int16 __ovld __cnfn signbit(float16);
11921#ifdef cl_khr_fp64
11922int __ovld __cnfn signbit(double);
11923long2 __ovld __cnfn signbit(double2);
11924long3 __ovld __cnfn signbit(double3);
11925long4 __ovld __cnfn signbit(double4);
11926long8 __ovld __cnfn signbit(double8);
11927long16 __ovld __cnfn signbit(double16);
11928#endif //cl_khr_fp64
11929#ifdef cl_khr_fp16
11930int __ovld __cnfn signbit(half);
11931short2 __ovld __cnfn signbit(half2);
11932short3 __ovld __cnfn signbit(half3);
11933short4 __ovld __cnfn signbit(half4);
11934short8 __ovld __cnfn signbit(half8);
11935short16 __ovld __cnfn signbit(half16);
11936#endif //cl_khr_fp16
11937
11938/**
11939 * Returns 1 if the most significant bit in any component
11940 * of x is set; otherwise returns 0.
11941 */
11942int __ovld __cnfn any(char x);
11943int __ovld __cnfn any(char2 x);
11944int __ovld __cnfn any(char3 x);
11945int __ovld __cnfn any(char4 x);
11946int __ovld __cnfn any(char8 x);
11947int __ovld __cnfn any(char16 x);
11948int __ovld __cnfn any(short x);
11949int __ovld __cnfn any(short2 x);
11950int __ovld __cnfn any(short3 x);
11951int __ovld __cnfn any(short4 x);
11952int __ovld __cnfn any(short8 x);
11953int __ovld __cnfn any(short16 x);
11954int __ovld __cnfn any(int x);
11955int __ovld __cnfn any(int2 x);
11956int __ovld __cnfn any(int3 x);
11957int __ovld __cnfn any(int4 x);
11958int __ovld __cnfn any(int8 x);
11959int __ovld __cnfn any(int16 x);
11960int __ovld __cnfn any(long x);
11961int __ovld __cnfn any(long2 x);
11962int __ovld __cnfn any(long3 x);
11963int __ovld __cnfn any(long4 x);
11964int __ovld __cnfn any(long8 x);
11965int __ovld __cnfn any(long16 x);
11966
11967/**
11968 * Returns 1 if the most significant bit in all components
11969 * of x is set; otherwise returns 0.
11970 */
11971int __ovld __cnfn all(char x);
11972int __ovld __cnfn all(char2 x);
11973int __ovld __cnfn all(char3 x);
11974int __ovld __cnfn all(char4 x);
11975int __ovld __cnfn all(char8 x);
11976int __ovld __cnfn all(char16 x);
11977int __ovld __cnfn all(short x);
11978int __ovld __cnfn all(short2 x);
11979int __ovld __cnfn all(short3 x);
11980int __ovld __cnfn all(short4 x);
11981int __ovld __cnfn all(short8 x);
11982int __ovld __cnfn all(short16 x);
11983int __ovld __cnfn all(int x);
11984int __ovld __cnfn all(int2 x);
11985int __ovld __cnfn all(int3 x);
11986int __ovld __cnfn all(int4 x);
11987int __ovld __cnfn all(int8 x);
11988int __ovld __cnfn all(int16 x);
11989int __ovld __cnfn all(long x);
11990int __ovld __cnfn all(long2 x);
11991int __ovld __cnfn all(long3 x);
11992int __ovld __cnfn all(long4 x);
11993int __ovld __cnfn all(long8 x);
11994int __ovld __cnfn all(long16 x);
11995
11996/**
11997 * Each bit of the result is the corresponding bit of a if
11998 * the corresponding bit of c is 0. Otherwise it is the
11999 * corresponding bit of b.
12000 */
12001char __ovld __cnfn bitselect(char a, char b, char c);
12002uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
12003char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
12004uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
12005char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
12006uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
12007char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
12008uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
12009char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
12010uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
12011char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
12012uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
12013short __ovld __cnfn bitselect(short a, short b, short c);
12014ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
12015short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
12016ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
12017short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
12018ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
12019short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
12020ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
12021short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
12022ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
12023short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
12024ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
12025int __ovld __cnfn bitselect(int a, int b, int c);
12026uint __ovld __cnfn bitselect(uint a, uint b, uint c);
12027int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
12028uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
12029int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
12030uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
12031int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
12032uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
12033int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
12034uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
12035int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
12036uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
12037long __ovld __cnfn bitselect(long a, long b, long c);
12038ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
12039long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
12040ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
12041long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
12042ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
12043long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
12044ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
12045long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
12046ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
12047long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
12048ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
12049float __ovld __cnfn bitselect(float a, float b, float c);
12050float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
12051float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
12052float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
12053float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
12054float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
12055#ifdef cl_khr_fp64
12056double __ovld __cnfn bitselect(double a, double b, double c);
12057double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
12058double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
12059double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
12060double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
12061double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
12062#endif //cl_khr_fp64
12063#ifdef cl_khr_fp16
12064half __ovld __cnfn bitselect(half a, half b, half c);
12065half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
12066half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
12067half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
12068half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
12069half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
12070#endif //cl_khr_fp16
12071
12072/**
12073 * For each component of a vector type,
12074 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
12075 * For a scalar type, result = c ? b : a.
12076 */
12077char __ovld __cnfn select(char a, char b, char c);
12078uchar __ovld __cnfn select(uchar a, uchar b, char c);
12079char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
12080uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
12081char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
12082uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
12083char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
12084uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
12085char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
12086uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
12087char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
12088uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
12089short __ovld __cnfn select(short a, short b, char c);
12090ushort __ovld __cnfn select(ushort a, ushort b, char c);
12091short2 __ovld __cnfn select(short2 a, short2 b, char2 c);
12092ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, char2 c);
12093short3 __ovld __cnfn select(short3 a, short3 b, char3 c);
12094ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, char3 c);
12095short4 __ovld __cnfn select(short4 a, short4 b, char4 c);
12096ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, char4 c);
12097short8 __ovld __cnfn select(short8 a, short8 b, char8 c);
12098ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, char8 c);
12099short16 __ovld __cnfn select(short16 a, short16 b, char16 c);
12100ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, char16 c);
12101int __ovld __cnfn select(int a, int b, char c);
12102uint __ovld __cnfn select(uint a, uint b, char c);
12103int2 __ovld __cnfn select(int2 a, int2 b, char2 c);
12104uint2 __ovld __cnfn select(uint2 a, uint2 b, char2 c);
12105int3 __ovld __cnfn select(int3 a, int3 b, char3 c);
12106uint3 __ovld __cnfn select(uint3 a, uint3 b, char3 c);
12107int4 __ovld __cnfn select(int4 a, int4 b, char4 c);
12108uint4 __ovld __cnfn select(uint4 a, uint4 b, char4 c);
12109int8 __ovld __cnfn select(int8 a, int8 b, char8 c);
12110uint8 __ovld __cnfn select(uint8 a, uint8 b, char8 c);
12111int16 __ovld __cnfn select(int16 a, int16 b, char16 c);
12112uint16 __ovld __cnfn select(uint16 a, uint16 b, char16 c);
12113long __ovld __cnfn select(long a, long b, char c);
12114ulong __ovld __cnfn select(ulong a, ulong b, char c);
12115long2 __ovld __cnfn select(long2 a, long2 b, char2 c);
12116ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, char2 c);
12117long3 __ovld __cnfn select(long3 a, long3 b, char3 c);
12118ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, char3 c);
12119long4 __ovld __cnfn select(long4 a, long4 b, char4 c);
12120ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, char4 c);
12121long8 __ovld __cnfn select(long8 a, long8 b, char8 c);
12122ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, char8 c);
12123long16 __ovld __cnfn select(long16 a, long16 b, char16 c);
12124ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, char16 c);
12125float __ovld __cnfn select(float a, float b, char c);
12126float2 __ovld __cnfn select(float2 a, float2 b, char2 c);
12127float3 __ovld __cnfn select(float3 a, float3 b, char3 c);
12128float4 __ovld __cnfn select(float4 a, float4 b, char4 c);
12129float8 __ovld __cnfn select(float8 a, float8 b, char8 c);
12130float16 __ovld __cnfn select(float16 a, float16 b, char16 c);
12131char __ovld __cnfn select(char a, char b, short c);
12132uchar __ovld __cnfn select(uchar a, uchar b, short c);
12133char2 __ovld __cnfn select(char2 a, char2 b, short2 c);
12134uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, short2 c);
12135char3 __ovld __cnfn select(char3 a, char3 b, short3 c);
12136uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, short3 c);
12137char4 __ovld __cnfn select(char4 a, char4 b, short4 c);
12138uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, short4 c);
12139char8 __ovld __cnfn select(char8 a, char8 b, short8 c);
12140uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, short8 c);
12141char16 __ovld __cnfn select(char16 a, char16 b, short16 c);
12142uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, short16 c);
12143short __ovld __cnfn select(short a, short b, short c);
12144ushort __ovld __cnfn select(ushort a, ushort b, short c);
12145short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
12146ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
12147short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
12148ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
12149short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
12150ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
12151short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
12152ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
12153short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
12154ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
12155int __ovld __cnfn select(int a, int b, short c);
12156uint __ovld __cnfn select(uint a, uint b, short c);
12157int2 __ovld __cnfn select(int2 a, int2 b, short2 c);
12158uint2 __ovld __cnfn select(uint2 a, uint2 b, short2 c);
12159int3 __ovld __cnfn select(int3 a, int3 b, short3 c);
12160uint3 __ovld __cnfn select(uint3 a, uint3 b, short3 c);
12161int4 __ovld __cnfn select(int4 a, int4 b, short4 c);
12162uint4 __ovld __cnfn select(uint4 a, uint4 b, short4 c);
12163int8 __ovld __cnfn select(int8 a, int8 b, short8 c);
12164uint8 __ovld __cnfn select(uint8 a, uint8 b, short8 c);
12165int16 __ovld __cnfn select(int16 a, int16 b, short16 c);
12166uint16 __ovld __cnfn select(uint16 a, uint16 b, short16 c);
12167long __ovld __cnfn select(long a, long b, short c);
12168ulong __ovld __cnfn select(ulong a, ulong b, short c);
12169long2 __ovld __cnfn select(long2 a, long2 b, short2 c);
12170ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, short2 c);
12171long3 __ovld __cnfn select(long3 a, long3 b, short3 c);
12172ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, short3 c);
12173long4 __ovld __cnfn select(long4 a, long4 b, short4 c);
12174ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, short4 c);
12175long8 __ovld __cnfn select(long8 a, long8 b, short8 c);
12176ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, short8 c);
12177long16 __ovld __cnfn select(long16 a, long16 b, short16 c);
12178ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, short16 c);
12179float __ovld __cnfn select(float a, float b, short c);
12180float2 __ovld __cnfn select(float2 a, float2 b, short2 c);
12181float3 __ovld __cnfn select(float3 a, float3 b, short3 c);
12182float4 __ovld __cnfn select(float4 a, float4 b, short4 c);
12183float8 __ovld __cnfn select(float8 a, float8 b, short8 c);
12184float16 __ovld __cnfn select(float16 a, float16 b, short16 c);
12185char __ovld __cnfn select(char a, char b, int c);
12186uchar __ovld __cnfn select(uchar a, uchar b, int c);
12187char2 __ovld __cnfn select(char2 a, char2 b, int2 c);
12188uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, int2 c);
12189char3 __ovld __cnfn select(char3 a, char3 b, int3 c);
12190uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, int3 c);
12191char4 __ovld __cnfn select(char4 a, char4 b, int4 c);
12192uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, int4 c);
12193char8 __ovld __cnfn select(char8 a, char8 b, int8 c);
12194uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, int8 c);
12195char16 __ovld __cnfn select(char16 a, char16 b, int16 c);
12196uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, int16 c);
12197short __ovld __cnfn select(short a, short b, int c);
12198ushort __ovld __cnfn select(ushort a, ushort b, int c);
12199short2 __ovld __cnfn select(short2 a, short2 b, int2 c);
12200ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, int2 c);
12201short3 __ovld __cnfn select(short3 a, short3 b, int3 c);
12202ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, int3 c);
12203short4 __ovld __cnfn select(short4 a, short4 b, int4 c);
12204ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, int4 c);
12205short8 __ovld __cnfn select(short8 a, short8 b, int8 c);
12206ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, int8 c);
12207short16 __ovld __cnfn select(short16 a, short16 b, int16 c);
12208ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, int16 c);
12209int __ovld __cnfn select(int a, int b, int c);
12210uint __ovld __cnfn select(uint a, uint b, int c);
12211int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
12212uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
12213int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
12214uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
12215int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
12216uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
12217int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
12218uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
12219int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
12220uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
12221long __ovld __cnfn select(long a, long b, int c);
12222ulong __ovld __cnfn select(ulong a, ulong b, int c);
12223long2 __ovld __cnfn select(long2 a, long2 b, int2 c);
12224ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, int2 c);
12225long3 __ovld __cnfn select(long3 a, long3 b, int3 c);
12226ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, int3 c);
12227long4 __ovld __cnfn select(long4 a, long4 b, int4 c);
12228ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, int4 c);
12229long8 __ovld __cnfn select(long8 a, long8 b, int8 c);
12230ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, int8 c);
12231long16 __ovld __cnfn select(long16 a, long16 b, int16 c);
12232ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, int16 c);
12233float __ovld __cnfn select(float a, float b, int c);
12234float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
12235float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
12236float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
12237float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
12238float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
12239char __ovld __cnfn select(char a, char b, long c);
12240uchar __ovld __cnfn select(uchar a, uchar b, long c);
12241char2 __ovld __cnfn select(char2 a, char2 b, long2 c);
12242uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, long2 c);
12243char3 __ovld __cnfn select(char3 a, char3 b, long3 c);
12244uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, long3 c);
12245char4 __ovld __cnfn select(char4 a, char4 b, long4 c);
12246uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, long4 c);
12247char8 __ovld __cnfn select(char8 a, char8 b, long8 c);
12248uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, long8 c);
12249char16 __ovld __cnfn select(char16 a, char16 b, long16 c);
12250uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, long16 c);
12251short __ovld __cnfn select(short a, short b, long c);
12252ushort __ovld __cnfn select(ushort a, ushort b, long c);
12253short2 __ovld __cnfn select(short2 a, short2 b, long2 c);
12254ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, long2 c);
12255short3 __ovld __cnfn select(short3 a, short3 b, long3 c);
12256ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, long3 c);
12257short4 __ovld __cnfn select(short4 a, short4 b, long4 c);
12258ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, long4 c);
12259short8 __ovld __cnfn select(short8 a, short8 b, long8 c);
12260ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, long8 c);
12261short16 __ovld __cnfn select(short16 a, short16 b, long16 c);
12262ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, long16 c);
12263int __ovld __cnfn select(int a, int b, long c);
12264uint __ovld __cnfn select(uint a, uint b, long c);
12265int2 __ovld __cnfn select(int2 a, int2 b, long2 c);
12266uint2 __ovld __cnfn select(uint2 a, uint2 b, long2 c);
12267int3 __ovld __cnfn select(int3 a, int3 b, long3 c);
12268uint3 __ovld __cnfn select(uint3 a, uint3 b, long3 c);
12269int4 __ovld __cnfn select(int4 a, int4 b, long4 c);
12270uint4 __ovld __cnfn select(uint4 a, uint4 b, long4 c);
12271int8 __ovld __cnfn select(int8 a, int8 b, long8 c);
12272uint8 __ovld __cnfn select(uint8 a, uint8 b, long8 c);
12273int16 __ovld __cnfn select(int16 a, int16 b, long16 c);
12274uint16 __ovld __cnfn select(uint16 a, uint16 b, long16 c);
12275long __ovld __cnfn select(long a, long b, long c);
12276ulong __ovld __cnfn select(ulong a, ulong b, long c);
12277long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
12278ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
12279long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
12280ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
12281long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
12282ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
12283long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
12284ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
12285long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
12286ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
12287float __ovld __cnfn select(float a, float b, long c);
12288float2 __ovld __cnfn select(float2 a, float2 b, long2 c);
12289float3 __ovld __cnfn select(float3 a, float3 b, long3 c);
12290float4 __ovld __cnfn select(float4 a, float4 b, long4 c);
12291float8 __ovld __cnfn select(float8 a, float8 b, long8 c);
12292float16 __ovld __cnfn select(float16 a, float16 b, long16 c);
12293char __ovld __cnfn select(char a, char b, uchar c);
12294uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
12295char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
12296uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
12297char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
12298uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
12299char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
12300uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
12301char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
12302uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
12303char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
12304uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
12305short __ovld __cnfn select(short a, short b, uchar c);
12306ushort __ovld __cnfn select(ushort a, ushort b, uchar c);
12307short2 __ovld __cnfn select(short2 a, short2 b, uchar2 c);
12308ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uchar2 c);
12309short3 __ovld __cnfn select(short3 a, short3 b, uchar3 c);
12310ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uchar3 c);
12311short4 __ovld __cnfn select(short4 a, short4 b, uchar4 c);
12312ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uchar4 c);
12313short8 __ovld __cnfn select(short8 a, short8 b, uchar8 c);
12314ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uchar8 c);
12315short16 __ovld __cnfn select(short16 a, short16 b, uchar16 c);
12316ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uchar16 c);
12317int __ovld __cnfn select(int a, int b, uchar c);
12318uint __ovld __cnfn select(uint a, uint b, uchar c);
12319int2 __ovld __cnfn select(int2 a, int2 b, uchar2 c);
12320uint2 __ovld __cnfn select(uint2 a, uint2 b, uchar2 c);
12321int3 __ovld __cnfn select(int3 a, int3 b, uchar3 c);
12322uint3 __ovld __cnfn select(uint3 a, uint3 b, uchar3 c);
12323int4 __ovld __cnfn select(int4 a, int4 b, uchar4 c);
12324uint4 __ovld __cnfn select(uint4 a, uint4 b, uchar4 c);
12325int8 __ovld __cnfn select(int8 a, int8 b, uchar8 c);
12326uint8 __ovld __cnfn select(uint8 a, uint8 b, uchar8 c);
12327int16 __ovld __cnfn select(int16 a, int16 b, uchar16 c);
12328uint16 __ovld __cnfn select(uint16 a, uint16 b, uchar16 c);
12329long __ovld __cnfn select(long a, long b, uchar c);
12330ulong __ovld __cnfn select(ulong a, ulong b, uchar c);
12331long2 __ovld __cnfn select(long2 a, long2 b, uchar2 c);
12332ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uchar2 c);
12333long3 __ovld __cnfn select(long3 a, long3 b, uchar3 c);
12334ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uchar3 c);
12335long4 __ovld __cnfn select(long4 a, long4 b, uchar4 c);
12336ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uchar4 c);
12337long8 __ovld __cnfn select(long8 a, long8 b, uchar8 c);
12338ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uchar8 c);
12339long16 __ovld __cnfn select(long16 a, long16 b, uchar16 c);
12340ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uchar16 c);
12341float __ovld __cnfn select(float a, float b, uchar c);
12342float2 __ovld __cnfn select(float2 a, float2 b, uchar2 c);
12343float3 __ovld __cnfn select(float3 a, float3 b, uchar3 c);
12344float4 __ovld __cnfn select(float4 a, float4 b, uchar4 c);
12345float8 __ovld __cnfn select(float8 a, float8 b, uchar8 c);
12346float16 __ovld __cnfn select(float16 a, float16 b, uchar16 c);
12347char __ovld __cnfn select(char a, char b, ushort c);
12348uchar __ovld __cnfn select(uchar a, uchar b, ushort c);
12349char2 __ovld __cnfn select(char2 a, char2 b, ushort2 c);
12350uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ushort2 c);
12351char3 __ovld __cnfn select(char3 a, char3 b, ushort3 c);
12352uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ushort3 c);
12353char4 __ovld __cnfn select(char4 a, char4 b, ushort4 c);
12354uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ushort4 c);
12355char8 __ovld __cnfn select(char8 a, char8 b, ushort8 c);
12356uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ushort8 c);
12357char16 __ovld __cnfn select(char16 a, char16 b, ushort16 c);
12358uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ushort16 c);
12359short __ovld __cnfn select(short a, short b, ushort c);
12360ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
12361short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
12362ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
12363short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
12364ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
12365short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
12366ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
12367short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
12368ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
12369short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
12370ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
12371int __ovld __cnfn select(int a, int b, ushort c);
12372uint __ovld __cnfn select(uint a, uint b, ushort c);
12373int2 __ovld __cnfn select(int2 a, int2 b, ushort2 c);
12374uint2 __ovld __cnfn select(uint2 a, uint2 b, ushort2 c);
12375int3 __ovld __cnfn select(int3 a, int3 b, ushort3 c);
12376uint3 __ovld __cnfn select(uint3 a, uint3 b, ushort3 c);
12377int4 __ovld __cnfn select(int4 a, int4 b, ushort4 c);
12378uint4 __ovld __cnfn select(uint4 a, uint4 b, ushort4 c);
12379int8 __ovld __cnfn select(int8 a, int8 b, ushort8 c);
12380uint8 __ovld __cnfn select(uint8 a, uint8 b, ushort8 c);
12381int16 __ovld __cnfn select(int16 a, int16 b, ushort16 c);
12382uint16 __ovld __cnfn select(uint16 a, uint16 b, ushort16 c);
12383long __ovld __cnfn select(long a, long b, ushort c);
12384ulong __ovld __cnfn select(ulong a, ulong b, ushort c);
12385long2 __ovld __cnfn select(long2 a, long2 b, ushort2 c);
12386ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ushort2 c);
12387long3 __ovld __cnfn select(long3 a, long3 b, ushort3 c);
12388ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ushort3 c);
12389long4 __ovld __cnfn select(long4 a, long4 b, ushort4 c);
12390ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ushort4 c);
12391long8 __ovld __cnfn select(long8 a, long8 b, ushort8 c);
12392ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ushort8 c);
12393long16 __ovld __cnfn select(long16 a, long16 b, ushort16 c);
12394ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ushort16 c);
12395float __ovld __cnfn select(float a, float b, ushort c);
12396float2 __ovld __cnfn select(float2 a, float2 b, ushort2 c);
12397float3 __ovld __cnfn select(float3 a, float3 b, ushort3 c);
12398float4 __ovld __cnfn select(float4 a, float4 b, ushort4 c);
12399float8 __ovld __cnfn select(float8 a, float8 b, ushort8 c);
12400float16 __ovld __cnfn select(float16 a, float16 b, ushort16 c);
12401char __ovld __cnfn select(char a, char b, uint c);
12402uchar __ovld __cnfn select(uchar a, uchar b, uint c);
12403char2 __ovld __cnfn select(char2 a, char2 b, uint2 c);
12404uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uint2 c);
12405char3 __ovld __cnfn select(char3 a, char3 b, uint3 c);
12406uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uint3 c);
12407char4 __ovld __cnfn select(char4 a, char4 b, uint4 c);
12408uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uint4 c);
12409char8 __ovld __cnfn select(char8 a, char8 b, uint8 c);
12410uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uint8 c);
12411char16 __ovld __cnfn select(char16 a, char16 b, uint16 c);
12412uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uint16 c);
12413short __ovld __cnfn select(short a, short b, uint c);
12414ushort __ovld __cnfn select(ushort a, ushort b, uint c);
12415short2 __ovld __cnfn select(short2 a, short2 b, uint2 c);
12416ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uint2 c);
12417short3 __ovld __cnfn select(short3 a, short3 b, uint3 c);
12418ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uint3 c);
12419short4 __ovld __cnfn select(short4 a, short4 b, uint4 c);
12420ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uint4 c);
12421short8 __ovld __cnfn select(short8 a, short8 b, uint8 c);
12422ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uint8 c);
12423short16 __ovld __cnfn select(short16 a, short16 b, uint16 c);
12424ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uint16 c);
12425int __ovld __cnfn select(int a, int b, uint c);
12426uint __ovld __cnfn select(uint a, uint b, uint c);
12427int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
12428uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
12429int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
12430uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
12431int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
12432uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
12433int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
12434uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
12435int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
12436uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
12437long __ovld __cnfn select(long a, long b, uint c);
12438ulong __ovld __cnfn select(ulong a, ulong b, uint c);
12439long2 __ovld __cnfn select(long2 a, long2 b, uint2 c);
12440ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uint2 c);
12441long3 __ovld __cnfn select(long3 a, long3 b, uint3 c);
12442ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uint3 c);
12443long4 __ovld __cnfn select(long4 a, long4 b, uint4 c);
12444ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uint4 c);
12445long8 __ovld __cnfn select(long8 a, long8 b, uint8 c);
12446ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uint8 c);
12447long16 __ovld __cnfn select(long16 a, long16 b, uint16 c);
12448ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uint16 c);
12449float __ovld __cnfn select(float a, float b, uint c);
12450float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
12451float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
12452float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
12453float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
12454float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
12455char __ovld __cnfn select(char a, char b, ulong c);
12456uchar __ovld __cnfn select(uchar a, uchar b, ulong c);
12457char2 __ovld __cnfn select(char2 a, char2 b, ulong2 c);
12458uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ulong2 c);
12459char3 __ovld __cnfn select(char3 a, char3 b, ulong3 c);
12460uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ulong3 c);
12461char4 __ovld __cnfn select(char4 a, char4 b, ulong4 c);
12462uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ulong4 c);
12463char8 __ovld __cnfn select(char8 a, char8 b, ulong8 c);
12464uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ulong8 c);
12465char16 __ovld __cnfn select(char16 a, char16 b, ulong16 c);
12466uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ulong16 c);
12467short __ovld __cnfn select(short a, short b, ulong c);
12468ushort __ovld __cnfn select(ushort a, ushort b, ulong c);
12469short2 __ovld __cnfn select(short2 a, short2 b, ulong2 c);
12470ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ulong2 c);
12471short3 __ovld __cnfn select(short3 a, short3 b, ulong3 c);
12472ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ulong3 c);
12473short4 __ovld __cnfn select(short4 a, short4 b, ulong4 c);
12474ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ulong4 c);
12475short8 __ovld __cnfn select(short8 a, short8 b, ulong8 c);
12476ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ulong8 c);
12477short16 __ovld __cnfn select(short16 a, short16 b, ulong16 c);
12478ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ulong16 c);
12479int __ovld __cnfn select(int a, int b, ulong c);
12480uint __ovld __cnfn select(uint a, uint b, ulong c);
12481int2 __ovld __cnfn select(int2 a, int2 b, ulong2 c);
12482uint2 __ovld __cnfn select(uint2 a, uint2 b, ulong2 c);
12483int3 __ovld __cnfn select(int3 a, int3 b, ulong3 c);
12484uint3 __ovld __cnfn select(uint3 a, uint3 b, ulong3 c);
12485int4 __ovld __cnfn select(int4 a, int4 b, ulong4 c);
12486uint4 __ovld __cnfn select(uint4 a, uint4 b, ulong4 c);
12487int8 __ovld __cnfn select(int8 a, int8 b, ulong8 c);
12488uint8 __ovld __cnfn select(uint8 a, uint8 b, ulong8 c);
12489int16 __ovld __cnfn select(int16 a, int16 b, ulong16 c);
12490uint16 __ovld __cnfn select(uint16 a, uint16 b, ulong16 c);
12491long __ovld __cnfn select(long a, long b, ulong c);
12492ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
12493long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
12494ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
12495long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
12496ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
12497long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
12498ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
12499long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
12500ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
12501long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
12502ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
12503float __ovld __cnfn select(float a, float b, ulong c);
12504float2 __ovld __cnfn select(float2 a, float2 b, ulong2 c);
12505float3 __ovld __cnfn select(float3 a, float3 b, ulong3 c);
12506float4 __ovld __cnfn select(float4 a, float4 b, ulong4 c);
12507float8 __ovld __cnfn select(float8 a, float8 b, ulong8 c);
12508float16 __ovld __cnfn select(float16 a, float16 b, ulong16 c);
12509#ifdef cl_khr_fp64
12510double __ovld __cnfn select(double a, double b, long c);
12511double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
12512double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
12513double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
12514double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
12515double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
12516double __ovld __cnfn select(double a, double b, ulong c);
12517double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
12518double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
12519double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
12520double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
12521double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
12522#endif //cl_khr_fp64
12523#ifdef cl_khr_fp16
12524half __ovld __cnfn select(half a, half b, short c);
12525half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
12526half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
12527half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
12528half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
12529half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
12530half __ovld __cnfn select(half a, half b, ushort c);
12531half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
12532half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
12533half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
12534half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
12535half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
12536#endif //cl_khr_fp16
12537
12538// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
12539// 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
12540/**
12541 * Use generic type gentype to indicate the built-in data types
12542 * char, uchar, short, ushort, int, uint, long, ulong, float,
12543 * double or half.
12544 *
12545 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
12546 *
12547 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
12548 *
12549 * The address computed as (p + (offset * n)) must be
12550 * 8-bit aligned if gentype is char, uchar;
12551 * 16-bit aligned if gentype is short, ushort, half;
12552 * 32-bit aligned if gentype is int, uint, float;
12553 * 64-bit aligned if gentype is long, ulong, double.
12554 */
12555
12556char2 __ovld vload2(size_t offset, const __constant char *p);
12557uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
12558short2 __ovld vload2(size_t offset, const __constant short *p);
12559ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
12560int2 __ovld vload2(size_t offset, const __constant int *p);
12561uint2 __ovld vload2(size_t offset, const __constant uint *p);
12562long2 __ovld vload2(size_t offset, const __constant long *p);
12563ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
12564float2 __ovld vload2(size_t offset, const __constant float *p);
12565char3 __ovld vload3(size_t offset, const __constant char *p);
12566uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
12567short3 __ovld vload3(size_t offset, const __constant short *p);
12568ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
12569int3 __ovld vload3(size_t offset, const __constant int *p);
12570uint3 __ovld vload3(size_t offset, const __constant uint *p);
12571long3 __ovld vload3(size_t offset, const __constant long *p);
12572ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
12573float3 __ovld vload3(size_t offset, const __constant float *p);
12574char4 __ovld vload4(size_t offset, const __constant char *p);
12575uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
12576short4 __ovld vload4(size_t offset, const __constant short *p);
12577ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
12578int4 __ovld vload4(size_t offset, const __constant int *p);
12579uint4 __ovld vload4(size_t offset, const __constant uint *p);
12580long4 __ovld vload4(size_t offset, const __constant long *p);
12581ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
12582float4 __ovld vload4(size_t offset, const __constant float *p);
12583char8 __ovld vload8(size_t offset, const __constant char *p);
12584uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
12585short8 __ovld vload8(size_t offset, const __constant short *p);
12586ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
12587int8 __ovld vload8(size_t offset, const __constant int *p);
12588uint8 __ovld vload8(size_t offset, const __constant uint *p);
12589long8 __ovld vload8(size_t offset, const __constant long *p);
12590ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
12591float8 __ovld vload8(size_t offset, const __constant float *p);
12592char16 __ovld vload16(size_t offset, const __constant char *p);
12593uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
12594short16 __ovld vload16(size_t offset, const __constant short *p);
12595ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
12596int16 __ovld vload16(size_t offset, const __constant int *p);
12597uint16 __ovld vload16(size_t offset, const __constant uint *p);
12598long16 __ovld vload16(size_t offset, const __constant long *p);
12599ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
12600float16 __ovld vload16(size_t offset, const __constant float *p);
12601#ifdef cl_khr_fp64
12602double2 __ovld vload2(size_t offset, const __constant double *p);
12603double3 __ovld vload3(size_t offset, const __constant double *p);
12604double4 __ovld vload4(size_t offset, const __constant double *p);
12605double8 __ovld vload8(size_t offset, const __constant double *p);
12606double16 __ovld vload16(size_t offset, const __constant double *p);
12607#endif //cl_khr_fp64
12608
12609#ifdef cl_khr_fp16
12610half __ovld vload(size_t offset, const __constant half *p);
12611half2 __ovld vload2(size_t offset, const __constant half *p);
12612half3 __ovld vload3(size_t offset, const __constant half *p);
12613half4 __ovld vload4(size_t offset, const __constant half *p);
12614half8 __ovld vload8(size_t offset, const __constant half *p);
12615half16 __ovld vload16(size_t offset, const __constant half *p);
12616#endif //cl_khr_fp16
12617
12618#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12619char2 __ovld vload2(size_t offset, const char *p);
12620uchar2 __ovld vload2(size_t offset, const uchar *p);
12621short2 __ovld vload2(size_t offset, const short *p);
12622ushort2 __ovld vload2(size_t offset, const ushort *p);
12623int2 __ovld vload2(size_t offset, const int *p);
12624uint2 __ovld vload2(size_t offset, const uint *p);
12625long2 __ovld vload2(size_t offset, const long *p);
12626ulong2 __ovld vload2(size_t offset, const ulong *p);
12627float2 __ovld vload2(size_t offset, const float *p);
12628char3 __ovld vload3(size_t offset, const char *p);
12629uchar3 __ovld vload3(size_t offset, const uchar *p);
12630short3 __ovld vload3(size_t offset, const short *p);
12631ushort3 __ovld vload3(size_t offset, const ushort *p);
12632int3 __ovld vload3(size_t offset, const int *p);
12633uint3 __ovld vload3(size_t offset, const uint *p);
12634long3 __ovld vload3(size_t offset, const long *p);
12635ulong3 __ovld vload3(size_t offset, const ulong *p);
12636float3 __ovld vload3(size_t offset, const float *p);
12637char4 __ovld vload4(size_t offset, const char *p);
12638uchar4 __ovld vload4(size_t offset, const uchar *p);
12639short4 __ovld vload4(size_t offset, const short *p);
12640ushort4 __ovld vload4(size_t offset, const ushort *p);
12641int4 __ovld vload4(size_t offset, const int *p);
12642uint4 __ovld vload4(size_t offset, const uint *p);
12643long4 __ovld vload4(size_t offset, const long *p);
12644ulong4 __ovld vload4(size_t offset, const ulong *p);
12645float4 __ovld vload4(size_t offset, const float *p);
12646char8 __ovld vload8(size_t offset, const char *p);
12647uchar8 __ovld vload8(size_t offset, const uchar *p);
12648short8 __ovld vload8(size_t offset, const short *p);
12649ushort8 __ovld vload8(size_t offset, const ushort *p);
12650int8 __ovld vload8(size_t offset, const int *p);
12651uint8 __ovld vload8(size_t offset, const uint *p);
12652long8 __ovld vload8(size_t offset, const long *p);
12653ulong8 __ovld vload8(size_t offset, const ulong *p);
12654float8 __ovld vload8(size_t offset, const float *p);
12655char16 __ovld vload16(size_t offset, const char *p);
12656uchar16 __ovld vload16(size_t offset, const uchar *p);
12657short16 __ovld vload16(size_t offset, const short *p);
12658ushort16 __ovld vload16(size_t offset, const ushort *p);
12659int16 __ovld vload16(size_t offset, const int *p);
12660uint16 __ovld vload16(size_t offset, const uint *p);
12661long16 __ovld vload16(size_t offset, const long *p);
12662ulong16 __ovld vload16(size_t offset, const ulong *p);
12663float16 __ovld vload16(size_t offset, const float *p);
12664
12665#ifdef cl_khr_fp64
12666double2 __ovld vload2(size_t offset, const double *p);
12667double3 __ovld vload3(size_t offset, const double *p);
12668double4 __ovld vload4(size_t offset, const double *p);
12669double8 __ovld vload8(size_t offset, const double *p);
12670double16 __ovld vload16(size_t offset, const double *p);
12671#endif //cl_khr_fp64
12672
12673#ifdef cl_khr_fp16
12674half __ovld vload(size_t offset, const half *p);
12675half2 __ovld vload2(size_t offset, const half *p);
12676half3 __ovld vload3(size_t offset, const half *p);
12677half4 __ovld vload4(size_t offset, const half *p);
12678half8 __ovld vload8(size_t offset, const half *p);
12679half16 __ovld vload16(size_t offset, const half *p);
12680#endif //cl_khr_fp16
12681#else
12682char2 __ovld vload2(size_t offset, const __global char *p);
12683uchar2 __ovld vload2(size_t offset, const __global uchar *p);
12684short2 __ovld vload2(size_t offset, const __global short *p);
12685ushort2 __ovld vload2(size_t offset, const __global ushort *p);
12686int2 __ovld vload2(size_t offset, const __global int *p);
12687uint2 __ovld vload2(size_t offset, const __global uint *p);
12688long2 __ovld vload2(size_t offset, const __global long *p);
12689ulong2 __ovld vload2(size_t offset, const __global ulong *p);
12690float2 __ovld vload2(size_t offset, const __global float *p);
12691char3 __ovld vload3(size_t offset, const __global char *p);
12692uchar3 __ovld vload3(size_t offset, const __global uchar *p);
12693short3 __ovld vload3(size_t offset, const __global short *p);
12694ushort3 __ovld vload3(size_t offset, const __global ushort *p);
12695int3 __ovld vload3(size_t offset, const __global int *p);
12696uint3 __ovld vload3(size_t offset, const __global uint *p);
12697long3 __ovld vload3(size_t offset, const __global long *p);
12698ulong3 __ovld vload3(size_t offset, const __global ulong *p);
12699float3 __ovld vload3(size_t offset, const __global float *p);
12700char4 __ovld vload4(size_t offset, const __global char *p);
12701uchar4 __ovld vload4(size_t offset, const __global uchar *p);
12702short4 __ovld vload4(size_t offset, const __global short *p);
12703ushort4 __ovld vload4(size_t offset, const __global ushort *p);
12704int4 __ovld vload4(size_t offset, const __global int *p);
12705uint4 __ovld vload4(size_t offset, const __global uint *p);
12706long4 __ovld vload4(size_t offset, const __global long *p);
12707ulong4 __ovld vload4(size_t offset, const __global ulong *p);
12708float4 __ovld vload4(size_t offset, const __global float *p);
12709char8 __ovld vload8(size_t offset, const __global char *p);
12710uchar8 __ovld vload8(size_t offset, const __global uchar *p);
12711short8 __ovld vload8(size_t offset, const __global short *p);
12712ushort8 __ovld vload8(size_t offset, const __global ushort *p);
12713int8 __ovld vload8(size_t offset, const __global int *p);
12714uint8 __ovld vload8(size_t offset, const __global uint *p);
12715long8 __ovld vload8(size_t offset, const __global long *p);
12716ulong8 __ovld vload8(size_t offset, const __global ulong *p);
12717float8 __ovld vload8(size_t offset, const __global float *p);
12718char16 __ovld vload16(size_t offset, const __global char *p);
12719uchar16 __ovld vload16(size_t offset, const __global uchar *p);
12720short16 __ovld vload16(size_t offset, const __global short *p);
12721ushort16 __ovld vload16(size_t offset, const __global ushort *p);
12722int16 __ovld vload16(size_t offset, const __global int *p);
12723uint16 __ovld vload16(size_t offset, const __global uint *p);
12724long16 __ovld vload16(size_t offset, const __global long *p);
12725ulong16 __ovld vload16(size_t offset, const __global ulong *p);
12726float16 __ovld vload16(size_t offset, const __global float *p);
12727char2 __ovld vload2(size_t offset, const __local char *p);
12728uchar2 __ovld vload2(size_t offset, const __local uchar *p);
12729short2 __ovld vload2(size_t offset, const __local short *p);
12730ushort2 __ovld vload2(size_t offset, const __local ushort *p);
12731int2 __ovld vload2(size_t offset, const __local int *p);
12732uint2 __ovld vload2(size_t offset, const __local uint *p);
12733long2 __ovld vload2(size_t offset, const __local long *p);
12734ulong2 __ovld vload2(size_t offset, const __local ulong *p);
12735float2 __ovld vload2(size_t offset, const __local float *p);
12736char3 __ovld vload3(size_t offset, const __local char *p);
12737uchar3 __ovld vload3(size_t offset, const __local uchar *p);
12738short3 __ovld vload3(size_t offset, const __local short *p);
12739ushort3 __ovld vload3(size_t offset, const __local ushort *p);
12740int3 __ovld vload3(size_t offset, const __local int *p);
12741uint3 __ovld vload3(size_t offset, const __local uint *p);
12742long3 __ovld vload3(size_t offset, const __local long *p);
12743ulong3 __ovld vload3(size_t offset, const __local ulong *p);
12744float3 __ovld vload3(size_t offset, const __local float *p);
12745char4 __ovld vload4(size_t offset, const __local char *p);
12746uchar4 __ovld vload4(size_t offset, const __local uchar *p);
12747short4 __ovld vload4(size_t offset, const __local short *p);
12748ushort4 __ovld vload4(size_t offset, const __local ushort *p);
12749int4 __ovld vload4(size_t offset, const __local int *p);
12750uint4 __ovld vload4(size_t offset, const __local uint *p);
12751long4 __ovld vload4(size_t offset, const __local long *p);
12752ulong4 __ovld vload4(size_t offset, const __local ulong *p);
12753float4 __ovld vload4(size_t offset, const __local float *p);
12754char8 __ovld vload8(size_t offset, const __local char *p);
12755uchar8 __ovld vload8(size_t offset, const __local uchar *p);
12756short8 __ovld vload8(size_t offset, const __local short *p);
12757ushort8 __ovld vload8(size_t offset, const __local ushort *p);
12758int8 __ovld vload8(size_t offset, const __local int *p);
12759uint8 __ovld vload8(size_t offset, const __local uint *p);
12760long8 __ovld vload8(size_t offset, const __local long *p);
12761ulong8 __ovld vload8(size_t offset, const __local ulong *p);
12762float8 __ovld vload8(size_t offset, const __local float *p);
12763char16 __ovld vload16(size_t offset, const __local char *p);
12764uchar16 __ovld vload16(size_t offset, const __local uchar *p);
12765short16 __ovld vload16(size_t offset, const __local short *p);
12766ushort16 __ovld vload16(size_t offset, const __local ushort *p);
12767int16 __ovld vload16(size_t offset, const __local int *p);
12768uint16 __ovld vload16(size_t offset, const __local uint *p);
12769long16 __ovld vload16(size_t offset, const __local long *p);
12770ulong16 __ovld vload16(size_t offset, const __local ulong *p);
12771float16 __ovld vload16(size_t offset, const __local float *p);
12772char2 __ovld vload2(size_t offset, const __private char *p);
12773uchar2 __ovld vload2(size_t offset, const __private uchar *p);
12774short2 __ovld vload2(size_t offset, const __private short *p);
12775ushort2 __ovld vload2(size_t offset, const __private ushort *p);
12776int2 __ovld vload2(size_t offset, const __private int *p);
12777uint2 __ovld vload2(size_t offset, const __private uint *p);
12778long2 __ovld vload2(size_t offset, const __private long *p);
12779ulong2 __ovld vload2(size_t offset, const __private ulong *p);
12780float2 __ovld vload2(size_t offset, const __private float *p);
12781char3 __ovld vload3(size_t offset, const __private char *p);
12782uchar3 __ovld vload3(size_t offset, const __private uchar *p);
12783short3 __ovld vload3(size_t offset, const __private short *p);
12784ushort3 __ovld vload3(size_t offset, const __private ushort *p);
12785int3 __ovld vload3(size_t offset, const __private int *p);
12786uint3 __ovld vload3(size_t offset, const __private uint *p);
12787long3 __ovld vload3(size_t offset, const __private long *p);
12788ulong3 __ovld vload3(size_t offset, const __private ulong *p);
12789float3 __ovld vload3(size_t offset, const __private float *p);
12790char4 __ovld vload4(size_t offset, const __private char *p);
12791uchar4 __ovld vload4(size_t offset, const __private uchar *p);
12792short4 __ovld vload4(size_t offset, const __private short *p);
12793ushort4 __ovld vload4(size_t offset, const __private ushort *p);
12794int4 __ovld vload4(size_t offset, const __private int *p);
12795uint4 __ovld vload4(size_t offset, const __private uint *p);
12796long4 __ovld vload4(size_t offset, const __private long *p);
12797ulong4 __ovld vload4(size_t offset, const __private ulong *p);
12798float4 __ovld vload4(size_t offset, const __private float *p);
12799char8 __ovld vload8(size_t offset, const __private char *p);
12800uchar8 __ovld vload8(size_t offset, const __private uchar *p);
12801short8 __ovld vload8(size_t offset, const __private short *p);
12802ushort8 __ovld vload8(size_t offset, const __private ushort *p);
12803int8 __ovld vload8(size_t offset, const __private int *p);
12804uint8 __ovld vload8(size_t offset, const __private uint *p);
12805long8 __ovld vload8(size_t offset, const __private long *p);
12806ulong8 __ovld vload8(size_t offset, const __private ulong *p);
12807float8 __ovld vload8(size_t offset, const __private float *p);
12808char16 __ovld vload16(size_t offset, const __private char *p);
12809uchar16 __ovld vload16(size_t offset, const __private uchar *p);
12810short16 __ovld vload16(size_t offset, const __private short *p);
12811ushort16 __ovld vload16(size_t offset, const __private ushort *p);
12812int16 __ovld vload16(size_t offset, const __private int *p);
12813uint16 __ovld vload16(size_t offset, const __private uint *p);
12814long16 __ovld vload16(size_t offset, const __private long *p);
12815ulong16 __ovld vload16(size_t offset, const __private ulong *p);
12816float16 __ovld vload16(size_t offset, const __private float *p);
12817
12818#ifdef cl_khr_fp64
12819double2 __ovld vload2(size_t offset, const __global double *p);
12820double3 __ovld vload3(size_t offset, const __global double *p);
12821double4 __ovld vload4(size_t offset, const __global double *p);
12822double8 __ovld vload8(size_t offset, const __global double *p);
12823double16 __ovld vload16(size_t offset, const __global double *p);
12824double2 __ovld vload2(size_t offset, const __local double *p);
12825double3 __ovld vload3(size_t offset, const __local double *p);
12826double4 __ovld vload4(size_t offset, const __local double *p);
12827double8 __ovld vload8(size_t offset, const __local double *p);
12828double16 __ovld vload16(size_t offset, const __local double *p);
12829double2 __ovld vload2(size_t offset, const __private double *p);
12830double3 __ovld vload3(size_t offset, const __private double *p);
12831double4 __ovld vload4(size_t offset, const __private double *p);
12832double8 __ovld vload8(size_t offset, const __private double *p);
12833double16 __ovld vload16(size_t offset, const __private double *p);
12834#endif //cl_khr_fp64
12835
12836#ifdef cl_khr_fp16
12837half __ovld vload(size_t offset, const __global half *p);
12838half2 __ovld vload2(size_t offset, const __global half *p);
12839half3 __ovld vload3(size_t offset, const __global half *p);
12840half4 __ovld vload4(size_t offset, const __global half *p);
12841half8 __ovld vload8(size_t offset, const __global half *p);
12842half16 __ovld vload16(size_t offset, const __global half *p);
12843half __ovld vload(size_t offset, const __local half *p);
12844half2 __ovld vload2(size_t offset, const __local half *p);
12845half3 __ovld vload3(size_t offset, const __local half *p);
12846half4 __ovld vload4(size_t offset, const __local half *p);
12847half8 __ovld vload8(size_t offset, const __local half *p);
12848half16 __ovld vload16(size_t offset, const __local half *p);
12849half __ovld vload(size_t offset, const __private half *p);
12850half2 __ovld vload2(size_t offset, const __private half *p);
12851half3 __ovld vload3(size_t offset, const __private half *p);
12852half4 __ovld vload4(size_t offset, const __private half *p);
12853half8 __ovld vload8(size_t offset, const __private half *p);
12854half16 __ovld vload16(size_t offset, const __private half *p);
12855#endif //cl_khr_fp16
12856#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12857
12858#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12859void __ovld vstore2(char2 data, size_t offset, char *p);
12860void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
12861void __ovld vstore2(short2 data, size_t offset, short *p);
12862void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
12863void __ovld vstore2(int2 data, size_t offset, int *p);
12864void __ovld vstore2(uint2 data, size_t offset, uint *p);
12865void __ovld vstore2(long2 data, size_t offset, long *p);
12866void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
12867void __ovld vstore2(float2 data, size_t offset, float *p);
12868void __ovld vstore3(char3 data, size_t offset, char *p);
12869void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
12870void __ovld vstore3(short3 data, size_t offset, short *p);
12871void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
12872void __ovld vstore3(int3 data, size_t offset, int *p);
12873void __ovld vstore3(uint3 data, size_t offset, uint *p);
12874void __ovld vstore3(long3 data, size_t offset, long *p);
12875void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
12876void __ovld vstore3(float3 data, size_t offset, float *p);
12877void __ovld vstore4(char4 data, size_t offset, char *p);
12878void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
12879void __ovld vstore4(short4 data, size_t offset, short *p);
12880void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
12881void __ovld vstore4(int4 data, size_t offset, int *p);
12882void __ovld vstore4(uint4 data, size_t offset, uint *p);
12883void __ovld vstore4(long4 data, size_t offset, long *p);
12884void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
12885void __ovld vstore4(float4 data, size_t offset, float *p);
12886void __ovld vstore8(char8 data, size_t offset, char *p);
12887void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
12888void __ovld vstore8(short8 data, size_t offset, short *p);
12889void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
12890void __ovld vstore8(int8 data, size_t offset, int *p);
12891void __ovld vstore8(uint8 data, size_t offset, uint *p);
12892void __ovld vstore8(long8 data, size_t offset, long *p);
12893void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
12894void __ovld vstore8(float8 data, size_t offset, float *p);
12895void __ovld vstore16(char16 data, size_t offset, char *p);
12896void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
12897void __ovld vstore16(short16 data, size_t offset, short *p);
12898void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
12899void __ovld vstore16(int16 data, size_t offset, int *p);
12900void __ovld vstore16(uint16 data, size_t offset, uint *p);
12901void __ovld vstore16(long16 data, size_t offset, long *p);
12902void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
12903void __ovld vstore16(float16 data, size_t offset, float *p);
12904#ifdef cl_khr_fp64
12905void __ovld vstore2(double2 data, size_t offset, double *p);
12906void __ovld vstore3(double3 data, size_t offset, double *p);
12907void __ovld vstore4(double4 data, size_t offset, double *p);
12908void __ovld vstore8(double8 data, size_t offset, double *p);
12909void __ovld vstore16(double16 data, size_t offset, double *p);
12910#endif //cl_khr_fp64
12911#ifdef cl_khr_fp16
12912void __ovld vstore(half data, size_t offset, half *p);
12913void __ovld vstore2(half2 data, size_t offset, half *p);
12914void __ovld vstore3(half3 data, size_t offset, half *p);
12915void __ovld vstore4(half4 data, size_t offset, half *p);
12916void __ovld vstore8(half8 data, size_t offset, half *p);
12917void __ovld vstore16(half16 data, size_t offset, half *p);
12918#endif //cl_khr_fp16
12919#else
12920void __ovld vstore2(char2 data, size_t offset, __global char *p);
12921void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
12922void __ovld vstore2(short2 data, size_t offset, __global short *p);
12923void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
12924void __ovld vstore2(int2 data, size_t offset, __global int *p);
12925void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
12926void __ovld vstore2(long2 data, size_t offset, __global long *p);
12927void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
12928void __ovld vstore2(float2 data, size_t offset, __global float *p);
12929void __ovld vstore3(char3 data, size_t offset, __global char *p);
12930void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
12931void __ovld vstore3(short3 data, size_t offset, __global short *p);
12932void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
12933void __ovld vstore3(int3 data, size_t offset, __global int *p);
12934void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
12935void __ovld vstore3(long3 data, size_t offset, __global long *p);
12936void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
12937void __ovld vstore3(float3 data, size_t offset, __global float *p);
12938void __ovld vstore4(char4 data, size_t offset, __global char *p);
12939void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
12940void __ovld vstore4(short4 data, size_t offset, __global short *p);
12941void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
12942void __ovld vstore4(int4 data, size_t offset, __global int *p);
12943void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
12944void __ovld vstore4(long4 data, size_t offset, __global long *p);
12945void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
12946void __ovld vstore4(float4 data, size_t offset, __global float *p);
12947void __ovld vstore8(char8 data, size_t offset, __global char *p);
12948void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
12949void __ovld vstore8(short8 data, size_t offset, __global short *p);
12950void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
12951void __ovld vstore8(int8 data, size_t offset, __global int *p);
12952void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
12953void __ovld vstore8(long8 data, size_t offset, __global long *p);
12954void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
12955void __ovld vstore8(float8 data, size_t offset, __global float *p);
12956void __ovld vstore16(char16 data, size_t offset, __global char *p);
12957void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
12958void __ovld vstore16(short16 data, size_t offset, __global short *p);
12959void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
12960void __ovld vstore16(int16 data, size_t offset, __global int *p);
12961void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
12962void __ovld vstore16(long16 data, size_t offset, __global long *p);
12963void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
12964void __ovld vstore16(float16 data, size_t offset, __global float *p);
12965void __ovld vstore2(char2 data, size_t offset, __local char *p);
12966void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
12967void __ovld vstore2(short2 data, size_t offset, __local short *p);
12968void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
12969void __ovld vstore2(int2 data, size_t offset, __local int *p);
12970void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
12971void __ovld vstore2(long2 data, size_t offset, __local long *p);
12972void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
12973void __ovld vstore2(float2 data, size_t offset, __local float *p);
12974void __ovld vstore3(char3 data, size_t offset, __local char *p);
12975void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
12976void __ovld vstore3(short3 data, size_t offset, __local short *p);
12977void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
12978void __ovld vstore3(int3 data, size_t offset, __local int *p);
12979void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
12980void __ovld vstore3(long3 data, size_t offset, __local long *p);
12981void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
12982void __ovld vstore3(float3 data, size_t offset, __local float *p);
12983void __ovld vstore4(char4 data, size_t offset, __local char *p);
12984void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
12985void __ovld vstore4(short4 data, size_t offset, __local short *p);
12986void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
12987void __ovld vstore4(int4 data, size_t offset, __local int *p);
12988void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
12989void __ovld vstore4(long4 data, size_t offset, __local long *p);
12990void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
12991void __ovld vstore4(float4 data, size_t offset, __local float *p);
12992void __ovld vstore8(char8 data, size_t offset, __local char *p);
12993void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
12994void __ovld vstore8(short8 data, size_t offset, __local short *p);
12995void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
12996void __ovld vstore8(int8 data, size_t offset, __local int *p);
12997void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
12998void __ovld vstore8(long8 data, size_t offset, __local long *p);
12999void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
13000void __ovld vstore8(float8 data, size_t offset, __local float *p);
13001void __ovld vstore16(char16 data, size_t offset, __local char *p);
13002void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
13003void __ovld vstore16(short16 data, size_t offset, __local short *p);
13004void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
13005void __ovld vstore16(int16 data, size_t offset, __local int *p);
13006void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
13007void __ovld vstore16(long16 data, size_t offset, __local long *p);
13008void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
13009void __ovld vstore16(float16 data, size_t offset, __local float *p);
13010void __ovld vstore2(char2 data, size_t offset, __private char *p);
13011void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
13012void __ovld vstore2(short2 data, size_t offset, __private short *p);
13013void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
13014void __ovld vstore2(int2 data, size_t offset, __private int *p);
13015void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
13016void __ovld vstore2(long2 data, size_t offset, __private long *p);
13017void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
13018void __ovld vstore2(float2 data, size_t offset, __private float *p);
13019void __ovld vstore3(char3 data, size_t offset, __private char *p);
13020void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
13021void __ovld vstore3(short3 data, size_t offset, __private short *p);
13022void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
13023void __ovld vstore3(int3 data, size_t offset, __private int *p);
13024void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
13025void __ovld vstore3(long3 data, size_t offset, __private long *p);
13026void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
13027void __ovld vstore3(float3 data, size_t offset, __private float *p);
13028void __ovld vstore4(char4 data, size_t offset, __private char *p);
13029void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
13030void __ovld vstore4(short4 data, size_t offset, __private short *p);
13031void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
13032void __ovld vstore4(int4 data, size_t offset, __private int *p);
13033void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
13034void __ovld vstore4(long4 data, size_t offset, __private long *p);
13035void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
13036void __ovld vstore4(float4 data, size_t offset, __private float *p);
13037void __ovld vstore8(char8 data, size_t offset, __private char *p);
13038void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
13039void __ovld vstore8(short8 data, size_t offset, __private short *p);
13040void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
13041void __ovld vstore8(int8 data, size_t offset, __private int *p);
13042void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
13043void __ovld vstore8(long8 data, size_t offset, __private long *p);
13044void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
13045void __ovld vstore8(float8 data, size_t offset, __private float *p);
13046void __ovld vstore16(char16 data, size_t offset, __private char *p);
13047void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
13048void __ovld vstore16(short16 data, size_t offset, __private short *p);
13049void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
13050void __ovld vstore16(int16 data, size_t offset, __private int *p);
13051void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
13052void __ovld vstore16(long16 data, size_t offset, __private long *p);
13053void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
13054void __ovld vstore16(float16 data, size_t offset, __private float *p);
13055#ifdef cl_khr_fp64
13056void __ovld vstore2(double2 data, size_t offset, __global double *p);
13057void __ovld vstore3(double3 data, size_t offset, __global double *p);
13058void __ovld vstore4(double4 data, size_t offset, __global double *p);
13059void __ovld vstore8(double8 data, size_t offset, __global double *p);
13060void __ovld vstore16(double16 data, size_t offset, __global double *p);
13061void __ovld vstore2(double2 data, size_t offset, __local double *p);
13062void __ovld vstore3(double3 data, size_t offset, __local double *p);
13063void __ovld vstore4(double4 data, size_t offset, __local double *p);
13064void __ovld vstore8(double8 data, size_t offset, __local double *p);
13065void __ovld vstore16(double16 data, size_t offset, __local double *p);
13066void __ovld vstore2(double2 data, size_t offset, __private double *p);
13067void __ovld vstore3(double3 data, size_t offset, __private double *p);
13068void __ovld vstore4(double4 data, size_t offset, __private double *p);
13069void __ovld vstore8(double8 data, size_t offset, __private double *p);
13070void __ovld vstore16(double16 data, size_t offset, __private double *p);
13071#endif //cl_khr_fp64
13072#ifdef cl_khr_fp16
13073void __ovld vstore(half data, size_t offset, __global half *p);
13074void __ovld vstore2(half2 data, size_t offset, __global half *p);
13075void __ovld vstore3(half3 data, size_t offset, __global half *p);
13076void __ovld vstore4(half4 data, size_t offset, __global half *p);
13077void __ovld vstore8(half8 data, size_t offset, __global half *p);
13078void __ovld vstore16(half16 data, size_t offset, __global half *p);
13079void __ovld vstore(half data, size_t offset, __local half *p);
13080void __ovld vstore2(half2 data, size_t offset, __local half *p);
13081void __ovld vstore3(half3 data, size_t offset, __local half *p);
13082void __ovld vstore4(half4 data, size_t offset, __local half *p);
13083void __ovld vstore8(half8 data, size_t offset, __local half *p);
13084void __ovld vstore16(half16 data, size_t offset, __local half *p);
13085void __ovld vstore(half data, size_t offset, __private half *p);
13086void __ovld vstore2(half2 data, size_t offset, __private half *p);
13087void __ovld vstore3(half3 data, size_t offset, __private half *p);
13088void __ovld vstore4(half4 data, size_t offset, __private half *p);
13089void __ovld vstore8(half8 data, size_t offset, __private half *p);
13090void __ovld vstore16(half16 data, size_t offset, __private half *p);
13091#endif //cl_khr_fp16
13092#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13093
13094/**
13095 * Read sizeof (half) bytes of data from address
13096 * (p + offset). The data read is interpreted as a
13097 * half value. The half value is converted to a
13098 * float value and the float value is returned.
13099 * The read address computed as (p + offset)
13100 * must be 16-bit aligned.
13101 */
13102float __ovld vload_half(size_t offset, const __constant half *p);
13103#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13104float __ovld vload_half(size_t offset, const half *p);
13105#else
13106float __ovld vload_half(size_t offset, const __global half *p);
13107float __ovld vload_half(size_t offset, const __local half *p);
13108float __ovld vload_half(size_t offset, const __private half *p);
13109#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13110
13111/**
13112 * Read sizeof (halfn) bytes of data from address
13113 * (p + (offset * n)). The data read is interpreted
13114 * as a halfn value. The halfn value read is
13115 * converted to a floatn value and the floatn
13116 * value is returned. The read address computed
13117 * as (p + (offset * n)) must be 16-bit aligned.
13118 */
13119float2 __ovld vload_half2(size_t offset, const __constant half *p);
13120float3 __ovld vload_half3(size_t offset, const __constant half *p);
13121float4 __ovld vload_half4(size_t offset, const __constant half *p);
13122float8 __ovld vload_half8(size_t offset, const __constant half *p);
13123float16 __ovld vload_half16(size_t offset, const __constant half *p);
13124#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13125float2 __ovld vload_half2(size_t offset, const half *p);
13126float3 __ovld vload_half3(size_t offset, const half *p);
13127float4 __ovld vload_half4(size_t offset, const half *p);
13128float8 __ovld vload_half8(size_t offset, const half *p);
13129float16 __ovld vload_half16(size_t offset, const half *p);
13130#else
13131float2 __ovld vload_half2(size_t offset, const __global half *p);
13132float3 __ovld vload_half3(size_t offset, const __global half *p);
13133float4 __ovld vload_half4(size_t offset, const __global half *p);
13134float8 __ovld vload_half8(size_t offset, const __global half *p);
13135float16 __ovld vload_half16(size_t offset, const __global half *p);
13136float2 __ovld vload_half2(size_t offset, const __local half *p);
13137float3 __ovld vload_half3(size_t offset, const __local half *p);
13138float4 __ovld vload_half4(size_t offset, const __local half *p);
13139float8 __ovld vload_half8(size_t offset, const __local half *p);
13140float16 __ovld vload_half16(size_t offset, const __local half *p);
13141float2 __ovld vload_half2(size_t offset, const __private half *p);
13142float3 __ovld vload_half3(size_t offset, const __private half *p);
13143float4 __ovld vload_half4(size_t offset, const __private half *p);
13144float8 __ovld vload_half8(size_t offset, const __private half *p);
13145float16 __ovld vload_half16(size_t offset, const __private half *p);
13146#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13147
13148/**
13149 * The float value given by data is first
13150 * converted to a half value using the appropriate
13151 * rounding mode. The half value is then written
13152 * to address computed as (p + offset). The
13153 * address computed as (p + offset) must be 16-
13154 * bit aligned.
13155 * vstore_half use the current rounding mode.
13156 * The default current rounding mode is round to
13157 * nearest even.
13158 */
13159#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13160void __ovld vstore_half(float data, size_t offset, half *p);
13161void __ovld vstore_half_rte(float data, size_t offset, half *p);
13162void __ovld vstore_half_rtz(float data, size_t offset, half *p);
13163void __ovld vstore_half_rtp(float data, size_t offset, half *p);
13164void __ovld vstore_half_rtn(float data, size_t offset, half *p);
13165#ifdef cl_khr_fp64
13166void __ovld vstore_half(double data, size_t offset, half *p);
13167void __ovld vstore_half_rte(double data, size_t offset, half *p);
13168void __ovld vstore_half_rtz(double data, size_t offset, half *p);
13169void __ovld vstore_half_rtp(double data, size_t offset, half *p);
13170void __ovld vstore_half_rtn(double data, size_t offset, half *p);
13171#endif //cl_khr_fp64
13172#else
13173void __ovld vstore_half(float data, size_t offset, __global half *p);
13174void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
13175void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
13176void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
13177void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
13178void __ovld vstore_half(float data, size_t offset, __local half *p);
13179void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
13180void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
13181void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
13182void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
13183void __ovld vstore_half(float data, size_t offset, __private half *p);
13184void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
13185void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
13186void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
13187void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
13188#ifdef cl_khr_fp64
13189void __ovld vstore_half(double data, size_t offset, __global half *p);
13190void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
13191void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
13192void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
13193void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
13194void __ovld vstore_half(double data, size_t offset, __local half *p);
13195void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
13196void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
13197void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
13198void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
13199void __ovld vstore_half(double data, size_t offset, __private half *p);
13200void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
13201void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
13202void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
13203void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
13204#endif //cl_khr_fp64
13205#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13206
13207/**
13208 * The floatn value given by data is converted to
13209 * a halfn value using the appropriate rounding
13210 * mode. The halfn value is then written to
13211 * address computed as (p + (offset * n)). The
13212 * address computed as (p + (offset * n)) must be
13213 * 16-bit aligned.
13214 * vstore_halfn uses the current rounding mode.
13215 * The default current rounding mode is round to
13216 * nearest even.
13217 */
13218#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13219void __ovld vstore_half2(float2 data, size_t offset, half *p);
13220void __ovld vstore_half3(float3 data, size_t offset, half *p);
13221void __ovld vstore_half4(float4 data, size_t offset, half *p);
13222void __ovld vstore_half8(float8 data, size_t offset, half *p);
13223void __ovld vstore_half16(float16 data, size_t offset, half *p);
13224void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
13225void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
13226void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
13227void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
13228void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
13229void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
13230void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
13231void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
13232void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
13233void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
13234void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
13235void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
13236void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
13237void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
13238void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
13239void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
13240void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
13241void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
13242void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
13243void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
13244#ifdef cl_khr_fp64
13245void __ovld vstore_half2(double2 data, size_t offset, half *p);
13246void __ovld vstore_half3(double3 data, size_t offset, half *p);
13247void __ovld vstore_half4(double4 data, size_t offset, half *p);
13248void __ovld vstore_half8(double8 data, size_t offset, half *p);
13249void __ovld vstore_half16(double16 data, size_t offset, half *p);
13250void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
13251void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
13252void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
13253void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
13254void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
13255void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
13256void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
13257void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
13258void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
13259void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
13260void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
13261void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
13262void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
13263void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
13264void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
13265void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
13266void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
13267void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
13268void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
13269void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
13270#endif //cl_khr_fp64
13271#else
13272void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
13273void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
13274void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
13275void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
13276void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
13277void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
13278void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
13279void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
13280void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
13281void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
13282void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
13283void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
13284void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
13285void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
13286void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
13287void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
13288void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
13289void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
13290void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
13291void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
13292void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
13293void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
13294void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
13295void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
13296void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
13297void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
13298void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
13299void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
13300void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
13301void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
13302void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
13303void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
13304void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
13305void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
13306void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
13307void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
13308void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
13309void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
13310void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
13311void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
13312void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
13313void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
13314void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
13315void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
13316void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
13317void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
13318void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
13319void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
13320void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
13321void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
13322void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
13323void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
13324void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
13325void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
13326void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
13327void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
13328void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
13329void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
13330void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
13331void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
13332void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
13333void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
13334void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
13335void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
13336void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
13337void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
13338void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
13339void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
13340void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
13341void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
13342void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
13343void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
13344void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
13345void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
13346void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
13347#ifdef cl_khr_fp64
13348void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
13349void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
13350void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
13351void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
13352void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
13353void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
13354void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
13355void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
13356void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
13357void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
13358void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
13359void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
13360void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
13361void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
13362void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
13363void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
13364void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
13365void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
13366void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
13367void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
13368void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
13369void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
13370void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
13371void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
13372void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
13373void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
13374void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
13375void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
13376void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
13377void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
13378void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
13379void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
13380void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
13381void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
13382void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
13383void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
13384void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
13385void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
13386void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
13387void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
13388void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
13389void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
13390void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
13391void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
13392void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
13393void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
13394void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
13395void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
13396void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
13397void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
13398void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
13399void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
13400void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
13401void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
13402void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
13403void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
13404void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
13405void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
13406void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
13407void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
13408void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
13409void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
13410void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
13411void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
13412void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
13413void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
13414void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
13415void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
13416void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
13417void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
13418void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
13419void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
13420void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
13421void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
13422void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
13423#endif //cl_khr_fp64
13424#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13425
13426/**
13427 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
13428 * bytes of data from address (p + (offset * n)).
13429 * The data read is interpreted as a halfn value.
13430 * The halfn value read is converted to a floatn
13431 * value and the floatn value is returned.
13432 * The address computed as (p + (offset * n))
13433 * must be aligned to sizeof (halfn) bytes.
13434 * For n = 3, vloada_half3 reads a half3 from
13435 * address (p + (offset * 4)) and returns a float3.
13436 * The address computed as (p + (offset * 4))
13437 * must be aligned to sizeof (half) * 4 bytes.
13438 */
13439float __ovld vloada_half(size_t offset, const __constant half *p);
13440float2 __ovld vloada_half2(size_t offset, const __constant half *p);
13441float3 __ovld vloada_half3(size_t offset, const __constant half *p);
13442float4 __ovld vloada_half4(size_t offset, const __constant half *p);
13443float8 __ovld vloada_half8(size_t offset, const __constant half *p);
13444float16 __ovld vloada_half16(size_t offset, const __constant half *p);
13445#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13446float __ovld vloada_half(size_t offset, const half *p);
13447float2 __ovld vloada_half2(size_t offset, const half *p);
13448float3 __ovld vloada_half3(size_t offset, const half *p);
13449float4 __ovld vloada_half4(size_t offset, const half *p);
13450float8 __ovld vloada_half8(size_t offset, const half *p);
13451float16 __ovld vloada_half16(size_t offset, const half *p);
13452#else
13453float __ovld vloada_half(size_t offset, const __global half *p);
13454float2 __ovld vloada_half2(size_t offset, const __global half *p);
13455float3 __ovld vloada_half3(size_t offset, const __global half *p);
13456float4 __ovld vloada_half4(size_t offset, const __global half *p);
13457float8 __ovld vloada_half8(size_t offset, const __global half *p);
13458float16 __ovld vloada_half16(size_t offset, const __global half *p);
13459float __ovld vloada_half(size_t offset, const __local half *p);
13460float2 __ovld vloada_half2(size_t offset, const __local half *p);
13461float3 __ovld vloada_half3(size_t offset, const __local half *p);
13462float4 __ovld vloada_half4(size_t offset, const __local half *p);
13463float8 __ovld vloada_half8(size_t offset, const __local half *p);
13464float16 __ovld vloada_half16(size_t offset, const __local half *p);
13465float __ovld vloada_half(size_t offset, const __private half *p);
13466float2 __ovld vloada_half2(size_t offset, const __private half *p);
13467float3 __ovld vloada_half3(size_t offset, const __private half *p);
13468float4 __ovld vloada_half4(size_t offset, const __private half *p);
13469float8 __ovld vloada_half8(size_t offset, const __private half *p);
13470float16 __ovld vloada_half16(size_t offset, const __private half *p);
13471#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13472
13473/**
13474 * The floatn value given by data is converted to
13475 * a halfn value using the appropriate rounding
13476 * mode.
13477 * For n = 1, 2, 4, 8 and 16, the halfn value is
13478 * written to the address computed as (p + (offset
13479 * * n)). The address computed as (p + (offset *
13480 * n)) must be aligned to sizeof (halfn) bytes.
13481 * For n = 3, the half3 value is written to the
13482 * address computed as (p + (offset * 4)). The
13483 * address computed as (p + (offset * 4)) must be
13484 * aligned to sizeof (half) * 4 bytes.
13485 * vstorea_halfn uses the current rounding
13486 * mode. The default current rounding mode is
13487 * round to nearest even.
13488 */
13489#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13490void __ovld vstorea_half(float data, size_t offset, half *p);
13491void __ovld vstorea_half2(float2 data, size_t offset, half *p);
13492void __ovld vstorea_half3(float3 data, size_t offset, half *p);
13493void __ovld vstorea_half4(float4 data, size_t offset, half *p);
13494void __ovld vstorea_half8(float8 data, size_t offset, half *p);
13495void __ovld vstorea_half16(float16 data, size_t offset, half *p);
13496
13497void __ovld vstorea_half_rte(float data, size_t offset, half *p);
13498void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
13499void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
13500void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
13501void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
13502void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
13503
13504void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
13505void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
13506void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
13507void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
13508void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
13509void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
13510
13511void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
13512void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
13513void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
13514void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
13515void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
13516void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
13517
13518void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
13519void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
13520void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
13521void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
13522void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
13523void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
13524
13525#ifdef cl_khr_fp64
13526void __ovld vstorea_half(double data, size_t offset, half *p);
13527void __ovld vstorea_half2(double2 data, size_t offset, half *p);
13528void __ovld vstorea_half3(double3 data, size_t offset, half *p);
13529void __ovld vstorea_half4(double4 data, size_t offset, half *p);
13530void __ovld vstorea_half8(double8 data, size_t offset, half *p);
13531void __ovld vstorea_half16(double16 data, size_t offset, half *p);
13532
13533void __ovld vstorea_half_rte(double data, size_t offset, half *p);
13534void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
13535void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
13536void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
13537void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
13538void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
13539
13540void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
13541void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
13542void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
13543void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
13544void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
13545void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
13546
13547void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
13548void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
13549void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
13550void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
13551void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
13552void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
13553
13554void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
13555void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
13556void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
13557void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
13558void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
13559void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
13560#endif //cl_khr_fp64
13561
13562#else
13563void __ovld vstorea_half(float data, size_t offset, __global half *p);
13564void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
13565void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
13566void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
13567void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
13568void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
13569
13570void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
13571void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
13572void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
13573void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
13574void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
13575void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
13576
13577void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
13578void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
13579void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
13580void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
13581void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
13582void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
13583
13584void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
13585void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
13586void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
13587void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
13588void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
13589void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
13590
13591void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
13592void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
13593void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
13594void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
13595void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
13596void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
13597
13598void __ovld vstorea_half(float data, size_t offset, __local half *p);
13599void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
13600void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
13601void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
13602void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
13603void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
13604
13605void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
13606void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
13607void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
13608void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
13609void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
13610void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
13611
13612void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
13613void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
13614void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
13615void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
13616void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
13617void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
13618
13619void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
13620void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
13621void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
13622void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
13623void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
13624void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
13625
13626void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
13627void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
13628void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
13629void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
13630void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
13631void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
13632
13633void __ovld vstorea_half(float data, size_t offset, __private half *p);
13634void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
13635void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
13636void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
13637void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
13638void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
13639
13640void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
13641void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
13642void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
13643void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
13644void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
13645void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
13646
13647void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
13648void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
13649void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
13650void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
13651void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
13652void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
13653
13654void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
13655void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
13656void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
13657void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
13658void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
13659void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
13660
13661void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
13662void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
13663void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
13664void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
13665void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
13666void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
13667
13668#ifdef cl_khr_fp64
13669void __ovld vstorea_half(double data, size_t offset, __global half *p);
13670void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
13671void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
13672void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
13673void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
13674void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
13675
13676void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
13677void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
13678void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
13679void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
13680void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
13681void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
13682
13683void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
13684void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
13685void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
13686void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
13687void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
13688void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
13689
13690void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
13691void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
13692void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
13693void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
13694void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
13695void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
13696
13697void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
13698void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
13699void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
13700void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
13701void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
13702void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
13703
13704void __ovld vstorea_half(double data, size_t offset, __local half *p);
13705void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
13706void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
13707void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
13708void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
13709void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
13710
13711void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
13712void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
13713void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
13714void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
13715void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
13716void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
13717
13718void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
13719void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
13720void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
13721void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
13722void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
13723void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
13724
13725void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
13726void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
13727void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
13728void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
13729void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
13730void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
13731
13732void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
13733void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
13734void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
13735void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
13736void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
13737void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
13738
13739void __ovld vstorea_half(double data, size_t offset, __private half *p);
13740void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
13741void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
13742void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
13743void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
13744void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
13745
13746void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
13747void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
13748void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
13749void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
13750void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
13751void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
13752
13753void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
13754void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
13755void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
13756void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
13757void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
13758void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
13759
13760void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
13761void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
13762void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
13763void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
13764void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
13765void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
13766
13767void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
13768void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
13769void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
13770void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
13771void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
13772void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
13773#endif //cl_khr_fp64
13774#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13775
13776// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
13777
13778// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence
13779typedef uint cl_mem_fence_flags;
13780
13781/**
13782 * Queue a memory fence to ensure correct
13783 * ordering of memory operations to local memory
13784 */
13785#define CLK_LOCAL_MEM_FENCE 0x01
13786
13787/**
13788 * Queue a memory fence to ensure correct
13789 * ordering of memory operations to global memory
13790 */
13791#define CLK_GLOBAL_MEM_FENCE 0x02
13792
13793#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13794/**
13795 * Queue a memory fence to ensure correct ordering of memory
13796 * operations between work-items of a work-group to
13797 * image memory.
13798 */
13799#define CLK_IMAGE_MEM_FENCE 0x04
13800#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13801
13802/**
13803 * All work-items in a work-group executing the kernel
13804 * on a processor must execute this function before any
13805 * are allowed to continue execution beyond the barrier.
13806 * This function must be encountered by all work-items in
13807 * a work-group executing the kernel.
13808 * If barrier is inside a conditional statement, then all
13809 * work-items must enter the conditional if any work-item
13810 * enters the conditional statement and executes the
13811 * barrier.
13812 * If barrer is inside a loop, all work-items must execute
13813 * the barrier for each iteration of the loop before any are
13814 * allowed to continue execution beyond the barrier.
13815 * The barrier function also queues a memory fence
13816 * (reads and writes) to ensure correct ordering of
13817 * memory operations to local or global memory.
13818 * The flags argument specifies the memory address space
13819 * and can be set to a combination of the following literal
13820 * values.
13821 * CLK_LOCAL_MEM_FENCE - The barrier function
13822 * will either flush any variables stored in local memory
13823 * or queue a memory fence to ensure correct ordering of
13824 * memory operations to local memory.
13825 * CLK_GLOBAL_MEM_FENCE - The barrier function
13826 * will queue a memory fence to ensure correct ordering
13827 * of memory operations to global memory. This can be
13828 * useful when work-items, for example, write to buffer or
13829 * image objects and then want to read the updated data.
13830 */
13831
Yaxun Liu7d07ae72016-11-01 18:45:32 +000013832void __ovld __conv barrier(cl_mem_fence_flags flags);
Yaxun Liue8f49b92016-05-30 02:22:28 +000013833
13834#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13835
13836typedef enum memory_scope
13837{
13838 memory_scope_work_item,
13839 memory_scope_work_group,
13840 memory_scope_device,
13841 memory_scope_all_svm_devices,
13842 memory_scope_sub_group
13843} memory_scope;
13844
Yaxun Liu7d07ae72016-11-01 18:45:32 +000013845void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
13846void __ovld __conv work_group_barrier(cl_mem_fence_flags flags);
Yaxun Liue8f49b92016-05-30 02:22:28 +000013847#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13848
13849// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
13850
13851/**
13852 * Orders loads and stores of a work-item
13853 * executing a kernel. This means that loads
13854 * and stores preceding the mem_fence will
13855 * be committed to memory before any loads
13856 * and stores following the mem_fence.
13857 * The flags argument specifies the memory
13858 * address space and can be set to a
13859 * combination of the following literal
13860 * values:
13861 * CLK_LOCAL_MEM_FENCE
13862 * CLK_GLOBAL_MEM_FENCE.
13863 */
13864void __ovld mem_fence(cl_mem_fence_flags flags);
13865
13866/**
13867 * Read memory barrier that orders only
13868 * loads.
13869 * The flags argument specifies the memory
13870 * address space and can be set to to a
13871 * combination of the following literal
13872 * values:
13873 * CLK_LOCAL_MEM_FENCE
13874 * CLK_GLOBAL_MEM_FENCE.
13875 */
13876void __ovld read_mem_fence(cl_mem_fence_flags flags);
13877
13878/**
13879 * Write memory barrier that orders only
13880 * stores.
13881 * The flags argument specifies the memory
13882 * address space and can be set to to a
13883 * combination of the following literal
13884 * values:
13885 * CLK_LOCAL_MEM_FENCE
13886 * CLK_GLOBAL_MEM_FENCE.
13887 */
13888void __ovld write_mem_fence(cl_mem_fence_flags flags);
13889
13890// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
13891
13892#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13893cl_mem_fence_flags __ovld get_fence(const void *ptr);
13894cl_mem_fence_flags __ovld get_fence(void *ptr);
13895
13896/**
13897 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
13898 * and checked in Sema since they should be declared as
13899 * addr gentype* to_addr (gentype*);
13900 * where gentype is builtin type or user defined type.
13901 */
13902
13903#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13904
13905// 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
13906
13907/**
13908 * event_t async_work_group_copy (
13909 * __global gentype *dst,
13910 * const __local gentype *src,
13911 * size_t num_elements,
13912 * event_t event)
13913 * Perform an async copy of num_elements
13914 * gentype elements from src to dst. The async
13915 * copy is performed by all work-items in a workgroup
13916 * and this built-in function must therefore
13917 * be encountered by all work-items in a workgroup
13918 * executing the kernel with the same
13919 * argument values; otherwise the results are
13920 * undefined.
13921 * Returns an event object that can be used by
13922 * wait_group_events to wait for the async copy
13923 * to finish. The event argument can also be used
13924 * to associate the async_work_group_copy with
13925 * a previous async copy allowing an event to be
13926 * shared by multiple async copies; otherwise event
13927 * should be zero.
13928 * If event argument is non-zero, the event object
13929 * supplied in event argument will be returned.
13930 * This function does not perform any implicit
13931 * synchronization of source data such as using a
13932 * barrier before performing the copy.
13933 */
13934event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
13935event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
13936event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
13937event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
13938event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
13939event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
13940event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
13941event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
13942event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
13943event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
13944event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
13945event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
13946event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
13947event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
13948event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
13949event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
13950event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
13951event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
13952event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
13953event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
13954event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
13955event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
13956event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
13957event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
13958event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
13959event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
13960event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
13961event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
13962event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
13963event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
13964event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
13965event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
13966event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
13967event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
13968event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
13969event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
13970event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
13971event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
13972event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
13973event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
13974event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
13975event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
13976event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
13977event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
13978event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
13979event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
13980event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
13981event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
13982event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
13983event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
13984event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
13985event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
13986event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
13987event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
13988event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
13989event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
13990event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
13991event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
13992event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
13993event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
13994event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
13995event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
13996event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
13997event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
13998event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
13999event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
14000event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
14001event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
14002event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
14003event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
14004event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
14005event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
14006event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
14007event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
14008event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
14009event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
14010event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
14011event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
14012event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
14013event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
14014event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
14015event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
14016event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
14017event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
14018event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
14019event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
14020event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
14021event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
14022event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
14023event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
14024event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
14025event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
14026event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
14027event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
14028event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
14029event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
14030event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
14031event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
14032event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
14033event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
14034event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
14035event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
14036event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
14037event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
14038event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
14039event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
14040event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
14041event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
14042#ifdef cl_khr_fp64
14043event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
14044event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
14045event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
14046event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
14047event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
14048event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
14049event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
14050event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
14051event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
14052event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
14053event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
14054event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
14055#endif //cl_khr_fp64
14056#ifdef cl_khr_fp16
14057event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
14058event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
14059event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
14060event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
14061event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
14062event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
14063event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
14064event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
14065event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
14066event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
14067event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
14068event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
14069#endif //cl_khr_fp16
14070
14071/**
14072 * Perform an async gather of num_elements
14073 * gentype elements from src to dst. The
14074 * src_stride is the stride in elements for each
14075 * gentype element read from src. The dst_stride
14076 * is the stride in elements for each gentype
14077 * element written to dst. The async gather is
14078 * performed by all work-items in a work-group.
14079 * This built-in function must therefore be
14080 * encountered by all work-items in a work-group
14081 * executing the kernel with the same argument
14082 * values; otherwise the results are undefined.
14083 * Returns an event object that can be used by
14084 * wait_group_events to wait for the async copy
14085 * to finish. The event argument can also be used
14086 * to associate the
14087 * async_work_group_strided_copy with a
14088 * previous async copy allowing an event to be
14089 * shared by multiple async copies; otherwise event
14090 * should be zero.
14091 * If event argument is non-zero, the event object
14092 * supplied in event argument will be returned.
14093 * This function does not perform any implicit
14094 * synchronization of source data such as using a
14095 * barrier before performing the copy.
14096 */
14097event_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);
14098event_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);
14099event_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);
14100event_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);
14101event_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);
14102event_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);
14103event_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);
14104event_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);
14105event_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);
14106event_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);
14107event_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);
14108event_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);
14109event_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);
14110event_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);
14111event_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);
14112event_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);
14113event_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);
14114event_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);
14115event_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);
14116event_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);
14117event_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);
14118event_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);
14119event_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);
14120event_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);
14121event_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);
14122event_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);
14123event_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);
14124event_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);
14125event_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);
14126event_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);
14127event_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);
14128event_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);
14129event_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);
14130event_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);
14131event_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);
14132event_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);
14133event_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);
14134event_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);
14135event_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);
14136event_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);
14137event_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);
14138event_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);
14139event_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);
14140event_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);
14141event_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);
14142event_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);
14143event_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);
14144event_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);
14145event_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);
14146event_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);
14147event_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);
14148event_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);
14149event_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);
14150event_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);
14151event_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);
14152event_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);
14153event_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);
14154event_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);
14155event_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);
14156event_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);
14157event_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);
14158event_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);
14159event_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);
14160event_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);
14161event_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);
14162event_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);
14163event_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);
14164event_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);
14165event_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);
14166event_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);
14167event_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);
14168event_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);
14169event_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);
14170event_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);
14171event_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);
14172event_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);
14173event_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);
14174event_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);
14175event_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);
14176event_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);
14177event_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);
14178event_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);
14179event_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);
14180event_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);
14181event_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);
14182event_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);
14183event_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);
14184event_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);
14185event_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);
14186event_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);
14187event_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);
14188event_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);
14189event_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);
14190event_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);
14191event_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);
14192event_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);
14193event_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);
14194event_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);
14195event_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);
14196event_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);
14197event_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);
14198event_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);
14199event_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);
14200event_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);
14201event_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);
14202event_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);
14203event_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);
14204event_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);
14205#ifdef cl_khr_fp64
14206event_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);
14207event_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);
14208event_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);
14209event_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);
14210event_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);
14211event_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);
14212event_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);
14213event_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);
14214event_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);
14215event_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);
14216event_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);
14217event_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);
14218#endif //cl_khr_fp64
14219#ifdef cl_khr_fp16
14220event_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);
14221event_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);
14222event_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);
14223event_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);
14224event_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);
14225event_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);
14226event_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);
14227event_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);
14228event_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);
14229event_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);
14230event_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);
14231event_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);
14232#endif //cl_khr_fp16
14233
14234/**
14235 * Wait for events that identify the
14236 * async_work_group_copy operations to
14237 * complete. The event objects specified in
14238 * event_list will be released after the wait is
14239 * performed.
14240 * This function must be encountered by all workitems
14241 * in a work-group executing the kernel with
14242 * the same num_events and event objects specified
14243 * in event_list; otherwise the results are undefined.
14244 */
14245void __ovld wait_group_events(int num_events, event_t *event_list);
14246
14247/**
14248 * Prefetch num_elements * sizeof(gentype)
14249 * bytes into the global cache. The prefetch
14250 * instruction is applied to a work-item in a workgroup
14251 * and does not affect the functional
14252 * behavior of the kernel.
14253 */
14254void __ovld prefetch(const __global char *p, size_t num_elements);
14255void __ovld prefetch(const __global uchar *p, size_t num_elements);
14256void __ovld prefetch(const __global short *p, size_t num_elements);
14257void __ovld prefetch(const __global ushort *p, size_t num_elements);
14258void __ovld prefetch(const __global int *p, size_t num_elements);
14259void __ovld prefetch(const __global uint *p, size_t num_elements);
14260void __ovld prefetch(const __global long *p, size_t num_elements);
14261void __ovld prefetch(const __global ulong *p, size_t num_elements);
14262void __ovld prefetch(const __global float *p, size_t num_elements);
14263void __ovld prefetch(const __global char2 *p, size_t num_elements);
14264void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
14265void __ovld prefetch(const __global short2 *p, size_t num_elements);
14266void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
14267void __ovld prefetch(const __global int2 *p, size_t num_elements);
14268void __ovld prefetch(const __global uint2 *p, size_t num_elements);
14269void __ovld prefetch(const __global long2 *p, size_t num_elements);
14270void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
14271void __ovld prefetch(const __global float2 *p, size_t num_elements);
14272void __ovld prefetch(const __global char3 *p, size_t num_elements);
14273void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
14274void __ovld prefetch(const __global short3 *p, size_t num_elements);
14275void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
14276void __ovld prefetch(const __global int3 *p, size_t num_elements);
14277void __ovld prefetch(const __global uint3 *p, size_t num_elements);
14278void __ovld prefetch(const __global long3 *p, size_t num_elements);
14279void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
14280void __ovld prefetch(const __global float3 *p, size_t num_elements);
14281void __ovld prefetch(const __global char4 *p, size_t num_elements);
14282void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
14283void __ovld prefetch(const __global short4 *p, size_t num_elements);
14284void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
14285void __ovld prefetch(const __global int4 *p, size_t num_elements);
14286void __ovld prefetch(const __global uint4 *p, size_t num_elements);
14287void __ovld prefetch(const __global long4 *p, size_t num_elements);
14288void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
14289void __ovld prefetch(const __global float4 *p, size_t num_elements);
14290void __ovld prefetch(const __global char8 *p, size_t num_elements);
14291void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
14292void __ovld prefetch(const __global short8 *p, size_t num_elements);
14293void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
14294void __ovld prefetch(const __global int8 *p, size_t num_elements);
14295void __ovld prefetch(const __global uint8 *p, size_t num_elements);
14296void __ovld prefetch(const __global long8 *p, size_t num_elements);
14297void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
14298void __ovld prefetch(const __global float8 *p, size_t num_elements);
14299void __ovld prefetch(const __global char16 *p, size_t num_elements);
14300void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
14301void __ovld prefetch(const __global short16 *p, size_t num_elements);
14302void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
14303void __ovld prefetch(const __global int16 *p, size_t num_elements);
14304void __ovld prefetch(const __global uint16 *p, size_t num_elements);
14305void __ovld prefetch(const __global long16 *p, size_t num_elements);
14306void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
14307void __ovld prefetch(const __global float16 *p, size_t num_elements);
14308#ifdef cl_khr_fp64
14309void __ovld prefetch(const __global double *p, size_t num_elements);
14310void __ovld prefetch(const __global double2 *p, size_t num_elements);
14311void __ovld prefetch(const __global double3 *p, size_t num_elements);
14312void __ovld prefetch(const __global double4 *p, size_t num_elements);
14313void __ovld prefetch(const __global double8 *p, size_t num_elements);
14314void __ovld prefetch(const __global double16 *p, size_t num_elements);
14315#endif //cl_khr_fp64
14316#ifdef cl_khr_fp16
14317void __ovld prefetch(const __global half *p, size_t num_elements);
14318void __ovld prefetch(const __global half2 *p, size_t num_elements);
14319void __ovld prefetch(const __global half3 *p, size_t num_elements);
14320void __ovld prefetch(const __global half4 *p, size_t num_elements);
14321void __ovld prefetch(const __global half8 *p, size_t num_elements);
14322void __ovld prefetch(const __global half16 *p, size_t num_elements);
14323#endif // cl_khr_fp16
14324
14325// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
14326
14327#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14328#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14329#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14330#endif
14331/**
14332 * Read the 32-bit value (referred to as old)
14333 * stored at location pointed by p. Compute
14334 * (old + val) and store result at location
14335 * pointed by p. The function returns old.
14336 */
14337int __ovld atomic_add(volatile __global int *p, int val);
14338unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
14339int __ovld atomic_add(volatile __local int *p, int val);
14340unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
14341
14342#if defined(cl_khr_global_int32_base_atomics)
14343int __ovld atom_add(volatile __global int *p, int val);
14344unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
14345#endif
14346#if defined(cl_khr_local_int32_base_atomics)
14347int __ovld atom_add(volatile __local int *p, int val);
14348unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
14349#endif
14350
14351#if defined(cl_khr_int64_base_atomics)
14352long __ovld atom_add(volatile __global long *p, long val);
14353unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
14354long __ovld atom_add(volatile __local long *p, long val);
14355unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
14356#endif
14357
14358/**
14359 * Read the 32-bit value (referred to as old) stored at location pointed by p.
14360 * Compute (old - val) and store result at location pointed by p. The function
14361 * returns old.
14362 */
14363int __ovld atomic_sub(volatile __global int *p, int val);
14364unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
14365int __ovld atomic_sub(volatile __local int *p, int val);
14366unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
14367
14368#if defined(cl_khr_global_int32_base_atomics)
14369int __ovld atom_sub(volatile __global int *p, int val);
14370unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
14371#endif
14372#if defined(cl_khr_local_int32_base_atomics)
14373int __ovld atom_sub(volatile __local int *p, int val);
14374unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
14375#endif
14376
14377#if defined(cl_khr_int64_base_atomics)
14378long __ovld atom_sub(volatile __global long *p, long val);
14379unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
14380long __ovld atom_sub(volatile __local long *p, long val);
14381unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
14382#endif
14383
14384/**
14385 * Swaps the old value stored at location p
14386 * with new value given by val. Returns old
14387 * value.
14388 */
14389int __ovld atomic_xchg(volatile __global int *p, int val);
14390unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
14391int __ovld atomic_xchg(volatile __local int *p, int val);
14392unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
14393float __ovld atomic_xchg(volatile __global float *p, float val);
14394float __ovld atomic_xchg(volatile __local float *p, float val);
14395
14396#if defined(cl_khr_global_int32_base_atomics)
14397int __ovld atom_xchg(volatile __global int *p, int val);
14398int __ovld atom_xchg(volatile __local int *p, int val);
14399#endif
14400#if defined(cl_khr_local_int32_base_atomics)
14401unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
14402unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
14403#endif
14404
14405#if defined(cl_khr_int64_base_atomics)
14406long __ovld atom_xchg(volatile __global long *p, long val);
14407long __ovld atom_xchg(volatile __local long *p, long val);
14408unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
14409unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
14410#endif
14411
14412/**
14413 * Read the 32-bit value (referred to as old)
14414 * stored at location pointed by p. Compute
14415 * (old + 1) and store result at location
14416 * pointed by p. The function returns old.
14417 */
14418int __ovld atomic_inc(volatile __global int *p);
14419unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
14420int __ovld atomic_inc(volatile __local int *p);
14421unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
14422
14423#if defined(cl_khr_global_int32_base_atomics)
14424int __ovld atom_inc(volatile __global int *p);
14425unsigned int __ovld atom_inc(volatile __global unsigned int *p);
14426#endif
14427#if defined(cl_khr_local_int32_base_atomics)
14428int __ovld atom_inc(volatile __local int *p);
14429unsigned int __ovld atom_inc(volatile __local unsigned int *p);
14430#endif
14431
14432#if defined(cl_khr_int64_base_atomics)
14433long __ovld atom_inc(volatile __global long *p);
14434unsigned long __ovld atom_inc(volatile __global unsigned long *p);
14435long __ovld atom_inc(volatile __local long *p);
14436unsigned long __ovld atom_inc(volatile __local unsigned long *p);
14437#endif
14438
14439/**
14440 * Read the 32-bit value (referred to as old)
14441 * stored at location pointed by p. Compute
14442 * (old - 1) and store result at location
14443 * pointed by p. The function returns old.
14444 */
14445int __ovld atomic_dec(volatile __global int *p);
14446unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
14447int __ovld atomic_dec(volatile __local int *p);
14448unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
14449
14450#if defined(cl_khr_global_int32_base_atomics)
14451int __ovld atom_dec(volatile __global int *p);
14452unsigned int __ovld atom_dec(volatile __global unsigned int *p);
14453#endif
14454#if defined(cl_khr_local_int32_base_atomics)
14455int __ovld atom_dec(volatile __local int *p);
14456unsigned int __ovld atom_dec(volatile __local unsigned int *p);
14457#endif
14458
14459#if defined(cl_khr_int64_base_atomics)
14460long __ovld atom_dec(volatile __global long *p);
14461unsigned long __ovld atom_dec(volatile __global unsigned long *p);
14462long __ovld atom_dec(volatile __local long *p);
14463unsigned long __ovld atom_dec(volatile __local unsigned long *p);
14464#endif
14465
14466/**
14467 * Read the 32-bit value (referred to as old)
14468 * stored at location pointed by p. Compute
14469 * (old == cmp) ? val : old and store result at
14470 * location pointed by p. The function
14471 * returns old.
14472 */
14473int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
14474unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14475int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
14476unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14477
14478#if defined(cl_khr_global_int32_base_atomics)
14479int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
14480unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14481#endif
14482#if defined(cl_khr_local_int32_base_atomics)
14483int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
14484unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14485#endif
14486
14487#if defined(cl_khr_int64_base_atomics)
14488long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
14489unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
14490long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
14491unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
14492#endif
14493
14494/**
14495 * Read the 32-bit value (referred to as old)
14496 * stored at location pointed by p. Compute
14497 * min(old, val) and store minimum value at
14498 * location pointed by p. The function
14499 * returns old.
14500 */
14501int __ovld atomic_min(volatile __global int *p, int val);
14502unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
14503int __ovld atomic_min(volatile __local int *p, int val);
14504unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
14505
14506#if defined(cl_khr_global_int32_extended_atomics)
14507int __ovld atom_min(volatile __global int *p, int val);
14508unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
14509#endif
14510#if defined(cl_khr_local_int32_extended_atomics)
14511int __ovld atom_min(volatile __local int *p, int val);
14512unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
14513#endif
14514
14515#if defined(cl_khr_int64_extended_atomics)
14516long __ovld atom_min(volatile __global long *p, long val);
14517unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
14518#endif
14519#if defined(cl_khr_local_int32_extended_atomics)
14520long __ovld atom_min(volatile __local long *p, long val);
14521unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
14522#endif
14523
14524/**
14525 * Read the 32-bit value (referred to as old)
14526 * stored at location pointed by p. Compute
14527 * max(old, val) and store maximum value at
14528 * location pointed by p. The function
14529 * returns old.
14530 */
14531int __ovld atomic_max(volatile __global int *p, int val);
14532unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
14533int __ovld atomic_max(volatile __local int *p, int val);
14534unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
14535
14536#if defined(cl_khr_global_int32_extended_atomics)
14537int __ovld atom_max(volatile __global int *p, int val);
14538unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
14539#endif
14540#if defined(cl_khr_local_int32_extended_atomics)
14541int __ovld atom_max(volatile __local int *p, int val);
14542unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
14543#endif
14544
14545#if defined(cl_khr_int64_extended_atomics)
14546long __ovld atom_max(volatile __global long *p, long val);
14547unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
14548long __ovld atom_max(volatile __local long *p, long val);
14549unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
14550#endif
14551
14552/**
14553 * Read the 32-bit value (referred to as old)
14554 * stored at location pointed by p. Compute
14555 * (old & val) and store result at location
14556 * pointed by p. The function returns old.
14557 */
14558int __ovld atomic_and(volatile __global int *p, int val);
14559unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
14560int __ovld atomic_and(volatile __local int *p, int val);
14561unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
14562
14563#if defined(cl_khr_global_int32_extended_atomics)
14564int __ovld atom_and(volatile __global int *p, int val);
14565unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
14566#endif
14567#if defined(cl_khr_local_int32_extended_atomics)
14568int __ovld atom_and(volatile __local int *p, int val);
14569unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
14570#endif
14571
14572#if defined(cl_khr_int64_extended_atomics)
14573long __ovld atom_and(volatile __global long *p, long val);
14574unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
14575long __ovld atom_and(volatile __local long *p, long val);
14576unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
14577#endif
14578
14579/**
14580 * Read the 32-bit value (referred to as old)
14581 * stored at location pointed by p. Compute
14582 * (old | val) and store result at location
14583 * pointed by p. The function returns old.
14584 */
14585int __ovld atomic_or(volatile __global int *p, int val);
14586unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
14587int __ovld atomic_or(volatile __local int *p, int val);
14588unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
14589
14590#if defined(cl_khr_global_int32_extended_atomics)
14591int __ovld atom_or(volatile __global int *p, int val);
14592unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
14593#endif
14594#if defined(cl_khr_local_int32_extended_atomics)
14595int __ovld atom_or(volatile __local int *p, int val);
14596unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
14597#endif
14598
14599#if defined(cl_khr_int64_extended_atomics)
14600long __ovld atom_or(volatile __global long *p, long val);
14601unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
14602long __ovld atom_or(volatile __local long *p, long val);
14603unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
14604#endif
14605
14606/**
14607 * Read the 32-bit value (referred to as old)
14608 * stored at location pointed by p. Compute
14609 * (old ^ val) and store result at location
14610 * pointed by p. The function returns old.
14611 */
14612int __ovld atomic_xor(volatile __global int *p, int val);
14613unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
14614int __ovld atomic_xor(volatile __local int *p, int val);
14615unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
14616
14617#if defined(cl_khr_global_int32_extended_atomics)
14618int __ovld atom_xor(volatile __global int *p, int val);
14619unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
14620#endif
14621#if defined(cl_khr_local_int32_extended_atomics)
14622int __ovld atom_xor(volatile __local int *p, int val);
14623unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
14624#endif
14625
Yaxun Liua49bd142016-10-25 21:37:05 +000014626#if defined(cl_khr_int64_extended_atomics)
14627long __ovld atom_xor(volatile __global long *p, long val);
14628unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
14629long __ovld atom_xor(volatile __local long *p, long val);
14630unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
14631#endif
14632
Yaxun Liue8f49b92016-05-30 02:22:28 +000014633#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14634#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
14635#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
14636#endif
14637
14638// OpenCL v2.0 s6.13.11 - Atomics Functions
14639
14640#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14641#ifndef ATOMIC_VAR_INIT
14642#define ATOMIC_VAR_INIT(x) (x)
14643#endif //ATOMIC_VAR_INIT
14644#define ATOMIC_FLAG_INIT 0
14645
14646// enum values aligned with what clang uses in EmitAtomicExpr()
14647typedef enum memory_order
14648{
14649 memory_order_relaxed,
14650 memory_order_acquire,
14651 memory_order_release,
14652 memory_order_acq_rel,
14653 memory_order_seq_cst
14654} memory_order;
14655
14656// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
14657#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14658#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14659#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14660#endif
14661
14662// atomic_init()
14663void __ovld atomic_init(volatile atomic_int *object, int value);
14664void __ovld atomic_init(volatile atomic_uint *object, uint value);
14665void __ovld atomic_init(volatile atomic_float *object, float value);
14666#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14667void __ovld atomic_init(volatile atomic_long *object, long value);
14668void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
14669#ifdef cl_khr_fp64
14670void __ovld atomic_init(volatile atomic_double *object, double value);
14671#endif //cl_khr_fp64
14672#endif
14673
14674// atomic_work_item_fence()
14675void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
14676
14677// atomic_fetch()
14678
14679int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
14680int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
14681int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14682uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
14683uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14684uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14685int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
14686int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
14687int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14688uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
14689uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14690uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14691int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
14692int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
14693int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14694uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
14695uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14696uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14697int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
14698int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
14699int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14700uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
14701uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14702uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14703int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
14704int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
14705int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14706uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
14707uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14708uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14709int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
14710int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
14711int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14712uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
14713uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14714uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14715uint __ovld atomic_fetch_min(volatile atomic_uint *object, int operand);
14716uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order);
14717uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14718int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
14719int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
14720int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14721uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
14722uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14723uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14724uint __ovld atomic_fetch_max(volatile atomic_uint *object, int operand);
14725uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order);
14726uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14727
14728#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14729long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
14730long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
14731long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14732ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
14733ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14734ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14735long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
14736long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
14737long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14738ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
14739ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14740ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14741long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
14742long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
14743long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14744ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
14745ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14746ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14747long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
14748long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
14749long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14750ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
14751ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14752ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14753long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
14754long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
14755long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14756ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
14757ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14758ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14759long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
14760long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
14761long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14762ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
14763ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14764ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14765ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, long operand);
14766ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14767ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14768long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
14769long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
14770long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14771ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
14772ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14773ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14774ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, long operand);
14775ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14776ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14777#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14778
14779// OpenCL v2.0 s6.13.11.7.5:
14780// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
14781// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
14782
14783#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14784uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14785uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14786uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14787uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14788uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14789uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14790
14791uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
14792uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14793uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14794uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
14795uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14796uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14797uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
14798uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14799uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14800uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
14801uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14802uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14803uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
14804uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14805uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14806
14807intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
14808intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14809intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14810intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
14811intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14812intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14813intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
14814intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14815intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14816intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
14817intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14818intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14819intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
14820intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14821intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14822#endif
14823
14824// atomic_store()
14825
14826void __ovld atomic_store(volatile atomic_int *object, int desired);
14827void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
14828void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14829void __ovld atomic_store(volatile atomic_uint *object, uint desired);
14830void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14831void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14832void __ovld atomic_store(volatile atomic_float *object, float desired);
14833void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
14834void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14835#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14836#ifdef cl_khr_fp64
14837void __ovld atomic_store(volatile atomic_double *object, double desired);
14838void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
14839void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14840#endif //cl_khr_fp64
14841void __ovld atomic_store(volatile atomic_long *object, long desired);
14842void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
14843void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14844void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
14845void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14846void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14847#endif
14848
14849// atomic_load()
14850
14851int __ovld atomic_load(volatile atomic_int *object);
14852int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
14853int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
14854uint __ovld atomic_load(volatile atomic_uint *object);
14855uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
14856uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
14857float __ovld atomic_load(volatile atomic_float *object);
14858float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
14859float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
14860#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14861#ifdef cl_khr_fp64
14862double __ovld atomic_load(volatile atomic_double *object);
14863double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
14864double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
14865#endif //cl_khr_fp64
14866long __ovld atomic_load(volatile atomic_long *object);
14867long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
14868long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
14869ulong __ovld atomic_load(volatile atomic_ulong *object);
14870ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
14871ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
14872#endif
14873
14874// atomic_exchange()
14875
14876int __ovld atomic_exchange(volatile atomic_int *object, int desired);
14877int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
14878int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14879uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
14880uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14881uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14882float __ovld atomic_exchange(volatile atomic_float *object, float desired);
14883float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
14884float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14885#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14886#ifdef cl_khr_fp64
14887double __ovld atomic_exchange(volatile atomic_double *object, double desired);
14888double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
14889double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14890#endif //cl_khr_fp64
14891long __ovld atomic_exchange(volatile atomic_long *object, long desired);
14892long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
14893long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14894ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
14895ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14896ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14897#endif
14898
14899// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
14900
14901bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
14902bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14903 int desired, memory_order success, memory_order failure);
14904bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14905 int desired, memory_order success, memory_order failure, memory_scope scope);
14906bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
14907bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14908 uint desired, memory_order success, memory_order failure);
14909bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14910 uint desired, memory_order success, memory_order failure, memory_scope scope);
14911bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
14912bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14913 int desired, memory_order success, memory_order failure);
14914bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14915 int desired, memory_order success, memory_order failure, memory_scope scope);
14916bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
14917bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14918 uint desired, memory_order success, memory_order failure);
14919bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14920 uint desired, memory_order success, memory_order failure, memory_scope scope);
14921bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
14922bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14923 float desired, memory_order success, memory_order failure);
14924bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14925 float desired, memory_order success, memory_order failure, memory_scope scope);
14926bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
14927bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14928 float desired, memory_order success, memory_order failure);
14929bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14930 float desired, memory_order success, memory_order failure, memory_scope scope);
14931#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14932#ifdef cl_khr_fp64
14933bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
14934bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14935 double desired, memory_order success, memory_order failure);
14936bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14937 double desired, memory_order success, memory_order failure, memory_scope scope);
14938bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
14939bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14940 double desired, memory_order success, memory_order failure);
14941bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14942 double desired, memory_order success, memory_order failure, memory_scope scope);
14943#endif //cl_khr_fp64
14944bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
14945bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14946 long desired, memory_order success, memory_order failure);
14947bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14948 long desired, memory_order success, memory_order failure, memory_scope scope);
14949bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
14950bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14951 long desired, memory_order success, memory_order failure);
14952bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14953 long desired, memory_order success, memory_order failure, memory_scope scope);
14954bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
14955bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14956 ulong desired, memory_order success, memory_order failure);
14957bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14958 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14959bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
14960bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14961 ulong desired, memory_order success, memory_order failure);
14962bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14963 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14964#endif
14965
14966// atomic_flag_test_and_set() and atomic_flag_clear()
14967
14968bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
14969bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
14970bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14971void __ovld atomic_flag_clear(volatile atomic_flag *object);
14972void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
14973void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14974
14975#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14976
14977// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
14978
14979/**
14980 * The shuffle and shuffle2 built-in functions construct
14981 * a permutation of elements from one or two input
14982 * vectors respectively that are of the same type,
14983 * returning a vector with the same element type as the
14984 * input and length that is the same as the shuffle mask.
14985 * The size of each element in the mask must match the
14986 * size of each element in the result. For shuffle, only
14987 * the ilogb(2m-1) least significant bits of each mask
14988 * element are considered. For shuffle2, only the
14989 * ilogb(2m-1)+1 least significant bits of each mask
14990 * element are considered. Other bits in the mask shall
14991 * be ignored.
14992 * The elements of the input vectors are numbered from
14993 * left to right across one or both of the vectors. For this
14994 * purpose, the number of elements in a vector is given
14995 * by vec_step(gentypem). The shuffle mask operand
14996 * specifies, for each element of the result vector, which
14997 * element of the one or two input vectors the result
14998 * element gets.
14999 * Examples:
15000 * uint4 mask = (uint4)(3, 2,
15001 * 1, 0);
15002 * float4 a;
15003 * float4 r = shuffle(a, mask);
15004 * // r.s0123 = a.wzyx
15005 * uint8 mask = (uint8)(0, 1, 2, 3,
15006 * 4, 5, 6, 7);
15007 * float4 a, b;
15008 * float8 r = shuffle2(a, b, mask);
15009 * // r.s0123 = a.xyzw
15010 * // r.s4567 = b.xyzw
15011 * uint4 mask;
15012 * float8 a;
15013 * float4 b;
15014 * b = shuffle(a, mask);
15015 * Examples that are not valid are:
15016 * uint8 mask;
15017 * short16 a;
15018 * short8 b;
15019 * b = shuffle(a, mask); <- not valid
15020 */
15021char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
15022char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
15023char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
15024char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
15025
15026uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
15027uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
15028uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
15029uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
15030
15031short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
15032short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
15033short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
15034short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
15035
15036ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
15037ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
15038ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
15039ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
15040
15041int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
15042int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
15043int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
15044int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
15045
15046uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
15047uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
15048uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
15049uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
15050
15051long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
15052long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
15053long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
15054long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
15055
15056ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
15057ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
15058ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
15059ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
15060
15061float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
15062float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
15063float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
15064float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
15065
15066char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
15067char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
15068char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
15069char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
15070
15071uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
15072uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
15073uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
15074uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
15075
15076short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
15077short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
15078short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
15079short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
15080
15081ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
15082ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
15083ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
15084ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
15085
15086int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
15087int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
15088int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
15089int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
15090
15091uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
15092uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
15093uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
15094uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
15095
15096long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
15097long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
15098long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
15099long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
15100
15101ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
15102ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
15103ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
15104ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
15105
15106float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
15107float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
15108float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
15109float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
15110
15111char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
15112char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
15113char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
15114char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
15115
15116uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
15117uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
15118uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
15119uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
15120
15121short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
15122short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
15123short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
15124short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
15125
15126ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
15127ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
15128ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
15129ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
15130
15131int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
15132int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
15133int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
15134int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
15135
15136uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
15137uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
15138uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
15139uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
15140
15141long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
15142long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
15143long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
15144long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
15145
15146ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
15147ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
15148ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
15149ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
15150
15151float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
15152float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
15153float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
15154float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
15155
15156char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
15157char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
15158char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
15159char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
15160
15161uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
15162uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
15163uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
15164uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
15165
15166short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
15167short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
15168short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
15169short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
15170
15171ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
15172ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
15173ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
15174ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
15175
15176int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
15177int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
15178int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
15179int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
15180
15181uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
15182uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
15183uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
15184uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
15185
15186long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
15187long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
15188long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
15189long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
15190
15191ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
15192ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
15193ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
15194ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
15195
15196float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
15197float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
15198float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
15199float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
15200
15201#ifdef cl_khr_fp64
15202double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
15203double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
15204double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
15205double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
15206
15207double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
15208double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
15209double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
15210double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
15211
15212double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
15213double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
15214double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
15215double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
15216
15217double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
15218double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
15219double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
15220double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
15221#endif //cl_khr_fp64
15222
15223#ifdef cl_khr_fp16
15224half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
15225half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
15226half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
15227half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
15228
15229half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
15230half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
15231half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
15232half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
15233
15234half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
15235half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
15236half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
15237half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
15238
15239half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
15240half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
15241half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
15242half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
15243#endif //cl_khr_fp16
15244
15245char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
15246char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
15247char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
15248char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
15249
15250uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
15251uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
15252uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
15253uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
15254
15255short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
15256short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
15257short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
15258short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
15259
15260ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
15261ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
15262ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
15263ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
15264
15265int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
15266int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
15267int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
15268int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
15269
15270uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
15271uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
15272uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
15273uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
15274
15275long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
15276long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
15277long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
15278long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
15279
15280ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
15281ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
15282ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
15283ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
15284
15285float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
15286float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
15287float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
15288float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
15289
15290char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
15291char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
15292char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
15293char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
15294
15295uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
15296uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
15297uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
15298uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
15299
15300short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
15301short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
15302short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
15303short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
15304
15305ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
15306ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
15307ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
15308ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
15309
15310int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
15311int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
15312int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
15313int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
15314
15315uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
15316uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
15317uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
15318uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
15319
15320long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
15321long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
15322long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
15323long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
15324
15325ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
15326ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
15327ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
15328ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
15329
15330float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
15331float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
15332float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
15333float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
15334
15335char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
15336char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
15337char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
15338char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
15339
15340uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
15341uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
15342uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
15343uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
15344
15345short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
15346short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
15347short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
15348short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
15349
15350ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
15351ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
15352ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
15353ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
15354
15355int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
15356int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
15357int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
15358int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
15359
15360uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
15361uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
15362uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
15363uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
15364
15365long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
15366long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
15367long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
15368long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
15369
15370ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
15371ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
15372ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
15373ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
15374
15375float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
15376float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
15377float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
15378float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
15379
15380char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
15381char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
15382char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
15383char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
15384
15385uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
15386uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
15387uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
15388uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
15389
15390short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
15391short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
15392short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
15393short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
15394
15395ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
15396ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
15397ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
15398ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
15399
15400int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
15401int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
15402int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
15403int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
15404
15405uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
15406uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
15407uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
15408uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
15409
15410long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
15411long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
15412long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
15413long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
15414
15415ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
15416ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
15417ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
15418ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
15419
15420float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
15421float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
15422float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
15423float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
15424
15425#ifdef cl_khr_fp64
15426double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
15427double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
15428double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
15429double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
15430
15431double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
15432double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
15433double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
15434double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
15435
15436double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
15437double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
15438double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
15439double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
15440
15441double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
15442double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
15443double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
15444double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
15445#endif //cl_khr_fp64
15446
15447#ifdef cl_khr_fp16
15448half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
15449half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
15450half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
15451half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
15452
15453half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
15454half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
15455half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
15456half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
15457
15458half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
15459half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
15460half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
15461half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
15462
15463half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
15464half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
15465half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
15466half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
15467#endif //cl_khr_fp16
15468
Anastasia Stulova7c305332016-10-28 12:59:39 +000015469#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
Yaxun Liue8f49b92016-05-30 02:22:28 +000015470// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
15471
15472int printf(__constant const char* st, ...);
Anastasia Stulova7c305332016-10-28 12:59:39 +000015473#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000015474
15475// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
15476
15477// These values need to match the runtime equivalent
15478//
15479// Addressing Mode.
15480//
15481#define CLK_ADDRESS_NONE 0
15482#define CLK_ADDRESS_CLAMP_TO_EDGE 2
15483#define CLK_ADDRESS_CLAMP 4
15484#define CLK_ADDRESS_REPEAT 6
15485#define CLK_ADDRESS_MIRRORED_REPEAT 8
15486
15487//
15488// Coordination Normalization
15489//
15490#define CLK_NORMALIZED_COORDS_FALSE 0
15491#define CLK_NORMALIZED_COORDS_TRUE 1
15492
15493//
15494// Filtering Mode.
15495//
15496#define CLK_FILTER_NEAREST 0x10
15497#define CLK_FILTER_LINEAR 0x20
15498
Yaxun Liu5b746652016-12-18 05:18:55 +000015499#ifdef cl_khr_gl_msaa_sharing
15500#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
15501#endif //cl_khr_gl_msaa_sharing
15502
Yaxun Liue8f49b92016-05-30 02:22:28 +000015503/**
15504 * Use the coordinate (coord.xy) to do an element lookup in
15505 * the 2D image object specified by image.
15506 *
15507 * Use the coordinate (coord.x, coord.y, coord.z) to do
15508 * an element lookup in the 3D image object specified
15509 * by image. coord.w is ignored.
15510 *
15511 * Use the coordinate (coord.z) to index into the
15512 * 2D image array object specified by image_array
15513 * and (coord.x, coord.y) to do an element lookup in
15514 * the 2D image object specified by image.
15515 *
15516 * Use the coordinate (x) to do an element lookup in
15517 * the 1D image object specified by image.
15518 *
15519 * Use the coordinate (coord.y) to index into the
15520 * 1D image array object specified by image_array
15521 * and (coord.x) to do an element lookup in
15522 * the 1D image object specified by image.
15523 *
15524 * Use the coordinate (cood.xy) and sample to do an
15525 * element lookup in the 2D multi-sample image specified
15526 * by image.
15527 *
15528 * Use coord.xy and sample to do an element
15529 * lookup in the 2D multi-sample image layer
15530 * identified by index coord.z in the 2D multi-sample
15531 * image array specified by image.
15532 *
15533 * For mipmap images, use the mip-level specified by
15534 * the Level-of-Detail (lod) or use gradients for LOD
15535 * computation.
15536 *
15537 * read_imagef returns floating-point values in the
15538 * range [0.0 ... 1.0] for image objects created with
15539 * image_channel_data_type set to one of the predefined
15540 * packed formats or CL_UNORM_INT8, or
15541 * CL_UNORM_INT16.
15542 *
15543 * read_imagef returns floating-point values in the
15544 * range [-1.0 ... 1.0] for image objects created with
15545 * image_channel_data_type set to CL_SNORM_INT8,
15546 * or CL_SNORM_INT16.
15547 *
15548 * read_imagef returns floating-point values for image
15549 * objects created with image_channel_data_type set to
15550 * CL_HALF_FLOAT or CL_FLOAT.
15551 *
15552 * read_imagei and read_imageui return
15553 * unnormalized signed integer and unsigned integer
15554 * values respectively. Each channel will be stored in a
15555 * 32-bit integer.
15556 *
15557 * read_imagei can only be used with image objects
15558 * created with image_channel_data_type set to one of
15559 * the following values:
15560 * CL_SIGNED_INT8,
15561 * CL_SIGNED_INT16 and
15562 * CL_SIGNED_INT32.
15563 * If the image_channel_data_type is not one of the
15564 * above values, the values returned by read_imagei
15565 * are undefined.
15566 *
15567 * read_imageui can only be used with image objects
15568 * created with image_channel_data_type set to one of
15569 * the following values:
15570 * CL_UNSIGNED_INT8,
15571 * CL_UNSIGNED_INT16 and
15572 * CL_UNSIGNED_INT32.
15573 * If the image_channel_data_type is not one of the
15574 * above values, the values returned by read_imageui
15575 * are undefined.
15576 *
15577 * The read_image{i|ui} calls support a nearest filter
15578 * only. The filter_mode specified in sampler
15579 * must be set to CLK_FILTER_NEAREST; otherwise
15580 * the values returned are undefined.
15581
15582 * The read_image{f|i|ui} calls that take
15583 * integer coordinates must use a sampler with
15584 * normalized coordinates set to
15585 * CLK_NORMALIZED_COORDS_FALSE and
15586 * addressing mode set to
15587 * CLK_ADDRESS_CLAMP_TO_EDGE,
15588 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
15589 * otherwise the values returned are undefined.
15590 *
15591 * Values returned by read_imagef for image objects
15592 * with image_channel_data_type values not specified
15593 * in the description above are undefined.
15594 */
15595
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015596float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
15597float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015598
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015599int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
15600int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
15601uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
15602uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015603
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015604float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
15605float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015606
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015607int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
15608int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
15609uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
15610uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015611
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015612float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15613float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015614
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015615int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15616int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15617uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15618uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015619
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015620float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
15621float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015622
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015623int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
15624int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
15625uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
15626uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015627
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015628float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15629float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015630
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015631int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15632int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15633uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15634uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015635
15636#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015637float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
15638float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015639
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015640float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
15641float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015642#endif //cl_khr_depth_images
15643
15644#if defined(cl_khr_gl_msaa_sharing)
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015645float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
15646int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
15647uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015648
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015649float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015650
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015651float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
15652int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
15653uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015654
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015655float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015656#endif //cl_khr_gl_msaa_sharing
15657
15658// OpenCL Extension v2.0 s9.18 - Mipmaps
15659#ifdef cl_khr_mipmap_image
15660
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015661float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15662int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15663uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015664
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015665float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15666int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15667uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015668
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015669float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15670int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15671uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015672
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015673float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015674
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015675float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15676int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15677uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015678
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015679float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015680
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015681float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15682int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15683uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015684
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015685float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15686int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15687uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015688
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015689float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15690int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15691uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015692
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015693float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15694int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15695uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015696
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015697float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015698
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015699float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15700int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15701uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015702
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015703float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015704
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015705float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15706int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15707uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015708
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015709float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15710int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15711uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015712
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015713float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15714int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15715uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015716
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015717float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15718int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15719uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015720
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015721float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015722
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015723float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15724int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15725uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015726
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015727float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015728
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015729float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15730int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15731uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015732
15733#endif //cl_khr_mipmap_image
15734
15735/**
15736* Sampler-less Image Access
15737*/
15738
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015739float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
15740int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
15741uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015742
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015743float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
15744int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
15745uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015746
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015747float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
15748int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
15749uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015750
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015751float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
15752int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
15753uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015754
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015755float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
15756int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
15757uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015758
15759#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015760float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
15761float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015762#endif //cl_khr_depth_images
15763
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015764float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
15765int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
15766uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015767
15768// Image read functions returning half4 type
15769#ifdef cl_khr_fp16
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015770half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
15771half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
15772half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
15773half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
15774half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
15775half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
15776half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
15777half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
15778half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
15779half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
15780half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
15781half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
15782half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
15783half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
15784half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
15785half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015786#endif //cl_khr_fp16
15787
15788// Image read functions for read_write images
15789#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015790float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
15791int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
15792uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015793
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015794float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
15795int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
15796uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015797
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015798float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
15799int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
15800uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015801
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015802float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
15803int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
15804uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015805
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015806float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
15807int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
15808uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015809
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015810float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
15811int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
15812uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015813
15814#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015815float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
15816float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015817#endif //cl_khr_depth_images
15818
15819#if cl_khr_gl_msaa_sharing
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015820float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
15821int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
15822uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015823
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015824float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
15825int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
15826uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015827
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015828float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
15829float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015830#endif //cl_khr_gl_msaa_sharing
15831
15832#ifdef cl_khr_mipmap_image
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015833float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15834int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15835uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015836
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015837float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15838int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15839uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015840
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015841float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15842int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15843uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015844
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015845float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015846
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015847float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15848int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15849uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015850
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015851float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015852
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015853float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15854int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15855uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015856
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015857float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15858int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15859uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015860
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015861float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15862int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15863uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015864
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015865float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15866int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15867uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015868
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015869float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015870
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015871float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15872int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15873uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015874
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015875float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015876
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015877float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15878int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15879uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015880
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015881float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15882int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15883uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015884
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015885float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15886int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15887uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015888
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015889float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15890int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15891uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015892
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015893float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015894
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015895float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15896int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15897uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015898
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015899float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015900
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015901float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15902int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15903uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015904#endif //cl_khr_mipmap_image
15905
15906// Image read functions returning half4 type
15907#ifdef cl_khr_fp16
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015908half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
15909half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
15910half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
15911half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
15912half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
15913half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015914#endif //cl_khr_fp16
15915#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15916
15917/**
15918 * Write color value to location specified by coordinate
15919 * (coord.x, coord.y) in the 2D image object specified by image.
15920 * (coord.x, coord.y) are considered to be unnormalized coordinates
15921 * and must be in the range 0 ... image width - 1, and 0
15922 * ... image height - 1.
15923
15924 * Write color value to location specified by coordinate
15925 * (coord.x, coord.y) in the 2D image object specified by index
15926 * (coord.z) of the 2D image array object image_array.
15927 * (coord.x, coord.y) are considered to be unnormalized
15928 * coordinates and must be in the range 0 ... image width
15929 * - 1.
15930 *
15931 * Write color value to location specified by coordinate
15932 * (coord) in the 1D image (buffer) object specified by image.
15933 * coord is considered to be unnormalized coordinates
15934 * and must be in the range 0 ... image width - 1.
15935 *
15936 * Write color value to location specified by coordinate
15937 * (coord.x) in the 1D image object specified by index
15938 * (coord.y) of the 1D image array object image_array.
15939 * x is considered to be unnormalized coordinates
15940 * and must be in the range 0 ... image width - 1.
15941 *
15942 * Write color value to location specified by coordinate
15943 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
15944 * coord.x & coord.y are considered to be unnormalized coordinates
15945 * and must be in the range 0 ... image width - 1, and 0
15946 * ... image height - 1.
15947 *
15948 * For mipmap images, use mip-level specified by lod.
15949 *
15950 * Appropriate data format conversion to the specified
15951 * image format is done before writing the color value.
15952 *
15953 * write_imagef can only be used with image objects
15954 * created with image_channel_data_type set to one of
15955 * the pre-defined packed formats or set to
15956 * CL_SNORM_INT8, CL_UNORM_INT8,
15957 * CL_SNORM_INT16, CL_UNORM_INT16,
15958 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
15959 * format conversion will be done to convert channel
15960 * data from a floating-point value to actual data format
15961 * in which the channels are stored.
15962 *
15963 * write_imagei can only be used with image objects
15964 * created with image_channel_data_type set to one of
15965 * the following values:
15966 * CL_SIGNED_INT8,
15967 * CL_SIGNED_INT16 and
15968 * CL_SIGNED_INT32.
15969 *
15970 * write_imageui can only be used with image objects
15971 * created with image_channel_data_type set to one of
15972 * the following values:
15973 * CL_UNSIGNED_INT8,
15974 * CL_UNSIGNED_INT16 and
15975 * CL_UNSIGNED_INT32.
15976 *
15977 * The behavior of write_imagef, write_imagei and
15978 * write_imageui for image objects created with
15979 * image_channel_data_type values not specified in
15980 * the description above or with (x, y) coordinate
15981 * values that are not in the range (0 ... image width -1,
15982 * 0 ... image height - 1), respectively, is undefined.
15983 */
15984void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
15985void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
15986void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
15987
15988void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
15989void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
15990void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
15991
15992void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
15993void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
15994void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
15995
15996void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
15997void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
15998void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
15999
16000void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
16001void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
16002void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
16003
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016004#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016005void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
16006void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
16007void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016008#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016009
16010#ifdef cl_khr_depth_images
16011void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
16012void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
16013#endif //cl_khr_depth_images
16014
16015// OpenCL Extension v2.0 s9.18 - Mipmaps
16016#ifdef cl_khr_mipmap_image
16017void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
16018void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
16019void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
16020
16021void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
16022void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
16023void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
16024
16025void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
16026void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
16027void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
16028
16029void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
16030void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
16031void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
16032
16033void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float color);
16034void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float color);
16035
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016036#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016037void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
16038void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
16039void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016040#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016041#endif //cl_khr_mipmap_image
16042
16043// Image write functions for half4 type
16044#ifdef cl_khr_fp16
16045void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
16046void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016047#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016048void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016049#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016050void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
16051void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
16052void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
16053#endif //cl_khr_fp16
16054
16055// Image write functions for read_write images
16056#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16057void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
16058void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
16059void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
16060
16061void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
16062void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
16063void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
16064
16065void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
16066void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
16067void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
16068
16069void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
16070void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
16071void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
16072
16073void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
16074void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
16075void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
16076
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016077#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016078void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
16079void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
16080void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016081#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016082
16083#ifdef cl_khr_depth_images
16084void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
16085void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
16086#endif //cl_khr_depth_images
16087
16088#ifdef cl_khr_mipmap_image
16089void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
16090void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
16091void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
16092
16093void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
16094void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
16095void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
16096
16097void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
16098void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
16099void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
16100
16101void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
16102void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
16103void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
16104
16105void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
16106void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
16107
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016108#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016109void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
16110void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
16111void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016112#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016113#endif //cl_khr_mipmap_image
16114
16115// Image write functions for half4 type
16116#ifdef cl_khr_fp16
16117void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
16118void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016119#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016120void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016121#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016122void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
16123void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
16124void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
16125#endif //cl_khr_fp16
16126#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16127
16128// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
16129// access qualifier, which by default assume read_only access qualifier. Image query builtin
16130// functions with write_only image argument should also be declared.
16131
16132/**
16133 * Return the image width in pixels.
16134 *
16135 */
16136int __ovld __cnfn get_image_width(read_only image1d_t image);
16137int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
16138int __ovld __cnfn get_image_width(read_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016139#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016140int __ovld __cnfn get_image_width(read_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016141#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016142int __ovld __cnfn get_image_width(read_only image1d_array_t image);
16143int __ovld __cnfn get_image_width(read_only image2d_array_t image);
16144#ifdef cl_khr_depth_images
16145int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
16146int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
16147#endif //cl_khr_depth_images
16148#if defined(cl_khr_gl_msaa_sharing)
16149int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
16150int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
16151int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
16152int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
16153#endif //cl_khr_gl_msaa_sharing
16154
16155int __ovld __cnfn get_image_width(write_only image1d_t image);
16156int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
16157int __ovld __cnfn get_image_width(write_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016158#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016159int __ovld __cnfn get_image_width(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016160#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016161int __ovld __cnfn get_image_width(write_only image1d_array_t image);
16162int __ovld __cnfn get_image_width(write_only image2d_array_t image);
16163#ifdef cl_khr_depth_images
16164int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
16165int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
16166#endif //cl_khr_depth_images
16167#if defined(cl_khr_gl_msaa_sharing)
16168int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
16169int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
16170int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
16171int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
16172#endif //cl_khr_gl_msaa_sharing
16173
16174#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16175int __ovld __cnfn get_image_width(read_write image1d_t image);
16176int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
16177int __ovld __cnfn get_image_width(read_write image2d_t image);
16178int __ovld __cnfn get_image_width(read_write image3d_t image);
16179int __ovld __cnfn get_image_width(read_write image1d_array_t image);
16180int __ovld __cnfn get_image_width(read_write image2d_array_t image);
16181#ifdef cl_khr_depth_images
16182int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
16183int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
16184#endif //cl_khr_depth_images
16185#if defined(cl_khr_gl_msaa_sharing)
16186int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
16187int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
16188int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
16189int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
16190#endif //cl_khr_gl_msaa_sharing
16191#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16192
16193/**
16194 * Return the image height in pixels.
16195 */
16196int __ovld __cnfn get_image_height(read_only image2d_t image);
16197int __ovld __cnfn get_image_height(read_only image3d_t image);
16198int __ovld __cnfn get_image_height(read_only image2d_array_t image);
16199#ifdef cl_khr_depth_images
16200int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
16201int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
16202#endif //cl_khr_depth_images
16203#if defined(cl_khr_gl_msaa_sharing)
16204int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
16205int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
16206int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
16207int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
16208#endif //cl_khr_gl_msaa_sharing
16209
16210int __ovld __cnfn get_image_height(write_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016211#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016212int __ovld __cnfn get_image_height(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016213#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016214int __ovld __cnfn get_image_height(write_only image2d_array_t image);
16215#ifdef cl_khr_depth_images
16216int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
16217int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
16218#endif //cl_khr_depth_images
16219#if defined(cl_khr_gl_msaa_sharing)
16220int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
16221int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
16222int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
16223int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
16224#endif //cl_khr_gl_msaa_sharing
16225
16226#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16227int __ovld __cnfn get_image_height(read_write image2d_t image);
16228int __ovld __cnfn get_image_height(read_write image3d_t image);
16229int __ovld __cnfn get_image_height(read_write image2d_array_t image);
16230#ifdef cl_khr_depth_images
16231int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
16232int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
16233#endif //cl_khr_depth_images
16234#if defined(cl_khr_gl_msaa_sharing)
16235int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
16236int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
16237int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
16238int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
16239#endif //cl_khr_gl_msaa_sharing
16240#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16241
16242/**
16243 * Return the image depth in pixels.
16244 */
16245int __ovld __cnfn get_image_depth(read_only image3d_t image);
16246
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016247#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016248int __ovld __cnfn get_image_depth(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016249#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016250
16251#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16252int __ovld __cnfn get_image_depth(read_write image3d_t image);
16253#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16254
16255// OpenCL Extension v2.0 s9.18 - Mipmaps
16256#ifdef cl_khr_mipmap_image
16257/**
16258 * Return the image miplevels.
16259 */
16260
16261int __ovld get_image_num_mip_levels(read_only image1d_t image);
16262int __ovld get_image_num_mip_levels(read_only image2d_t image);
16263int __ovld get_image_num_mip_levels(read_only image3d_t image);
16264
16265int __ovld get_image_num_mip_levels(write_only image1d_t image);
16266int __ovld get_image_num_mip_levels(write_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016267#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016268int __ovld get_image_num_mip_levels(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016269#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016270
16271#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16272int __ovld get_image_num_mip_levels(read_write image1d_t image);
16273int __ovld get_image_num_mip_levels(read_write image2d_t image);
16274int __ovld get_image_num_mip_levels(read_write image3d_t image);
16275#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16276
16277int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
16278int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
16279int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
16280int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
16281
16282int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
16283int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
16284int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
16285int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
16286
16287#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16288int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
16289int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
16290int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
16291int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
16292#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16293
16294#endif //cl_khr_mipmap_image
16295
16296/**
16297 * Return the channel data type. Valid values are:
16298 * CLK_SNORM_INT8
16299 * CLK_SNORM_INT16
16300 * CLK_UNORM_INT8
16301 * CLK_UNORM_INT16
16302 * CLK_UNORM_SHORT_565
16303 * CLK_UNORM_SHORT_555
16304 * CLK_UNORM_SHORT_101010
16305 * CLK_SIGNED_INT8
16306 * CLK_SIGNED_INT16
16307 * CLK_SIGNED_INT32
16308 * CLK_UNSIGNED_INT8
16309 * CLK_UNSIGNED_INT16
16310 * CLK_UNSIGNED_INT32
16311 * CLK_HALF_FLOAT
16312 * CLK_FLOAT
16313 */
16314
16315//
16316// Channel Datatype.
16317//
16318#define CLK_SNORM_INT8 0x10D0
16319#define CLK_SNORM_INT16 0x10D1
16320#define CLK_UNORM_INT8 0x10D2
16321#define CLK_UNORM_INT16 0x10D3
16322#define CLK_UNORM_SHORT_565 0x10D4
16323#define CLK_UNORM_SHORT_555 0x10D5
16324#define CLK_UNORM_INT_101010 0x10D6
16325#define CLK_SIGNED_INT8 0x10D7
16326#define CLK_SIGNED_INT16 0x10D8
16327#define CLK_SIGNED_INT32 0x10D9
16328#define CLK_UNSIGNED_INT8 0x10DA
16329#define CLK_UNSIGNED_INT16 0x10DB
16330#define CLK_UNSIGNED_INT32 0x10DC
16331#define CLK_HALF_FLOAT 0x10DD
16332#define CLK_FLOAT 0x10DE
16333#define CLK_UNORM_INT24 0x10DF
16334
16335int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
16336int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
16337int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
16338int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
16339int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
16340int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
16341#ifdef cl_khr_depth_images
16342int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
16343int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
16344#endif //cl_khr_depth_images
16345#if defined(cl_khr_gl_msaa_sharing)
16346int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
16347int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
16348int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
16349int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
16350#endif //cl_khr_gl_msaa_sharing
16351
16352int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
16353int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
16354int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016355#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016356int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016357#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016358int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
16359int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
16360#ifdef cl_khr_depth_images
16361int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
16362int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
16363#endif //cl_khr_depth_images
16364#if defined(cl_khr_gl_msaa_sharing)
16365int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
16366int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
16367int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
16368int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
16369#endif //cl_khr_gl_msaa_sharing
16370
16371#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16372int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
16373int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
16374int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
16375int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
16376int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
16377int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
16378#ifdef cl_khr_depth_images
16379int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
16380int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
16381#endif //cl_khr_depth_images
16382#if defined(cl_khr_gl_msaa_sharing)
16383int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
16384int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
16385int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
16386int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
16387#endif //cl_khr_gl_msaa_sharing
16388#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16389
16390/**
16391 * Return the image channel order. Valid values are:
16392 * CLK_A
16393 * CLK_R
16394 * CLK_Rx
16395 * CLK_RG
16396 * CLK_RGx
16397 * CLK_RA
16398 * CLK_RGB
16399 * CLK_RGBx
16400 * CLK_RGBA
16401 * CLK_ARGB
16402 * CLK_BGRA
16403 * CLK_INTENSITY
16404 * CLK_LUMINANCE
16405 */
16406// Channel order, numbering must be aligned with cl_channel_order in cl.h
16407//
16408#define CLK_R 0x10B0
16409#define CLK_A 0x10B1
16410#define CLK_RG 0x10B2
16411#define CLK_RA 0x10B3
16412#define CLK_RGB 0x10B4
16413#define CLK_RGBA 0x10B5
16414#define CLK_BGRA 0x10B6
16415#define CLK_ARGB 0x10B7
16416#define CLK_INTENSITY 0x10B8
16417#define CLK_LUMINANCE 0x10B9
16418#define CLK_Rx 0x10BA
16419#define CLK_RGx 0x10BB
16420#define CLK_RGBx 0x10BC
16421#define CLK_DEPTH 0x10BD
16422#define CLK_DEPTH_STENCIL 0x10BE
16423#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16424#define CLK_sRGB 0x10BF
16425#define CLK_sRGBA 0x10C1
16426#define CLK_sRGBx 0x10C0
16427#define CLK_sBGRA 0x10C2
Yaxun Liuc944e652016-07-29 17:50:10 +000016428#define CLK_ABGR 0x10C3
Yaxun Liue8f49b92016-05-30 02:22:28 +000016429#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16430
16431int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
16432int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
16433int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
16434int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
16435int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
16436int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
16437#ifdef cl_khr_depth_images
16438int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
16439int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
16440#endif //cl_khr_depth_images
16441#if defined(cl_khr_gl_msaa_sharing)
16442int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
16443int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
16444int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
16445int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
16446#endif //cl_khr_gl_msaa_sharing
16447
16448int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
16449int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
16450int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016451#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016452int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016453#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016454int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
16455int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
16456#ifdef cl_khr_depth_images
16457int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
16458int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
16459#endif //cl_khr_depth_images
16460#if defined(cl_khr_gl_msaa_sharing)
16461int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
16462int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
16463int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
16464int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
16465#endif //cl_khr_gl_msaa_sharing
16466
16467#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16468int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
16469int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
16470int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
16471int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
16472int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
16473int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
16474#ifdef cl_khr_depth_images
16475int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
16476int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
16477#endif //cl_khr_depth_images
16478#if defined(cl_khr_gl_msaa_sharing)
16479int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
16480int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
16481int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
16482int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
16483#endif //cl_khr_gl_msaa_sharing
16484#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16485
16486/**
16487 * Return the 2D image width and height as an int2
16488 * type. The width is returned in the x component, and
16489 * the height in the y component.
16490 */
16491int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
16492int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
16493#ifdef cl_khr_depth_images
16494int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
16495int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
16496#endif //cl_khr_depth_images
16497#if defined(cl_khr_gl_msaa_sharing)
16498int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
16499int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
16500int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
16501int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
16502#endif //cl_khr_gl_msaa_sharing
16503
16504int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
16505int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
16506#ifdef cl_khr_depth_images
16507int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
16508int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
16509#endif //cl_khr_depth_images
16510#if defined(cl_khr_gl_msaa_sharing)
16511int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
16512int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
16513int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
16514int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
16515#endif //cl_khr_gl_msaa_sharing
16516
16517#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16518int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
16519int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
16520#ifdef cl_khr_depth_images
16521int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
16522int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
16523#endif //cl_khr_depth_images
16524#if defined(cl_khr_gl_msaa_sharing)
16525int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
16526int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
16527int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
16528int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
16529#endif //cl_khr_gl_msaa_sharing
16530#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16531
16532/**
16533 * Return the 3D image width, height, and depth as an
16534 * int4 type. The width is returned in the x
16535 * component, height in the y component, depth in the z
16536 * component and the w component is 0.
16537 */
16538int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016539#ifdef cl_khr_3d_image_writes
Yaxun Liue8f49b92016-05-30 02:22:28 +000016540int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
Anastasia Stulovad1f390e2017-01-25 12:18:50 +000016541#endif
Yaxun Liue8f49b92016-05-30 02:22:28 +000016542#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16543int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
16544#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16545
16546/**
16547 * Return the image array size.
16548 */
16549
16550size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
16551size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
16552#ifdef cl_khr_depth_images
16553size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
16554#endif //cl_khr_depth_images
16555#if defined(cl_khr_gl_msaa_sharing)
16556size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
16557size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
16558#endif //cl_khr_gl_msaa_sharing
16559
16560size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
16561size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
16562#ifdef cl_khr_depth_images
16563size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
16564#endif //cl_khr_depth_images
16565#if defined(cl_khr_gl_msaa_sharing)
16566size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
16567size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
16568#endif //cl_khr_gl_msaa_sharing
16569
16570#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16571size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
16572size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
16573#ifdef cl_khr_depth_images
16574size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
16575#endif //cl_khr_depth_images
16576#if defined(cl_khr_gl_msaa_sharing)
16577size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
16578size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
16579#endif //cl_khr_gl_msaa_sharing
16580#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16581
16582/**
16583* Return the number of samples associated with image
16584*/
16585#if defined(cl_khr_gl_msaa_sharing)
16586int __ovld get_image_num_samples(read_only image2d_msaa_t image);
16587int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
16588int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16589int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
16590int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16591
16592int __ovld get_image_num_samples(write_only image2d_msaa_t image);
16593int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
16594int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16595int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
16596int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16597
16598#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16599int __ovld get_image_num_samples(read_write image2d_msaa_t image);
16600int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
16601int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16602int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
16603int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16604#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16605#endif
16606
16607// OpenCL v2.0 s6.13.15 - Work-group Functions
16608
16609#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016610int __ovld __conv work_group_all(int predicate);
16611int __ovld __conv work_group_any(int predicate);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016612
16613#ifdef cl_khr_fp16
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016614half __ovld __conv work_group_broadcast(half a, size_t local_id);
16615half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
16616half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016617#endif
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016618int __ovld __conv work_group_broadcast(int a, size_t local_id);
16619int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
16620int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
16621uint __ovld __conv work_group_broadcast(uint a, size_t local_id);
16622uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y);
16623uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
16624long __ovld __conv work_group_broadcast(long a, size_t local_id);
16625long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
16626long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
16627ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id);
16628ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y);
16629ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
16630float __ovld __conv work_group_broadcast(float a, size_t local_id);
16631float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
16632float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016633#ifdef cl_khr_fp64
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016634double __ovld __conv work_group_broadcast(double a, size_t local_id);
16635double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
16636double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016637#endif //cl_khr_fp64
16638
16639#ifdef cl_khr_fp16
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016640half __ovld __conv work_group_reduce_add(half x);
16641half __ovld __conv work_group_reduce_min(half x);
16642half __ovld __conv work_group_reduce_max(half x);
16643half __ovld __conv work_group_scan_exclusive_add(half x);
16644half __ovld __conv work_group_scan_exclusive_min(half x);
16645half __ovld __conv work_group_scan_exclusive_max(half x);
16646half __ovld __conv work_group_scan_inclusive_add(half x);
16647half __ovld __conv work_group_scan_inclusive_min(half x);
16648half __ovld __conv work_group_scan_inclusive_max(half x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016649#endif
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016650int __ovld __conv work_group_reduce_add(int x);
16651int __ovld __conv work_group_reduce_min(int x);
16652int __ovld __conv work_group_reduce_max(int x);
16653int __ovld __conv work_group_scan_exclusive_add(int x);
16654int __ovld __conv work_group_scan_exclusive_min(int x);
16655int __ovld __conv work_group_scan_exclusive_max(int x);
16656int __ovld __conv work_group_scan_inclusive_add(int x);
16657int __ovld __conv work_group_scan_inclusive_min(int x);
16658int __ovld __conv work_group_scan_inclusive_max(int x);
16659uint __ovld __conv work_group_reduce_add(uint x);
16660uint __ovld __conv work_group_reduce_min(uint x);
16661uint __ovld __conv work_group_reduce_max(uint x);
16662uint __ovld __conv work_group_scan_exclusive_add(uint x);
16663uint __ovld __conv work_group_scan_exclusive_min(uint x);
16664uint __ovld __conv work_group_scan_exclusive_max(uint x);
16665uint __ovld __conv work_group_scan_inclusive_add(uint x);
16666uint __ovld __conv work_group_scan_inclusive_min(uint x);
16667uint __ovld __conv work_group_scan_inclusive_max(uint x);
16668long __ovld __conv work_group_reduce_add(long x);
16669long __ovld __conv work_group_reduce_min(long x);
16670long __ovld __conv work_group_reduce_max(long x);
16671long __ovld __conv work_group_scan_exclusive_add(long x);
16672long __ovld __conv work_group_scan_exclusive_min(long x);
16673long __ovld __conv work_group_scan_exclusive_max(long x);
16674long __ovld __conv work_group_scan_inclusive_add(long x);
16675long __ovld __conv work_group_scan_inclusive_min(long x);
16676long __ovld __conv work_group_scan_inclusive_max(long x);
16677ulong __ovld __conv work_group_reduce_add(ulong x);
16678ulong __ovld __conv work_group_reduce_min(ulong x);
16679ulong __ovld __conv work_group_reduce_max(ulong x);
16680ulong __ovld __conv work_group_scan_exclusive_add(ulong x);
16681ulong __ovld __conv work_group_scan_exclusive_min(ulong x);
16682ulong __ovld __conv work_group_scan_exclusive_max(ulong x);
16683ulong __ovld __conv work_group_scan_inclusive_add(ulong x);
16684ulong __ovld __conv work_group_scan_inclusive_min(ulong x);
16685ulong __ovld __conv work_group_scan_inclusive_max(ulong x);
16686float __ovld __conv work_group_reduce_add(float x);
16687float __ovld __conv work_group_reduce_min(float x);
16688float __ovld __conv work_group_reduce_max(float x);
16689float __ovld __conv work_group_scan_exclusive_add(float x);
16690float __ovld __conv work_group_scan_exclusive_min(float x);
16691float __ovld __conv work_group_scan_exclusive_max(float x);
16692float __ovld __conv work_group_scan_inclusive_add(float x);
16693float __ovld __conv work_group_scan_inclusive_min(float x);
16694float __ovld __conv work_group_scan_inclusive_max(float x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016695#ifdef cl_khr_fp64
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016696double __ovld __conv work_group_reduce_add(double x);
16697double __ovld __conv work_group_reduce_min(double x);
16698double __ovld __conv work_group_reduce_max(double x);
16699double __ovld __conv work_group_scan_exclusive_add(double x);
16700double __ovld __conv work_group_scan_exclusive_min(double x);
16701double __ovld __conv work_group_scan_exclusive_max(double x);
16702double __ovld __conv work_group_scan_inclusive_add(double x);
16703double __ovld __conv work_group_scan_inclusive_min(double x);
16704double __ovld __conv work_group_scan_inclusive_max(double x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016705#endif //cl_khr_fp64
16706
16707#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16708
16709// OpenCL v2.0 s6.13.16 - Pipe Functions
16710#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16711#define PIPE_RESERVE_ID_VALID_BIT (1U << 30)
16712#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
16713bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
16714#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16715
16716
16717// OpenCL v2.0 s6.13.17 - Enqueue Kernels
16718#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16719
16720#define CL_COMPLETE 0x0
16721#define CL_RUNNING 0x1
16722#define CL_SUBMITTED 0x2
16723#define CL_QUEUED 0x3
16724
16725#define CLK_SUCCESS 0
16726#define CLK_ENQUEUE_FAILURE -101
16727#define CLK_INVALID_QUEUE -102
16728#define CLK_INVALID_NDRANGE -160
16729#define CLK_INVALID_EVENT_WAIT_LIST -57
16730#define CLK_DEVICE_QUEUE_FULL -161
16731#define CLK_INVALID_ARG_SIZE -51
16732#define CLK_EVENT_ALLOCATION_FAILURE -100
16733#define CLK_OUT_OF_RESOURCES -5
16734
16735#define CLK_NULL_QUEUE 0
16736#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
16737
16738// execution model related definitions
16739#define CLK_ENQUEUE_FLAGS_NO_WAIT 0x0
16740#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL 0x1
16741#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP 0x2
16742
16743typedef int kernel_enqueue_flags_t;
16744typedef int clk_profiling_info;
16745
16746// Profiling info name (see capture_event_profiling_info)
16747#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
16748
16749#define MAX_WORK_DIM 3
16750
Yaxun Liue8f49b92016-05-30 02:22:28 +000016751typedef struct {
16752 unsigned int workDimension;
16753 size_t globalWorkOffset[MAX_WORK_DIM];
16754 size_t globalWorkSize[MAX_WORK_DIM];
16755 size_t localWorkSize[MAX_WORK_DIM];
16756} ndrange_t;
Yaxun Liue8f49b92016-05-30 02:22:28 +000016757
16758ndrange_t __ovld ndrange_1D(size_t);
16759ndrange_t __ovld ndrange_1D(size_t, size_t);
16760ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
16761
16762ndrange_t __ovld ndrange_2D(const size_t[2]);
16763ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
16764ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
16765
16766ndrange_t __ovld ndrange_3D(const size_t[3]);
16767ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
16768ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
16769
Yaxun Liue8f49b92016-05-30 02:22:28 +000016770int __ovld enqueue_marker(queue_t, uint, const __private clk_event_t*, __private clk_event_t*);
16771
16772void __ovld retain_event(clk_event_t);
16773
16774void __ovld release_event(clk_event_t);
16775
Alexey Baderb5d90e52016-08-30 14:42:54 +000016776clk_event_t __ovld create_user_event(void);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016777
16778void __ovld set_user_event_status(clk_event_t e, int state);
16779
Alexey Baderb5d90e52016-08-30 14:42:54 +000016780bool __ovld is_valid_event (clk_event_t event);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016781
16782void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
16783
16784queue_t __ovld get_default_queue(void);
16785#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16786
16787// OpenCL Extension v2.0 s9.17 - Sub-groups
16788
16789#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
16790// Shared Sub Group Functions
16791uint __ovld get_sub_group_size(void);
16792uint __ovld get_max_sub_group_size(void);
16793uint __ovld get_num_sub_groups(void);
16794#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16795uint __ovld get_enqueued_num_sub_groups(void);
16796#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16797uint __ovld get_sub_group_id(void);
16798uint __ovld get_sub_group_local_id(void);
16799
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016800void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016801#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016802void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016803#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16804
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016805int __ovld __conv sub_group_all(int predicate);
16806int __ovld __conv sub_group_any(int predicate);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016807
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016808int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id);
16809uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id);
16810long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id);
16811ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
16812float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016813
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016814int __ovld __conv sub_group_reduce_add(int x);
16815uint __ovld __conv sub_group_reduce_add(uint x);
16816long __ovld __conv sub_group_reduce_add(long x);
16817ulong __ovld __conv sub_group_reduce_add(ulong x);
16818float __ovld __conv sub_group_reduce_add(float x);
16819int __ovld __conv sub_group_reduce_min(int x);
16820uint __ovld __conv sub_group_reduce_min(uint x);
16821long __ovld __conv sub_group_reduce_min(long x);
16822ulong __ovld __conv sub_group_reduce_min(ulong x);
16823float __ovld __conv sub_group_reduce_min(float x);
16824int __ovld __conv sub_group_reduce_max(int x);
16825uint __ovld __conv sub_group_reduce_max(uint x);
16826long __ovld __conv sub_group_reduce_max(long x);
16827ulong __ovld __conv sub_group_reduce_max(ulong x);
16828float __ovld __conv sub_group_reduce_max(float x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016829
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016830int __ovld __conv sub_group_scan_exclusive_add(int x);
16831uint __ovld __conv sub_group_scan_exclusive_add(uint x);
16832long __ovld __conv sub_group_scan_exclusive_add(long x);
16833ulong __ovld __conv sub_group_scan_exclusive_add(ulong x);
16834float __ovld __conv sub_group_scan_exclusive_add(float x);
16835int __ovld __conv sub_group_scan_exclusive_min(int x);
16836uint __ovld __conv sub_group_scan_exclusive_min(uint x);
16837long __ovld __conv sub_group_scan_exclusive_min(long x);
16838ulong __ovld __conv sub_group_scan_exclusive_min(ulong x);
16839float __ovld __conv sub_group_scan_exclusive_min(float x);
16840int __ovld __conv sub_group_scan_exclusive_max(int x);
16841uint __ovld __conv sub_group_scan_exclusive_max(uint x);
16842long __ovld __conv sub_group_scan_exclusive_max(long x);
16843ulong __ovld __conv sub_group_scan_exclusive_max(ulong x);
16844float __ovld __conv sub_group_scan_exclusive_max(float x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016845
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016846int __ovld __conv sub_group_scan_inclusive_add(int x);
16847uint __ovld __conv sub_group_scan_inclusive_add(uint x);
16848long __ovld __conv sub_group_scan_inclusive_add(long x);
16849ulong __ovld __conv sub_group_scan_inclusive_add(ulong x);
16850float __ovld __conv sub_group_scan_inclusive_add(float x);
16851int __ovld __conv sub_group_scan_inclusive_min(int x);
16852uint __ovld __conv sub_group_scan_inclusive_min(uint x);
16853long __ovld __conv sub_group_scan_inclusive_min(long x);
16854ulong __ovld __conv sub_group_scan_inclusive_min(ulong x);
16855float __ovld __conv sub_group_scan_inclusive_min(float x);
16856int __ovld __conv sub_group_scan_inclusive_max(int x);
16857uint __ovld __conv sub_group_scan_inclusive_max(uint x);
16858long __ovld __conv sub_group_scan_inclusive_max(long x);
16859ulong __ovld __conv sub_group_scan_inclusive_max(ulong x);
16860float __ovld __conv sub_group_scan_inclusive_max(float x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016861
16862#ifdef cl_khr_fp16
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016863half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
16864half __ovld __conv sub_group_reduce_add(half x);
16865half __ovld __conv sub_group_reduce_min(half x);
16866half __ovld __conv sub_group_reduce_max(half x);
16867half __ovld __conv sub_group_scan_exclusive_add(half x);
16868half __ovld __conv sub_group_scan_exclusive_min(half x);
16869half __ovld __conv sub_group_scan_exclusive_max(half x);
16870half __ovld __conv sub_group_scan_inclusive_add(half x);
16871half __ovld __conv sub_group_scan_inclusive_min(half x);
16872half __ovld __conv sub_group_scan_inclusive_max(half x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016873#endif //cl_khr_fp16
16874
16875#ifdef cl_khr_fp64
Yaxun Liu7d07ae72016-11-01 18:45:32 +000016876double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
16877double __ovld __conv sub_group_reduce_add(double x);
16878double __ovld __conv sub_group_reduce_min(double x);
16879double __ovld __conv sub_group_reduce_max(double x);
16880double __ovld __conv sub_group_scan_exclusive_add(double x);
16881double __ovld __conv sub_group_scan_exclusive_min(double x);
16882double __ovld __conv sub_group_scan_exclusive_max(double x);
16883double __ovld __conv sub_group_scan_inclusive_add(double x);
16884double __ovld __conv sub_group_scan_inclusive_min(double x);
16885double __ovld __conv sub_group_scan_inclusive_max(double x);
Yaxun Liue8f49b92016-05-30 02:22:28 +000016886#endif //cl_khr_fp64
16887
16888#endif //cl_khr_subgroups cl_intel_subgroups
16889
Yaxun Liu33174462016-08-16 20:49:49 +000016890#ifdef cl_amd_media_ops
16891uint __ovld amd_bitalign(uint a, uint b, uint c);
16892uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
16893uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
16894uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
16895uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
16896uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
16897
16898uint __ovld amd_bytealign(uint a, uint b, uint c);
16899uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
16900uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
16901uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
16902uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
16903uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
16904
16905uint __ovld amd_lerp(uint a, uint b, uint c);
16906uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
16907uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
16908uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
16909uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
16910uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
16911
16912uint __ovld amd_pack(float4 v);
16913
16914uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
16915
16916uint __ovld amd_sadhi(uint a, uint b, uint c);
16917uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
16918uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
16919uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
16920uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
16921uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
16922
16923uint __ovld amd_sad(uint a, uint b, uint c);
16924uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
16925uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
16926uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
16927uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
16928uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
16929
16930float __ovld amd_unpack0(uint a);
16931float2 __ovld amd_unpack0(uint2 a);
16932float3 __ovld amd_unpack0(uint3 a);
16933float4 __ovld amd_unpack0(uint4 a);
16934float8 __ovld amd_unpack0(uint8 a);
16935float16 __ovld amd_unpack0(uint16 a);
16936
16937float __ovld amd_unpack1(uint a);
16938float2 __ovld amd_unpack1(uint2 a);
16939float3 __ovld amd_unpack1(uint3 a);
16940float4 __ovld amd_unpack1(uint4 a);
16941float8 __ovld amd_unpack1(uint8 a);
16942float16 __ovld amd_unpack1(uint16 a);
16943
16944float __ovld amd_unpack2(uint a);
16945float2 __ovld amd_unpack2(uint2 a);
16946float3 __ovld amd_unpack2(uint3 a);
16947float4 __ovld amd_unpack2(uint4 a);
16948float8 __ovld amd_unpack2(uint8 a);
16949float16 __ovld amd_unpack2(uint16 a);
16950
16951float __ovld amd_unpack3(uint a);
16952float2 __ovld amd_unpack3(uint2 a);
16953float3 __ovld amd_unpack3(uint3 a);
16954float4 __ovld amd_unpack3(uint4 a);
16955float8 __ovld amd_unpack3(uint8 a);
16956float16 __ovld amd_unpack3(uint16 a);
16957#endif // cl_amd_media_ops
16958
16959#ifdef cl_amd_media_ops2
16960int __ovld amd_bfe(int src0, uint src1, uint src2);
16961int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
16962int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
16963int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
16964int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
16965int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
16966
16967uint __ovld amd_bfe(uint src0, uint src1, uint src2);
16968uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
16969uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
16970uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
16971uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
16972uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
16973
16974uint __ovld amd_bfm(uint src0, uint src1);
16975uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
16976uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
16977uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
16978uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
16979uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
16980
16981float __ovld amd_max3(float src0, float src1, float src2);
16982float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
16983float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
16984float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
16985float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
16986float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
16987
16988int __ovld amd_max3(int src0, int src1, int src2);
16989int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
16990int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
16991int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
16992int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
16993int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
16994
16995uint __ovld amd_max3(uint src0, uint src1, uint src2);
16996uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
16997uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
16998uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
16999uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
17000uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
17001
17002float __ovld amd_median3(float src0, float src1, float src2);
17003float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
17004float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
17005float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
17006float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
17007float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
17008
17009int __ovld amd_median3(int src0, int src1, int src2);
17010int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
17011int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
17012int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
17013int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
17014int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
17015
17016uint __ovld amd_median3(uint src0, uint src1, uint src2);
17017uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
17018uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
17019uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
17020uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
17021uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
17022
17023float __ovld amd_min3(float src0, float src1, float src);
17024float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
17025float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
17026float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
17027float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
17028float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
17029
17030int __ovld amd_min3(int src0, int src1, int src2);
17031int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
17032int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
17033int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
17034int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
17035int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
17036
17037uint __ovld amd_min3(uint src0, uint src1, uint src2);
17038uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
17039uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
17040uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
17041uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
17042uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
17043
17044ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
17045ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
17046ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
17047ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
17048ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
17049ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
17050
17051ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
17052ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
17053ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
17054ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
17055ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
17056ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
17057
17058uint __ovld amd_msad(uint src0, uint src1, uint src2);
17059uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
17060uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
17061uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
17062uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
17063uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
17064
17065uint __ovld amd_sadd(uint src0, uint src1, uint src2);
17066uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
17067uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
17068uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
17069uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
17070uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
17071
17072uint __ovld amd_sadw(uint src0, uint src1, uint src2);
17073uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
17074uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
17075uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
17076uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
17077uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17078#endif // cl_amd_media_ops2
17079
Yaxun Liue8f49b92016-05-30 02:22:28 +000017080// Disable any extensions we may have enabled previously.
17081#pragma OPENCL EXTENSION all : disable
17082
17083#undef __cnfn
17084#undef __ovld
17085#endif //_OPENCL_H_