blob: ddd2cdebd04d2019314b860938ddf1f22b0c4995 [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
19#define __ovld __attribute__((overloadable))
20
21// Optimizations
Alexey Badere5b3aeb2016-06-29 12:30:26 +000022#define __purefn __attribute__((pure))
Yaxun Liue8f49b92016-05-30 02:22:28 +000023#define __cnfn __attribute__((const))
24
25// built-in scalar data types:
26
27/**
28 * An unsigned 8-bit integer.
29 */
30typedef unsigned char uchar;
31
32/**
33 * An unsigned 16-bit integer.
34 */
35typedef unsigned short ushort;
36
37/**
38 * An unsigned 32-bit integer.
39 */
40typedef unsigned int uint;
41
42/**
43 * An unsigned 64-bit integer.
44 */
45typedef unsigned long ulong;
46
47/**
48 * The unsigned integer type of the result of the sizeof operator. This
49 * is a 32-bit unsigned integer if CL_DEVICE_ADDRESS_BITS
50 * defined in table 4.3 is 32-bits and is a 64-bit unsigned integer if
51 * CL_DEVICE_ADDRESS_BITS is 64-bits.
52 */
53typedef __SIZE_TYPE__ size_t;
54
55/**
56 * A signed integer type that is the result of subtracting two pointers.
57 * This is a 32-bit signed integer if CL_DEVICE_ADDRESS_BITS
58 * defined in table 4.3 is 32-bits and is a 64-bit signed integer if
59 * CL_DEVICE_ADDRESS_BITS is 64-bits.
60 */
61typedef __PTRDIFF_TYPE__ ptrdiff_t;
62
63/**
64* A signed integer type with the property that any valid pointer to
65* void can be converted to this type, then converted back to pointer
66* to void, and the result will compare equal to the original pointer.
67*/
68typedef __INTPTR_TYPE__ intptr_t;
69
70/**
71* An unsigned integer type with the property that any valid pointer to
72* void can be converted to this type, then converted back to pointer
73* to void, and the result will compare equal to the original pointer.
74*/
75typedef __UINTPTR_TYPE__ uintptr_t;
76
77// built-in vector data types:
78typedef char char2 __attribute__((ext_vector_type(2)));
79typedef char char3 __attribute__((ext_vector_type(3)));
80typedef char char4 __attribute__((ext_vector_type(4)));
81typedef char char8 __attribute__((ext_vector_type(8)));
82typedef char char16 __attribute__((ext_vector_type(16)));
83typedef uchar uchar2 __attribute__((ext_vector_type(2)));
84typedef uchar uchar3 __attribute__((ext_vector_type(3)));
85typedef uchar uchar4 __attribute__((ext_vector_type(4)));
86typedef uchar uchar8 __attribute__((ext_vector_type(8)));
87typedef uchar uchar16 __attribute__((ext_vector_type(16)));
88typedef short short2 __attribute__((ext_vector_type(2)));
89typedef short short3 __attribute__((ext_vector_type(3)));
90typedef short short4 __attribute__((ext_vector_type(4)));
91typedef short short8 __attribute__((ext_vector_type(8)));
92typedef short short16 __attribute__((ext_vector_type(16)));
93typedef ushort ushort2 __attribute__((ext_vector_type(2)));
94typedef ushort ushort3 __attribute__((ext_vector_type(3)));
95typedef ushort ushort4 __attribute__((ext_vector_type(4)));
96typedef ushort ushort8 __attribute__((ext_vector_type(8)));
97typedef ushort ushort16 __attribute__((ext_vector_type(16)));
98typedef int int2 __attribute__((ext_vector_type(2)));
99typedef int int3 __attribute__((ext_vector_type(3)));
100typedef int int4 __attribute__((ext_vector_type(4)));
101typedef int int8 __attribute__((ext_vector_type(8)));
102typedef int int16 __attribute__((ext_vector_type(16)));
103typedef uint uint2 __attribute__((ext_vector_type(2)));
104typedef uint uint3 __attribute__((ext_vector_type(3)));
105typedef uint uint4 __attribute__((ext_vector_type(4)));
106typedef uint uint8 __attribute__((ext_vector_type(8)));
107typedef uint uint16 __attribute__((ext_vector_type(16)));
108typedef long long2 __attribute__((ext_vector_type(2)));
109typedef long long3 __attribute__((ext_vector_type(3)));
110typedef long long4 __attribute__((ext_vector_type(4)));
111typedef long long8 __attribute__((ext_vector_type(8)));
112typedef long long16 __attribute__((ext_vector_type(16)));
113typedef ulong ulong2 __attribute__((ext_vector_type(2)));
114typedef ulong ulong3 __attribute__((ext_vector_type(3)));
115typedef ulong ulong4 __attribute__((ext_vector_type(4)));
116typedef ulong ulong8 __attribute__((ext_vector_type(8)));
117typedef ulong ulong16 __attribute__((ext_vector_type(16)));
118typedef float float2 __attribute__((ext_vector_type(2)));
119typedef float float3 __attribute__((ext_vector_type(3)));
120typedef float float4 __attribute__((ext_vector_type(4)));
121typedef float float8 __attribute__((ext_vector_type(8)));
122typedef float float16 __attribute__((ext_vector_type(16)));
123#ifdef cl_khr_fp16
124#pragma OPENCL EXTENSION cl_khr_fp16 : enable
125typedef half half2 __attribute__((ext_vector_type(2)));
126typedef half half3 __attribute__((ext_vector_type(3)));
127typedef half half4 __attribute__((ext_vector_type(4)));
128typedef half half8 __attribute__((ext_vector_type(8)));
129typedef half half16 __attribute__((ext_vector_type(16)));
130#endif
131#ifdef cl_khr_fp64
132#if __OPENCL_C_VERSION__ < CL_VERSION_1_2
133#pragma OPENCL EXTENSION cl_khr_fp64 : enable
134#endif
135typedef double double2 __attribute__((ext_vector_type(2)));
136typedef double double3 __attribute__((ext_vector_type(3)));
137typedef double double4 __attribute__((ext_vector_type(4)));
138typedef double double8 __attribute__((ext_vector_type(8)));
139typedef double double16 __attribute__((ext_vector_type(16)));
140#endif
141
142#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
143#define NULL ((void*)0)
144#endif
145
146/**
147 * Value of maximum non-infinite single-precision floating-point
148 * number.
149 */
150#define MAXFLOAT 0x1.fffffep127f
151
152/**
153 * A positive float constant expression. HUGE_VALF evaluates
154 * to +infinity. Used as an error value returned by the built-in
155 * math functions.
156 */
157#define HUGE_VALF (__builtin_huge_valf())
158
159/**
160 * A positive double constant expression. HUGE_VAL evaluates
161 * to +infinity. Used as an error value returned by the built-in
162 * math functions.
163 */
164#define HUGE_VAL (__builtin_huge_val())
165
166/**
167 * A constant expression of type float representing positive or
168 * unsigned infinity.
169 */
170#define INFINITY (__builtin_inff())
171
172/**
173 * A constant expression of type float representing a quiet NaN.
174 */
175#define NAN as_float(INT_MAX)
176
177#define FP_ILOGB0 INT_MIN
178#define FP_ILOGBNAN INT_MAX
179
180#define FLT_DIG 6
181#define FLT_MANT_DIG 24
182#define FLT_MAX_10_EXP +38
183#define FLT_MAX_EXP +128
184#define FLT_MIN_10_EXP -37
185#define FLT_MIN_EXP -125
186#define FLT_RADIX 2
187#define FLT_MAX 0x1.fffffep127f
188#define FLT_MIN 0x1.0p-126f
189#define FLT_EPSILON 0x1.0p-23f
190
191#define M_E_F 2.71828182845904523536028747135266250f
192#define M_LOG2E_F 1.44269504088896340735992468100189214f
193#define M_LOG10E_F 0.434294481903251827651128918916605082f
194#define M_LN2_F 0.693147180559945309417232121458176568f
195#define M_LN10_F 2.30258509299404568401799145468436421f
196#define M_PI_F 3.14159265358979323846264338327950288f
197#define M_PI_2_F 1.57079632679489661923132169163975144f
198#define M_PI_4_F 0.785398163397448309615660845819875721f
199#define M_1_PI_F 0.318309886183790671537767526745028724f
200#define M_2_PI_F 0.636619772367581343075535053490057448f
201#define M_2_SQRTPI_F 1.12837916709551257389615890312154517f
202#define M_SQRT2_F 1.41421356237309504880168872420969808f
203#define M_SQRT1_2_F 0.707106781186547524400844362104849039f
204
205#define DBL_DIG 15
206#define DBL_MANT_DIG 53
207#define DBL_MAX_10_EXP +308
208#define DBL_MAX_EXP +1024
209#define DBL_MIN_10_EXP -307
210#define DBL_MIN_EXP -1021
211#define DBL_RADIX 2
212#define DBL_MAX 0x1.fffffffffffffp1023
213#define DBL_MIN 0x1.0p-1022
214#define DBL_EPSILON 0x1.0p-52
215
216#define M_E 0x1.5bf0a8b145769p+1
217#define M_LOG2E 0x1.71547652b82fep+0
218#define M_LOG10E 0x1.bcb7b1526e50ep-2
219#define M_LN2 0x1.62e42fefa39efp-1
220#define M_LN10 0x1.26bb1bbb55516p+1
221#define M_PI 0x1.921fb54442d18p+1
222#define M_PI_2 0x1.921fb54442d18p+0
223#define M_PI_4 0x1.921fb54442d18p-1
224#define M_1_PI 0x1.45f306dc9c883p-2
225#define M_2_PI 0x1.45f306dc9c883p-1
226#define M_2_SQRTPI 0x1.20dd750429b6dp+0
227#define M_SQRT2 0x1.6a09e667f3bcdp+0
228#define M_SQRT1_2 0x1.6a09e667f3bcdp-1
229
230#ifdef cl_khr_fp16
231
232#define HALF_DIG 3
233#define HALF_MANT_DIG 11
234#define HALF_MAX_10_EXP +4
235#define HALF_MAX_EXP +16
236#define HALF_MIN_10_EXP -4
237#define HALF_MIN_EXP -13
238#define HALF_RADIX 2
239#define HALF_MAX ((0x1.ffcp15h))
240#define HALF_MIN ((0x1.0p-14h))
241#define HALF_EPSILON ((0x1.0p-10h))
242
243#define M_E_H 2.71828182845904523536028747135266250h
244#define M_LOG2E_H 1.44269504088896340735992468100189214h
245#define M_LOG10E_H 0.434294481903251827651128918916605082h
246#define M_LN2_H 0.693147180559945309417232121458176568h
247#define M_LN10_H 2.30258509299404568401799145468436421h
248#define M_PI_H 3.14159265358979323846264338327950288h
249#define M_PI_2_H 1.57079632679489661923132169163975144h
250#define M_PI_4_H 0.785398163397448309615660845819875721h
251#define M_1_PI_H 0.318309886183790671537767526745028724h
252#define M_2_PI_H 0.636619772367581343075535053490057448h
253#define M_2_SQRTPI_H 1.12837916709551257389615890312154517h
254#define M_SQRT2_H 1.41421356237309504880168872420969808h
255#define M_SQRT1_2_H 0.707106781186547524400844362104849039h
256
257#endif //cl_khr_fp16
258
259#define CHAR_BIT 8
260#define SCHAR_MAX 127
261#define SCHAR_MIN (-128)
262#define UCHAR_MAX 255
263#define CHAR_MAX SCHAR_MAX
264#define CHAR_MIN SCHAR_MIN
265#define USHRT_MAX 65535
266#define SHRT_MAX 32767
267#define SHRT_MIN (-32768)
268#define UINT_MAX 0xffffffff
269#define INT_MAX 2147483647
270#define INT_MIN (-2147483647-1)
271#define ULONG_MAX 0xffffffffffffffffUL
272#define LONG_MAX 0x7fffffffffffffffL
273#define LONG_MIN (-0x7fffffffffffffffL-1)
274
275// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
276
277char __ovld __cnfn convert_char_rte(char);
278char __ovld __cnfn convert_char_sat_rte(char);
279char __ovld __cnfn convert_char_rtz(char);
280char __ovld __cnfn convert_char_sat_rtz(char);
281char __ovld __cnfn convert_char_rtp(char);
282char __ovld __cnfn convert_char_sat_rtp(char);
283char __ovld __cnfn convert_char_rtn(char);
284char __ovld __cnfn convert_char_sat_rtn(char);
285char __ovld __cnfn convert_char(char);
286char __ovld __cnfn convert_char_sat(char);
287char __ovld __cnfn convert_char_rte(uchar);
288char __ovld __cnfn convert_char_sat_rte(uchar);
289char __ovld __cnfn convert_char_rtz(uchar);
290char __ovld __cnfn convert_char_sat_rtz(uchar);
291char __ovld __cnfn convert_char_rtp(uchar);
292char __ovld __cnfn convert_char_sat_rtp(uchar);
293char __ovld __cnfn convert_char_rtn(uchar);
294char __ovld __cnfn convert_char_sat_rtn(uchar);
295char __ovld __cnfn convert_char(uchar);
296char __ovld __cnfn convert_char_sat(uchar);
297char __ovld __cnfn convert_char_rte(short);
298char __ovld __cnfn convert_char_sat_rte(short);
299char __ovld __cnfn convert_char_rtz(short);
300char __ovld __cnfn convert_char_sat_rtz(short);
301char __ovld __cnfn convert_char_rtp(short);
302char __ovld __cnfn convert_char_sat_rtp(short);
303char __ovld __cnfn convert_char_rtn(short);
304char __ovld __cnfn convert_char_sat_rtn(short);
305char __ovld __cnfn convert_char(short);
306char __ovld __cnfn convert_char_sat(short);
307char __ovld __cnfn convert_char_rte(ushort);
308char __ovld __cnfn convert_char_sat_rte(ushort);
309char __ovld __cnfn convert_char_rtz(ushort);
310char __ovld __cnfn convert_char_sat_rtz(ushort);
311char __ovld __cnfn convert_char_rtp(ushort);
312char __ovld __cnfn convert_char_sat_rtp(ushort);
313char __ovld __cnfn convert_char_rtn(ushort);
314char __ovld __cnfn convert_char_sat_rtn(ushort);
315char __ovld __cnfn convert_char(ushort);
316char __ovld __cnfn convert_char_sat(ushort);
317char __ovld __cnfn convert_char_rte(int);
318char __ovld __cnfn convert_char_sat_rte(int);
319char __ovld __cnfn convert_char_rtz(int);
320char __ovld __cnfn convert_char_sat_rtz(int);
321char __ovld __cnfn convert_char_rtp(int);
322char __ovld __cnfn convert_char_sat_rtp(int);
323char __ovld __cnfn convert_char_rtn(int);
324char __ovld __cnfn convert_char_sat_rtn(int);
325char __ovld __cnfn convert_char(int);
326char __ovld __cnfn convert_char_sat(int);
327char __ovld __cnfn convert_char_rte(uint);
328char __ovld __cnfn convert_char_sat_rte(uint);
329char __ovld __cnfn convert_char_rtz(uint);
330char __ovld __cnfn convert_char_sat_rtz(uint);
331char __ovld __cnfn convert_char_rtp(uint);
332char __ovld __cnfn convert_char_sat_rtp(uint);
333char __ovld __cnfn convert_char_rtn(uint);
334char __ovld __cnfn convert_char_sat_rtn(uint);
335char __ovld __cnfn convert_char(uint);
336char __ovld __cnfn convert_char_sat(uint);
337char __ovld __cnfn convert_char_rte(long);
338char __ovld __cnfn convert_char_sat_rte(long);
339char __ovld __cnfn convert_char_rtz(long);
340char __ovld __cnfn convert_char_sat_rtz(long);
341char __ovld __cnfn convert_char_rtp(long);
342char __ovld __cnfn convert_char_sat_rtp(long);
343char __ovld __cnfn convert_char_rtn(long);
344char __ovld __cnfn convert_char_sat_rtn(long);
345char __ovld __cnfn convert_char(long);
346char __ovld __cnfn convert_char_sat(long);
347char __ovld __cnfn convert_char_rte(ulong);
348char __ovld __cnfn convert_char_sat_rte(ulong);
349char __ovld __cnfn convert_char_rtz(ulong);
350char __ovld __cnfn convert_char_sat_rtz(ulong);
351char __ovld __cnfn convert_char_rtp(ulong);
352char __ovld __cnfn convert_char_sat_rtp(ulong);
353char __ovld __cnfn convert_char_rtn(ulong);
354char __ovld __cnfn convert_char_sat_rtn(ulong);
355char __ovld __cnfn convert_char(ulong);
356char __ovld __cnfn convert_char_sat(ulong);
357char __ovld __cnfn convert_char_rte(float);
358char __ovld __cnfn convert_char_sat_rte(float);
359char __ovld __cnfn convert_char_rtz(float);
360char __ovld __cnfn convert_char_sat_rtz(float);
361char __ovld __cnfn convert_char_rtp(float);
362char __ovld __cnfn convert_char_sat_rtp(float);
363char __ovld __cnfn convert_char_rtn(float);
364char __ovld __cnfn convert_char_sat_rtn(float);
365char __ovld __cnfn convert_char(float);
366char __ovld __cnfn convert_char_sat(float);
367uchar __ovld __cnfn convert_uchar_rte(char);
368uchar __ovld __cnfn convert_uchar_sat_rte(char);
369uchar __ovld __cnfn convert_uchar_rtz(char);
370uchar __ovld __cnfn convert_uchar_sat_rtz(char);
371uchar __ovld __cnfn convert_uchar_rtp(char);
372uchar __ovld __cnfn convert_uchar_sat_rtp(char);
373uchar __ovld __cnfn convert_uchar_rtn(char);
374uchar __ovld __cnfn convert_uchar_sat_rtn(char);
375uchar __ovld __cnfn convert_uchar(char);
376uchar __ovld __cnfn convert_uchar_sat(char);
377uchar __ovld __cnfn convert_uchar_rte(uchar);
378uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
379uchar __ovld __cnfn convert_uchar_rtz(uchar);
380uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
381uchar __ovld __cnfn convert_uchar_rtp(uchar);
382uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
383uchar __ovld __cnfn convert_uchar_rtn(uchar);
384uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
385uchar __ovld __cnfn convert_uchar(uchar);
386uchar __ovld __cnfn convert_uchar_sat(uchar);
387uchar __ovld __cnfn convert_uchar_rte(short);
388uchar __ovld __cnfn convert_uchar_sat_rte(short);
389uchar __ovld __cnfn convert_uchar_rtz(short);
390uchar __ovld __cnfn convert_uchar_sat_rtz(short);
391uchar __ovld __cnfn convert_uchar_rtp(short);
392uchar __ovld __cnfn convert_uchar_sat_rtp(short);
393uchar __ovld __cnfn convert_uchar_rtn(short);
394uchar __ovld __cnfn convert_uchar_sat_rtn(short);
395uchar __ovld __cnfn convert_uchar(short);
396uchar __ovld __cnfn convert_uchar_sat(short);
397uchar __ovld __cnfn convert_uchar_rte(ushort);
398uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
399uchar __ovld __cnfn convert_uchar_rtz(ushort);
400uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
401uchar __ovld __cnfn convert_uchar_rtp(ushort);
402uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
403uchar __ovld __cnfn convert_uchar_rtn(ushort);
404uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
405uchar __ovld __cnfn convert_uchar(ushort);
406uchar __ovld __cnfn convert_uchar_sat(ushort);
407uchar __ovld __cnfn convert_uchar_rte(int);
408uchar __ovld __cnfn convert_uchar_sat_rte(int);
409uchar __ovld __cnfn convert_uchar_rtz(int);
410uchar __ovld __cnfn convert_uchar_sat_rtz(int);
411uchar __ovld __cnfn convert_uchar_rtp(int);
412uchar __ovld __cnfn convert_uchar_sat_rtp(int);
413uchar __ovld __cnfn convert_uchar_rtn(int);
414uchar __ovld __cnfn convert_uchar_sat_rtn(int);
415uchar __ovld __cnfn convert_uchar(int);
416uchar __ovld __cnfn convert_uchar_sat(int);
417uchar __ovld __cnfn convert_uchar_rte(uint);
418uchar __ovld __cnfn convert_uchar_sat_rte(uint);
419uchar __ovld __cnfn convert_uchar_rtz(uint);
420uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
421uchar __ovld __cnfn convert_uchar_rtp(uint);
422uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
423uchar __ovld __cnfn convert_uchar_rtn(uint);
424uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
425uchar __ovld __cnfn convert_uchar(uint);
426uchar __ovld __cnfn convert_uchar_sat(uint);
427uchar __ovld __cnfn convert_uchar_rte(long);
428uchar __ovld __cnfn convert_uchar_sat_rte(long);
429uchar __ovld __cnfn convert_uchar_rtz(long);
430uchar __ovld __cnfn convert_uchar_sat_rtz(long);
431uchar __ovld __cnfn convert_uchar_rtp(long);
432uchar __ovld __cnfn convert_uchar_sat_rtp(long);
433uchar __ovld __cnfn convert_uchar_rtn(long);
434uchar __ovld __cnfn convert_uchar_sat_rtn(long);
435uchar __ovld __cnfn convert_uchar(long);
436uchar __ovld __cnfn convert_uchar_sat(long);
437uchar __ovld __cnfn convert_uchar_rte(ulong);
438uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
439uchar __ovld __cnfn convert_uchar_rtz(ulong);
440uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
441uchar __ovld __cnfn convert_uchar_rtp(ulong);
442uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
443uchar __ovld __cnfn convert_uchar_rtn(ulong);
444uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
445uchar __ovld __cnfn convert_uchar(ulong);
446uchar __ovld __cnfn convert_uchar_sat(ulong);
447uchar __ovld __cnfn convert_uchar_rte(float);
448uchar __ovld __cnfn convert_uchar_sat_rte(float);
449uchar __ovld __cnfn convert_uchar_rtz(float);
450uchar __ovld __cnfn convert_uchar_sat_rtz(float);
451uchar __ovld __cnfn convert_uchar_rtp(float);
452uchar __ovld __cnfn convert_uchar_sat_rtp(float);
453uchar __ovld __cnfn convert_uchar_rtn(float);
454uchar __ovld __cnfn convert_uchar_sat_rtn(float);
455uchar __ovld __cnfn convert_uchar(float);
456uchar __ovld __cnfn convert_uchar_sat(float);
457
458short __ovld __cnfn convert_short_rte(char);
459short __ovld __cnfn convert_short_sat_rte(char);
460short __ovld __cnfn convert_short_rtz(char);
461short __ovld __cnfn convert_short_sat_rtz(char);
462short __ovld __cnfn convert_short_rtp(char);
463short __ovld __cnfn convert_short_sat_rtp(char);
464short __ovld __cnfn convert_short_rtn(char);
465short __ovld __cnfn convert_short_sat_rtn(char);
466short __ovld __cnfn convert_short(char);
467short __ovld __cnfn convert_short_sat(char);
468short __ovld __cnfn convert_short_rte(uchar);
469short __ovld __cnfn convert_short_sat_rte(uchar);
470short __ovld __cnfn convert_short_rtz(uchar);
471short __ovld __cnfn convert_short_sat_rtz(uchar);
472short __ovld __cnfn convert_short_rtp(uchar);
473short __ovld __cnfn convert_short_sat_rtp(uchar);
474short __ovld __cnfn convert_short_rtn(uchar);
475short __ovld __cnfn convert_short_sat_rtn(uchar);
476short __ovld __cnfn convert_short(uchar);
477short __ovld __cnfn convert_short_sat(uchar);
478short __ovld __cnfn convert_short_rte(short);
479short __ovld __cnfn convert_short_sat_rte(short);
480short __ovld __cnfn convert_short_rtz(short);
481short __ovld __cnfn convert_short_sat_rtz(short);
482short __ovld __cnfn convert_short_rtp(short);
483short __ovld __cnfn convert_short_sat_rtp(short);
484short __ovld __cnfn convert_short_rtn(short);
485short __ovld __cnfn convert_short_sat_rtn(short);
486short __ovld __cnfn convert_short(short);
487short __ovld __cnfn convert_short_sat(short);
488short __ovld __cnfn convert_short_rte(ushort);
489short __ovld __cnfn convert_short_sat_rte(ushort);
490short __ovld __cnfn convert_short_rtz(ushort);
491short __ovld __cnfn convert_short_sat_rtz(ushort);
492short __ovld __cnfn convert_short_rtp(ushort);
493short __ovld __cnfn convert_short_sat_rtp(ushort);
494short __ovld __cnfn convert_short_rtn(ushort);
495short __ovld __cnfn convert_short_sat_rtn(ushort);
496short __ovld __cnfn convert_short(ushort);
497short __ovld __cnfn convert_short_sat(ushort);
498short __ovld __cnfn convert_short_rte(int);
499short __ovld __cnfn convert_short_sat_rte(int);
500short __ovld __cnfn convert_short_rtz(int);
501short __ovld __cnfn convert_short_sat_rtz(int);
502short __ovld __cnfn convert_short_rtp(int);
503short __ovld __cnfn convert_short_sat_rtp(int);
504short __ovld __cnfn convert_short_rtn(int);
505short __ovld __cnfn convert_short_sat_rtn(int);
506short __ovld __cnfn convert_short(int);
507short __ovld __cnfn convert_short_sat(int);
508short __ovld __cnfn convert_short_rte(uint);
509short __ovld __cnfn convert_short_sat_rte(uint);
510short __ovld __cnfn convert_short_rtz(uint);
511short __ovld __cnfn convert_short_sat_rtz(uint);
512short __ovld __cnfn convert_short_rtp(uint);
513short __ovld __cnfn convert_short_sat_rtp(uint);
514short __ovld __cnfn convert_short_rtn(uint);
515short __ovld __cnfn convert_short_sat_rtn(uint);
516short __ovld __cnfn convert_short(uint);
517short __ovld __cnfn convert_short_sat(uint);
518short __ovld __cnfn convert_short_rte(long);
519short __ovld __cnfn convert_short_sat_rte(long);
520short __ovld __cnfn convert_short_rtz(long);
521short __ovld __cnfn convert_short_sat_rtz(long);
522short __ovld __cnfn convert_short_rtp(long);
523short __ovld __cnfn convert_short_sat_rtp(long);
524short __ovld __cnfn convert_short_rtn(long);
525short __ovld __cnfn convert_short_sat_rtn(long);
526short __ovld __cnfn convert_short(long);
527short __ovld __cnfn convert_short_sat(long);
528short __ovld __cnfn convert_short_rte(ulong);
529short __ovld __cnfn convert_short_sat_rte(ulong);
530short __ovld __cnfn convert_short_rtz(ulong);
531short __ovld __cnfn convert_short_sat_rtz(ulong);
532short __ovld __cnfn convert_short_rtp(ulong);
533short __ovld __cnfn convert_short_sat_rtp(ulong);
534short __ovld __cnfn convert_short_rtn(ulong);
535short __ovld __cnfn convert_short_sat_rtn(ulong);
536short __ovld __cnfn convert_short(ulong);
537short __ovld __cnfn convert_short_sat(ulong);
538short __ovld __cnfn convert_short_rte(float);
539short __ovld __cnfn convert_short_sat_rte(float);
540short __ovld __cnfn convert_short_rtz(float);
541short __ovld __cnfn convert_short_sat_rtz(float);
542short __ovld __cnfn convert_short_rtp(float);
543short __ovld __cnfn convert_short_sat_rtp(float);
544short __ovld __cnfn convert_short_rtn(float);
545short __ovld __cnfn convert_short_sat_rtn(float);
546short __ovld __cnfn convert_short(float);
547short __ovld __cnfn convert_short_sat(float);
548ushort __ovld __cnfn convert_ushort_rte(char);
549ushort __ovld __cnfn convert_ushort_sat_rte(char);
550ushort __ovld __cnfn convert_ushort_rtz(char);
551ushort __ovld __cnfn convert_ushort_sat_rtz(char);
552ushort __ovld __cnfn convert_ushort_rtp(char);
553ushort __ovld __cnfn convert_ushort_sat_rtp(char);
554ushort __ovld __cnfn convert_ushort_rtn(char);
555ushort __ovld __cnfn convert_ushort_sat_rtn(char);
556ushort __ovld __cnfn convert_ushort(char);
557ushort __ovld __cnfn convert_ushort_sat(char);
558ushort __ovld __cnfn convert_ushort_rte(uchar);
559ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
560ushort __ovld __cnfn convert_ushort_rtz(uchar);
561ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
562ushort __ovld __cnfn convert_ushort_rtp(uchar);
563ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
564ushort __ovld __cnfn convert_ushort_rtn(uchar);
565ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
566ushort __ovld __cnfn convert_ushort(uchar);
567ushort __ovld __cnfn convert_ushort_sat(uchar);
568ushort __ovld __cnfn convert_ushort_rte(short);
569ushort __ovld __cnfn convert_ushort_sat_rte(short);
570ushort __ovld __cnfn convert_ushort_rtz(short);
571ushort __ovld __cnfn convert_ushort_sat_rtz(short);
572ushort __ovld __cnfn convert_ushort_rtp(short);
573ushort __ovld __cnfn convert_ushort_sat_rtp(short);
574ushort __ovld __cnfn convert_ushort_rtn(short);
575ushort __ovld __cnfn convert_ushort_sat_rtn(short);
576ushort __ovld __cnfn convert_ushort(short);
577ushort __ovld __cnfn convert_ushort_sat(short);
578ushort __ovld __cnfn convert_ushort_rte(ushort);
579ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
580ushort __ovld __cnfn convert_ushort_rtz(ushort);
581ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
582ushort __ovld __cnfn convert_ushort_rtp(ushort);
583ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
584ushort __ovld __cnfn convert_ushort_rtn(ushort);
585ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
586ushort __ovld __cnfn convert_ushort(ushort);
587ushort __ovld __cnfn convert_ushort_sat(ushort);
588ushort __ovld __cnfn convert_ushort_rte(int);
589ushort __ovld __cnfn convert_ushort_sat_rte(int);
590ushort __ovld __cnfn convert_ushort_rtz(int);
591ushort __ovld __cnfn convert_ushort_sat_rtz(int);
592ushort __ovld __cnfn convert_ushort_rtp(int);
593ushort __ovld __cnfn convert_ushort_sat_rtp(int);
594ushort __ovld __cnfn convert_ushort_rtn(int);
595ushort __ovld __cnfn convert_ushort_sat_rtn(int);
596ushort __ovld __cnfn convert_ushort(int);
597ushort __ovld __cnfn convert_ushort_sat(int);
598ushort __ovld __cnfn convert_ushort_rte(uint);
599ushort __ovld __cnfn convert_ushort_sat_rte(uint);
600ushort __ovld __cnfn convert_ushort_rtz(uint);
601ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
602ushort __ovld __cnfn convert_ushort_rtp(uint);
603ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
604ushort __ovld __cnfn convert_ushort_rtn(uint);
605ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
606ushort __ovld __cnfn convert_ushort(uint);
607ushort __ovld __cnfn convert_ushort_sat(uint);
608ushort __ovld __cnfn convert_ushort_rte(long);
609ushort __ovld __cnfn convert_ushort_sat_rte(long);
610ushort __ovld __cnfn convert_ushort_rtz(long);
611ushort __ovld __cnfn convert_ushort_sat_rtz(long);
612ushort __ovld __cnfn convert_ushort_rtp(long);
613ushort __ovld __cnfn convert_ushort_sat_rtp(long);
614ushort __ovld __cnfn convert_ushort_rtn(long);
615ushort __ovld __cnfn convert_ushort_sat_rtn(long);
616ushort __ovld __cnfn convert_ushort(long);
617ushort __ovld __cnfn convert_ushort_sat(long);
618ushort __ovld __cnfn convert_ushort_rte(ulong);
619ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
620ushort __ovld __cnfn convert_ushort_rtz(ulong);
621ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
622ushort __ovld __cnfn convert_ushort_rtp(ulong);
623ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
624ushort __ovld __cnfn convert_ushort_rtn(ulong);
625ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
626ushort __ovld __cnfn convert_ushort(ulong);
627ushort __ovld __cnfn convert_ushort_sat(ulong);
628ushort __ovld __cnfn convert_ushort_rte(float);
629ushort __ovld __cnfn convert_ushort_sat_rte(float);
630ushort __ovld __cnfn convert_ushort_rtz(float);
631ushort __ovld __cnfn convert_ushort_sat_rtz(float);
632ushort __ovld __cnfn convert_ushort_rtp(float);
633ushort __ovld __cnfn convert_ushort_sat_rtp(float);
634ushort __ovld __cnfn convert_ushort_rtn(float);
635ushort __ovld __cnfn convert_ushort_sat_rtn(float);
636ushort __ovld __cnfn convert_ushort(float);
637ushort __ovld __cnfn convert_ushort_sat(float);
638int __ovld __cnfn convert_int_rte(char);
639int __ovld __cnfn convert_int_sat_rte(char);
640int __ovld __cnfn convert_int_rtz(char);
641int __ovld __cnfn convert_int_sat_rtz(char);
642int __ovld __cnfn convert_int_rtp(char);
643int __ovld __cnfn convert_int_sat_rtp(char);
644int __ovld __cnfn convert_int_rtn(char);
645int __ovld __cnfn convert_int_sat_rtn(char);
646int __ovld __cnfn convert_int(char);
647int __ovld __cnfn convert_int_sat(char);
648int __ovld __cnfn convert_int_rte(uchar);
649int __ovld __cnfn convert_int_sat_rte(uchar);
650int __ovld __cnfn convert_int_rtz(uchar);
651int __ovld __cnfn convert_int_sat_rtz(uchar);
652int __ovld __cnfn convert_int_rtp(uchar);
653int __ovld __cnfn convert_int_sat_rtp(uchar);
654int __ovld __cnfn convert_int_rtn(uchar);
655int __ovld __cnfn convert_int_sat_rtn(uchar);
656int __ovld __cnfn convert_int(uchar);
657int __ovld __cnfn convert_int_sat(uchar);
658int __ovld __cnfn convert_int_rte(short);
659int __ovld __cnfn convert_int_sat_rte(short);
660int __ovld __cnfn convert_int_rtz(short);
661int __ovld __cnfn convert_int_sat_rtz(short);
662int __ovld __cnfn convert_int_rtp(short);
663int __ovld __cnfn convert_int_sat_rtp(short);
664int __ovld __cnfn convert_int_rtn(short);
665int __ovld __cnfn convert_int_sat_rtn(short);
666int __ovld __cnfn convert_int(short);
667int __ovld __cnfn convert_int_sat(short);
668int __ovld __cnfn convert_int_rte(ushort);
669int __ovld __cnfn convert_int_sat_rte(ushort);
670int __ovld __cnfn convert_int_rtz(ushort);
671int __ovld __cnfn convert_int_sat_rtz(ushort);
672int __ovld __cnfn convert_int_rtp(ushort);
673int __ovld __cnfn convert_int_sat_rtp(ushort);
674int __ovld __cnfn convert_int_rtn(ushort);
675int __ovld __cnfn convert_int_sat_rtn(ushort);
676int __ovld __cnfn convert_int(ushort);
677int __ovld __cnfn convert_int_sat(ushort);
678int __ovld __cnfn convert_int_rte(int);
679int __ovld __cnfn convert_int_sat_rte(int);
680int __ovld __cnfn convert_int_rtz(int);
681int __ovld __cnfn convert_int_sat_rtz(int);
682int __ovld __cnfn convert_int_rtp(int);
683int __ovld __cnfn convert_int_sat_rtp(int);
684int __ovld __cnfn convert_int_rtn(int);
685int __ovld __cnfn convert_int_sat_rtn(int);
686int __ovld __cnfn convert_int(int);
687int __ovld __cnfn convert_int_sat(int);
688int __ovld __cnfn convert_int_rte(uint);
689int __ovld __cnfn convert_int_sat_rte(uint);
690int __ovld __cnfn convert_int_rtz(uint);
691int __ovld __cnfn convert_int_sat_rtz(uint);
692int __ovld __cnfn convert_int_rtp(uint);
693int __ovld __cnfn convert_int_sat_rtp(uint);
694int __ovld __cnfn convert_int_rtn(uint);
695int __ovld __cnfn convert_int_sat_rtn(uint);
696int __ovld __cnfn convert_int(uint);
697int __ovld __cnfn convert_int_sat(uint);
698int __ovld __cnfn convert_int_rte(long);
699int __ovld __cnfn convert_int_sat_rte(long);
700int __ovld __cnfn convert_int_rtz(long);
701int __ovld __cnfn convert_int_sat_rtz(long);
702int __ovld __cnfn convert_int_rtp(long);
703int __ovld __cnfn convert_int_sat_rtp(long);
704int __ovld __cnfn convert_int_rtn(long);
705int __ovld __cnfn convert_int_sat_rtn(long);
706int __ovld __cnfn convert_int(long);
707int __ovld __cnfn convert_int_sat(long);
708int __ovld __cnfn convert_int_rte(ulong);
709int __ovld __cnfn convert_int_sat_rte(ulong);
710int __ovld __cnfn convert_int_rtz(ulong);
711int __ovld __cnfn convert_int_sat_rtz(ulong);
712int __ovld __cnfn convert_int_rtp(ulong);
713int __ovld __cnfn convert_int_sat_rtp(ulong);
714int __ovld __cnfn convert_int_rtn(ulong);
715int __ovld __cnfn convert_int_sat_rtn(ulong);
716int __ovld __cnfn convert_int(ulong);
717int __ovld __cnfn convert_int_sat(ulong);
718int __ovld __cnfn convert_int_rte(float);
719int __ovld __cnfn convert_int_sat_rte(float);
720int __ovld __cnfn convert_int_rtz(float);
721int __ovld __cnfn convert_int_sat_rtz(float);
722int __ovld __cnfn convert_int_rtp(float);
723int __ovld __cnfn convert_int_sat_rtp(float);
724int __ovld __cnfn convert_int_rtn(float);
725int __ovld __cnfn convert_int_sat_rtn(float);
726int __ovld __cnfn convert_int(float);
727int __ovld __cnfn convert_int_sat(float);
728uint __ovld __cnfn convert_uint_rte(char);
729uint __ovld __cnfn convert_uint_sat_rte(char);
730uint __ovld __cnfn convert_uint_rtz(char);
731uint __ovld __cnfn convert_uint_sat_rtz(char);
732uint __ovld __cnfn convert_uint_rtp(char);
733uint __ovld __cnfn convert_uint_sat_rtp(char);
734uint __ovld __cnfn convert_uint_rtn(char);
735uint __ovld __cnfn convert_uint_sat_rtn(char);
736uint __ovld __cnfn convert_uint(char);
737uint __ovld __cnfn convert_uint_sat(char);
738uint __ovld __cnfn convert_uint_rte(uchar);
739uint __ovld __cnfn convert_uint_sat_rte(uchar);
740uint __ovld __cnfn convert_uint_rtz(uchar);
741uint __ovld __cnfn convert_uint_sat_rtz(uchar);
742uint __ovld __cnfn convert_uint_rtp(uchar);
743uint __ovld __cnfn convert_uint_sat_rtp(uchar);
744uint __ovld __cnfn convert_uint_rtn(uchar);
745uint __ovld __cnfn convert_uint_sat_rtn(uchar);
746uint __ovld __cnfn convert_uint(uchar);
747uint __ovld __cnfn convert_uint_sat(uchar);
748uint __ovld __cnfn convert_uint_rte(short);
749uint __ovld __cnfn convert_uint_sat_rte(short);
750uint __ovld __cnfn convert_uint_rtz(short);
751uint __ovld __cnfn convert_uint_sat_rtz(short);
752uint __ovld __cnfn convert_uint_rtp(short);
753uint __ovld __cnfn convert_uint_sat_rtp(short);
754uint __ovld __cnfn convert_uint_rtn(short);
755uint __ovld __cnfn convert_uint_sat_rtn(short);
756uint __ovld __cnfn convert_uint(short);
757uint __ovld __cnfn convert_uint_sat(short);
758uint __ovld __cnfn convert_uint_rte(ushort);
759uint __ovld __cnfn convert_uint_sat_rte(ushort);
760uint __ovld __cnfn convert_uint_rtz(ushort);
761uint __ovld __cnfn convert_uint_sat_rtz(ushort);
762uint __ovld __cnfn convert_uint_rtp(ushort);
763uint __ovld __cnfn convert_uint_sat_rtp(ushort);
764uint __ovld __cnfn convert_uint_rtn(ushort);
765uint __ovld __cnfn convert_uint_sat_rtn(ushort);
766uint __ovld __cnfn convert_uint(ushort);
767uint __ovld __cnfn convert_uint_sat(ushort);
768uint __ovld __cnfn convert_uint_rte(int);
769uint __ovld __cnfn convert_uint_sat_rte(int);
770uint __ovld __cnfn convert_uint_rtz(int);
771uint __ovld __cnfn convert_uint_sat_rtz(int);
772uint __ovld __cnfn convert_uint_rtp(int);
773uint __ovld __cnfn convert_uint_sat_rtp(int);
774uint __ovld __cnfn convert_uint_rtn(int);
775uint __ovld __cnfn convert_uint_sat_rtn(int);
776uint __ovld __cnfn convert_uint(int);
777uint __ovld __cnfn convert_uint_sat(int);
778uint __ovld __cnfn convert_uint_rte(uint);
779uint __ovld __cnfn convert_uint_sat_rte(uint);
780uint __ovld __cnfn convert_uint_rtz(uint);
781uint __ovld __cnfn convert_uint_sat_rtz(uint);
782uint __ovld __cnfn convert_uint_rtp(uint);
783uint __ovld __cnfn convert_uint_sat_rtp(uint);
784uint __ovld __cnfn convert_uint_rtn(uint);
785uint __ovld __cnfn convert_uint_sat_rtn(uint);
786uint __ovld __cnfn convert_uint(uint);
787uint __ovld __cnfn convert_uint_sat(uint);
788uint __ovld __cnfn convert_uint_rte(long);
789uint __ovld __cnfn convert_uint_sat_rte(long);
790uint __ovld __cnfn convert_uint_rtz(long);
791uint __ovld __cnfn convert_uint_sat_rtz(long);
792uint __ovld __cnfn convert_uint_rtp(long);
793uint __ovld __cnfn convert_uint_sat_rtp(long);
794uint __ovld __cnfn convert_uint_rtn(long);
795uint __ovld __cnfn convert_uint_sat_rtn(long);
796uint __ovld __cnfn convert_uint(long);
797uint __ovld __cnfn convert_uint_sat(long);
798uint __ovld __cnfn convert_uint_rte(ulong);
799uint __ovld __cnfn convert_uint_sat_rte(ulong);
800uint __ovld __cnfn convert_uint_rtz(ulong);
801uint __ovld __cnfn convert_uint_sat_rtz(ulong);
802uint __ovld __cnfn convert_uint_rtp(ulong);
803uint __ovld __cnfn convert_uint_sat_rtp(ulong);
804uint __ovld __cnfn convert_uint_rtn(ulong);
805uint __ovld __cnfn convert_uint_sat_rtn(ulong);
806uint __ovld __cnfn convert_uint(ulong);
807uint __ovld __cnfn convert_uint_sat(ulong);
808uint __ovld __cnfn convert_uint_rte(float);
809uint __ovld __cnfn convert_uint_sat_rte(float);
810uint __ovld __cnfn convert_uint_rtz(float);
811uint __ovld __cnfn convert_uint_sat_rtz(float);
812uint __ovld __cnfn convert_uint_rtp(float);
813uint __ovld __cnfn convert_uint_sat_rtp(float);
814uint __ovld __cnfn convert_uint_rtn(float);
815uint __ovld __cnfn convert_uint_sat_rtn(float);
816uint __ovld __cnfn convert_uint(float);
817uint __ovld __cnfn convert_uint_sat(float);
818long __ovld __cnfn convert_long_rte(char);
819long __ovld __cnfn convert_long_sat_rte(char);
820long __ovld __cnfn convert_long_rtz(char);
821long __ovld __cnfn convert_long_sat_rtz(char);
822long __ovld __cnfn convert_long_rtp(char);
823long __ovld __cnfn convert_long_sat_rtp(char);
824long __ovld __cnfn convert_long_rtn(char);
825long __ovld __cnfn convert_long_sat_rtn(char);
826long __ovld __cnfn convert_long(char);
827long __ovld __cnfn convert_long_sat(char);
828long __ovld __cnfn convert_long_rte(uchar);
829long __ovld __cnfn convert_long_sat_rte(uchar);
830long __ovld __cnfn convert_long_rtz(uchar);
831long __ovld __cnfn convert_long_sat_rtz(uchar);
832long __ovld __cnfn convert_long_rtp(uchar);
833long __ovld __cnfn convert_long_sat_rtp(uchar);
834long __ovld __cnfn convert_long_rtn(uchar);
835long __ovld __cnfn convert_long_sat_rtn(uchar);
836long __ovld __cnfn convert_long(uchar);
837long __ovld __cnfn convert_long_sat(uchar);
838long __ovld __cnfn convert_long_rte(short);
839long __ovld __cnfn convert_long_sat_rte(short);
840long __ovld __cnfn convert_long_rtz(short);
841long __ovld __cnfn convert_long_sat_rtz(short);
842long __ovld __cnfn convert_long_rtp(short);
843long __ovld __cnfn convert_long_sat_rtp(short);
844long __ovld __cnfn convert_long_rtn(short);
845long __ovld __cnfn convert_long_sat_rtn(short);
846long __ovld __cnfn convert_long(short);
847long __ovld __cnfn convert_long_sat(short);
848long __ovld __cnfn convert_long_rte(ushort);
849long __ovld __cnfn convert_long_sat_rte(ushort);
850long __ovld __cnfn convert_long_rtz(ushort);
851long __ovld __cnfn convert_long_sat_rtz(ushort);
852long __ovld __cnfn convert_long_rtp(ushort);
853long __ovld __cnfn convert_long_sat_rtp(ushort);
854long __ovld __cnfn convert_long_rtn(ushort);
855long __ovld __cnfn convert_long_sat_rtn(ushort);
856long __ovld __cnfn convert_long(ushort);
857long __ovld __cnfn convert_long_sat(ushort);
858long __ovld __cnfn convert_long_rte(int);
859long __ovld __cnfn convert_long_sat_rte(int);
860long __ovld __cnfn convert_long_rtz(int);
861long __ovld __cnfn convert_long_sat_rtz(int);
862long __ovld __cnfn convert_long_rtp(int);
863long __ovld __cnfn convert_long_sat_rtp(int);
864long __ovld __cnfn convert_long_rtn(int);
865long __ovld __cnfn convert_long_sat_rtn(int);
866long __ovld __cnfn convert_long(int);
867long __ovld __cnfn convert_long_sat(int);
868long __ovld __cnfn convert_long_rte(uint);
869long __ovld __cnfn convert_long_sat_rte(uint);
870long __ovld __cnfn convert_long_rtz(uint);
871long __ovld __cnfn convert_long_sat_rtz(uint);
872long __ovld __cnfn convert_long_rtp(uint);
873long __ovld __cnfn convert_long_sat_rtp(uint);
874long __ovld __cnfn convert_long_rtn(uint);
875long __ovld __cnfn convert_long_sat_rtn(uint);
876long __ovld __cnfn convert_long(uint);
877long __ovld __cnfn convert_long_sat(uint);
878long __ovld __cnfn convert_long_rte(long);
879long __ovld __cnfn convert_long_sat_rte(long);
880long __ovld __cnfn convert_long_rtz(long);
881long __ovld __cnfn convert_long_sat_rtz(long);
882long __ovld __cnfn convert_long_rtp(long);
883long __ovld __cnfn convert_long_sat_rtp(long);
884long __ovld __cnfn convert_long_rtn(long);
885long __ovld __cnfn convert_long_sat_rtn(long);
886long __ovld __cnfn convert_long(long);
887long __ovld __cnfn convert_long_sat(long);
888long __ovld __cnfn convert_long_rte(ulong);
889long __ovld __cnfn convert_long_sat_rte(ulong);
890long __ovld __cnfn convert_long_rtz(ulong);
891long __ovld __cnfn convert_long_sat_rtz(ulong);
892long __ovld __cnfn convert_long_rtp(ulong);
893long __ovld __cnfn convert_long_sat_rtp(ulong);
894long __ovld __cnfn convert_long_rtn(ulong);
895long __ovld __cnfn convert_long_sat_rtn(ulong);
896long __ovld __cnfn convert_long(ulong);
897long __ovld __cnfn convert_long_sat(ulong);
898long __ovld __cnfn convert_long_rte(float);
899long __ovld __cnfn convert_long_sat_rte(float);
900long __ovld __cnfn convert_long_rtz(float);
901long __ovld __cnfn convert_long_sat_rtz(float);
902long __ovld __cnfn convert_long_rtp(float);
903long __ovld __cnfn convert_long_sat_rtp(float);
904long __ovld __cnfn convert_long_rtn(float);
905long __ovld __cnfn convert_long_sat_rtn(float);
906long __ovld __cnfn convert_long(float);
907long __ovld __cnfn convert_long_sat(float);
908ulong __ovld __cnfn convert_ulong_rte(char);
909ulong __ovld __cnfn convert_ulong_sat_rte(char);
910ulong __ovld __cnfn convert_ulong_rtz(char);
911ulong __ovld __cnfn convert_ulong_sat_rtz(char);
912ulong __ovld __cnfn convert_ulong_rtp(char);
913ulong __ovld __cnfn convert_ulong_sat_rtp(char);
914ulong __ovld __cnfn convert_ulong_rtn(char);
915ulong __ovld __cnfn convert_ulong_sat_rtn(char);
916ulong __ovld __cnfn convert_ulong(char);
917ulong __ovld __cnfn convert_ulong_sat(char);
918ulong __ovld __cnfn convert_ulong_rte(uchar);
919ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
920ulong __ovld __cnfn convert_ulong_rtz(uchar);
921ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
922ulong __ovld __cnfn convert_ulong_rtp(uchar);
923ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
924ulong __ovld __cnfn convert_ulong_rtn(uchar);
925ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
926ulong __ovld __cnfn convert_ulong(uchar);
927ulong __ovld __cnfn convert_ulong_sat(uchar);
928ulong __ovld __cnfn convert_ulong_rte(short);
929ulong __ovld __cnfn convert_ulong_sat_rte(short);
930ulong __ovld __cnfn convert_ulong_rtz(short);
931ulong __ovld __cnfn convert_ulong_sat_rtz(short);
932ulong __ovld __cnfn convert_ulong_rtp(short);
933ulong __ovld __cnfn convert_ulong_sat_rtp(short);
934ulong __ovld __cnfn convert_ulong_rtn(short);
935ulong __ovld __cnfn convert_ulong_sat_rtn(short);
936ulong __ovld __cnfn convert_ulong(short);
937ulong __ovld __cnfn convert_ulong_sat(short);
938ulong __ovld __cnfn convert_ulong_rte(ushort);
939ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
940ulong __ovld __cnfn convert_ulong_rtz(ushort);
941ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
942ulong __ovld __cnfn convert_ulong_rtp(ushort);
943ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
944ulong __ovld __cnfn convert_ulong_rtn(ushort);
945ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
946ulong __ovld __cnfn convert_ulong(ushort);
947ulong __ovld __cnfn convert_ulong_sat(ushort);
948ulong __ovld __cnfn convert_ulong_rte(int);
949ulong __ovld __cnfn convert_ulong_sat_rte(int);
950ulong __ovld __cnfn convert_ulong_rtz(int);
951ulong __ovld __cnfn convert_ulong_sat_rtz(int);
952ulong __ovld __cnfn convert_ulong_rtp(int);
953ulong __ovld __cnfn convert_ulong_sat_rtp(int);
954ulong __ovld __cnfn convert_ulong_rtn(int);
955ulong __ovld __cnfn convert_ulong_sat_rtn(int);
956ulong __ovld __cnfn convert_ulong(int);
957ulong __ovld __cnfn convert_ulong_sat(int);
958ulong __ovld __cnfn convert_ulong_rte(uint);
959ulong __ovld __cnfn convert_ulong_sat_rte(uint);
960ulong __ovld __cnfn convert_ulong_rtz(uint);
961ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
962ulong __ovld __cnfn convert_ulong_rtp(uint);
963ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
964ulong __ovld __cnfn convert_ulong_rtn(uint);
965ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
966ulong __ovld __cnfn convert_ulong(uint);
967ulong __ovld __cnfn convert_ulong_sat(uint);
968ulong __ovld __cnfn convert_ulong_rte(long);
969ulong __ovld __cnfn convert_ulong_sat_rte(long);
970ulong __ovld __cnfn convert_ulong_rtz(long);
971ulong __ovld __cnfn convert_ulong_sat_rtz(long);
972ulong __ovld __cnfn convert_ulong_rtp(long);
973ulong __ovld __cnfn convert_ulong_sat_rtp(long);
974ulong __ovld __cnfn convert_ulong_rtn(long);
975ulong __ovld __cnfn convert_ulong_sat_rtn(long);
976ulong __ovld __cnfn convert_ulong(long);
977ulong __ovld __cnfn convert_ulong_sat(long);
978ulong __ovld __cnfn convert_ulong_rte(ulong);
979ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
980ulong __ovld __cnfn convert_ulong_rtz(ulong);
981ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
982ulong __ovld __cnfn convert_ulong_rtp(ulong);
983ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
984ulong __ovld __cnfn convert_ulong_rtn(ulong);
985ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
986ulong __ovld __cnfn convert_ulong(ulong);
987ulong __ovld __cnfn convert_ulong_sat(ulong);
988ulong __ovld __cnfn convert_ulong_rte(float);
989ulong __ovld __cnfn convert_ulong_sat_rte(float);
990ulong __ovld __cnfn convert_ulong_rtz(float);
991ulong __ovld __cnfn convert_ulong_sat_rtz(float);
992ulong __ovld __cnfn convert_ulong_rtp(float);
993ulong __ovld __cnfn convert_ulong_sat_rtp(float);
994ulong __ovld __cnfn convert_ulong_rtn(float);
995ulong __ovld __cnfn convert_ulong_sat_rtn(float);
996ulong __ovld __cnfn convert_ulong(float);
997ulong __ovld __cnfn convert_ulong_sat(float);
998float __ovld __cnfn convert_float_rte(char);
999float __ovld __cnfn convert_float_rtz(char);
1000float __ovld __cnfn convert_float_rtp(char);
1001float __ovld __cnfn convert_float_rtn(char);
1002float __ovld __cnfn convert_float(char);
1003float __ovld __cnfn convert_float_rte(uchar);
1004float __ovld __cnfn convert_float_rtz(uchar);
1005float __ovld __cnfn convert_float_rtp(uchar);
1006float __ovld __cnfn convert_float_rtn(uchar);
1007float __ovld __cnfn convert_float(uchar);
1008float __ovld __cnfn convert_float_rte(short);
1009float __ovld __cnfn convert_float_rtz(short);
1010float __ovld __cnfn convert_float_rtp(short);
1011float __ovld __cnfn convert_float_rtn(short);
1012float __ovld __cnfn convert_float(short);
1013float __ovld __cnfn convert_float_rte(ushort);
1014float __ovld __cnfn convert_float_rtz(ushort);
1015float __ovld __cnfn convert_float_rtp(ushort);
1016float __ovld __cnfn convert_float_rtn(ushort);
1017float __ovld __cnfn convert_float(ushort);
1018float __ovld __cnfn convert_float_rte(int);
1019float __ovld __cnfn convert_float_rtz(int);
1020float __ovld __cnfn convert_float_rtp(int);
1021float __ovld __cnfn convert_float_rtn(int);
1022float __ovld __cnfn convert_float(int);
1023float __ovld __cnfn convert_float_rte(uint);
1024float __ovld __cnfn convert_float_rtz(uint);
1025float __ovld __cnfn convert_float_rtp(uint);
1026float __ovld __cnfn convert_float_rtn(uint);
1027float __ovld __cnfn convert_float(uint);
1028float __ovld __cnfn convert_float_rte(long);
1029float __ovld __cnfn convert_float_rtz(long);
1030float __ovld __cnfn convert_float_rtp(long);
1031float __ovld __cnfn convert_float_rtn(long);
1032float __ovld __cnfn convert_float(long);
1033float __ovld __cnfn convert_float_rte(ulong);
1034float __ovld __cnfn convert_float_rtz(ulong);
1035float __ovld __cnfn convert_float_rtp(ulong);
1036float __ovld __cnfn convert_float_rtn(ulong);
1037float __ovld __cnfn convert_float(ulong);
1038float __ovld __cnfn convert_float_rte(float);
1039float __ovld __cnfn convert_float_rtz(float);
1040float __ovld __cnfn convert_float_rtp(float);
1041float __ovld __cnfn convert_float_rtn(float);
1042float __ovld __cnfn convert_float(float);
1043char2 __ovld __cnfn convert_char2_rte(char2);
1044char2 __ovld __cnfn convert_char2_sat_rte(char2);
1045char2 __ovld __cnfn convert_char2_rtz(char2);
1046char2 __ovld __cnfn convert_char2_sat_rtz(char2);
1047char2 __ovld __cnfn convert_char2_rtp(char2);
1048char2 __ovld __cnfn convert_char2_sat_rtp(char2);
1049char2 __ovld __cnfn convert_char2_rtn(char2);
1050char2 __ovld __cnfn convert_char2_sat_rtn(char2);
1051char2 __ovld __cnfn convert_char2(char2);
1052char2 __ovld __cnfn convert_char2_sat(char2);
1053char2 __ovld __cnfn convert_char2_rte(uchar2);
1054char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
1055char2 __ovld __cnfn convert_char2_rtz(uchar2);
1056char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
1057char2 __ovld __cnfn convert_char2_rtp(uchar2);
1058char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
1059char2 __ovld __cnfn convert_char2_rtn(uchar2);
1060char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
1061char2 __ovld __cnfn convert_char2(uchar2);
1062char2 __ovld __cnfn convert_char2_sat(uchar2);
1063char2 __ovld __cnfn convert_char2_rte(short2);
1064char2 __ovld __cnfn convert_char2_sat_rte(short2);
1065char2 __ovld __cnfn convert_char2_rtz(short2);
1066char2 __ovld __cnfn convert_char2_sat_rtz(short2);
1067char2 __ovld __cnfn convert_char2_rtp(short2);
1068char2 __ovld __cnfn convert_char2_sat_rtp(short2);
1069char2 __ovld __cnfn convert_char2_rtn(short2);
1070char2 __ovld __cnfn convert_char2_sat_rtn(short2);
1071char2 __ovld __cnfn convert_char2(short2);
1072char2 __ovld __cnfn convert_char2_sat(short2);
1073char2 __ovld __cnfn convert_char2_rte(ushort2);
1074char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
1075char2 __ovld __cnfn convert_char2_rtz(ushort2);
1076char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
1077char2 __ovld __cnfn convert_char2_rtp(ushort2);
1078char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
1079char2 __ovld __cnfn convert_char2_rtn(ushort2);
1080char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
1081char2 __ovld __cnfn convert_char2(ushort2);
1082char2 __ovld __cnfn convert_char2_sat(ushort2);
1083char2 __ovld __cnfn convert_char2_rte(int2);
1084char2 __ovld __cnfn convert_char2_sat_rte(int2);
1085char2 __ovld __cnfn convert_char2_rtz(int2);
1086char2 __ovld __cnfn convert_char2_sat_rtz(int2);
1087char2 __ovld __cnfn convert_char2_rtp(int2);
1088char2 __ovld __cnfn convert_char2_sat_rtp(int2);
1089char2 __ovld __cnfn convert_char2_rtn(int2);
1090char2 __ovld __cnfn convert_char2_sat_rtn(int2);
1091char2 __ovld __cnfn convert_char2(int2);
1092char2 __ovld __cnfn convert_char2_sat(int2);
1093char2 __ovld __cnfn convert_char2_rte(uint2);
1094char2 __ovld __cnfn convert_char2_sat_rte(uint2);
1095char2 __ovld __cnfn convert_char2_rtz(uint2);
1096char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
1097char2 __ovld __cnfn convert_char2_rtp(uint2);
1098char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
1099char2 __ovld __cnfn convert_char2_rtn(uint2);
1100char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
1101char2 __ovld __cnfn convert_char2(uint2);
1102char2 __ovld __cnfn convert_char2_sat(uint2);
1103char2 __ovld __cnfn convert_char2_rte(long2);
1104char2 __ovld __cnfn convert_char2_sat_rte(long2);
1105char2 __ovld __cnfn convert_char2_rtz(long2);
1106char2 __ovld __cnfn convert_char2_sat_rtz(long2);
1107char2 __ovld __cnfn convert_char2_rtp(long2);
1108char2 __ovld __cnfn convert_char2_sat_rtp(long2);
1109char2 __ovld __cnfn convert_char2_rtn(long2);
1110char2 __ovld __cnfn convert_char2_sat_rtn(long2);
1111char2 __ovld __cnfn convert_char2(long2);
1112char2 __ovld __cnfn convert_char2_sat(long2);
1113char2 __ovld __cnfn convert_char2_rte(ulong2);
1114char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
1115char2 __ovld __cnfn convert_char2_rtz(ulong2);
1116char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
1117char2 __ovld __cnfn convert_char2_rtp(ulong2);
1118char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
1119char2 __ovld __cnfn convert_char2_rtn(ulong2);
1120char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
1121char2 __ovld __cnfn convert_char2(ulong2);
1122char2 __ovld __cnfn convert_char2_sat(ulong2);
1123char2 __ovld __cnfn convert_char2_rte(float2);
1124char2 __ovld __cnfn convert_char2_sat_rte(float2);
1125char2 __ovld __cnfn convert_char2_rtz(float2);
1126char2 __ovld __cnfn convert_char2_sat_rtz(float2);
1127char2 __ovld __cnfn convert_char2_rtp(float2);
1128char2 __ovld __cnfn convert_char2_sat_rtp(float2);
1129char2 __ovld __cnfn convert_char2_rtn(float2);
1130char2 __ovld __cnfn convert_char2_sat_rtn(float2);
1131char2 __ovld __cnfn convert_char2(float2);
1132char2 __ovld __cnfn convert_char2_sat(float2);
1133uchar2 __ovld __cnfn convert_uchar2_rte(char2);
1134uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
1135uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
1136uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
1137uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
1138uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
1139uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
1140uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
1141uchar2 __ovld __cnfn convert_uchar2(char2);
1142uchar2 __ovld __cnfn convert_uchar2_sat(char2);
1143uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
1144uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
1145uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
1146uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
1147uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
1148uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
1149uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
1150uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
1151uchar2 __ovld __cnfn convert_uchar2(uchar2);
1152uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
1153uchar2 __ovld __cnfn convert_uchar2_rte(short2);
1154uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
1155uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
1156uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
1157uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
1158uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
1159uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
1160uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
1161uchar2 __ovld __cnfn convert_uchar2(short2);
1162uchar2 __ovld __cnfn convert_uchar2_sat(short2);
1163uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
1164uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
1165uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
1166uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
1167uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
1168uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
1169uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
1170uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
1171uchar2 __ovld __cnfn convert_uchar2(ushort2);
1172uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
1173uchar2 __ovld __cnfn convert_uchar2_rte(int2);
1174uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
1175uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
1176uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
1177uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
1178uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
1179uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
1180uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
1181uchar2 __ovld __cnfn convert_uchar2(int2);
1182uchar2 __ovld __cnfn convert_uchar2_sat(int2);
1183uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
1184uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
1185uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
1186uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
1187uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
1188uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
1189uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
1190uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
1191uchar2 __ovld __cnfn convert_uchar2(uint2);
1192uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
1193uchar2 __ovld __cnfn convert_uchar2_rte(long2);
1194uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
1195uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
1196uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
1197uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
1198uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
1199uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
1200uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
1201uchar2 __ovld __cnfn convert_uchar2(long2);
1202uchar2 __ovld __cnfn convert_uchar2_sat(long2);
1203uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
1204uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
1205uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
1206uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
1207uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
1208uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
1209uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
1210uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
1211uchar2 __ovld __cnfn convert_uchar2(ulong2);
1212uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
1213uchar2 __ovld __cnfn convert_uchar2_rte(float2);
1214uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
1215uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
1216uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
1217uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
1218uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
1219uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
1220uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
1221uchar2 __ovld __cnfn convert_uchar2(float2);
1222uchar2 __ovld __cnfn convert_uchar2_sat(float2);
1223short2 __ovld __cnfn convert_short2_rte(char2);
1224short2 __ovld __cnfn convert_short2_sat_rte(char2);
1225short2 __ovld __cnfn convert_short2_rtz(char2);
1226short2 __ovld __cnfn convert_short2_sat_rtz(char2);
1227short2 __ovld __cnfn convert_short2_rtp(char2);
1228short2 __ovld __cnfn convert_short2_sat_rtp(char2);
1229short2 __ovld __cnfn convert_short2_rtn(char2);
1230short2 __ovld __cnfn convert_short2_sat_rtn(char2);
1231short2 __ovld __cnfn convert_short2(char2);
1232short2 __ovld __cnfn convert_short2_sat(char2);
1233short2 __ovld __cnfn convert_short2_rte(uchar2);
1234short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1235short2 __ovld __cnfn convert_short2_rtz(uchar2);
1236short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1237short2 __ovld __cnfn convert_short2_rtp(uchar2);
1238short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1239short2 __ovld __cnfn convert_short2_rtn(uchar2);
1240short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1241short2 __ovld __cnfn convert_short2(uchar2);
1242short2 __ovld __cnfn convert_short2_sat(uchar2);
1243short2 __ovld __cnfn convert_short2_rte(short2);
1244short2 __ovld __cnfn convert_short2_sat_rte(short2);
1245short2 __ovld __cnfn convert_short2_rtz(short2);
1246short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1247short2 __ovld __cnfn convert_short2_rtp(short2);
1248short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1249short2 __ovld __cnfn convert_short2_rtn(short2);
1250short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1251short2 __ovld __cnfn convert_short2(short2);
1252short2 __ovld __cnfn convert_short2_sat(short2);
1253short2 __ovld __cnfn convert_short2_rte(ushort2);
1254short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1255short2 __ovld __cnfn convert_short2_rtz(ushort2);
1256short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1257short2 __ovld __cnfn convert_short2_rtp(ushort2);
1258short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1259short2 __ovld __cnfn convert_short2_rtn(ushort2);
1260short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1261short2 __ovld __cnfn convert_short2(ushort2);
1262short2 __ovld __cnfn convert_short2_sat(ushort2);
1263short2 __ovld __cnfn convert_short2_rte(int2);
1264short2 __ovld __cnfn convert_short2_sat_rte(int2);
1265short2 __ovld __cnfn convert_short2_rtz(int2);
1266short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1267short2 __ovld __cnfn convert_short2_rtp(int2);
1268short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1269short2 __ovld __cnfn convert_short2_rtn(int2);
1270short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1271short2 __ovld __cnfn convert_short2(int2);
1272short2 __ovld __cnfn convert_short2_sat(int2);
1273short2 __ovld __cnfn convert_short2_rte(uint2);
1274short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1275short2 __ovld __cnfn convert_short2_rtz(uint2);
1276short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1277short2 __ovld __cnfn convert_short2_rtp(uint2);
1278short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1279short2 __ovld __cnfn convert_short2_rtn(uint2);
1280short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1281short2 __ovld __cnfn convert_short2(uint2);
1282short2 __ovld __cnfn convert_short2_sat(uint2);
1283short2 __ovld __cnfn convert_short2_rte(long2);
1284short2 __ovld __cnfn convert_short2_sat_rte(long2);
1285short2 __ovld __cnfn convert_short2_rtz(long2);
1286short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1287short2 __ovld __cnfn convert_short2_rtp(long2);
1288short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1289short2 __ovld __cnfn convert_short2_rtn(long2);
1290short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1291short2 __ovld __cnfn convert_short2(long2);
1292short2 __ovld __cnfn convert_short2_sat(long2);
1293short2 __ovld __cnfn convert_short2_rte(ulong2);
1294short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1295short2 __ovld __cnfn convert_short2_rtz(ulong2);
1296short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1297short2 __ovld __cnfn convert_short2_rtp(ulong2);
1298short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1299short2 __ovld __cnfn convert_short2_rtn(ulong2);
1300short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1301short2 __ovld __cnfn convert_short2(ulong2);
1302short2 __ovld __cnfn convert_short2_sat(ulong2);
1303short2 __ovld __cnfn convert_short2_rte(float2);
1304short2 __ovld __cnfn convert_short2_sat_rte(float2);
1305short2 __ovld __cnfn convert_short2_rtz(float2);
1306short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1307short2 __ovld __cnfn convert_short2_rtp(float2);
1308short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1309short2 __ovld __cnfn convert_short2_rtn(float2);
1310short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1311short2 __ovld __cnfn convert_short2(float2);
1312short2 __ovld __cnfn convert_short2_sat(float2);
1313ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1314ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1315ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1316ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1317ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1318ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1319ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1320ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1321ushort2 __ovld __cnfn convert_ushort2(char2);
1322ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1323ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1324ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1325ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1326ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1327ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1328ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1329ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1330ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1331ushort2 __ovld __cnfn convert_ushort2(uchar2);
1332ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1333ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1334ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1335ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1336ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1337ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1338ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1339ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1340ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1341ushort2 __ovld __cnfn convert_ushort2(short2);
1342ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1343ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1344ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1345ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1346ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1347ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1348ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1349ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1350ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1351ushort2 __ovld __cnfn convert_ushort2(ushort2);
1352ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1353ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1354ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1355ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1356ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1357ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1358ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1359ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1360ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1361ushort2 __ovld __cnfn convert_ushort2(int2);
1362ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1363ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1364ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1365ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1366ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1367ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1368ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1369ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1370ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1371ushort2 __ovld __cnfn convert_ushort2(uint2);
1372ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1373ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1374ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1375ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1376ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1377ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1378ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1379ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1380ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1381ushort2 __ovld __cnfn convert_ushort2(long2);
1382ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1383ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1384ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1385ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1386ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1387ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1388ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1389ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1390ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1391ushort2 __ovld __cnfn convert_ushort2(ulong2);
1392ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1393ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1394ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1395ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1396ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1397ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1398ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1399ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1400ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1401ushort2 __ovld __cnfn convert_ushort2(float2);
1402ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1403int2 __ovld __cnfn convert_int2_rte(char2);
1404int2 __ovld __cnfn convert_int2_sat_rte(char2);
1405int2 __ovld __cnfn convert_int2_rtz(char2);
1406int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1407int2 __ovld __cnfn convert_int2_rtp(char2);
1408int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1409int2 __ovld __cnfn convert_int2_rtn(char2);
1410int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1411int2 __ovld __cnfn convert_int2(char2);
1412int2 __ovld __cnfn convert_int2_sat(char2);
1413int2 __ovld __cnfn convert_int2_rte(uchar2);
1414int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1415int2 __ovld __cnfn convert_int2_rtz(uchar2);
1416int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1417int2 __ovld __cnfn convert_int2_rtp(uchar2);
1418int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1419int2 __ovld __cnfn convert_int2_rtn(uchar2);
1420int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1421int2 __ovld __cnfn convert_int2(uchar2);
1422int2 __ovld __cnfn convert_int2_sat(uchar2);
1423int2 __ovld __cnfn convert_int2_rte(short2);
1424int2 __ovld __cnfn convert_int2_sat_rte(short2);
1425int2 __ovld __cnfn convert_int2_rtz(short2);
1426int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1427int2 __ovld __cnfn convert_int2_rtp(short2);
1428int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1429int2 __ovld __cnfn convert_int2_rtn(short2);
1430int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1431int2 __ovld __cnfn convert_int2(short2);
1432int2 __ovld __cnfn convert_int2_sat(short2);
1433int2 __ovld __cnfn convert_int2_rte(ushort2);
1434int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1435int2 __ovld __cnfn convert_int2_rtz(ushort2);
1436int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1437int2 __ovld __cnfn convert_int2_rtp(ushort2);
1438int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1439int2 __ovld __cnfn convert_int2_rtn(ushort2);
1440int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1441int2 __ovld __cnfn convert_int2(ushort2);
1442int2 __ovld __cnfn convert_int2_sat(ushort2);
1443int2 __ovld __cnfn convert_int2_rte(int2);
1444int2 __ovld __cnfn convert_int2_sat_rte(int2);
1445int2 __ovld __cnfn convert_int2_rtz(int2);
1446int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1447int2 __ovld __cnfn convert_int2_rtp(int2);
1448int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1449int2 __ovld __cnfn convert_int2_rtn(int2);
1450int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1451int2 __ovld __cnfn convert_int2(int2);
1452int2 __ovld __cnfn convert_int2_sat(int2);
1453int2 __ovld __cnfn convert_int2_rte(uint2);
1454int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1455int2 __ovld __cnfn convert_int2_rtz(uint2);
1456int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1457int2 __ovld __cnfn convert_int2_rtp(uint2);
1458int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1459int2 __ovld __cnfn convert_int2_rtn(uint2);
1460int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1461int2 __ovld __cnfn convert_int2(uint2);
1462int2 __ovld __cnfn convert_int2_sat(uint2);
1463int2 __ovld __cnfn convert_int2_rte(long2);
1464int2 __ovld __cnfn convert_int2_sat_rte(long2);
1465int2 __ovld __cnfn convert_int2_rtz(long2);
1466int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1467int2 __ovld __cnfn convert_int2_rtp(long2);
1468int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1469int2 __ovld __cnfn convert_int2_rtn(long2);
1470int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1471int2 __ovld __cnfn convert_int2(long2);
1472int2 __ovld __cnfn convert_int2_sat(long2);
1473int2 __ovld __cnfn convert_int2_rte(ulong2);
1474int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1475int2 __ovld __cnfn convert_int2_rtz(ulong2);
1476int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1477int2 __ovld __cnfn convert_int2_rtp(ulong2);
1478int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1479int2 __ovld __cnfn convert_int2_rtn(ulong2);
1480int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1481int2 __ovld __cnfn convert_int2(ulong2);
1482int2 __ovld __cnfn convert_int2_sat(ulong2);
1483int2 __ovld __cnfn convert_int2_rte(float2);
1484int2 __ovld __cnfn convert_int2_sat_rte(float2);
1485int2 __ovld __cnfn convert_int2_rtz(float2);
1486int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1487int2 __ovld __cnfn convert_int2_rtp(float2);
1488int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1489int2 __ovld __cnfn convert_int2_rtn(float2);
1490int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1491int2 __ovld __cnfn convert_int2(float2);
1492int2 __ovld __cnfn convert_int2_sat(float2);
1493uint2 __ovld __cnfn convert_uint2_rte(char2);
1494uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1495uint2 __ovld __cnfn convert_uint2_rtz(char2);
1496uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1497uint2 __ovld __cnfn convert_uint2_rtp(char2);
1498uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1499uint2 __ovld __cnfn convert_uint2_rtn(char2);
1500uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1501uint2 __ovld __cnfn convert_uint2(char2);
1502uint2 __ovld __cnfn convert_uint2_sat(char2);
1503uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1504uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1505uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1506uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1507uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1508uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1509uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1510uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1511uint2 __ovld __cnfn convert_uint2(uchar2);
1512uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1513uint2 __ovld __cnfn convert_uint2_rte(short2);
1514uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1515uint2 __ovld __cnfn convert_uint2_rtz(short2);
1516uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1517uint2 __ovld __cnfn convert_uint2_rtp(short2);
1518uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1519uint2 __ovld __cnfn convert_uint2_rtn(short2);
1520uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1521uint2 __ovld __cnfn convert_uint2(short2);
1522uint2 __ovld __cnfn convert_uint2_sat(short2);
1523uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1524uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1525uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1526uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1527uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1528uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1529uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1530uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1531uint2 __ovld __cnfn convert_uint2(ushort2);
1532uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1533uint2 __ovld __cnfn convert_uint2_rte(int2);
1534uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1535uint2 __ovld __cnfn convert_uint2_rtz(int2);
1536uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1537uint2 __ovld __cnfn convert_uint2_rtp(int2);
1538uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1539uint2 __ovld __cnfn convert_uint2_rtn(int2);
1540uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1541uint2 __ovld __cnfn convert_uint2(int2);
1542uint2 __ovld __cnfn convert_uint2_sat(int2);
1543uint2 __ovld __cnfn convert_uint2_rte(uint2);
1544uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1545uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1546uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1547uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1548uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1549uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1550uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1551uint2 __ovld __cnfn convert_uint2(uint2);
1552uint2 __ovld __cnfn convert_uint2_sat(uint2);
1553uint2 __ovld __cnfn convert_uint2_rte(long2);
1554uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1555uint2 __ovld __cnfn convert_uint2_rtz(long2);
1556uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1557uint2 __ovld __cnfn convert_uint2_rtp(long2);
1558uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1559uint2 __ovld __cnfn convert_uint2_rtn(long2);
1560uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1561uint2 __ovld __cnfn convert_uint2(long2);
1562uint2 __ovld __cnfn convert_uint2_sat(long2);
1563uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1564uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1565uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1566uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1567uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1568uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1569uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1570uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1571uint2 __ovld __cnfn convert_uint2(ulong2);
1572uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1573uint2 __ovld __cnfn convert_uint2_rte(float2);
1574uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1575uint2 __ovld __cnfn convert_uint2_rtz(float2);
1576uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1577uint2 __ovld __cnfn convert_uint2_rtp(float2);
1578uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1579uint2 __ovld __cnfn convert_uint2_rtn(float2);
1580uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1581uint2 __ovld __cnfn convert_uint2(float2);
1582uint2 __ovld __cnfn convert_uint2_sat(float2);
1583long2 __ovld __cnfn convert_long2_rte(char2);
1584long2 __ovld __cnfn convert_long2_sat_rte(char2);
1585long2 __ovld __cnfn convert_long2_rtz(char2);
1586long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1587long2 __ovld __cnfn convert_long2_rtp(char2);
1588long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1589long2 __ovld __cnfn convert_long2_rtn(char2);
1590long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1591long2 __ovld __cnfn convert_long2(char2);
1592long2 __ovld __cnfn convert_long2_sat(char2);
1593long2 __ovld __cnfn convert_long2_rte(uchar2);
1594long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1595long2 __ovld __cnfn convert_long2_rtz(uchar2);
1596long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1597long2 __ovld __cnfn convert_long2_rtp(uchar2);
1598long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1599long2 __ovld __cnfn convert_long2_rtn(uchar2);
1600long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1601long2 __ovld __cnfn convert_long2(uchar2);
1602long2 __ovld __cnfn convert_long2_sat(uchar2);
1603long2 __ovld __cnfn convert_long2_rte(short2);
1604long2 __ovld __cnfn convert_long2_sat_rte(short2);
1605long2 __ovld __cnfn convert_long2_rtz(short2);
1606long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1607long2 __ovld __cnfn convert_long2_rtp(short2);
1608long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1609long2 __ovld __cnfn convert_long2_rtn(short2);
1610long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1611long2 __ovld __cnfn convert_long2(short2);
1612long2 __ovld __cnfn convert_long2_sat(short2);
1613long2 __ovld __cnfn convert_long2_rte(ushort2);
1614long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1615long2 __ovld __cnfn convert_long2_rtz(ushort2);
1616long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1617long2 __ovld __cnfn convert_long2_rtp(ushort2);
1618long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1619long2 __ovld __cnfn convert_long2_rtn(ushort2);
1620long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1621long2 __ovld __cnfn convert_long2(ushort2);
1622long2 __ovld __cnfn convert_long2_sat(ushort2);
1623long2 __ovld __cnfn convert_long2_rte(int2);
1624long2 __ovld __cnfn convert_long2_sat_rte(int2);
1625long2 __ovld __cnfn convert_long2_rtz(int2);
1626long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1627long2 __ovld __cnfn convert_long2_rtp(int2);
1628long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1629long2 __ovld __cnfn convert_long2_rtn(int2);
1630long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1631long2 __ovld __cnfn convert_long2(int2);
1632long2 __ovld __cnfn convert_long2_sat(int2);
1633long2 __ovld __cnfn convert_long2_rte(uint2);
1634long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1635long2 __ovld __cnfn convert_long2_rtz(uint2);
1636long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1637long2 __ovld __cnfn convert_long2_rtp(uint2);
1638long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1639long2 __ovld __cnfn convert_long2_rtn(uint2);
1640long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1641long2 __ovld __cnfn convert_long2(uint2);
1642long2 __ovld __cnfn convert_long2_sat(uint2);
1643long2 __ovld __cnfn convert_long2_rte(long2);
1644long2 __ovld __cnfn convert_long2_sat_rte(long2);
1645long2 __ovld __cnfn convert_long2_rtz(long2);
1646long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1647long2 __ovld __cnfn convert_long2_rtp(long2);
1648long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1649long2 __ovld __cnfn convert_long2_rtn(long2);
1650long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1651long2 __ovld __cnfn convert_long2(long2);
1652long2 __ovld __cnfn convert_long2_sat(long2);
1653long2 __ovld __cnfn convert_long2_rte(ulong2);
1654long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1655long2 __ovld __cnfn convert_long2_rtz(ulong2);
1656long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1657long2 __ovld __cnfn convert_long2_rtp(ulong2);
1658long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1659long2 __ovld __cnfn convert_long2_rtn(ulong2);
1660long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1661long2 __ovld __cnfn convert_long2(ulong2);
1662long2 __ovld __cnfn convert_long2_sat(ulong2);
1663long2 __ovld __cnfn convert_long2_rte(float2);
1664long2 __ovld __cnfn convert_long2_sat_rte(float2);
1665long2 __ovld __cnfn convert_long2_rtz(float2);
1666long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1667long2 __ovld __cnfn convert_long2_rtp(float2);
1668long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1669long2 __ovld __cnfn convert_long2_rtn(float2);
1670long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1671long2 __ovld __cnfn convert_long2(float2);
1672long2 __ovld __cnfn convert_long2_sat(float2);
1673ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1674ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1675ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1676ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1677ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1678ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1679ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1680ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1681ulong2 __ovld __cnfn convert_ulong2(char2);
1682ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1683ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1684ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1685ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1686ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1687ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1688ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1689ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1690ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1691ulong2 __ovld __cnfn convert_ulong2(uchar2);
1692ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1693ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1694ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1695ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1696ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1697ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1698ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1699ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1700ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1701ulong2 __ovld __cnfn convert_ulong2(short2);
1702ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1703ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1704ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1705ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1706ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1707ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1708ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1709ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1710ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1711ulong2 __ovld __cnfn convert_ulong2(ushort2);
1712ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1713ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1714ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1715ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1716ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1717ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1718ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1719ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1720ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1721ulong2 __ovld __cnfn convert_ulong2(int2);
1722ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1723ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1724ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1725ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1726ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1727ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1728ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1729ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1730ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1731ulong2 __ovld __cnfn convert_ulong2(uint2);
1732ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1733ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1734ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1735ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1736ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1737ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1738ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1739ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1740ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1741ulong2 __ovld __cnfn convert_ulong2(long2);
1742ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1743ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1744ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1745ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1746ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1747ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1748ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1749ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1750ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1751ulong2 __ovld __cnfn convert_ulong2(ulong2);
1752ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1753ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1754ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1755ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1756ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1757ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1758ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1759ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1760ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1761ulong2 __ovld __cnfn convert_ulong2(float2);
1762ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1763float2 __ovld __cnfn convert_float2_rte(char2);
1764float2 __ovld __cnfn convert_float2_rtz(char2);
1765float2 __ovld __cnfn convert_float2_rtp(char2);
1766float2 __ovld __cnfn convert_float2_rtn(char2);
1767float2 __ovld __cnfn convert_float2(char2);
1768float2 __ovld __cnfn convert_float2_rte(uchar2);
1769float2 __ovld __cnfn convert_float2_rtz(uchar2);
1770float2 __ovld __cnfn convert_float2_rtp(uchar2);
1771float2 __ovld __cnfn convert_float2_rtn(uchar2);
1772float2 __ovld __cnfn convert_float2(uchar2);
1773float2 __ovld __cnfn convert_float2_rte(short2);
1774float2 __ovld __cnfn convert_float2_rtz(short2);
1775float2 __ovld __cnfn convert_float2_rtp(short2);
1776float2 __ovld __cnfn convert_float2_rtn(short2);
1777float2 __ovld __cnfn convert_float2(short2);
1778float2 __ovld __cnfn convert_float2_rte(ushort2);
1779float2 __ovld __cnfn convert_float2_rtz(ushort2);
1780float2 __ovld __cnfn convert_float2_rtp(ushort2);
1781float2 __ovld __cnfn convert_float2_rtn(ushort2);
1782float2 __ovld __cnfn convert_float2(ushort2);
1783float2 __ovld __cnfn convert_float2_rte(int2);
1784float2 __ovld __cnfn convert_float2_rtz(int2);
1785float2 __ovld __cnfn convert_float2_rtp(int2);
1786float2 __ovld __cnfn convert_float2_rtn(int2);
1787float2 __ovld __cnfn convert_float2(int2);
1788float2 __ovld __cnfn convert_float2_rte(uint2);
1789float2 __ovld __cnfn convert_float2_rtz(uint2);
1790float2 __ovld __cnfn convert_float2_rtp(uint2);
1791float2 __ovld __cnfn convert_float2_rtn(uint2);
1792float2 __ovld __cnfn convert_float2(uint2);
1793float2 __ovld __cnfn convert_float2_rte(long2);
1794float2 __ovld __cnfn convert_float2_rtz(long2);
1795float2 __ovld __cnfn convert_float2_rtp(long2);
1796float2 __ovld __cnfn convert_float2_rtn(long2);
1797float2 __ovld __cnfn convert_float2(long2);
1798float2 __ovld __cnfn convert_float2_rte(ulong2);
1799float2 __ovld __cnfn convert_float2_rtz(ulong2);
1800float2 __ovld __cnfn convert_float2_rtp(ulong2);
1801float2 __ovld __cnfn convert_float2_rtn(ulong2);
1802float2 __ovld __cnfn convert_float2(ulong2);
1803float2 __ovld __cnfn convert_float2_rte(float2);
1804float2 __ovld __cnfn convert_float2_rtz(float2);
1805float2 __ovld __cnfn convert_float2_rtp(float2);
1806float2 __ovld __cnfn convert_float2_rtn(float2);
1807float2 __ovld __cnfn convert_float2(float2);
1808char3 __ovld __cnfn convert_char3_rte(char3);
1809char3 __ovld __cnfn convert_char3_sat_rte(char3);
1810char3 __ovld __cnfn convert_char3_rtz(char3);
1811char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1812char3 __ovld __cnfn convert_char3_rtp(char3);
1813char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1814char3 __ovld __cnfn convert_char3_rtn(char3);
1815char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1816char3 __ovld __cnfn convert_char3(char3);
1817char3 __ovld __cnfn convert_char3_sat(char3);
1818char3 __ovld __cnfn convert_char3_rte(uchar3);
1819char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1820char3 __ovld __cnfn convert_char3_rtz(uchar3);
1821char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1822char3 __ovld __cnfn convert_char3_rtp(uchar3);
1823char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1824char3 __ovld __cnfn convert_char3_rtn(uchar3);
1825char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1826char3 __ovld __cnfn convert_char3(uchar3);
1827char3 __ovld __cnfn convert_char3_sat(uchar3);
1828char3 __ovld __cnfn convert_char3_rte(short3);
1829char3 __ovld __cnfn convert_char3_sat_rte(short3);
1830char3 __ovld __cnfn convert_char3_rtz(short3);
1831char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1832char3 __ovld __cnfn convert_char3_rtp(short3);
1833char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1834char3 __ovld __cnfn convert_char3_rtn(short3);
1835char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1836char3 __ovld __cnfn convert_char3(short3);
1837char3 __ovld __cnfn convert_char3_sat(short3);
1838char3 __ovld __cnfn convert_char3_rte(ushort3);
1839char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1840char3 __ovld __cnfn convert_char3_rtz(ushort3);
1841char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1842char3 __ovld __cnfn convert_char3_rtp(ushort3);
1843char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1844char3 __ovld __cnfn convert_char3_rtn(ushort3);
1845char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1846char3 __ovld __cnfn convert_char3(ushort3);
1847char3 __ovld __cnfn convert_char3_sat(ushort3);
1848char3 __ovld __cnfn convert_char3_rte(int3);
1849char3 __ovld __cnfn convert_char3_sat_rte(int3);
1850char3 __ovld __cnfn convert_char3_rtz(int3);
1851char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1852char3 __ovld __cnfn convert_char3_rtp(int3);
1853char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1854char3 __ovld __cnfn convert_char3_rtn(int3);
1855char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1856char3 __ovld __cnfn convert_char3(int3);
1857char3 __ovld __cnfn convert_char3_sat(int3);
1858char3 __ovld __cnfn convert_char3_rte(uint3);
1859char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1860char3 __ovld __cnfn convert_char3_rtz(uint3);
1861char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1862char3 __ovld __cnfn convert_char3_rtp(uint3);
1863char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1864char3 __ovld __cnfn convert_char3_rtn(uint3);
1865char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1866char3 __ovld __cnfn convert_char3(uint3);
1867char3 __ovld __cnfn convert_char3_sat(uint3);
1868char3 __ovld __cnfn convert_char3_rte(long3);
1869char3 __ovld __cnfn convert_char3_sat_rte(long3);
1870char3 __ovld __cnfn convert_char3_rtz(long3);
1871char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1872char3 __ovld __cnfn convert_char3_rtp(long3);
1873char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1874char3 __ovld __cnfn convert_char3_rtn(long3);
1875char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1876char3 __ovld __cnfn convert_char3(long3);
1877char3 __ovld __cnfn convert_char3_sat(long3);
1878char3 __ovld __cnfn convert_char3_rte(ulong3);
1879char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1880char3 __ovld __cnfn convert_char3_rtz(ulong3);
1881char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1882char3 __ovld __cnfn convert_char3_rtp(ulong3);
1883char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1884char3 __ovld __cnfn convert_char3_rtn(ulong3);
1885char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1886char3 __ovld __cnfn convert_char3(ulong3);
1887char3 __ovld __cnfn convert_char3_sat(ulong3);
1888char3 __ovld __cnfn convert_char3_rte(float3);
1889char3 __ovld __cnfn convert_char3_sat_rte(float3);
1890char3 __ovld __cnfn convert_char3_rtz(float3);
1891char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1892char3 __ovld __cnfn convert_char3_rtp(float3);
1893char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1894char3 __ovld __cnfn convert_char3_rtn(float3);
1895char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1896char3 __ovld __cnfn convert_char3(float3);
1897char3 __ovld __cnfn convert_char3_sat(float3);
1898uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1899uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1900uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1901uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1902uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1903uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1904uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1905uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1906uchar3 __ovld __cnfn convert_uchar3(char3);
1907uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1908uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1909uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1910uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1911uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1912uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1913uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1914uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1915uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1916uchar3 __ovld __cnfn convert_uchar3(uchar3);
1917uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1918uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1919uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1920uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1921uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1922uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1923uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1924uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1925uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1926uchar3 __ovld __cnfn convert_uchar3(short3);
1927uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1928uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1929uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1930uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1931uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1932uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1933uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1934uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1935uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1936uchar3 __ovld __cnfn convert_uchar3(ushort3);
1937uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1938uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1939uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1940uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1941uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1942uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1943uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1944uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1945uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1946uchar3 __ovld __cnfn convert_uchar3(int3);
1947uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1948uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1949uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1950uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1951uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1952uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1953uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1954uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1955uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1956uchar3 __ovld __cnfn convert_uchar3(uint3);
1957uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1958uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1959uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1960uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1961uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1962uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1963uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1964uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1965uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1966uchar3 __ovld __cnfn convert_uchar3(long3);
1967uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1968uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1969uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1970uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1971uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1972uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1973uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1974uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1975uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1976uchar3 __ovld __cnfn convert_uchar3(ulong3);
1977uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1978uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1979uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1980uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1981uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1982uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1983uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1984uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
1985uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
1986uchar3 __ovld __cnfn convert_uchar3(float3);
1987uchar3 __ovld __cnfn convert_uchar3_sat(float3);
1988short3 __ovld __cnfn convert_short3_rte(char3);
1989short3 __ovld __cnfn convert_short3_sat_rte(char3);
1990short3 __ovld __cnfn convert_short3_rtz(char3);
1991short3 __ovld __cnfn convert_short3_sat_rtz(char3);
1992short3 __ovld __cnfn convert_short3_rtp(char3);
1993short3 __ovld __cnfn convert_short3_sat_rtp(char3);
1994short3 __ovld __cnfn convert_short3_rtn(char3);
1995short3 __ovld __cnfn convert_short3_sat_rtn(char3);
1996short3 __ovld __cnfn convert_short3(char3);
1997short3 __ovld __cnfn convert_short3_sat(char3);
1998short3 __ovld __cnfn convert_short3_rte(uchar3);
1999short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
2000short3 __ovld __cnfn convert_short3_rtz(uchar3);
2001short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
2002short3 __ovld __cnfn convert_short3_rtp(uchar3);
2003short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
2004short3 __ovld __cnfn convert_short3_rtn(uchar3);
2005short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
2006short3 __ovld __cnfn convert_short3(uchar3);
2007short3 __ovld __cnfn convert_short3_sat(uchar3);
2008short3 __ovld __cnfn convert_short3_rte(short3);
2009short3 __ovld __cnfn convert_short3_sat_rte(short3);
2010short3 __ovld __cnfn convert_short3_rtz(short3);
2011short3 __ovld __cnfn convert_short3_sat_rtz(short3);
2012short3 __ovld __cnfn convert_short3_rtp(short3);
2013short3 __ovld __cnfn convert_short3_sat_rtp(short3);
2014short3 __ovld __cnfn convert_short3_rtn(short3);
2015short3 __ovld __cnfn convert_short3_sat_rtn(short3);
2016short3 __ovld __cnfn convert_short3(short3);
2017short3 __ovld __cnfn convert_short3_sat(short3);
2018short3 __ovld __cnfn convert_short3_rte(ushort3);
2019short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
2020short3 __ovld __cnfn convert_short3_rtz(ushort3);
2021short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
2022short3 __ovld __cnfn convert_short3_rtp(ushort3);
2023short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
2024short3 __ovld __cnfn convert_short3_rtn(ushort3);
2025short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
2026short3 __ovld __cnfn convert_short3(ushort3);
2027short3 __ovld __cnfn convert_short3_sat(ushort3);
2028short3 __ovld __cnfn convert_short3_rte(int3);
2029short3 __ovld __cnfn convert_short3_sat_rte(int3);
2030short3 __ovld __cnfn convert_short3_rtz(int3);
2031short3 __ovld __cnfn convert_short3_sat_rtz(int3);
2032short3 __ovld __cnfn convert_short3_rtp(int3);
2033short3 __ovld __cnfn convert_short3_sat_rtp(int3);
2034short3 __ovld __cnfn convert_short3_rtn(int3);
2035short3 __ovld __cnfn convert_short3_sat_rtn(int3);
2036short3 __ovld __cnfn convert_short3(int3);
2037short3 __ovld __cnfn convert_short3_sat(int3);
2038short3 __ovld __cnfn convert_short3_rte(uint3);
2039short3 __ovld __cnfn convert_short3_sat_rte(uint3);
2040short3 __ovld __cnfn convert_short3_rtz(uint3);
2041short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
2042short3 __ovld __cnfn convert_short3_rtp(uint3);
2043short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
2044short3 __ovld __cnfn convert_short3_rtn(uint3);
2045short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
2046short3 __ovld __cnfn convert_short3(uint3);
2047short3 __ovld __cnfn convert_short3_sat(uint3);
2048short3 __ovld __cnfn convert_short3_rte(long3);
2049short3 __ovld __cnfn convert_short3_sat_rte(long3);
2050short3 __ovld __cnfn convert_short3_rtz(long3);
2051short3 __ovld __cnfn convert_short3_sat_rtz(long3);
2052short3 __ovld __cnfn convert_short3_rtp(long3);
2053short3 __ovld __cnfn convert_short3_sat_rtp(long3);
2054short3 __ovld __cnfn convert_short3_rtn(long3);
2055short3 __ovld __cnfn convert_short3_sat_rtn(long3);
2056short3 __ovld __cnfn convert_short3(long3);
2057short3 __ovld __cnfn convert_short3_sat(long3);
2058short3 __ovld __cnfn convert_short3_rte(ulong3);
2059short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
2060short3 __ovld __cnfn convert_short3_rtz(ulong3);
2061short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
2062short3 __ovld __cnfn convert_short3_rtp(ulong3);
2063short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
2064short3 __ovld __cnfn convert_short3_rtn(ulong3);
2065short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
2066short3 __ovld __cnfn convert_short3(ulong3);
2067short3 __ovld __cnfn convert_short3_sat(ulong3);
2068short3 __ovld __cnfn convert_short3_rte(float3);
2069short3 __ovld __cnfn convert_short3_sat_rte(float3);
2070short3 __ovld __cnfn convert_short3_rtz(float3);
2071short3 __ovld __cnfn convert_short3_sat_rtz(float3);
2072short3 __ovld __cnfn convert_short3_rtp(float3);
2073short3 __ovld __cnfn convert_short3_sat_rtp(float3);
2074short3 __ovld __cnfn convert_short3_rtn(float3);
2075short3 __ovld __cnfn convert_short3_sat_rtn(float3);
2076short3 __ovld __cnfn convert_short3(float3);
2077short3 __ovld __cnfn convert_short3_sat(float3);
2078ushort3 __ovld __cnfn convert_ushort3_rte(char3);
2079ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
2080ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
2081ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
2082ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
2083ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
2084ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
2085ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
2086ushort3 __ovld __cnfn convert_ushort3(char3);
2087ushort3 __ovld __cnfn convert_ushort3_sat(char3);
2088ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
2089ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
2090ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
2091ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
2092ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
2093ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
2094ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
2095ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
2096ushort3 __ovld __cnfn convert_ushort3(uchar3);
2097ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
2098ushort3 __ovld __cnfn convert_ushort3_rte(short3);
2099ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
2100ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
2101ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
2102ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
2103ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
2104ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
2105ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
2106ushort3 __ovld __cnfn convert_ushort3(short3);
2107ushort3 __ovld __cnfn convert_ushort3_sat(short3);
2108ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
2109ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
2110ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
2111ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
2112ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
2113ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
2114ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
2115ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
2116ushort3 __ovld __cnfn convert_ushort3(ushort3);
2117ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
2118ushort3 __ovld __cnfn convert_ushort3_rte(int3);
2119ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
2120ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
2121ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
2122ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
2123ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
2124ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
2125ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
2126ushort3 __ovld __cnfn convert_ushort3(int3);
2127ushort3 __ovld __cnfn convert_ushort3_sat(int3);
2128ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
2129ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
2130ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
2131ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
2132ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
2133ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
2134ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
2135ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
2136ushort3 __ovld __cnfn convert_ushort3(uint3);
2137ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
2138ushort3 __ovld __cnfn convert_ushort3_rte(long3);
2139ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
2140ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
2141ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
2142ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
2143ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
2144ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
2145ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
2146ushort3 __ovld __cnfn convert_ushort3(long3);
2147ushort3 __ovld __cnfn convert_ushort3_sat(long3);
2148ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
2149ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
2150ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
2151ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
2152ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
2153ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
2154ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
2155ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
2156ushort3 __ovld __cnfn convert_ushort3(ulong3);
2157ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
2158ushort3 __ovld __cnfn convert_ushort3_rte(float3);
2159ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
2160ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
2161ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
2162ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
2163ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
2164ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
2165ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
2166ushort3 __ovld __cnfn convert_ushort3(float3);
2167ushort3 __ovld __cnfn convert_ushort3_sat(float3);
2168int3 __ovld __cnfn convert_int3_rte(char3);
2169int3 __ovld __cnfn convert_int3_sat_rte(char3);
2170int3 __ovld __cnfn convert_int3_rtz(char3);
2171int3 __ovld __cnfn convert_int3_sat_rtz(char3);
2172int3 __ovld __cnfn convert_int3_rtp(char3);
2173int3 __ovld __cnfn convert_int3_sat_rtp(char3);
2174int3 __ovld __cnfn convert_int3_rtn(char3);
2175int3 __ovld __cnfn convert_int3_sat_rtn(char3);
2176int3 __ovld __cnfn convert_int3(char3);
2177int3 __ovld __cnfn convert_int3_sat(char3);
2178int3 __ovld __cnfn convert_int3_rte(uchar3);
2179int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
2180int3 __ovld __cnfn convert_int3_rtz(uchar3);
2181int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
2182int3 __ovld __cnfn convert_int3_rtp(uchar3);
2183int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
2184int3 __ovld __cnfn convert_int3_rtn(uchar3);
2185int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
2186int3 __ovld __cnfn convert_int3(uchar3);
2187int3 __ovld __cnfn convert_int3_sat(uchar3);
2188int3 __ovld __cnfn convert_int3_rte(short3);
2189int3 __ovld __cnfn convert_int3_sat_rte(short3);
2190int3 __ovld __cnfn convert_int3_rtz(short3);
2191int3 __ovld __cnfn convert_int3_sat_rtz(short3);
2192int3 __ovld __cnfn convert_int3_rtp(short3);
2193int3 __ovld __cnfn convert_int3_sat_rtp(short3);
2194int3 __ovld __cnfn convert_int3_rtn(short3);
2195int3 __ovld __cnfn convert_int3_sat_rtn(short3);
2196int3 __ovld __cnfn convert_int3(short3);
2197int3 __ovld __cnfn convert_int3_sat(short3);
2198int3 __ovld __cnfn convert_int3_rte(ushort3);
2199int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
2200int3 __ovld __cnfn convert_int3_rtz(ushort3);
2201int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
2202int3 __ovld __cnfn convert_int3_rtp(ushort3);
2203int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
2204int3 __ovld __cnfn convert_int3_rtn(ushort3);
2205int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
2206int3 __ovld __cnfn convert_int3(ushort3);
2207int3 __ovld __cnfn convert_int3_sat(ushort3);
2208int3 __ovld __cnfn convert_int3_rte(int3);
2209int3 __ovld __cnfn convert_int3_sat_rte(int3);
2210int3 __ovld __cnfn convert_int3_rtz(int3);
2211int3 __ovld __cnfn convert_int3_sat_rtz(int3);
2212int3 __ovld __cnfn convert_int3_rtp(int3);
2213int3 __ovld __cnfn convert_int3_sat_rtp(int3);
2214int3 __ovld __cnfn convert_int3_rtn(int3);
2215int3 __ovld __cnfn convert_int3_sat_rtn(int3);
2216int3 __ovld __cnfn convert_int3(int3);
2217int3 __ovld __cnfn convert_int3_sat(int3);
2218int3 __ovld __cnfn convert_int3_rte(uint3);
2219int3 __ovld __cnfn convert_int3_sat_rte(uint3);
2220int3 __ovld __cnfn convert_int3_rtz(uint3);
2221int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
2222int3 __ovld __cnfn convert_int3_rtp(uint3);
2223int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
2224int3 __ovld __cnfn convert_int3_rtn(uint3);
2225int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
2226int3 __ovld __cnfn convert_int3(uint3);
2227int3 __ovld __cnfn convert_int3_sat(uint3);
2228int3 __ovld __cnfn convert_int3_rte(long3);
2229int3 __ovld __cnfn convert_int3_sat_rte(long3);
2230int3 __ovld __cnfn convert_int3_rtz(long3);
2231int3 __ovld __cnfn convert_int3_sat_rtz(long3);
2232int3 __ovld __cnfn convert_int3_rtp(long3);
2233int3 __ovld __cnfn convert_int3_sat_rtp(long3);
2234int3 __ovld __cnfn convert_int3_rtn(long3);
2235int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2236int3 __ovld __cnfn convert_int3(long3);
2237int3 __ovld __cnfn convert_int3_sat(long3);
2238int3 __ovld __cnfn convert_int3_rte(ulong3);
2239int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2240int3 __ovld __cnfn convert_int3_rtz(ulong3);
2241int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2242int3 __ovld __cnfn convert_int3_rtp(ulong3);
2243int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2244int3 __ovld __cnfn convert_int3_rtn(ulong3);
2245int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2246int3 __ovld __cnfn convert_int3(ulong3);
2247int3 __ovld __cnfn convert_int3_sat(ulong3);
2248int3 __ovld __cnfn convert_int3_rte(float3);
2249int3 __ovld __cnfn convert_int3_sat_rte(float3);
2250int3 __ovld __cnfn convert_int3_rtz(float3);
2251int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2252int3 __ovld __cnfn convert_int3_rtp(float3);
2253int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2254int3 __ovld __cnfn convert_int3_rtn(float3);
2255int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2256int3 __ovld __cnfn convert_int3(float3);
2257int3 __ovld __cnfn convert_int3_sat(float3);
2258uint3 __ovld __cnfn convert_uint3_rte(char3);
2259uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2260uint3 __ovld __cnfn convert_uint3_rtz(char3);
2261uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2262uint3 __ovld __cnfn convert_uint3_rtp(char3);
2263uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2264uint3 __ovld __cnfn convert_uint3_rtn(char3);
2265uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2266uint3 __ovld __cnfn convert_uint3(char3);
2267uint3 __ovld __cnfn convert_uint3_sat(char3);
2268uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2269uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2270uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2271uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2272uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2273uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2274uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2275uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2276uint3 __ovld __cnfn convert_uint3(uchar3);
2277uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2278uint3 __ovld __cnfn convert_uint3_rte(short3);
2279uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2280uint3 __ovld __cnfn convert_uint3_rtz(short3);
2281uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2282uint3 __ovld __cnfn convert_uint3_rtp(short3);
2283uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2284uint3 __ovld __cnfn convert_uint3_rtn(short3);
2285uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2286uint3 __ovld __cnfn convert_uint3(short3);
2287uint3 __ovld __cnfn convert_uint3_sat(short3);
2288uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2289uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2290uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2291uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2292uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2293uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2294uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2295uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2296uint3 __ovld __cnfn convert_uint3(ushort3);
2297uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2298uint3 __ovld __cnfn convert_uint3_rte(int3);
2299uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2300uint3 __ovld __cnfn convert_uint3_rtz(int3);
2301uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2302uint3 __ovld __cnfn convert_uint3_rtp(int3);
2303uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2304uint3 __ovld __cnfn convert_uint3_rtn(int3);
2305uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2306uint3 __ovld __cnfn convert_uint3(int3);
2307uint3 __ovld __cnfn convert_uint3_sat(int3);
2308uint3 __ovld __cnfn convert_uint3_rte(uint3);
2309uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2310uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2311uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2312uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2313uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2314uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2315uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2316uint3 __ovld __cnfn convert_uint3(uint3);
2317uint3 __ovld __cnfn convert_uint3_sat(uint3);
2318uint3 __ovld __cnfn convert_uint3_rte(long3);
2319uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2320uint3 __ovld __cnfn convert_uint3_rtz(long3);
2321uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2322uint3 __ovld __cnfn convert_uint3_rtp(long3);
2323uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2324uint3 __ovld __cnfn convert_uint3_rtn(long3);
2325uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2326uint3 __ovld __cnfn convert_uint3(long3);
2327uint3 __ovld __cnfn convert_uint3_sat(long3);
2328uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2329uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2330uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2331uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2332uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2333uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2334uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2335uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2336uint3 __ovld __cnfn convert_uint3(ulong3);
2337uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2338uint3 __ovld __cnfn convert_uint3_rte(float3);
2339uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2340uint3 __ovld __cnfn convert_uint3_rtz(float3);
2341uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2342uint3 __ovld __cnfn convert_uint3_rtp(float3);
2343uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2344uint3 __ovld __cnfn convert_uint3_rtn(float3);
2345uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2346uint3 __ovld __cnfn convert_uint3(float3);
2347uint3 __ovld __cnfn convert_uint3_sat(float3);
2348long3 __ovld __cnfn convert_long3_rte(char3);
2349long3 __ovld __cnfn convert_long3_sat_rte(char3);
2350long3 __ovld __cnfn convert_long3_rtz(char3);
2351long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2352long3 __ovld __cnfn convert_long3_rtp(char3);
2353long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2354long3 __ovld __cnfn convert_long3_rtn(char3);
2355long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2356long3 __ovld __cnfn convert_long3(char3);
2357long3 __ovld __cnfn convert_long3_sat(char3);
2358long3 __ovld __cnfn convert_long3_rte(uchar3);
2359long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2360long3 __ovld __cnfn convert_long3_rtz(uchar3);
2361long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2362long3 __ovld __cnfn convert_long3_rtp(uchar3);
2363long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2364long3 __ovld __cnfn convert_long3_rtn(uchar3);
2365long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2366long3 __ovld __cnfn convert_long3(uchar3);
2367long3 __ovld __cnfn convert_long3_sat(uchar3);
2368long3 __ovld __cnfn convert_long3_rte(short3);
2369long3 __ovld __cnfn convert_long3_sat_rte(short3);
2370long3 __ovld __cnfn convert_long3_rtz(short3);
2371long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2372long3 __ovld __cnfn convert_long3_rtp(short3);
2373long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2374long3 __ovld __cnfn convert_long3_rtn(short3);
2375long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2376long3 __ovld __cnfn convert_long3(short3);
2377long3 __ovld __cnfn convert_long3_sat(short3);
2378long3 __ovld __cnfn convert_long3_rte(ushort3);
2379long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2380long3 __ovld __cnfn convert_long3_rtz(ushort3);
2381long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2382long3 __ovld __cnfn convert_long3_rtp(ushort3);
2383long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2384long3 __ovld __cnfn convert_long3_rtn(ushort3);
2385long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2386long3 __ovld __cnfn convert_long3(ushort3);
2387long3 __ovld __cnfn convert_long3_sat(ushort3);
2388long3 __ovld __cnfn convert_long3_rte(int3);
2389long3 __ovld __cnfn convert_long3_sat_rte(int3);
2390long3 __ovld __cnfn convert_long3_rtz(int3);
2391long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2392long3 __ovld __cnfn convert_long3_rtp(int3);
2393long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2394long3 __ovld __cnfn convert_long3_rtn(int3);
2395long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2396long3 __ovld __cnfn convert_long3(int3);
2397long3 __ovld __cnfn convert_long3_sat(int3);
2398long3 __ovld __cnfn convert_long3_rte(uint3);
2399long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2400long3 __ovld __cnfn convert_long3_rtz(uint3);
2401long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2402long3 __ovld __cnfn convert_long3_rtp(uint3);
2403long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2404long3 __ovld __cnfn convert_long3_rtn(uint3);
2405long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2406long3 __ovld __cnfn convert_long3(uint3);
2407long3 __ovld __cnfn convert_long3_sat(uint3);
2408long3 __ovld __cnfn convert_long3_rte(long3);
2409long3 __ovld __cnfn convert_long3_sat_rte(long3);
2410long3 __ovld __cnfn convert_long3_rtz(long3);
2411long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2412long3 __ovld __cnfn convert_long3_rtp(long3);
2413long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2414long3 __ovld __cnfn convert_long3_rtn(long3);
2415long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2416long3 __ovld __cnfn convert_long3(long3);
2417long3 __ovld __cnfn convert_long3_sat(long3);
2418long3 __ovld __cnfn convert_long3_rte(ulong3);
2419long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2420long3 __ovld __cnfn convert_long3_rtz(ulong3);
2421long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2422long3 __ovld __cnfn convert_long3_rtp(ulong3);
2423long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2424long3 __ovld __cnfn convert_long3_rtn(ulong3);
2425long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2426long3 __ovld __cnfn convert_long3(ulong3);
2427long3 __ovld __cnfn convert_long3_sat(ulong3);
2428long3 __ovld __cnfn convert_long3_rte(float3);
2429long3 __ovld __cnfn convert_long3_sat_rte(float3);
2430long3 __ovld __cnfn convert_long3_rtz(float3);
2431long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2432long3 __ovld __cnfn convert_long3_rtp(float3);
2433long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2434long3 __ovld __cnfn convert_long3_rtn(float3);
2435long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2436long3 __ovld __cnfn convert_long3(float3);
2437long3 __ovld __cnfn convert_long3_sat(float3);
2438ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2439ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2440ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2441ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2442ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2443ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2444ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2445ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2446ulong3 __ovld __cnfn convert_ulong3(char3);
2447ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2448ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2449ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2450ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2451ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2452ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2453ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2454ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2455ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2456ulong3 __ovld __cnfn convert_ulong3(uchar3);
2457ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2458ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2459ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2460ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2461ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2462ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2463ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2464ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2465ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2466ulong3 __ovld __cnfn convert_ulong3(short3);
2467ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2468ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2469ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2470ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2471ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2472ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2473ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2474ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2475ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2476ulong3 __ovld __cnfn convert_ulong3(ushort3);
2477ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2478ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2479ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2480ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2481ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2482ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2483ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2484ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2485ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2486ulong3 __ovld __cnfn convert_ulong3(int3);
2487ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2488ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2489ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2490ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2491ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2492ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2493ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2494ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2495ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2496ulong3 __ovld __cnfn convert_ulong3(uint3);
2497ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2498ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2499ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2500ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2501ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2502ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2503ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2504ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2505ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2506ulong3 __ovld __cnfn convert_ulong3(long3);
2507ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2508ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2509ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2510ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2511ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2512ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2513ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2514ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2515ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2516ulong3 __ovld __cnfn convert_ulong3(ulong3);
2517ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2518ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2519ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2520ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2521ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2522ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2523ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2524ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2525ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2526ulong3 __ovld __cnfn convert_ulong3(float3);
2527ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2528float3 __ovld __cnfn convert_float3_rte(char3);
2529float3 __ovld __cnfn convert_float3_rtz(char3);
2530float3 __ovld __cnfn convert_float3_rtp(char3);
2531float3 __ovld __cnfn convert_float3_rtn(char3);
2532float3 __ovld __cnfn convert_float3(char3);
2533float3 __ovld __cnfn convert_float3_rte(uchar3);
2534float3 __ovld __cnfn convert_float3_rtz(uchar3);
2535float3 __ovld __cnfn convert_float3_rtp(uchar3);
2536float3 __ovld __cnfn convert_float3_rtn(uchar3);
2537float3 __ovld __cnfn convert_float3(uchar3);
2538float3 __ovld __cnfn convert_float3_rte(short3);
2539float3 __ovld __cnfn convert_float3_rtz(short3);
2540float3 __ovld __cnfn convert_float3_rtp(short3);
2541float3 __ovld __cnfn convert_float3_rtn(short3);
2542float3 __ovld __cnfn convert_float3(short3);
2543float3 __ovld __cnfn convert_float3_rte(ushort3);
2544float3 __ovld __cnfn convert_float3_rtz(ushort3);
2545float3 __ovld __cnfn convert_float3_rtp(ushort3);
2546float3 __ovld __cnfn convert_float3_rtn(ushort3);
2547float3 __ovld __cnfn convert_float3(ushort3);
2548float3 __ovld __cnfn convert_float3_rte(int3);
2549float3 __ovld __cnfn convert_float3_rtz(int3);
2550float3 __ovld __cnfn convert_float3_rtp(int3);
2551float3 __ovld __cnfn convert_float3_rtn(int3);
2552float3 __ovld __cnfn convert_float3(int3);
2553float3 __ovld __cnfn convert_float3_rte(uint3);
2554float3 __ovld __cnfn convert_float3_rtz(uint3);
2555float3 __ovld __cnfn convert_float3_rtp(uint3);
2556float3 __ovld __cnfn convert_float3_rtn(uint3);
2557float3 __ovld __cnfn convert_float3(uint3);
2558float3 __ovld __cnfn convert_float3_rte(long3);
2559float3 __ovld __cnfn convert_float3_rtz(long3);
2560float3 __ovld __cnfn convert_float3_rtp(long3);
2561float3 __ovld __cnfn convert_float3_rtn(long3);
2562float3 __ovld __cnfn convert_float3(long3);
2563float3 __ovld __cnfn convert_float3_rte(ulong3);
2564float3 __ovld __cnfn convert_float3_rtz(ulong3);
2565float3 __ovld __cnfn convert_float3_rtp(ulong3);
2566float3 __ovld __cnfn convert_float3_rtn(ulong3);
2567float3 __ovld __cnfn convert_float3(ulong3);
2568float3 __ovld __cnfn convert_float3_rte(float3);
2569float3 __ovld __cnfn convert_float3_rtz(float3);
2570float3 __ovld __cnfn convert_float3_rtp(float3);
2571float3 __ovld __cnfn convert_float3_rtn(float3);
2572float3 __ovld __cnfn convert_float3(float3);
2573char4 __ovld __cnfn convert_char4_rte(char4);
2574char4 __ovld __cnfn convert_char4_sat_rte(char4);
2575char4 __ovld __cnfn convert_char4_rtz(char4);
2576char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2577char4 __ovld __cnfn convert_char4_rtp(char4);
2578char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2579char4 __ovld __cnfn convert_char4_rtn(char4);
2580char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2581char4 __ovld __cnfn convert_char4(char4);
2582char4 __ovld __cnfn convert_char4_sat(char4);
2583char4 __ovld __cnfn convert_char4_rte(uchar4);
2584char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2585char4 __ovld __cnfn convert_char4_rtz(uchar4);
2586char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2587char4 __ovld __cnfn convert_char4_rtp(uchar4);
2588char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2589char4 __ovld __cnfn convert_char4_rtn(uchar4);
2590char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2591char4 __ovld __cnfn convert_char4(uchar4);
2592char4 __ovld __cnfn convert_char4_sat(uchar4);
2593char4 __ovld __cnfn convert_char4_rte(short4);
2594char4 __ovld __cnfn convert_char4_sat_rte(short4);
2595char4 __ovld __cnfn convert_char4_rtz(short4);
2596char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2597char4 __ovld __cnfn convert_char4_rtp(short4);
2598char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2599char4 __ovld __cnfn convert_char4_rtn(short4);
2600char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2601char4 __ovld __cnfn convert_char4(short4);
2602char4 __ovld __cnfn convert_char4_sat(short4);
2603char4 __ovld __cnfn convert_char4_rte(ushort4);
2604char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2605char4 __ovld __cnfn convert_char4_rtz(ushort4);
2606char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2607char4 __ovld __cnfn convert_char4_rtp(ushort4);
2608char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2609char4 __ovld __cnfn convert_char4_rtn(ushort4);
2610char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2611char4 __ovld __cnfn convert_char4(ushort4);
2612char4 __ovld __cnfn convert_char4_sat(ushort4);
2613char4 __ovld __cnfn convert_char4_rte(int4);
2614char4 __ovld __cnfn convert_char4_sat_rte(int4);
2615char4 __ovld __cnfn convert_char4_rtz(int4);
2616char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2617char4 __ovld __cnfn convert_char4_rtp(int4);
2618char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2619char4 __ovld __cnfn convert_char4_rtn(int4);
2620char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2621char4 __ovld __cnfn convert_char4(int4);
2622char4 __ovld __cnfn convert_char4_sat(int4);
2623char4 __ovld __cnfn convert_char4_rte(uint4);
2624char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2625char4 __ovld __cnfn convert_char4_rtz(uint4);
2626char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2627char4 __ovld __cnfn convert_char4_rtp(uint4);
2628char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2629char4 __ovld __cnfn convert_char4_rtn(uint4);
2630char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2631char4 __ovld __cnfn convert_char4(uint4);
2632char4 __ovld __cnfn convert_char4_sat(uint4);
2633char4 __ovld __cnfn convert_char4_rte(long4);
2634char4 __ovld __cnfn convert_char4_sat_rte(long4);
2635char4 __ovld __cnfn convert_char4_rtz(long4);
2636char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2637char4 __ovld __cnfn convert_char4_rtp(long4);
2638char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2639char4 __ovld __cnfn convert_char4_rtn(long4);
2640char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2641char4 __ovld __cnfn convert_char4(long4);
2642char4 __ovld __cnfn convert_char4_sat(long4);
2643char4 __ovld __cnfn convert_char4_rte(ulong4);
2644char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2645char4 __ovld __cnfn convert_char4_rtz(ulong4);
2646char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2647char4 __ovld __cnfn convert_char4_rtp(ulong4);
2648char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2649char4 __ovld __cnfn convert_char4_rtn(ulong4);
2650char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2651char4 __ovld __cnfn convert_char4(ulong4);
2652char4 __ovld __cnfn convert_char4_sat(ulong4);
2653char4 __ovld __cnfn convert_char4_rte(float4);
2654char4 __ovld __cnfn convert_char4_sat_rte(float4);
2655char4 __ovld __cnfn convert_char4_rtz(float4);
2656char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2657char4 __ovld __cnfn convert_char4_rtp(float4);
2658char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2659char4 __ovld __cnfn convert_char4_rtn(float4);
2660char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2661char4 __ovld __cnfn convert_char4(float4);
2662char4 __ovld __cnfn convert_char4_sat(float4);
2663uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2664uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2665uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2666uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2667uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2668uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2669uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2670uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2671uchar4 __ovld __cnfn convert_uchar4(char4);
2672uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2673uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2674uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2675uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2676uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2677uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2678uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2679uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2680uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2681uchar4 __ovld __cnfn convert_uchar4(uchar4);
2682uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2683uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2684uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2685uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2686uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2687uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2688uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2689uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2690uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2691uchar4 __ovld __cnfn convert_uchar4(short4);
2692uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2693uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2694uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2695uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2696uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2697uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2698uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2699uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2700uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2701uchar4 __ovld __cnfn convert_uchar4(ushort4);
2702uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2703uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2704uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2705uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2706uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2707uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2708uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2709uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2710uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2711uchar4 __ovld __cnfn convert_uchar4(int4);
2712uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2713uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2714uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2715uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2716uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2717uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2718uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2719uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2720uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2721uchar4 __ovld __cnfn convert_uchar4(uint4);
2722uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2723uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2724uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2725uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2726uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2727uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2728uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2729uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2730uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2731uchar4 __ovld __cnfn convert_uchar4(long4);
2732uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2733uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2734uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2735uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2736uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2737uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2738uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2739uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2740uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2741uchar4 __ovld __cnfn convert_uchar4(ulong4);
2742uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2743uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2744uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2745uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2746uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2747uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2748uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2749uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2750uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2751uchar4 __ovld __cnfn convert_uchar4(float4);
2752uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2753short4 __ovld __cnfn convert_short4_rte(char4);
2754short4 __ovld __cnfn convert_short4_sat_rte(char4);
2755short4 __ovld __cnfn convert_short4_rtz(char4);
2756short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2757short4 __ovld __cnfn convert_short4_rtp(char4);
2758short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2759short4 __ovld __cnfn convert_short4_rtn(char4);
2760short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2761short4 __ovld __cnfn convert_short4(char4);
2762short4 __ovld __cnfn convert_short4_sat(char4);
2763short4 __ovld __cnfn convert_short4_rte(uchar4);
2764short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2765short4 __ovld __cnfn convert_short4_rtz(uchar4);
2766short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2767short4 __ovld __cnfn convert_short4_rtp(uchar4);
2768short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2769short4 __ovld __cnfn convert_short4_rtn(uchar4);
2770short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2771short4 __ovld __cnfn convert_short4(uchar4);
2772short4 __ovld __cnfn convert_short4_sat(uchar4);
2773short4 __ovld __cnfn convert_short4_rte(short4);
2774short4 __ovld __cnfn convert_short4_sat_rte(short4);
2775short4 __ovld __cnfn convert_short4_rtz(short4);
2776short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2777short4 __ovld __cnfn convert_short4_rtp(short4);
2778short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2779short4 __ovld __cnfn convert_short4_rtn(short4);
2780short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2781short4 __ovld __cnfn convert_short4(short4);
2782short4 __ovld __cnfn convert_short4_sat(short4);
2783short4 __ovld __cnfn convert_short4_rte(ushort4);
2784short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2785short4 __ovld __cnfn convert_short4_rtz(ushort4);
2786short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2787short4 __ovld __cnfn convert_short4_rtp(ushort4);
2788short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2789short4 __ovld __cnfn convert_short4_rtn(ushort4);
2790short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2791short4 __ovld __cnfn convert_short4(ushort4);
2792short4 __ovld __cnfn convert_short4_sat(ushort4);
2793short4 __ovld __cnfn convert_short4_rte(int4);
2794short4 __ovld __cnfn convert_short4_sat_rte(int4);
2795short4 __ovld __cnfn convert_short4_rtz(int4);
2796short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2797short4 __ovld __cnfn convert_short4_rtp(int4);
2798short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2799short4 __ovld __cnfn convert_short4_rtn(int4);
2800short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2801short4 __ovld __cnfn convert_short4(int4);
2802short4 __ovld __cnfn convert_short4_sat(int4);
2803short4 __ovld __cnfn convert_short4_rte(uint4);
2804short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2805short4 __ovld __cnfn convert_short4_rtz(uint4);
2806short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2807short4 __ovld __cnfn convert_short4_rtp(uint4);
2808short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2809short4 __ovld __cnfn convert_short4_rtn(uint4);
2810short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2811short4 __ovld __cnfn convert_short4(uint4);
2812short4 __ovld __cnfn convert_short4_sat(uint4);
2813short4 __ovld __cnfn convert_short4_rte(long4);
2814short4 __ovld __cnfn convert_short4_sat_rte(long4);
2815short4 __ovld __cnfn convert_short4_rtz(long4);
2816short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2817short4 __ovld __cnfn convert_short4_rtp(long4);
2818short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2819short4 __ovld __cnfn convert_short4_rtn(long4);
2820short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2821short4 __ovld __cnfn convert_short4(long4);
2822short4 __ovld __cnfn convert_short4_sat(long4);
2823short4 __ovld __cnfn convert_short4_rte(ulong4);
2824short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2825short4 __ovld __cnfn convert_short4_rtz(ulong4);
2826short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2827short4 __ovld __cnfn convert_short4_rtp(ulong4);
2828short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2829short4 __ovld __cnfn convert_short4_rtn(ulong4);
2830short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2831short4 __ovld __cnfn convert_short4(ulong4);
2832short4 __ovld __cnfn convert_short4_sat(ulong4);
2833short4 __ovld __cnfn convert_short4_rte(float4);
2834short4 __ovld __cnfn convert_short4_sat_rte(float4);
2835short4 __ovld __cnfn convert_short4_rtz(float4);
2836short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2837short4 __ovld __cnfn convert_short4_rtp(float4);
2838short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2839short4 __ovld __cnfn convert_short4_rtn(float4);
2840short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2841short4 __ovld __cnfn convert_short4(float4);
2842short4 __ovld __cnfn convert_short4_sat(float4);
2843ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2844ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2845ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2846ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2847ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2848ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2849ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2850ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2851ushort4 __ovld __cnfn convert_ushort4(char4);
2852ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2853ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2854ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2855ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2856ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2857ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2858ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2859ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2860ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2861ushort4 __ovld __cnfn convert_ushort4(uchar4);
2862ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2863ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2864ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2865ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2866ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2867ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2868ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2869ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2870ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2871ushort4 __ovld __cnfn convert_ushort4(short4);
2872ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2873ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2874ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2875ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2876ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2877ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2878ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2879ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2880ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2881ushort4 __ovld __cnfn convert_ushort4(ushort4);
2882ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2883ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2884ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2885ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2886ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2887ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2888ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2889ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2890ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2891ushort4 __ovld __cnfn convert_ushort4(int4);
2892ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2893ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2894ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2895ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2896ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2897ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2898ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2899ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2900ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2901ushort4 __ovld __cnfn convert_ushort4(uint4);
2902ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2903ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2904ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2905ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2906ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2907ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2908ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2909ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2910ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2911ushort4 __ovld __cnfn convert_ushort4(long4);
2912ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2913ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2914ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2915ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2916ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2917ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2918ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2919ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2920ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2921ushort4 __ovld __cnfn convert_ushort4(ulong4);
2922ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2923ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2924ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2925ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2926ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2927ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2928ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2929ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2930ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2931ushort4 __ovld __cnfn convert_ushort4(float4);
2932ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2933int4 __ovld __cnfn convert_int4_rte(char4);
2934int4 __ovld __cnfn convert_int4_sat_rte(char4);
2935int4 __ovld __cnfn convert_int4_rtz(char4);
2936int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2937int4 __ovld __cnfn convert_int4_rtp(char4);
2938int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2939int4 __ovld __cnfn convert_int4_rtn(char4);
2940int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2941int4 __ovld __cnfn convert_int4(char4);
2942int4 __ovld __cnfn convert_int4_sat(char4);
2943int4 __ovld __cnfn convert_int4_rte(uchar4);
2944int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2945int4 __ovld __cnfn convert_int4_rtz(uchar4);
2946int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2947int4 __ovld __cnfn convert_int4_rtp(uchar4);
2948int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2949int4 __ovld __cnfn convert_int4_rtn(uchar4);
2950int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2951int4 __ovld __cnfn convert_int4(uchar4);
2952int4 __ovld __cnfn convert_int4_sat(uchar4);
2953int4 __ovld __cnfn convert_int4_rte(short4);
2954int4 __ovld __cnfn convert_int4_sat_rte(short4);
2955int4 __ovld __cnfn convert_int4_rtz(short4);
2956int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2957int4 __ovld __cnfn convert_int4_rtp(short4);
2958int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2959int4 __ovld __cnfn convert_int4_rtn(short4);
2960int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2961int4 __ovld __cnfn convert_int4(short4);
2962int4 __ovld __cnfn convert_int4_sat(short4);
2963int4 __ovld __cnfn convert_int4_rte(ushort4);
2964int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2965int4 __ovld __cnfn convert_int4_rtz(ushort4);
2966int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2967int4 __ovld __cnfn convert_int4_rtp(ushort4);
2968int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2969int4 __ovld __cnfn convert_int4_rtn(ushort4);
2970int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2971int4 __ovld __cnfn convert_int4(ushort4);
2972int4 __ovld __cnfn convert_int4_sat(ushort4);
2973int4 __ovld __cnfn convert_int4_rte(int4);
2974int4 __ovld __cnfn convert_int4_sat_rte(int4);
2975int4 __ovld __cnfn convert_int4_rtz(int4);
2976int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2977int4 __ovld __cnfn convert_int4_rtp(int4);
2978int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2979int4 __ovld __cnfn convert_int4_rtn(int4);
2980int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2981int4 __ovld __cnfn convert_int4(int4);
2982int4 __ovld __cnfn convert_int4_sat(int4);
2983int4 __ovld __cnfn convert_int4_rte(uint4);
2984int4 __ovld __cnfn convert_int4_sat_rte(uint4);
2985int4 __ovld __cnfn convert_int4_rtz(uint4);
2986int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
2987int4 __ovld __cnfn convert_int4_rtp(uint4);
2988int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
2989int4 __ovld __cnfn convert_int4_rtn(uint4);
2990int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
2991int4 __ovld __cnfn convert_int4(uint4);
2992int4 __ovld __cnfn convert_int4_sat(uint4);
2993int4 __ovld __cnfn convert_int4_rte(long4);
2994int4 __ovld __cnfn convert_int4_sat_rte(long4);
2995int4 __ovld __cnfn convert_int4_rtz(long4);
2996int4 __ovld __cnfn convert_int4_sat_rtz(long4);
2997int4 __ovld __cnfn convert_int4_rtp(long4);
2998int4 __ovld __cnfn convert_int4_sat_rtp(long4);
2999int4 __ovld __cnfn convert_int4_rtn(long4);
3000int4 __ovld __cnfn convert_int4_sat_rtn(long4);
3001int4 __ovld __cnfn convert_int4(long4);
3002int4 __ovld __cnfn convert_int4_sat(long4);
3003int4 __ovld __cnfn convert_int4_rte(ulong4);
3004int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
3005int4 __ovld __cnfn convert_int4_rtz(ulong4);
3006int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
3007int4 __ovld __cnfn convert_int4_rtp(ulong4);
3008int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
3009int4 __ovld __cnfn convert_int4_rtn(ulong4);
3010int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
3011int4 __ovld __cnfn convert_int4(ulong4);
3012int4 __ovld __cnfn convert_int4_sat(ulong4);
3013int4 __ovld __cnfn convert_int4_rte(float4);
3014int4 __ovld __cnfn convert_int4_sat_rte(float4);
3015int4 __ovld __cnfn convert_int4_rtz(float4);
3016int4 __ovld __cnfn convert_int4_sat_rtz(float4);
3017int4 __ovld __cnfn convert_int4_rtp(float4);
3018int4 __ovld __cnfn convert_int4_sat_rtp(float4);
3019int4 __ovld __cnfn convert_int4_rtn(float4);
3020int4 __ovld __cnfn convert_int4_sat_rtn(float4);
3021int4 __ovld __cnfn convert_int4(float4);
3022int4 __ovld __cnfn convert_int4_sat(float4);
3023uint4 __ovld __cnfn convert_uint4_rte(char4);
3024uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
3025uint4 __ovld __cnfn convert_uint4_rtz(char4);
3026uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
3027uint4 __ovld __cnfn convert_uint4_rtp(char4);
3028uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
3029uint4 __ovld __cnfn convert_uint4_rtn(char4);
3030uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
3031uint4 __ovld __cnfn convert_uint4(char4);
3032uint4 __ovld __cnfn convert_uint4_sat(char4);
3033uint4 __ovld __cnfn convert_uint4_rte(uchar4);
3034uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
3035uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
3036uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
3037uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
3038uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
3039uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
3040uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
3041uint4 __ovld __cnfn convert_uint4(uchar4);
3042uint4 __ovld __cnfn convert_uint4_sat(uchar4);
3043uint4 __ovld __cnfn convert_uint4_rte(short4);
3044uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
3045uint4 __ovld __cnfn convert_uint4_rtz(short4);
3046uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
3047uint4 __ovld __cnfn convert_uint4_rtp(short4);
3048uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
3049uint4 __ovld __cnfn convert_uint4_rtn(short4);
3050uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
3051uint4 __ovld __cnfn convert_uint4(short4);
3052uint4 __ovld __cnfn convert_uint4_sat(short4);
3053uint4 __ovld __cnfn convert_uint4_rte(ushort4);
3054uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
3055uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
3056uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
3057uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
3058uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
3059uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
3060uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
3061uint4 __ovld __cnfn convert_uint4(ushort4);
3062uint4 __ovld __cnfn convert_uint4_sat(ushort4);
3063uint4 __ovld __cnfn convert_uint4_rte(int4);
3064uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
3065uint4 __ovld __cnfn convert_uint4_rtz(int4);
3066uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
3067uint4 __ovld __cnfn convert_uint4_rtp(int4);
3068uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
3069uint4 __ovld __cnfn convert_uint4_rtn(int4);
3070uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
3071uint4 __ovld __cnfn convert_uint4(int4);
3072uint4 __ovld __cnfn convert_uint4_sat(int4);
3073uint4 __ovld __cnfn convert_uint4_rte(uint4);
3074uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
3075uint4 __ovld __cnfn convert_uint4_rtz(uint4);
3076uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
3077uint4 __ovld __cnfn convert_uint4_rtp(uint4);
3078uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
3079uint4 __ovld __cnfn convert_uint4_rtn(uint4);
3080uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
3081uint4 __ovld __cnfn convert_uint4(uint4);
3082uint4 __ovld __cnfn convert_uint4_sat(uint4);
3083uint4 __ovld __cnfn convert_uint4_rte(long4);
3084uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
3085uint4 __ovld __cnfn convert_uint4_rtz(long4);
3086uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
3087uint4 __ovld __cnfn convert_uint4_rtp(long4);
3088uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
3089uint4 __ovld __cnfn convert_uint4_rtn(long4);
3090uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
3091uint4 __ovld __cnfn convert_uint4(long4);
3092uint4 __ovld __cnfn convert_uint4_sat(long4);
3093uint4 __ovld __cnfn convert_uint4_rte(ulong4);
3094uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
3095uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
3096uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
3097uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
3098uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
3099uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
3100uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
3101uint4 __ovld __cnfn convert_uint4(ulong4);
3102uint4 __ovld __cnfn convert_uint4_sat(ulong4);
3103uint4 __ovld __cnfn convert_uint4_rte(float4);
3104uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
3105uint4 __ovld __cnfn convert_uint4_rtz(float4);
3106uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
3107uint4 __ovld __cnfn convert_uint4_rtp(float4);
3108uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
3109uint4 __ovld __cnfn convert_uint4_rtn(float4);
3110uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
3111uint4 __ovld __cnfn convert_uint4(float4);
3112uint4 __ovld __cnfn convert_uint4_sat(float4);
3113long4 __ovld __cnfn convert_long4_rte(char4);
3114long4 __ovld __cnfn convert_long4_sat_rte(char4);
3115long4 __ovld __cnfn convert_long4_rtz(char4);
3116long4 __ovld __cnfn convert_long4_sat_rtz(char4);
3117long4 __ovld __cnfn convert_long4_rtp(char4);
3118long4 __ovld __cnfn convert_long4_sat_rtp(char4);
3119long4 __ovld __cnfn convert_long4_rtn(char4);
3120long4 __ovld __cnfn convert_long4_sat_rtn(char4);
3121long4 __ovld __cnfn convert_long4(char4);
3122long4 __ovld __cnfn convert_long4_sat(char4);
3123long4 __ovld __cnfn convert_long4_rte(uchar4);
3124long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
3125long4 __ovld __cnfn convert_long4_rtz(uchar4);
3126long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
3127long4 __ovld __cnfn convert_long4_rtp(uchar4);
3128long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
3129long4 __ovld __cnfn convert_long4_rtn(uchar4);
3130long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
3131long4 __ovld __cnfn convert_long4(uchar4);
3132long4 __ovld __cnfn convert_long4_sat(uchar4);
3133long4 __ovld __cnfn convert_long4_rte(short4);
3134long4 __ovld __cnfn convert_long4_sat_rte(short4);
3135long4 __ovld __cnfn convert_long4_rtz(short4);
3136long4 __ovld __cnfn convert_long4_sat_rtz(short4);
3137long4 __ovld __cnfn convert_long4_rtp(short4);
3138long4 __ovld __cnfn convert_long4_sat_rtp(short4);
3139long4 __ovld __cnfn convert_long4_rtn(short4);
3140long4 __ovld __cnfn convert_long4_sat_rtn(short4);
3141long4 __ovld __cnfn convert_long4(short4);
3142long4 __ovld __cnfn convert_long4_sat(short4);
3143long4 __ovld __cnfn convert_long4_rte(ushort4);
3144long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
3145long4 __ovld __cnfn convert_long4_rtz(ushort4);
3146long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
3147long4 __ovld __cnfn convert_long4_rtp(ushort4);
3148long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
3149long4 __ovld __cnfn convert_long4_rtn(ushort4);
3150long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
3151long4 __ovld __cnfn convert_long4(ushort4);
3152long4 __ovld __cnfn convert_long4_sat(ushort4);
3153long4 __ovld __cnfn convert_long4_rte(int4);
3154long4 __ovld __cnfn convert_long4_sat_rte(int4);
3155long4 __ovld __cnfn convert_long4_rtz(int4);
3156long4 __ovld __cnfn convert_long4_sat_rtz(int4);
3157long4 __ovld __cnfn convert_long4_rtp(int4);
3158long4 __ovld __cnfn convert_long4_sat_rtp(int4);
3159long4 __ovld __cnfn convert_long4_rtn(int4);
3160long4 __ovld __cnfn convert_long4_sat_rtn(int4);
3161long4 __ovld __cnfn convert_long4(int4);
3162long4 __ovld __cnfn convert_long4_sat(int4);
3163long4 __ovld __cnfn convert_long4_rte(uint4);
3164long4 __ovld __cnfn convert_long4_sat_rte(uint4);
3165long4 __ovld __cnfn convert_long4_rtz(uint4);
3166long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
3167long4 __ovld __cnfn convert_long4_rtp(uint4);
3168long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
3169long4 __ovld __cnfn convert_long4_rtn(uint4);
3170long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
3171long4 __ovld __cnfn convert_long4(uint4);
3172long4 __ovld __cnfn convert_long4_sat(uint4);
3173long4 __ovld __cnfn convert_long4_rte(long4);
3174long4 __ovld __cnfn convert_long4_sat_rte(long4);
3175long4 __ovld __cnfn convert_long4_rtz(long4);
3176long4 __ovld __cnfn convert_long4_sat_rtz(long4);
3177long4 __ovld __cnfn convert_long4_rtp(long4);
3178long4 __ovld __cnfn convert_long4_sat_rtp(long4);
3179long4 __ovld __cnfn convert_long4_rtn(long4);
3180long4 __ovld __cnfn convert_long4_sat_rtn(long4);
3181long4 __ovld __cnfn convert_long4(long4);
3182long4 __ovld __cnfn convert_long4_sat(long4);
3183long4 __ovld __cnfn convert_long4_rte(ulong4);
3184long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
3185long4 __ovld __cnfn convert_long4_rtz(ulong4);
3186long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
3187long4 __ovld __cnfn convert_long4_rtp(ulong4);
3188long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
3189long4 __ovld __cnfn convert_long4_rtn(ulong4);
3190long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
3191long4 __ovld __cnfn convert_long4(ulong4);
3192long4 __ovld __cnfn convert_long4_sat(ulong4);
3193long4 __ovld __cnfn convert_long4_rte(float4);
3194long4 __ovld __cnfn convert_long4_sat_rte(float4);
3195long4 __ovld __cnfn convert_long4_rtz(float4);
3196long4 __ovld __cnfn convert_long4_sat_rtz(float4);
3197long4 __ovld __cnfn convert_long4_rtp(float4);
3198long4 __ovld __cnfn convert_long4_sat_rtp(float4);
3199long4 __ovld __cnfn convert_long4_rtn(float4);
3200long4 __ovld __cnfn convert_long4_sat_rtn(float4);
3201long4 __ovld __cnfn convert_long4(float4);
3202long4 __ovld __cnfn convert_long4_sat(float4);
3203ulong4 __ovld __cnfn convert_ulong4_rte(char4);
3204ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
3205ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
3206ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
3207ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
3208ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
3209ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
3210ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
3211ulong4 __ovld __cnfn convert_ulong4(char4);
3212ulong4 __ovld __cnfn convert_ulong4_sat(char4);
3213ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
3214ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
3215ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
3216ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
3217ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
3218ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
3219ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
3220ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
3221ulong4 __ovld __cnfn convert_ulong4(uchar4);
3222ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
3223ulong4 __ovld __cnfn convert_ulong4_rte(short4);
3224ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
3225ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
3226ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
3227ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
3228ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
3229ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
3230ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
3231ulong4 __ovld __cnfn convert_ulong4(short4);
3232ulong4 __ovld __cnfn convert_ulong4_sat(short4);
3233ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
3234ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3235ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3236ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3237ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3238ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3239ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3240ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3241ulong4 __ovld __cnfn convert_ulong4(ushort4);
3242ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3243ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3244ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3245ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3246ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3247ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3248ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3249ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3250ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3251ulong4 __ovld __cnfn convert_ulong4(int4);
3252ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3253ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3254ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3255ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3256ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3257ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3258ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3259ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3260ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3261ulong4 __ovld __cnfn convert_ulong4(uint4);
3262ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3263ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3264ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3265ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3266ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3267ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3268ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3269ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3270ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3271ulong4 __ovld __cnfn convert_ulong4(long4);
3272ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3273ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3274ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3275ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3276ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3277ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3278ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3279ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3280ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3281ulong4 __ovld __cnfn convert_ulong4(ulong4);
3282ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3283ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3284ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3285ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3286ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3287ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3288ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3289ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3290ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3291ulong4 __ovld __cnfn convert_ulong4(float4);
3292ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3293float4 __ovld __cnfn convert_float4_rte(char4);
3294float4 __ovld __cnfn convert_float4_rtz(char4);
3295float4 __ovld __cnfn convert_float4_rtp(char4);
3296float4 __ovld __cnfn convert_float4_rtn(char4);
3297float4 __ovld __cnfn convert_float4(char4);
3298float4 __ovld __cnfn convert_float4_rte(uchar4);
3299float4 __ovld __cnfn convert_float4_rtz(uchar4);
3300float4 __ovld __cnfn convert_float4_rtp(uchar4);
3301float4 __ovld __cnfn convert_float4_rtn(uchar4);
3302float4 __ovld __cnfn convert_float4(uchar4);
3303float4 __ovld __cnfn convert_float4_rte(short4);
3304float4 __ovld __cnfn convert_float4_rtz(short4);
3305float4 __ovld __cnfn convert_float4_rtp(short4);
3306float4 __ovld __cnfn convert_float4_rtn(short4);
3307float4 __ovld __cnfn convert_float4(short4);
3308float4 __ovld __cnfn convert_float4_rte(ushort4);
3309float4 __ovld __cnfn convert_float4_rtz(ushort4);
3310float4 __ovld __cnfn convert_float4_rtp(ushort4);
3311float4 __ovld __cnfn convert_float4_rtn(ushort4);
3312float4 __ovld __cnfn convert_float4(ushort4);
3313float4 __ovld __cnfn convert_float4_rte(int4);
3314float4 __ovld __cnfn convert_float4_rtz(int4);
3315float4 __ovld __cnfn convert_float4_rtp(int4);
3316float4 __ovld __cnfn convert_float4_rtn(int4);
3317float4 __ovld __cnfn convert_float4(int4);
3318float4 __ovld __cnfn convert_float4_rte(uint4);
3319float4 __ovld __cnfn convert_float4_rtz(uint4);
3320float4 __ovld __cnfn convert_float4_rtp(uint4);
3321float4 __ovld __cnfn convert_float4_rtn(uint4);
3322float4 __ovld __cnfn convert_float4(uint4);
3323float4 __ovld __cnfn convert_float4_rte(long4);
3324float4 __ovld __cnfn convert_float4_rtz(long4);
3325float4 __ovld __cnfn convert_float4_rtp(long4);
3326float4 __ovld __cnfn convert_float4_rtn(long4);
3327float4 __ovld __cnfn convert_float4(long4);
3328float4 __ovld __cnfn convert_float4_rte(ulong4);
3329float4 __ovld __cnfn convert_float4_rtz(ulong4);
3330float4 __ovld __cnfn convert_float4_rtp(ulong4);
3331float4 __ovld __cnfn convert_float4_rtn(ulong4);
3332float4 __ovld __cnfn convert_float4(ulong4);
3333float4 __ovld __cnfn convert_float4_rte(float4);
3334float4 __ovld __cnfn convert_float4_rtz(float4);
3335float4 __ovld __cnfn convert_float4_rtp(float4);
3336float4 __ovld __cnfn convert_float4_rtn(float4);
3337float4 __ovld __cnfn convert_float4(float4);
3338char8 __ovld __cnfn convert_char8_rte(char8);
3339char8 __ovld __cnfn convert_char8_sat_rte(char8);
3340char8 __ovld __cnfn convert_char8_rtz(char8);
3341char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3342char8 __ovld __cnfn convert_char8_rtp(char8);
3343char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3344char8 __ovld __cnfn convert_char8_rtn(char8);
3345char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3346char8 __ovld __cnfn convert_char8(char8);
3347char8 __ovld __cnfn convert_char8_sat(char8);
3348char8 __ovld __cnfn convert_char8_rte(uchar8);
3349char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3350char8 __ovld __cnfn convert_char8_rtz(uchar8);
3351char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3352char8 __ovld __cnfn convert_char8_rtp(uchar8);
3353char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3354char8 __ovld __cnfn convert_char8_rtn(uchar8);
3355char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3356char8 __ovld __cnfn convert_char8(uchar8);
3357char8 __ovld __cnfn convert_char8_sat(uchar8);
3358char8 __ovld __cnfn convert_char8_rte(short8);
3359char8 __ovld __cnfn convert_char8_sat_rte(short8);
3360char8 __ovld __cnfn convert_char8_rtz(short8);
3361char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3362char8 __ovld __cnfn convert_char8_rtp(short8);
3363char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3364char8 __ovld __cnfn convert_char8_rtn(short8);
3365char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3366char8 __ovld __cnfn convert_char8(short8);
3367char8 __ovld __cnfn convert_char8_sat(short8);
3368char8 __ovld __cnfn convert_char8_rte(ushort8);
3369char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3370char8 __ovld __cnfn convert_char8_rtz(ushort8);
3371char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3372char8 __ovld __cnfn convert_char8_rtp(ushort8);
3373char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3374char8 __ovld __cnfn convert_char8_rtn(ushort8);
3375char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3376char8 __ovld __cnfn convert_char8(ushort8);
3377char8 __ovld __cnfn convert_char8_sat(ushort8);
3378char8 __ovld __cnfn convert_char8_rte(int8);
3379char8 __ovld __cnfn convert_char8_sat_rte(int8);
3380char8 __ovld __cnfn convert_char8_rtz(int8);
3381char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3382char8 __ovld __cnfn convert_char8_rtp(int8);
3383char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3384char8 __ovld __cnfn convert_char8_rtn(int8);
3385char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3386char8 __ovld __cnfn convert_char8(int8);
3387char8 __ovld __cnfn convert_char8_sat(int8);
3388char8 __ovld __cnfn convert_char8_rte(uint8);
3389char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3390char8 __ovld __cnfn convert_char8_rtz(uint8);
3391char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3392char8 __ovld __cnfn convert_char8_rtp(uint8);
3393char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3394char8 __ovld __cnfn convert_char8_rtn(uint8);
3395char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3396char8 __ovld __cnfn convert_char8(uint8);
3397char8 __ovld __cnfn convert_char8_sat(uint8);
3398char8 __ovld __cnfn convert_char8_rte(long8);
3399char8 __ovld __cnfn convert_char8_sat_rte(long8);
3400char8 __ovld __cnfn convert_char8_rtz(long8);
3401char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3402char8 __ovld __cnfn convert_char8_rtp(long8);
3403char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3404char8 __ovld __cnfn convert_char8_rtn(long8);
3405char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3406char8 __ovld __cnfn convert_char8(long8);
3407char8 __ovld __cnfn convert_char8_sat(long8);
3408char8 __ovld __cnfn convert_char8_rte(ulong8);
3409char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3410char8 __ovld __cnfn convert_char8_rtz(ulong8);
3411char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3412char8 __ovld __cnfn convert_char8_rtp(ulong8);
3413char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3414char8 __ovld __cnfn convert_char8_rtn(ulong8);
3415char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3416char8 __ovld __cnfn convert_char8(ulong8);
3417char8 __ovld __cnfn convert_char8_sat(ulong8);
3418char8 __ovld __cnfn convert_char8_rte(float8);
3419char8 __ovld __cnfn convert_char8_sat_rte(float8);
3420char8 __ovld __cnfn convert_char8_rtz(float8);
3421char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3422char8 __ovld __cnfn convert_char8_rtp(float8);
3423char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3424char8 __ovld __cnfn convert_char8_rtn(float8);
3425char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3426char8 __ovld __cnfn convert_char8(float8);
3427char8 __ovld __cnfn convert_char8_sat(float8);
3428uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3429uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3430uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3431uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3432uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3433uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3434uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3435uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3436uchar8 __ovld __cnfn convert_uchar8(char8);
3437uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3438uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3439uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3440uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3441uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3442uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3443uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3444uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3445uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3446uchar8 __ovld __cnfn convert_uchar8(uchar8);
3447uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3448uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3449uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3450uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3451uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3452uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3453uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3454uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3455uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3456uchar8 __ovld __cnfn convert_uchar8(short8);
3457uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3458uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3459uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3460uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3461uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3462uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3463uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3464uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3465uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3466uchar8 __ovld __cnfn convert_uchar8(ushort8);
3467uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3468uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3469uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3470uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3471uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3472uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3473uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3474uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3475uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3476uchar8 __ovld __cnfn convert_uchar8(int8);
3477uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3478uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3479uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3480uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3481uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3482uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3483uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3484uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3485uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3486uchar8 __ovld __cnfn convert_uchar8(uint8);
3487uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3488uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3489uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3490uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3491uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3492uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3493uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3494uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3495uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3496uchar8 __ovld __cnfn convert_uchar8(long8);
3497uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3498uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3499uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3500uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3501uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3502uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3503uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3504uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3505uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3506uchar8 __ovld __cnfn convert_uchar8(ulong8);
3507uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3508uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3509uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3510uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3511uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3512uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3513uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3514uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3515uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3516uchar8 __ovld __cnfn convert_uchar8(float8);
3517uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3518short8 __ovld __cnfn convert_short8_rte(char8);
3519short8 __ovld __cnfn convert_short8_sat_rte(char8);
3520short8 __ovld __cnfn convert_short8_rtz(char8);
3521short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3522short8 __ovld __cnfn convert_short8_rtp(char8);
3523short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3524short8 __ovld __cnfn convert_short8_rtn(char8);
3525short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3526short8 __ovld __cnfn convert_short8(char8);
3527short8 __ovld __cnfn convert_short8_sat(char8);
3528short8 __ovld __cnfn convert_short8_rte(uchar8);
3529short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3530short8 __ovld __cnfn convert_short8_rtz(uchar8);
3531short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3532short8 __ovld __cnfn convert_short8_rtp(uchar8);
3533short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3534short8 __ovld __cnfn convert_short8_rtn(uchar8);
3535short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3536short8 __ovld __cnfn convert_short8(uchar8);
3537short8 __ovld __cnfn convert_short8_sat(uchar8);
3538short8 __ovld __cnfn convert_short8_rte(short8);
3539short8 __ovld __cnfn convert_short8_sat_rte(short8);
3540short8 __ovld __cnfn convert_short8_rtz(short8);
3541short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3542short8 __ovld __cnfn convert_short8_rtp(short8);
3543short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3544short8 __ovld __cnfn convert_short8_rtn(short8);
3545short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3546short8 __ovld __cnfn convert_short8(short8);
3547short8 __ovld __cnfn convert_short8_sat(short8);
3548short8 __ovld __cnfn convert_short8_rte(ushort8);
3549short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3550short8 __ovld __cnfn convert_short8_rtz(ushort8);
3551short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3552short8 __ovld __cnfn convert_short8_rtp(ushort8);
3553short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3554short8 __ovld __cnfn convert_short8_rtn(ushort8);
3555short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3556short8 __ovld __cnfn convert_short8(ushort8);
3557short8 __ovld __cnfn convert_short8_sat(ushort8);
3558short8 __ovld __cnfn convert_short8_rte(int8);
3559short8 __ovld __cnfn convert_short8_sat_rte(int8);
3560short8 __ovld __cnfn convert_short8_rtz(int8);
3561short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3562short8 __ovld __cnfn convert_short8_rtp(int8);
3563short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3564short8 __ovld __cnfn convert_short8_rtn(int8);
3565short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3566short8 __ovld __cnfn convert_short8(int8);
3567short8 __ovld __cnfn convert_short8_sat(int8);
3568short8 __ovld __cnfn convert_short8_rte(uint8);
3569short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3570short8 __ovld __cnfn convert_short8_rtz(uint8);
3571short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3572short8 __ovld __cnfn convert_short8_rtp(uint8);
3573short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3574short8 __ovld __cnfn convert_short8_rtn(uint8);
3575short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3576short8 __ovld __cnfn convert_short8(uint8);
3577short8 __ovld __cnfn convert_short8_sat(uint8);
3578short8 __ovld __cnfn convert_short8_rte(long8);
3579short8 __ovld __cnfn convert_short8_sat_rte(long8);
3580short8 __ovld __cnfn convert_short8_rtz(long8);
3581short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3582short8 __ovld __cnfn convert_short8_rtp(long8);
3583short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3584short8 __ovld __cnfn convert_short8_rtn(long8);
3585short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3586short8 __ovld __cnfn convert_short8(long8);
3587short8 __ovld __cnfn convert_short8_sat(long8);
3588short8 __ovld __cnfn convert_short8_rte(ulong8);
3589short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3590short8 __ovld __cnfn convert_short8_rtz(ulong8);
3591short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3592short8 __ovld __cnfn convert_short8_rtp(ulong8);
3593short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3594short8 __ovld __cnfn convert_short8_rtn(ulong8);
3595short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3596short8 __ovld __cnfn convert_short8(ulong8);
3597short8 __ovld __cnfn convert_short8_sat(ulong8);
3598short8 __ovld __cnfn convert_short8_rte(float8);
3599short8 __ovld __cnfn convert_short8_sat_rte(float8);
3600short8 __ovld __cnfn convert_short8_rtz(float8);
3601short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3602short8 __ovld __cnfn convert_short8_rtp(float8);
3603short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3604short8 __ovld __cnfn convert_short8_rtn(float8);
3605short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3606short8 __ovld __cnfn convert_short8(float8);
3607short8 __ovld __cnfn convert_short8_sat(float8);
3608ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3609ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3610ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3611ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3612ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3613ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3614ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3615ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3616ushort8 __ovld __cnfn convert_ushort8(char8);
3617ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3618ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3619ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3620ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3621ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3622ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3623ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3624ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3625ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3626ushort8 __ovld __cnfn convert_ushort8(uchar8);
3627ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3628ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3629ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3630ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3631ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3632ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3633ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3634ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3635ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3636ushort8 __ovld __cnfn convert_ushort8(short8);
3637ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3638ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3639ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3640ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3641ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3642ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3643ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3644ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3645ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3646ushort8 __ovld __cnfn convert_ushort8(ushort8);
3647ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3648ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3649ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3650ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3651ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3652ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3653ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3654ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3655ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3656ushort8 __ovld __cnfn convert_ushort8(int8);
3657ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3658ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3659ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3660ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3661ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3662ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3663ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3664ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3665ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3666ushort8 __ovld __cnfn convert_ushort8(uint8);
3667ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3668ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3669ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3670ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3671ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3672ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3673ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3674ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3675ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3676ushort8 __ovld __cnfn convert_ushort8(long8);
3677ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3678ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3679ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3680ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3681ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3682ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3683ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3684ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3685ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3686ushort8 __ovld __cnfn convert_ushort8(ulong8);
3687ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3688ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3689ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3690ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3691ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3692ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3693ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3694ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3695ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3696ushort8 __ovld __cnfn convert_ushort8(float8);
3697ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3698int8 __ovld __cnfn convert_int8_rte(char8);
3699int8 __ovld __cnfn convert_int8_sat_rte(char8);
3700int8 __ovld __cnfn convert_int8_rtz(char8);
3701int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3702int8 __ovld __cnfn convert_int8_rtp(char8);
3703int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3704int8 __ovld __cnfn convert_int8_rtn(char8);
3705int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3706int8 __ovld __cnfn convert_int8(char8);
3707int8 __ovld __cnfn convert_int8_sat(char8);
3708int8 __ovld __cnfn convert_int8_rte(uchar8);
3709int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3710int8 __ovld __cnfn convert_int8_rtz(uchar8);
3711int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3712int8 __ovld __cnfn convert_int8_rtp(uchar8);
3713int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3714int8 __ovld __cnfn convert_int8_rtn(uchar8);
3715int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3716int8 __ovld __cnfn convert_int8(uchar8);
3717int8 __ovld __cnfn convert_int8_sat(uchar8);
3718int8 __ovld __cnfn convert_int8_rte(short8);
3719int8 __ovld __cnfn convert_int8_sat_rte(short8);
3720int8 __ovld __cnfn convert_int8_rtz(short8);
3721int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3722int8 __ovld __cnfn convert_int8_rtp(short8);
3723int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3724int8 __ovld __cnfn convert_int8_rtn(short8);
3725int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3726int8 __ovld __cnfn convert_int8(short8);
3727int8 __ovld __cnfn convert_int8_sat(short8);
3728int8 __ovld __cnfn convert_int8_rte(ushort8);
3729int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3730int8 __ovld __cnfn convert_int8_rtz(ushort8);
3731int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3732int8 __ovld __cnfn convert_int8_rtp(ushort8);
3733int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3734int8 __ovld __cnfn convert_int8_rtn(ushort8);
3735int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3736int8 __ovld __cnfn convert_int8(ushort8);
3737int8 __ovld __cnfn convert_int8_sat(ushort8);
3738int8 __ovld __cnfn convert_int8_rte(int8);
3739int8 __ovld __cnfn convert_int8_sat_rte(int8);
3740int8 __ovld __cnfn convert_int8_rtz(int8);
3741int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3742int8 __ovld __cnfn convert_int8_rtp(int8);
3743int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3744int8 __ovld __cnfn convert_int8_rtn(int8);
3745int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3746int8 __ovld __cnfn convert_int8(int8);
3747int8 __ovld __cnfn convert_int8_sat(int8);
3748int8 __ovld __cnfn convert_int8_rte(uint8);
3749int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3750int8 __ovld __cnfn convert_int8_rtz(uint8);
3751int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3752int8 __ovld __cnfn convert_int8_rtp(uint8);
3753int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3754int8 __ovld __cnfn convert_int8_rtn(uint8);
3755int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3756int8 __ovld __cnfn convert_int8(uint8);
3757int8 __ovld __cnfn convert_int8_sat(uint8);
3758int8 __ovld __cnfn convert_int8_rte(long8);
3759int8 __ovld __cnfn convert_int8_sat_rte(long8);
3760int8 __ovld __cnfn convert_int8_rtz(long8);
3761int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3762int8 __ovld __cnfn convert_int8_rtp(long8);
3763int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3764int8 __ovld __cnfn convert_int8_rtn(long8);
3765int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3766int8 __ovld __cnfn convert_int8(long8);
3767int8 __ovld __cnfn convert_int8_sat(long8);
3768int8 __ovld __cnfn convert_int8_rte(ulong8);
3769int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3770int8 __ovld __cnfn convert_int8_rtz(ulong8);
3771int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3772int8 __ovld __cnfn convert_int8_rtp(ulong8);
3773int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3774int8 __ovld __cnfn convert_int8_rtn(ulong8);
3775int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3776int8 __ovld __cnfn convert_int8(ulong8);
3777int8 __ovld __cnfn convert_int8_sat(ulong8);
3778int8 __ovld __cnfn convert_int8_rte(float8);
3779int8 __ovld __cnfn convert_int8_sat_rte(float8);
3780int8 __ovld __cnfn convert_int8_rtz(float8);
3781int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3782int8 __ovld __cnfn convert_int8_rtp(float8);
3783int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3784int8 __ovld __cnfn convert_int8_rtn(float8);
3785int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3786int8 __ovld __cnfn convert_int8(float8);
3787int8 __ovld __cnfn convert_int8_sat(float8);
3788uint8 __ovld __cnfn convert_uint8_rte(char8);
3789uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3790uint8 __ovld __cnfn convert_uint8_rtz(char8);
3791uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3792uint8 __ovld __cnfn convert_uint8_rtp(char8);
3793uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3794uint8 __ovld __cnfn convert_uint8_rtn(char8);
3795uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3796uint8 __ovld __cnfn convert_uint8(char8);
3797uint8 __ovld __cnfn convert_uint8_sat(char8);
3798uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3799uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3800uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3801uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3802uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3803uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3804uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3805uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3806uint8 __ovld __cnfn convert_uint8(uchar8);
3807uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3808uint8 __ovld __cnfn convert_uint8_rte(short8);
3809uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3810uint8 __ovld __cnfn convert_uint8_rtz(short8);
3811uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3812uint8 __ovld __cnfn convert_uint8_rtp(short8);
3813uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3814uint8 __ovld __cnfn convert_uint8_rtn(short8);
3815uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3816uint8 __ovld __cnfn convert_uint8(short8);
3817uint8 __ovld __cnfn convert_uint8_sat(short8);
3818uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3819uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3820uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3821uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3822uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3823uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3824uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3825uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3826uint8 __ovld __cnfn convert_uint8(ushort8);
3827uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3828uint8 __ovld __cnfn convert_uint8_rte(int8);
3829uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3830uint8 __ovld __cnfn convert_uint8_rtz(int8);
3831uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3832uint8 __ovld __cnfn convert_uint8_rtp(int8);
3833uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3834uint8 __ovld __cnfn convert_uint8_rtn(int8);
3835uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3836uint8 __ovld __cnfn convert_uint8(int8);
3837uint8 __ovld __cnfn convert_uint8_sat(int8);
3838uint8 __ovld __cnfn convert_uint8_rte(uint8);
3839uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3840uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3841uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3842uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3843uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3844uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3845uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3846uint8 __ovld __cnfn convert_uint8(uint8);
3847uint8 __ovld __cnfn convert_uint8_sat(uint8);
3848uint8 __ovld __cnfn convert_uint8_rte(long8);
3849uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3850uint8 __ovld __cnfn convert_uint8_rtz(long8);
3851uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3852uint8 __ovld __cnfn convert_uint8_rtp(long8);
3853uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3854uint8 __ovld __cnfn convert_uint8_rtn(long8);
3855uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3856uint8 __ovld __cnfn convert_uint8(long8);
3857uint8 __ovld __cnfn convert_uint8_sat(long8);
3858uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3859uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3860uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3861uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3862uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3863uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3864uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3865uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3866uint8 __ovld __cnfn convert_uint8(ulong8);
3867uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3868uint8 __ovld __cnfn convert_uint8_rte(float8);
3869uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3870uint8 __ovld __cnfn convert_uint8_rtz(float8);
3871uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3872uint8 __ovld __cnfn convert_uint8_rtp(float8);
3873uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3874uint8 __ovld __cnfn convert_uint8_rtn(float8);
3875uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3876uint8 __ovld __cnfn convert_uint8(float8);
3877uint8 __ovld __cnfn convert_uint8_sat(float8);
3878long8 __ovld __cnfn convert_long8_rte(char8);
3879long8 __ovld __cnfn convert_long8_sat_rte(char8);
3880long8 __ovld __cnfn convert_long8_rtz(char8);
3881long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3882long8 __ovld __cnfn convert_long8_rtp(char8);
3883long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3884long8 __ovld __cnfn convert_long8_rtn(char8);
3885long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3886long8 __ovld __cnfn convert_long8(char8);
3887long8 __ovld __cnfn convert_long8_sat(char8);
3888long8 __ovld __cnfn convert_long8_rte(uchar8);
3889long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3890long8 __ovld __cnfn convert_long8_rtz(uchar8);
3891long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3892long8 __ovld __cnfn convert_long8_rtp(uchar8);
3893long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3894long8 __ovld __cnfn convert_long8_rtn(uchar8);
3895long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3896long8 __ovld __cnfn convert_long8(uchar8);
3897long8 __ovld __cnfn convert_long8_sat(uchar8);
3898long8 __ovld __cnfn convert_long8_rte(short8);
3899long8 __ovld __cnfn convert_long8_sat_rte(short8);
3900long8 __ovld __cnfn convert_long8_rtz(short8);
3901long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3902long8 __ovld __cnfn convert_long8_rtp(short8);
3903long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3904long8 __ovld __cnfn convert_long8_rtn(short8);
3905long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3906long8 __ovld __cnfn convert_long8(short8);
3907long8 __ovld __cnfn convert_long8_sat(short8);
3908long8 __ovld __cnfn convert_long8_rte(ushort8);
3909long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3910long8 __ovld __cnfn convert_long8_rtz(ushort8);
3911long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3912long8 __ovld __cnfn convert_long8_rtp(ushort8);
3913long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3914long8 __ovld __cnfn convert_long8_rtn(ushort8);
3915long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3916long8 __ovld __cnfn convert_long8(ushort8);
3917long8 __ovld __cnfn convert_long8_sat(ushort8);
3918long8 __ovld __cnfn convert_long8_rte(int8);
3919long8 __ovld __cnfn convert_long8_sat_rte(int8);
3920long8 __ovld __cnfn convert_long8_rtz(int8);
3921long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3922long8 __ovld __cnfn convert_long8_rtp(int8);
3923long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3924long8 __ovld __cnfn convert_long8_rtn(int8);
3925long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3926long8 __ovld __cnfn convert_long8(int8);
3927long8 __ovld __cnfn convert_long8_sat(int8);
3928long8 __ovld __cnfn convert_long8_rte(uint8);
3929long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3930long8 __ovld __cnfn convert_long8_rtz(uint8);
3931long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3932long8 __ovld __cnfn convert_long8_rtp(uint8);
3933long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3934long8 __ovld __cnfn convert_long8_rtn(uint8);
3935long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3936long8 __ovld __cnfn convert_long8(uint8);
3937long8 __ovld __cnfn convert_long8_sat(uint8);
3938long8 __ovld __cnfn convert_long8_rte(long8);
3939long8 __ovld __cnfn convert_long8_sat_rte(long8);
3940long8 __ovld __cnfn convert_long8_rtz(long8);
3941long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3942long8 __ovld __cnfn convert_long8_rtp(long8);
3943long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3944long8 __ovld __cnfn convert_long8_rtn(long8);
3945long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3946long8 __ovld __cnfn convert_long8(long8);
3947long8 __ovld __cnfn convert_long8_sat(long8);
3948long8 __ovld __cnfn convert_long8_rte(ulong8);
3949long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3950long8 __ovld __cnfn convert_long8_rtz(ulong8);
3951long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3952long8 __ovld __cnfn convert_long8_rtp(ulong8);
3953long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3954long8 __ovld __cnfn convert_long8_rtn(ulong8);
3955long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3956long8 __ovld __cnfn convert_long8(ulong8);
3957long8 __ovld __cnfn convert_long8_sat(ulong8);
3958long8 __ovld __cnfn convert_long8_rte(float8);
3959long8 __ovld __cnfn convert_long8_sat_rte(float8);
3960long8 __ovld __cnfn convert_long8_rtz(float8);
3961long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3962long8 __ovld __cnfn convert_long8_rtp(float8);
3963long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3964long8 __ovld __cnfn convert_long8_rtn(float8);
3965long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3966long8 __ovld __cnfn convert_long8(float8);
3967long8 __ovld __cnfn convert_long8_sat(float8);
3968ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3969ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3970ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3971ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3972ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3973ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3974ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3975ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3976ulong8 __ovld __cnfn convert_ulong8(char8);
3977ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3978ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3979ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3980ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3981ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3982ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3983ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3984ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
3985ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
3986ulong8 __ovld __cnfn convert_ulong8(uchar8);
3987ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
3988ulong8 __ovld __cnfn convert_ulong8_rte(short8);
3989ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
3990ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
3991ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
3992ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
3993ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
3994ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
3995ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
3996ulong8 __ovld __cnfn convert_ulong8(short8);
3997ulong8 __ovld __cnfn convert_ulong8_sat(short8);
3998ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
3999ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
4000ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
4001ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
4002ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
4003ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
4004ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
4005ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
4006ulong8 __ovld __cnfn convert_ulong8(ushort8);
4007ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
4008ulong8 __ovld __cnfn convert_ulong8_rte(int8);
4009ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
4010ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
4011ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
4012ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
4013ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
4014ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
4015ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
4016ulong8 __ovld __cnfn convert_ulong8(int8);
4017ulong8 __ovld __cnfn convert_ulong8_sat(int8);
4018ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
4019ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
4020ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
4021ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
4022ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
4023ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
4024ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
4025ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
4026ulong8 __ovld __cnfn convert_ulong8(uint8);
4027ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
4028ulong8 __ovld __cnfn convert_ulong8_rte(long8);
4029ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
4030ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
4031ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
4032ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
4033ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
4034ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
4035ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
4036ulong8 __ovld __cnfn convert_ulong8(long8);
4037ulong8 __ovld __cnfn convert_ulong8_sat(long8);
4038ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
4039ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
4040ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
4041ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
4042ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
4043ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
4044ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
4045ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
4046ulong8 __ovld __cnfn convert_ulong8(ulong8);
4047ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
4048ulong8 __ovld __cnfn convert_ulong8_rte(float8);
4049ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
4050ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
4051ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
4052ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
4053ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
4054ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
4055ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
4056ulong8 __ovld __cnfn convert_ulong8(float8);
4057ulong8 __ovld __cnfn convert_ulong8_sat(float8);
4058float8 __ovld __cnfn convert_float8_rte(char8);
4059float8 __ovld __cnfn convert_float8_rtz(char8);
4060float8 __ovld __cnfn convert_float8_rtp(char8);
4061float8 __ovld __cnfn convert_float8_rtn(char8);
4062float8 __ovld __cnfn convert_float8(char8);
4063float8 __ovld __cnfn convert_float8_rte(uchar8);
4064float8 __ovld __cnfn convert_float8_rtz(uchar8);
4065float8 __ovld __cnfn convert_float8_rtp(uchar8);
4066float8 __ovld __cnfn convert_float8_rtn(uchar8);
4067float8 __ovld __cnfn convert_float8(uchar8);
4068float8 __ovld __cnfn convert_float8_rte(short8);
4069float8 __ovld __cnfn convert_float8_rtz(short8);
4070float8 __ovld __cnfn convert_float8_rtp(short8);
4071float8 __ovld __cnfn convert_float8_rtn(short8);
4072float8 __ovld __cnfn convert_float8(short8);
4073float8 __ovld __cnfn convert_float8_rte(ushort8);
4074float8 __ovld __cnfn convert_float8_rtz(ushort8);
4075float8 __ovld __cnfn convert_float8_rtp(ushort8);
4076float8 __ovld __cnfn convert_float8_rtn(ushort8);
4077float8 __ovld __cnfn convert_float8(ushort8);
4078float8 __ovld __cnfn convert_float8_rte(int8);
4079float8 __ovld __cnfn convert_float8_rtz(int8);
4080float8 __ovld __cnfn convert_float8_rtp(int8);
4081float8 __ovld __cnfn convert_float8_rtn(int8);
4082float8 __ovld __cnfn convert_float8(int8);
4083float8 __ovld __cnfn convert_float8_rte(uint8);
4084float8 __ovld __cnfn convert_float8_rtz(uint8);
4085float8 __ovld __cnfn convert_float8_rtp(uint8);
4086float8 __ovld __cnfn convert_float8_rtn(uint8);
4087float8 __ovld __cnfn convert_float8(uint8);
4088float8 __ovld __cnfn convert_float8_rte(long8);
4089float8 __ovld __cnfn convert_float8_rtz(long8);
4090float8 __ovld __cnfn convert_float8_rtp(long8);
4091float8 __ovld __cnfn convert_float8_rtn(long8);
4092float8 __ovld __cnfn convert_float8(long8);
4093float8 __ovld __cnfn convert_float8_rte(ulong8);
4094float8 __ovld __cnfn convert_float8_rtz(ulong8);
4095float8 __ovld __cnfn convert_float8_rtp(ulong8);
4096float8 __ovld __cnfn convert_float8_rtn(ulong8);
4097float8 __ovld __cnfn convert_float8(ulong8);
4098float8 __ovld __cnfn convert_float8_rte(float8);
4099float8 __ovld __cnfn convert_float8_rtz(float8);
4100float8 __ovld __cnfn convert_float8_rtp(float8);
4101float8 __ovld __cnfn convert_float8_rtn(float8);
4102float8 __ovld __cnfn convert_float8(float8);
4103char16 __ovld __cnfn convert_char16_rte(char16);
4104char16 __ovld __cnfn convert_char16_sat_rte(char16);
4105char16 __ovld __cnfn convert_char16_rtz(char16);
4106char16 __ovld __cnfn convert_char16_sat_rtz(char16);
4107char16 __ovld __cnfn convert_char16_rtp(char16);
4108char16 __ovld __cnfn convert_char16_sat_rtp(char16);
4109char16 __ovld __cnfn convert_char16_rtn(char16);
4110char16 __ovld __cnfn convert_char16_sat_rtn(char16);
4111char16 __ovld __cnfn convert_char16(char16);
4112char16 __ovld __cnfn convert_char16_sat(char16);
4113char16 __ovld __cnfn convert_char16_rte(uchar16);
4114char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
4115char16 __ovld __cnfn convert_char16_rtz(uchar16);
4116char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
4117char16 __ovld __cnfn convert_char16_rtp(uchar16);
4118char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
4119char16 __ovld __cnfn convert_char16_rtn(uchar16);
4120char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
4121char16 __ovld __cnfn convert_char16(uchar16);
4122char16 __ovld __cnfn convert_char16_sat(uchar16);
4123char16 __ovld __cnfn convert_char16_rte(short16);
4124char16 __ovld __cnfn convert_char16_sat_rte(short16);
4125char16 __ovld __cnfn convert_char16_rtz(short16);
4126char16 __ovld __cnfn convert_char16_sat_rtz(short16);
4127char16 __ovld __cnfn convert_char16_rtp(short16);
4128char16 __ovld __cnfn convert_char16_sat_rtp(short16);
4129char16 __ovld __cnfn convert_char16_rtn(short16);
4130char16 __ovld __cnfn convert_char16_sat_rtn(short16);
4131char16 __ovld __cnfn convert_char16(short16);
4132char16 __ovld __cnfn convert_char16_sat(short16);
4133char16 __ovld __cnfn convert_char16_rte(ushort16);
4134char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
4135char16 __ovld __cnfn convert_char16_rtz(ushort16);
4136char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
4137char16 __ovld __cnfn convert_char16_rtp(ushort16);
4138char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
4139char16 __ovld __cnfn convert_char16_rtn(ushort16);
4140char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
4141char16 __ovld __cnfn convert_char16(ushort16);
4142char16 __ovld __cnfn convert_char16_sat(ushort16);
4143char16 __ovld __cnfn convert_char16_rte(int16);
4144char16 __ovld __cnfn convert_char16_sat_rte(int16);
4145char16 __ovld __cnfn convert_char16_rtz(int16);
4146char16 __ovld __cnfn convert_char16_sat_rtz(int16);
4147char16 __ovld __cnfn convert_char16_rtp(int16);
4148char16 __ovld __cnfn convert_char16_sat_rtp(int16);
4149char16 __ovld __cnfn convert_char16_rtn(int16);
4150char16 __ovld __cnfn convert_char16_sat_rtn(int16);
4151char16 __ovld __cnfn convert_char16(int16);
4152char16 __ovld __cnfn convert_char16_sat(int16);
4153char16 __ovld __cnfn convert_char16_rte(uint16);
4154char16 __ovld __cnfn convert_char16_sat_rte(uint16);
4155char16 __ovld __cnfn convert_char16_rtz(uint16);
4156char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
4157char16 __ovld __cnfn convert_char16_rtp(uint16);
4158char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
4159char16 __ovld __cnfn convert_char16_rtn(uint16);
4160char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
4161char16 __ovld __cnfn convert_char16(uint16);
4162char16 __ovld __cnfn convert_char16_sat(uint16);
4163char16 __ovld __cnfn convert_char16_rte(long16);
4164char16 __ovld __cnfn convert_char16_sat_rte(long16);
4165char16 __ovld __cnfn convert_char16_rtz(long16);
4166char16 __ovld __cnfn convert_char16_sat_rtz(long16);
4167char16 __ovld __cnfn convert_char16_rtp(long16);
4168char16 __ovld __cnfn convert_char16_sat_rtp(long16);
4169char16 __ovld __cnfn convert_char16_rtn(long16);
4170char16 __ovld __cnfn convert_char16_sat_rtn(long16);
4171char16 __ovld __cnfn convert_char16(long16);
4172char16 __ovld __cnfn convert_char16_sat(long16);
4173char16 __ovld __cnfn convert_char16_rte(ulong16);
4174char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
4175char16 __ovld __cnfn convert_char16_rtz(ulong16);
4176char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
4177char16 __ovld __cnfn convert_char16_rtp(ulong16);
4178char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
4179char16 __ovld __cnfn convert_char16_rtn(ulong16);
4180char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
4181char16 __ovld __cnfn convert_char16(ulong16);
4182char16 __ovld __cnfn convert_char16_sat(ulong16);
4183char16 __ovld __cnfn convert_char16_rte(float16);
4184char16 __ovld __cnfn convert_char16_sat_rte(float16);
4185char16 __ovld __cnfn convert_char16_rtz(float16);
4186char16 __ovld __cnfn convert_char16_sat_rtz(float16);
4187char16 __ovld __cnfn convert_char16_rtp(float16);
4188char16 __ovld __cnfn convert_char16_sat_rtp(float16);
4189char16 __ovld __cnfn convert_char16_rtn(float16);
4190char16 __ovld __cnfn convert_char16_sat_rtn(float16);
4191char16 __ovld __cnfn convert_char16(float16);
4192char16 __ovld __cnfn convert_char16_sat(float16);
4193uchar16 __ovld __cnfn convert_uchar16_rte(char16);
4194uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
4195uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
4196uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
4197uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
4198uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
4199uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
4200uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
4201uchar16 __ovld __cnfn convert_uchar16(char16);
4202uchar16 __ovld __cnfn convert_uchar16_sat(char16);
4203uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
4204uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
4205uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
4206uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
4207uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
4208uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
4209uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
4210uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
4211uchar16 __ovld __cnfn convert_uchar16(uchar16);
4212uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
4213uchar16 __ovld __cnfn convert_uchar16_rte(short16);
4214uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
4215uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
4216uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
4217uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
4218uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
4219uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
4220uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
4221uchar16 __ovld __cnfn convert_uchar16(short16);
4222uchar16 __ovld __cnfn convert_uchar16_sat(short16);
4223uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
4224uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
4225uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
4226uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
4227uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
4228uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
4229uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
4230uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
4231uchar16 __ovld __cnfn convert_uchar16(ushort16);
4232uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
4233uchar16 __ovld __cnfn convert_uchar16_rte(int16);
4234uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4235uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4236uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4237uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4238uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4239uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4240uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4241uchar16 __ovld __cnfn convert_uchar16(int16);
4242uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4243uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4244uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4245uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4246uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4247uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4248uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4249uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4250uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4251uchar16 __ovld __cnfn convert_uchar16(uint16);
4252uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4253uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4254uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4255uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4256uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4257uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4258uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4259uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4260uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4261uchar16 __ovld __cnfn convert_uchar16(long16);
4262uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4263uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4264uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4265uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4266uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4267uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4268uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4269uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4270uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4271uchar16 __ovld __cnfn convert_uchar16(ulong16);
4272uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4273uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4274uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4275uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4276uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4277uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4278uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4279uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4280uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4281uchar16 __ovld __cnfn convert_uchar16(float16);
4282uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4283short16 __ovld __cnfn convert_short16_rte(char16);
4284short16 __ovld __cnfn convert_short16_sat_rte(char16);
4285short16 __ovld __cnfn convert_short16_rtz(char16);
4286short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4287short16 __ovld __cnfn convert_short16_rtp(char16);
4288short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4289short16 __ovld __cnfn convert_short16_rtn(char16);
4290short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4291short16 __ovld __cnfn convert_short16(char16);
4292short16 __ovld __cnfn convert_short16_sat(char16);
4293short16 __ovld __cnfn convert_short16_rte(uchar16);
4294short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4295short16 __ovld __cnfn convert_short16_rtz(uchar16);
4296short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4297short16 __ovld __cnfn convert_short16_rtp(uchar16);
4298short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4299short16 __ovld __cnfn convert_short16_rtn(uchar16);
4300short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4301short16 __ovld __cnfn convert_short16(uchar16);
4302short16 __ovld __cnfn convert_short16_sat(uchar16);
4303short16 __ovld __cnfn convert_short16_rte(short16);
4304short16 __ovld __cnfn convert_short16_sat_rte(short16);
4305short16 __ovld __cnfn convert_short16_rtz(short16);
4306short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4307short16 __ovld __cnfn convert_short16_rtp(short16);
4308short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4309short16 __ovld __cnfn convert_short16_rtn(short16);
4310short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4311short16 __ovld __cnfn convert_short16(short16);
4312short16 __ovld __cnfn convert_short16_sat(short16);
4313short16 __ovld __cnfn convert_short16_rte(ushort16);
4314short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4315short16 __ovld __cnfn convert_short16_rtz(ushort16);
4316short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4317short16 __ovld __cnfn convert_short16_rtp(ushort16);
4318short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4319short16 __ovld __cnfn convert_short16_rtn(ushort16);
4320short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4321short16 __ovld __cnfn convert_short16(ushort16);
4322short16 __ovld __cnfn convert_short16_sat(ushort16);
4323short16 __ovld __cnfn convert_short16_rte(int16);
4324short16 __ovld __cnfn convert_short16_sat_rte(int16);
4325short16 __ovld __cnfn convert_short16_rtz(int16);
4326short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4327short16 __ovld __cnfn convert_short16_rtp(int16);
4328short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4329short16 __ovld __cnfn convert_short16_rtn(int16);
4330short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4331short16 __ovld __cnfn convert_short16(int16);
4332short16 __ovld __cnfn convert_short16_sat(int16);
4333short16 __ovld __cnfn convert_short16_rte(uint16);
4334short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4335short16 __ovld __cnfn convert_short16_rtz(uint16);
4336short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4337short16 __ovld __cnfn convert_short16_rtp(uint16);
4338short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4339short16 __ovld __cnfn convert_short16_rtn(uint16);
4340short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4341short16 __ovld __cnfn convert_short16(uint16);
4342short16 __ovld __cnfn convert_short16_sat(uint16);
4343short16 __ovld __cnfn convert_short16_rte(long16);
4344short16 __ovld __cnfn convert_short16_sat_rte(long16);
4345short16 __ovld __cnfn convert_short16_rtz(long16);
4346short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4347short16 __ovld __cnfn convert_short16_rtp(long16);
4348short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4349short16 __ovld __cnfn convert_short16_rtn(long16);
4350short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4351short16 __ovld __cnfn convert_short16(long16);
4352short16 __ovld __cnfn convert_short16_sat(long16);
4353short16 __ovld __cnfn convert_short16_rte(ulong16);
4354short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4355short16 __ovld __cnfn convert_short16_rtz(ulong16);
4356short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4357short16 __ovld __cnfn convert_short16_rtp(ulong16);
4358short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4359short16 __ovld __cnfn convert_short16_rtn(ulong16);
4360short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4361short16 __ovld __cnfn convert_short16(ulong16);
4362short16 __ovld __cnfn convert_short16_sat(ulong16);
4363short16 __ovld __cnfn convert_short16_rte(float16);
4364short16 __ovld __cnfn convert_short16_sat_rte(float16);
4365short16 __ovld __cnfn convert_short16_rtz(float16);
4366short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4367short16 __ovld __cnfn convert_short16_rtp(float16);
4368short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4369short16 __ovld __cnfn convert_short16_rtn(float16);
4370short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4371short16 __ovld __cnfn convert_short16(float16);
4372short16 __ovld __cnfn convert_short16_sat(float16);
4373ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4374ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4375ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4376ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4377ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4378ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4379ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4380ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4381ushort16 __ovld __cnfn convert_ushort16(char16);
4382ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4383ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4384ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4385ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4386ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4387ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4388ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4389ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4390ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4391ushort16 __ovld __cnfn convert_ushort16(uchar16);
4392ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4393ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4394ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4395ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4396ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4397ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4398ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4399ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4400ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4401ushort16 __ovld __cnfn convert_ushort16(short16);
4402ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4403ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4404ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4405ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4406ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4407ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4408ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4409ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4410ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4411ushort16 __ovld __cnfn convert_ushort16(ushort16);
4412ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4413ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4414ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4415ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4416ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4417ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4418ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4419ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4420ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4421ushort16 __ovld __cnfn convert_ushort16(int16);
4422ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4423ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4424ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4425ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4426ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4427ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4428ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4429ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4430ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4431ushort16 __ovld __cnfn convert_ushort16(uint16);
4432ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4433ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4434ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4435ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4436ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4437ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4438ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4439ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4440ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4441ushort16 __ovld __cnfn convert_ushort16(long16);
4442ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4443ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4444ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4445ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4446ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4447ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4448ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4449ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4450ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4451ushort16 __ovld __cnfn convert_ushort16(ulong16);
4452ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4453ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4454ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4455ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4456ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4457ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4458ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4459ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4460ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4461ushort16 __ovld __cnfn convert_ushort16(float16);
4462ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4463int16 __ovld __cnfn convert_int16_rte(char16);
4464int16 __ovld __cnfn convert_int16_sat_rte(char16);
4465int16 __ovld __cnfn convert_int16_rtz(char16);
4466int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4467int16 __ovld __cnfn convert_int16_rtp(char16);
4468int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4469int16 __ovld __cnfn convert_int16_rtn(char16);
4470int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4471int16 __ovld __cnfn convert_int16(char16);
4472int16 __ovld __cnfn convert_int16_sat(char16);
4473int16 __ovld __cnfn convert_int16_rte(uchar16);
4474int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4475int16 __ovld __cnfn convert_int16_rtz(uchar16);
4476int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4477int16 __ovld __cnfn convert_int16_rtp(uchar16);
4478int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4479int16 __ovld __cnfn convert_int16_rtn(uchar16);
4480int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4481int16 __ovld __cnfn convert_int16(uchar16);
4482int16 __ovld __cnfn convert_int16_sat(uchar16);
4483int16 __ovld __cnfn convert_int16_rte(short16);
4484int16 __ovld __cnfn convert_int16_sat_rte(short16);
4485int16 __ovld __cnfn convert_int16_rtz(short16);
4486int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4487int16 __ovld __cnfn convert_int16_rtp(short16);
4488int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4489int16 __ovld __cnfn convert_int16_rtn(short16);
4490int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4491int16 __ovld __cnfn convert_int16(short16);
4492int16 __ovld __cnfn convert_int16_sat(short16);
4493int16 __ovld __cnfn convert_int16_rte(ushort16);
4494int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4495int16 __ovld __cnfn convert_int16_rtz(ushort16);
4496int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4497int16 __ovld __cnfn convert_int16_rtp(ushort16);
4498int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4499int16 __ovld __cnfn convert_int16_rtn(ushort16);
4500int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4501int16 __ovld __cnfn convert_int16(ushort16);
4502int16 __ovld __cnfn convert_int16_sat(ushort16);
4503int16 __ovld __cnfn convert_int16_rte(int16);
4504int16 __ovld __cnfn convert_int16_sat_rte(int16);
4505int16 __ovld __cnfn convert_int16_rtz(int16);
4506int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4507int16 __ovld __cnfn convert_int16_rtp(int16);
4508int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4509int16 __ovld __cnfn convert_int16_rtn(int16);
4510int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4511int16 __ovld __cnfn convert_int16(int16);
4512int16 __ovld __cnfn convert_int16_sat(int16);
4513int16 __ovld __cnfn convert_int16_rte(uint16);
4514int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4515int16 __ovld __cnfn convert_int16_rtz(uint16);
4516int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4517int16 __ovld __cnfn convert_int16_rtp(uint16);
4518int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4519int16 __ovld __cnfn convert_int16_rtn(uint16);
4520int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4521int16 __ovld __cnfn convert_int16(uint16);
4522int16 __ovld __cnfn convert_int16_sat(uint16);
4523int16 __ovld __cnfn convert_int16_rte(long16);
4524int16 __ovld __cnfn convert_int16_sat_rte(long16);
4525int16 __ovld __cnfn convert_int16_rtz(long16);
4526int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4527int16 __ovld __cnfn convert_int16_rtp(long16);
4528int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4529int16 __ovld __cnfn convert_int16_rtn(long16);
4530int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4531int16 __ovld __cnfn convert_int16(long16);
4532int16 __ovld __cnfn convert_int16_sat(long16);
4533int16 __ovld __cnfn convert_int16_rte(ulong16);
4534int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4535int16 __ovld __cnfn convert_int16_rtz(ulong16);
4536int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4537int16 __ovld __cnfn convert_int16_rtp(ulong16);
4538int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4539int16 __ovld __cnfn convert_int16_rtn(ulong16);
4540int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4541int16 __ovld __cnfn convert_int16(ulong16);
4542int16 __ovld __cnfn convert_int16_sat(ulong16);
4543int16 __ovld __cnfn convert_int16_rte(float16);
4544int16 __ovld __cnfn convert_int16_sat_rte(float16);
4545int16 __ovld __cnfn convert_int16_rtz(float16);
4546int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4547int16 __ovld __cnfn convert_int16_rtp(float16);
4548int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4549int16 __ovld __cnfn convert_int16_rtn(float16);
4550int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4551int16 __ovld __cnfn convert_int16(float16);
4552int16 __ovld __cnfn convert_int16_sat(float16);
4553uint16 __ovld __cnfn convert_uint16_rte(char16);
4554uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4555uint16 __ovld __cnfn convert_uint16_rtz(char16);
4556uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4557uint16 __ovld __cnfn convert_uint16_rtp(char16);
4558uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4559uint16 __ovld __cnfn convert_uint16_rtn(char16);
4560uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4561uint16 __ovld __cnfn convert_uint16(char16);
4562uint16 __ovld __cnfn convert_uint16_sat(char16);
4563uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4564uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4565uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4566uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4567uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4568uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4569uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4570uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4571uint16 __ovld __cnfn convert_uint16(uchar16);
4572uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4573uint16 __ovld __cnfn convert_uint16_rte(short16);
4574uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4575uint16 __ovld __cnfn convert_uint16_rtz(short16);
4576uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4577uint16 __ovld __cnfn convert_uint16_rtp(short16);
4578uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4579uint16 __ovld __cnfn convert_uint16_rtn(short16);
4580uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4581uint16 __ovld __cnfn convert_uint16(short16);
4582uint16 __ovld __cnfn convert_uint16_sat(short16);
4583uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4584uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4585uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4586uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4587uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4588uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4589uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4590uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4591uint16 __ovld __cnfn convert_uint16(ushort16);
4592uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4593uint16 __ovld __cnfn convert_uint16_rte(int16);
4594uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4595uint16 __ovld __cnfn convert_uint16_rtz(int16);
4596uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4597uint16 __ovld __cnfn convert_uint16_rtp(int16);
4598uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4599uint16 __ovld __cnfn convert_uint16_rtn(int16);
4600uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4601uint16 __ovld __cnfn convert_uint16(int16);
4602uint16 __ovld __cnfn convert_uint16_sat(int16);
4603uint16 __ovld __cnfn convert_uint16_rte(uint16);
4604uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4605uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4606uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4607uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4608uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4609uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4610uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4611uint16 __ovld __cnfn convert_uint16(uint16);
4612uint16 __ovld __cnfn convert_uint16_sat(uint16);
4613uint16 __ovld __cnfn convert_uint16_rte(long16);
4614uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4615uint16 __ovld __cnfn convert_uint16_rtz(long16);
4616uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4617uint16 __ovld __cnfn convert_uint16_rtp(long16);
4618uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4619uint16 __ovld __cnfn convert_uint16_rtn(long16);
4620uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4621uint16 __ovld __cnfn convert_uint16(long16);
4622uint16 __ovld __cnfn convert_uint16_sat(long16);
4623uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4624uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4625uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4626uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4627uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4628uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4629uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4630uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4631uint16 __ovld __cnfn convert_uint16(ulong16);
4632uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4633uint16 __ovld __cnfn convert_uint16_rte(float16);
4634uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4635uint16 __ovld __cnfn convert_uint16_rtz(float16);
4636uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4637uint16 __ovld __cnfn convert_uint16_rtp(float16);
4638uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4639uint16 __ovld __cnfn convert_uint16_rtn(float16);
4640uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4641uint16 __ovld __cnfn convert_uint16(float16);
4642uint16 __ovld __cnfn convert_uint16_sat(float16);
4643long16 __ovld __cnfn convert_long16_rte(char16);
4644long16 __ovld __cnfn convert_long16_sat_rte(char16);
4645long16 __ovld __cnfn convert_long16_rtz(char16);
4646long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4647long16 __ovld __cnfn convert_long16_rtp(char16);
4648long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4649long16 __ovld __cnfn convert_long16_rtn(char16);
4650long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4651long16 __ovld __cnfn convert_long16(char16);
4652long16 __ovld __cnfn convert_long16_sat(char16);
4653long16 __ovld __cnfn convert_long16_rte(uchar16);
4654long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4655long16 __ovld __cnfn convert_long16_rtz(uchar16);
4656long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4657long16 __ovld __cnfn convert_long16_rtp(uchar16);
4658long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4659long16 __ovld __cnfn convert_long16_rtn(uchar16);
4660long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4661long16 __ovld __cnfn convert_long16(uchar16);
4662long16 __ovld __cnfn convert_long16_sat(uchar16);
4663long16 __ovld __cnfn convert_long16_rte(short16);
4664long16 __ovld __cnfn convert_long16_sat_rte(short16);
4665long16 __ovld __cnfn convert_long16_rtz(short16);
4666long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4667long16 __ovld __cnfn convert_long16_rtp(short16);
4668long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4669long16 __ovld __cnfn convert_long16_rtn(short16);
4670long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4671long16 __ovld __cnfn convert_long16(short16);
4672long16 __ovld __cnfn convert_long16_sat(short16);
4673long16 __ovld __cnfn convert_long16_rte(ushort16);
4674long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4675long16 __ovld __cnfn convert_long16_rtz(ushort16);
4676long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4677long16 __ovld __cnfn convert_long16_rtp(ushort16);
4678long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4679long16 __ovld __cnfn convert_long16_rtn(ushort16);
4680long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4681long16 __ovld __cnfn convert_long16(ushort16);
4682long16 __ovld __cnfn convert_long16_sat(ushort16);
4683long16 __ovld __cnfn convert_long16_rte(int16);
4684long16 __ovld __cnfn convert_long16_sat_rte(int16);
4685long16 __ovld __cnfn convert_long16_rtz(int16);
4686long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4687long16 __ovld __cnfn convert_long16_rtp(int16);
4688long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4689long16 __ovld __cnfn convert_long16_rtn(int16);
4690long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4691long16 __ovld __cnfn convert_long16(int16);
4692long16 __ovld __cnfn convert_long16_sat(int16);
4693long16 __ovld __cnfn convert_long16_rte(uint16);
4694long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4695long16 __ovld __cnfn convert_long16_rtz(uint16);
4696long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4697long16 __ovld __cnfn convert_long16_rtp(uint16);
4698long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4699long16 __ovld __cnfn convert_long16_rtn(uint16);
4700long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4701long16 __ovld __cnfn convert_long16(uint16);
4702long16 __ovld __cnfn convert_long16_sat(uint16);
4703long16 __ovld __cnfn convert_long16_rte(long16);
4704long16 __ovld __cnfn convert_long16_sat_rte(long16);
4705long16 __ovld __cnfn convert_long16_rtz(long16);
4706long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4707long16 __ovld __cnfn convert_long16_rtp(long16);
4708long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4709long16 __ovld __cnfn convert_long16_rtn(long16);
4710long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4711long16 __ovld __cnfn convert_long16(long16);
4712long16 __ovld __cnfn convert_long16_sat(long16);
4713long16 __ovld __cnfn convert_long16_rte(ulong16);
4714long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4715long16 __ovld __cnfn convert_long16_rtz(ulong16);
4716long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4717long16 __ovld __cnfn convert_long16_rtp(ulong16);
4718long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4719long16 __ovld __cnfn convert_long16_rtn(ulong16);
4720long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4721long16 __ovld __cnfn convert_long16(ulong16);
4722long16 __ovld __cnfn convert_long16_sat(ulong16);
4723long16 __ovld __cnfn convert_long16_rte(float16);
4724long16 __ovld __cnfn convert_long16_sat_rte(float16);
4725long16 __ovld __cnfn convert_long16_rtz(float16);
4726long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4727long16 __ovld __cnfn convert_long16_rtp(float16);
4728long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4729long16 __ovld __cnfn convert_long16_rtn(float16);
4730long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4731long16 __ovld __cnfn convert_long16(float16);
4732long16 __ovld __cnfn convert_long16_sat(float16);
4733ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4734ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4735ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4736ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4737ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4738ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4739ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4740ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4741ulong16 __ovld __cnfn convert_ulong16(char16);
4742ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4743ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4744ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4745ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4746ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4747ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4748ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4749ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4750ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4751ulong16 __ovld __cnfn convert_ulong16(uchar16);
4752ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4753ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4754ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4755ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4756ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4757ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4758ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4759ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4760ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4761ulong16 __ovld __cnfn convert_ulong16(short16);
4762ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4763ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4764ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4765ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4766ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4767ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4768ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4769ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4770ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4771ulong16 __ovld __cnfn convert_ulong16(ushort16);
4772ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4773ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4774ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4775ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4776ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4777ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4778ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4779ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4780ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4781ulong16 __ovld __cnfn convert_ulong16(int16);
4782ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4783ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4784ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4785ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4786ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4787ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4788ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4789ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4790ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4791ulong16 __ovld __cnfn convert_ulong16(uint16);
4792ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4793ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4794ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4795ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4796ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4797ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4798ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4799ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4800ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4801ulong16 __ovld __cnfn convert_ulong16(long16);
4802ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4803ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4804ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4805ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4806ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4807ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4808ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4809ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4810ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4811ulong16 __ovld __cnfn convert_ulong16(ulong16);
4812ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4813ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4814ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4815ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4816ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4817ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4818ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4819ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4820ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4821ulong16 __ovld __cnfn convert_ulong16(float16);
4822ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4823float16 __ovld __cnfn convert_float16_rte(char16);
4824float16 __ovld __cnfn convert_float16_rtz(char16);
4825float16 __ovld __cnfn convert_float16_rtp(char16);
4826float16 __ovld __cnfn convert_float16_rtn(char16);
4827float16 __ovld __cnfn convert_float16(char16);
4828float16 __ovld __cnfn convert_float16_rte(uchar16);
4829float16 __ovld __cnfn convert_float16_rtz(uchar16);
4830float16 __ovld __cnfn convert_float16_rtp(uchar16);
4831float16 __ovld __cnfn convert_float16_rtn(uchar16);
4832float16 __ovld __cnfn convert_float16(uchar16);
4833float16 __ovld __cnfn convert_float16_rte(short16);
4834float16 __ovld __cnfn convert_float16_rtz(short16);
4835float16 __ovld __cnfn convert_float16_rtp(short16);
4836float16 __ovld __cnfn convert_float16_rtn(short16);
4837float16 __ovld __cnfn convert_float16(short16);
4838float16 __ovld __cnfn convert_float16_rte(ushort16);
4839float16 __ovld __cnfn convert_float16_rtz(ushort16);
4840float16 __ovld __cnfn convert_float16_rtp(ushort16);
4841float16 __ovld __cnfn convert_float16_rtn(ushort16);
4842float16 __ovld __cnfn convert_float16(ushort16);
4843float16 __ovld __cnfn convert_float16_rte(int16);
4844float16 __ovld __cnfn convert_float16_rtz(int16);
4845float16 __ovld __cnfn convert_float16_rtp(int16);
4846float16 __ovld __cnfn convert_float16_rtn(int16);
4847float16 __ovld __cnfn convert_float16(int16);
4848float16 __ovld __cnfn convert_float16_rte(uint16);
4849float16 __ovld __cnfn convert_float16_rtz(uint16);
4850float16 __ovld __cnfn convert_float16_rtp(uint16);
4851float16 __ovld __cnfn convert_float16_rtn(uint16);
4852float16 __ovld __cnfn convert_float16(uint16);
4853float16 __ovld __cnfn convert_float16_rte(long16);
4854float16 __ovld __cnfn convert_float16_rtz(long16);
4855float16 __ovld __cnfn convert_float16_rtp(long16);
4856float16 __ovld __cnfn convert_float16_rtn(long16);
4857float16 __ovld __cnfn convert_float16(long16);
4858float16 __ovld __cnfn convert_float16_rte(ulong16);
4859float16 __ovld __cnfn convert_float16_rtz(ulong16);
4860float16 __ovld __cnfn convert_float16_rtp(ulong16);
4861float16 __ovld __cnfn convert_float16_rtn(ulong16);
4862float16 __ovld __cnfn convert_float16(ulong16);
4863float16 __ovld __cnfn convert_float16_rte(float16);
4864float16 __ovld __cnfn convert_float16_rtz(float16);
4865float16 __ovld __cnfn convert_float16_rtp(float16);
4866float16 __ovld __cnfn convert_float16_rtn(float16);
4867float16 __ovld __cnfn convert_float16(float16);
4868
4869// Conversions with double data type parameters or return value.
4870
4871#ifdef cl_khr_fp64
4872char __ovld __cnfn convert_char(double);
4873char __ovld __cnfn convert_char_rte(double);
4874char __ovld __cnfn convert_char_rtn(double);
4875char __ovld __cnfn convert_char_rtp(double);
4876char __ovld __cnfn convert_char_rtz(double);
4877char __ovld __cnfn convert_char_sat(double);
4878char __ovld __cnfn convert_char_sat_rte(double);
4879char __ovld __cnfn convert_char_sat_rtn(double);
4880char __ovld __cnfn convert_char_sat_rtp(double);
4881char __ovld __cnfn convert_char_sat_rtz(double);
4882char2 __ovld __cnfn convert_char2(double2);
4883char2 __ovld __cnfn convert_char2_rte(double2);
4884char2 __ovld __cnfn convert_char2_rtn(double2);
4885char2 __ovld __cnfn convert_char2_rtp(double2);
4886char2 __ovld __cnfn convert_char2_rtz(double2);
4887char2 __ovld __cnfn convert_char2_sat(double2);
4888char2 __ovld __cnfn convert_char2_sat_rte(double2);
4889char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4890char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4891char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4892char3 __ovld __cnfn convert_char3(double3);
4893char3 __ovld __cnfn convert_char3_rte(double3);
4894char3 __ovld __cnfn convert_char3_rtn(double3);
4895char3 __ovld __cnfn convert_char3_rtp(double3);
4896char3 __ovld __cnfn convert_char3_rtz(double3);
4897char3 __ovld __cnfn convert_char3_sat(double3);
4898char3 __ovld __cnfn convert_char3_sat_rte(double3);
4899char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4900char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4901char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4902char4 __ovld __cnfn convert_char4(double4);
4903char4 __ovld __cnfn convert_char4_rte(double4);
4904char4 __ovld __cnfn convert_char4_rtn(double4);
4905char4 __ovld __cnfn convert_char4_rtp(double4);
4906char4 __ovld __cnfn convert_char4_rtz(double4);
4907char4 __ovld __cnfn convert_char4_sat(double4);
4908char4 __ovld __cnfn convert_char4_sat_rte(double4);
4909char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4910char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4911char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4912char8 __ovld __cnfn convert_char8(double8);
4913char8 __ovld __cnfn convert_char8_rte(double8);
4914char8 __ovld __cnfn convert_char8_rtn(double8);
4915char8 __ovld __cnfn convert_char8_rtp(double8);
4916char8 __ovld __cnfn convert_char8_rtz(double8);
4917char8 __ovld __cnfn convert_char8_sat(double8);
4918char8 __ovld __cnfn convert_char8_sat_rte(double8);
4919char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4920char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4921char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4922char16 __ovld __cnfn convert_char16(double16);
4923char16 __ovld __cnfn convert_char16_rte(double16);
4924char16 __ovld __cnfn convert_char16_rtn(double16);
4925char16 __ovld __cnfn convert_char16_rtp(double16);
4926char16 __ovld __cnfn convert_char16_rtz(double16);
4927char16 __ovld __cnfn convert_char16_sat(double16);
4928char16 __ovld __cnfn convert_char16_sat_rte(double16);
4929char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4930char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4931char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4932
4933uchar __ovld __cnfn convert_uchar(double);
4934uchar __ovld __cnfn convert_uchar_rte(double);
4935uchar __ovld __cnfn convert_uchar_rtn(double);
4936uchar __ovld __cnfn convert_uchar_rtp(double);
4937uchar __ovld __cnfn convert_uchar_rtz(double);
4938uchar __ovld __cnfn convert_uchar_sat(double);
4939uchar __ovld __cnfn convert_uchar_sat_rte(double);
4940uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4941uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4942uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4943uchar2 __ovld __cnfn convert_uchar2(double2);
4944uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4945uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4946uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4947uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4948uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4949uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4950uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4951uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4952uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4953uchar3 __ovld __cnfn convert_uchar3(double3);
4954uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4955uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4956uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4957uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4958uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4959uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4960uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4961uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4962uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4963uchar4 __ovld __cnfn convert_uchar4(double4);
4964uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4965uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4966uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4967uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4968uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4969uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4970uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4971uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4972uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4973uchar8 __ovld __cnfn convert_uchar8(double8);
4974uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4975uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4976uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4977uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4978uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4979uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4980uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4981uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4982uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4983uchar16 __ovld __cnfn convert_uchar16(double16);
4984uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4985uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4986uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4987uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4988uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4989uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4990uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4991uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4992uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4993
4994short __ovld __cnfn convert_short(double);
4995short __ovld __cnfn convert_short_rte(double);
4996short __ovld __cnfn convert_short_rtn(double);
4997short __ovld __cnfn convert_short_rtp(double);
4998short __ovld __cnfn convert_short_rtz(double);
4999short __ovld __cnfn convert_short_sat(double);
5000short __ovld __cnfn convert_short_sat_rte(double);
5001short __ovld __cnfn convert_short_sat_rtn(double);
5002short __ovld __cnfn convert_short_sat_rtp(double);
5003short __ovld __cnfn convert_short_sat_rtz(double);
5004short2 __ovld __cnfn convert_short2(double2);
5005short2 __ovld __cnfn convert_short2_rte(double2);
5006short2 __ovld __cnfn convert_short2_rtn(double2);
5007short2 __ovld __cnfn convert_short2_rtp(double2);
5008short2 __ovld __cnfn convert_short2_rtz(double2);
5009short2 __ovld __cnfn convert_short2_sat(double2);
5010short2 __ovld __cnfn convert_short2_sat_rte(double2);
5011short2 __ovld __cnfn convert_short2_sat_rtn(double2);
5012short2 __ovld __cnfn convert_short2_sat_rtp(double2);
5013short2 __ovld __cnfn convert_short2_sat_rtz(double2);
5014short3 __ovld __cnfn convert_short3(double3);
5015short3 __ovld __cnfn convert_short3_rte(double3);
5016short3 __ovld __cnfn convert_short3_rtn(double3);
5017short3 __ovld __cnfn convert_short3_rtp(double3);
5018short3 __ovld __cnfn convert_short3_rtz(double3);
5019short3 __ovld __cnfn convert_short3_sat(double3);
5020short3 __ovld __cnfn convert_short3_sat_rte(double3);
5021short3 __ovld __cnfn convert_short3_sat_rtn(double3);
5022short3 __ovld __cnfn convert_short3_sat_rtp(double3);
5023short3 __ovld __cnfn convert_short3_sat_rtz(double3);
5024short4 __ovld __cnfn convert_short4(double4);
5025short4 __ovld __cnfn convert_short4_rte(double4);
5026short4 __ovld __cnfn convert_short4_rtn(double4);
5027short4 __ovld __cnfn convert_short4_rtp(double4);
5028short4 __ovld __cnfn convert_short4_rtz(double4);
5029short4 __ovld __cnfn convert_short4_sat(double4);
5030short4 __ovld __cnfn convert_short4_sat_rte(double4);
5031short4 __ovld __cnfn convert_short4_sat_rtn(double4);
5032short4 __ovld __cnfn convert_short4_sat_rtp(double4);
5033short4 __ovld __cnfn convert_short4_sat_rtz(double4);
5034short8 __ovld __cnfn convert_short8(double8);
5035short8 __ovld __cnfn convert_short8_rte(double8);
5036short8 __ovld __cnfn convert_short8_rtn(double8);
5037short8 __ovld __cnfn convert_short8_rtp(double8);
5038short8 __ovld __cnfn convert_short8_rtz(double8);
5039short8 __ovld __cnfn convert_short8_sat(double8);
5040short8 __ovld __cnfn convert_short8_sat_rte(double8);
5041short8 __ovld __cnfn convert_short8_sat_rtn(double8);
5042short8 __ovld __cnfn convert_short8_sat_rtp(double8);
5043short8 __ovld __cnfn convert_short8_sat_rtz(double8);
5044short16 __ovld __cnfn convert_short16(double16);
5045short16 __ovld __cnfn convert_short16_rte(double16);
5046short16 __ovld __cnfn convert_short16_rtn(double16);
5047short16 __ovld __cnfn convert_short16_rtp(double16);
5048short16 __ovld __cnfn convert_short16_rtz(double16);
5049short16 __ovld __cnfn convert_short16_sat(double16);
5050short16 __ovld __cnfn convert_short16_sat_rte(double16);
5051short16 __ovld __cnfn convert_short16_sat_rtn(double16);
5052short16 __ovld __cnfn convert_short16_sat_rtp(double16);
5053short16 __ovld __cnfn convert_short16_sat_rtz(double16);
5054
5055ushort __ovld __cnfn convert_ushort(double);
5056ushort __ovld __cnfn convert_ushort_rte(double);
5057ushort __ovld __cnfn convert_ushort_rtn(double);
5058ushort __ovld __cnfn convert_ushort_rtp(double);
5059ushort __ovld __cnfn convert_ushort_rtz(double);
5060ushort __ovld __cnfn convert_ushort_sat(double);
5061ushort __ovld __cnfn convert_ushort_sat_rte(double);
5062ushort __ovld __cnfn convert_ushort_sat_rtn(double);
5063ushort __ovld __cnfn convert_ushort_sat_rtp(double);
5064ushort __ovld __cnfn convert_ushort_sat_rtz(double);
5065ushort2 __ovld __cnfn convert_ushort2(double2);
5066ushort2 __ovld __cnfn convert_ushort2_rte(double2);
5067ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
5068ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
5069ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
5070ushort2 __ovld __cnfn convert_ushort2_sat(double2);
5071ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
5072ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
5073ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
5074ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
5075ushort3 __ovld __cnfn convert_ushort3(double3);
5076ushort3 __ovld __cnfn convert_ushort3_rte(double3);
5077ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
5078ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
5079ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
5080ushort3 __ovld __cnfn convert_ushort3_sat(double3);
5081ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
5082ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
5083ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
5084ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
5085ushort4 __ovld __cnfn convert_ushort4(double4);
5086ushort4 __ovld __cnfn convert_ushort4_rte(double4);
5087ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
5088ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
5089ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
5090ushort4 __ovld __cnfn convert_ushort4_sat(double4);
5091ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
5092ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
5093ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
5094ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
5095ushort8 __ovld __cnfn convert_ushort8(double8);
5096ushort8 __ovld __cnfn convert_ushort8_rte(double8);
5097ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
5098ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
5099ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
5100ushort8 __ovld __cnfn convert_ushort8_sat(double8);
5101ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
5102ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
5103ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
5104ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
5105ushort16 __ovld __cnfn convert_ushort16(double16);
5106ushort16 __ovld __cnfn convert_ushort16_rte(double16);
5107ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
5108ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
5109ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
5110ushort16 __ovld __cnfn convert_ushort16_sat(double16);
5111ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
5112ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
5113ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
5114ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
5115
5116int __ovld __cnfn convert_int(double);
5117int __ovld __cnfn convert_int_rte(double);
5118int __ovld __cnfn convert_int_rtn(double);
5119int __ovld __cnfn convert_int_rtp(double);
5120int __ovld __cnfn convert_int_rtz(double);
5121int __ovld __cnfn convert_int_sat(double);
5122int __ovld __cnfn convert_int_sat_rte(double);
5123int __ovld __cnfn convert_int_sat_rtn(double);
5124int __ovld __cnfn convert_int_sat_rtp(double);
5125int __ovld __cnfn convert_int_sat_rtz(double);
5126int2 __ovld __cnfn convert_int2(double2);
5127int2 __ovld __cnfn convert_int2_rte(double2);
5128int2 __ovld __cnfn convert_int2_rtn(double2);
5129int2 __ovld __cnfn convert_int2_rtp(double2);
5130int2 __ovld __cnfn convert_int2_rtz(double2);
5131int2 __ovld __cnfn convert_int2_sat(double2);
5132int2 __ovld __cnfn convert_int2_sat_rte(double2);
5133int2 __ovld __cnfn convert_int2_sat_rtn(double2);
5134int2 __ovld __cnfn convert_int2_sat_rtp(double2);
5135int2 __ovld __cnfn convert_int2_sat_rtz(double2);
5136int3 __ovld __cnfn convert_int3(double3);
5137int3 __ovld __cnfn convert_int3_rte(double3);
5138int3 __ovld __cnfn convert_int3_rtn(double3);
5139int3 __ovld __cnfn convert_int3_rtp(double3);
5140int3 __ovld __cnfn convert_int3_rtz(double3);
5141int3 __ovld __cnfn convert_int3_sat(double3);
5142int3 __ovld __cnfn convert_int3_sat_rte(double3);
5143int3 __ovld __cnfn convert_int3_sat_rtn(double3);
5144int3 __ovld __cnfn convert_int3_sat_rtp(double3);
5145int3 __ovld __cnfn convert_int3_sat_rtz(double3);
5146int4 __ovld __cnfn convert_int4(double4);
5147int4 __ovld __cnfn convert_int4_rte(double4);
5148int4 __ovld __cnfn convert_int4_rtn(double4);
5149int4 __ovld __cnfn convert_int4_rtp(double4);
5150int4 __ovld __cnfn convert_int4_rtz(double4);
5151int4 __ovld __cnfn convert_int4_sat(double4);
5152int4 __ovld __cnfn convert_int4_sat_rte(double4);
5153int4 __ovld __cnfn convert_int4_sat_rtn(double4);
5154int4 __ovld __cnfn convert_int4_sat_rtp(double4);
5155int4 __ovld __cnfn convert_int4_sat_rtz(double4);
5156int8 __ovld __cnfn convert_int8(double8);
5157int8 __ovld __cnfn convert_int8_rte(double8);
5158int8 __ovld __cnfn convert_int8_rtn(double8);
5159int8 __ovld __cnfn convert_int8_rtp(double8);
5160int8 __ovld __cnfn convert_int8_rtz(double8);
5161int8 __ovld __cnfn convert_int8_sat(double8);
5162int8 __ovld __cnfn convert_int8_sat_rte(double8);
5163int8 __ovld __cnfn convert_int8_sat_rtn(double8);
5164int8 __ovld __cnfn convert_int8_sat_rtp(double8);
5165int8 __ovld __cnfn convert_int8_sat_rtz(double8);
5166int16 __ovld __cnfn convert_int16(double16);
5167int16 __ovld __cnfn convert_int16_rte(double16);
5168int16 __ovld __cnfn convert_int16_rtn(double16);
5169int16 __ovld __cnfn convert_int16_rtp(double16);
5170int16 __ovld __cnfn convert_int16_rtz(double16);
5171int16 __ovld __cnfn convert_int16_sat(double16);
5172int16 __ovld __cnfn convert_int16_sat_rte(double16);
5173int16 __ovld __cnfn convert_int16_sat_rtn(double16);
5174int16 __ovld __cnfn convert_int16_sat_rtp(double16);
5175int16 __ovld __cnfn convert_int16_sat_rtz(double16);
5176
5177uint __ovld __cnfn convert_uint(double);
5178uint __ovld __cnfn convert_uint_rte(double);
5179uint __ovld __cnfn convert_uint_rtn(double);
5180uint __ovld __cnfn convert_uint_rtp(double);
5181uint __ovld __cnfn convert_uint_rtz(double);
5182uint __ovld __cnfn convert_uint_sat(double);
5183uint __ovld __cnfn convert_uint_sat_rte(double);
5184uint __ovld __cnfn convert_uint_sat_rtn(double);
5185uint __ovld __cnfn convert_uint_sat_rtp(double);
5186uint __ovld __cnfn convert_uint_sat_rtz(double);
5187uint2 __ovld __cnfn convert_uint2(double2);
5188uint2 __ovld __cnfn convert_uint2_rte(double2);
5189uint2 __ovld __cnfn convert_uint2_rtn(double2);
5190uint2 __ovld __cnfn convert_uint2_rtp(double2);
5191uint2 __ovld __cnfn convert_uint2_rtz(double2);
5192uint2 __ovld __cnfn convert_uint2_sat(double2);
5193uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
5194uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
5195uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
5196uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
5197uint3 __ovld __cnfn convert_uint3(double3);
5198uint3 __ovld __cnfn convert_uint3_rte(double3);
5199uint3 __ovld __cnfn convert_uint3_rtn(double3);
5200uint3 __ovld __cnfn convert_uint3_rtp(double3);
5201uint3 __ovld __cnfn convert_uint3_rtz(double3);
5202uint3 __ovld __cnfn convert_uint3_sat(double3);
5203uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
5204uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
5205uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
5206uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
5207uint4 __ovld __cnfn convert_uint4(double4);
5208uint4 __ovld __cnfn convert_uint4_rte(double4);
5209uint4 __ovld __cnfn convert_uint4_rtn(double4);
5210uint4 __ovld __cnfn convert_uint4_rtp(double4);
5211uint4 __ovld __cnfn convert_uint4_rtz(double4);
5212uint4 __ovld __cnfn convert_uint4_sat(double4);
5213uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
5214uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
5215uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
5216uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
5217uint8 __ovld __cnfn convert_uint8(double8);
5218uint8 __ovld __cnfn convert_uint8_rte(double8);
5219uint8 __ovld __cnfn convert_uint8_rtn(double8);
5220uint8 __ovld __cnfn convert_uint8_rtp(double8);
5221uint8 __ovld __cnfn convert_uint8_rtz(double8);
5222uint8 __ovld __cnfn convert_uint8_sat(double8);
5223uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
5224uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
5225uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
5226uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
5227uint16 __ovld __cnfn convert_uint16(double16);
5228uint16 __ovld __cnfn convert_uint16_rte(double16);
5229uint16 __ovld __cnfn convert_uint16_rtn(double16);
5230uint16 __ovld __cnfn convert_uint16_rtp(double16);
5231uint16 __ovld __cnfn convert_uint16_rtz(double16);
5232uint16 __ovld __cnfn convert_uint16_sat(double16);
5233uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5234uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5235uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5236uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5237
5238long __ovld __cnfn convert_long(double);
5239long __ovld __cnfn convert_long_rte(double);
5240long __ovld __cnfn convert_long_rtn(double);
5241long __ovld __cnfn convert_long_rtp(double);
5242long __ovld __cnfn convert_long_rtz(double);
5243long __ovld __cnfn convert_long_sat(double);
5244long __ovld __cnfn convert_long_sat_rte(double);
5245long __ovld __cnfn convert_long_sat_rtn(double);
5246long __ovld __cnfn convert_long_sat_rtp(double);
5247long __ovld __cnfn convert_long_sat_rtz(double);
5248long2 __ovld __cnfn convert_long2(double2);
5249long2 __ovld __cnfn convert_long2_rte(double2);
5250long2 __ovld __cnfn convert_long2_rtn(double2);
5251long2 __ovld __cnfn convert_long2_rtp(double2);
5252long2 __ovld __cnfn convert_long2_rtz(double2);
5253long2 __ovld __cnfn convert_long2_sat(double2);
5254long2 __ovld __cnfn convert_long2_sat_rte(double2);
5255long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5256long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5257long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5258long3 __ovld __cnfn convert_long3(double3);
5259long3 __ovld __cnfn convert_long3_rte(double3);
5260long3 __ovld __cnfn convert_long3_rtn(double3);
5261long3 __ovld __cnfn convert_long3_rtp(double3);
5262long3 __ovld __cnfn convert_long3_rtz(double3);
5263long3 __ovld __cnfn convert_long3_sat(double3);
5264long3 __ovld __cnfn convert_long3_sat_rte(double3);
5265long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5266long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5267long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5268long4 __ovld __cnfn convert_long4(double4);
5269long4 __ovld __cnfn convert_long4_rte(double4);
5270long4 __ovld __cnfn convert_long4_rtn(double4);
5271long4 __ovld __cnfn convert_long4_rtp(double4);
5272long4 __ovld __cnfn convert_long4_rtz(double4);
5273long4 __ovld __cnfn convert_long4_sat(double4);
5274long4 __ovld __cnfn convert_long4_sat_rte(double4);
5275long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5276long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5277long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5278long8 __ovld __cnfn convert_long8(double8);
5279long8 __ovld __cnfn convert_long8_rte(double8);
5280long8 __ovld __cnfn convert_long8_rtn(double8);
5281long8 __ovld __cnfn convert_long8_rtp(double8);
5282long8 __ovld __cnfn convert_long8_rtz(double8);
5283long8 __ovld __cnfn convert_long8_sat(double8);
5284long8 __ovld __cnfn convert_long8_sat_rte(double8);
5285long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5286long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5287long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5288long16 __ovld __cnfn convert_long16(double16);
5289long16 __ovld __cnfn convert_long16_rte(double16);
5290long16 __ovld __cnfn convert_long16_rtn(double16);
5291long16 __ovld __cnfn convert_long16_rtp(double16);
5292long16 __ovld __cnfn convert_long16_rtz(double16);
5293long16 __ovld __cnfn convert_long16_sat(double16);
5294long16 __ovld __cnfn convert_long16_sat_rte(double16);
5295long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5296long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5297long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5298
5299ulong __ovld __cnfn convert_ulong(double);
5300ulong __ovld __cnfn convert_ulong_rte(double);
5301ulong __ovld __cnfn convert_ulong_rtn(double);
5302ulong __ovld __cnfn convert_ulong_rtp(double);
5303ulong __ovld __cnfn convert_ulong_rtz(double);
5304ulong __ovld __cnfn convert_ulong_sat(double);
5305ulong __ovld __cnfn convert_ulong_sat_rte(double);
5306ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5307ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5308ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5309ulong2 __ovld __cnfn convert_ulong2(double2);
5310ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5311ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5312ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5313ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5314ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5315ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5316ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5317ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5318ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5319ulong3 __ovld __cnfn convert_ulong3(double3);
5320ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5321ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5322ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5323ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5324ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5325ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5326ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5327ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5328ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5329ulong4 __ovld __cnfn convert_ulong4(double4);
5330ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5331ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5332ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5333ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5334ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5335ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5336ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5337ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5338ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5339ulong8 __ovld __cnfn convert_ulong8(double8);
5340ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5341ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5342ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5343ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5344ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5345ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5346ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5347ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5348ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5349ulong16 __ovld __cnfn convert_ulong16(double16);
5350ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5351ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5352ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5353ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5354ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5355ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5356ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5357ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5358ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5359
5360float __ovld __cnfn convert_float(double);
5361float __ovld __cnfn convert_float_rte(double);
5362float __ovld __cnfn convert_float_rtn(double);
5363float __ovld __cnfn convert_float_rtp(double);
5364float __ovld __cnfn convert_float_rtz(double);
5365float2 __ovld __cnfn convert_float2(double2);
5366float2 __ovld __cnfn convert_float2_rte(double2);
5367float2 __ovld __cnfn convert_float2_rtn(double2);
5368float2 __ovld __cnfn convert_float2_rtp(double2);
5369float2 __ovld __cnfn convert_float2_rtz(double2);
5370float3 __ovld __cnfn convert_float3(double3);
5371float3 __ovld __cnfn convert_float3_rte(double3);
5372float3 __ovld __cnfn convert_float3_rtn(double3);
5373float3 __ovld __cnfn convert_float3_rtp(double3);
5374float3 __ovld __cnfn convert_float3_rtz(double3);
5375float4 __ovld __cnfn convert_float4(double4);
5376float4 __ovld __cnfn convert_float4_rte(double4);
5377float4 __ovld __cnfn convert_float4_rtn(double4);
5378float4 __ovld __cnfn convert_float4_rtp(double4);
5379float4 __ovld __cnfn convert_float4_rtz(double4);
5380float8 __ovld __cnfn convert_float8(double8);
5381float8 __ovld __cnfn convert_float8_rte(double8);
5382float8 __ovld __cnfn convert_float8_rtn(double8);
5383float8 __ovld __cnfn convert_float8_rtp(double8);
5384float8 __ovld __cnfn convert_float8_rtz(double8);
5385float16 __ovld __cnfn convert_float16(double16);
5386float16 __ovld __cnfn convert_float16_rte(double16);
5387float16 __ovld __cnfn convert_float16_rtn(double16);
5388float16 __ovld __cnfn convert_float16_rtp(double16);
5389float16 __ovld __cnfn convert_float16_rtz(double16);
5390
5391double __ovld __cnfn convert_double(char);
5392double __ovld __cnfn convert_double(double);
5393double __ovld __cnfn convert_double(float);
5394double __ovld __cnfn convert_double(int);
5395double __ovld __cnfn convert_double(long);
5396double __ovld __cnfn convert_double(short);
5397double __ovld __cnfn convert_double(uchar);
5398double __ovld __cnfn convert_double(uint);
5399double __ovld __cnfn convert_double(ulong);
5400double __ovld __cnfn convert_double(ushort);
5401double __ovld __cnfn convert_double_rte(char);
5402double __ovld __cnfn convert_double_rte(double);
5403double __ovld __cnfn convert_double_rte(float);
5404double __ovld __cnfn convert_double_rte(int);
5405double __ovld __cnfn convert_double_rte(long);
5406double __ovld __cnfn convert_double_rte(short);
5407double __ovld __cnfn convert_double_rte(uchar);
5408double __ovld __cnfn convert_double_rte(uint);
5409double __ovld __cnfn convert_double_rte(ulong);
5410double __ovld __cnfn convert_double_rte(ushort);
5411double __ovld __cnfn convert_double_rtn(char);
5412double __ovld __cnfn convert_double_rtn(double);
5413double __ovld __cnfn convert_double_rtn(float);
5414double __ovld __cnfn convert_double_rtn(int);
5415double __ovld __cnfn convert_double_rtn(long);
5416double __ovld __cnfn convert_double_rtn(short);
5417double __ovld __cnfn convert_double_rtn(uchar);
5418double __ovld __cnfn convert_double_rtn(uint);
5419double __ovld __cnfn convert_double_rtn(ulong);
5420double __ovld __cnfn convert_double_rtn(ushort);
5421double __ovld __cnfn convert_double_rtp(char);
5422double __ovld __cnfn convert_double_rtp(double);
5423double __ovld __cnfn convert_double_rtp(float);
5424double __ovld __cnfn convert_double_rtp(int);
5425double __ovld __cnfn convert_double_rtp(long);
5426double __ovld __cnfn convert_double_rtp(short);
5427double __ovld __cnfn convert_double_rtp(uchar);
5428double __ovld __cnfn convert_double_rtp(uint);
5429double __ovld __cnfn convert_double_rtp(ulong);
5430double __ovld __cnfn convert_double_rtp(ushort);
5431double __ovld __cnfn convert_double_rtz(char);
5432double __ovld __cnfn convert_double_rtz(double);
5433double __ovld __cnfn convert_double_rtz(float);
5434double __ovld __cnfn convert_double_rtz(int);
5435double __ovld __cnfn convert_double_rtz(long);
5436double __ovld __cnfn convert_double_rtz(short);
5437double __ovld __cnfn convert_double_rtz(uchar);
5438double __ovld __cnfn convert_double_rtz(uint);
5439double __ovld __cnfn convert_double_rtz(ulong);
5440double __ovld __cnfn convert_double_rtz(ushort);
5441double2 __ovld __cnfn convert_double2(char2);
5442double2 __ovld __cnfn convert_double2(double2);
5443double2 __ovld __cnfn convert_double2(float2);
5444double2 __ovld __cnfn convert_double2(int2);
5445double2 __ovld __cnfn convert_double2(long2);
5446double2 __ovld __cnfn convert_double2(short2);
5447double2 __ovld __cnfn convert_double2(uchar2);
5448double2 __ovld __cnfn convert_double2(uint2);
5449double2 __ovld __cnfn convert_double2(ulong2);
5450double2 __ovld __cnfn convert_double2(ushort2);
5451double2 __ovld __cnfn convert_double2_rte(char2);
5452double2 __ovld __cnfn convert_double2_rte(double2);
5453double2 __ovld __cnfn convert_double2_rte(float2);
5454double2 __ovld __cnfn convert_double2_rte(int2);
5455double2 __ovld __cnfn convert_double2_rte(long2);
5456double2 __ovld __cnfn convert_double2_rte(short2);
5457double2 __ovld __cnfn convert_double2_rte(uchar2);
5458double2 __ovld __cnfn convert_double2_rte(uint2);
5459double2 __ovld __cnfn convert_double2_rte(ulong2);
5460double2 __ovld __cnfn convert_double2_rte(ushort2);
5461double2 __ovld __cnfn convert_double2_rtn(char2);
5462double2 __ovld __cnfn convert_double2_rtn(double2);
5463double2 __ovld __cnfn convert_double2_rtn(float2);
5464double2 __ovld __cnfn convert_double2_rtn(int2);
5465double2 __ovld __cnfn convert_double2_rtn(long2);
5466double2 __ovld __cnfn convert_double2_rtn(short2);
5467double2 __ovld __cnfn convert_double2_rtn(uchar2);
5468double2 __ovld __cnfn convert_double2_rtn(uint2);
5469double2 __ovld __cnfn convert_double2_rtn(ulong2);
5470double2 __ovld __cnfn convert_double2_rtn(ushort2);
5471double2 __ovld __cnfn convert_double2_rtp(char2);
5472double2 __ovld __cnfn convert_double2_rtp(double2);
5473double2 __ovld __cnfn convert_double2_rtp(float2);
5474double2 __ovld __cnfn convert_double2_rtp(int2);
5475double2 __ovld __cnfn convert_double2_rtp(long2);
5476double2 __ovld __cnfn convert_double2_rtp(short2);
5477double2 __ovld __cnfn convert_double2_rtp(uchar2);
5478double2 __ovld __cnfn convert_double2_rtp(uint2);
5479double2 __ovld __cnfn convert_double2_rtp(ulong2);
5480double2 __ovld __cnfn convert_double2_rtp(ushort2);
5481double2 __ovld __cnfn convert_double2_rtz(char2);
5482double2 __ovld __cnfn convert_double2_rtz(double2);
5483double2 __ovld __cnfn convert_double2_rtz(float2);
5484double2 __ovld __cnfn convert_double2_rtz(int2);
5485double2 __ovld __cnfn convert_double2_rtz(long2);
5486double2 __ovld __cnfn convert_double2_rtz(short2);
5487double2 __ovld __cnfn convert_double2_rtz(uchar2);
5488double2 __ovld __cnfn convert_double2_rtz(uint2);
5489double2 __ovld __cnfn convert_double2_rtz(ulong2);
5490double2 __ovld __cnfn convert_double2_rtz(ushort2);
5491double3 __ovld __cnfn convert_double3(char3);
5492double3 __ovld __cnfn convert_double3(double3);
5493double3 __ovld __cnfn convert_double3(float3);
5494double3 __ovld __cnfn convert_double3(int3);
5495double3 __ovld __cnfn convert_double3(long3);
5496double3 __ovld __cnfn convert_double3(short3);
5497double3 __ovld __cnfn convert_double3(uchar3);
5498double3 __ovld __cnfn convert_double3(uint3);
5499double3 __ovld __cnfn convert_double3(ulong3);
5500double3 __ovld __cnfn convert_double3(ushort3);
5501double3 __ovld __cnfn convert_double3_rte(char3);
5502double3 __ovld __cnfn convert_double3_rte(double3);
5503double3 __ovld __cnfn convert_double3_rte(float3);
5504double3 __ovld __cnfn convert_double3_rte(int3);
5505double3 __ovld __cnfn convert_double3_rte(long3);
5506double3 __ovld __cnfn convert_double3_rte(short3);
5507double3 __ovld __cnfn convert_double3_rte(uchar3);
5508double3 __ovld __cnfn convert_double3_rte(uint3);
5509double3 __ovld __cnfn convert_double3_rte(ulong3);
5510double3 __ovld __cnfn convert_double3_rte(ushort3);
5511double3 __ovld __cnfn convert_double3_rtn(char3);
5512double3 __ovld __cnfn convert_double3_rtn(double3);
5513double3 __ovld __cnfn convert_double3_rtn(float3);
5514double3 __ovld __cnfn convert_double3_rtn(int3);
5515double3 __ovld __cnfn convert_double3_rtn(long3);
5516double3 __ovld __cnfn convert_double3_rtn(short3);
5517double3 __ovld __cnfn convert_double3_rtn(uchar3);
5518double3 __ovld __cnfn convert_double3_rtn(uint3);
5519double3 __ovld __cnfn convert_double3_rtn(ulong3);
5520double3 __ovld __cnfn convert_double3_rtn(ushort3);
5521double3 __ovld __cnfn convert_double3_rtp(char3);
5522double3 __ovld __cnfn convert_double3_rtp(double3);
5523double3 __ovld __cnfn convert_double3_rtp(float3);
5524double3 __ovld __cnfn convert_double3_rtp(int3);
5525double3 __ovld __cnfn convert_double3_rtp(long3);
5526double3 __ovld __cnfn convert_double3_rtp(short3);
5527double3 __ovld __cnfn convert_double3_rtp(uchar3);
5528double3 __ovld __cnfn convert_double3_rtp(uint3);
5529double3 __ovld __cnfn convert_double3_rtp(ulong3);
5530double3 __ovld __cnfn convert_double3_rtp(ushort3);
5531double3 __ovld __cnfn convert_double3_rtz(char3);
5532double3 __ovld __cnfn convert_double3_rtz(double3);
5533double3 __ovld __cnfn convert_double3_rtz(float3);
5534double3 __ovld __cnfn convert_double3_rtz(int3);
5535double3 __ovld __cnfn convert_double3_rtz(long3);
5536double3 __ovld __cnfn convert_double3_rtz(short3);
5537double3 __ovld __cnfn convert_double3_rtz(uchar3);
5538double3 __ovld __cnfn convert_double3_rtz(uint3);
5539double3 __ovld __cnfn convert_double3_rtz(ulong3);
5540double3 __ovld __cnfn convert_double3_rtz(ushort3);
5541double4 __ovld __cnfn convert_double4(char4);
5542double4 __ovld __cnfn convert_double4(double4);
5543double4 __ovld __cnfn convert_double4(float4);
5544double4 __ovld __cnfn convert_double4(int4);
5545double4 __ovld __cnfn convert_double4(long4);
5546double4 __ovld __cnfn convert_double4(short4);
5547double4 __ovld __cnfn convert_double4(uchar4);
5548double4 __ovld __cnfn convert_double4(uint4);
5549double4 __ovld __cnfn convert_double4(ulong4);
5550double4 __ovld __cnfn convert_double4(ushort4);
5551double4 __ovld __cnfn convert_double4_rte(char4);
5552double4 __ovld __cnfn convert_double4_rte(double4);
5553double4 __ovld __cnfn convert_double4_rte(float4);
5554double4 __ovld __cnfn convert_double4_rte(int4);
5555double4 __ovld __cnfn convert_double4_rte(long4);
5556double4 __ovld __cnfn convert_double4_rte(short4);
5557double4 __ovld __cnfn convert_double4_rte(uchar4);
5558double4 __ovld __cnfn convert_double4_rte(uint4);
5559double4 __ovld __cnfn convert_double4_rte(ulong4);
5560double4 __ovld __cnfn convert_double4_rte(ushort4);
5561double4 __ovld __cnfn convert_double4_rtn(char4);
5562double4 __ovld __cnfn convert_double4_rtn(double4);
5563double4 __ovld __cnfn convert_double4_rtn(float4);
5564double4 __ovld __cnfn convert_double4_rtn(int4);
5565double4 __ovld __cnfn convert_double4_rtn(long4);
5566double4 __ovld __cnfn convert_double4_rtn(short4);
5567double4 __ovld __cnfn convert_double4_rtn(uchar4);
5568double4 __ovld __cnfn convert_double4_rtn(uint4);
5569double4 __ovld __cnfn convert_double4_rtn(ulong4);
5570double4 __ovld __cnfn convert_double4_rtn(ushort4);
5571double4 __ovld __cnfn convert_double4_rtp(char4);
5572double4 __ovld __cnfn convert_double4_rtp(double4);
5573double4 __ovld __cnfn convert_double4_rtp(float4);
5574double4 __ovld __cnfn convert_double4_rtp(int4);
5575double4 __ovld __cnfn convert_double4_rtp(long4);
5576double4 __ovld __cnfn convert_double4_rtp(short4);
5577double4 __ovld __cnfn convert_double4_rtp(uchar4);
5578double4 __ovld __cnfn convert_double4_rtp(uint4);
5579double4 __ovld __cnfn convert_double4_rtp(ulong4);
5580double4 __ovld __cnfn convert_double4_rtp(ushort4);
5581double4 __ovld __cnfn convert_double4_rtz(char4);
5582double4 __ovld __cnfn convert_double4_rtz(double4);
5583double4 __ovld __cnfn convert_double4_rtz(float4);
5584double4 __ovld __cnfn convert_double4_rtz(int4);
5585double4 __ovld __cnfn convert_double4_rtz(long4);
5586double4 __ovld __cnfn convert_double4_rtz(short4);
5587double4 __ovld __cnfn convert_double4_rtz(uchar4);
5588double4 __ovld __cnfn convert_double4_rtz(uint4);
5589double4 __ovld __cnfn convert_double4_rtz(ulong4);
5590double4 __ovld __cnfn convert_double4_rtz(ushort4);
5591double8 __ovld __cnfn convert_double8(char8);
5592double8 __ovld __cnfn convert_double8(double8);
5593double8 __ovld __cnfn convert_double8(float8);
5594double8 __ovld __cnfn convert_double8(int8);
5595double8 __ovld __cnfn convert_double8(long8);
5596double8 __ovld __cnfn convert_double8(short8);
5597double8 __ovld __cnfn convert_double8(uchar8);
5598double8 __ovld __cnfn convert_double8(uint8);
5599double8 __ovld __cnfn convert_double8(ulong8);
5600double8 __ovld __cnfn convert_double8(ushort8);
5601double8 __ovld __cnfn convert_double8_rte(char8);
5602double8 __ovld __cnfn convert_double8_rte(double8);
5603double8 __ovld __cnfn convert_double8_rte(float8);
5604double8 __ovld __cnfn convert_double8_rte(int8);
5605double8 __ovld __cnfn convert_double8_rte(long8);
5606double8 __ovld __cnfn convert_double8_rte(short8);
5607double8 __ovld __cnfn convert_double8_rte(uchar8);
5608double8 __ovld __cnfn convert_double8_rte(uint8);
5609double8 __ovld __cnfn convert_double8_rte(ulong8);
5610double8 __ovld __cnfn convert_double8_rte(ushort8);
5611double8 __ovld __cnfn convert_double8_rtn(char8);
5612double8 __ovld __cnfn convert_double8_rtn(double8);
5613double8 __ovld __cnfn convert_double8_rtn(float8);
5614double8 __ovld __cnfn convert_double8_rtn(int8);
5615double8 __ovld __cnfn convert_double8_rtn(long8);
5616double8 __ovld __cnfn convert_double8_rtn(short8);
5617double8 __ovld __cnfn convert_double8_rtn(uchar8);
5618double8 __ovld __cnfn convert_double8_rtn(uint8);
5619double8 __ovld __cnfn convert_double8_rtn(ulong8);
5620double8 __ovld __cnfn convert_double8_rtn(ushort8);
5621double8 __ovld __cnfn convert_double8_rtp(char8);
5622double8 __ovld __cnfn convert_double8_rtp(double8);
5623double8 __ovld __cnfn convert_double8_rtp(float8);
5624double8 __ovld __cnfn convert_double8_rtp(int8);
5625double8 __ovld __cnfn convert_double8_rtp(long8);
5626double8 __ovld __cnfn convert_double8_rtp(short8);
5627double8 __ovld __cnfn convert_double8_rtp(uchar8);
5628double8 __ovld __cnfn convert_double8_rtp(uint8);
5629double8 __ovld __cnfn convert_double8_rtp(ulong8);
5630double8 __ovld __cnfn convert_double8_rtp(ushort8);
5631double8 __ovld __cnfn convert_double8_rtz(char8);
5632double8 __ovld __cnfn convert_double8_rtz(double8);
5633double8 __ovld __cnfn convert_double8_rtz(float8);
5634double8 __ovld __cnfn convert_double8_rtz(int8);
5635double8 __ovld __cnfn convert_double8_rtz(long8);
5636double8 __ovld __cnfn convert_double8_rtz(short8);
5637double8 __ovld __cnfn convert_double8_rtz(uchar8);
5638double8 __ovld __cnfn convert_double8_rtz(uint8);
5639double8 __ovld __cnfn convert_double8_rtz(ulong8);
5640double8 __ovld __cnfn convert_double8_rtz(ushort8);
5641double16 __ovld __cnfn convert_double16(char16);
5642double16 __ovld __cnfn convert_double16(double16);
5643double16 __ovld __cnfn convert_double16(float16);
5644double16 __ovld __cnfn convert_double16(int16);
5645double16 __ovld __cnfn convert_double16(long16);
5646double16 __ovld __cnfn convert_double16(short16);
5647double16 __ovld __cnfn convert_double16(uchar16);
5648double16 __ovld __cnfn convert_double16(uint16);
5649double16 __ovld __cnfn convert_double16(ulong16);
5650double16 __ovld __cnfn convert_double16(ushort16);
5651double16 __ovld __cnfn convert_double16_rte(char16);
5652double16 __ovld __cnfn convert_double16_rte(double16);
5653double16 __ovld __cnfn convert_double16_rte(float16);
5654double16 __ovld __cnfn convert_double16_rte(int16);
5655double16 __ovld __cnfn convert_double16_rte(long16);
5656double16 __ovld __cnfn convert_double16_rte(short16);
5657double16 __ovld __cnfn convert_double16_rte(uchar16);
5658double16 __ovld __cnfn convert_double16_rte(uint16);
5659double16 __ovld __cnfn convert_double16_rte(ulong16);
5660double16 __ovld __cnfn convert_double16_rte(ushort16);
5661double16 __ovld __cnfn convert_double16_rtn(char16);
5662double16 __ovld __cnfn convert_double16_rtn(double16);
5663double16 __ovld __cnfn convert_double16_rtn(float16);
5664double16 __ovld __cnfn convert_double16_rtn(int16);
5665double16 __ovld __cnfn convert_double16_rtn(long16);
5666double16 __ovld __cnfn convert_double16_rtn(short16);
5667double16 __ovld __cnfn convert_double16_rtn(uchar16);
5668double16 __ovld __cnfn convert_double16_rtn(uint16);
5669double16 __ovld __cnfn convert_double16_rtn(ulong16);
5670double16 __ovld __cnfn convert_double16_rtn(ushort16);
5671double16 __ovld __cnfn convert_double16_rtp(char16);
5672double16 __ovld __cnfn convert_double16_rtp(double16);
5673double16 __ovld __cnfn convert_double16_rtp(float16);
5674double16 __ovld __cnfn convert_double16_rtp(int16);
5675double16 __ovld __cnfn convert_double16_rtp(long16);
5676double16 __ovld __cnfn convert_double16_rtp(short16);
5677double16 __ovld __cnfn convert_double16_rtp(uchar16);
5678double16 __ovld __cnfn convert_double16_rtp(uint16);
5679double16 __ovld __cnfn convert_double16_rtp(ulong16);
5680double16 __ovld __cnfn convert_double16_rtp(ushort16);
5681double16 __ovld __cnfn convert_double16_rtz(char16);
5682double16 __ovld __cnfn convert_double16_rtz(double16);
5683double16 __ovld __cnfn convert_double16_rtz(float16);
5684double16 __ovld __cnfn convert_double16_rtz(int16);
5685double16 __ovld __cnfn convert_double16_rtz(long16);
5686double16 __ovld __cnfn convert_double16_rtz(short16);
5687double16 __ovld __cnfn convert_double16_rtz(uchar16);
5688double16 __ovld __cnfn convert_double16_rtz(uint16);
5689double16 __ovld __cnfn convert_double16_rtz(ulong16);
5690double16 __ovld __cnfn convert_double16_rtz(ushort16);
5691#endif //cl_khr_fp64
5692
5693#ifdef cl_khr_fp16
5694// Convert half types to non-double types.
5695uchar __ovld __cnfn convert_uchar(half);
5696uchar __ovld __cnfn convert_uchar_rte(half);
5697uchar __ovld __cnfn convert_uchar_rtp(half);
5698uchar __ovld __cnfn convert_uchar_rtn(half);
5699uchar __ovld __cnfn convert_uchar_rtz(half);
5700uchar __ovld __cnfn convert_uchar_sat(half);
5701uchar __ovld __cnfn convert_uchar_sat_rte(half);
5702uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5703uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5704uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5705uchar2 __ovld __cnfn convert_uchar2(half2);
5706uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5707uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5708uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5709uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5710uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5711uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5712uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5713uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5714uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5715uchar3 __ovld __cnfn convert_uchar3(half3);
5716uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5717uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5718uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5719uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5720uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5721uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5722uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5723uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5724uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5725uchar4 __ovld __cnfn convert_uchar4(half4);
5726uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5727uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5728uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5729uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5730uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5731uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5732uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5733uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5734uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5735uchar8 __ovld __cnfn convert_uchar8(half8);
5736uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5737uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5738uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5739uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5740uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5741uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5742uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5743uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5744uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5745uchar16 __ovld __cnfn convert_uchar16(half16);
5746uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5747uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5748uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5749uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5750uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5751uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5752uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5753uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5754uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5755ushort __ovld __cnfn convert_ushort(half);
5756ushort __ovld __cnfn convert_ushort_rte(half);
5757ushort __ovld __cnfn convert_ushort_rtp(half);
5758ushort __ovld __cnfn convert_ushort_rtn(half);
5759ushort __ovld __cnfn convert_ushort_rtz(half);
5760ushort __ovld __cnfn convert_ushort_sat(half);
5761ushort __ovld __cnfn convert_ushort_sat_rte(half);
5762ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5763ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5764ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5765ushort2 __ovld __cnfn convert_ushort2(half2);
5766ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5767ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5768ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5769ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5770ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5771ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5772ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5773ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5774ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5775ushort3 __ovld __cnfn convert_ushort3(half3);
5776ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5777ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5778ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5779ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5780ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5781ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5782ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5783ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5784ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5785ushort4 __ovld __cnfn convert_ushort4(half4);
5786ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5787ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5788ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5789ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5790ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5791ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5792ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5793ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5794ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5795ushort8 __ovld __cnfn convert_ushort8(half8);
5796ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5797ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5798ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5799ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5800ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5801ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5802ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5803ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5804ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5805ushort16 __ovld __cnfn convert_ushort16(half16);
5806ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5807ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5808ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5809ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5810ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5811ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5812ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5813ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5814ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5815uint __ovld __cnfn convert_uint(half);
5816uint __ovld __cnfn convert_uint_rte(half);
5817uint __ovld __cnfn convert_uint_rtp(half);
5818uint __ovld __cnfn convert_uint_rtn(half);
5819uint __ovld __cnfn convert_uint_rtz(half);
5820uint __ovld __cnfn convert_uint_sat(half);
5821uint __ovld __cnfn convert_uint_sat_rte(half);
5822uint __ovld __cnfn convert_uint_sat_rtp(half);
5823uint __ovld __cnfn convert_uint_sat_rtn(half);
5824uint __ovld __cnfn convert_uint_sat_rtz(half);
5825uint2 __ovld __cnfn convert_uint2(half2);
5826uint2 __ovld __cnfn convert_uint2_rte(half2);
5827uint2 __ovld __cnfn convert_uint2_rtp(half2);
5828uint2 __ovld __cnfn convert_uint2_rtn(half2);
5829uint2 __ovld __cnfn convert_uint2_rtz(half2);
5830uint2 __ovld __cnfn convert_uint2_sat(half2);
5831uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5832uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5833uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5834uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5835uint3 __ovld __cnfn convert_uint3(half3);
5836uint3 __ovld __cnfn convert_uint3_rte(half3);
5837uint3 __ovld __cnfn convert_uint3_rtp(half3);
5838uint3 __ovld __cnfn convert_uint3_rtn(half3);
5839uint3 __ovld __cnfn convert_uint3_rtz(half3);
5840uint3 __ovld __cnfn convert_uint3_sat(half3);
5841uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5842uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5843uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5844uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5845uint4 __ovld __cnfn convert_uint4(half4);
5846uint4 __ovld __cnfn convert_uint4_rte(half4);
5847uint4 __ovld __cnfn convert_uint4_rtp(half4);
5848uint4 __ovld __cnfn convert_uint4_rtn(half4);
5849uint4 __ovld __cnfn convert_uint4_rtz(half4);
5850uint4 __ovld __cnfn convert_uint4_sat(half4);
5851uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5852uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5853uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5854uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5855uint8 __ovld __cnfn convert_uint8(half8);
5856uint8 __ovld __cnfn convert_uint8_rte(half8);
5857uint8 __ovld __cnfn convert_uint8_rtp(half8);
5858uint8 __ovld __cnfn convert_uint8_rtn(half8);
5859uint8 __ovld __cnfn convert_uint8_rtz(half8);
5860uint8 __ovld __cnfn convert_uint8_sat(half8);
5861uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5862uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5863uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5864uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5865uint16 __ovld __cnfn convert_uint16(half16);
5866uint16 __ovld __cnfn convert_uint16_rte(half16);
5867uint16 __ovld __cnfn convert_uint16_rtp(half16);
5868uint16 __ovld __cnfn convert_uint16_rtn(half16);
5869uint16 __ovld __cnfn convert_uint16_rtz(half16);
5870uint16 __ovld __cnfn convert_uint16_sat(half16);
5871uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5872uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5873uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5874uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5875ulong __ovld __cnfn convert_ulong(half);
5876ulong __ovld __cnfn convert_ulong_rte(half);
5877ulong __ovld __cnfn convert_ulong_rtp(half);
5878ulong __ovld __cnfn convert_ulong_rtn(half);
5879ulong __ovld __cnfn convert_ulong_rtz(half);
5880ulong __ovld __cnfn convert_ulong_sat(half);
5881ulong __ovld __cnfn convert_ulong_sat_rte(half);
5882ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5883ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5884ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5885ulong2 __ovld __cnfn convert_ulong2(half2);
5886ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5887ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5888ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5889ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5890ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5891ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5892ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5893ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5894ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5895ulong3 __ovld __cnfn convert_ulong3(half3);
5896ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5897ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5898ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5899ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5900ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5901ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5902ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5903ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5904ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5905ulong4 __ovld __cnfn convert_ulong4(half4);
5906ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5907ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5908ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5909ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5910ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5911ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5912ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5913ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5914ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5915ulong8 __ovld __cnfn convert_ulong8(half8);
5916ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5917ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5918ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5919ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5920ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5921ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5922ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5923ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5924ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5925ulong16 __ovld __cnfn convert_ulong16(half16);
5926ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5927ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5928ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5929ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5930ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5931ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5932ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5933ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5934ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5935char __ovld __cnfn convert_char(half);
5936char __ovld __cnfn convert_char_rte(half);
5937char __ovld __cnfn convert_char_rtp(half);
5938char __ovld __cnfn convert_char_rtn(half);
5939char __ovld __cnfn convert_char_rtz(half);
5940char __ovld __cnfn convert_char_sat(half);
5941char __ovld __cnfn convert_char_sat_rte(half);
5942char __ovld __cnfn convert_char_sat_rtp(half);
5943char __ovld __cnfn convert_char_sat_rtn(half);
5944char __ovld __cnfn convert_char_sat_rtz(half);
5945char2 __ovld __cnfn convert_char2(half2);
5946char2 __ovld __cnfn convert_char2_rte(half2);
5947char2 __ovld __cnfn convert_char2_rtp(half2);
5948char2 __ovld __cnfn convert_char2_rtn(half2);
5949char2 __ovld __cnfn convert_char2_rtz(half2);
5950char2 __ovld __cnfn convert_char2_sat(half2);
5951char2 __ovld __cnfn convert_char2_sat_rte(half2);
5952char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5953char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5954char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5955char3 __ovld __cnfn convert_char3(half3);
5956char3 __ovld __cnfn convert_char3_rte(half3);
5957char3 __ovld __cnfn convert_char3_rtp(half3);
5958char3 __ovld __cnfn convert_char3_rtn(half3);
5959char3 __ovld __cnfn convert_char3_rtz(half3);
5960char3 __ovld __cnfn convert_char3_sat(half3);
5961char3 __ovld __cnfn convert_char3_sat_rte(half3);
5962char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5963char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5964char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5965char4 __ovld __cnfn convert_char4(half4);
5966char4 __ovld __cnfn convert_char4_rte(half4);
5967char4 __ovld __cnfn convert_char4_rtp(half4);
5968char4 __ovld __cnfn convert_char4_rtn(half4);
5969char4 __ovld __cnfn convert_char4_rtz(half4);
5970char4 __ovld __cnfn convert_char4_sat(half4);
5971char4 __ovld __cnfn convert_char4_sat_rte(half4);
5972char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5973char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5974char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5975char8 __ovld __cnfn convert_char8(half8);
5976char8 __ovld __cnfn convert_char8_rte(half8);
5977char8 __ovld __cnfn convert_char8_rtp(half8);
5978char8 __ovld __cnfn convert_char8_rtn(half8);
5979char8 __ovld __cnfn convert_char8_rtz(half8);
5980char8 __ovld __cnfn convert_char8_sat(half8);
5981char8 __ovld __cnfn convert_char8_sat_rte(half8);
5982char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5983char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5984char8 __ovld __cnfn convert_char8_sat_rtz(half8);
5985char16 __ovld __cnfn convert_char16(half16);
5986char16 __ovld __cnfn convert_char16_rte(half16);
5987char16 __ovld __cnfn convert_char16_rtp(half16);
5988char16 __ovld __cnfn convert_char16_rtn(half16);
5989char16 __ovld __cnfn convert_char16_rtz(half16);
5990char16 __ovld __cnfn convert_char16_sat(half16);
5991char16 __ovld __cnfn convert_char16_sat_rte(half16);
5992char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5993char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5994char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5995short __ovld __cnfn convert_short(half);
5996short __ovld __cnfn convert_short_rte(half);
5997short __ovld __cnfn convert_short_rtp(half);
5998short __ovld __cnfn convert_short_rtn(half);
5999short __ovld __cnfn convert_short_rtz(half);
6000short __ovld __cnfn convert_short_sat(half);
6001short __ovld __cnfn convert_short_sat_rte(half);
6002short __ovld __cnfn convert_short_sat_rtp(half);
6003short __ovld __cnfn convert_short_sat_rtn(half);
6004short __ovld __cnfn convert_short_sat_rtz(half);
6005short2 __ovld __cnfn convert_short2(half2);
6006short2 __ovld __cnfn convert_short2_rte(half2);
6007short2 __ovld __cnfn convert_short2_rtp(half2);
6008short2 __ovld __cnfn convert_short2_rtn(half2);
6009short2 __ovld __cnfn convert_short2_rtz(half2);
6010short2 __ovld __cnfn convert_short2_sat(half2);
6011short2 __ovld __cnfn convert_short2_sat_rte(half2);
6012short2 __ovld __cnfn convert_short2_sat_rtp(half2);
6013short2 __ovld __cnfn convert_short2_sat_rtn(half2);
6014short2 __ovld __cnfn convert_short2_sat_rtz(half2);
6015short3 __ovld __cnfn convert_short3(half3);
6016short3 __ovld __cnfn convert_short3_rte(half3);
6017short3 __ovld __cnfn convert_short3_rtp(half3);
6018short3 __ovld __cnfn convert_short3_rtn(half3);
6019short3 __ovld __cnfn convert_short3_rtz(half3);
6020short3 __ovld __cnfn convert_short3_sat(half3);
6021short3 __ovld __cnfn convert_short3_sat_rte(half3);
6022short3 __ovld __cnfn convert_short3_sat_rtp(half3);
6023short3 __ovld __cnfn convert_short3_sat_rtn(half3);
6024short3 __ovld __cnfn convert_short3_sat_rtz(half3);
6025short4 __ovld __cnfn convert_short4(half4);
6026short4 __ovld __cnfn convert_short4_rte(half4);
6027short4 __ovld __cnfn convert_short4_rtp(half4);
6028short4 __ovld __cnfn convert_short4_rtn(half4);
6029short4 __ovld __cnfn convert_short4_rtz(half4);
6030short4 __ovld __cnfn convert_short4_sat(half4);
6031short4 __ovld __cnfn convert_short4_sat_rte(half4);
6032short4 __ovld __cnfn convert_short4_sat_rtp(half4);
6033short4 __ovld __cnfn convert_short4_sat_rtn(half4);
6034short4 __ovld __cnfn convert_short4_sat_rtz(half4);
6035short8 __ovld __cnfn convert_short8(half8);
6036short8 __ovld __cnfn convert_short8_rte(half8);
6037short8 __ovld __cnfn convert_short8_rtp(half8);
6038short8 __ovld __cnfn convert_short8_rtn(half8);
6039short8 __ovld __cnfn convert_short8_rtz(half8);
6040short8 __ovld __cnfn convert_short8_sat(half8);
6041short8 __ovld __cnfn convert_short8_sat_rte(half8);
6042short8 __ovld __cnfn convert_short8_sat_rtp(half8);
6043short8 __ovld __cnfn convert_short8_sat_rtn(half8);
6044short8 __ovld __cnfn convert_short8_sat_rtz(half8);
6045short16 __ovld __cnfn convert_short16(half16);
6046short16 __ovld __cnfn convert_short16_rte(half16);
6047short16 __ovld __cnfn convert_short16_rtp(half16);
6048short16 __ovld __cnfn convert_short16_rtn(half16);
6049short16 __ovld __cnfn convert_short16_rtz(half16);
6050short16 __ovld __cnfn convert_short16_sat(half16);
6051short16 __ovld __cnfn convert_short16_sat_rte(half16);
6052short16 __ovld __cnfn convert_short16_sat_rtp(half16);
6053short16 __ovld __cnfn convert_short16_sat_rtn(half16);
6054short16 __ovld __cnfn convert_short16_sat_rtz(half16);
6055int __ovld __cnfn convert_int(half);
6056int __ovld __cnfn convert_int_rte(half);
6057int __ovld __cnfn convert_int_rtp(half);
6058int __ovld __cnfn convert_int_rtn(half);
6059int __ovld __cnfn convert_int_rtz(half);
6060int __ovld __cnfn convert_int_sat(half);
6061int __ovld __cnfn convert_int_sat_rte(half);
6062int __ovld __cnfn convert_int_sat_rtp(half);
6063int __ovld __cnfn convert_int_sat_rtn(half);
6064int __ovld __cnfn convert_int_sat_rtz(half);
6065int2 __ovld __cnfn convert_int2(half2);
6066int2 __ovld __cnfn convert_int2_rte(half2);
6067int2 __ovld __cnfn convert_int2_rtp(half2);
6068int2 __ovld __cnfn convert_int2_rtn(half2);
6069int2 __ovld __cnfn convert_int2_rtz(half2);
6070int2 __ovld __cnfn convert_int2_sat(half2);
6071int2 __ovld __cnfn convert_int2_sat_rte(half2);
6072int2 __ovld __cnfn convert_int2_sat_rtp(half2);
6073int2 __ovld __cnfn convert_int2_sat_rtn(half2);
6074int2 __ovld __cnfn convert_int2_sat_rtz(half2);
6075int3 __ovld __cnfn convert_int3(half3);
6076int3 __ovld __cnfn convert_int3_rte(half3);
6077int3 __ovld __cnfn convert_int3_rtp(half3);
6078int3 __ovld __cnfn convert_int3_rtn(half3);
6079int3 __ovld __cnfn convert_int3_rtz(half3);
6080int3 __ovld __cnfn convert_int3_sat(half3);
6081int3 __ovld __cnfn convert_int3_sat_rte(half3);
6082int3 __ovld __cnfn convert_int3_sat_rtp(half3);
6083int3 __ovld __cnfn convert_int3_sat_rtn(half3);
6084int3 __ovld __cnfn convert_int3_sat_rtz(half3);
6085int4 __ovld __cnfn convert_int4(half4);
6086int4 __ovld __cnfn convert_int4_rte(half4);
6087int4 __ovld __cnfn convert_int4_rtp(half4);
6088int4 __ovld __cnfn convert_int4_rtn(half4);
6089int4 __ovld __cnfn convert_int4_rtz(half4);
6090int4 __ovld __cnfn convert_int4_sat(half4);
6091int4 __ovld __cnfn convert_int4_sat_rte(half4);
6092int4 __ovld __cnfn convert_int4_sat_rtp(half4);
6093int4 __ovld __cnfn convert_int4_sat_rtn(half4);
6094int4 __ovld __cnfn convert_int4_sat_rtz(half4);
6095int8 __ovld __cnfn convert_int8(half8);
6096int8 __ovld __cnfn convert_int8_rte(half8);
6097int8 __ovld __cnfn convert_int8_rtp(half8);
6098int8 __ovld __cnfn convert_int8_rtn(half8);
6099int8 __ovld __cnfn convert_int8_rtz(half8);
6100int8 __ovld __cnfn convert_int8_sat(half8);
6101int8 __ovld __cnfn convert_int8_sat_rte(half8);
6102int8 __ovld __cnfn convert_int8_sat_rtp(half8);
6103int8 __ovld __cnfn convert_int8_sat_rtn(half8);
6104int8 __ovld __cnfn convert_int8_sat_rtz(half8);
6105int16 __ovld __cnfn convert_int16(half16);
6106int16 __ovld __cnfn convert_int16_rte(half16);
6107int16 __ovld __cnfn convert_int16_rtp(half16);
6108int16 __ovld __cnfn convert_int16_rtn(half16);
6109int16 __ovld __cnfn convert_int16_rtz(half16);
6110int16 __ovld __cnfn convert_int16_sat(half16);
6111int16 __ovld __cnfn convert_int16_sat_rte(half16);
6112int16 __ovld __cnfn convert_int16_sat_rtp(half16);
6113int16 __ovld __cnfn convert_int16_sat_rtn(half16);
6114int16 __ovld __cnfn convert_int16_sat_rtz(half16);
6115long __ovld __cnfn convert_long(half);
6116long __ovld __cnfn convert_long_rte(half);
6117long __ovld __cnfn convert_long_rtp(half);
6118long __ovld __cnfn convert_long_rtn(half);
6119long __ovld __cnfn convert_long_rtz(half);
6120long __ovld __cnfn convert_long_sat(half);
6121long __ovld __cnfn convert_long_sat_rte(half);
6122long __ovld __cnfn convert_long_sat_rtp(half);
6123long __ovld __cnfn convert_long_sat_rtn(half);
6124long __ovld __cnfn convert_long_sat_rtz(half);
6125long2 __ovld __cnfn convert_long2(half2);
6126long2 __ovld __cnfn convert_long2_rte(half2);
6127long2 __ovld __cnfn convert_long2_rtp(half2);
6128long2 __ovld __cnfn convert_long2_rtn(half2);
6129long2 __ovld __cnfn convert_long2_rtz(half2);
6130long2 __ovld __cnfn convert_long2_sat(half2);
6131long2 __ovld __cnfn convert_long2_sat_rte(half2);
6132long2 __ovld __cnfn convert_long2_sat_rtp(half2);
6133long2 __ovld __cnfn convert_long2_sat_rtn(half2);
6134long2 __ovld __cnfn convert_long2_sat_rtz(half2);
6135long3 __ovld __cnfn convert_long3(half3);
6136long3 __ovld __cnfn convert_long3_rte(half3);
6137long3 __ovld __cnfn convert_long3_rtp(half3);
6138long3 __ovld __cnfn convert_long3_rtn(half3);
6139long3 __ovld __cnfn convert_long3_rtz(half3);
6140long3 __ovld __cnfn convert_long3_sat(half3);
6141long3 __ovld __cnfn convert_long3_sat_rte(half3);
6142long3 __ovld __cnfn convert_long3_sat_rtp(half3);
6143long3 __ovld __cnfn convert_long3_sat_rtn(half3);
6144long3 __ovld __cnfn convert_long3_sat_rtz(half3);
6145long4 __ovld __cnfn convert_long4(half4);
6146long4 __ovld __cnfn convert_long4_rte(half4);
6147long4 __ovld __cnfn convert_long4_rtp(half4);
6148long4 __ovld __cnfn convert_long4_rtn(half4);
6149long4 __ovld __cnfn convert_long4_rtz(half4);
6150long4 __ovld __cnfn convert_long4_sat(half4);
6151long4 __ovld __cnfn convert_long4_sat_rte(half4);
6152long4 __ovld __cnfn convert_long4_sat_rtp(half4);
6153long4 __ovld __cnfn convert_long4_sat_rtn(half4);
6154long4 __ovld __cnfn convert_long4_sat_rtz(half4);
6155long8 __ovld __cnfn convert_long8(half8);
6156long8 __ovld __cnfn convert_long8_rte(half8);
6157long8 __ovld __cnfn convert_long8_rtp(half8);
6158long8 __ovld __cnfn convert_long8_rtn(half8);
6159long8 __ovld __cnfn convert_long8_rtz(half8);
6160long8 __ovld __cnfn convert_long8_sat(half8);
6161long8 __ovld __cnfn convert_long8_sat_rte(half8);
6162long8 __ovld __cnfn convert_long8_sat_rtp(half8);
6163long8 __ovld __cnfn convert_long8_sat_rtn(half8);
6164long8 __ovld __cnfn convert_long8_sat_rtz(half8);
6165long16 __ovld __cnfn convert_long16(half16);
6166long16 __ovld __cnfn convert_long16_rte(half16);
6167long16 __ovld __cnfn convert_long16_rtp(half16);
6168long16 __ovld __cnfn convert_long16_rtn(half16);
6169long16 __ovld __cnfn convert_long16_rtz(half16);
6170long16 __ovld __cnfn convert_long16_sat(half16);
6171long16 __ovld __cnfn convert_long16_sat_rte(half16);
6172long16 __ovld __cnfn convert_long16_sat_rtp(half16);
6173long16 __ovld __cnfn convert_long16_sat_rtn(half16);
6174long16 __ovld __cnfn convert_long16_sat_rtz(half16);
6175float __ovld __cnfn convert_float(half);
6176float __ovld __cnfn convert_float_rte(half);
6177float __ovld __cnfn convert_float_rtp(half);
6178float __ovld __cnfn convert_float_rtn(half);
6179float __ovld __cnfn convert_float_rtz(half);
6180float2 __ovld __cnfn convert_float2(half2);
6181float2 __ovld __cnfn convert_float2_rte(half2);
6182float2 __ovld __cnfn convert_float2_rtp(half2);
6183float2 __ovld __cnfn convert_float2_rtn(half2);
6184float2 __ovld __cnfn convert_float2_rtz(half2);
6185float3 __ovld __cnfn convert_float3(half3);
6186float3 __ovld __cnfn convert_float3_rte(half3);
6187float3 __ovld __cnfn convert_float3_rtp(half3);
6188float3 __ovld __cnfn convert_float3_rtn(half3);
6189float3 __ovld __cnfn convert_float3_rtz(half3);
6190float4 __ovld __cnfn convert_float4(half4);
6191float4 __ovld __cnfn convert_float4_rte(half4);
6192float4 __ovld __cnfn convert_float4_rtp(half4);
6193float4 __ovld __cnfn convert_float4_rtn(half4);
6194float4 __ovld __cnfn convert_float4_rtz(half4);
6195float8 __ovld __cnfn convert_float8(half8);
6196float8 __ovld __cnfn convert_float8_rte(half8);
6197float8 __ovld __cnfn convert_float8_rtp(half8);
6198float8 __ovld __cnfn convert_float8_rtn(half8);
6199float8 __ovld __cnfn convert_float8_rtz(half8);
6200float16 __ovld __cnfn convert_float16(half16);
6201float16 __ovld __cnfn convert_float16_rte(half16);
6202float16 __ovld __cnfn convert_float16_rtp(half16);
6203float16 __ovld __cnfn convert_float16_rtn(half16);
6204float16 __ovld __cnfn convert_float16_rtz(half16);
6205
6206// Convert non-double types to half types.
6207half __ovld __cnfn convert_half(uchar);
6208half __ovld __cnfn convert_half(ushort);
6209half __ovld __cnfn convert_half(uint);
6210half __ovld __cnfn convert_half(ulong);
6211half __ovld __cnfn convert_half(char);
6212half __ovld __cnfn convert_half(short);
6213half __ovld __cnfn convert_half(int);
6214half __ovld __cnfn convert_half(long);
6215half __ovld __cnfn convert_half(float);
6216half __ovld __cnfn convert_half(half);
6217half __ovld __cnfn convert_half_rte(uchar);
6218half __ovld __cnfn convert_half_rte(ushort);
6219half __ovld __cnfn convert_half_rte(uint);
6220half __ovld __cnfn convert_half_rte(ulong);
6221half __ovld __cnfn convert_half_rte(char);
6222half __ovld __cnfn convert_half_rte(short);
6223half __ovld __cnfn convert_half_rte(int);
6224half __ovld __cnfn convert_half_rte(long);
6225half __ovld __cnfn convert_half_rte(float);
6226half __ovld __cnfn convert_half_rte(half);
6227half __ovld __cnfn convert_half_rtp(uchar);
6228half __ovld __cnfn convert_half_rtp(ushort);
6229half __ovld __cnfn convert_half_rtp(uint);
6230half __ovld __cnfn convert_half_rtp(ulong);
6231half __ovld __cnfn convert_half_rtp(char);
6232half __ovld __cnfn convert_half_rtp(short);
6233half __ovld __cnfn convert_half_rtp(int);
6234half __ovld __cnfn convert_half_rtp(long);
6235half __ovld __cnfn convert_half_rtp(float);
6236half __ovld __cnfn convert_half_rtp(half);
6237half __ovld __cnfn convert_half_rtn(uchar);
6238half __ovld __cnfn convert_half_rtn(ushort);
6239half __ovld __cnfn convert_half_rtn(uint);
6240half __ovld __cnfn convert_half_rtn(ulong);
6241half __ovld __cnfn convert_half_rtn(char);
6242half __ovld __cnfn convert_half_rtn(short);
6243half __ovld __cnfn convert_half_rtn(int);
6244half __ovld __cnfn convert_half_rtn(long);
6245half __ovld __cnfn convert_half_rtn(float);
6246half __ovld __cnfn convert_half_rtn(half);
6247half __ovld __cnfn convert_half_rtz(uchar);
6248half __ovld __cnfn convert_half_rtz(ushort);
6249half __ovld __cnfn convert_half_rtz(uint);
6250half __ovld __cnfn convert_half_rtz(ulong);
6251half __ovld __cnfn convert_half_rtz(char);
6252half __ovld __cnfn convert_half_rtz(short);
6253half __ovld __cnfn convert_half_rtz(int);
6254half __ovld __cnfn convert_half_rtz(long);
6255half __ovld __cnfn convert_half_rtz(float);
6256half __ovld __cnfn convert_half_rtz(half);
6257half2 __ovld __cnfn convert_half2(char2);
6258half2 __ovld __cnfn convert_half2(uchar2);
6259half2 __ovld __cnfn convert_half2(short2);
6260half2 __ovld __cnfn convert_half2(ushort2);
6261half2 __ovld __cnfn convert_half2(int2);
6262half2 __ovld __cnfn convert_half2(uint2);
6263half2 __ovld __cnfn convert_half2(long2);
6264half2 __ovld __cnfn convert_half2(ulong2);
6265half2 __ovld __cnfn convert_half2(float2);
6266half2 __ovld __cnfn convert_half2(half2);
6267half2 __ovld __cnfn convert_half2_rte(char2);
6268half2 __ovld __cnfn convert_half2_rte(uchar2);
6269half2 __ovld __cnfn convert_half2_rte(short2);
6270half2 __ovld __cnfn convert_half2_rte(ushort2);
6271half2 __ovld __cnfn convert_half2_rte(int2);
6272half2 __ovld __cnfn convert_half2_rte(uint2);
6273half2 __ovld __cnfn convert_half2_rte(long2);
6274half2 __ovld __cnfn convert_half2_rte(ulong2);
6275half2 __ovld __cnfn convert_half2_rte(float2);
6276half2 __ovld __cnfn convert_half2_rte(half2);
6277half2 __ovld __cnfn convert_half2_rtp(char2);
6278half2 __ovld __cnfn convert_half2_rtp(uchar2);
6279half2 __ovld __cnfn convert_half2_rtp(short2);
6280half2 __ovld __cnfn convert_half2_rtp(ushort2);
6281half2 __ovld __cnfn convert_half2_rtp(int2);
6282half2 __ovld __cnfn convert_half2_rtp(uint2);
6283half2 __ovld __cnfn convert_half2_rtp(long2);
6284half2 __ovld __cnfn convert_half2_rtp(ulong2);
6285half2 __ovld __cnfn convert_half2_rtp(float2);
6286half2 __ovld __cnfn convert_half2_rtp(half2);
6287half2 __ovld __cnfn convert_half2_rtn(char2);
6288half2 __ovld __cnfn convert_half2_rtn(uchar2);
6289half2 __ovld __cnfn convert_half2_rtn(short2);
6290half2 __ovld __cnfn convert_half2_rtn(ushort2);
6291half2 __ovld __cnfn convert_half2_rtn(int2);
6292half2 __ovld __cnfn convert_half2_rtn(uint2);
6293half2 __ovld __cnfn convert_half2_rtn(long2);
6294half2 __ovld __cnfn convert_half2_rtn(ulong2);
6295half2 __ovld __cnfn convert_half2_rtn(float2);
6296half2 __ovld __cnfn convert_half2_rtn(half2);
6297half2 __ovld __cnfn convert_half2_rtz(char2);
6298half2 __ovld __cnfn convert_half2_rtz(uchar2);
6299half2 __ovld __cnfn convert_half2_rtz(short2);
6300half2 __ovld __cnfn convert_half2_rtz(ushort2);
6301half2 __ovld __cnfn convert_half2_rtz(int2);
6302half2 __ovld __cnfn convert_half2_rtz(uint2);
6303half2 __ovld __cnfn convert_half2_rtz(long2);
6304half2 __ovld __cnfn convert_half2_rtz(ulong2);
6305half2 __ovld __cnfn convert_half2_rtz(float2);
6306half2 __ovld __cnfn convert_half2_rtz(half2);
6307half3 __ovld __cnfn convert_half3(char3);
6308half3 __ovld __cnfn convert_half3(uchar3);
6309half3 __ovld __cnfn convert_half3(short3);
6310half3 __ovld __cnfn convert_half3(ushort3);
6311half3 __ovld __cnfn convert_half3(int3);
6312half3 __ovld __cnfn convert_half3(uint3);
6313half3 __ovld __cnfn convert_half3(long3);
6314half3 __ovld __cnfn convert_half3(ulong3);
6315half3 __ovld __cnfn convert_half3(float3);
6316half3 __ovld __cnfn convert_half3(half3);
6317half3 __ovld __cnfn convert_half3_rte(char3);
6318half3 __ovld __cnfn convert_half3_rte(uchar3);
6319half3 __ovld __cnfn convert_half3_rte(short3);
6320half3 __ovld __cnfn convert_half3_rte(ushort3);
6321half3 __ovld __cnfn convert_half3_rte(int3);
6322half3 __ovld __cnfn convert_half3_rte(uint3);
6323half3 __ovld __cnfn convert_half3_rte(long3);
6324half3 __ovld __cnfn convert_half3_rte(ulong3);
6325half3 __ovld __cnfn convert_half3_rte(float3);
6326half3 __ovld __cnfn convert_half3_rte(half3);
6327half3 __ovld __cnfn convert_half3_rtp(char3);
6328half3 __ovld __cnfn convert_half3_rtp(uchar3);
6329half3 __ovld __cnfn convert_half3_rtp(short3);
6330half3 __ovld __cnfn convert_half3_rtp(ushort3);
6331half3 __ovld __cnfn convert_half3_rtp(int3);
6332half3 __ovld __cnfn convert_half3_rtp(uint3);
6333half3 __ovld __cnfn convert_half3_rtp(long3);
6334half3 __ovld __cnfn convert_half3_rtp(ulong3);
6335half3 __ovld __cnfn convert_half3_rtp(float3);
6336half3 __ovld __cnfn convert_half3_rtp(half3);
6337half3 __ovld __cnfn convert_half3_rtn(char3);
6338half3 __ovld __cnfn convert_half3_rtn(uchar3);
6339half3 __ovld __cnfn convert_half3_rtn(short3);
6340half3 __ovld __cnfn convert_half3_rtn(ushort3);
6341half3 __ovld __cnfn convert_half3_rtn(int3);
6342half3 __ovld __cnfn convert_half3_rtn(uint3);
6343half3 __ovld __cnfn convert_half3_rtn(long3);
6344half3 __ovld __cnfn convert_half3_rtn(ulong3);
6345half3 __ovld __cnfn convert_half3_rtn(float3);
6346half3 __ovld __cnfn convert_half3_rtn(half3);
6347half3 __ovld __cnfn convert_half3_rtz(char3);
6348half3 __ovld __cnfn convert_half3_rtz(uchar3);
6349half3 __ovld __cnfn convert_half3_rtz(short3);
6350half3 __ovld __cnfn convert_half3_rtz(ushort3);
6351half3 __ovld __cnfn convert_half3_rtz(int3);
6352half3 __ovld __cnfn convert_half3_rtz(uint3);
6353half3 __ovld __cnfn convert_half3_rtz(long3);
6354half3 __ovld __cnfn convert_half3_rtz(ulong3);
6355half3 __ovld __cnfn convert_half3_rtz(float3);
6356half3 __ovld __cnfn convert_half3_rtz(half3);
6357half4 __ovld __cnfn convert_half4(char4);
6358half4 __ovld __cnfn convert_half4(uchar4);
6359half4 __ovld __cnfn convert_half4(short4);
6360half4 __ovld __cnfn convert_half4(ushort4);
6361half4 __ovld __cnfn convert_half4(int4);
6362half4 __ovld __cnfn convert_half4(uint4);
6363half4 __ovld __cnfn convert_half4(long4);
6364half4 __ovld __cnfn convert_half4(ulong4);
6365half4 __ovld __cnfn convert_half4(float4);
6366half4 __ovld __cnfn convert_half4(half4);
6367half4 __ovld __cnfn convert_half4_rte(char4);
6368half4 __ovld __cnfn convert_half4_rte(uchar4);
6369half4 __ovld __cnfn convert_half4_rte(short4);
6370half4 __ovld __cnfn convert_half4_rte(ushort4);
6371half4 __ovld __cnfn convert_half4_rte(int4);
6372half4 __ovld __cnfn convert_half4_rte(uint4);
6373half4 __ovld __cnfn convert_half4_rte(long4);
6374half4 __ovld __cnfn convert_half4_rte(ulong4);
6375half4 __ovld __cnfn convert_half4_rte(float4);
6376half4 __ovld __cnfn convert_half4_rte(half4);
6377half4 __ovld __cnfn convert_half4_rtp(char4);
6378half4 __ovld __cnfn convert_half4_rtp(uchar4);
6379half4 __ovld __cnfn convert_half4_rtp(short4);
6380half4 __ovld __cnfn convert_half4_rtp(ushort4);
6381half4 __ovld __cnfn convert_half4_rtp(int4);
6382half4 __ovld __cnfn convert_half4_rtp(uint4);
6383half4 __ovld __cnfn convert_half4_rtp(long4);
6384half4 __ovld __cnfn convert_half4_rtp(ulong4);
6385half4 __ovld __cnfn convert_half4_rtp(float4);
6386half4 __ovld __cnfn convert_half4_rtp(half4);
6387half4 __ovld __cnfn convert_half4_rtn(char4);
6388half4 __ovld __cnfn convert_half4_rtn(uchar4);
6389half4 __ovld __cnfn convert_half4_rtn(short4);
6390half4 __ovld __cnfn convert_half4_rtn(ushort4);
6391half4 __ovld __cnfn convert_half4_rtn(int4);
6392half4 __ovld __cnfn convert_half4_rtn(uint4);
6393half4 __ovld __cnfn convert_half4_rtn(long4);
6394half4 __ovld __cnfn convert_half4_rtn(ulong4);
6395half4 __ovld __cnfn convert_half4_rtn(float4);
6396half4 __ovld __cnfn convert_half4_rtn(half4);
6397half4 __ovld __cnfn convert_half4_rtz(char4);
6398half4 __ovld __cnfn convert_half4_rtz(uchar4);
6399half4 __ovld __cnfn convert_half4_rtz(short4);
6400half4 __ovld __cnfn convert_half4_rtz(ushort4);
6401half4 __ovld __cnfn convert_half4_rtz(int4);
6402half4 __ovld __cnfn convert_half4_rtz(uint4);
6403half4 __ovld __cnfn convert_half4_rtz(long4);
6404half4 __ovld __cnfn convert_half4_rtz(ulong4);
6405half4 __ovld __cnfn convert_half4_rtz(float4);
6406half4 __ovld __cnfn convert_half4_rtz(half4);
6407half8 __ovld __cnfn convert_half8(char8);
6408half8 __ovld __cnfn convert_half8(uchar8);
6409half8 __ovld __cnfn convert_half8(short8);
6410half8 __ovld __cnfn convert_half8(ushort8);
6411half8 __ovld __cnfn convert_half8(int8);
6412half8 __ovld __cnfn convert_half8(uint8);
6413half8 __ovld __cnfn convert_half8(long8);
6414half8 __ovld __cnfn convert_half8(ulong8);
6415half8 __ovld __cnfn convert_half8(float8);
6416half8 __ovld __cnfn convert_half8(half8);
6417half8 __ovld __cnfn convert_half8_rte(char8);
6418half8 __ovld __cnfn convert_half8_rte(uchar8);
6419half8 __ovld __cnfn convert_half8_rte(short8);
6420half8 __ovld __cnfn convert_half8_rte(ushort8);
6421half8 __ovld __cnfn convert_half8_rte(int8);
6422half8 __ovld __cnfn convert_half8_rte(uint8);
6423half8 __ovld __cnfn convert_half8_rte(long8);
6424half8 __ovld __cnfn convert_half8_rte(ulong8);
6425half8 __ovld __cnfn convert_half8_rte(float8);
6426half8 __ovld __cnfn convert_half8_rte(half8);
6427half8 __ovld __cnfn convert_half8_rtp(char8);
6428half8 __ovld __cnfn convert_half8_rtp(uchar8);
6429half8 __ovld __cnfn convert_half8_rtp(short8);
6430half8 __ovld __cnfn convert_half8_rtp(ushort8);
6431half8 __ovld __cnfn convert_half8_rtp(int8);
6432half8 __ovld __cnfn convert_half8_rtp(uint8);
6433half8 __ovld __cnfn convert_half8_rtp(long8);
6434half8 __ovld __cnfn convert_half8_rtp(ulong8);
6435half8 __ovld __cnfn convert_half8_rtp(float8);
6436half8 __ovld __cnfn convert_half8_rtp(half8);
6437half8 __ovld __cnfn convert_half8_rtn(char8);
6438half8 __ovld __cnfn convert_half8_rtn(uchar8);
6439half8 __ovld __cnfn convert_half8_rtn(short8);
6440half8 __ovld __cnfn convert_half8_rtn(ushort8);
6441half8 __ovld __cnfn convert_half8_rtn(int8);
6442half8 __ovld __cnfn convert_half8_rtn(uint8);
6443half8 __ovld __cnfn convert_half8_rtn(long8);
6444half8 __ovld __cnfn convert_half8_rtn(ulong8);
6445half8 __ovld __cnfn convert_half8_rtn(float8);
6446half8 __ovld __cnfn convert_half8_rtn(half8);
6447half8 __ovld __cnfn convert_half8_rtz(char8);
6448half8 __ovld __cnfn convert_half8_rtz(uchar8);
6449half8 __ovld __cnfn convert_half8_rtz(short8);
6450half8 __ovld __cnfn convert_half8_rtz(ushort8);
6451half8 __ovld __cnfn convert_half8_rtz(int8);
6452half8 __ovld __cnfn convert_half8_rtz(uint8);
6453half8 __ovld __cnfn convert_half8_rtz(long8);
6454half8 __ovld __cnfn convert_half8_rtz(ulong8);
6455half8 __ovld __cnfn convert_half8_rtz(float8);
6456half8 __ovld __cnfn convert_half8_rtz(half8);
6457half16 __ovld __cnfn convert_half16(char16);
6458half16 __ovld __cnfn convert_half16(uchar16);
6459half16 __ovld __cnfn convert_half16(short16);
6460half16 __ovld __cnfn convert_half16(ushort16);
6461half16 __ovld __cnfn convert_half16(int16);
6462half16 __ovld __cnfn convert_half16(uint16);
6463half16 __ovld __cnfn convert_half16(long16);
6464half16 __ovld __cnfn convert_half16(ulong16);
6465half16 __ovld __cnfn convert_half16(float16);
6466half16 __ovld __cnfn convert_half16(half16);
6467half16 __ovld __cnfn convert_half16_rte(char16);
6468half16 __ovld __cnfn convert_half16_rte(uchar16);
6469half16 __ovld __cnfn convert_half16_rte(short16);
6470half16 __ovld __cnfn convert_half16_rte(ushort16);
6471half16 __ovld __cnfn convert_half16_rte(int16);
6472half16 __ovld __cnfn convert_half16_rte(uint16);
6473half16 __ovld __cnfn convert_half16_rte(long16);
6474half16 __ovld __cnfn convert_half16_rte(ulong16);
6475half16 __ovld __cnfn convert_half16_rte(float16);
6476half16 __ovld __cnfn convert_half16_rte(half16);
6477half16 __ovld __cnfn convert_half16_rtp(char16);
6478half16 __ovld __cnfn convert_half16_rtp(uchar16);
6479half16 __ovld __cnfn convert_half16_rtp(short16);
6480half16 __ovld __cnfn convert_half16_rtp(ushort16);
6481half16 __ovld __cnfn convert_half16_rtp(int16);
6482half16 __ovld __cnfn convert_half16_rtp(uint16);
6483half16 __ovld __cnfn convert_half16_rtp(long16);
6484half16 __ovld __cnfn convert_half16_rtp(ulong16);
6485half16 __ovld __cnfn convert_half16_rtp(float16);
6486half16 __ovld __cnfn convert_half16_rtp(half16);
6487half16 __ovld __cnfn convert_half16_rtn(char16);
6488half16 __ovld __cnfn convert_half16_rtn(uchar16);
6489half16 __ovld __cnfn convert_half16_rtn(short16);
6490half16 __ovld __cnfn convert_half16_rtn(ushort16);
6491half16 __ovld __cnfn convert_half16_rtn(int16);
6492half16 __ovld __cnfn convert_half16_rtn(uint16);
6493half16 __ovld __cnfn convert_half16_rtn(long16);
6494half16 __ovld __cnfn convert_half16_rtn(ulong16);
6495half16 __ovld __cnfn convert_half16_rtn(float16);
6496half16 __ovld __cnfn convert_half16_rtn(half16);
6497half16 __ovld __cnfn convert_half16_rtz(char16);
6498half16 __ovld __cnfn convert_half16_rtz(uchar16);
6499half16 __ovld __cnfn convert_half16_rtz(short16);
6500half16 __ovld __cnfn convert_half16_rtz(ushort16);
6501half16 __ovld __cnfn convert_half16_rtz(int16);
6502half16 __ovld __cnfn convert_half16_rtz(uint16);
6503half16 __ovld __cnfn convert_half16_rtz(long16);
6504half16 __ovld __cnfn convert_half16_rtz(ulong16);
6505half16 __ovld __cnfn convert_half16_rtz(float16);
6506half16 __ovld __cnfn convert_half16_rtz(half16);
6507
6508// Convert half types to double types.
6509#ifdef cl_khr_fp64
6510double __ovld __cnfn convert_double(half);
6511double __ovld __cnfn convert_double_rte(half);
6512double __ovld __cnfn convert_double_rtp(half);
6513double __ovld __cnfn convert_double_rtn(half);
6514double __ovld __cnfn convert_double_rtz(half);
6515double2 __ovld __cnfn convert_double2(half2);
6516double2 __ovld __cnfn convert_double2_rte(half2);
6517double2 __ovld __cnfn convert_double2_rtp(half2);
6518double2 __ovld __cnfn convert_double2_rtn(half2);
6519double2 __ovld __cnfn convert_double2_rtz(half2);
6520double3 __ovld __cnfn convert_double3(half3);
6521double3 __ovld __cnfn convert_double3_rte(half3);
6522double3 __ovld __cnfn convert_double3_rtp(half3);
6523double3 __ovld __cnfn convert_double3_rtn(half3);
6524double3 __ovld __cnfn convert_double3_rtz(half3);
6525double4 __ovld __cnfn convert_double4(half4);
6526double4 __ovld __cnfn convert_double4_rte(half4);
6527double4 __ovld __cnfn convert_double4_rtp(half4);
6528double4 __ovld __cnfn convert_double4_rtn(half4);
6529double4 __ovld __cnfn convert_double4_rtz(half4);
6530double8 __ovld __cnfn convert_double8(half8);
6531double8 __ovld __cnfn convert_double8_rte(half8);
6532double8 __ovld __cnfn convert_double8_rtp(half8);
6533double8 __ovld __cnfn convert_double8_rtn(half8);
6534double8 __ovld __cnfn convert_double8_rtz(half8);
6535double16 __ovld __cnfn convert_double16(half16);
6536double16 __ovld __cnfn convert_double16_rte(half16);
6537double16 __ovld __cnfn convert_double16_rtp(half16);
6538double16 __ovld __cnfn convert_double16_rtn(half16);
6539double16 __ovld __cnfn convert_double16_rtz(half16);
6540
6541// Convert double types to half types.
6542half __ovld __cnfn convert_half(double);
6543half __ovld __cnfn convert_half_rte(double);
6544half __ovld __cnfn convert_half_rtp(double);
6545half __ovld __cnfn convert_half_rtn(double);
6546half __ovld __cnfn convert_half_rtz(double);
6547half2 __ovld __cnfn convert_half2(double2);
6548half2 __ovld __cnfn convert_half2_rte(double2);
6549half2 __ovld __cnfn convert_half2_rtp(double2);
6550half2 __ovld __cnfn convert_half2_rtn(double2);
6551half2 __ovld __cnfn convert_half2_rtz(double2);
6552half3 __ovld __cnfn convert_half3(double3);
6553half3 __ovld __cnfn convert_half3_rte(double3);
6554half3 __ovld __cnfn convert_half3_rtp(double3);
6555half3 __ovld __cnfn convert_half3_rtn(double3);
6556half3 __ovld __cnfn convert_half3_rtz(double3);
6557half4 __ovld __cnfn convert_half4(double4);
6558half4 __ovld __cnfn convert_half4_rte(double4);
6559half4 __ovld __cnfn convert_half4_rtp(double4);
6560half4 __ovld __cnfn convert_half4_rtn(double4);
6561half4 __ovld __cnfn convert_half4_rtz(double4);
6562half8 __ovld __cnfn convert_half8(double8);
6563half8 __ovld __cnfn convert_half8_rte(double8);
6564half8 __ovld __cnfn convert_half8_rtp(double8);
6565half8 __ovld __cnfn convert_half8_rtn(double8);
6566half8 __ovld __cnfn convert_half8_rtz(double8);
6567half16 __ovld __cnfn convert_half16(double16);
6568half16 __ovld __cnfn convert_half16_rte(double16);
6569half16 __ovld __cnfn convert_half16_rtp(double16);
6570half16 __ovld __cnfn convert_half16_rtn(double16);
6571half16 __ovld __cnfn convert_half16_rtz(double16);
6572#endif //cl_khr_fp64
6573
6574#endif // cl_khr_fp16
6575
6576/**
6577 * OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
6578 * Reinterprets a data type as another data type of the same size
6579 */
6580char __ovld __cnfn as_char(char);
6581char __ovld __cnfn as_char(uchar);
6582
6583char2 __ovld __cnfn as_char2(char2);
6584char2 __ovld __cnfn as_char2(uchar2);
6585char2 __ovld __cnfn as_char2(short);
6586char2 __ovld __cnfn as_char2(ushort);
6587
6588char3 __ovld __cnfn as_char3(char3);
6589char3 __ovld __cnfn as_char3(char4);
6590char3 __ovld __cnfn as_char3(uchar3);
6591char3 __ovld __cnfn as_char3(uchar4);
6592char3 __ovld __cnfn as_char3(short2);
6593char3 __ovld __cnfn as_char3(ushort2);
6594char3 __ovld __cnfn as_char3(int);
6595char3 __ovld __cnfn as_char3(uint);
6596char3 __ovld __cnfn as_char3(float);
6597
6598char4 __ovld __cnfn as_char4(char3);
6599char4 __ovld __cnfn as_char4(char4);
6600char4 __ovld __cnfn as_char4(uchar3);
6601char4 __ovld __cnfn as_char4(uchar4);
6602char4 __ovld __cnfn as_char4(short2);
6603char4 __ovld __cnfn as_char4(ushort2);
6604char4 __ovld __cnfn as_char4(int);
6605char4 __ovld __cnfn as_char4(uint);
6606char4 __ovld __cnfn as_char4(float);
6607
6608char8 __ovld __cnfn as_char8(char8);
6609char8 __ovld __cnfn as_char8(uchar8);
6610char8 __ovld __cnfn as_char8(short3);
6611char8 __ovld __cnfn as_char8(short4);
6612char8 __ovld __cnfn as_char8(ushort3);
6613char8 __ovld __cnfn as_char8(ushort4);
6614char8 __ovld __cnfn as_char8(int2);
6615char8 __ovld __cnfn as_char8(uint2);
6616char8 __ovld __cnfn as_char8(long);
6617char8 __ovld __cnfn as_char8(ulong);
6618char8 __ovld __cnfn as_char8(float2);
6619
6620char16 __ovld __cnfn as_char16(char16);
6621char16 __ovld __cnfn as_char16(uchar16);
6622char16 __ovld __cnfn as_char16(short8);
6623char16 __ovld __cnfn as_char16(ushort8);
6624char16 __ovld __cnfn as_char16(int3);
6625char16 __ovld __cnfn as_char16(int4);
6626char16 __ovld __cnfn as_char16(uint3);
6627char16 __ovld __cnfn as_char16(uint4);
6628char16 __ovld __cnfn as_char16(long2);
6629char16 __ovld __cnfn as_char16(ulong2);
6630char16 __ovld __cnfn as_char16(float3);
6631char16 __ovld __cnfn as_char16(float4);
6632
6633uchar __ovld __cnfn as_uchar(char);
6634uchar __ovld __cnfn as_uchar(uchar);
6635
6636uchar2 __ovld __cnfn as_uchar2(char2);
6637uchar2 __ovld __cnfn as_uchar2(uchar2);
6638uchar2 __ovld __cnfn as_uchar2(short);
6639uchar2 __ovld __cnfn as_uchar2(ushort);
6640
6641uchar3 __ovld __cnfn as_uchar3(char3);
6642uchar3 __ovld __cnfn as_uchar3(char4);
6643uchar3 __ovld __cnfn as_uchar3(uchar3);
6644uchar3 __ovld __cnfn as_uchar3(uchar4);
6645uchar3 __ovld __cnfn as_uchar3(short2);
6646uchar3 __ovld __cnfn as_uchar3(ushort2);
6647uchar3 __ovld __cnfn as_uchar3(int);
6648uchar3 __ovld __cnfn as_uchar3(uint);
6649uchar3 __ovld __cnfn as_uchar3(float);
6650
6651uchar4 __ovld __cnfn as_uchar4(char3);
6652uchar4 __ovld __cnfn as_uchar4(char4);
6653uchar4 __ovld __cnfn as_uchar4(uchar3);
6654uchar4 __ovld __cnfn as_uchar4(uchar4);
6655uchar4 __ovld __cnfn as_uchar4(short2);
6656uchar4 __ovld __cnfn as_uchar4(ushort2);
6657uchar4 __ovld __cnfn as_uchar4(int);
6658uchar4 __ovld __cnfn as_uchar4(uint);
6659uchar4 __ovld __cnfn as_uchar4(float);
6660
6661uchar8 __ovld __cnfn as_uchar8(char8);
6662uchar8 __ovld __cnfn as_uchar8(uchar8);
6663uchar8 __ovld __cnfn as_uchar8(short3);
6664uchar8 __ovld __cnfn as_uchar8(short4);
6665uchar8 __ovld __cnfn as_uchar8(ushort3);
6666uchar8 __ovld __cnfn as_uchar8(ushort4);
6667uchar8 __ovld __cnfn as_uchar8(int2);
6668uchar8 __ovld __cnfn as_uchar8(uint2);
6669uchar8 __ovld __cnfn as_uchar8(long);
6670uchar8 __ovld __cnfn as_uchar8(ulong);
6671uchar8 __ovld __cnfn as_uchar8(float2);
6672
6673uchar16 __ovld __cnfn as_uchar16(char16);
6674uchar16 __ovld __cnfn as_uchar16(uchar16);
6675uchar16 __ovld __cnfn as_uchar16(short8);
6676uchar16 __ovld __cnfn as_uchar16(ushort8);
6677uchar16 __ovld __cnfn as_uchar16(int3);
6678uchar16 __ovld __cnfn as_uchar16(int4);
6679uchar16 __ovld __cnfn as_uchar16(uint3);
6680uchar16 __ovld __cnfn as_uchar16(uint4);
6681uchar16 __ovld __cnfn as_uchar16(long2);
6682uchar16 __ovld __cnfn as_uchar16(ulong2);
6683uchar16 __ovld __cnfn as_uchar16(float3);
6684uchar16 __ovld __cnfn as_uchar16(float4);
6685
6686short __ovld __cnfn as_short(char2);
6687short __ovld __cnfn as_short(uchar2);
6688short __ovld __cnfn as_short(short);
6689short __ovld __cnfn as_short(ushort);
6690
6691short2 __ovld __cnfn as_short2(char3);
6692short2 __ovld __cnfn as_short2(char4);
6693short2 __ovld __cnfn as_short2(uchar3);
6694short2 __ovld __cnfn as_short2(uchar4);
6695short2 __ovld __cnfn as_short2(short2);
6696short2 __ovld __cnfn as_short2(ushort2);
6697short2 __ovld __cnfn as_short2(int);
6698short2 __ovld __cnfn as_short2(uint);
6699short2 __ovld __cnfn as_short2(float);
6700
6701short3 __ovld __cnfn as_short3(char8);
6702short3 __ovld __cnfn as_short3(uchar8);
6703short3 __ovld __cnfn as_short3(short3);
6704short3 __ovld __cnfn as_short3(short4);
6705short3 __ovld __cnfn as_short3(ushort3);
6706short3 __ovld __cnfn as_short3(ushort4);
6707short3 __ovld __cnfn as_short3(int2);
6708short3 __ovld __cnfn as_short3(uint2);
6709short3 __ovld __cnfn as_short3(long);
6710short3 __ovld __cnfn as_short3(ulong);
6711short3 __ovld __cnfn as_short3(float2);
6712
6713short4 __ovld __cnfn as_short4(char8);
6714short4 __ovld __cnfn as_short4(uchar8);
6715short4 __ovld __cnfn as_short4(short3);
6716short4 __ovld __cnfn as_short4(short4);
6717short4 __ovld __cnfn as_short4(ushort3);
6718short4 __ovld __cnfn as_short4(ushort4);
6719short4 __ovld __cnfn as_short4(int2);
6720short4 __ovld __cnfn as_short4(uint2);
6721short4 __ovld __cnfn as_short4(long);
6722short4 __ovld __cnfn as_short4(ulong);
6723short4 __ovld __cnfn as_short4(float2);
6724
6725short8 __ovld __cnfn as_short8(char16);
6726short8 __ovld __cnfn as_short8(uchar16);
6727short8 __ovld __cnfn as_short8(short8);
6728short8 __ovld __cnfn as_short8(ushort8);
6729short8 __ovld __cnfn as_short8(int3);
6730short8 __ovld __cnfn as_short8(int4);
6731short8 __ovld __cnfn as_short8(uint3);
6732short8 __ovld __cnfn as_short8(uint4);
6733short8 __ovld __cnfn as_short8(long2);
6734short8 __ovld __cnfn as_short8(ulong2);
6735short8 __ovld __cnfn as_short8(float3);
6736short8 __ovld __cnfn as_short8(float4);
6737
6738short16 __ovld __cnfn as_short16(short16);
6739short16 __ovld __cnfn as_short16(ushort16);
6740short16 __ovld __cnfn as_short16(int8);
6741short16 __ovld __cnfn as_short16(uint8);
6742short16 __ovld __cnfn as_short16(long3);
6743short16 __ovld __cnfn as_short16(long4);
6744short16 __ovld __cnfn as_short16(ulong3);
6745short16 __ovld __cnfn as_short16(ulong4);
6746short16 __ovld __cnfn as_short16(float8);
6747
6748ushort __ovld __cnfn as_ushort(char2);
6749ushort __ovld __cnfn as_ushort(uchar2);
6750ushort __ovld __cnfn as_ushort(short);
6751ushort __ovld __cnfn as_ushort(ushort);
6752
6753ushort2 __ovld __cnfn as_ushort2(char3);
6754ushort2 __ovld __cnfn as_ushort2(char4);
6755ushort2 __ovld __cnfn as_ushort2(uchar3);
6756ushort2 __ovld __cnfn as_ushort2(uchar4);
6757ushort2 __ovld __cnfn as_ushort2(short2);
6758ushort2 __ovld __cnfn as_ushort2(ushort2);
6759ushort2 __ovld __cnfn as_ushort2(int);
6760ushort2 __ovld __cnfn as_ushort2(uint);
6761ushort2 __ovld __cnfn as_ushort2(float);
6762
6763ushort3 __ovld __cnfn as_ushort3(char8);
6764ushort3 __ovld __cnfn as_ushort3(uchar8);
6765ushort3 __ovld __cnfn as_ushort3(short3);
6766ushort3 __ovld __cnfn as_ushort3(short4);
6767ushort3 __ovld __cnfn as_ushort3(ushort3);
6768ushort3 __ovld __cnfn as_ushort3(ushort4);
6769ushort3 __ovld __cnfn as_ushort3(int2);
6770ushort3 __ovld __cnfn as_ushort3(uint2);
6771ushort3 __ovld __cnfn as_ushort3(long);
6772ushort3 __ovld __cnfn as_ushort3(ulong);
6773ushort3 __ovld __cnfn as_ushort3(float2);
6774
6775ushort4 __ovld __cnfn as_ushort4(char8);
6776ushort4 __ovld __cnfn as_ushort4(uchar8);
6777ushort4 __ovld __cnfn as_ushort4(short3);
6778ushort4 __ovld __cnfn as_ushort4(short4);
6779ushort4 __ovld __cnfn as_ushort4(ushort3);
6780ushort4 __ovld __cnfn as_ushort4(ushort4);
6781ushort4 __ovld __cnfn as_ushort4(int2);
6782ushort4 __ovld __cnfn as_ushort4(uint2);
6783ushort4 __ovld __cnfn as_ushort4(long);
6784ushort4 __ovld __cnfn as_ushort4(ulong);
6785ushort4 __ovld __cnfn as_ushort4(float2);
6786
6787ushort8 __ovld __cnfn as_ushort8(char16);
6788ushort8 __ovld __cnfn as_ushort8(uchar16);
6789ushort8 __ovld __cnfn as_ushort8(short8);
6790ushort8 __ovld __cnfn as_ushort8(ushort8);
6791ushort8 __ovld __cnfn as_ushort8(int3);
6792ushort8 __ovld __cnfn as_ushort8(int4);
6793ushort8 __ovld __cnfn as_ushort8(uint3);
6794ushort8 __ovld __cnfn as_ushort8(uint4);
6795ushort8 __ovld __cnfn as_ushort8(long2);
6796ushort8 __ovld __cnfn as_ushort8(ulong2);
6797ushort8 __ovld __cnfn as_ushort8(float3);
6798ushort8 __ovld __cnfn as_ushort8(float4);
6799
6800ushort16 __ovld __cnfn as_ushort16(short16);
6801ushort16 __ovld __cnfn as_ushort16(ushort16);
6802ushort16 __ovld __cnfn as_ushort16(int8);
6803ushort16 __ovld __cnfn as_ushort16(uint8);
6804ushort16 __ovld __cnfn as_ushort16(long3);
6805ushort16 __ovld __cnfn as_ushort16(long4);
6806ushort16 __ovld __cnfn as_ushort16(ulong3);
6807ushort16 __ovld __cnfn as_ushort16(ulong4);
6808ushort16 __ovld __cnfn as_ushort16(float8);
6809
6810int __ovld __cnfn as_int(char3);
6811int __ovld __cnfn as_int(char4);
6812int __ovld __cnfn as_int(uchar3);
6813int __ovld __cnfn as_int(uchar4);
6814int __ovld __cnfn as_int(short2);
6815int __ovld __cnfn as_int(ushort2);
6816int __ovld __cnfn as_int(int);
6817int __ovld __cnfn as_int(uint);
6818int __ovld __cnfn as_int(float);
6819
6820int2 __ovld __cnfn as_int2(char8);
6821int2 __ovld __cnfn as_int2(uchar8);
6822int2 __ovld __cnfn as_int2(short3);
6823int2 __ovld __cnfn as_int2(short4);
6824int2 __ovld __cnfn as_int2(ushort3);
6825int2 __ovld __cnfn as_int2(ushort4);
6826int2 __ovld __cnfn as_int2(int2);
6827int2 __ovld __cnfn as_int2(uint2);
6828int2 __ovld __cnfn as_int2(long);
6829int2 __ovld __cnfn as_int2(ulong);
6830int2 __ovld __cnfn as_int2(float2);
6831
6832int3 __ovld __cnfn as_int3(char16);
6833int3 __ovld __cnfn as_int3(uchar16);
6834int3 __ovld __cnfn as_int3(short8);
6835int3 __ovld __cnfn as_int3(ushort8);
6836int3 __ovld __cnfn as_int3(int3);
6837int3 __ovld __cnfn as_int3(int4);
6838int3 __ovld __cnfn as_int3(uint3);
6839int3 __ovld __cnfn as_int3(uint4);
6840int3 __ovld __cnfn as_int3(long2);
6841int3 __ovld __cnfn as_int3(ulong2);
6842int3 __ovld __cnfn as_int3(float3);
6843int3 __ovld __cnfn as_int3(float4);
6844
6845int4 __ovld __cnfn as_int4(char16);
6846int4 __ovld __cnfn as_int4(uchar16);
6847int4 __ovld __cnfn as_int4(short8);
6848int4 __ovld __cnfn as_int4(ushort8);
6849int4 __ovld __cnfn as_int4(int3);
6850int4 __ovld __cnfn as_int4(int4);
6851int4 __ovld __cnfn as_int4(uint3);
6852int4 __ovld __cnfn as_int4(uint4);
6853int4 __ovld __cnfn as_int4(long2);
6854int4 __ovld __cnfn as_int4(ulong2);
6855int4 __ovld __cnfn as_int4(float3);
6856int4 __ovld __cnfn as_int4(float4);
6857
6858int8 __ovld __cnfn as_int8(short16);
6859int8 __ovld __cnfn as_int8(ushort16);
6860int8 __ovld __cnfn as_int8(int8);
6861int8 __ovld __cnfn as_int8(uint8);
6862int8 __ovld __cnfn as_int8(long3);
6863int8 __ovld __cnfn as_int8(long4);
6864int8 __ovld __cnfn as_int8(ulong3);
6865int8 __ovld __cnfn as_int8(ulong4);
6866int8 __ovld __cnfn as_int8(float8);
6867
6868int16 __ovld __cnfn as_int16(int16);
6869int16 __ovld __cnfn as_int16(uint16);
6870int16 __ovld __cnfn as_int16(long8);
6871int16 __ovld __cnfn as_int16(ulong8);
6872int16 __ovld __cnfn as_int16(float16);
6873
6874uint __ovld __cnfn as_uint(char3);
6875uint __ovld __cnfn as_uint(char4);
6876uint __ovld __cnfn as_uint(uchar3);
6877uint __ovld __cnfn as_uint(uchar4);
6878uint __ovld __cnfn as_uint(short2);
6879uint __ovld __cnfn as_uint(ushort2);
6880uint __ovld __cnfn as_uint(int);
6881uint __ovld __cnfn as_uint(uint);
6882uint __ovld __cnfn as_uint(float);
6883
6884uint2 __ovld __cnfn as_uint2(char8);
6885uint2 __ovld __cnfn as_uint2(uchar8);
6886uint2 __ovld __cnfn as_uint2(short3);
6887uint2 __ovld __cnfn as_uint2(short4);
6888uint2 __ovld __cnfn as_uint2(ushort3);
6889uint2 __ovld __cnfn as_uint2(ushort4);
6890uint2 __ovld __cnfn as_uint2(int2);
6891uint2 __ovld __cnfn as_uint2(uint2);
6892uint2 __ovld __cnfn as_uint2(long);
6893uint2 __ovld __cnfn as_uint2(ulong);
6894uint2 __ovld __cnfn as_uint2(float2);
6895
6896uint3 __ovld __cnfn as_uint3(char16);
6897uint3 __ovld __cnfn as_uint3(uchar16);
6898uint3 __ovld __cnfn as_uint3(short8);
6899uint3 __ovld __cnfn as_uint3(ushort8);
6900uint3 __ovld __cnfn as_uint3(int3);
6901uint3 __ovld __cnfn as_uint3(int4);
6902uint3 __ovld __cnfn as_uint3(uint3);
6903uint3 __ovld __cnfn as_uint3(uint4);
6904uint3 __ovld __cnfn as_uint3(long2);
6905uint3 __ovld __cnfn as_uint3(ulong2);
6906uint3 __ovld __cnfn as_uint3(float3);
6907uint3 __ovld __cnfn as_uint3(float4);
6908
6909uint4 __ovld __cnfn as_uint4(char16);
6910uint4 __ovld __cnfn as_uint4(uchar16);
6911uint4 __ovld __cnfn as_uint4(short8);
6912uint4 __ovld __cnfn as_uint4(ushort8);
6913uint4 __ovld __cnfn as_uint4(int3);
6914uint4 __ovld __cnfn as_uint4(int4);
6915uint4 __ovld __cnfn as_uint4(uint3);
6916uint4 __ovld __cnfn as_uint4(uint4);
6917uint4 __ovld __cnfn as_uint4(long2);
6918uint4 __ovld __cnfn as_uint4(ulong2);
6919uint4 __ovld __cnfn as_uint4(float3);
6920uint4 __ovld __cnfn as_uint4(float4);
6921
6922uint8 __ovld __cnfn as_uint8(short16);
6923uint8 __ovld __cnfn as_uint8(ushort16);
6924uint8 __ovld __cnfn as_uint8(int8);
6925uint8 __ovld __cnfn as_uint8(uint8);
6926uint8 __ovld __cnfn as_uint8(long3);
6927uint8 __ovld __cnfn as_uint8(long4);
6928uint8 __ovld __cnfn as_uint8(ulong3);
6929uint8 __ovld __cnfn as_uint8(ulong4);
6930uint8 __ovld __cnfn as_uint8(float8);
6931
6932uint16 __ovld __cnfn as_uint16(int16);
6933uint16 __ovld __cnfn as_uint16(uint16);
6934uint16 __ovld __cnfn as_uint16(long8);
6935uint16 __ovld __cnfn as_uint16(ulong8);
6936uint16 __ovld __cnfn as_uint16(float16);
6937
6938long __ovld __cnfn as_long(char8);
6939long __ovld __cnfn as_long(uchar8);
6940long __ovld __cnfn as_long(short3);
6941long __ovld __cnfn as_long(short4);
6942long __ovld __cnfn as_long(ushort3);
6943long __ovld __cnfn as_long(ushort4);
6944long __ovld __cnfn as_long(int2);
6945long __ovld __cnfn as_long(uint2);
6946long __ovld __cnfn as_long(long);
6947long __ovld __cnfn as_long(ulong);
6948long __ovld __cnfn as_long(float2);
6949
6950long2 __ovld __cnfn as_long2(char16);
6951long2 __ovld __cnfn as_long2(uchar16);
6952long2 __ovld __cnfn as_long2(short8);
6953long2 __ovld __cnfn as_long2(ushort8);
6954long2 __ovld __cnfn as_long2(int3);
6955long2 __ovld __cnfn as_long2(int4);
6956long2 __ovld __cnfn as_long2(uint3);
6957long2 __ovld __cnfn as_long2(uint4);
6958long2 __ovld __cnfn as_long2(long2);
6959long2 __ovld __cnfn as_long2(ulong2);
6960long2 __ovld __cnfn as_long2(float3);
6961long2 __ovld __cnfn as_long2(float4);
6962
6963long3 __ovld __cnfn as_long3(short16);
6964long3 __ovld __cnfn as_long3(ushort16);
6965long3 __ovld __cnfn as_long3(int8);
6966long3 __ovld __cnfn as_long3(uint8);
6967long3 __ovld __cnfn as_long3(long3);
6968long3 __ovld __cnfn as_long3(long4);
6969long3 __ovld __cnfn as_long3(ulong3);
6970long3 __ovld __cnfn as_long3(ulong4);
6971long3 __ovld __cnfn as_long3(float8);
6972
6973long4 __ovld __cnfn as_long4(short16);
6974long4 __ovld __cnfn as_long4(ushort16);
6975long4 __ovld __cnfn as_long4(int8);
6976long4 __ovld __cnfn as_long4(uint8);
6977long4 __ovld __cnfn as_long4(long3);
6978long4 __ovld __cnfn as_long4(long4);
6979long4 __ovld __cnfn as_long4(ulong3);
6980long4 __ovld __cnfn as_long4(ulong4);
6981long4 __ovld __cnfn as_long4(float8);
6982
6983long8 __ovld __cnfn as_long8(int16);
6984long8 __ovld __cnfn as_long8(uint16);
6985long8 __ovld __cnfn as_long8(long8);
6986long8 __ovld __cnfn as_long8(ulong8);
6987long8 __ovld __cnfn as_long8(float16);
6988
6989long16 __ovld __cnfn as_long16(long16);
6990long16 __ovld __cnfn as_long16(ulong16);
6991
6992ulong __ovld __cnfn as_ulong(char8);
6993ulong __ovld __cnfn as_ulong(uchar8);
6994ulong __ovld __cnfn as_ulong(short3);
6995ulong __ovld __cnfn as_ulong(short4);
6996ulong __ovld __cnfn as_ulong(ushort3);
6997ulong __ovld __cnfn as_ulong(ushort4);
6998ulong __ovld __cnfn as_ulong(int2);
6999ulong __ovld __cnfn as_ulong(uint2);
7000ulong __ovld __cnfn as_ulong(long);
7001ulong __ovld __cnfn as_ulong(ulong);
7002ulong __ovld __cnfn as_ulong(float2);
7003
7004ulong2 __ovld __cnfn as_ulong2(char16);
7005ulong2 __ovld __cnfn as_ulong2(uchar16);
7006ulong2 __ovld __cnfn as_ulong2(short8);
7007ulong2 __ovld __cnfn as_ulong2(ushort8);
7008ulong2 __ovld __cnfn as_ulong2(int3);
7009ulong2 __ovld __cnfn as_ulong2(int4);
7010ulong2 __ovld __cnfn as_ulong2(uint3);
7011ulong2 __ovld __cnfn as_ulong2(uint4);
7012ulong2 __ovld __cnfn as_ulong2(long2);
7013ulong2 __ovld __cnfn as_ulong2(ulong2);
7014ulong2 __ovld __cnfn as_ulong2(float3);
7015ulong2 __ovld __cnfn as_ulong2(float4);
7016
7017ulong3 __ovld __cnfn as_ulong3(short16);
7018ulong3 __ovld __cnfn as_ulong3(ushort16);
7019ulong3 __ovld __cnfn as_ulong3(int8);
7020ulong3 __ovld __cnfn as_ulong3(uint8);
7021ulong3 __ovld __cnfn as_ulong3(long3);
7022ulong3 __ovld __cnfn as_ulong3(long4);
7023ulong3 __ovld __cnfn as_ulong3(ulong3);
7024ulong3 __ovld __cnfn as_ulong3(ulong4);
7025ulong3 __ovld __cnfn as_ulong3(float8);
7026
7027ulong4 __ovld __cnfn as_ulong4(short16);
7028ulong4 __ovld __cnfn as_ulong4(ushort16);
7029ulong4 __ovld __cnfn as_ulong4(int8);
7030ulong4 __ovld __cnfn as_ulong4(uint8);
7031ulong4 __ovld __cnfn as_ulong4(long3);
7032ulong4 __ovld __cnfn as_ulong4(long4);
7033ulong4 __ovld __cnfn as_ulong4(ulong3);
7034ulong4 __ovld __cnfn as_ulong4(ulong4);
7035ulong4 __ovld __cnfn as_ulong4(float8);
7036
7037ulong8 __ovld __cnfn as_ulong8(int16);
7038ulong8 __ovld __cnfn as_ulong8(uint16);
7039ulong8 __ovld __cnfn as_ulong8(long8);
7040ulong8 __ovld __cnfn as_ulong8(ulong8);
7041ulong8 __ovld __cnfn as_ulong8(float16);
7042
7043ulong16 __ovld __cnfn as_ulong16(long16);
7044ulong16 __ovld __cnfn as_ulong16(ulong16);
7045
7046float __ovld __cnfn as_float(char3);
7047float __ovld __cnfn as_float(char4);
7048float __ovld __cnfn as_float(uchar3);
7049float __ovld __cnfn as_float(uchar4);
7050float __ovld __cnfn as_float(short2);
7051float __ovld __cnfn as_float(ushort2);
7052float __ovld __cnfn as_float(int);
7053float __ovld __cnfn as_float(uint);
7054float __ovld __cnfn as_float(float);
7055
7056float2 __ovld __cnfn as_float2(char8);
7057float2 __ovld __cnfn as_float2(uchar8);
7058float2 __ovld __cnfn as_float2(short3);
7059float2 __ovld __cnfn as_float2(short4);
7060float2 __ovld __cnfn as_float2(ushort3);
7061float2 __ovld __cnfn as_float2(ushort4);
7062float2 __ovld __cnfn as_float2(int2);
7063float2 __ovld __cnfn as_float2(uint2);
7064float2 __ovld __cnfn as_float2(long);
7065float2 __ovld __cnfn as_float2(ulong);
7066float2 __ovld __cnfn as_float2(float2);
7067
7068float3 __ovld __cnfn as_float3(char16);
7069float3 __ovld __cnfn as_float3(uchar16);
7070float3 __ovld __cnfn as_float3(short8);
7071float3 __ovld __cnfn as_float3(ushort8);
7072float3 __ovld __cnfn as_float3(int3);
7073float3 __ovld __cnfn as_float3(int4);
7074float3 __ovld __cnfn as_float3(uint3);
7075float3 __ovld __cnfn as_float3(uint4);
7076float3 __ovld __cnfn as_float3(long2);
7077float3 __ovld __cnfn as_float3(ulong2);
7078float3 __ovld __cnfn as_float3(float3);
7079float3 __ovld __cnfn as_float3(float4);
7080
7081float4 __ovld __cnfn as_float4(char16);
7082float4 __ovld __cnfn as_float4(uchar16);
7083float4 __ovld __cnfn as_float4(short8);
7084float4 __ovld __cnfn as_float4(ushort8);
7085float4 __ovld __cnfn as_float4(int3);
7086float4 __ovld __cnfn as_float4(int4);
7087float4 __ovld __cnfn as_float4(uint3);
7088float4 __ovld __cnfn as_float4(uint4);
7089float4 __ovld __cnfn as_float4(long2);
7090float4 __ovld __cnfn as_float4(ulong2);
7091float4 __ovld __cnfn as_float4(float3);
7092float4 __ovld __cnfn as_float4(float4);
7093
7094float8 __ovld __cnfn as_float8(short16);
7095float8 __ovld __cnfn as_float8(ushort16);
7096float8 __ovld __cnfn as_float8(int8);
7097float8 __ovld __cnfn as_float8(uint8);
7098float8 __ovld __cnfn as_float8(long3);
7099float8 __ovld __cnfn as_float8(long4);
7100float8 __ovld __cnfn as_float8(ulong3);
7101float8 __ovld __cnfn as_float8(ulong4);
7102float8 __ovld __cnfn as_float8(float8);
7103
7104float16 __ovld __cnfn as_float16(int16);
7105float16 __ovld __cnfn as_float16(uint16);
7106float16 __ovld __cnfn as_float16(long8);
7107float16 __ovld __cnfn as_float16(ulong8);
7108float16 __ovld __cnfn as_float16(float16);
7109
7110#ifdef cl_khr_fp64
7111char8 __ovld __cnfn as_char8(double);
7112char16 __ovld __cnfn as_char16(double2);
7113uchar8 __ovld __cnfn as_uchar8(double);
7114uchar16 __ovld __cnfn as_uchar16(double2);
7115short3 __ovld __cnfn as_short3(double);
7116short4 __ovld __cnfn as_short4(double);
7117short8 __ovld __cnfn as_short8(double2);
7118short16 __ovld __cnfn as_short16(double3);
7119short16 __ovld __cnfn as_short16(double4);
7120ushort3 __ovld __cnfn as_ushort3(double);
7121ushort4 __ovld __cnfn as_ushort4(double);
7122ushort8 __ovld __cnfn as_ushort8(double2);
7123ushort16 __ovld __cnfn as_ushort16(double3);
7124ushort16 __ovld __cnfn as_ushort16(double4);
7125int2 __ovld __cnfn as_int2(double);
7126int3 __ovld __cnfn as_int3(double2);
7127int4 __ovld __cnfn as_int4(double2);
7128int8 __ovld __cnfn as_int8(double3);
7129int8 __ovld __cnfn as_int8(double4);
7130int16 __ovld __cnfn as_int16(double8);
7131uint2 __ovld __cnfn as_uint2(double);
7132uint3 __ovld __cnfn as_uint3(double2);
7133uint4 __ovld __cnfn as_uint4(double2);
7134uint8 __ovld __cnfn as_uint8(double3);
7135uint8 __ovld __cnfn as_uint8(double4);
7136uint16 __ovld __cnfn as_uint16(double8);
7137long __ovld __cnfn as_long(double);
7138long2 __ovld __cnfn as_long2(double2);
7139long3 __ovld __cnfn as_long3(double3);
7140long3 __ovld __cnfn as_long3(double4);
7141long4 __ovld __cnfn as_long4(double3);
7142long4 __ovld __cnfn as_long4(double4);
7143long8 __ovld __cnfn as_long8(double8);
7144long16 __ovld __cnfn as_long16(double16);
7145ulong __ovld __cnfn as_ulong(double);
7146ulong2 __ovld __cnfn as_ulong2(double2);
7147ulong3 __ovld __cnfn as_ulong3(double3);
7148ulong3 __ovld __cnfn as_ulong3(double4);
7149ulong4 __ovld __cnfn as_ulong4(double3);
7150ulong4 __ovld __cnfn as_ulong4(double4);
7151ulong8 __ovld __cnfn as_ulong8(double8);
7152ulong16 __ovld __cnfn as_ulong16(double16);
7153float2 __ovld __cnfn as_float2(double);
7154float3 __ovld __cnfn as_float3(double2);
7155float4 __ovld __cnfn as_float4(double2);
7156float8 __ovld __cnfn as_float8(double3);
7157float8 __ovld __cnfn as_float8(double4);
7158float16 __ovld __cnfn as_float16(double8);
7159double __ovld __cnfn as_double(char8);
7160double __ovld __cnfn as_double(uchar8);
7161double __ovld __cnfn as_double(short3);
7162double __ovld __cnfn as_double(short4);
7163double __ovld __cnfn as_double(ushort3);
7164double __ovld __cnfn as_double(ushort4);
7165double __ovld __cnfn as_double(int2);
7166double __ovld __cnfn as_double(uint2);
7167double __ovld __cnfn as_double(long);
7168double __ovld __cnfn as_double(ulong);
7169double __ovld __cnfn as_double(float2);
7170double __ovld __cnfn as_double(double);
7171double2 __ovld __cnfn as_double2(char16);
7172double2 __ovld __cnfn as_double2(uchar16);
7173double2 __ovld __cnfn as_double2(short8);
7174double2 __ovld __cnfn as_double2(ushort8);
7175double2 __ovld __cnfn as_double2(int3);
7176double2 __ovld __cnfn as_double2(int4);
7177double2 __ovld __cnfn as_double2(uint3);
7178double2 __ovld __cnfn as_double2(uint4);
7179double2 __ovld __cnfn as_double2(long2);
7180double2 __ovld __cnfn as_double2(ulong2);
7181double2 __ovld __cnfn as_double2(float3);
7182double2 __ovld __cnfn as_double2(float4);
7183double2 __ovld __cnfn as_double2(double2);
7184double3 __ovld __cnfn as_double3(short16);
7185double3 __ovld __cnfn as_double3(ushort16);
7186double3 __ovld __cnfn as_double3(int8);
7187double3 __ovld __cnfn as_double3(uint8);
7188double3 __ovld __cnfn as_double3(long3);
7189double3 __ovld __cnfn as_double3(long4);
7190double3 __ovld __cnfn as_double3(ulong3);
7191double3 __ovld __cnfn as_double3(ulong4);
7192double3 __ovld __cnfn as_double3(float8);
7193double3 __ovld __cnfn as_double3(double3);
7194double3 __ovld __cnfn as_double3(double4);
7195double4 __ovld __cnfn as_double4(short16);
7196double4 __ovld __cnfn as_double4(ushort16);
7197double4 __ovld __cnfn as_double4(int8);
7198double4 __ovld __cnfn as_double4(uint8);
7199double4 __ovld __cnfn as_double4(long3);
7200double4 __ovld __cnfn as_double4(long4);
7201double4 __ovld __cnfn as_double4(ulong3);
7202double4 __ovld __cnfn as_double4(ulong4);
7203double4 __ovld __cnfn as_double4(float8);
7204double4 __ovld __cnfn as_double4(double3);
7205double4 __ovld __cnfn as_double4(double4);
7206double8 __ovld __cnfn as_double8(int16);
7207double8 __ovld __cnfn as_double8(uint16);
7208double8 __ovld __cnfn as_double8(long8);
7209double8 __ovld __cnfn as_double8(ulong8);
7210double8 __ovld __cnfn as_double8(float16);
7211double8 __ovld __cnfn as_double8(double8);
7212double16 __ovld __cnfn as_double16(long16);
7213double16 __ovld __cnfn as_double16(ulong16);
7214double16 __ovld __cnfn as_double16(double16);
7215#endif //cl_khr_fp64
7216
7217#ifdef cl_khr_fp16
7218char2 __ovld __cnfn as_char2(half);
7219char3 __ovld __cnfn as_char3(half2);
7220char4 __ovld __cnfn as_char4(half2);
7221char8 __ovld __cnfn as_char8(half3);
7222char8 __ovld __cnfn as_char8(half4);
7223char16 __ovld __cnfn as_char16(half8);
7224uchar2 __ovld __cnfn as_uchar2(half);
7225uchar3 __ovld __cnfn as_uchar3(half2);
7226uchar4 __ovld __cnfn as_uchar4(half2);
7227uchar8 __ovld __cnfn as_uchar8(half3);
7228uchar8 __ovld __cnfn as_uchar8(half4);
7229uchar16 __ovld __cnfn as_uchar16(half8);
7230short __ovld __cnfn as_short(half);
7231short2 __ovld __cnfn as_short2(half2);
7232short3 __ovld __cnfn as_short3(half3);
7233short3 __ovld __cnfn as_short3(half4);
7234short4 __ovld __cnfn as_short4(half3);
7235short4 __ovld __cnfn as_short4(half4);
7236short8 __ovld __cnfn as_short8(half8);
7237short16 __ovld __cnfn as_short16(half16);
7238ushort __ovld __cnfn as_ushort(half);
7239ushort2 __ovld __cnfn as_ushort2(half2);
7240ushort3 __ovld __cnfn as_ushort3(half3);
7241ushort3 __ovld __cnfn as_ushort3(half4);
7242ushort4 __ovld __cnfn as_ushort4(half3);
7243ushort4 __ovld __cnfn as_ushort4(half4);
7244ushort8 __ovld __cnfn as_ushort8(half8);
7245ushort16 __ovld __cnfn as_ushort16(half16);
7246int __ovld __cnfn as_int(half2);
7247int2 __ovld __cnfn as_int2(half3);
7248int2 __ovld __cnfn as_int2(half4);
7249int3 __ovld __cnfn as_int3(half8);
7250int4 __ovld __cnfn as_int4(half8);
7251int8 __ovld __cnfn as_int8(half16);
7252uint __ovld __cnfn as_uint(half2);
7253uint2 __ovld __cnfn as_uint2(half3);
7254uint2 __ovld __cnfn as_uint2(half4);
7255uint3 __ovld __cnfn as_uint3(half8);
7256uint4 __ovld __cnfn as_uint4(half8);
7257uint8 __ovld __cnfn as_uint8(half16);
7258long __ovld __cnfn as_long(half3);
7259long __ovld __cnfn as_long(half4);
7260long2 __ovld __cnfn as_long2(half8);
7261long3 __ovld __cnfn as_long3(half16);
7262long4 __ovld __cnfn as_long4(half16);
7263ulong __ovld __cnfn as_ulong(half3);
7264ulong __ovld __cnfn as_ulong(half4);
7265ulong2 __ovld __cnfn as_ulong2(half8);
7266ulong3 __ovld __cnfn as_ulong3(half16);
7267ulong4 __ovld __cnfn as_ulong4(half16);
7268half __ovld __cnfn as_half(char2);
7269half __ovld __cnfn as_half(uchar2);
7270half __ovld __cnfn as_half(short);
7271half __ovld __cnfn as_half(ushort);
7272half __ovld __cnfn as_half(half);
7273half2 __ovld __cnfn as_half2(char3);
7274half2 __ovld __cnfn as_half2(char4);
7275half2 __ovld __cnfn as_half2(uchar3);
7276half2 __ovld __cnfn as_half2(uchar4);
7277half2 __ovld __cnfn as_half2(short2);
7278half2 __ovld __cnfn as_half2(ushort2);
7279half2 __ovld __cnfn as_half2(int);
7280half2 __ovld __cnfn as_half2(uint);
7281half2 __ovld __cnfn as_half2(half2);
7282half2 __ovld __cnfn as_half2(float);
7283half3 __ovld __cnfn as_half3(char8);
7284half3 __ovld __cnfn as_half3(uchar8);
7285half3 __ovld __cnfn as_half3(short3);
7286half3 __ovld __cnfn as_half3(short4);
7287half3 __ovld __cnfn as_half3(ushort3);
7288half3 __ovld __cnfn as_half3(ushort4);
7289half3 __ovld __cnfn as_half3(int2);
7290half3 __ovld __cnfn as_half3(uint2);
7291half3 __ovld __cnfn as_half3(long);
7292half3 __ovld __cnfn as_half3(ulong);
7293half3 __ovld __cnfn as_half3(half3);
7294half3 __ovld __cnfn as_half3(half4);
7295half3 __ovld __cnfn as_half3(float2);
7296half4 __ovld __cnfn as_half4(char8);
7297half4 __ovld __cnfn as_half4(uchar8);
7298half4 __ovld __cnfn as_half4(short3);
7299half4 __ovld __cnfn as_half4(short4);
7300half4 __ovld __cnfn as_half4(ushort3);
7301half4 __ovld __cnfn as_half4(ushort4);
7302half4 __ovld __cnfn as_half4(int2);
7303half4 __ovld __cnfn as_half4(uint2);
7304half4 __ovld __cnfn as_half4(long);
7305half4 __ovld __cnfn as_half4(ulong);
7306half4 __ovld __cnfn as_half4(half3);
7307half4 __ovld __cnfn as_half4(half4);
7308half4 __ovld __cnfn as_half4(float2);
7309half8 __ovld __cnfn as_half8(char16);
7310half8 __ovld __cnfn as_half8(uchar16);
7311half8 __ovld __cnfn as_half8(short8);
7312half8 __ovld __cnfn as_half8(ushort8);
7313half8 __ovld __cnfn as_half8(int3);
7314half8 __ovld __cnfn as_half8(int4);
7315half8 __ovld __cnfn as_half8(uint3);
7316half8 __ovld __cnfn as_half8(uint4);
7317half8 __ovld __cnfn as_half8(long2);
7318half8 __ovld __cnfn as_half8(ulong2);
7319half8 __ovld __cnfn as_half8(half8);
7320half8 __ovld __cnfn as_half8(float3);
7321half8 __ovld __cnfn as_half8(float4);
7322half16 __ovld __cnfn as_half16(short16);
7323half16 __ovld __cnfn as_half16(ushort16);
7324half16 __ovld __cnfn as_half16(int8);
7325half16 __ovld __cnfn as_half16(uint8);
7326half16 __ovld __cnfn as_half16(long3);
7327half16 __ovld __cnfn as_half16(long4);
7328half16 __ovld __cnfn as_half16(ulong3);
7329half16 __ovld __cnfn as_half16(ulong4);
7330half16 __ovld __cnfn as_half16(half16);
7331half16 __ovld __cnfn as_half16(float8);
7332float __ovld __cnfn as_float(half2);
7333float2 __ovld __cnfn as_float2(half3);
7334float2 __ovld __cnfn as_float2(half4);
7335float3 __ovld __cnfn as_float3(half8);
7336float4 __ovld __cnfn as_float4(half8);
7337float8 __ovld __cnfn as_float8(half16);
7338
7339#ifdef cl_khr_fp64
7340half3 __ovld __cnfn as_half3(double);
7341half4 __ovld __cnfn as_half4(double);
7342half8 __ovld __cnfn as_half8(double2);
7343half16 __ovld __cnfn as_half16(double3);
7344half16 __ovld __cnfn as_half16(double4);
7345double __ovld __cnfn as_double(half3);
7346double __ovld __cnfn as_double(half4);
7347double2 __ovld __cnfn as_double2(half8);
7348double3 __ovld __cnfn as_double3(half16);
7349double4 __ovld __cnfn as_double4(half16);
7350#endif //cl_khr_fp64
7351#endif //cl_khr_fp16
7352
7353// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
7354
7355#define __kernel_exec(X, typen) __kernel \
7356 __attribute__((work_group_size_hint(X, 1, 1))) \
7357 __attribute__((vec_type_hint(typen)))
7358
7359#define kernel_exec(X, typen) __kernel \
7360 __attribute__((work_group_size_hint(X, 1, 1))) \
7361 __attribute__((vec_type_hint(typen)))
7362
7363// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
7364
7365/**
7366 * Returns the number of dimensions in use. This is the
7367 * value given to the work_dim argument specified in
7368 * clEnqueueNDRangeKernel.
7369 * For clEnqueueTask, this returns 1.
7370 */
7371uint __ovld __cnfn get_work_dim(void);
7372
7373/**
7374 * Returns the number of global work-items specified for
7375 * dimension identified by dimindx. This value is given by
7376 * the global_work_size argument to
7377 * clEnqueueNDRangeKernel. Valid values of dimindx
7378 * are 0 to get_work_dim() - 1. For other values of
7379 * dimindx, get_global_size() returns 1.
7380 * For clEnqueueTask, this always returns 1.
7381 */
7382size_t __ovld __cnfn get_global_size(uint dimindx);
7383
7384/**
7385 * Returns the unique global work-item ID value for
7386 * dimension identified by dimindx. The global work-item
7387 * ID specifies the work-item ID based on the number of
7388 * global work-items specified to execute the kernel. Valid
7389 * values of dimindx are 0 to get_work_dim() - 1. For
7390 * other values of dimindx, get_global_id() returns 0.
7391 * For clEnqueueTask, this returns 0.
7392 */
7393size_t __ovld __cnfn get_global_id(uint dimindx);
7394
7395/**
7396 * Returns the number of local work-items specified in
7397 * dimension identified by dimindx. This value is given by
7398 * the local_work_size argument to
7399 * clEnqueueNDRangeKernel if local_work_size is not
7400 * NULL; otherwise the OpenCL implementation chooses
7401 * an appropriate local_work_size value which is returned
7402 * by this function. Valid values of dimindx are 0 to
7403 * get_work_dim() - 1. For other values of dimindx,
7404 * get_local_size() returns 1.
7405 * For clEnqueueTask, this always returns 1.
7406 */
7407size_t __ovld __cnfn get_local_size(uint dimindx);
7408
7409/**
7410 * Returns the unique local work-item ID i.e. a work-item
7411 * within a specific work-group for dimension identified by
7412 * dimindx. Valid values of dimindx are 0 to
7413 * get_work_dim() - 1. For other values of dimindx,
7414 * get_local_id() returns 0.
7415 * For clEnqueueTask, this returns 0.
7416 */
7417size_t __ovld __cnfn get_local_id(uint dimindx);
7418
7419/**
7420 * Returns the number of work-groups that will execute a
7421 * kernel for dimension identified by dimindx.
7422 * Valid values of dimindx are 0 to get_work_dim() - 1.
7423 * For other values of dimindx, get_num_groups () returns
7424 * 1.
7425 * For clEnqueueTask, this always returns 1.
7426 */
7427size_t __ovld __cnfn get_num_groups(uint dimindx);
7428
7429/**
7430 * get_group_id returns the work-group ID which is a
7431 * number from 0 .. get_num_groups(dimindx) - 1.
7432 * Valid values of dimindx are 0 to get_work_dim() - 1.
7433 * For other values, get_group_id() returns 0.
7434 * For clEnqueueTask, this returns 0.
7435 */
7436size_t __ovld __cnfn get_group_id(uint dimindx);
7437
7438/**
7439 * get_global_offset returns the offset values specified in
7440 * global_work_offset argument to
7441 * clEnqueueNDRangeKernel.
7442 * Valid values of dimindx are 0 to get_work_dim() - 1.
7443 * For other values, get_global_offset() returns 0.
7444 * For clEnqueueTask, this returns 0.
7445 */
7446size_t __ovld __cnfn get_global_offset(uint dimindx);
7447
7448#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
7449size_t __ovld get_enqueued_local_size(uint dimindx);
7450size_t __ovld get_global_linear_id(void);
7451size_t __ovld get_local_linear_id(void);
7452#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
7453
7454// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
7455
7456/**
7457 * Arc cosine function.
7458 */
7459float __ovld __cnfn acos(float);
7460float2 __ovld __cnfn acos(float2);
7461float3 __ovld __cnfn acos(float3);
7462float4 __ovld __cnfn acos(float4);
7463float8 __ovld __cnfn acos(float8);
7464float16 __ovld __cnfn acos(float16);
7465#ifdef cl_khr_fp64
7466double __ovld __cnfn acos(double);
7467double2 __ovld __cnfn acos(double2);
7468double3 __ovld __cnfn acos(double3);
7469double4 __ovld __cnfn acos(double4);
7470double8 __ovld __cnfn acos(double8);
7471double16 __ovld __cnfn acos(double16);
7472#endif //cl_khr_fp64
7473#ifdef cl_khr_fp16
7474half __ovld __cnfn acos(half);
7475half2 __ovld __cnfn acos(half2);
7476half3 __ovld __cnfn acos(half3);
7477half4 __ovld __cnfn acos(half4);
7478half8 __ovld __cnfn acos(half8);
7479half16 __ovld __cnfn acos(half16);
7480#endif //cl_khr_fp16
7481
7482/**
7483 * Inverse hyperbolic cosine.
7484 */
7485float __ovld __cnfn acosh(float);
7486float2 __ovld __cnfn acosh(float2);
7487float3 __ovld __cnfn acosh(float3);
7488float4 __ovld __cnfn acosh(float4);
7489float8 __ovld __cnfn acosh(float8);
7490float16 __ovld __cnfn acosh(float16);
7491#ifdef cl_khr_fp64
7492double __ovld __cnfn acosh(double);
7493double2 __ovld __cnfn acosh(double2);
7494double3 __ovld __cnfn acosh(double3);
7495double4 __ovld __cnfn acosh(double4);
7496double8 __ovld __cnfn acosh(double8);
7497double16 __ovld __cnfn acosh(double16);
7498#endif //cl_khr_fp64
7499#ifdef cl_khr_fp16
7500half __ovld __cnfn acosh(half);
7501half2 __ovld __cnfn acosh(half2);
7502half3 __ovld __cnfn acosh(half3);
7503half4 __ovld __cnfn acosh(half4);
7504half8 __ovld __cnfn acosh(half8);
7505half16 __ovld __cnfn acosh(half16);
7506#endif //cl_khr_fp16
7507
7508/**
7509 * Compute acos (x) / PI.
7510 */
7511float __ovld __cnfn acospi(float x);
7512float2 __ovld __cnfn acospi(float2 x);
7513float3 __ovld __cnfn acospi(float3 x);
7514float4 __ovld __cnfn acospi(float4 x);
7515float8 __ovld __cnfn acospi(float8 x);
7516float16 __ovld __cnfn acospi(float16 x);
7517#ifdef cl_khr_fp64
7518double __ovld __cnfn acospi(double x);
7519double2 __ovld __cnfn acospi(double2 x);
7520double3 __ovld __cnfn acospi(double3 x);
7521double4 __ovld __cnfn acospi(double4 x);
7522double8 __ovld __cnfn acospi(double8 x);
7523double16 __ovld __cnfn acospi(double16 x);
7524#endif //cl_khr_fp64
7525#ifdef cl_khr_fp16
7526half __ovld __cnfn acospi(half x);
7527half2 __ovld __cnfn acospi(half2 x);
7528half3 __ovld __cnfn acospi(half3 x);
7529half4 __ovld __cnfn acospi(half4 x);
7530half8 __ovld __cnfn acospi(half8 x);
7531half16 __ovld __cnfn acospi(half16 x);
7532#endif //cl_khr_fp16
7533
7534/**
7535 * Arc sine function.
7536 */
7537float __ovld __cnfn asin(float);
7538float2 __ovld __cnfn asin(float2);
7539float3 __ovld __cnfn asin(float3);
7540float4 __ovld __cnfn asin(float4);
7541float8 __ovld __cnfn asin(float8);
7542float16 __ovld __cnfn asin(float16);
7543#ifdef cl_khr_fp64
7544double __ovld __cnfn asin(double);
7545double2 __ovld __cnfn asin(double2);
7546double3 __ovld __cnfn asin(double3);
7547double4 __ovld __cnfn asin(double4);
7548double8 __ovld __cnfn asin(double8);
7549double16 __ovld __cnfn asin(double16);
7550#endif //cl_khr_fp64
7551#ifdef cl_khr_fp16
7552half __ovld __cnfn asin(half);
7553half2 __ovld __cnfn asin(half2);
7554half3 __ovld __cnfn asin(half3);
7555half4 __ovld __cnfn asin(half4);
7556half8 __ovld __cnfn asin(half8);
7557half16 __ovld __cnfn asin(half16);
7558#endif //cl_khr_fp16
7559
7560/**
7561 * Inverse hyperbolic sine.
7562 */
7563float __ovld __cnfn asinh(float);
7564float2 __ovld __cnfn asinh(float2);
7565float3 __ovld __cnfn asinh(float3);
7566float4 __ovld __cnfn asinh(float4);
7567float8 __ovld __cnfn asinh(float8);
7568float16 __ovld __cnfn asinh(float16);
7569#ifdef cl_khr_fp64
7570double __ovld __cnfn asinh(double);
7571double2 __ovld __cnfn asinh(double2);
7572double3 __ovld __cnfn asinh(double3);
7573double4 __ovld __cnfn asinh(double4);
7574double8 __ovld __cnfn asinh(double8);
7575double16 __ovld __cnfn asinh(double16);
7576#endif //cl_khr_fp64
7577#ifdef cl_khr_fp16
7578half __ovld __cnfn asinh(half);
7579half2 __ovld __cnfn asinh(half2);
7580half3 __ovld __cnfn asinh(half3);
7581half4 __ovld __cnfn asinh(half4);
7582half8 __ovld __cnfn asinh(half8);
7583half16 __ovld __cnfn asinh(half16);
7584#endif //cl_khr_fp16
7585
7586/**
7587 * Compute asin (x) / PI.
7588 */
7589float __ovld __cnfn asinpi(float x);
7590float2 __ovld __cnfn asinpi(float2 x);
7591float3 __ovld __cnfn asinpi(float3 x);
7592float4 __ovld __cnfn asinpi(float4 x);
7593float8 __ovld __cnfn asinpi(float8 x);
7594float16 __ovld __cnfn asinpi(float16 x);
7595#ifdef cl_khr_fp64
7596double __ovld __cnfn asinpi(double x);
7597double2 __ovld __cnfn asinpi(double2 x);
7598double3 __ovld __cnfn asinpi(double3 x);
7599double4 __ovld __cnfn asinpi(double4 x);
7600double8 __ovld __cnfn asinpi(double8 x);
7601double16 __ovld __cnfn asinpi(double16 x);
7602#endif //cl_khr_fp64
7603#ifdef cl_khr_fp16
7604half __ovld __cnfn asinpi(half x);
7605half2 __ovld __cnfn asinpi(half2 x);
7606half3 __ovld __cnfn asinpi(half3 x);
7607half4 __ovld __cnfn asinpi(half4 x);
7608half8 __ovld __cnfn asinpi(half8 x);
7609half16 __ovld __cnfn asinpi(half16 x);
7610#endif //cl_khr_fp16
7611
7612/**
7613 * Arc tangent function.
7614 */
7615float __ovld __cnfn atan(float y_over_x);
7616float2 __ovld __cnfn atan(float2 y_over_x);
7617float3 __ovld __cnfn atan(float3 y_over_x);
7618float4 __ovld __cnfn atan(float4 y_over_x);
7619float8 __ovld __cnfn atan(float8 y_over_x);
7620float16 __ovld __cnfn atan(float16 y_over_x);
7621#ifdef cl_khr_fp64
7622double __ovld __cnfn atan(double y_over_x);
7623double2 __ovld __cnfn atan(double2 y_over_x);
7624double3 __ovld __cnfn atan(double3 y_over_x);
7625double4 __ovld __cnfn atan(double4 y_over_x);
7626double8 __ovld __cnfn atan(double8 y_over_x);
7627double16 __ovld __cnfn atan(double16 y_over_x);
7628#endif //cl_khr_fp64
7629#ifdef cl_khr_fp16
7630half __ovld __cnfn atan(half y_over_x);
7631half2 __ovld __cnfn atan(half2 y_over_x);
7632half3 __ovld __cnfn atan(half3 y_over_x);
7633half4 __ovld __cnfn atan(half4 y_over_x);
7634half8 __ovld __cnfn atan(half8 y_over_x);
7635half16 __ovld __cnfn atan(half16 y_over_x);
7636#endif //cl_khr_fp16
7637
7638/**
7639 * Arc tangent of y / x.
7640 */
7641float __ovld __cnfn atan2(float y, float x);
7642float2 __ovld __cnfn atan2(float2 y, float2 x);
7643float3 __ovld __cnfn atan2(float3 y, float3 x);
7644float4 __ovld __cnfn atan2(float4 y, float4 x);
7645float8 __ovld __cnfn atan2(float8 y, float8 x);
7646float16 __ovld __cnfn atan2(float16 y, float16 x);
7647#ifdef cl_khr_fp64
7648double __ovld __cnfn atan2(double y, double x);
7649double2 __ovld __cnfn atan2(double2 y, double2 x);
7650double3 __ovld __cnfn atan2(double3 y, double3 x);
7651double4 __ovld __cnfn atan2(double4 y, double4 x);
7652double8 __ovld __cnfn atan2(double8 y, double8 x);
7653double16 __ovld __cnfn atan2(double16 y, double16 x);
7654#endif //cl_khr_fp64
7655#ifdef cl_khr_fp16
7656half __ovld __cnfn atan2(half y, half x);
7657half2 __ovld __cnfn atan2(half2 y, half2 x);
7658half3 __ovld __cnfn atan2(half3 y, half3 x);
7659half4 __ovld __cnfn atan2(half4 y, half4 x);
7660half8 __ovld __cnfn atan2(half8 y, half8 x);
7661half16 __ovld __cnfn atan2(half16 y, half16 x);
7662#endif //cl_khr_fp16
7663
7664/**
7665 * Hyperbolic arc tangent.
7666 */
7667float __ovld __cnfn atanh(float);
7668float2 __ovld __cnfn atanh(float2);
7669float3 __ovld __cnfn atanh(float3);
7670float4 __ovld __cnfn atanh(float4);
7671float8 __ovld __cnfn atanh(float8);
7672float16 __ovld __cnfn atanh(float16);
7673#ifdef cl_khr_fp64
7674double __ovld __cnfn atanh(double);
7675double2 __ovld __cnfn atanh(double2);
7676double3 __ovld __cnfn atanh(double3);
7677double4 __ovld __cnfn atanh(double4);
7678double8 __ovld __cnfn atanh(double8);
7679double16 __ovld __cnfn atanh(double16);
7680#endif //cl_khr_fp64
7681#ifdef cl_khr_fp16
7682half __ovld __cnfn atanh(half);
7683half2 __ovld __cnfn atanh(half2);
7684half3 __ovld __cnfn atanh(half3);
7685half4 __ovld __cnfn atanh(half4);
7686half8 __ovld __cnfn atanh(half8);
7687half16 __ovld __cnfn atanh(half16);
7688#endif //cl_khr_fp16
7689
7690/**
7691 * Compute atan (x) / PI.
7692 */
7693float __ovld __cnfn atanpi(float x);
7694float2 __ovld __cnfn atanpi(float2 x);
7695float3 __ovld __cnfn atanpi(float3 x);
7696float4 __ovld __cnfn atanpi(float4 x);
7697float8 __ovld __cnfn atanpi(float8 x);
7698float16 __ovld __cnfn atanpi(float16 x);
7699#ifdef cl_khr_fp64
7700double __ovld __cnfn atanpi(double x);
7701double2 __ovld __cnfn atanpi(double2 x);
7702double3 __ovld __cnfn atanpi(double3 x);
7703double4 __ovld __cnfn atanpi(double4 x);
7704double8 __ovld __cnfn atanpi(double8 x);
7705double16 __ovld __cnfn atanpi(double16 x);
7706#endif //cl_khr_fp64
7707#ifdef cl_khr_fp16
7708half __ovld __cnfn atanpi(half x);
7709half2 __ovld __cnfn atanpi(half2 x);
7710half3 __ovld __cnfn atanpi(half3 x);
7711half4 __ovld __cnfn atanpi(half4 x);
7712half8 __ovld __cnfn atanpi(half8 x);
7713half16 __ovld __cnfn atanpi(half16 x);
7714#endif //cl_khr_fp16
7715
7716/**
7717 * Compute atan2 (y, x) / PI.
7718 */
7719float __ovld __cnfn atan2pi(float y, float x);
7720float2 __ovld __cnfn atan2pi(float2 y, float2 x);
7721float3 __ovld __cnfn atan2pi(float3 y, float3 x);
7722float4 __ovld __cnfn atan2pi(float4 y, float4 x);
7723float8 __ovld __cnfn atan2pi(float8 y, float8 x);
7724float16 __ovld __cnfn atan2pi(float16 y, float16 x);
7725#ifdef cl_khr_fp64
7726double __ovld __cnfn atan2pi(double y, double x);
7727double2 __ovld __cnfn atan2pi(double2 y, double2 x);
7728double3 __ovld __cnfn atan2pi(double3 y, double3 x);
7729double4 __ovld __cnfn atan2pi(double4 y, double4 x);
7730double8 __ovld __cnfn atan2pi(double8 y, double8 x);
7731double16 __ovld __cnfn atan2pi(double16 y, double16 x);
7732#endif //cl_khr_fp64
7733#ifdef cl_khr_fp16
7734half __ovld __cnfn atan2pi(half y, half x);
7735half2 __ovld __cnfn atan2pi(half2 y, half2 x);
7736half3 __ovld __cnfn atan2pi(half3 y, half3 x);
7737half4 __ovld __cnfn atan2pi(half4 y, half4 x);
7738half8 __ovld __cnfn atan2pi(half8 y, half8 x);
7739half16 __ovld __cnfn atan2pi(half16 y, half16 x);
7740#endif //cl_khr_fp16
7741
7742/**
7743 * Compute cube-root.
7744 */
7745float __ovld __cnfn cbrt(float);
7746float2 __ovld __cnfn cbrt(float2);
7747float3 __ovld __cnfn cbrt(float3);
7748float4 __ovld __cnfn cbrt(float4);
7749float8 __ovld __cnfn cbrt(float8);
7750float16 __ovld __cnfn cbrt(float16);
7751#ifdef cl_khr_fp64
7752double __ovld __cnfn cbrt(double);
7753double2 __ovld __cnfn cbrt(double2);
7754double3 __ovld __cnfn cbrt(double3);
7755double4 __ovld __cnfn cbrt(double4);
7756double8 __ovld __cnfn cbrt(double8);
7757double16 __ovld __cnfn cbrt(double16);
7758#endif //cl_khr_fp64
7759#ifdef cl_khr_fp16
7760half __ovld __cnfn cbrt(half);
7761half2 __ovld __cnfn cbrt(half2);
7762half3 __ovld __cnfn cbrt(half3);
7763half4 __ovld __cnfn cbrt(half4);
7764half8 __ovld __cnfn cbrt(half8);
7765half16 __ovld __cnfn cbrt(half16);
7766#endif //cl_khr_fp16
7767
7768/**
7769 * Round to integral value using the round to positive
7770 * infinity rounding mode.
7771 */
7772float __ovld __cnfn ceil(float);
7773float2 __ovld __cnfn ceil(float2);
7774float3 __ovld __cnfn ceil(float3);
7775float4 __ovld __cnfn ceil(float4);
7776float8 __ovld __cnfn ceil(float8);
7777float16 __ovld __cnfn ceil(float16);
7778#ifdef cl_khr_fp64
7779double __ovld __cnfn ceil(double);
7780double2 __ovld __cnfn ceil(double2);
7781double3 __ovld __cnfn ceil(double3);
7782double4 __ovld __cnfn ceil(double4);
7783double8 __ovld __cnfn ceil(double8);
7784double16 __ovld __cnfn ceil(double16);
7785#endif //cl_khr_fp64
7786#ifdef cl_khr_fp16
7787half __ovld __cnfn ceil(half);
7788half2 __ovld __cnfn ceil(half2);
7789half3 __ovld __cnfn ceil(half3);
7790half4 __ovld __cnfn ceil(half4);
7791half8 __ovld __cnfn ceil(half8);
7792half16 __ovld __cnfn ceil(half16);
7793#endif //cl_khr_fp16
7794
7795/**
7796 * Returns x with its sign changed to match the sign of y.
7797 */
7798float __ovld __cnfn copysign(float x, float y);
7799float2 __ovld __cnfn copysign(float2 x, float2 y);
7800float3 __ovld __cnfn copysign(float3 x, float3 y);
7801float4 __ovld __cnfn copysign(float4 x, float4 y);
7802float8 __ovld __cnfn copysign(float8 x, float8 y);
7803float16 __ovld __cnfn copysign(float16 x, float16 y);
7804#ifdef cl_khr_fp64
7805double __ovld __cnfn copysign(double x, double y);
7806double2 __ovld __cnfn copysign(double2 x, double2 y);
7807double3 __ovld __cnfn copysign(double3 x, double3 y);
7808double4 __ovld __cnfn copysign(double4 x, double4 y);
7809double8 __ovld __cnfn copysign(double8 x, double8 y);
7810double16 __ovld __cnfn copysign(double16 x, double16 y);
7811#endif //cl_khr_fp64
7812#ifdef cl_khr_fp16
7813half __ovld __cnfn copysign(half x, half y);
7814half2 __ovld __cnfn copysign(half2 x, half2 y);
7815half3 __ovld __cnfn copysign(half3 x, half3 y);
7816half4 __ovld __cnfn copysign(half4 x, half4 y);
7817half8 __ovld __cnfn copysign(half8 x, half8 y);
7818half16 __ovld __cnfn copysign(half16 x, half16 y);
7819#endif //cl_khr_fp16
7820
7821/**
7822 * Compute cosine.
7823 */
7824float __ovld __cnfn cos(float);
7825float2 __ovld __cnfn cos(float2);
7826float3 __ovld __cnfn cos(float3);
7827float4 __ovld __cnfn cos(float4);
7828float8 __ovld __cnfn cos(float8);
7829float16 __ovld __cnfn cos(float16);
7830#ifdef cl_khr_fp64
7831double __ovld __cnfn cos(double);
7832double2 __ovld __cnfn cos(double2);
7833double3 __ovld __cnfn cos(double3);
7834double4 __ovld __cnfn cos(double4);
7835double8 __ovld __cnfn cos(double8);
7836double16 __ovld __cnfn cos(double16);
7837#endif //cl_khr_fp64
7838#ifdef cl_khr_fp16
7839half __ovld __cnfn cos(half);
7840half2 __ovld __cnfn cos(half2);
7841half3 __ovld __cnfn cos(half3);
7842half4 __ovld __cnfn cos(half4);
7843half8 __ovld __cnfn cos(half8);
7844half16 __ovld __cnfn cos(half16);
7845#endif //cl_khr_fp16
7846
7847/**
7848 * Compute hyperbolic cosine.
7849 */
7850float __ovld __cnfn cosh(float);
7851float2 __ovld __cnfn cosh(float2);
7852float3 __ovld __cnfn cosh(float3);
7853float4 __ovld __cnfn cosh(float4);
7854float8 __ovld __cnfn cosh(float8);
7855float16 __ovld __cnfn cosh(float16);
7856#ifdef cl_khr_fp64
7857double __ovld __cnfn cosh(double);
7858double2 __ovld __cnfn cosh(double2);
7859double3 __ovld __cnfn cosh(double3);
7860double4 __ovld __cnfn cosh(double4);
7861double8 __ovld __cnfn cosh(double8);
7862double16 __ovld __cnfn cosh(double16);
7863#endif //cl_khr_fp64
7864#ifdef cl_khr_fp16
7865half __ovld __cnfn cosh(half);
7866half2 __ovld __cnfn cosh(half2);
7867half3 __ovld __cnfn cosh(half3);
7868half4 __ovld __cnfn cosh(half4);
7869half8 __ovld __cnfn cosh(half8);
7870half16 __ovld __cnfn cosh(half16);
7871#endif //cl_khr_fp16
7872
7873/**
7874 * Compute cos (PI * x).
7875 */
7876float __ovld __cnfn cospi(float x);
7877float2 __ovld __cnfn cospi(float2 x);
7878float3 __ovld __cnfn cospi(float3 x);
7879float4 __ovld __cnfn cospi(float4 x);
7880float8 __ovld __cnfn cospi(float8 x);
7881float16 __ovld __cnfn cospi(float16 x);
7882#ifdef cl_khr_fp64
7883double __ovld __cnfn cospi(double x);
7884double2 __ovld __cnfn cospi(double2 x);
7885double3 __ovld __cnfn cospi(double3 x);
7886double4 __ovld __cnfn cospi(double4 x);
7887double8 __ovld __cnfn cospi(double8 x);
7888double16 __ovld __cnfn cospi(double16 x);
7889#endif //cl_khr_fp64
7890#ifdef cl_khr_fp16
7891half __ovld __cnfn cospi(half x);
7892half2 __ovld __cnfn cospi(half2 x);
7893half3 __ovld __cnfn cospi(half3 x);
7894half4 __ovld __cnfn cospi(half4 x);
7895half8 __ovld __cnfn cospi(half8 x);
7896half16 __ovld __cnfn cospi(half16 x);
7897#endif //cl_khr_fp16
7898
7899/**
7900 * Complementary error function.
7901 */
7902float __ovld __cnfn erfc(float);
7903float2 __ovld __cnfn erfc(float2);
7904float3 __ovld __cnfn erfc(float3);
7905float4 __ovld __cnfn erfc(float4);
7906float8 __ovld __cnfn erfc(float8);
7907float16 __ovld __cnfn erfc(float16);
7908#ifdef cl_khr_fp64
7909double __ovld __cnfn erfc(double);
7910double2 __ovld __cnfn erfc(double2);
7911double3 __ovld __cnfn erfc(double3);
7912double4 __ovld __cnfn erfc(double4);
7913double8 __ovld __cnfn erfc(double8);
7914double16 __ovld __cnfn erfc(double16);
7915#endif //cl_khr_fp64
7916#ifdef cl_khr_fp16
7917half __ovld __cnfn erfc(half);
7918half2 __ovld __cnfn erfc(half2);
7919half3 __ovld __cnfn erfc(half3);
7920half4 __ovld __cnfn erfc(half4);
7921half8 __ovld __cnfn erfc(half8);
7922half16 __ovld __cnfn erfc(half16);
7923#endif //cl_khr_fp16
7924
7925/**
7926 * Error function encountered in integrating the
7927 * normal distribution.
7928 */
7929float __ovld __cnfn erf(float);
7930float2 __ovld __cnfn erf(float2);
7931float3 __ovld __cnfn erf(float3);
7932float4 __ovld __cnfn erf(float4);
7933float8 __ovld __cnfn erf(float8);
7934float16 __ovld __cnfn erf(float16);
7935#ifdef cl_khr_fp64
7936double __ovld __cnfn erf(double);
7937double2 __ovld __cnfn erf(double2);
7938double3 __ovld __cnfn erf(double3);
7939double4 __ovld __cnfn erf(double4);
7940double8 __ovld __cnfn erf(double8);
7941double16 __ovld __cnfn erf(double16);
7942#endif //cl_khr_fp64
7943#ifdef cl_khr_fp16
7944half __ovld __cnfn erf(half);
7945half2 __ovld __cnfn erf(half2);
7946half3 __ovld __cnfn erf(half3);
7947half4 __ovld __cnfn erf(half4);
7948half8 __ovld __cnfn erf(half8);
7949half16 __ovld __cnfn erf(half16);
7950#endif //cl_khr_fp16
7951
7952/**
7953 * Compute the base e exponential function of x.
7954 */
7955float __ovld __cnfn exp(float x);
7956float2 __ovld __cnfn exp(float2 x);
7957float3 __ovld __cnfn exp(float3 x);
7958float4 __ovld __cnfn exp(float4 x);
7959float8 __ovld __cnfn exp(float8 x);
7960float16 __ovld __cnfn exp(float16 x);
7961#ifdef cl_khr_fp64
7962double __ovld __cnfn exp(double x);
7963double2 __ovld __cnfn exp(double2 x);
7964double3 __ovld __cnfn exp(double3 x);
7965double4 __ovld __cnfn exp(double4 x);
7966double8 __ovld __cnfn exp(double8 x);
7967double16 __ovld __cnfn exp(double16 x);
7968#endif //cl_khr_fp64
7969#ifdef cl_khr_fp16
7970half __ovld __cnfn exp(half x);
7971half2 __ovld __cnfn exp(half2 x);
7972half3 __ovld __cnfn exp(half3 x);
7973half4 __ovld __cnfn exp(half4 x);
7974half8 __ovld __cnfn exp(half8 x);
7975half16 __ovld __cnfn exp(half16 x);
7976#endif //cl_khr_fp16
7977
7978/**
7979 * Exponential base 2 function.
7980 */
7981float __ovld __cnfn exp2(float);
7982float2 __ovld __cnfn exp2(float2);
7983float3 __ovld __cnfn exp2(float3);
7984float4 __ovld __cnfn exp2(float4);
7985float8 __ovld __cnfn exp2(float8);
7986float16 __ovld __cnfn exp2(float16);
7987#ifdef cl_khr_fp64
7988double __ovld __cnfn exp2(double);
7989double2 __ovld __cnfn exp2(double2);
7990double3 __ovld __cnfn exp2(double3);
7991double4 __ovld __cnfn exp2(double4);
7992double8 __ovld __cnfn exp2(double8);
7993double16 __ovld __cnfn exp2(double16);
7994#endif //cl_khr_fp64
7995#ifdef cl_khr_fp16
7996half __ovld __cnfn exp2(half);
7997half2 __ovld __cnfn exp2(half2);
7998half3 __ovld __cnfn exp2(half3);
7999half4 __ovld __cnfn exp2(half4);
8000half8 __ovld __cnfn exp2(half8);
8001half16 __ovld __cnfn exp2(half16);
8002#endif //cl_khr_fp16
8003
8004/**
8005 * Exponential base 10 function.
8006 */
8007float __ovld __cnfn exp10(float);
8008float2 __ovld __cnfn exp10(float2);
8009float3 __ovld __cnfn exp10(float3);
8010float4 __ovld __cnfn exp10(float4);
8011float8 __ovld __cnfn exp10(float8);
8012float16 __ovld __cnfn exp10(float16);
8013#ifdef cl_khr_fp64
8014double __ovld __cnfn exp10(double);
8015double2 __ovld __cnfn exp10(double2);
8016double3 __ovld __cnfn exp10(double3);
8017double4 __ovld __cnfn exp10(double4);
8018double8 __ovld __cnfn exp10(double8);
8019double16 __ovld __cnfn exp10(double16);
8020#endif //cl_khr_fp64
8021#ifdef cl_khr_fp16
8022half __ovld __cnfn exp10(half);
8023half2 __ovld __cnfn exp10(half2);
8024half3 __ovld __cnfn exp10(half3);
8025half4 __ovld __cnfn exp10(half4);
8026half8 __ovld __cnfn exp10(half8);
8027half16 __ovld __cnfn exp10(half16);
8028#endif //cl_khr_fp16
8029
8030/**
8031 * Compute e^x- 1.0.
8032 */
8033float __ovld __cnfn expm1(float x);
8034float2 __ovld __cnfn expm1(float2 x);
8035float3 __ovld __cnfn expm1(float3 x);
8036float4 __ovld __cnfn expm1(float4 x);
8037float8 __ovld __cnfn expm1(float8 x);
8038float16 __ovld __cnfn expm1(float16 x);
8039#ifdef cl_khr_fp64
8040double __ovld __cnfn expm1(double x);
8041double2 __ovld __cnfn expm1(double2 x);
8042double3 __ovld __cnfn expm1(double3 x);
8043double4 __ovld __cnfn expm1(double4 x);
8044double8 __ovld __cnfn expm1(double8 x);
8045double16 __ovld __cnfn expm1(double16 x);
8046#endif //cl_khr_fp64
8047#ifdef cl_khr_fp16
8048half __ovld __cnfn expm1(half x);
8049half2 __ovld __cnfn expm1(half2 x);
8050half3 __ovld __cnfn expm1(half3 x);
8051half4 __ovld __cnfn expm1(half4 x);
8052half8 __ovld __cnfn expm1(half8 x);
8053half16 __ovld __cnfn expm1(half16 x);
8054#endif //cl_khr_fp16
8055
8056/**
8057 * Compute absolute value of a floating-point number.
8058 */
8059float __ovld __cnfn fabs(float);
8060float2 __ovld __cnfn fabs(float2);
8061float3 __ovld __cnfn fabs(float3);
8062float4 __ovld __cnfn fabs(float4);
8063float8 __ovld __cnfn fabs(float8);
8064float16 __ovld __cnfn fabs(float16);
8065#ifdef cl_khr_fp64
8066double __ovld __cnfn fabs(double);
8067double2 __ovld __cnfn fabs(double2);
8068double3 __ovld __cnfn fabs(double3);
8069double4 __ovld __cnfn fabs(double4);
8070double8 __ovld __cnfn fabs(double8);
8071double16 __ovld __cnfn fabs(double16);
8072#endif //cl_khr_fp64
8073#ifdef cl_khr_fp16
8074half __ovld __cnfn fabs(half);
8075half2 __ovld __cnfn fabs(half2);
8076half3 __ovld __cnfn fabs(half3);
8077half4 __ovld __cnfn fabs(half4);
8078half8 __ovld __cnfn fabs(half8);
8079half16 __ovld __cnfn fabs(half16);
8080#endif //cl_khr_fp16
8081
8082/**
8083 * x - y if x > y, +0 if x is less than or equal to y.
8084 */
8085float __ovld __cnfn fdim(float x, float y);
8086float2 __ovld __cnfn fdim(float2 x, float2 y);
8087float3 __ovld __cnfn fdim(float3 x, float3 y);
8088float4 __ovld __cnfn fdim(float4 x, float4 y);
8089float8 __ovld __cnfn fdim(float8 x, float8 y);
8090float16 __ovld __cnfn fdim(float16 x, float16 y);
8091#ifdef cl_khr_fp64
8092double __ovld __cnfn fdim(double x, double y);
8093double2 __ovld __cnfn fdim(double2 x, double2 y);
8094double3 __ovld __cnfn fdim(double3 x, double3 y);
8095double4 __ovld __cnfn fdim(double4 x, double4 y);
8096double8 __ovld __cnfn fdim(double8 x, double8 y);
8097double16 __ovld __cnfn fdim(double16 x, double16 y);
8098#endif //cl_khr_fp64
8099#ifdef cl_khr_fp16
8100half __ovld __cnfn fdim(half x, half y);
8101half2 __ovld __cnfn fdim(half2 x, half2 y);
8102half3 __ovld __cnfn fdim(half3 x, half3 y);
8103half4 __ovld __cnfn fdim(half4 x, half4 y);
8104half8 __ovld __cnfn fdim(half8 x, half8 y);
8105half16 __ovld __cnfn fdim(half16 x, half16 y);
8106#endif //cl_khr_fp16
8107
8108/**
8109 * Round to integral value using the round to -ve
8110 * infinity rounding mode.
8111 */
8112float __ovld __cnfn floor(float);
8113float2 __ovld __cnfn floor(float2);
8114float3 __ovld __cnfn floor(float3);
8115float4 __ovld __cnfn floor(float4);
8116float8 __ovld __cnfn floor(float8);
8117float16 __ovld __cnfn floor(float16);
8118#ifdef cl_khr_fp64
8119double __ovld __cnfn floor(double);
8120double2 __ovld __cnfn floor(double2);
8121double3 __ovld __cnfn floor(double3);
8122double4 __ovld __cnfn floor(double4);
8123double8 __ovld __cnfn floor(double8);
8124double16 __ovld __cnfn floor(double16);
8125#endif //cl_khr_fp64
8126#ifdef cl_khr_fp16
8127half __ovld __cnfn floor(half);
8128half2 __ovld __cnfn floor(half2);
8129half3 __ovld __cnfn floor(half3);
8130half4 __ovld __cnfn floor(half4);
8131half8 __ovld __cnfn floor(half8);
8132half16 __ovld __cnfn floor(half16);
8133#endif //cl_khr_fp16
8134
8135/**
8136 * Returns the correctly rounded floating-point
8137 * representation of the sum of c with the infinitely
8138 * precise product of a and b. Rounding of
8139 * intermediate products shall not occur. Edge case
8140 * behavior is per the IEEE 754-2008 standard.
8141 */
8142float __ovld __cnfn fma(float a, float b, float c);
8143float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
8144float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
8145float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
8146float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
8147float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
8148#ifdef cl_khr_fp64
8149double __ovld __cnfn fma(double a, double b, double c);
8150double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
8151double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
8152double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
8153double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
8154double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
8155#endif //cl_khr_fp64
8156#ifdef cl_khr_fp16
8157half __ovld __cnfn fma(half a, half b, half c);
8158half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
8159half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
8160half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
8161half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
8162half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
8163#endif //cl_khr_fp16
8164
8165/**
8166 * Returns y if x < y, otherwise it returns x. If one
8167 * argument is a NaN, fmax() returns the other
8168 * argument. If both arguments are NaNs, fmax()
8169 * returns a NaN.
8170 */
8171float __ovld __cnfn fmax(float x, float y);
8172float2 __ovld __cnfn fmax(float2 x, float2 y);
8173float3 __ovld __cnfn fmax(float3 x, float3 y);
8174float4 __ovld __cnfn fmax(float4 x, float4 y);
8175float8 __ovld __cnfn fmax(float8 x, float8 y);
8176float16 __ovld __cnfn fmax(float16 x, float16 y);
8177float2 __ovld __cnfn fmax(float2 x, float y);
8178float3 __ovld __cnfn fmax(float3 x, float y);
8179float4 __ovld __cnfn fmax(float4 x, float y);
8180float8 __ovld __cnfn fmax(float8 x, float y);
8181float16 __ovld __cnfn fmax(float16 x, float y);
8182#ifdef cl_khr_fp64
8183double __ovld __cnfn fmax(double x, double y);
8184double2 __ovld __cnfn fmax(double2 x, double2 y);
8185double3 __ovld __cnfn fmax(double3 x, double3 y);
8186double4 __ovld __cnfn fmax(double4 x, double4 y);
8187double8 __ovld __cnfn fmax(double8 x, double8 y);
8188double16 __ovld __cnfn fmax(double16 x, double16 y);
8189double2 __ovld __cnfn fmax(double2 x, double y);
8190double3 __ovld __cnfn fmax(double3 x, double y);
8191double4 __ovld __cnfn fmax(double4 x, double y);
8192double8 __ovld __cnfn fmax(double8 x, double y);
8193double16 __ovld __cnfn fmax(double16 x, double y);
8194#endif //cl_khr_fp64
8195#ifdef cl_khr_fp16
8196half __ovld __cnfn fmax(half x, half y);
8197half2 __ovld __cnfn fmax(half2 x, half2 y);
8198half3 __ovld __cnfn fmax(half3 x, half3 y);
8199half4 __ovld __cnfn fmax(half4 x, half4 y);
8200half8 __ovld __cnfn fmax(half8 x, half8 y);
8201half16 __ovld __cnfn fmax(half16 x, half16 y);
8202half2 __ovld __cnfn fmax(half2 x, half y);
8203half3 __ovld __cnfn fmax(half3 x, half y);
8204half4 __ovld __cnfn fmax(half4 x, half y);
8205half8 __ovld __cnfn fmax(half8 x, half y);
8206half16 __ovld __cnfn fmax(half16 x, half y);
8207#endif //cl_khr_fp16
8208
8209/**
8210 * Returns y if y < x, otherwise it returns x. If one
8211 * argument is a NaN, fmin() returns the other
8212 * argument. If both arguments are NaNs, fmin()
8213 * returns a NaN.
8214 */
8215float __ovld __cnfn fmin(float x, float y);
8216float2 __ovld __cnfn fmin(float2 x, float2 y);
8217float3 __ovld __cnfn fmin(float3 x, float3 y);
8218float4 __ovld __cnfn fmin(float4 x, float4 y);
8219float8 __ovld __cnfn fmin(float8 x, float8 y);
8220float16 __ovld __cnfn fmin(float16 x, float16 y);
8221float2 __ovld __cnfn fmin(float2 x, float y);
8222float3 __ovld __cnfn fmin(float3 x, float y);
8223float4 __ovld __cnfn fmin(float4 x, float y);
8224float8 __ovld __cnfn fmin(float8 x, float y);
8225float16 __ovld __cnfn fmin(float16 x, float y);
8226#ifdef cl_khr_fp64
8227double __ovld __cnfn fmin(double x, double y);
8228double2 __ovld __cnfn fmin(double2 x, double2 y);
8229double3 __ovld __cnfn fmin(double3 x, double3 y);
8230double4 __ovld __cnfn fmin(double4 x, double4 y);
8231double8 __ovld __cnfn fmin(double8 x, double8 y);
8232double16 __ovld __cnfn fmin(double16 x, double16 y);
8233double2 __ovld __cnfn fmin(double2 x, double y);
8234double3 __ovld __cnfn fmin(double3 x, double y);
8235double4 __ovld __cnfn fmin(double4 x, double y);
8236double8 __ovld __cnfn fmin(double8 x, double y);
8237double16 __ovld __cnfn fmin(double16 x, double y);
8238#endif //cl_khr_fp64
8239#ifdef cl_khr_fp16
8240half __ovld __cnfn fmin(half x, half y);
8241half2 __ovld __cnfn fmin(half2 x, half2 y);
8242half3 __ovld __cnfn fmin(half3 x, half3 y);
8243half4 __ovld __cnfn fmin(half4 x, half4 y);
8244half8 __ovld __cnfn fmin(half8 x, half8 y);
8245half16 __ovld __cnfn fmin(half16 x, half16 y);
8246half2 __ovld __cnfn fmin(half2 x, half y);
8247half3 __ovld __cnfn fmin(half3 x, half y);
8248half4 __ovld __cnfn fmin(half4 x, half y);
8249half8 __ovld __cnfn fmin(half8 x, half y);
8250half16 __ovld __cnfn fmin(half16 x, half y);
8251#endif //cl_khr_fp16
8252
8253/**
8254 * Modulus. Returns x - y * trunc (x/y).
8255 */
8256float __ovld __cnfn fmod(float x, float y);
8257float2 __ovld __cnfn fmod(float2 x, float2 y);
8258float3 __ovld __cnfn fmod(float3 x, float3 y);
8259float4 __ovld __cnfn fmod(float4 x, float4 y);
8260float8 __ovld __cnfn fmod(float8 x, float8 y);
8261float16 __ovld __cnfn fmod(float16 x, float16 y);
8262#ifdef cl_khr_fp64
8263double __ovld __cnfn fmod(double x, double y);
8264double2 __ovld __cnfn fmod(double2 x, double2 y);
8265double3 __ovld __cnfn fmod(double3 x, double3 y);
8266double4 __ovld __cnfn fmod(double4 x, double4 y);
8267double8 __ovld __cnfn fmod(double8 x, double8 y);
8268double16 __ovld __cnfn fmod(double16 x, double16 y);
8269#endif //cl_khr_fp64
8270#ifdef cl_khr_fp16
8271half __ovld __cnfn fmod(half x, half y);
8272half2 __ovld __cnfn fmod(half2 x, half2 y);
8273half3 __ovld __cnfn fmod(half3 x, half3 y);
8274half4 __ovld __cnfn fmod(half4 x, half4 y);
8275half8 __ovld __cnfn fmod(half8 x, half8 y);
8276half16 __ovld __cnfn fmod(half16 x, half16 y);
8277#endif //cl_khr_fp16
8278
8279/**
8280 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
8281 * floor(x) is returned in iptr.
8282 */
8283#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8284float __ovld fract(float x, float *iptr);
8285float2 __ovld fract(float2 x, float2 *iptr);
8286float3 __ovld fract(float3 x, float3 *iptr);
8287float4 __ovld fract(float4 x, float4 *iptr);
8288float8 __ovld fract(float8 x, float8 *iptr);
8289float16 __ovld fract(float16 x, float16 *iptr);
8290#ifdef cl_khr_fp64
8291double __ovld fract(double x, double *iptr);
8292double2 __ovld fract(double2 x, double2 *iptr);
8293double3 __ovld fract(double3 x, double3 *iptr);
8294double4 __ovld fract(double4 x, double4 *iptr);
8295double8 __ovld fract(double8 x, double8 *iptr);
8296double16 __ovld fract(double16 x, double16 *iptr);
8297#endif //cl_khr_fp64
8298#ifdef cl_khr_fp16
8299half __ovld fract(half x, half *iptr);
8300half2 __ovld fract(half2 x, half2 *iptr);
8301half3 __ovld fract(half3 x, half3 *iptr);
8302half4 __ovld fract(half4 x, half4 *iptr);
8303half8 __ovld fract(half8 x, half8 *iptr);
8304half16 __ovld fract(half16 x, half16 *iptr);
8305#endif //cl_khr_fp16
8306#else
8307float __ovld fract(float x, __global float *iptr);
8308float2 __ovld fract(float2 x, __global float2 *iptr);
8309float3 __ovld fract(float3 x, __global float3 *iptr);
8310float4 __ovld fract(float4 x, __global float4 *iptr);
8311float8 __ovld fract(float8 x, __global float8 *iptr);
8312float16 __ovld fract(float16 x, __global float16 *iptr);
8313float __ovld fract(float x, __local float *iptr);
8314float2 __ovld fract(float2 x, __local float2 *iptr);
8315float3 __ovld fract(float3 x, __local float3 *iptr);
8316float4 __ovld fract(float4 x, __local float4 *iptr);
8317float8 __ovld fract(float8 x, __local float8 *iptr);
8318float16 __ovld fract(float16 x, __local float16 *iptr);
8319float __ovld fract(float x, __private float *iptr);
8320float2 __ovld fract(float2 x, __private float2 *iptr);
8321float3 __ovld fract(float3 x, __private float3 *iptr);
8322float4 __ovld fract(float4 x, __private float4 *iptr);
8323float8 __ovld fract(float8 x, __private float8 *iptr);
8324float16 __ovld fract(float16 x, __private float16 *iptr);
8325#ifdef cl_khr_fp64
8326double __ovld fract(double x, __global double *iptr);
8327double2 __ovld fract(double2 x, __global double2 *iptr);
8328double3 __ovld fract(double3 x, __global double3 *iptr);
8329double4 __ovld fract(double4 x, __global double4 *iptr);
8330double8 __ovld fract(double8 x, __global double8 *iptr);
8331double16 __ovld fract(double16 x, __global double16 *iptr);
8332double __ovld fract(double x, __local double *iptr);
8333double2 __ovld fract(double2 x, __local double2 *iptr);
8334double3 __ovld fract(double3 x, __local double3 *iptr);
8335double4 __ovld fract(double4 x, __local double4 *iptr);
8336double8 __ovld fract(double8 x, __local double8 *iptr);
8337double16 __ovld fract(double16 x, __local double16 *iptr);
8338double __ovld fract(double x, __private double *iptr);
8339double2 __ovld fract(double2 x, __private double2 *iptr);
8340double3 __ovld fract(double3 x, __private double3 *iptr);
8341double4 __ovld fract(double4 x, __private double4 *iptr);
8342double8 __ovld fract(double8 x, __private double8 *iptr);
8343double16 __ovld fract(double16 x, __private double16 *iptr);
8344#endif //cl_khr_fp64
8345#ifdef cl_khr_fp16
8346half __ovld fract(half x, __global half *iptr);
8347half2 __ovld fract(half2 x, __global half2 *iptr);
8348half3 __ovld fract(half3 x, __global half3 *iptr);
8349half4 __ovld fract(half4 x, __global half4 *iptr);
8350half8 __ovld fract(half8 x, __global half8 *iptr);
8351half16 __ovld fract(half16 x, __global half16 *iptr);
8352half __ovld fract(half x, __local half *iptr);
8353half2 __ovld fract(half2 x, __local half2 *iptr);
8354half3 __ovld fract(half3 x, __local half3 *iptr);
8355half4 __ovld fract(half4 x, __local half4 *iptr);
8356half8 __ovld fract(half8 x, __local half8 *iptr);
8357half16 __ovld fract(half16 x, __local half16 *iptr);
8358half __ovld fract(half x, __private half *iptr);
8359half2 __ovld fract(half2 x, __private half2 *iptr);
8360half3 __ovld fract(half3 x, __private half3 *iptr);
8361half4 __ovld fract(half4 x, __private half4 *iptr);
8362half8 __ovld fract(half8 x, __private half8 *iptr);
8363half16 __ovld fract(half16 x, __private half16 *iptr);
8364#endif //cl_khr_fp16
8365#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8366
8367/**
8368 * Extract mantissa and exponent from x. For each
8369 * component the mantissa returned is a float with
8370 * magnitude in the interval [1/2, 1) or 0. Each
8371 * component of x equals mantissa returned * 2^exp.
8372 */
8373#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8374float __ovld frexp(float x, int *exp);
8375float2 __ovld frexp(float2 x, int2 *exp);
8376float3 __ovld frexp(float3 x, int3 *exp);
8377float4 __ovld frexp(float4 x, int4 *exp);
8378float8 __ovld frexp(float8 x, int8 *exp);
8379float16 __ovld frexp(float16 x, int16 *exp);
8380#ifdef cl_khr_fp64
8381double __ovld frexp(double x, int *exp);
8382double2 __ovld frexp(double2 x, int2 *exp);
8383double3 __ovld frexp(double3 x, int3 *exp);
8384double4 __ovld frexp(double4 x, int4 *exp);
8385double8 __ovld frexp(double8 x, int8 *exp);
8386double16 __ovld frexp(double16 x, int16 *exp);
8387#endif //cl_khr_fp64
8388#ifdef cl_khr_fp16
8389half __ovld frexp(half x, int *exp);
8390half2 __ovld frexp(half2 x, int2 *exp);
8391half3 __ovld frexp(half3 x, int3 *exp);
8392half4 __ovld frexp(half4 x, int4 *exp);
8393half8 __ovld frexp(half8 x, int8 *exp);
8394half16 __ovld frexp(half16 x, int16 *exp);
8395#endif //cl_khr_fp16
8396#else
8397float __ovld frexp(float x, __global int *exp);
8398float2 __ovld frexp(float2 x, __global int2 *exp);
8399float3 __ovld frexp(float3 x, __global int3 *exp);
8400float4 __ovld frexp(float4 x, __global int4 *exp);
8401float8 __ovld frexp(float8 x, __global int8 *exp);
8402float16 __ovld frexp(float16 x, __global int16 *exp);
8403float __ovld frexp(float x, __local int *exp);
8404float2 __ovld frexp(float2 x, __local int2 *exp);
8405float3 __ovld frexp(float3 x, __local int3 *exp);
8406float4 __ovld frexp(float4 x, __local int4 *exp);
8407float8 __ovld frexp(float8 x, __local int8 *exp);
8408float16 __ovld frexp(float16 x, __local int16 *exp);
8409float __ovld frexp(float x, __private int *exp);
8410float2 __ovld frexp(float2 x, __private int2 *exp);
8411float3 __ovld frexp(float3 x, __private int3 *exp);
8412float4 __ovld frexp(float4 x, __private int4 *exp);
8413float8 __ovld frexp(float8 x, __private int8 *exp);
8414float16 __ovld frexp(float16 x, __private int16 *exp);
8415#ifdef cl_khr_fp64
8416double __ovld frexp(double x, __global int *exp);
8417double2 __ovld frexp(double2 x, __global int2 *exp);
8418double3 __ovld frexp(double3 x, __global int3 *exp);
8419double4 __ovld frexp(double4 x, __global int4 *exp);
8420double8 __ovld frexp(double8 x, __global int8 *exp);
8421double16 __ovld frexp(double16 x, __global int16 *exp);
8422double __ovld frexp(double x, __local int *exp);
8423double2 __ovld frexp(double2 x, __local int2 *exp);
8424double3 __ovld frexp(double3 x, __local int3 *exp);
8425double4 __ovld frexp(double4 x, __local int4 *exp);
8426double8 __ovld frexp(double8 x, __local int8 *exp);
8427double16 __ovld frexp(double16 x, __local int16 *exp);
8428double __ovld frexp(double x, __private int *exp);
8429double2 __ovld frexp(double2 x, __private int2 *exp);
8430double3 __ovld frexp(double3 x, __private int3 *exp);
8431double4 __ovld frexp(double4 x, __private int4 *exp);
8432double8 __ovld frexp(double8 x, __private int8 *exp);
8433double16 __ovld frexp(double16 x, __private int16 *exp);
8434#endif //cl_khr_fp64
8435#ifdef cl_khr_fp16
8436half __ovld frexp(half x, __global int *exp);
8437half2 __ovld frexp(half2 x, __global int2 *exp);
8438half3 __ovld frexp(half3 x, __global int3 *exp);
8439half4 __ovld frexp(half4 x, __global int4 *exp);
8440half8 __ovld frexp(half8 x, __global int8 *exp);
8441half16 __ovld frexp(half16 x, __global int16 *exp);
8442half __ovld frexp(half x, __local int *exp);
8443half2 __ovld frexp(half2 x, __local int2 *exp);
8444half3 __ovld frexp(half3 x, __local int3 *exp);
8445half4 __ovld frexp(half4 x, __local int4 *exp);
8446half8 __ovld frexp(half8 x, __local int8 *exp);
8447half16 __ovld frexp(half16 x, __local int16 *exp);
8448half __ovld frexp(half x, __private int *exp);
8449half2 __ovld frexp(half2 x, __private int2 *exp);
8450half3 __ovld frexp(half3 x, __private int3 *exp);
8451half4 __ovld frexp(half4 x, __private int4 *exp);
8452half8 __ovld frexp(half8 x, __private int8 *exp);
8453half16 __ovld frexp(half16 x, __private int16 *exp);
8454#endif //cl_khr_fp16
8455#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8456
8457/**
8458 * Compute the value of the square root of x^2 + y^2
8459 * without undue overflow or underflow.
8460 */
8461float __ovld __cnfn hypot(float x, float y);
8462float2 __ovld __cnfn hypot(float2 x, float2 y);
8463float3 __ovld __cnfn hypot(float3 x, float3 y);
8464float4 __ovld __cnfn hypot(float4 x, float4 y);
8465float8 __ovld __cnfn hypot(float8 x, float8 y);
8466float16 __ovld __cnfn hypot(float16 x, float16 y);
8467#ifdef cl_khr_fp64
8468double __ovld __cnfn hypot(double x, double y);
8469double2 __ovld __cnfn hypot(double2 x, double2 y);
8470double3 __ovld __cnfn hypot(double3 x, double3 y);
8471double4 __ovld __cnfn hypot(double4 x, double4 y);
8472double8 __ovld __cnfn hypot(double8 x, double8 y);
8473double16 __ovld __cnfn hypot(double16 x, double16 y);
8474#endif //cl_khr_fp64
8475#ifdef cl_khr_fp16
8476half __ovld __cnfn hypot(half x, half y);
8477half2 __ovld __cnfn hypot(half2 x, half2 y);
8478half3 __ovld __cnfn hypot(half3 x, half3 y);
8479half4 __ovld __cnfn hypot(half4 x, half4 y);
8480half8 __ovld __cnfn hypot(half8 x, half8 y);
8481half16 __ovld __cnfn hypot(half16 x, half16 y);
8482#endif //cl_khr_fp16
8483
8484/**
8485 * Return the exponent as an integer value.
8486 */
8487int __ovld __cnfn ilogb(float x);
8488int2 __ovld __cnfn ilogb(float2 x);
8489int3 __ovld __cnfn ilogb(float3 x);
8490int4 __ovld __cnfn ilogb(float4 x);
8491int8 __ovld __cnfn ilogb(float8 x);
8492int16 __ovld __cnfn ilogb(float16 x);
8493#ifdef cl_khr_fp64
8494int __ovld __cnfn ilogb(double x);
8495int2 __ovld __cnfn ilogb(double2 x);
8496int3 __ovld __cnfn ilogb(double3 x);
8497int4 __ovld __cnfn ilogb(double4 x);
8498int8 __ovld __cnfn ilogb(double8 x);
8499int16 __ovld __cnfn ilogb(double16 x);
8500#endif //cl_khr_fp64
8501#ifdef cl_khr_fp16
8502int __ovld __cnfn ilogb(half x);
8503int2 __ovld __cnfn ilogb(half2 x);
8504int3 __ovld __cnfn ilogb(half3 x);
8505int4 __ovld __cnfn ilogb(half4 x);
8506int8 __ovld __cnfn ilogb(half8 x);
8507int16 __ovld __cnfn ilogb(half16 x);
8508#endif //cl_khr_fp16
8509
8510/**
8511 * Multiply x by 2 to the power n.
8512 */
8513float __ovld __cnfn ldexp(float x, int n);
8514float2 __ovld __cnfn ldexp(float2 x, int2 n);
8515float3 __ovld __cnfn ldexp(float3 x, int3 n);
8516float4 __ovld __cnfn ldexp(float4 x, int4 n);
8517float8 __ovld __cnfn ldexp(float8 x, int8 n);
8518float16 __ovld __cnfn ldexp(float16 x, int16 n);
8519float2 __ovld __cnfn ldexp(float2 x, int n);
8520float3 __ovld __cnfn ldexp(float3 x, int n);
8521float4 __ovld __cnfn ldexp(float4 x, int n);
8522float8 __ovld __cnfn ldexp(float8 x, int n);
8523float16 __ovld __cnfn ldexp(float16 x, int n);
8524#ifdef cl_khr_fp64
8525double __ovld __cnfn ldexp(double x, int n);
8526double2 __ovld __cnfn ldexp(double2 x, int2 n);
8527double3 __ovld __cnfn ldexp(double3 x, int3 n);
8528double4 __ovld __cnfn ldexp(double4 x, int4 n);
8529double8 __ovld __cnfn ldexp(double8 x, int8 n);
8530double16 __ovld __cnfn ldexp(double16 x, int16 n);
8531double2 __ovld __cnfn ldexp(double2 x, int n);
8532double3 __ovld __cnfn ldexp(double3 x, int n);
8533double4 __ovld __cnfn ldexp(double4 x, int n);
8534double8 __ovld __cnfn ldexp(double8 x, int n);
8535double16 __ovld __cnfn ldexp(double16 x, int n);
8536#endif //cl_khr_fp64
8537#ifdef cl_khr_fp16
8538half __ovld __cnfn ldexp(half x, int n);
8539half2 __ovld __cnfn ldexp(half2 x, int2 n);
8540half3 __ovld __cnfn ldexp(half3 x, int3 n);
8541half4 __ovld __cnfn ldexp(half4 x, int4 n);
8542half8 __ovld __cnfn ldexp(half8 x, int8 n);
8543half16 __ovld __cnfn ldexp(half16 x, int16 n);
8544half2 __ovld __cnfn ldexp(half2 x, int n);
8545half3 __ovld __cnfn ldexp(half3 x, int n);
8546half4 __ovld __cnfn ldexp(half4 x, int n);
8547half8 __ovld __cnfn ldexp(half8 x, int n);
8548half16 __ovld __cnfn ldexp(half16 x, int n);
8549#endif //cl_khr_fp16
8550
8551/**
8552 * Log gamma function. Returns the natural
8553 * logarithm of the absolute value of the gamma
8554 * function. The sign of the gamma function is
8555 * returned in the signp argument of lgamma_r.
8556 */
8557float __ovld __cnfn lgamma(float x);
8558float2 __ovld __cnfn lgamma(float2 x);
8559float3 __ovld __cnfn lgamma(float3 x);
8560float4 __ovld __cnfn lgamma(float4 x);
8561float8 __ovld __cnfn lgamma(float8 x);
8562float16 __ovld __cnfn lgamma(float16 x);
8563#ifdef cl_khr_fp64
8564double __ovld __cnfn lgamma(double x);
8565double2 __ovld __cnfn lgamma(double2 x);
8566double3 __ovld __cnfn lgamma(double3 x);
8567double4 __ovld __cnfn lgamma(double4 x);
8568double8 __ovld __cnfn lgamma(double8 x);
8569double16 __ovld __cnfn lgamma(double16 x);
8570#endif //cl_khr_fp64
8571#ifdef cl_khr_fp16
8572half __ovld __cnfn lgamma(half x);
8573half2 __ovld __cnfn lgamma(half2 x);
8574half3 __ovld __cnfn lgamma(half3 x);
8575half4 __ovld __cnfn lgamma(half4 x);
8576half8 __ovld __cnfn lgamma(half8 x);
8577half16 __ovld __cnfn lgamma(half16 x);
8578#endif //cl_khr_fp16
8579
8580#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8581float __ovld lgamma_r(float x, int *signp);
8582float2 __ovld lgamma_r(float2 x, int2 *signp);
8583float3 __ovld lgamma_r(float3 x, int3 *signp);
8584float4 __ovld lgamma_r(float4 x, int4 *signp);
8585float8 __ovld lgamma_r(float8 x, int8 *signp);
8586float16 __ovld lgamma_r(float16 x, int16 *signp);
8587#ifdef cl_khr_fp64
8588double __ovld lgamma_r(double x, int *signp);
8589double2 __ovld lgamma_r(double2 x, int2 *signp);
8590double3 __ovld lgamma_r(double3 x, int3 *signp);
8591double4 __ovld lgamma_r(double4 x, int4 *signp);
8592double8 __ovld lgamma_r(double8 x, int8 *signp);
8593double16 __ovld lgamma_r(double16 x, int16 *signp);
8594#endif //cl_khr_fp64
8595#ifdef cl_khr_fp16
8596half __ovld lgamma_r(half x, int *signp);
8597half2 __ovld lgamma_r(half2 x, int2 *signp);
8598half3 __ovld lgamma_r(half3 x, int3 *signp);
8599half4 __ovld lgamma_r(half4 x, int4 *signp);
8600half8 __ovld lgamma_r(half8 x, int8 *signp);
8601half16 __ovld lgamma_r(half16 x, int16 *signp);
8602#endif //cl_khr_fp16
8603#else
8604float __ovld lgamma_r(float x, __global int *signp);
8605float2 __ovld lgamma_r(float2 x, __global int2 *signp);
8606float3 __ovld lgamma_r(float3 x, __global int3 *signp);
8607float4 __ovld lgamma_r(float4 x, __global int4 *signp);
8608float8 __ovld lgamma_r(float8 x, __global int8 *signp);
8609float16 __ovld lgamma_r(float16 x, __global int16 *signp);
8610float __ovld lgamma_r(float x, __local int *signp);
8611float2 __ovld lgamma_r(float2 x, __local int2 *signp);
8612float3 __ovld lgamma_r(float3 x, __local int3 *signp);
8613float4 __ovld lgamma_r(float4 x, __local int4 *signp);
8614float8 __ovld lgamma_r(float8 x, __local int8 *signp);
8615float16 __ovld lgamma_r(float16 x, __local int16 *signp);
8616float __ovld lgamma_r(float x, __private int *signp);
8617float2 __ovld lgamma_r(float2 x, __private int2 *signp);
8618float3 __ovld lgamma_r(float3 x, __private int3 *signp);
8619float4 __ovld lgamma_r(float4 x, __private int4 *signp);
8620float8 __ovld lgamma_r(float8 x, __private int8 *signp);
8621float16 __ovld lgamma_r(float16 x, __private int16 *signp);
8622#ifdef cl_khr_fp64
8623double __ovld lgamma_r(double x, __global int *signp);
8624double2 __ovld lgamma_r(double2 x, __global int2 *signp);
8625double3 __ovld lgamma_r(double3 x, __global int3 *signp);
8626double4 __ovld lgamma_r(double4 x, __global int4 *signp);
8627double8 __ovld lgamma_r(double8 x, __global int8 *signp);
8628double16 __ovld lgamma_r(double16 x, __global int16 *signp);
8629double __ovld lgamma_r(double x, __local int *signp);
8630double2 __ovld lgamma_r(double2 x, __local int2 *signp);
8631double3 __ovld lgamma_r(double3 x, __local int3 *signp);
8632double4 __ovld lgamma_r(double4 x, __local int4 *signp);
8633double8 __ovld lgamma_r(double8 x, __local int8 *signp);
8634double16 __ovld lgamma_r(double16 x, __local int16 *signp);
8635double __ovld lgamma_r(double x, __private int *signp);
8636double2 __ovld lgamma_r(double2 x, __private int2 *signp);
8637double3 __ovld lgamma_r(double3 x, __private int3 *signp);
8638double4 __ovld lgamma_r(double4 x, __private int4 *signp);
8639double8 __ovld lgamma_r(double8 x, __private int8 *signp);
8640double16 __ovld lgamma_r(double16 x, __private int16 *signp);
8641#endif //cl_khr_fp64
8642#ifdef cl_khr_fp16
8643half __ovld lgamma_r(half x, __global int *signp);
8644half2 __ovld lgamma_r(half2 x, __global int2 *signp);
8645half3 __ovld lgamma_r(half3 x, __global int3 *signp);
8646half4 __ovld lgamma_r(half4 x, __global int4 *signp);
8647half8 __ovld lgamma_r(half8 x, __global int8 *signp);
8648half16 __ovld lgamma_r(half16 x, __global int16 *signp);
8649half __ovld lgamma_r(half x, __local int *signp);
8650half2 __ovld lgamma_r(half2 x, __local int2 *signp);
8651half3 __ovld lgamma_r(half3 x, __local int3 *signp);
8652half4 __ovld lgamma_r(half4 x, __local int4 *signp);
8653half8 __ovld lgamma_r(half8 x, __local int8 *signp);
8654half16 __ovld lgamma_r(half16 x, __local int16 *signp);
8655half __ovld lgamma_r(half x, __private int *signp);
8656half2 __ovld lgamma_r(half2 x, __private int2 *signp);
8657half3 __ovld lgamma_r(half3 x, __private int3 *signp);
8658half4 __ovld lgamma_r(half4 x, __private int4 *signp);
8659half8 __ovld lgamma_r(half8 x, __private int8 *signp);
8660half16 __ovld lgamma_r(half16 x, __private int16 *signp);
8661#endif //cl_khr_fp16
8662#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8663
8664/**
8665 * Compute natural logarithm.
8666 */
8667float __ovld __cnfn log(float);
8668float2 __ovld __cnfn log(float2);
8669float3 __ovld __cnfn log(float3);
8670float4 __ovld __cnfn log(float4);
8671float8 __ovld __cnfn log(float8);
8672float16 __ovld __cnfn log(float16);
8673#ifdef cl_khr_fp64
8674double __ovld __cnfn log(double);
8675double2 __ovld __cnfn log(double2);
8676double3 __ovld __cnfn log(double3);
8677double4 __ovld __cnfn log(double4);
8678double8 __ovld __cnfn log(double8);
8679double16 __ovld __cnfn log(double16);
8680#endif //cl_khr_fp64
8681#ifdef cl_khr_fp16
8682half __ovld __cnfn log(half);
8683half2 __ovld __cnfn log(half2);
8684half3 __ovld __cnfn log(half3);
8685half4 __ovld __cnfn log(half4);
8686half8 __ovld __cnfn log(half8);
8687half16 __ovld __cnfn log(half16);
8688#endif //cl_khr_fp16
8689
8690/**
8691 * Compute a base 2 logarithm.
8692 */
8693float __ovld __cnfn log2(float);
8694float2 __ovld __cnfn log2(float2);
8695float3 __ovld __cnfn log2(float3);
8696float4 __ovld __cnfn log2(float4);
8697float8 __ovld __cnfn log2(float8);
8698float16 __ovld __cnfn log2(float16);
8699#ifdef cl_khr_fp64
8700double __ovld __cnfn log2(double);
8701double2 __ovld __cnfn log2(double2);
8702double3 __ovld __cnfn log2(double3);
8703double4 __ovld __cnfn log2(double4);
8704double8 __ovld __cnfn log2(double8);
8705double16 __ovld __cnfn log2(double16);
8706#endif //cl_khr_fp64
8707#ifdef cl_khr_fp16
8708half __ovld __cnfn log2(half);
8709half2 __ovld __cnfn log2(half2);
8710half3 __ovld __cnfn log2(half3);
8711half4 __ovld __cnfn log2(half4);
8712half8 __ovld __cnfn log2(half8);
8713half16 __ovld __cnfn log2(half16);
8714#endif //cl_khr_fp16
8715
8716/**
8717 * Compute a base 10 logarithm.
8718 */
8719float __ovld __cnfn log10(float);
8720float2 __ovld __cnfn log10(float2);
8721float3 __ovld __cnfn log10(float3);
8722float4 __ovld __cnfn log10(float4);
8723float8 __ovld __cnfn log10(float8);
8724float16 __ovld __cnfn log10(float16);
8725#ifdef cl_khr_fp64
8726double __ovld __cnfn log10(double);
8727double2 __ovld __cnfn log10(double2);
8728double3 __ovld __cnfn log10(double3);
8729double4 __ovld __cnfn log10(double4);
8730double8 __ovld __cnfn log10(double8);
8731double16 __ovld __cnfn log10(double16);
8732#endif //cl_khr_fp64
8733#ifdef cl_khr_fp16
8734half __ovld __cnfn log10(half);
8735half2 __ovld __cnfn log10(half2);
8736half3 __ovld __cnfn log10(half3);
8737half4 __ovld __cnfn log10(half4);
8738half8 __ovld __cnfn log10(half8);
8739half16 __ovld __cnfn log10(half16);
8740#endif //cl_khr_fp16
8741
8742/**
8743 * Compute a base e logarithm of (1.0 + x).
8744 */
8745float __ovld __cnfn log1p(float x);
8746float2 __ovld __cnfn log1p(float2 x);
8747float3 __ovld __cnfn log1p(float3 x);
8748float4 __ovld __cnfn log1p(float4 x);
8749float8 __ovld __cnfn log1p(float8 x);
8750float16 __ovld __cnfn log1p(float16 x);
8751#ifdef cl_khr_fp64
8752double __ovld __cnfn log1p(double x);
8753double2 __ovld __cnfn log1p(double2 x);
8754double3 __ovld __cnfn log1p(double3 x);
8755double4 __ovld __cnfn log1p(double4 x);
8756double8 __ovld __cnfn log1p(double8 x);
8757double16 __ovld __cnfn log1p(double16 x);
8758#endif //cl_khr_fp64
8759#ifdef cl_khr_fp16
8760half __ovld __cnfn log1p(half x);
8761half2 __ovld __cnfn log1p(half2 x);
8762half3 __ovld __cnfn log1p(half3 x);
8763half4 __ovld __cnfn log1p(half4 x);
8764half8 __ovld __cnfn log1p(half8 x);
8765half16 __ovld __cnfn log1p(half16 x);
8766#endif //cl_khr_fp16
8767
8768/**
8769 * Compute the exponent of x, which is the integral
8770 * part of logr | x |.
8771 */
8772float __ovld __cnfn logb(float x);
8773float2 __ovld __cnfn logb(float2 x);
8774float3 __ovld __cnfn logb(float3 x);
8775float4 __ovld __cnfn logb(float4 x);
8776float8 __ovld __cnfn logb(float8 x);
8777float16 __ovld __cnfn logb(float16 x);
8778#ifdef cl_khr_fp64
8779double __ovld __cnfn logb(double x);
8780double2 __ovld __cnfn logb(double2 x);
8781double3 __ovld __cnfn logb(double3 x);
8782double4 __ovld __cnfn logb(double4 x);
8783double8 __ovld __cnfn logb(double8 x);
8784double16 __ovld __cnfn logb(double16 x);
8785#endif //cl_khr_fp64
8786#ifdef cl_khr_fp16
8787half __ovld __cnfn logb(half x);
8788half2 __ovld __cnfn logb(half2 x);
8789half3 __ovld __cnfn logb(half3 x);
8790half4 __ovld __cnfn logb(half4 x);
8791half8 __ovld __cnfn logb(half8 x);
8792half16 __ovld __cnfn logb(half16 x);
8793#endif //cl_khr_fp16
8794
8795/**
8796 * mad approximates a * b + c. Whether or how the
8797 * product of a * b is rounded and how supernormal or
8798 * subnormal intermediate products are handled is not
8799 * defined. mad is intended to be used where speed is
8800 * preferred over accuracy.
8801 */
8802float __ovld __cnfn mad(float a, float b, float c);
8803float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
8804float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
8805float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
8806float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
8807float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
8808#ifdef cl_khr_fp64
8809double __ovld __cnfn mad(double a, double b, double c);
8810double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
8811double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
8812double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
8813double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
8814double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
8815#endif //cl_khr_fp64
8816#ifdef cl_khr_fp16
8817half __ovld __cnfn mad(half a, half b, half c);
8818half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
8819half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
8820half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
8821half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
8822half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
8823#endif //cl_khr_fp16
8824
8825/**
8826 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
8827 * fmax(x, y).
8828 */
8829float __ovld __cnfn maxmag(float x, float y);
8830float2 __ovld __cnfn maxmag(float2 x, float2 y);
8831float3 __ovld __cnfn maxmag(float3 x, float3 y);
8832float4 __ovld __cnfn maxmag(float4 x, float4 y);
8833float8 __ovld __cnfn maxmag(float8 x, float8 y);
8834float16 __ovld __cnfn maxmag(float16 x, float16 y);
8835#ifdef cl_khr_fp64
8836double __ovld __cnfn maxmag(double x, double y);
8837double2 __ovld __cnfn maxmag(double2 x, double2 y);
8838double3 __ovld __cnfn maxmag(double3 x, double3 y);
8839double4 __ovld __cnfn maxmag(double4 x, double4 y);
8840double8 __ovld __cnfn maxmag(double8 x, double8 y);
8841double16 __ovld __cnfn maxmag(double16 x, double16 y);
8842#endif //cl_khr_fp64
8843#ifdef cl_khr_fp16
8844half __ovld __cnfn maxmag(half x, half y);
8845half2 __ovld __cnfn maxmag(half2 x, half2 y);
8846half3 __ovld __cnfn maxmag(half3 x, half3 y);
8847half4 __ovld __cnfn maxmag(half4 x, half4 y);
8848half8 __ovld __cnfn maxmag(half8 x, half8 y);
8849half16 __ovld __cnfn maxmag(half16 x, half16 y);
8850#endif //cl_khr_fp16
8851
8852/**
8853 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
8854 * fmin(x, y).
8855 */
8856float __ovld __cnfn minmag(float x, float y);
8857float2 __ovld __cnfn minmag(float2 x, float2 y);
8858float3 __ovld __cnfn minmag(float3 x, float3 y);
8859float4 __ovld __cnfn minmag(float4 x, float4 y);
8860float8 __ovld __cnfn minmag(float8 x, float8 y);
8861float16 __ovld __cnfn minmag(float16 x, float16 y);
8862#ifdef cl_khr_fp64
8863double __ovld __cnfn minmag(double x, double y);
8864double2 __ovld __cnfn minmag(double2 x, double2 y);
8865double3 __ovld __cnfn minmag(double3 x, double3 y);
8866double4 __ovld __cnfn minmag(double4 x, double4 y);
8867double8 __ovld __cnfn minmag(double8 x, double8 y);
8868double16 __ovld __cnfn minmag(double16 x, double16 y);
8869#endif //cl_khr_fp64
8870#ifdef cl_khr_fp16
8871half __ovld __cnfn minmag(half x, half y);
8872half2 __ovld __cnfn minmag(half2 x, half2 y);
8873half3 __ovld __cnfn minmag(half3 x, half3 y);
8874half4 __ovld __cnfn minmag(half4 x, half4 y);
8875half8 __ovld __cnfn minmag(half8 x, half8 y);
8876half16 __ovld __cnfn minmag(half16 x, half16 y);
8877#endif //cl_khr_fp16
8878
8879/**
8880 * Decompose a floating-point number. The modf
8881 * function breaks the argument x into integral and
8882 * fractional parts, each of which has the same sign as
8883 * the argument. It stores the integral part in the object
8884 * pointed to by iptr.
8885 */
8886#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
8887float __ovld modf(float x, float *iptr);
8888float2 __ovld modf(float2 x, float2 *iptr);
8889float3 __ovld modf(float3 x, float3 *iptr);
8890float4 __ovld modf(float4 x, float4 *iptr);
8891float8 __ovld modf(float8 x, float8 *iptr);
8892float16 __ovld modf(float16 x, float16 *iptr);
8893#ifdef cl_khr_fp64
8894double __ovld modf(double x, double *iptr);
8895double2 __ovld modf(double2 x, double2 *iptr);
8896double3 __ovld modf(double3 x, double3 *iptr);
8897double4 __ovld modf(double4 x, double4 *iptr);
8898double8 __ovld modf(double8 x, double8 *iptr);
8899double16 __ovld modf(double16 x, double16 *iptr);
8900#endif //cl_khr_fp64
8901#ifdef cl_khr_fp16
8902half __ovld modf(half x, half *iptr);
8903half2 __ovld modf(half2 x, half2 *iptr);
8904half3 __ovld modf(half3 x, half3 *iptr);
8905half4 __ovld modf(half4 x, half4 *iptr);
8906half8 __ovld modf(half8 x, half8 *iptr);
8907half16 __ovld modf(half16 x, half16 *iptr);
8908#endif //cl_khr_fp16
8909#else
8910float __ovld modf(float x, __global float *iptr);
8911float2 __ovld modf(float2 x, __global float2 *iptr);
8912float3 __ovld modf(float3 x, __global float3 *iptr);
8913float4 __ovld modf(float4 x, __global float4 *iptr);
8914float8 __ovld modf(float8 x, __global float8 *iptr);
8915float16 __ovld modf(float16 x, __global float16 *iptr);
8916float __ovld modf(float x, __local float *iptr);
8917float2 __ovld modf(float2 x, __local float2 *iptr);
8918float3 __ovld modf(float3 x, __local float3 *iptr);
8919float4 __ovld modf(float4 x, __local float4 *iptr);
8920float8 __ovld modf(float8 x, __local float8 *iptr);
8921float16 __ovld modf(float16 x, __local float16 *iptr);
8922float __ovld modf(float x, __private float *iptr);
8923float2 __ovld modf(float2 x, __private float2 *iptr);
8924float3 __ovld modf(float3 x, __private float3 *iptr);
8925float4 __ovld modf(float4 x, __private float4 *iptr);
8926float8 __ovld modf(float8 x, __private float8 *iptr);
8927float16 __ovld modf(float16 x, __private float16 *iptr);
8928#ifdef cl_khr_fp64
8929double __ovld modf(double x, __global double *iptr);
8930double2 __ovld modf(double2 x, __global double2 *iptr);
8931double3 __ovld modf(double3 x, __global double3 *iptr);
8932double4 __ovld modf(double4 x, __global double4 *iptr);
8933double8 __ovld modf(double8 x, __global double8 *iptr);
8934double16 __ovld modf(double16 x, __global double16 *iptr);
8935double __ovld modf(double x, __local double *iptr);
8936double2 __ovld modf(double2 x, __local double2 *iptr);
8937double3 __ovld modf(double3 x, __local double3 *iptr);
8938double4 __ovld modf(double4 x, __local double4 *iptr);
8939double8 __ovld modf(double8 x, __local double8 *iptr);
8940double16 __ovld modf(double16 x, __local double16 *iptr);
8941double __ovld modf(double x, __private double *iptr);
8942double2 __ovld modf(double2 x, __private double2 *iptr);
8943double3 __ovld modf(double3 x, __private double3 *iptr);
8944double4 __ovld modf(double4 x, __private double4 *iptr);
8945double8 __ovld modf(double8 x, __private double8 *iptr);
8946double16 __ovld modf(double16 x, __private double16 *iptr);
8947#endif //cl_khr_fp64
8948#ifdef cl_khr_fp16
8949half __ovld modf(half x, __global half *iptr);
8950half2 __ovld modf(half2 x, __global half2 *iptr);
8951half3 __ovld modf(half3 x, __global half3 *iptr);
8952half4 __ovld modf(half4 x, __global half4 *iptr);
8953half8 __ovld modf(half8 x, __global half8 *iptr);
8954half16 __ovld modf(half16 x, __global half16 *iptr);
8955half __ovld modf(half x, __local half *iptr);
8956half2 __ovld modf(half2 x, __local half2 *iptr);
8957half3 __ovld modf(half3 x, __local half3 *iptr);
8958half4 __ovld modf(half4 x, __local half4 *iptr);
8959half8 __ovld modf(half8 x, __local half8 *iptr);
8960half16 __ovld modf(half16 x, __local half16 *iptr);
8961half __ovld modf(half x, __private half *iptr);
8962half2 __ovld modf(half2 x, __private half2 *iptr);
8963half3 __ovld modf(half3 x, __private half3 *iptr);
8964half4 __ovld modf(half4 x, __private half4 *iptr);
8965half8 __ovld modf(half8 x, __private half8 *iptr);
8966half16 __ovld modf(half16 x, __private half16 *iptr);
8967#endif //cl_khr_fp16
8968#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
8969
8970/**
8971 * Returns a quiet NaN. The nancode may be placed
8972 * in the significand of the resulting NaN.
8973 */
8974float __ovld __cnfn nan(uint nancode);
8975float2 __ovld __cnfn nan(uint2 nancode);
8976float3 __ovld __cnfn nan(uint3 nancode);
8977float4 __ovld __cnfn nan(uint4 nancode);
8978float8 __ovld __cnfn nan(uint8 nancode);
8979float16 __ovld __cnfn nan(uint16 nancode);
8980#ifdef cl_khr_fp64
8981double __ovld __cnfn nan(ulong nancode);
8982double2 __ovld __cnfn nan(ulong2 nancode);
8983double3 __ovld __cnfn nan(ulong3 nancode);
8984double4 __ovld __cnfn nan(ulong4 nancode);
8985double8 __ovld __cnfn nan(ulong8 nancode);
8986double16 __ovld __cnfn nan(ulong16 nancode);
8987#endif //cl_khr_fp64
8988#ifdef cl_khr_fp16
8989half __ovld __cnfn nan(ushort nancode);
8990half2 __ovld __cnfn nan(ushort2 nancode);
8991half3 __ovld __cnfn nan(ushort3 nancode);
8992half4 __ovld __cnfn nan(ushort4 nancode);
8993half8 __ovld __cnfn nan(ushort8 nancode);
8994half16 __ovld __cnfn nan(ushort16 nancode);
8995#endif //cl_khr_fp16
8996
8997/**
8998 * Computes the next representable single-precision
8999 * floating-point value following x in the direction of
9000 * y. Thus, if y is less than x, nextafter() returns the
9001 * largest representable floating-point number less
9002 * than x.
9003 */
9004float __ovld __cnfn nextafter(float x, float y);
9005float2 __ovld __cnfn nextafter(float2 x, float2 y);
9006float3 __ovld __cnfn nextafter(float3 x, float3 y);
9007float4 __ovld __cnfn nextafter(float4 x, float4 y);
9008float8 __ovld __cnfn nextafter(float8 x, float8 y);
9009float16 __ovld __cnfn nextafter(float16 x, float16 y);
9010#ifdef cl_khr_fp64
9011double __ovld __cnfn nextafter(double x, double y);
9012double2 __ovld __cnfn nextafter(double2 x, double2 y);
9013double3 __ovld __cnfn nextafter(double3 x, double3 y);
9014double4 __ovld __cnfn nextafter(double4 x, double4 y);
9015double8 __ovld __cnfn nextafter(double8 x, double8 y);
9016double16 __ovld __cnfn nextafter(double16 x, double16 y);
9017#endif //cl_khr_fp64
9018#ifdef cl_khr_fp16
9019half __ovld __cnfn nextafter(half x, half y);
9020half2 __ovld __cnfn nextafter(half2 x, half2 y);
9021half3 __ovld __cnfn nextafter(half3 x, half3 y);
9022half4 __ovld __cnfn nextafter(half4 x, half4 y);
9023half8 __ovld __cnfn nextafter(half8 x, half8 y);
9024half16 __ovld __cnfn nextafter(half16 x, half16 y);
9025#endif //cl_khr_fp16
9026
9027/**
9028 * Compute x to the power y.
9029 */
9030float __ovld __cnfn pow(float x, float y);
9031float2 __ovld __cnfn pow(float2 x, float2 y);
9032float3 __ovld __cnfn pow(float3 x, float3 y);
9033float4 __ovld __cnfn pow(float4 x, float4 y);
9034float8 __ovld __cnfn pow(float8 x, float8 y);
9035float16 __ovld __cnfn pow(float16 x, float16 y);
9036#ifdef cl_khr_fp64
9037double __ovld __cnfn pow(double x, double y);
9038double2 __ovld __cnfn pow(double2 x, double2 y);
9039double3 __ovld __cnfn pow(double3 x, double3 y);
9040double4 __ovld __cnfn pow(double4 x, double4 y);
9041double8 __ovld __cnfn pow(double8 x, double8 y);
9042double16 __ovld __cnfn pow(double16 x, double16 y);
9043#endif //cl_khr_fp64
9044#ifdef cl_khr_fp16
9045half __ovld __cnfn pow(half x, half y);
9046half2 __ovld __cnfn pow(half2 x, half2 y);
9047half3 __ovld __cnfn pow(half3 x, half3 y);
9048half4 __ovld __cnfn pow(half4 x, half4 y);
9049half8 __ovld __cnfn pow(half8 x, half8 y);
9050half16 __ovld __cnfn pow(half16 x, half16 y);
9051#endif //cl_khr_fp16
9052
9053/**
9054 * Compute x to the power y, where y is an integer.
9055 */
9056float __ovld __cnfn pown(float x, int y);
9057float2 __ovld __cnfn pown(float2 x, int2 y);
9058float3 __ovld __cnfn pown(float3 x, int3 y);
9059float4 __ovld __cnfn pown(float4 x, int4 y);
9060float8 __ovld __cnfn pown(float8 x, int8 y);
9061float16 __ovld __cnfn pown(float16 x, int16 y);
9062#ifdef cl_khr_fp64
9063double __ovld __cnfn pown(double x, int y);
9064double2 __ovld __cnfn pown(double2 x, int2 y);
9065double3 __ovld __cnfn pown(double3 x, int3 y);
9066double4 __ovld __cnfn pown(double4 x, int4 y);
9067double8 __ovld __cnfn pown(double8 x, int8 y);
9068double16 __ovld __cnfn pown(double16 x, int16 y);
9069#endif //cl_khr_fp64
9070#ifdef cl_khr_fp16
9071half __ovld __cnfn pown(half x, int y);
9072half2 __ovld __cnfn pown(half2 x, int2 y);
9073half3 __ovld __cnfn pown(half3 x, int3 y);
9074half4 __ovld __cnfn pown(half4 x, int4 y);
9075half8 __ovld __cnfn pown(half8 x, int8 y);
9076half16 __ovld __cnfn pown(half16 x, int16 y);
9077#endif //cl_khr_fp16
9078
9079/**
9080 * Compute x to the power y, where x is >= 0.
9081 */
9082float __ovld __cnfn powr(float x, float y);
9083float2 __ovld __cnfn powr(float2 x, float2 y);
9084float3 __ovld __cnfn powr(float3 x, float3 y);
9085float4 __ovld __cnfn powr(float4 x, float4 y);
9086float8 __ovld __cnfn powr(float8 x, float8 y);
9087float16 __ovld __cnfn powr(float16 x, float16 y);
9088#ifdef cl_khr_fp64
9089double __ovld __cnfn powr(double x, double y);
9090double2 __ovld __cnfn powr(double2 x, double2 y);
9091double3 __ovld __cnfn powr(double3 x, double3 y);
9092double4 __ovld __cnfn powr(double4 x, double4 y);
9093double8 __ovld __cnfn powr(double8 x, double8 y);
9094double16 __ovld __cnfn powr(double16 x, double16 y);
9095#endif //cl_khr_fp64
9096#ifdef cl_khr_fp16
9097half __ovld __cnfn powr(half x, half y);
9098half2 __ovld __cnfn powr(half2 x, half2 y);
9099half3 __ovld __cnfn powr(half3 x, half3 y);
9100half4 __ovld __cnfn powr(half4 x, half4 y);
9101half8 __ovld __cnfn powr(half8 x, half8 y);
9102half16 __ovld __cnfn powr(half16 x, half16 y);
9103#endif //cl_khr_fp16
9104
9105/**
9106 * Compute the value r such that r = x - n*y, where n
9107 * is the integer nearest the exact value of x/y. If there
9108 * are two integers closest to x/y, n shall be the even
9109 * one. If r is zero, it is given the same sign as x.
9110 */
9111float __ovld __cnfn remainder(float x, float y);
9112float2 __ovld __cnfn remainder(float2 x, float2 y);
9113float3 __ovld __cnfn remainder(float3 x, float3 y);
9114float4 __ovld __cnfn remainder(float4 x, float4 y);
9115float8 __ovld __cnfn remainder(float8 x, float8 y);
9116float16 __ovld __cnfn remainder(float16 x, float16 y);
9117#ifdef cl_khr_fp64
9118double __ovld __cnfn remainder(double x, double y);
9119double2 __ovld __cnfn remainder(double2 x, double2 y);
9120double3 __ovld __cnfn remainder(double3 x, double3 y);
9121double4 __ovld __cnfn remainder(double4 x, double4 y);
9122double8 __ovld __cnfn remainder(double8 x, double8 y);
9123double16 __ovld __cnfn remainder(double16 x, double16 y);
9124#endif //cl_khr_fp64
9125#ifdef cl_khr_fp16
9126half __ovld __cnfn remainder(half x, half y);
9127half2 __ovld __cnfn remainder(half2 x, half2 y);
9128half3 __ovld __cnfn remainder(half3 x, half3 y);
9129half4 __ovld __cnfn remainder(half4 x, half4 y);
9130half8 __ovld __cnfn remainder(half8 x, half8 y);
9131half16 __ovld __cnfn remainder(half16 x, half16 y);
9132#endif //cl_khr_fp16
9133
9134/**
9135 * The remquo function computes the value r such
9136 * that r = x - n*y, where n is the integer nearest the
9137 * exact value of x/y. If there are two integers closest
9138 * to x/y, n shall be the even one. If r is zero, it is
9139 * given the same sign as x. This is the same value
9140 * that is returned by the remainder function.
9141 * remquo also calculates the lower seven bits of the
9142 * integral quotient x/y, and gives that value the same
9143 * sign as x/y. It stores this signed value in the object
9144 * pointed to by quo.
9145 */
9146#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9147float __ovld remquo(float x, float y, int *quo);
9148float2 __ovld remquo(float2 x, float2 y, int2 *quo);
9149float3 __ovld remquo(float3 x, float3 y, int3 *quo);
9150float4 __ovld remquo(float4 x, float4 y, int4 *quo);
9151float8 __ovld remquo(float8 x, float8 y, int8 *quo);
9152float16 __ovld remquo(float16 x, float16 y, int16 *quo);
9153#ifdef cl_khr_fp64
9154double __ovld remquo(double x, double y, int *quo);
9155double2 __ovld remquo(double2 x, double2 y, int2 *quo);
9156double3 __ovld remquo(double3 x, double3 y, int3 *quo);
9157double4 __ovld remquo(double4 x, double4 y, int4 *quo);
9158double8 __ovld remquo(double8 x, double8 y, int8 *quo);
9159double16 __ovld remquo(double16 x, double16 y, int16 *quo);
9160#endif //cl_khr_fp64
9161#ifdef cl_khr_fp16
9162half __ovld remquo(half x, half y, int *quo);
9163half2 __ovld remquo(half2 x, half2 y, int2 *quo);
9164half3 __ovld remquo(half3 x, half3 y, int3 *quo);
9165half4 __ovld remquo(half4 x, half4 y, int4 *quo);
9166half8 __ovld remquo(half8 x, half8 y, int8 *quo);
9167half16 __ovld remquo(half16 x, half16 y, int16 *quo);
9168
9169#endif //cl_khr_fp16
9170#else
9171float __ovld remquo(float x, float y, __global int *quo);
9172float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
9173float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
9174float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
9175float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
9176float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
9177float __ovld remquo(float x, float y, __local int *quo);
9178float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
9179float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
9180float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
9181float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
9182float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
9183float __ovld remquo(float x, float y, __private int *quo);
9184float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
9185float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
9186float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
9187float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
9188float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
9189#ifdef cl_khr_fp64
9190double __ovld remquo(double x, double y, __global int *quo);
9191double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
9192double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
9193double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
9194double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
9195double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
9196double __ovld remquo(double x, double y, __local int *quo);
9197double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
9198double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
9199double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
9200double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
9201double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
9202double __ovld remquo(double x, double y, __private int *quo);
9203double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
9204double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
9205double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
9206double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
9207double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
9208#endif //cl_khr_fp64
9209#ifdef cl_khr_fp16
9210half __ovld remquo(half x, half y, __global int *quo);
9211half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
9212half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
9213half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
9214half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
9215half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
9216half __ovld remquo(half x, half y, __local int *quo);
9217half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
9218half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
9219half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
9220half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
9221half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
9222half __ovld remquo(half x, half y, __private int *quo);
9223half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
9224half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
9225half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
9226half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
9227half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
9228#endif //cl_khr_fp16
9229#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9230/**
9231 * Round to integral value (using round to nearest
9232 * even rounding mode) in floating-point format.
9233 * Refer to section 7.1 for description of rounding
9234 * modes.
9235 */
9236float __ovld __cnfn rint(float);
9237float2 __ovld __cnfn rint(float2);
9238float3 __ovld __cnfn rint(float3);
9239float4 __ovld __cnfn rint(float4);
9240float8 __ovld __cnfn rint(float8);
9241float16 __ovld __cnfn rint(float16);
9242#ifdef cl_khr_fp64
9243double __ovld __cnfn rint(double);
9244double2 __ovld __cnfn rint(double2);
9245double3 __ovld __cnfn rint(double3);
9246double4 __ovld __cnfn rint(double4);
9247double8 __ovld __cnfn rint(double8);
9248double16 __ovld __cnfn rint(double16);
9249#endif //cl_khr_fp64
9250#ifdef cl_khr_fp16
9251half __ovld __cnfn rint(half);
9252half2 __ovld __cnfn rint(half2);
9253half3 __ovld __cnfn rint(half3);
9254half4 __ovld __cnfn rint(half4);
9255half8 __ovld __cnfn rint(half8);
9256half16 __ovld __cnfn rint(half16);
9257#endif //cl_khr_fp16
9258
9259/**
9260 * Compute x to the power 1/y.
9261 */
9262float __ovld __cnfn rootn(float x, int y);
9263float2 __ovld __cnfn rootn(float2 x, int2 y);
9264float3 __ovld __cnfn rootn(float3 x, int3 y);
9265float4 __ovld __cnfn rootn(float4 x, int4 y);
9266float8 __ovld __cnfn rootn(float8 x, int8 y);
9267float16 __ovld __cnfn rootn(float16 x, int16 y);
9268#ifdef cl_khr_fp64
9269double __ovld __cnfn rootn(double x, int y);
9270double2 __ovld __cnfn rootn(double2 x, int2 y);
9271double3 __ovld __cnfn rootn(double3 x, int3 y);
9272double4 __ovld __cnfn rootn(double4 x, int4 y);
9273double8 __ovld __cnfn rootn(double8 x, int8 y);
9274double16 __ovld __cnfn rootn(double16 x, int16 y);
9275#endif //cl_khr_fp64
9276#ifdef cl_khr_fp16
9277half __ovld __cnfn rootn(half x, int y);
9278half2 __ovld __cnfn rootn(half2 x, int2 y);
9279half3 __ovld __cnfn rootn(half3 x, int3 y);
9280half4 __ovld __cnfn rootn(half4 x, int4 y);
9281half8 __ovld __cnfn rootn(half8 x, int8 y);
9282half16 __ovld __cnfn rootn(half16 x, int16 y);
9283#endif //cl_khr_fp16
9284
9285/**
9286 * Return the integral value nearest to x rounding
9287 * halfway cases away from zero, regardless of the
9288 * current rounding direction.
9289 */
9290float __ovld __cnfn round(float x);
9291float2 __ovld __cnfn round(float2 x);
9292float3 __ovld __cnfn round(float3 x);
9293float4 __ovld __cnfn round(float4 x);
9294float8 __ovld __cnfn round(float8 x);
9295float16 __ovld __cnfn round(float16 x);
9296#ifdef cl_khr_fp64
9297double __ovld __cnfn round(double x);
9298double2 __ovld __cnfn round(double2 x);
9299double3 __ovld __cnfn round(double3 x);
9300double4 __ovld __cnfn round(double4 x);
9301double8 __ovld __cnfn round(double8 x);
9302double16 __ovld __cnfn round(double16 x);
9303#endif //cl_khr_fp64
9304#ifdef cl_khr_fp16
9305half __ovld __cnfn round(half x);
9306half2 __ovld __cnfn round(half2 x);
9307half3 __ovld __cnfn round(half3 x);
9308half4 __ovld __cnfn round(half4 x);
9309half8 __ovld __cnfn round(half8 x);
9310half16 __ovld __cnfn round(half16 x);
9311#endif //cl_khr_fp16
9312
9313/**
9314 * Compute inverse square root.
9315 */
9316float __ovld __cnfn rsqrt(float);
9317float2 __ovld __cnfn rsqrt(float2);
9318float3 __ovld __cnfn rsqrt(float3);
9319float4 __ovld __cnfn rsqrt(float4);
9320float8 __ovld __cnfn rsqrt(float8);
9321float16 __ovld __cnfn rsqrt(float16);
9322#ifdef cl_khr_fp64
9323double __ovld __cnfn rsqrt(double);
9324double2 __ovld __cnfn rsqrt(double2);
9325double3 __ovld __cnfn rsqrt(double3);
9326double4 __ovld __cnfn rsqrt(double4);
9327double8 __ovld __cnfn rsqrt(double8);
9328double16 __ovld __cnfn rsqrt(double16);
9329#endif //cl_khr_fp64
9330#ifdef cl_khr_fp16
9331half __ovld __cnfn rsqrt(half);
9332half2 __ovld __cnfn rsqrt(half2);
9333half3 __ovld __cnfn rsqrt(half3);
9334half4 __ovld __cnfn rsqrt(half4);
9335half8 __ovld __cnfn rsqrt(half8);
9336half16 __ovld __cnfn rsqrt(half16);
9337#endif //cl_khr_fp16
9338
9339/**
9340 * Compute sine.
9341 */
9342float __ovld __cnfn sin(float);
9343float2 __ovld __cnfn sin(float2);
9344float3 __ovld __cnfn sin(float3);
9345float4 __ovld __cnfn sin(float4);
9346float8 __ovld __cnfn sin(float8);
9347float16 __ovld __cnfn sin(float16);
9348#ifdef cl_khr_fp64
9349double __ovld __cnfn sin(double);
9350double2 __ovld __cnfn sin(double2);
9351double3 __ovld __cnfn sin(double3);
9352double4 __ovld __cnfn sin(double4);
9353double8 __ovld __cnfn sin(double8);
9354double16 __ovld __cnfn sin(double16);
9355#endif //cl_khr_fp64
9356#ifdef cl_khr_fp16
9357half __ovld __cnfn sin(half);
9358half2 __ovld __cnfn sin(half2);
9359half3 __ovld __cnfn sin(half3);
9360half4 __ovld __cnfn sin(half4);
9361half8 __ovld __cnfn sin(half8);
9362half16 __ovld __cnfn sin(half16);
9363#endif //cl_khr_fp16
9364
9365/**
9366 * Compute sine and cosine of x. The computed sine
9367 * is the return value and computed cosine is returned
9368 * in cosval.
9369 */
9370#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
9371float __ovld sincos(float x, float *cosval);
9372float2 __ovld sincos(float2 x, float2 *cosval);
9373float3 __ovld sincos(float3 x, float3 *cosval);
9374float4 __ovld sincos(float4 x, float4 *cosval);
9375float8 __ovld sincos(float8 x, float8 *cosval);
9376float16 __ovld sincos(float16 x, float16 *cosval);
9377#ifdef cl_khr_fp64
9378double __ovld sincos(double x, double *cosval);
9379double2 __ovld sincos(double2 x, double2 *cosval);
9380double3 __ovld sincos(double3 x, double3 *cosval);
9381double4 __ovld sincos(double4 x, double4 *cosval);
9382double8 __ovld sincos(double8 x, double8 *cosval);
9383double16 __ovld sincos(double16 x, double16 *cosval);
9384#endif //cl_khr_fp64
9385#ifdef cl_khr_fp16
9386half __ovld sincos(half x, half *cosval);
9387half2 __ovld sincos(half2 x, half2 *cosval);
9388half3 __ovld sincos(half3 x, half3 *cosval);
9389half4 __ovld sincos(half4 x, half4 *cosval);
9390half8 __ovld sincos(half8 x, half8 *cosval);
9391half16 __ovld sincos(half16 x, half16 *cosval);
9392#endif //cl_khr_fp16
9393#else
9394float __ovld sincos(float x, __global float *cosval);
9395float2 __ovld sincos(float2 x, __global float2 *cosval);
9396float3 __ovld sincos(float3 x, __global float3 *cosval);
9397float4 __ovld sincos(float4 x, __global float4 *cosval);
9398float8 __ovld sincos(float8 x, __global float8 *cosval);
9399float16 __ovld sincos(float16 x, __global float16 *cosval);
9400float __ovld sincos(float x, __local float *cosval);
9401float2 __ovld sincos(float2 x, __local float2 *cosval);
9402float3 __ovld sincos(float3 x, __local float3 *cosval);
9403float4 __ovld sincos(float4 x, __local float4 *cosval);
9404float8 __ovld sincos(float8 x, __local float8 *cosval);
9405float16 __ovld sincos(float16 x, __local float16 *cosval);
9406float __ovld sincos(float x, __private float *cosval);
9407float2 __ovld sincos(float2 x, __private float2 *cosval);
9408float3 __ovld sincos(float3 x, __private float3 *cosval);
9409float4 __ovld sincos(float4 x, __private float4 *cosval);
9410float8 __ovld sincos(float8 x, __private float8 *cosval);
9411float16 __ovld sincos(float16 x, __private float16 *cosval);
9412#ifdef cl_khr_fp64
9413double __ovld sincos(double x, __global double *cosval);
9414double2 __ovld sincos(double2 x, __global double2 *cosval);
9415double3 __ovld sincos(double3 x, __global double3 *cosval);
9416double4 __ovld sincos(double4 x, __global double4 *cosval);
9417double8 __ovld sincos(double8 x, __global double8 *cosval);
9418double16 __ovld sincos(double16 x, __global double16 *cosval);
9419double __ovld sincos(double x, __local double *cosval);
9420double2 __ovld sincos(double2 x, __local double2 *cosval);
9421double3 __ovld sincos(double3 x, __local double3 *cosval);
9422double4 __ovld sincos(double4 x, __local double4 *cosval);
9423double8 __ovld sincos(double8 x, __local double8 *cosval);
9424double16 __ovld sincos(double16 x, __local double16 *cosval);
9425double __ovld sincos(double x, __private double *cosval);
9426double2 __ovld sincos(double2 x, __private double2 *cosval);
9427double3 __ovld sincos(double3 x, __private double3 *cosval);
9428double4 __ovld sincos(double4 x, __private double4 *cosval);
9429double8 __ovld sincos(double8 x, __private double8 *cosval);
9430double16 __ovld sincos(double16 x, __private double16 *cosval);
9431#endif //cl_khr_fp64
9432#ifdef cl_khr_fp16
9433half __ovld sincos(half x, __global half *cosval);
9434half2 __ovld sincos(half2 x, __global half2 *cosval);
9435half3 __ovld sincos(half3 x, __global half3 *cosval);
9436half4 __ovld sincos(half4 x, __global half4 *cosval);
9437half8 __ovld sincos(half8 x, __global half8 *cosval);
9438half16 __ovld sincos(half16 x, __global half16 *cosval);
9439half __ovld sincos(half x, __local half *cosval);
9440half2 __ovld sincos(half2 x, __local half2 *cosval);
9441half3 __ovld sincos(half3 x, __local half3 *cosval);
9442half4 __ovld sincos(half4 x, __local half4 *cosval);
9443half8 __ovld sincos(half8 x, __local half8 *cosval);
9444half16 __ovld sincos(half16 x, __local half16 *cosval);
9445half __ovld sincos(half x, __private half *cosval);
9446half2 __ovld sincos(half2 x, __private half2 *cosval);
9447half3 __ovld sincos(half3 x, __private half3 *cosval);
9448half4 __ovld sincos(half4 x, __private half4 *cosval);
9449half8 __ovld sincos(half8 x, __private half8 *cosval);
9450half16 __ovld sincos(half16 x, __private half16 *cosval);
9451#endif //cl_khr_fp16
9452#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
9453
9454/**
9455 * Compute hyperbolic sine.
9456 */
9457float __ovld __cnfn sinh(float);
9458float2 __ovld __cnfn sinh(float2);
9459float3 __ovld __cnfn sinh(float3);
9460float4 __ovld __cnfn sinh(float4);
9461float8 __ovld __cnfn sinh(float8);
9462float16 __ovld __cnfn sinh(float16);
9463#ifdef cl_khr_fp64
9464double __ovld __cnfn sinh(double);
9465double2 __ovld __cnfn sinh(double2);
9466double3 __ovld __cnfn sinh(double3);
9467double4 __ovld __cnfn sinh(double4);
9468double8 __ovld __cnfn sinh(double8);
9469double16 __ovld __cnfn sinh(double16);
9470#endif //cl_khr_fp64
9471#ifdef cl_khr_fp16
9472half __ovld __cnfn sinh(half);
9473half2 __ovld __cnfn sinh(half2);
9474half3 __ovld __cnfn sinh(half3);
9475half4 __ovld __cnfn sinh(half4);
9476half8 __ovld __cnfn sinh(half8);
9477half16 __ovld __cnfn sinh(half16);
9478#endif //cl_khr_fp16
9479
9480/**
9481 * Compute sin (PI * x).
9482 */
9483float __ovld __cnfn sinpi(float x);
9484float2 __ovld __cnfn sinpi(float2 x);
9485float3 __ovld __cnfn sinpi(float3 x);
9486float4 __ovld __cnfn sinpi(float4 x);
9487float8 __ovld __cnfn sinpi(float8 x);
9488float16 __ovld __cnfn sinpi(float16 x);
9489#ifdef cl_khr_fp64
9490double __ovld __cnfn sinpi(double x);
9491double2 __ovld __cnfn sinpi(double2 x);
9492double3 __ovld __cnfn sinpi(double3 x);
9493double4 __ovld __cnfn sinpi(double4 x);
9494double8 __ovld __cnfn sinpi(double8 x);
9495double16 __ovld __cnfn sinpi(double16 x);
9496#endif //cl_khr_fp64
9497#ifdef cl_khr_fp16
9498half __ovld __cnfn sinpi(half x);
9499half2 __ovld __cnfn sinpi(half2 x);
9500half3 __ovld __cnfn sinpi(half3 x);
9501half4 __ovld __cnfn sinpi(half4 x);
9502half8 __ovld __cnfn sinpi(half8 x);
9503half16 __ovld __cnfn sinpi(half16 x);
9504#endif //cl_khr_fp16
9505
9506/**
9507 * Compute square root.
9508 */
9509float __ovld __cnfn sqrt(float);
9510float2 __ovld __cnfn sqrt(float2);
9511float3 __ovld __cnfn sqrt(float3);
9512float4 __ovld __cnfn sqrt(float4);
9513float8 __ovld __cnfn sqrt(float8);
9514float16 __ovld __cnfn sqrt(float16);
9515#ifdef cl_khr_fp64
9516double __ovld __cnfn sqrt(double);
9517double2 __ovld __cnfn sqrt(double2);
9518double3 __ovld __cnfn sqrt(double3);
9519double4 __ovld __cnfn sqrt(double4);
9520double8 __ovld __cnfn sqrt(double8);
9521double16 __ovld __cnfn sqrt(double16);
9522#endif //cl_khr_fp64
9523#ifdef cl_khr_fp16
9524half __ovld __cnfn sqrt(half);
9525half2 __ovld __cnfn sqrt(half2);
9526half3 __ovld __cnfn sqrt(half3);
9527half4 __ovld __cnfn sqrt(half4);
9528half8 __ovld __cnfn sqrt(half8);
9529half16 __ovld __cnfn sqrt(half16);
9530#endif //cl_khr_fp16
9531
9532/**
9533 * Compute tangent.
9534 */
9535float __ovld __cnfn tan(float);
9536float2 __ovld __cnfn tan(float2);
9537float3 __ovld __cnfn tan(float3);
9538float4 __ovld __cnfn tan(float4);
9539float8 __ovld __cnfn tan(float8);
9540float16 __ovld __cnfn tan(float16);
9541#ifdef cl_khr_fp64
9542double __ovld __cnfn tan(double);
9543double2 __ovld __cnfn tan(double2);
9544double3 __ovld __cnfn tan(double3);
9545double4 __ovld __cnfn tan(double4);
9546double8 __ovld __cnfn tan(double8);
9547double16 __ovld __cnfn tan(double16);
9548#endif //cl_khr_fp64
9549#ifdef cl_khr_fp16
9550half __ovld __cnfn tan(half);
9551half2 __ovld __cnfn tan(half2);
9552half3 __ovld __cnfn tan(half3);
9553half4 __ovld __cnfn tan(half4);
9554half8 __ovld __cnfn tan(half8);
9555half16 __ovld __cnfn tan(half16);
9556#endif //cl_khr_fp16
9557
9558/**
9559 * Compute hyperbolic tangent.
9560 */
9561float __ovld __cnfn tanh(float);
9562float2 __ovld __cnfn tanh(float2);
9563float3 __ovld __cnfn tanh(float3);
9564float4 __ovld __cnfn tanh(float4);
9565float8 __ovld __cnfn tanh(float8);
9566float16 __ovld __cnfn tanh(float16);
9567#ifdef cl_khr_fp64
9568double __ovld __cnfn tanh(double);
9569double2 __ovld __cnfn tanh(double2);
9570double3 __ovld __cnfn tanh(double3);
9571double4 __ovld __cnfn tanh(double4);
9572double8 __ovld __cnfn tanh(double8);
9573double16 __ovld __cnfn tanh(double16);
9574#endif //cl_khr_fp64
9575#ifdef cl_khr_fp16
9576half __ovld __cnfn tanh(half);
9577half2 __ovld __cnfn tanh(half2);
9578half3 __ovld __cnfn tanh(half3);
9579half4 __ovld __cnfn tanh(half4);
9580half8 __ovld __cnfn tanh(half8);
9581half16 __ovld __cnfn tanh(half16);
9582#endif //cl_khr_fp16
9583
9584/**
9585 * Compute tan (PI * x).
9586 */
9587float __ovld __cnfn tanpi(float x);
9588float2 __ovld __cnfn tanpi(float2 x);
9589float3 __ovld __cnfn tanpi(float3 x);
9590float4 __ovld __cnfn tanpi(float4 x);
9591float8 __ovld __cnfn tanpi(float8 x);
9592float16 __ovld __cnfn tanpi(float16 x);
9593#ifdef cl_khr_fp64
9594double __ovld __cnfn tanpi(double x);
9595double2 __ovld __cnfn tanpi(double2 x);
9596double3 __ovld __cnfn tanpi(double3 x);
9597double4 __ovld __cnfn tanpi(double4 x);
9598double8 __ovld __cnfn tanpi(double8 x);
9599double16 __ovld __cnfn tanpi(double16 x);
9600#endif //cl_khr_fp64
9601#ifdef cl_khr_fp16
9602half __ovld __cnfn tanpi(half x);
9603half2 __ovld __cnfn tanpi(half2 x);
9604half3 __ovld __cnfn tanpi(half3 x);
9605half4 __ovld __cnfn tanpi(half4 x);
9606half8 __ovld __cnfn tanpi(half8 x);
9607half16 __ovld __cnfn tanpi(half16 x);
9608#endif //cl_khr_fp16
9609
9610/**
9611 * Compute the gamma function.
9612 */
9613float __ovld __cnfn tgamma(float);
9614float2 __ovld __cnfn tgamma(float2);
9615float3 __ovld __cnfn tgamma(float3);
9616float4 __ovld __cnfn tgamma(float4);
9617float8 __ovld __cnfn tgamma(float8);
9618float16 __ovld __cnfn tgamma(float16);
9619#ifdef cl_khr_fp64
9620double __ovld __cnfn tgamma(double);
9621double2 __ovld __cnfn tgamma(double2);
9622double3 __ovld __cnfn tgamma(double3);
9623double4 __ovld __cnfn tgamma(double4);
9624double8 __ovld __cnfn tgamma(double8);
9625double16 __ovld __cnfn tgamma(double16);
9626#endif //cl_khr_fp64
9627#ifdef cl_khr_fp16
9628half __ovld __cnfn tgamma(half);
9629half2 __ovld __cnfn tgamma(half2);
9630half3 __ovld __cnfn tgamma(half3);
9631half4 __ovld __cnfn tgamma(half4);
9632half8 __ovld __cnfn tgamma(half8);
9633half16 __ovld __cnfn tgamma(half16);
9634#endif //cl_khr_fp16
9635
9636/**
9637 * Round to integral value using the round to zero
9638 * rounding mode.
9639 */
9640float __ovld __cnfn trunc(float);
9641float2 __ovld __cnfn trunc(float2);
9642float3 __ovld __cnfn trunc(float3);
9643float4 __ovld __cnfn trunc(float4);
9644float8 __ovld __cnfn trunc(float8);
9645float16 __ovld __cnfn trunc(float16);
9646#ifdef cl_khr_fp64
9647double __ovld __cnfn trunc(double);
9648double2 __ovld __cnfn trunc(double2);
9649double3 __ovld __cnfn trunc(double3);
9650double4 __ovld __cnfn trunc(double4);
9651double8 __ovld __cnfn trunc(double8);
9652double16 __ovld __cnfn trunc(double16);
9653#endif //cl_khr_fp64
9654#ifdef cl_khr_fp16
9655half __ovld __cnfn trunc(half);
9656half2 __ovld __cnfn trunc(half2);
9657half3 __ovld __cnfn trunc(half3);
9658half4 __ovld __cnfn trunc(half4);
9659half8 __ovld __cnfn trunc(half8);
9660half16 __ovld __cnfn trunc(half16);
9661#endif //cl_khr_fp16
9662
9663/**
9664 * Compute cosine. x must be in the range -2^16 ... +2^16.
9665 */
9666float __ovld __cnfn half_cos(float x);
9667float2 __ovld __cnfn half_cos(float2 x);
9668float3 __ovld __cnfn half_cos(float3 x);
9669float4 __ovld __cnfn half_cos(float4 x);
9670float8 __ovld __cnfn half_cos(float8 x);
9671float16 __ovld __cnfn half_cos(float16 x);
9672
9673/**
9674 * Compute x / y.
9675 */
9676float __ovld __cnfn half_divide(float x, float y);
9677float2 __ovld __cnfn half_divide(float2 x, float2 y);
9678float3 __ovld __cnfn half_divide(float3 x, float3 y);
9679float4 __ovld __cnfn half_divide(float4 x, float4 y);
9680float8 __ovld __cnfn half_divide(float8 x, float8 y);
9681float16 __ovld __cnfn half_divide(float16 x, float16 y);
9682
9683/**
9684 * Compute the base- e exponential of x.
9685 */
9686float __ovld __cnfn half_exp(float x);
9687float2 __ovld __cnfn half_exp(float2 x);
9688float3 __ovld __cnfn half_exp(float3 x);
9689float4 __ovld __cnfn half_exp(float4 x);
9690float8 __ovld __cnfn half_exp(float8 x);
9691float16 __ovld __cnfn half_exp(float16 x);
9692
9693/**
9694 * Compute the base- 2 exponential of x.
9695 */
9696float __ovld __cnfn half_exp2(float x);
9697float2 __ovld __cnfn half_exp2(float2 x);
9698float3 __ovld __cnfn half_exp2(float3 x);
9699float4 __ovld __cnfn half_exp2(float4 x);
9700float8 __ovld __cnfn half_exp2(float8 x);
9701float16 __ovld __cnfn half_exp2(float16 x);
9702
9703/**
9704 * Compute the base- 10 exponential of x.
9705 */
9706float __ovld __cnfn half_exp10(float x);
9707float2 __ovld __cnfn half_exp10(float2 x);
9708float3 __ovld __cnfn half_exp10(float3 x);
9709float4 __ovld __cnfn half_exp10(float4 x);
9710float8 __ovld __cnfn half_exp10(float8 x);
9711float16 __ovld __cnfn half_exp10(float16 x);
9712
9713/**
9714 * Compute natural logarithm.
9715 */
9716float __ovld __cnfn half_log(float x);
9717float2 __ovld __cnfn half_log(float2 x);
9718float3 __ovld __cnfn half_log(float3 x);
9719float4 __ovld __cnfn half_log(float4 x);
9720float8 __ovld __cnfn half_log(float8 x);
9721float16 __ovld __cnfn half_log(float16 x);
9722
9723/**
9724 * Compute a base 2 logarithm.
9725 */
9726float __ovld __cnfn half_log2(float x);
9727float2 __ovld __cnfn half_log2(float2 x);
9728float3 __ovld __cnfn half_log2(float3 x);
9729float4 __ovld __cnfn half_log2(float4 x);
9730float8 __ovld __cnfn half_log2(float8 x);
9731float16 __ovld __cnfn half_log2(float16 x);
9732
9733/**
9734 * Compute a base 10 logarithm.
9735 */
9736float __ovld __cnfn half_log10(float x);
9737float2 __ovld __cnfn half_log10(float2 x);
9738float3 __ovld __cnfn half_log10(float3 x);
9739float4 __ovld __cnfn half_log10(float4 x);
9740float8 __ovld __cnfn half_log10(float8 x);
9741float16 __ovld __cnfn half_log10(float16 x);
9742
9743/**
9744 * Compute x to the power y, where x is >= 0.
9745 */
9746float __ovld __cnfn half_powr(float x, float y);
9747float2 __ovld __cnfn half_powr(float2 x, float2 y);
9748float3 __ovld __cnfn half_powr(float3 x, float3 y);
9749float4 __ovld __cnfn half_powr(float4 x, float4 y);
9750float8 __ovld __cnfn half_powr(float8 x, float8 y);
9751float16 __ovld __cnfn half_powr(float16 x, float16 y);
9752
9753/**
9754 * Compute reciprocal.
9755 */
9756float __ovld __cnfn half_recip(float x);
9757float2 __ovld __cnfn half_recip(float2 x);
9758float3 __ovld __cnfn half_recip(float3 x);
9759float4 __ovld __cnfn half_recip(float4 x);
9760float8 __ovld __cnfn half_recip(float8 x);
9761float16 __ovld __cnfn half_recip(float16 x);
9762
9763/**
9764 * Compute inverse square root.
9765 */
9766float __ovld __cnfn half_rsqrt(float x);
9767float2 __ovld __cnfn half_rsqrt(float2 x);
9768float3 __ovld __cnfn half_rsqrt(float3 x);
9769float4 __ovld __cnfn half_rsqrt(float4 x);
9770float8 __ovld __cnfn half_rsqrt(float8 x);
9771float16 __ovld __cnfn half_rsqrt(float16 x);
9772
9773/**
9774 * Compute sine. x must be in the range -2^16 ... +2^16.
9775 */
9776float __ovld __cnfn half_sin(float x);
9777float2 __ovld __cnfn half_sin(float2 x);
9778float3 __ovld __cnfn half_sin(float3 x);
9779float4 __ovld __cnfn half_sin(float4 x);
9780float8 __ovld __cnfn half_sin(float8 x);
9781float16 __ovld __cnfn half_sin(float16 x);
9782
9783/**
9784 * Compute square root.
9785 */
9786float __ovld __cnfn half_sqrt(float x);
9787float2 __ovld __cnfn half_sqrt(float2 x);
9788float3 __ovld __cnfn half_sqrt(float3 x);
9789float4 __ovld __cnfn half_sqrt(float4 x);
9790float8 __ovld __cnfn half_sqrt(float8 x);
9791float16 __ovld __cnfn half_sqrt(float16 x);
9792
9793/**
9794 * Compute tangent. x must be in the range -216 ... +216.
9795 */
9796float __ovld __cnfn half_tan(float x);
9797float2 __ovld __cnfn half_tan(float2 x);
9798float3 __ovld __cnfn half_tan(float3 x);
9799float4 __ovld __cnfn half_tan(float4 x);
9800float8 __ovld __cnfn half_tan(float8 x);
9801float16 __ovld __cnfn half_tan(float16 x);
9802
9803/**
9804 * Compute cosine over an implementation-defined range.
9805 * The maximum error is implementation-defined.
9806 */
9807float __ovld __cnfn native_cos(float x);
9808float2 __ovld __cnfn native_cos(float2 x);
9809float3 __ovld __cnfn native_cos(float3 x);
9810float4 __ovld __cnfn native_cos(float4 x);
9811float8 __ovld __cnfn native_cos(float8 x);
9812float16 __ovld __cnfn native_cos(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009813
9814/**
9815 * Compute x / y over an implementation-defined range.
9816 * The maximum error is implementation-defined.
9817 */
9818float __ovld __cnfn native_divide(float x, float y);
9819float2 __ovld __cnfn native_divide(float2 x, float2 y);
9820float3 __ovld __cnfn native_divide(float3 x, float3 y);
9821float4 __ovld __cnfn native_divide(float4 x, float4 y);
9822float8 __ovld __cnfn native_divide(float8 x, float8 y);
9823float16 __ovld __cnfn native_divide(float16 x, float16 y);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009824
9825/**
9826 * Compute the base- e exponential of x over an
9827 * implementation-defined range. The maximum error is
9828 * implementation-defined.
9829 */
9830float __ovld __cnfn native_exp(float x);
9831float2 __ovld __cnfn native_exp(float2 x);
9832float3 __ovld __cnfn native_exp(float3 x);
9833float4 __ovld __cnfn native_exp(float4 x);
9834float8 __ovld __cnfn native_exp(float8 x);
9835float16 __ovld __cnfn native_exp(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009836
9837/**
9838 * Compute the base- 2 exponential of x over an
9839 * implementation-defined range. The maximum error is
9840 * implementation-defined.
9841 */
9842float __ovld __cnfn native_exp2(float x);
9843float2 __ovld __cnfn native_exp2(float2 x);
9844float3 __ovld __cnfn native_exp2(float3 x);
9845float4 __ovld __cnfn native_exp2(float4 x);
9846float8 __ovld __cnfn native_exp2(float8 x);
9847float16 __ovld __cnfn native_exp2(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009848
9849/**
9850 * Compute the base- 10 exponential of x over an
9851 * implementation-defined range. The maximum error is
9852 * implementation-defined.
9853 */
9854float __ovld __cnfn native_exp10(float x);
9855float2 __ovld __cnfn native_exp10(float2 x);
9856float3 __ovld __cnfn native_exp10(float3 x);
9857float4 __ovld __cnfn native_exp10(float4 x);
9858float8 __ovld __cnfn native_exp10(float8 x);
9859float16 __ovld __cnfn native_exp10(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009860
9861/**
9862 * Compute natural logarithm over an implementationdefined
9863 * range. The maximum error is implementation
9864 * defined.
9865 */
9866float __ovld __cnfn native_log(float x);
9867float2 __ovld __cnfn native_log(float2 x);
9868float3 __ovld __cnfn native_log(float3 x);
9869float4 __ovld __cnfn native_log(float4 x);
9870float8 __ovld __cnfn native_log(float8 x);
9871float16 __ovld __cnfn native_log(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009872
9873/**
9874 * Compute a base 2 logarithm over an implementationdefined
9875 * range. The maximum error is implementationdefined.
9876 */
9877float __ovld __cnfn native_log2(float x);
9878float2 __ovld __cnfn native_log2(float2 x);
9879float3 __ovld __cnfn native_log2(float3 x);
9880float4 __ovld __cnfn native_log2(float4 x);
9881float8 __ovld __cnfn native_log2(float8 x);
9882float16 __ovld __cnfn native_log2(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009883
9884/**
9885 * Compute a base 10 logarithm over an implementationdefined
9886 * range. The maximum error is implementationdefined.
9887 */
9888float __ovld __cnfn native_log10(float x);
9889float2 __ovld __cnfn native_log10(float2 x);
9890float3 __ovld __cnfn native_log10(float3 x);
9891float4 __ovld __cnfn native_log10(float4 x);
9892float8 __ovld __cnfn native_log10(float8 x);
9893float16 __ovld __cnfn native_log10(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009894
9895/**
9896 * Compute x to the power y, where x is >= 0. The range of
9897 * x and y are implementation-defined. The maximum error
9898 * is implementation-defined.
9899 */
9900float __ovld __cnfn native_powr(float x, float y);
9901float2 __ovld __cnfn native_powr(float2 x, float2 y);
9902float3 __ovld __cnfn native_powr(float3 x, float3 y);
9903float4 __ovld __cnfn native_powr(float4 x, float4 y);
9904float8 __ovld __cnfn native_powr(float8 x, float8 y);
9905float16 __ovld __cnfn native_powr(float16 x, float16 y);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009906
9907/**
9908 * Compute reciprocal over an implementation-defined
9909 * range. The maximum error is implementation-defined.
9910 */
9911float __ovld __cnfn native_recip(float x);
9912float2 __ovld __cnfn native_recip(float2 x);
9913float3 __ovld __cnfn native_recip(float3 x);
9914float4 __ovld __cnfn native_recip(float4 x);
9915float8 __ovld __cnfn native_recip(float8 x);
9916float16 __ovld __cnfn native_recip(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009917
9918/**
9919 * Compute inverse square root over an implementationdefined
9920 * range. The maximum error is implementationdefined.
9921 */
9922float __ovld __cnfn native_rsqrt(float x);
9923float2 __ovld __cnfn native_rsqrt(float2 x);
9924float3 __ovld __cnfn native_rsqrt(float3 x);
9925float4 __ovld __cnfn native_rsqrt(float4 x);
9926float8 __ovld __cnfn native_rsqrt(float8 x);
9927float16 __ovld __cnfn native_rsqrt(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009928
9929/**
9930 * Compute sine over an implementation-defined range.
9931 * The maximum error is implementation-defined.
9932 */
9933float __ovld __cnfn native_sin(float x);
9934float2 __ovld __cnfn native_sin(float2 x);
9935float3 __ovld __cnfn native_sin(float3 x);
9936float4 __ovld __cnfn native_sin(float4 x);
9937float8 __ovld __cnfn native_sin(float8 x);
9938float16 __ovld __cnfn native_sin(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009939
9940/**
9941 * Compute square root over an implementation-defined
9942 * range. The maximum error is implementation-defined.
9943 */
9944float __ovld __cnfn native_sqrt(float x);
9945float2 __ovld __cnfn native_sqrt(float2 x);
9946float3 __ovld __cnfn native_sqrt(float3 x);
9947float4 __ovld __cnfn native_sqrt(float4 x);
9948float8 __ovld __cnfn native_sqrt(float8 x);
9949float16 __ovld __cnfn native_sqrt(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009950
9951/**
9952 * Compute tangent over an implementation-defined range.
9953 * The maximum error is implementation-defined.
9954 */
9955float __ovld __cnfn native_tan(float x);
9956float2 __ovld __cnfn native_tan(float2 x);
9957float3 __ovld __cnfn native_tan(float3 x);
9958float4 __ovld __cnfn native_tan(float4 x);
9959float8 __ovld __cnfn native_tan(float8 x);
9960float16 __ovld __cnfn native_tan(float16 x);
Yaxun Liue8f49b92016-05-30 02:22:28 +00009961
9962// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
9963
9964/**
9965 * Returns | x |.
9966 */
9967uchar __ovld __cnfn abs(char x);
9968uchar __ovld __cnfn abs(uchar x);
9969uchar2 __ovld __cnfn abs(char2 x);
9970uchar2 __ovld __cnfn abs(uchar2 x);
9971uchar3 __ovld __cnfn abs(char3 x);
9972uchar3 __ovld __cnfn abs(uchar3 x);
9973uchar4 __ovld __cnfn abs(char4 x);
9974uchar4 __ovld __cnfn abs(uchar4 x);
9975uchar8 __ovld __cnfn abs(char8 x);
9976uchar8 __ovld __cnfn abs(uchar8 x);
9977uchar16 __ovld __cnfn abs(char16 x);
9978uchar16 __ovld __cnfn abs(uchar16 x);
9979ushort __ovld __cnfn abs(short x);
9980ushort __ovld __cnfn abs(ushort x);
9981ushort2 __ovld __cnfn abs(short2 x);
9982ushort2 __ovld __cnfn abs(ushort2 x);
9983ushort3 __ovld __cnfn abs(short3 x);
9984ushort3 __ovld __cnfn abs(ushort3 x);
9985ushort4 __ovld __cnfn abs(short4 x);
9986ushort4 __ovld __cnfn abs(ushort4 x);
9987ushort8 __ovld __cnfn abs(short8 x);
9988ushort8 __ovld __cnfn abs(ushort8 x);
9989ushort16 __ovld __cnfn abs(short16 x);
9990ushort16 __ovld __cnfn abs(ushort16 x);
9991uint __ovld __cnfn abs(int x);
9992uint __ovld __cnfn abs(uint x);
9993uint2 __ovld __cnfn abs(int2 x);
9994uint2 __ovld __cnfn abs(uint2 x);
9995uint3 __ovld __cnfn abs(int3 x);
9996uint3 __ovld __cnfn abs(uint3 x);
9997uint4 __ovld __cnfn abs(int4 x);
9998uint4 __ovld __cnfn abs(uint4 x);
9999uint8 __ovld __cnfn abs(int8 x);
10000uint8 __ovld __cnfn abs(uint8 x);
10001uint16 __ovld __cnfn abs(int16 x);
10002uint16 __ovld __cnfn abs(uint16 x);
10003ulong __ovld __cnfn abs(long x);
10004ulong __ovld __cnfn abs(ulong x);
10005ulong2 __ovld __cnfn abs(long2 x);
10006ulong2 __ovld __cnfn abs(ulong2 x);
10007ulong3 __ovld __cnfn abs(long3 x);
10008ulong3 __ovld __cnfn abs(ulong3 x);
10009ulong4 __ovld __cnfn abs(long4 x);
10010ulong4 __ovld __cnfn abs(ulong4 x);
10011ulong8 __ovld __cnfn abs(long8 x);
10012ulong8 __ovld __cnfn abs(ulong8 x);
10013ulong16 __ovld __cnfn abs(long16 x);
10014ulong16 __ovld __cnfn abs(ulong16 x);
10015
10016/**
10017 * Returns | x - y | without modulo overflow.
10018 */
10019uchar __ovld __cnfn abs_diff(char x, char y);
10020uchar __ovld __cnfn abs_diff(uchar x, uchar y);
10021uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
10022uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
10023uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
10024uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
10025uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
10026uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
10027uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
10028uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
10029uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
10030uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
10031ushort __ovld __cnfn abs_diff(short x, short y);
10032ushort __ovld __cnfn abs_diff(ushort x, ushort y);
10033ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
10034ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
10035ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
10036ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
10037ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
10038ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
10039ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
10040ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
10041ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
10042ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
10043uint __ovld __cnfn abs_diff(int x, int y);
10044uint __ovld __cnfn abs_diff(uint x, uint y);
10045uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
10046uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
10047uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
10048uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
10049uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
10050uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
10051uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
10052uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
10053uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
10054uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
10055ulong __ovld __cnfn abs_diff(long x, long y);
10056ulong __ovld __cnfn abs_diff(ulong x, ulong y);
10057ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
10058ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
10059ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
10060ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
10061ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
10062ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
10063ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
10064ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
10065ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
10066ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
10067
10068/**
10069 * Returns x + y and saturates the result.
10070 */
10071char __ovld __cnfn add_sat(char x, char y);
10072uchar __ovld __cnfn add_sat(uchar x, uchar y);
10073char2 __ovld __cnfn add_sat(char2 x, char2 y);
10074uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
10075char3 __ovld __cnfn add_sat(char3 x, char3 y);
10076uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
10077char4 __ovld __cnfn add_sat(char4 x, char4 y);
10078uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
10079char8 __ovld __cnfn add_sat(char8 x, char8 y);
10080uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
10081char16 __ovld __cnfn add_sat(char16 x, char16 y);
10082uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
10083short __ovld __cnfn add_sat(short x, short y);
10084ushort __ovld __cnfn add_sat(ushort x, ushort y);
10085short2 __ovld __cnfn add_sat(short2 x, short2 y);
10086ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
10087short3 __ovld __cnfn add_sat(short3 x, short3 y);
10088ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
10089short4 __ovld __cnfn add_sat(short4 x, short4 y);
10090ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
10091short8 __ovld __cnfn add_sat(short8 x, short8 y);
10092ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
10093short16 __ovld __cnfn add_sat(short16 x, short16 y);
10094ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
10095int __ovld __cnfn add_sat(int x, int y);
10096uint __ovld __cnfn add_sat(uint x, uint y);
10097int2 __ovld __cnfn add_sat(int2 x, int2 y);
10098uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
10099int3 __ovld __cnfn add_sat(int3 x, int3 y);
10100uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
10101int4 __ovld __cnfn add_sat(int4 x, int4 y);
10102uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
10103int8 __ovld __cnfn add_sat(int8 x, int8 y);
10104uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
10105int16 __ovld __cnfn add_sat(int16 x, int16 y);
10106uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
10107long __ovld __cnfn add_sat(long x, long y);
10108ulong __ovld __cnfn add_sat(ulong x, ulong y);
10109long2 __ovld __cnfn add_sat(long2 x, long2 y);
10110ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
10111long3 __ovld __cnfn add_sat(long3 x, long3 y);
10112ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
10113long4 __ovld __cnfn add_sat(long4 x, long4 y);
10114ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
10115long8 __ovld __cnfn add_sat(long8 x, long8 y);
10116ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
10117long16 __ovld __cnfn add_sat(long16 x, long16 y);
10118ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
10119
10120/**
10121 * Returns (x + y) >> 1. The intermediate sum does
10122 * not modulo overflow.
10123 */
10124char __ovld __cnfn hadd(char x, char y);
10125uchar __ovld __cnfn hadd(uchar x, uchar y);
10126char2 __ovld __cnfn hadd(char2 x, char2 y);
10127uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
10128char3 __ovld __cnfn hadd(char3 x, char3 y);
10129uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
10130char4 __ovld __cnfn hadd(char4 x, char4 y);
10131uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
10132char8 __ovld __cnfn hadd(char8 x, char8 y);
10133uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
10134char16 __ovld __cnfn hadd(char16 x, char16 y);
10135uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
10136short __ovld __cnfn hadd(short x, short y);
10137ushort __ovld __cnfn hadd(ushort x, ushort y);
10138short2 __ovld __cnfn hadd(short2 x, short2 y);
10139ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
10140short3 __ovld __cnfn hadd(short3 x, short3 y);
10141ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
10142short4 __ovld __cnfn hadd(short4 x, short4 y);
10143ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
10144short8 __ovld __cnfn hadd(short8 x, short8 y);
10145ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
10146short16 __ovld __cnfn hadd(short16 x, short16 y);
10147ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
10148int __ovld __cnfn hadd(int x, int y);
10149uint __ovld __cnfn hadd(uint x, uint y);
10150int2 __ovld __cnfn hadd(int2 x, int2 y);
10151uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
10152int3 __ovld __cnfn hadd(int3 x, int3 y);
10153uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
10154int4 __ovld __cnfn hadd(int4 x, int4 y);
10155uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
10156int8 __ovld __cnfn hadd(int8 x, int8 y);
10157uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
10158int16 __ovld __cnfn hadd(int16 x, int16 y);
10159uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
10160long __ovld __cnfn hadd(long x, long y);
10161ulong __ovld __cnfn hadd(ulong x, ulong y);
10162long2 __ovld __cnfn hadd(long2 x, long2 y);
10163ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
10164long3 __ovld __cnfn hadd(long3 x, long3 y);
10165ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
10166long4 __ovld __cnfn hadd(long4 x, long4 y);
10167ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
10168long8 __ovld __cnfn hadd(long8 x, long8 y);
10169ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
10170long16 __ovld __cnfn hadd(long16 x, long16 y);
10171ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
10172
10173/**
10174 * Returns (x + y + 1) >> 1. The intermediate sum
10175 * does not modulo overflow.
10176 */
10177char __ovld __cnfn rhadd(char x, char y);
10178uchar __ovld __cnfn rhadd(uchar x, uchar y);
10179char2 __ovld __cnfn rhadd(char2 x, char2 y);
10180uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
10181char3 __ovld __cnfn rhadd(char3 x, char3 y);
10182uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
10183char4 __ovld __cnfn rhadd(char4 x, char4 y);
10184uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
10185char8 __ovld __cnfn rhadd(char8 x, char8 y);
10186uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
10187char16 __ovld __cnfn rhadd(char16 x, char16 y);
10188uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
10189short __ovld __cnfn rhadd(short x, short y);
10190ushort __ovld __cnfn rhadd(ushort x, ushort y);
10191short2 __ovld __cnfn rhadd(short2 x, short2 y);
10192ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
10193short3 __ovld __cnfn rhadd(short3 x, short3 y);
10194ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
10195short4 __ovld __cnfn rhadd(short4 x, short4 y);
10196ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
10197short8 __ovld __cnfn rhadd(short8 x, short8 y);
10198ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
10199short16 __ovld __cnfn rhadd(short16 x, short16 y);
10200ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
10201int __ovld __cnfn rhadd(int x, int y);
10202uint __ovld __cnfn rhadd(uint x, uint y);
10203int2 __ovld __cnfn rhadd(int2 x, int2 y);
10204uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
10205int3 __ovld __cnfn rhadd(int3 x, int3 y);
10206uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
10207int4 __ovld __cnfn rhadd(int4 x, int4 y);
10208uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
10209int8 __ovld __cnfn rhadd(int8 x, int8 y);
10210uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
10211int16 __ovld __cnfn rhadd(int16 x, int16 y);
10212uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
10213long __ovld __cnfn rhadd(long x, long y);
10214ulong __ovld __cnfn rhadd(ulong x, ulong y);
10215long2 __ovld __cnfn rhadd(long2 x, long2 y);
10216ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
10217long3 __ovld __cnfn rhadd(long3 x, long3 y);
10218ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
10219long4 __ovld __cnfn rhadd(long4 x, long4 y);
10220ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
10221long8 __ovld __cnfn rhadd(long8 x, long8 y);
10222ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
10223long16 __ovld __cnfn rhadd(long16 x, long16 y);
10224ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
10225
10226/**
10227 * Returns min(max(x, minval), maxval).
10228 * Results are undefined if minval > maxval.
10229 */
10230char __ovld __cnfn clamp(char x, char minval, char maxval);
10231uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10232char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
10233uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
10234char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
10235uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
10236char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
10237uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
10238char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
10239uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
10240char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
10241uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
10242short __ovld __cnfn clamp(short x, short minval, short maxval);
10243ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10244short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
10245ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
10246short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
10247ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
10248short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
10249ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
10250short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
10251ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
10252short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
10253ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
10254int __ovld __cnfn clamp(int x, int minval, int maxval);
10255uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10256int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
10257uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
10258int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
10259uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
10260int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
10261uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
10262int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
10263uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
10264int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
10265uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
10266long __ovld __cnfn clamp(long x, long minval, long maxval);
10267ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10268long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
10269ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
10270long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
10271ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
10272long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
10273ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
10274long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
10275ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
10276long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
10277ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
10278char __ovld __cnfn clamp(char x, char minval, char maxval);
10279uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
10280char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
10281uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
10282char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
10283uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
10284char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
10285uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
10286char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
10287uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
10288char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
10289uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
10290short __ovld __cnfn clamp(short x, short minval, short maxval);
10291ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
10292short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
10293ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
10294short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
10295ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
10296short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
10297ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
10298short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
10299ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
10300short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
10301ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
10302int __ovld __cnfn clamp(int x, int minval, int maxval);
10303uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
10304int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
10305uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
10306int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
10307uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
10308int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
10309uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
10310int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
10311uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
10312int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
10313uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
10314long __ovld __cnfn clamp(long x, long minval, long maxval);
10315ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
10316long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
10317ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
10318long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
10319ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
10320long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
10321ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
10322long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
10323ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
10324long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
10325ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
10326
10327/**
10328 * Returns the number of leading 0-bits in x, starting
10329 * at the most significant bit position.
10330 */
10331char __ovld __cnfn clz(char x);
10332uchar __ovld __cnfn clz(uchar x);
10333char2 __ovld __cnfn clz(char2 x);
10334uchar2 __ovld __cnfn clz(uchar2 x);
10335char3 __ovld __cnfn clz(char3 x);
10336uchar3 __ovld __cnfn clz(uchar3 x);
10337char4 __ovld __cnfn clz(char4 x);
10338uchar4 __ovld __cnfn clz(uchar4 x);
10339char8 __ovld __cnfn clz(char8 x);
10340uchar8 __ovld __cnfn clz(uchar8 x);
10341char16 __ovld __cnfn clz(char16 x);
10342uchar16 __ovld __cnfn clz(uchar16 x);
10343short __ovld __cnfn clz(short x);
10344ushort __ovld __cnfn clz(ushort x);
10345short2 __ovld __cnfn clz(short2 x);
10346ushort2 __ovld __cnfn clz(ushort2 x);
10347short3 __ovld __cnfn clz(short3 x);
10348ushort3 __ovld __cnfn clz(ushort3 x);
10349short4 __ovld __cnfn clz(short4 x);
10350ushort4 __ovld __cnfn clz(ushort4 x);
10351short8 __ovld __cnfn clz(short8 x);
10352ushort8 __ovld __cnfn clz(ushort8 x);
10353short16 __ovld __cnfn clz(short16 x);
10354ushort16 __ovld __cnfn clz(ushort16 x);
10355int __ovld __cnfn clz(int x);
10356uint __ovld __cnfn clz(uint x);
10357int2 __ovld __cnfn clz(int2 x);
10358uint2 __ovld __cnfn clz(uint2 x);
10359int3 __ovld __cnfn clz(int3 x);
10360uint3 __ovld __cnfn clz(uint3 x);
10361int4 __ovld __cnfn clz(int4 x);
10362uint4 __ovld __cnfn clz(uint4 x);
10363int8 __ovld __cnfn clz(int8 x);
10364uint8 __ovld __cnfn clz(uint8 x);
10365int16 __ovld __cnfn clz(int16 x);
10366uint16 __ovld __cnfn clz(uint16 x);
10367long __ovld __cnfn clz(long x);
10368ulong __ovld __cnfn clz(ulong x);
10369long2 __ovld __cnfn clz(long2 x);
10370ulong2 __ovld __cnfn clz(ulong2 x);
10371long3 __ovld __cnfn clz(long3 x);
10372ulong3 __ovld __cnfn clz(ulong3 x);
10373long4 __ovld __cnfn clz(long4 x);
10374ulong4 __ovld __cnfn clz(ulong4 x);
10375long8 __ovld __cnfn clz(long8 x);
10376ulong8 __ovld __cnfn clz(ulong8 x);
10377long16 __ovld __cnfn clz(long16 x);
10378ulong16 __ovld __cnfn clz(ulong16 x);
10379
10380/**
10381 * Returns the count of trailing 0-bits in x. If x is 0,
10382 * returns the size in bits of the type of x or
10383 * component type of x, if x is a vector.
10384 */
10385#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
10386char __ovld ctz(char x);
10387uchar __ovld ctz(uchar x);
10388char2 __ovld ctz(char2 x);
10389uchar2 __ovld ctz(uchar2 x);
10390char3 __ovld ctz(char3 x);
10391uchar3 __ovld ctz(uchar3 x);
10392char4 __ovld ctz(char4 x);
10393uchar4 __ovld ctz(uchar4 x);
10394char8 __ovld ctz(char8 x);
10395uchar8 __ovld ctz(uchar8 x);
10396char16 __ovld ctz(char16 x);
10397uchar16 __ovld ctz(uchar16 x);
10398short __ovld ctz(short x);
10399ushort __ovld ctz(ushort x);
10400short2 __ovld ctz(short2 x);
10401ushort2 __ovld ctz(ushort2 x);
10402short3 __ovld ctz(short3 x);
10403ushort3 __ovld ctz(ushort3 x);
10404short4 __ovld ctz(short4 x);
10405ushort4 __ovld ctz(ushort4 x);
10406short8 __ovld ctz(short8 x);
10407ushort8 __ovld ctz(ushort8 x);
10408short16 __ovld ctz(short16 x);
10409ushort16 __ovld ctz(ushort16 x);
10410int __ovld ctz(int x);
10411uint __ovld ctz(uint x);
10412int2 __ovld ctz(int2 x);
10413uint2 __ovld ctz(uint2 x);
10414int3 __ovld ctz(int3 x);
10415uint3 __ovld ctz(uint3 x);
10416int4 __ovld ctz(int4 x);
10417uint4 __ovld ctz(uint4 x);
10418int8 __ovld ctz(int8 x);
10419uint8 __ovld ctz(uint8 x);
10420int16 __ovld ctz(int16 x);
10421uint16 __ovld ctz(uint16 x);
10422long __ovld ctz(long x);
10423ulong __ovld ctz(ulong x);
10424long2 __ovld ctz(long2 x);
10425ulong2 __ovld ctz(ulong2 x);
10426long3 __ovld ctz(long3 x);
10427ulong3 __ovld ctz(ulong3 x);
10428long4 __ovld ctz(long4 x);
10429ulong4 __ovld ctz(ulong4 x);
10430long8 __ovld ctz(long8 x);
10431ulong8 __ovld ctz(ulong8 x);
10432long16 __ovld ctz(long16 x);
10433ulong16 __ovld ctz(ulong16 x);
10434#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
10435
10436/**
10437 * Returns mul_hi(a, b) + c.
10438 */
10439char __ovld __cnfn mad_hi(char a, char b, char c);
10440uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
10441char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
10442uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
10443char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
10444uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
10445char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
10446uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
10447char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
10448uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
10449char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
10450uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
10451short __ovld __cnfn mad_hi(short a, short b, short c);
10452ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
10453short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
10454ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
10455short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
10456ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
10457short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
10458ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
10459short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
10460ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
10461short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
10462ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
10463int __ovld __cnfn mad_hi(int a, int b, int c);
10464uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
10465int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
10466uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
10467int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
10468uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
10469int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
10470uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
10471int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
10472uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
10473int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
10474uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
10475long __ovld __cnfn mad_hi(long a, long b, long c);
10476ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
10477long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
10478ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
10479long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
10480ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
10481long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
10482ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
10483long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
10484ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
10485long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
10486ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
10487
10488/**
10489 * Returns a * b + c and saturates the result.
10490 */
10491char __ovld __cnfn mad_sat(char a, char b, char c);
10492uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
10493char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
10494uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
10495char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
10496uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
10497char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
10498uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
10499char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
10500uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
10501char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
10502uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
10503short __ovld __cnfn mad_sat(short a, short b, short c);
10504ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
10505short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
10506ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
10507short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
10508ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
10509short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
10510ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
10511short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
10512ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
10513short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
10514ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
10515int __ovld __cnfn mad_sat(int a, int b, int c);
10516uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
10517int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
10518uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
10519int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
10520uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
10521int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
10522uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
10523int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
10524uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
10525int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
10526uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
10527long __ovld __cnfn mad_sat(long a, long b, long c);
10528ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
10529long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
10530ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
10531long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
10532ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
10533long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
10534ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
10535long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
10536ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
10537long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
10538ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
10539
10540/**
10541 * Returns y if x < y, otherwise it returns x.
10542 */
10543char __ovld __cnfn max(char x, char y);
10544uchar __ovld __cnfn max(uchar x, uchar y);
10545char2 __ovld __cnfn max(char2 x, char2 y);
10546uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
10547char3 __ovld __cnfn max(char3 x, char3 y);
10548uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
10549char4 __ovld __cnfn max(char4 x, char4 y);
10550uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
10551char8 __ovld __cnfn max(char8 x, char8 y);
10552uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
10553char16 __ovld __cnfn max(char16 x, char16 y);
10554uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
10555short __ovld __cnfn max(short x, short y);
10556ushort __ovld __cnfn max(ushort x, ushort y);
10557short2 __ovld __cnfn max(short2 x, short2 y);
10558ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
10559short3 __ovld __cnfn max(short3 x, short3 y);
10560ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
10561short4 __ovld __cnfn max(short4 x, short4 y);
10562ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
10563short8 __ovld __cnfn max(short8 x, short8 y);
10564ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
10565short16 __ovld __cnfn max(short16 x, short16 y);
10566ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
10567int __ovld __cnfn max(int x, int y);
10568uint __ovld __cnfn max(uint x, uint y);
10569int2 __ovld __cnfn max(int2 x, int2 y);
10570uint2 __ovld __cnfn max(uint2 x, uint2 y);
10571int3 __ovld __cnfn max(int3 x, int3 y);
10572uint3 __ovld __cnfn max(uint3 x, uint3 y);
10573int4 __ovld __cnfn max(int4 x, int4 y);
10574uint4 __ovld __cnfn max(uint4 x, uint4 y);
10575int8 __ovld __cnfn max(int8 x, int8 y);
10576uint8 __ovld __cnfn max(uint8 x, uint8 y);
10577int16 __ovld __cnfn max(int16 x, int16 y);
10578uint16 __ovld __cnfn max(uint16 x, uint16 y);
10579long __ovld __cnfn max(long x, long y);
10580ulong __ovld __cnfn max(ulong x, ulong y);
10581long2 __ovld __cnfn max(long2 x, long2 y);
10582ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
10583long3 __ovld __cnfn max(long3 x, long3 y);
10584ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
10585long4 __ovld __cnfn max(long4 x, long4 y);
10586ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
10587long8 __ovld __cnfn max(long8 x, long8 y);
10588ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
10589long16 __ovld __cnfn max(long16 x, long16 y);
10590ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
10591char __ovld __cnfn max(char x, char y);
10592uchar __ovld __cnfn max(uchar x, uchar y);
10593char2 __ovld __cnfn max(char2 x, char y);
10594uchar2 __ovld __cnfn max(uchar2 x, uchar y);
10595char3 __ovld __cnfn max(char3 x, char y);
10596uchar3 __ovld __cnfn max(uchar3 x, uchar y);
10597char4 __ovld __cnfn max(char4 x, char y);
10598uchar4 __ovld __cnfn max(uchar4 x, uchar y);
10599char8 __ovld __cnfn max(char8 x, char y);
10600uchar8 __ovld __cnfn max(uchar8 x, uchar y);
10601char16 __ovld __cnfn max(char16 x, char y);
10602uchar16 __ovld __cnfn max(uchar16 x, uchar y);
10603short __ovld __cnfn max(short x, short y);
10604ushort __ovld __cnfn max(ushort x, ushort y);
10605short2 __ovld __cnfn max(short2 x, short y);
10606ushort2 __ovld __cnfn max(ushort2 x, ushort y);
10607short3 __ovld __cnfn max(short3 x, short y);
10608ushort3 __ovld __cnfn max(ushort3 x, ushort y);
10609short4 __ovld __cnfn max(short4 x, short y);
10610ushort4 __ovld __cnfn max(ushort4 x, ushort y);
10611short8 __ovld __cnfn max(short8 x, short y);
10612ushort8 __ovld __cnfn max(ushort8 x, ushort y);
10613short16 __ovld __cnfn max(short16 x, short y);
10614ushort16 __ovld __cnfn max(ushort16 x, ushort y);
10615int __ovld __cnfn max(int x, int y);
10616uint __ovld __cnfn max(uint x, uint y);
10617int2 __ovld __cnfn max(int2 x, int y);
10618uint2 __ovld __cnfn max(uint2 x, uint y);
10619int3 __ovld __cnfn max(int3 x, int y);
10620uint3 __ovld __cnfn max(uint3 x, uint y);
10621int4 __ovld __cnfn max(int4 x, int y);
10622uint4 __ovld __cnfn max(uint4 x, uint y);
10623int8 __ovld __cnfn max(int8 x, int y);
10624uint8 __ovld __cnfn max(uint8 x, uint y);
10625int16 __ovld __cnfn max(int16 x, int y);
10626uint16 __ovld __cnfn max(uint16 x, uint y);
10627long __ovld __cnfn max(long x, long y);
10628ulong __ovld __cnfn max(ulong x, ulong y);
10629long2 __ovld __cnfn max(long2 x, long y);
10630ulong2 __ovld __cnfn max(ulong2 x, ulong y);
10631long3 __ovld __cnfn max(long3 x, long y);
10632ulong3 __ovld __cnfn max(ulong3 x, ulong y);
10633long4 __ovld __cnfn max(long4 x, long y);
10634ulong4 __ovld __cnfn max(ulong4 x, ulong y);
10635long8 __ovld __cnfn max(long8 x, long y);
10636ulong8 __ovld __cnfn max(ulong8 x, ulong y);
10637long16 __ovld __cnfn max(long16 x, long y);
10638ulong16 __ovld __cnfn max(ulong16 x, ulong y);
10639
10640/**
10641 * Returns y if y < x, otherwise it returns x.
10642 */
10643char __ovld __cnfn min(char x, char y);
10644uchar __ovld __cnfn min(uchar x, uchar y);
10645char2 __ovld __cnfn min(char2 x, char2 y);
10646uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
10647char3 __ovld __cnfn min(char3 x, char3 y);
10648uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
10649char4 __ovld __cnfn min(char4 x, char4 y);
10650uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
10651char8 __ovld __cnfn min(char8 x, char8 y);
10652uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
10653char16 __ovld __cnfn min(char16 x, char16 y);
10654uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
10655short __ovld __cnfn min(short x, short y);
10656ushort __ovld __cnfn min(ushort x, ushort y);
10657short2 __ovld __cnfn min(short2 x, short2 y);
10658ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
10659short3 __ovld __cnfn min(short3 x, short3 y);
10660ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
10661short4 __ovld __cnfn min(short4 x, short4 y);
10662ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
10663short8 __ovld __cnfn min(short8 x, short8 y);
10664ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
10665short16 __ovld __cnfn min(short16 x, short16 y);
10666ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
10667int __ovld __cnfn min(int x, int y);
10668uint __ovld __cnfn min(uint x, uint y);
10669int2 __ovld __cnfn min(int2 x, int2 y);
10670uint2 __ovld __cnfn min(uint2 x, uint2 y);
10671int3 __ovld __cnfn min(int3 x, int3 y);
10672uint3 __ovld __cnfn min(uint3 x, uint3 y);
10673int4 __ovld __cnfn min(int4 x, int4 y);
10674uint4 __ovld __cnfn min(uint4 x, uint4 y);
10675int8 __ovld __cnfn min(int8 x, int8 y);
10676uint8 __ovld __cnfn min(uint8 x, uint8 y);
10677int16 __ovld __cnfn min(int16 x, int16 y);
10678uint16 __ovld __cnfn min(uint16 x, uint16 y);
10679long __ovld __cnfn min(long x, long y);
10680ulong __ovld __cnfn min(ulong x, ulong y);
10681long2 __ovld __cnfn min(long2 x, long2 y);
10682ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
10683long3 __ovld __cnfn min(long3 x, long3 y);
10684ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
10685long4 __ovld __cnfn min(long4 x, long4 y);
10686ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
10687long8 __ovld __cnfn min(long8 x, long8 y);
10688ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
10689long16 __ovld __cnfn min(long16 x, long16 y);
10690ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
10691char __ovld __cnfn min(char x, char y);
10692uchar __ovld __cnfn min(uchar x, uchar y);
10693char2 __ovld __cnfn min(char2 x, char y);
10694uchar2 __ovld __cnfn min(uchar2 x, uchar y);
10695char3 __ovld __cnfn min(char3 x, char y);
10696uchar3 __ovld __cnfn min(uchar3 x, uchar y);
10697char4 __ovld __cnfn min(char4 x, char y);
10698uchar4 __ovld __cnfn min(uchar4 x, uchar y);
10699char8 __ovld __cnfn min(char8 x, char y);
10700uchar8 __ovld __cnfn min(uchar8 x, uchar y);
10701char16 __ovld __cnfn min(char16 x, char y);
10702uchar16 __ovld __cnfn min(uchar16 x, uchar y);
10703short __ovld __cnfn min(short x, short y);
10704ushort __ovld __cnfn min(ushort x, ushort y);
10705short2 __ovld __cnfn min(short2 x, short y);
10706ushort2 __ovld __cnfn min(ushort2 x, ushort y);
10707short3 __ovld __cnfn min(short3 x, short y);
10708ushort3 __ovld __cnfn min(ushort3 x, ushort y);
10709short4 __ovld __cnfn min(short4 x, short y);
10710ushort4 __ovld __cnfn min(ushort4 x, ushort y);
10711short8 __ovld __cnfn min(short8 x, short y);
10712ushort8 __ovld __cnfn min(ushort8 x, ushort y);
10713short16 __ovld __cnfn min(short16 x, short y);
10714ushort16 __ovld __cnfn min(ushort16 x, ushort y);
10715int __ovld __cnfn min(int x, int y);
10716uint __ovld __cnfn min(uint x, uint y);
10717int2 __ovld __cnfn min(int2 x, int y);
10718uint2 __ovld __cnfn min(uint2 x, uint y);
10719int3 __ovld __cnfn min(int3 x, int y);
10720uint3 __ovld __cnfn min(uint3 x, uint y);
10721int4 __ovld __cnfn min(int4 x, int y);
10722uint4 __ovld __cnfn min(uint4 x, uint y);
10723int8 __ovld __cnfn min(int8 x, int y);
10724uint8 __ovld __cnfn min(uint8 x, uint y);
10725int16 __ovld __cnfn min(int16 x, int y);
10726uint16 __ovld __cnfn min(uint16 x, uint y);
10727long __ovld __cnfn min(long x, long y);
10728ulong __ovld __cnfn min(ulong x, ulong y);
10729long2 __ovld __cnfn min(long2 x, long y);
10730ulong2 __ovld __cnfn min(ulong2 x, ulong y);
10731long3 __ovld __cnfn min(long3 x, long y);
10732ulong3 __ovld __cnfn min(ulong3 x, ulong y);
10733long4 __ovld __cnfn min(long4 x, long y);
10734ulong4 __ovld __cnfn min(ulong4 x, ulong y);
10735long8 __ovld __cnfn min(long8 x, long y);
10736ulong8 __ovld __cnfn min(ulong8 x, ulong y);
10737long16 __ovld __cnfn min(long16 x, long y);
10738ulong16 __ovld __cnfn min(ulong16 x, ulong y);
10739
10740/**
10741 * Computes x * y and returns the high half of the
10742 * product of x and y.
10743 */
10744char __ovld __cnfn mul_hi(char x, char y);
10745uchar __ovld __cnfn mul_hi(uchar x, uchar y);
10746char2 __ovld __cnfn mul_hi(char2 x, char2 y);
10747uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
10748char3 __ovld __cnfn mul_hi(char3 x, char3 y);
10749uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
10750char4 __ovld __cnfn mul_hi(char4 x, char4 y);
10751uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
10752char8 __ovld __cnfn mul_hi(char8 x, char8 y);
10753uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
10754char16 __ovld __cnfn mul_hi(char16 x, char16 y);
10755uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
10756short __ovld __cnfn mul_hi(short x, short y);
10757ushort __ovld __cnfn mul_hi(ushort x, ushort y);
10758short2 __ovld __cnfn mul_hi(short2 x, short2 y);
10759ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
10760short3 __ovld __cnfn mul_hi(short3 x, short3 y);
10761ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
10762short4 __ovld __cnfn mul_hi(short4 x, short4 y);
10763ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
10764short8 __ovld __cnfn mul_hi(short8 x, short8 y);
10765ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
10766short16 __ovld __cnfn mul_hi(short16 x, short16 y);
10767ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
10768int __ovld __cnfn mul_hi(int x, int y);
10769uint __ovld __cnfn mul_hi(uint x, uint y);
10770int2 __ovld __cnfn mul_hi(int2 x, int2 y);
10771uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
10772int3 __ovld __cnfn mul_hi(int3 x, int3 y);
10773uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
10774int4 __ovld __cnfn mul_hi(int4 x, int4 y);
10775uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
10776int8 __ovld __cnfn mul_hi(int8 x, int8 y);
10777uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
10778int16 __ovld __cnfn mul_hi(int16 x, int16 y);
10779uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
10780long __ovld __cnfn mul_hi(long x, long y);
10781ulong __ovld __cnfn mul_hi(ulong x, ulong y);
10782long2 __ovld __cnfn mul_hi(long2 x, long2 y);
10783ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
10784long3 __ovld __cnfn mul_hi(long3 x, long3 y);
10785ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
10786long4 __ovld __cnfn mul_hi(long4 x, long4 y);
10787ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
10788long8 __ovld __cnfn mul_hi(long8 x, long8 y);
10789ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
10790long16 __ovld __cnfn mul_hi(long16 x, long16 y);
10791ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
10792
10793/**
10794 * For each element in v, the bits are shifted left by
10795 * the number of bits given by the corresponding
10796 * element in i (subject to usual shift modulo rules
10797 * described in section 6.3). Bits shifted off the left
10798 * side of the element are shifted back in from the
10799 * right.
10800 */
10801char __ovld __cnfn rotate(char v, char i);
10802uchar __ovld __cnfn rotate(uchar v, uchar i);
10803char2 __ovld __cnfn rotate(char2 v, char2 i);
10804uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
10805char3 __ovld __cnfn rotate(char3 v, char3 i);
10806uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
10807char4 __ovld __cnfn rotate(char4 v, char4 i);
10808uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
10809char8 __ovld __cnfn rotate(char8 v, char8 i);
10810uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
10811char16 __ovld __cnfn rotate(char16 v, char16 i);
10812uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
10813short __ovld __cnfn rotate(short v, short i);
10814ushort __ovld __cnfn rotate(ushort v, ushort i);
10815short2 __ovld __cnfn rotate(short2 v, short2 i);
10816ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
10817short3 __ovld __cnfn rotate(short3 v, short3 i);
10818ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
10819short4 __ovld __cnfn rotate(short4 v, short4 i);
10820ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
10821short8 __ovld __cnfn rotate(short8 v, short8 i);
10822ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
10823short16 __ovld __cnfn rotate(short16 v, short16 i);
10824ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
10825int __ovld __cnfn rotate(int v, int i);
10826uint __ovld __cnfn rotate(uint v, uint i);
10827int2 __ovld __cnfn rotate(int2 v, int2 i);
10828uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
10829int3 __ovld __cnfn rotate(int3 v, int3 i);
10830uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
10831int4 __ovld __cnfn rotate(int4 v, int4 i);
10832uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
10833int8 __ovld __cnfn rotate(int8 v, int8 i);
10834uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
10835int16 __ovld __cnfn rotate(int16 v, int16 i);
10836uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
10837long __ovld __cnfn rotate(long v, long i);
10838ulong __ovld __cnfn rotate(ulong v, ulong i);
10839long2 __ovld __cnfn rotate(long2 v, long2 i);
10840ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
10841long3 __ovld __cnfn rotate(long3 v, long3 i);
10842ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
10843long4 __ovld __cnfn rotate(long4 v, long4 i);
10844ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
10845long8 __ovld __cnfn rotate(long8 v, long8 i);
10846ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
10847long16 __ovld __cnfn rotate(long16 v, long16 i);
10848ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
10849
10850/**
10851 * Returns x - y and saturates the result.
10852 */
10853char __ovld __cnfn sub_sat(char x, char y);
10854uchar __ovld __cnfn sub_sat(uchar x, uchar y);
10855char2 __ovld __cnfn sub_sat(char2 x, char2 y);
10856uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
10857char3 __ovld __cnfn sub_sat(char3 x, char3 y);
10858uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
10859char4 __ovld __cnfn sub_sat(char4 x, char4 y);
10860uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
10861char8 __ovld __cnfn sub_sat(char8 x, char8 y);
10862uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
10863char16 __ovld __cnfn sub_sat(char16 x, char16 y);
10864uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
10865short __ovld __cnfn sub_sat(short x, short y);
10866ushort __ovld __cnfn sub_sat(ushort x, ushort y);
10867short2 __ovld __cnfn sub_sat(short2 x, short2 y);
10868ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
10869short3 __ovld __cnfn sub_sat(short3 x, short3 y);
10870ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
10871short4 __ovld __cnfn sub_sat(short4 x, short4 y);
10872ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
10873short8 __ovld __cnfn sub_sat(short8 x, short8 y);
10874ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
10875short16 __ovld __cnfn sub_sat(short16 x, short16 y);
10876ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
10877int __ovld __cnfn sub_sat(int x, int y);
10878uint __ovld __cnfn sub_sat(uint x, uint y);
10879int2 __ovld __cnfn sub_sat(int2 x, int2 y);
10880uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
10881int3 __ovld __cnfn sub_sat(int3 x, int3 y);
10882uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
10883int4 __ovld __cnfn sub_sat(int4 x, int4 y);
10884uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
10885int8 __ovld __cnfn sub_sat(int8 x, int8 y);
10886uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
10887int16 __ovld __cnfn sub_sat(int16 x, int16 y);
10888uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
10889long __ovld __cnfn sub_sat(long x, long y);
10890ulong __ovld __cnfn sub_sat(ulong x, ulong y);
10891long2 __ovld __cnfn sub_sat(long2 x, long2 y);
10892ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
10893long3 __ovld __cnfn sub_sat(long3 x, long3 y);
10894ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
10895long4 __ovld __cnfn sub_sat(long4 x, long4 y);
10896ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
10897long8 __ovld __cnfn sub_sat(long8 x, long8 y);
10898ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
10899long16 __ovld __cnfn sub_sat(long16 x, long16 y);
10900ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
10901
10902/**
10903 * result[i] = ((short)hi[i] << 8) | lo[i]
10904 * result[i] = ((ushort)hi[i] << 8) | lo[i]
10905 */
10906short __ovld __cnfn upsample(char hi, uchar lo);
10907ushort __ovld __cnfn upsample(uchar hi, uchar lo);
10908short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
10909short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
10910short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
10911short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
10912short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
10913ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
10914ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
10915ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
10916ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
10917ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
10918
10919/**
10920 * result[i] = ((int)hi[i] << 16) | lo[i]
10921 * result[i] = ((uint)hi[i] << 16) | lo[i]
10922 */
10923int __ovld __cnfn upsample(short hi, ushort lo);
10924uint __ovld __cnfn upsample(ushort hi, ushort lo);
10925int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
10926int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
10927int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
10928int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
10929int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
10930uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
10931uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
10932uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
10933uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
10934uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
10935/**
10936 * result[i] = ((long)hi[i] << 32) | lo[i]
10937 * result[i] = ((ulong)hi[i] << 32) | lo[i]
10938 */
10939long __ovld __cnfn upsample(int hi, uint lo);
10940ulong __ovld __cnfn upsample(uint hi, uint lo);
10941long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
10942long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
10943long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
10944long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
10945long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
10946ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
10947ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
10948ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
10949ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
10950ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
10951
10952/*
10953 * popcount(x): returns the number of set bit in x
10954 */
10955char __ovld __cnfn popcount(char x);
10956uchar __ovld __cnfn popcount(uchar x);
10957char2 __ovld __cnfn popcount(char2 x);
10958uchar2 __ovld __cnfn popcount(uchar2 x);
10959char3 __ovld __cnfn popcount(char3 x);
10960uchar3 __ovld __cnfn popcount(uchar3 x);
10961char4 __ovld __cnfn popcount(char4 x);
10962uchar4 __ovld __cnfn popcount(uchar4 x);
10963char8 __ovld __cnfn popcount(char8 x);
10964uchar8 __ovld __cnfn popcount(uchar8 x);
10965char16 __ovld __cnfn popcount(char16 x);
10966uchar16 __ovld __cnfn popcount(uchar16 x);
10967short __ovld __cnfn popcount(short x);
10968ushort __ovld __cnfn popcount(ushort x);
10969short2 __ovld __cnfn popcount(short2 x);
10970ushort2 __ovld __cnfn popcount(ushort2 x);
10971short3 __ovld __cnfn popcount(short3 x);
10972ushort3 __ovld __cnfn popcount(ushort3 x);
10973short4 __ovld __cnfn popcount(short4 x);
10974ushort4 __ovld __cnfn popcount(ushort4 x);
10975short8 __ovld __cnfn popcount(short8 x);
10976ushort8 __ovld __cnfn popcount(ushort8 x);
10977short16 __ovld __cnfn popcount(short16 x);
10978ushort16 __ovld __cnfn popcount(ushort16 x);
10979int __ovld __cnfn popcount(int x);
10980uint __ovld __cnfn popcount(uint x);
10981int2 __ovld __cnfn popcount(int2 x);
10982uint2 __ovld __cnfn popcount(uint2 x);
10983int3 __ovld __cnfn popcount(int3 x);
10984uint3 __ovld __cnfn popcount(uint3 x);
10985int4 __ovld __cnfn popcount(int4 x);
10986uint4 __ovld __cnfn popcount(uint4 x);
10987int8 __ovld __cnfn popcount(int8 x);
10988uint8 __ovld __cnfn popcount(uint8 x);
10989int16 __ovld __cnfn popcount(int16 x);
10990uint16 __ovld __cnfn popcount(uint16 x);
10991long __ovld __cnfn popcount(long x);
10992ulong __ovld __cnfn popcount(ulong x);
10993long2 __ovld __cnfn popcount(long2 x);
10994ulong2 __ovld __cnfn popcount(ulong2 x);
10995long3 __ovld __cnfn popcount(long3 x);
10996ulong3 __ovld __cnfn popcount(ulong3 x);
10997long4 __ovld __cnfn popcount(long4 x);
10998ulong4 __ovld __cnfn popcount(ulong4 x);
10999long8 __ovld __cnfn popcount(long8 x);
11000ulong8 __ovld __cnfn popcount(ulong8 x);
11001long16 __ovld __cnfn popcount(long16 x);
11002ulong16 __ovld __cnfn popcount(ulong16 x);
11003
11004/**
11005 * Multiply two 24-bit integer values x and y and add
11006 * the 32-bit integer result to the 32-bit integer z.
11007 * Refer to definition of mul24 to see how the 24-bit
11008 * integer multiplication is performed.
11009 */
11010int __ovld __cnfn mad24(int x, int y, int z);
11011uint __ovld __cnfn mad24(uint x, uint y, uint z);
11012int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
11013uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
11014int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
11015uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
11016int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
11017uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
11018int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
11019uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
11020int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
11021uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
11022
11023/**
11024 * Multiply two 24-bit integer values x and y. x and y
11025 * are 32-bit integers but only the low 24-bits are used
11026 * to perform the multiplication. mul24 should only
11027 * be used when values in x and y are in the range [-
11028 * 2^23, 2^23-1] if x and y are signed integers and in the
11029 * range [0, 2^24-1] if x and y are unsigned integers. If
11030 * x and y are not in this range, the multiplication
11031 * result is implementation-defined.
11032 */
11033int __ovld __cnfn mul24(int x, int y);
11034uint __ovld __cnfn mul24(uint x, uint y);
11035int2 __ovld __cnfn mul24(int2 x, int2 y);
11036uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
11037int3 __ovld __cnfn mul24(int3 x, int3 y);
11038uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
11039int4 __ovld __cnfn mul24(int4 x, int4 y);
11040uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
11041int8 __ovld __cnfn mul24(int8 x, int8 y);
11042uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
11043int16 __ovld __cnfn mul24(int16 x, int16 y);
11044uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
11045
11046// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
11047
11048/**
11049 * Returns fmin(fmax(x, minval), maxval).
11050 * Results are undefined if minval > maxval.
11051 */
11052float __ovld __cnfn clamp(float x, float minval, float maxval);
11053float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
11054float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
11055float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
11056float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
11057float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
11058float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
11059float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
11060float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
11061float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
11062float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
11063#ifdef cl_khr_fp64
11064double __ovld __cnfn clamp(double x, double minval, double maxval);
11065double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
11066double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
11067double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
11068double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
11069double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
11070double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
11071double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
11072double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
11073double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
11074double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
11075#endif //cl_khr_fp64
11076#ifdef cl_khr_fp16
11077half __ovld __cnfn clamp(half x, half minval, half maxval);
11078half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
11079half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
11080half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
11081half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
11082half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
11083half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
11084half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
11085half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
11086half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
11087half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
11088#endif //cl_khr_fp16
11089
11090/**
11091 * Converts radians to degrees, i.e. (180 / PI) *
11092 * radians.
11093 */
11094float __ovld __cnfn degrees(float radians);
11095float2 __ovld __cnfn degrees(float2 radians);
11096float3 __ovld __cnfn degrees(float3 radians);
11097float4 __ovld __cnfn degrees(float4 radians);
11098float8 __ovld __cnfn degrees(float8 radians);
11099float16 __ovld __cnfn degrees(float16 radians);
11100#ifdef cl_khr_fp64
11101double __ovld __cnfn degrees(double radians);
11102double2 __ovld __cnfn degrees(double2 radians);
11103double3 __ovld __cnfn degrees(double3 radians);
11104double4 __ovld __cnfn degrees(double4 radians);
11105double8 __ovld __cnfn degrees(double8 radians);
11106double16 __ovld __cnfn degrees(double16 radians);
11107#endif //cl_khr_fp64
11108#ifdef cl_khr_fp16
11109half __ovld __cnfn degrees(half radians);
11110half2 __ovld __cnfn degrees(half2 radians);
11111half3 __ovld __cnfn degrees(half3 radians);
11112half4 __ovld __cnfn degrees(half4 radians);
11113half8 __ovld __cnfn degrees(half8 radians);
11114half16 __ovld __cnfn degrees(half16 radians);
11115#endif //cl_khr_fp16
11116
11117/**
11118 * Returns y if x < y, otherwise it returns x. If x and y
11119 * are infinite or NaN, the return values are undefined.
11120 */
11121float __ovld __cnfn max(float x, float y);
11122float2 __ovld __cnfn max(float2 x, float2 y);
11123float3 __ovld __cnfn max(float3 x, float3 y);
11124float4 __ovld __cnfn max(float4 x, float4 y);
11125float8 __ovld __cnfn max(float8 x, float8 y);
11126float16 __ovld __cnfn max(float16 x, float16 y);
11127float2 __ovld __cnfn max(float2 x, float y);
11128float3 __ovld __cnfn max(float3 x, float y);
11129float4 __ovld __cnfn max(float4 x, float y);
11130float8 __ovld __cnfn max(float8 x, float y);
11131float16 __ovld __cnfn max(float16 x, float y);
11132#ifdef cl_khr_fp64
11133double __ovld __cnfn max(double x, double y);
11134double2 __ovld __cnfn max(double2 x, double2 y);
11135double3 __ovld __cnfn max(double3 x, double3 y);
11136double4 __ovld __cnfn max(double4 x, double4 y);
11137double8 __ovld __cnfn max(double8 x, double8 y);
11138double16 __ovld __cnfn max(double16 x, double16 y);
11139double2 __ovld __cnfn max(double2 x, double y);
11140double3 __ovld __cnfn max(double3 x, double y);
11141double4 __ovld __cnfn max(double4 x, double y);
11142double8 __ovld __cnfn max(double8 x, double y);
11143double16 __ovld __cnfn max(double16 x, double y);
11144#endif //cl_khr_fp64
11145#ifdef cl_khr_fp16
11146half __ovld __cnfn max(half x, half y);
11147half2 __ovld __cnfn max(half2 x, half2 y);
11148half3 __ovld __cnfn max(half3 x, half3 y);
11149half4 __ovld __cnfn max(half4 x, half4 y);
11150half8 __ovld __cnfn max(half8 x, half8 y);
11151half16 __ovld __cnfn max(half16 x, half16 y);
11152half2 __ovld __cnfn max(half2 x, half y);
11153half3 __ovld __cnfn max(half3 x, half y);
11154half4 __ovld __cnfn max(half4 x, half y);
11155half8 __ovld __cnfn max(half8 x, half y);
11156half16 __ovld __cnfn max(half16 x, half y);
11157#endif //cl_khr_fp16
11158
11159/**
11160 * Returns y if y < x, otherwise it returns x. If x and y
11161 * are infinite or NaN, the return values are undefined.
11162 */
11163float __ovld __cnfn min(float x, float y);
11164float2 __ovld __cnfn min(float2 x, float2 y);
11165float3 __ovld __cnfn min(float3 x, float3 y);
11166float4 __ovld __cnfn min(float4 x, float4 y);
11167float8 __ovld __cnfn min(float8 x, float8 y);
11168float16 __ovld __cnfn min(float16 x, float16 y);
11169float2 __ovld __cnfn min(float2 x, float y);
11170float3 __ovld __cnfn min(float3 x, float y);
11171float4 __ovld __cnfn min(float4 x, float y);
11172float8 __ovld __cnfn min(float8 x, float y);
11173float16 __ovld __cnfn min(float16 x, float y);
11174#ifdef cl_khr_fp64
11175double __ovld __cnfn min(double x, double y);
11176double2 __ovld __cnfn min(double2 x, double2 y);
11177double3 __ovld __cnfn min(double3 x, double3 y);
11178double4 __ovld __cnfn min(double4 x, double4 y);
11179double8 __ovld __cnfn min(double8 x, double8 y);
11180double16 __ovld __cnfn min(double16 x, double16 y);
11181double2 __ovld __cnfn min(double2 x, double y);
11182double3 __ovld __cnfn min(double3 x, double y);
11183double4 __ovld __cnfn min(double4 x, double y);
11184double8 __ovld __cnfn min(double8 x, double y);
11185double16 __ovld __cnfn min(double16 x, double y);
11186#endif //cl_khr_fp64
11187#ifdef cl_khr_fp16
11188half __ovld __cnfn min(half x, half y);
11189half2 __ovld __cnfn min(half2 x, half2 y);
11190half3 __ovld __cnfn min(half3 x, half3 y);
11191half4 __ovld __cnfn min(half4 x, half4 y);
11192half8 __ovld __cnfn min(half8 x, half8 y);
11193half16 __ovld __cnfn min(half16 x, half16 y);
11194half2 __ovld __cnfn min(half2 x, half y);
11195half3 __ovld __cnfn min(half3 x, half y);
11196half4 __ovld __cnfn min(half4 x, half y);
11197half8 __ovld __cnfn min(half8 x, half y);
11198half16 __ovld __cnfn min(half16 x, half y);
11199#endif //cl_khr_fp16
11200
11201/**
11202 * Returns the linear blend of x & y implemented as:
11203 * x + (y - x) * a
11204 * a must be a value in the range 0.0 ... 1.0. If a is not
11205 * in the range 0.0 ... 1.0, the return values are
11206 * undefined.
11207 */
11208float __ovld __cnfn mix(float x, float y, float a);
11209float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
11210float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
11211float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
11212float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
11213float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
11214float2 __ovld __cnfn mix(float2 x, float2 y, float a);
11215float3 __ovld __cnfn mix(float3 x, float3 y, float a);
11216float4 __ovld __cnfn mix(float4 x, float4 y, float a);
11217float8 __ovld __cnfn mix(float8 x, float8 y, float a);
11218float16 __ovld __cnfn mix(float16 x, float16 y, float a);
11219#ifdef cl_khr_fp64
11220double __ovld __cnfn mix(double x, double y, double a);
11221double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
11222double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
11223double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
11224double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
11225double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
11226double2 __ovld __cnfn mix(double2 x, double2 y, double a);
11227double3 __ovld __cnfn mix(double3 x, double3 y, double a);
11228double4 __ovld __cnfn mix(double4 x, double4 y, double a);
11229double8 __ovld __cnfn mix(double8 x, double8 y, double a);
11230double16 __ovld __cnfn mix(double16 x, double16 y, double a);
11231#endif //cl_khr_fp64
11232#ifdef cl_khr_fp16
11233half __ovld __cnfn mix(half x, half y, half a);
11234half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
11235half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
11236half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
11237half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
11238half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
11239half2 __ovld __cnfn mix(half2 x, half2 y, half a);
11240half3 __ovld __cnfn mix(half3 x, half3 y, half a);
11241half4 __ovld __cnfn mix(half4 x, half4 y, half a);
11242half8 __ovld __cnfn mix(half8 x, half8 y, half a);
11243half16 __ovld __cnfn mix(half16 x, half16 y, half a);
11244#endif //cl_khr_fp16
11245
11246/**
11247 * Converts degrees to radians, i.e. (PI / 180) *
11248 * degrees.
11249 */
11250float __ovld __cnfn radians(float degrees);
11251float2 __ovld __cnfn radians(float2 degrees);
11252float3 __ovld __cnfn radians(float3 degrees);
11253float4 __ovld __cnfn radians(float4 degrees);
11254float8 __ovld __cnfn radians(float8 degrees);
11255float16 __ovld __cnfn radians(float16 degrees);
11256#ifdef cl_khr_fp64
11257double __ovld __cnfn radians(double degrees);
11258double2 __ovld __cnfn radians(double2 degrees);
11259double3 __ovld __cnfn radians(double3 degrees);
11260double4 __ovld __cnfn radians(double4 degrees);
11261double8 __ovld __cnfn radians(double8 degrees);
11262double16 __ovld __cnfn radians(double16 degrees);
11263#endif //cl_khr_fp64
11264#ifdef cl_khr_fp16
11265half __ovld __cnfn radians(half degrees);
11266half2 __ovld __cnfn radians(half2 degrees);
11267half3 __ovld __cnfn radians(half3 degrees);
11268half4 __ovld __cnfn radians(half4 degrees);
11269half8 __ovld __cnfn radians(half8 degrees);
11270half16 __ovld __cnfn radians(half16 degrees);
11271#endif //cl_khr_fp16
11272
11273/**
11274 * Returns 0.0 if x < edge, otherwise it returns 1.0.
11275 */
11276float __ovld __cnfn step(float edge, float x);
11277float2 __ovld __cnfn step(float2 edge, float2 x);
11278float3 __ovld __cnfn step(float3 edge, float3 x);
11279float4 __ovld __cnfn step(float4 edge, float4 x);
11280float8 __ovld __cnfn step(float8 edge, float8 x);
11281float16 __ovld __cnfn step(float16 edge, float16 x);
11282float2 __ovld __cnfn step(float edge, float2 x);
11283float3 __ovld __cnfn step(float edge, float3 x);
11284float4 __ovld __cnfn step(float edge, float4 x);
11285float8 __ovld __cnfn step(float edge, float8 x);
11286float16 __ovld __cnfn step(float edge, float16 x);
11287#ifdef cl_khr_fp64
11288double __ovld __cnfn step(double edge, double x);
11289double2 __ovld __cnfn step(double2 edge, double2 x);
11290double3 __ovld __cnfn step(double3 edge, double3 x);
11291double4 __ovld __cnfn step(double4 edge, double4 x);
11292double8 __ovld __cnfn step(double8 edge, double8 x);
11293double16 __ovld __cnfn step(double16 edge, double16 x);
11294double2 __ovld __cnfn step(double edge, double2 x);
11295double3 __ovld __cnfn step(double edge, double3 x);
11296double4 __ovld __cnfn step(double edge, double4 x);
11297double8 __ovld __cnfn step(double edge, double8 x);
11298double16 __ovld __cnfn step(double edge, double16 x);
11299#endif //cl_khr_fp64
11300#ifdef cl_khr_fp16
11301half __ovld __cnfn step(half edge, half x);
11302half2 __ovld __cnfn step(half2 edge, half2 x);
11303half3 __ovld __cnfn step(half3 edge, half3 x);
11304half4 __ovld __cnfn step(half4 edge, half4 x);
11305half8 __ovld __cnfn step(half8 edge, half8 x);
11306half16 __ovld __cnfn step(half16 edge, half16 x);
11307half __ovld __cnfn step(half edge, half x);
11308half2 __ovld __cnfn step(half edge, half2 x);
11309half3 __ovld __cnfn step(half edge, half3 x);
11310half4 __ovld __cnfn step(half edge, half4 x);
11311half8 __ovld __cnfn step(half edge, half8 x);
11312half16 __ovld __cnfn step(half edge, half16 x);
11313#endif //cl_khr_fp16
11314
11315/**
11316 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
11317 * performs smooth Hermite interpolation between 0
11318 * and 1when edge0 < x < edge1. This is useful in
11319 * cases where you would want a threshold function
11320 * with a smooth transition.
11321 * This is equivalent to:
11322 * gentype t;
11323 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
11324 * return t * t * (3 - 2 * t);
11325 * Results are undefined if edge0 >= edge1 or if x,
11326 * edge0 or edge1 is a NaN.
11327 */
11328float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
11329float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
11330float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
11331float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
11332float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
11333float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
11334float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
11335float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
11336float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
11337float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
11338float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
11339#ifdef cl_khr_fp64
11340double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
11341double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
11342double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
11343double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
11344double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
11345double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
11346double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
11347double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
11348double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
11349double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
11350double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
11351#endif //cl_khr_fp64
11352#ifdef cl_khr_fp16
11353half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11354half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
11355half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
11356half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
11357half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
11358half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
11359half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
11360half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
11361half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
11362half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
11363half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
11364half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
11365#endif //cl_khr_fp16
11366
11367/**
11368 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
11369 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
11370 */
11371float __ovld __cnfn sign(float x);
11372float2 __ovld __cnfn sign(float2 x);
11373float3 __ovld __cnfn sign(float3 x);
11374float4 __ovld __cnfn sign(float4 x);
11375float8 __ovld __cnfn sign(float8 x);
11376float16 __ovld __cnfn sign(float16 x);
11377#ifdef cl_khr_fp64
11378double __ovld __cnfn sign(double x);
11379double2 __ovld __cnfn sign(double2 x);
11380double3 __ovld __cnfn sign(double3 x);
11381double4 __ovld __cnfn sign(double4 x);
11382double8 __ovld __cnfn sign(double8 x);
11383double16 __ovld __cnfn sign(double16 x);
11384#endif //cl_khr_fp64
11385#ifdef cl_khr_fp16
11386half __ovld __cnfn sign(half x);
11387half2 __ovld __cnfn sign(half2 x);
11388half3 __ovld __cnfn sign(half3 x);
11389half4 __ovld __cnfn sign(half4 x);
11390half8 __ovld __cnfn sign(half8 x);
11391half16 __ovld __cnfn sign(half16 x);
11392#endif //cl_khr_fp16
11393
11394// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
11395
11396/**
11397 * Returns the cross product of p0.xyz and p1.xyz. The
11398 * w component of float4 result returned will be 0.0.
11399 */
11400float4 __ovld __cnfn cross(float4 p0, float4 p1);
11401float3 __ovld __cnfn cross(float3 p0, float3 p1);
11402#ifdef cl_khr_fp64
11403double4 __ovld __cnfn cross(double4 p0, double4 p1);
11404double3 __ovld __cnfn cross(double3 p0, double3 p1);
11405#endif //cl_khr_fp64
11406#ifdef cl_khr_fp16
11407half4 __ovld __cnfn cross(half4 p0, half4 p1);
11408half3 __ovld __cnfn cross(half3 p0, half3 p1);
11409#endif //cl_khr_fp16
11410
11411/**
11412 * Compute dot product.
11413 */
11414float __ovld __cnfn dot(float p0, float p1);
11415float __ovld __cnfn dot(float2 p0, float2 p1);
11416float __ovld __cnfn dot(float3 p0, float3 p1);
11417float __ovld __cnfn dot(float4 p0, float4 p1);
11418#ifdef cl_khr_fp64
11419double __ovld __cnfn dot(double p0, double p1);
11420double __ovld __cnfn dot(double2 p0, double2 p1);
11421double __ovld __cnfn dot(double3 p0, double3 p1);
11422double __ovld __cnfn dot(double4 p0, double4 p1);
11423#endif //cl_khr_fp64
11424#ifdef cl_khr_fp16
11425half __ovld __cnfn dot(half p0, half p1);
11426half __ovld __cnfn dot(half2 p0, half2 p1);
11427half __ovld __cnfn dot(half3 p0, half3 p1);
11428half __ovld __cnfn dot(half4 p0, half4 p1);
11429#endif //cl_khr_fp16
11430
11431/**
11432 * Returns the distance between p0 and p1. This is
11433 * calculated as length(p0 - p1).
11434 */
11435float __ovld __cnfn distance(float p0, float p1);
11436float __ovld __cnfn distance(float2 p0, float2 p1);
11437float __ovld __cnfn distance(float3 p0, float3 p1);
11438float __ovld __cnfn distance(float4 p0, float4 p1);
11439#ifdef cl_khr_fp64
11440double __ovld __cnfn distance(double p0, double p1);
11441double __ovld __cnfn distance(double2 p0, double2 p1);
11442double __ovld __cnfn distance(double3 p0, double3 p1);
11443double __ovld __cnfn distance(double4 p0, double4 p1);
11444#endif //cl_khr_fp64
11445#ifdef cl_khr_fp16
11446half __ovld __cnfn distance(half p0, half p1);
11447half __ovld __cnfn distance(half2 p0, half2 p1);
11448half __ovld __cnfn distance(half3 p0, half3 p1);
11449half __ovld __cnfn distance(half4 p0, half4 p1);
11450#endif //cl_khr_fp16
11451
11452/**
11453 * Return the length of vector p, i.e.,
11454 * sqrt(p.x2 + p.y 2 + ...)
11455 */
11456float __ovld __cnfn length(float p);
11457float __ovld __cnfn length(float2 p);
11458float __ovld __cnfn length(float3 p);
11459float __ovld __cnfn length(float4 p);
11460#ifdef cl_khr_fp64
11461double __ovld __cnfn length(double p);
11462double __ovld __cnfn length(double2 p);
11463double __ovld __cnfn length(double3 p);
11464double __ovld __cnfn length(double4 p);
11465#endif //cl_khr_fp64
11466#ifdef cl_khr_fp16
11467half __ovld __cnfn length(half p);
11468half __ovld __cnfn length(half2 p);
11469half __ovld __cnfn length(half3 p);
11470half __ovld __cnfn length(half4 p);
11471#endif //cl_khr_fp16
11472
11473/**
11474 * Returns a vector in the same direction as p but with a
11475 * length of 1.
11476 */
11477float __ovld __cnfn normalize(float p);
11478float2 __ovld __cnfn normalize(float2 p);
11479float3 __ovld __cnfn normalize(float3 p);
11480float4 __ovld __cnfn normalize(float4 p);
11481#ifdef cl_khr_fp64
11482double __ovld __cnfn normalize(double p);
11483double2 __ovld __cnfn normalize(double2 p);
11484double3 __ovld __cnfn normalize(double3 p);
11485double4 __ovld __cnfn normalize(double4 p);
11486#endif //cl_khr_fp64
11487#ifdef cl_khr_fp16
11488half __ovld __cnfn normalize(half p);
11489half2 __ovld __cnfn normalize(half2 p);
11490half3 __ovld __cnfn normalize(half3 p);
11491half4 __ovld __cnfn normalize(half4 p);
11492#endif //cl_khr_fp16
11493
11494/**
11495 * Returns fast_length(p0 - p1).
11496 */
11497float __ovld __cnfn fast_distance(float p0, float p1);
11498float __ovld __cnfn fast_distance(float2 p0, float2 p1);
11499float __ovld __cnfn fast_distance(float3 p0, float3 p1);
11500float __ovld __cnfn fast_distance(float4 p0, float4 p1);
11501#ifdef cl_khr_fp16
11502half __ovld __cnfn fast_distance(half p0, half p1);
11503half __ovld __cnfn fast_distance(half2 p0, half2 p1);
11504half __ovld __cnfn fast_distance(half3 p0, half3 p1);
11505half __ovld __cnfn fast_distance(half4 p0, half4 p1);
11506#endif //cl_khr_fp16
11507
11508/**
11509 * Returns the length of vector p computed as:
11510 * half_sqrt(p.x2 + p.y2 + ...)
11511 */
11512float __ovld __cnfn fast_length(float p);
11513float __ovld __cnfn fast_length(float2 p);
11514float __ovld __cnfn fast_length(float3 p);
11515float __ovld __cnfn fast_length(float4 p);
11516#ifdef cl_khr_fp16
11517half __ovld __cnfn fast_length(half p);
11518half __ovld __cnfn fast_length(half2 p);
11519half __ovld __cnfn fast_length(half3 p);
11520half __ovld __cnfn fast_length(half4 p);
11521#endif //cl_khr_fp16
11522
11523/**
11524 * Returns a vector in the same direction as p but with a
11525 * length of 1. fast_normalize is computed as:
11526 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
11527 * The result shall be within 8192 ulps error from the
11528 * infinitely precise result of
11529 * if (all(p == 0.0f))
11530 * result = p;
11531 * else
11532 * result = p / sqrt (p.x^2 + p.y^2 + ...);
11533 * with the following exceptions:
11534 * 1) If the sum of squares is greater than FLT_MAX
11535 * then the value of the floating-point values in the
11536 * result vector are undefined.
11537 * 2) If the sum of squares is less than FLT_MIN then
11538 * the implementation may return back p.
11539 * 3) If the device is in "denorms are flushed to zero"
11540 * mode, individual operand elements with magnitude
11541 * less than sqrt(FLT_MIN) may be flushed to zero
11542 * before proceeding with the calculation.
11543 */
11544float __ovld __cnfn fast_normalize(float p);
11545float2 __ovld __cnfn fast_normalize(float2 p);
11546float3 __ovld __cnfn fast_normalize(float3 p);
11547float4 __ovld __cnfn fast_normalize(float4 p);
11548#ifdef cl_khr_fp16
11549half __ovld __cnfn fast_normalize(half p);
11550half2 __ovld __cnfn fast_normalize(half2 p);
11551half3 __ovld __cnfn fast_normalize(half3 p);
11552half4 __ovld __cnfn fast_normalize(half4 p);
11553#endif //cl_khr_fp16
11554
11555// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
11556
11557/**
11558 * intn isequal (floatn x, floatn y)
11559 * Returns the component-wise compare of x == y.
11560 */
11561int __ovld __cnfn isequal(float x, float y);
11562int2 __ovld __cnfn isequal(float2 x, float2 y);
11563int3 __ovld __cnfn isequal(float3 x, float3 y);
11564int4 __ovld __cnfn isequal(float4 x, float4 y);
11565int8 __ovld __cnfn isequal(float8 x, float8 y);
11566int16 __ovld __cnfn isequal(float16 x, float16 y);
11567#ifdef cl_khr_fp64
11568int __ovld __cnfn isequal(double x, double y);
11569long2 __ovld __cnfn isequal(double2 x, double2 y);
11570long3 __ovld __cnfn isequal(double3 x, double3 y);
11571long4 __ovld __cnfn isequal(double4 x, double4 y);
11572long8 __ovld __cnfn isequal(double8 x, double8 y);
11573long16 __ovld __cnfn isequal(double16 x, double16 y);
11574#endif //cl_khr_fp64
11575#ifdef cl_khr_fp16
11576int __ovld __cnfn isequal(half x, half y);
11577short2 __ovld __cnfn isequal(half2 x, half2 y);
11578short3 __ovld __cnfn isequal(half3 x, half3 y);
11579short4 __ovld __cnfn isequal(half4 x, half4 y);
11580short8 __ovld __cnfn isequal(half8 x, half8 y);
11581short16 __ovld __cnfn isequal(half16 x, half16 y);
11582#endif //cl_khr_fp16
11583
11584/**
11585 * Returns the component-wise compare of x != y.
11586 */
11587int __ovld __cnfn isnotequal(float x, float y);
11588int2 __ovld __cnfn isnotequal(float2 x, float2 y);
11589int3 __ovld __cnfn isnotequal(float3 x, float3 y);
11590int4 __ovld __cnfn isnotequal(float4 x, float4 y);
11591int8 __ovld __cnfn isnotequal(float8 x, float8 y);
11592int16 __ovld __cnfn isnotequal(float16 x, float16 y);
11593#ifdef cl_khr_fp64
11594int __ovld __cnfn isnotequal(double x, double y);
11595long2 __ovld __cnfn isnotequal(double2 x, double2 y);
11596long3 __ovld __cnfn isnotequal(double3 x, double3 y);
11597long4 __ovld __cnfn isnotequal(double4 x, double4 y);
11598long8 __ovld __cnfn isnotequal(double8 x, double8 y);
11599long16 __ovld __cnfn isnotequal(double16 x, double16 y);
11600#endif //cl_khr_fp64
11601#ifdef cl_khr_fp16
11602int __ovld __cnfn isnotequal(half x, half y);
11603short2 __ovld __cnfn isnotequal(half2 x, half2 y);
11604short3 __ovld __cnfn isnotequal(half3 x, half3 y);
11605short4 __ovld __cnfn isnotequal(half4 x, half4 y);
11606short8 __ovld __cnfn isnotequal(half8 x, half8 y);
11607short16 __ovld __cnfn isnotequal(half16 x, half16 y);
11608#endif //cl_khr_fp16
11609
11610/**
11611 * Returns the component-wise compare of x > y.
11612 */
11613int __ovld __cnfn isgreater(float x, float y);
11614int2 __ovld __cnfn isgreater(float2 x, float2 y);
11615int3 __ovld __cnfn isgreater(float3 x, float3 y);
11616int4 __ovld __cnfn isgreater(float4 x, float4 y);
11617int8 __ovld __cnfn isgreater(float8 x, float8 y);
11618int16 __ovld __cnfn isgreater(float16 x, float16 y);
11619#ifdef cl_khr_fp64
11620int __ovld __cnfn isgreater(double x, double y);
11621long2 __ovld __cnfn isgreater(double2 x, double2 y);
11622long3 __ovld __cnfn isgreater(double3 x, double3 y);
11623long4 __ovld __cnfn isgreater(double4 x, double4 y);
11624long8 __ovld __cnfn isgreater(double8 x, double8 y);
11625long16 __ovld __cnfn isgreater(double16 x, double16 y);
11626#endif //cl_khr_fp64
11627#ifdef cl_khr_fp16
11628int __ovld __cnfn isgreater(half x, half y);
11629short2 __ovld __cnfn isgreater(half2 x, half2 y);
11630short3 __ovld __cnfn isgreater(half3 x, half3 y);
11631short4 __ovld __cnfn isgreater(half4 x, half4 y);
11632short8 __ovld __cnfn isgreater(half8 x, half8 y);
11633short16 __ovld __cnfn isgreater(half16 x, half16 y);
11634#endif //cl_khr_fp16
11635
11636/**
11637 * Returns the component-wise compare of x >= y.
11638 */
11639int __ovld __cnfn isgreaterequal(float x, float y);
11640int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
11641int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
11642int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
11643int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
11644int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
11645#ifdef cl_khr_fp64
11646int __ovld __cnfn isgreaterequal(double x, double y);
11647long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
11648long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
11649long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
11650long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
11651long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
11652#endif //cl_khr_fp64
11653#ifdef cl_khr_fp16
11654int __ovld __cnfn isgreaterequal(half x, half y);
11655short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
11656short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
11657short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
11658short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
11659short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
11660#endif //cl_khr_fp16
11661
11662/**
11663 * Returns the component-wise compare of x < y.
11664 */
11665int __ovld __cnfn isless(float x, float y);
11666int2 __ovld __cnfn isless(float2 x, float2 y);
11667int3 __ovld __cnfn isless(float3 x, float3 y);
11668int4 __ovld __cnfn isless(float4 x, float4 y);
11669int8 __ovld __cnfn isless(float8 x, float8 y);
11670int16 __ovld __cnfn isless(float16 x, float16 y);
11671#ifdef cl_khr_fp64
11672int __ovld __cnfn isless(double x, double y);
11673long2 __ovld __cnfn isless(double2 x, double2 y);
11674long3 __ovld __cnfn isless(double3 x, double3 y);
11675long4 __ovld __cnfn isless(double4 x, double4 y);
11676long8 __ovld __cnfn isless(double8 x, double8 y);
11677long16 __ovld __cnfn isless(double16 x, double16 y);
11678#endif //cl_khr_fp64
11679#ifdef cl_khr_fp16
11680int __ovld __cnfn isless(half x, half y);
11681short2 __ovld __cnfn isless(half2 x, half2 y);
11682short3 __ovld __cnfn isless(half3 x, half3 y);
11683short4 __ovld __cnfn isless(half4 x, half4 y);
11684short8 __ovld __cnfn isless(half8 x, half8 y);
11685short16 __ovld __cnfn isless(half16 x, half16 y);
11686#endif //cl_khr_fp16
11687
11688/**
11689 * Returns the component-wise compare of x <= y.
11690 */
11691int __ovld __cnfn islessequal(float x, float y);
11692int2 __ovld __cnfn islessequal(float2 x, float2 y);
11693int3 __ovld __cnfn islessequal(float3 x, float3 y);
11694int4 __ovld __cnfn islessequal(float4 x, float4 y);
11695int8 __ovld __cnfn islessequal(float8 x, float8 y);
11696int16 __ovld __cnfn islessequal(float16 x, float16 y);
11697#ifdef cl_khr_fp64
11698int __ovld __cnfn islessequal(double x, double y);
11699long2 __ovld __cnfn islessequal(double2 x, double2 y);
11700long3 __ovld __cnfn islessequal(double3 x, double3 y);
11701long4 __ovld __cnfn islessequal(double4 x, double4 y);
11702long8 __ovld __cnfn islessequal(double8 x, double8 y);
11703long16 __ovld __cnfn islessequal(double16 x, double16 y);
11704#endif //cl_khr_fp64
11705#ifdef cl_khr_fp16
11706int __ovld __cnfn islessequal(half x, half y);
11707short2 __ovld __cnfn islessequal(half2 x, half2 y);
11708short3 __ovld __cnfn islessequal(half3 x, half3 y);
11709short4 __ovld __cnfn islessequal(half4 x, half4 y);
11710short8 __ovld __cnfn islessequal(half8 x, half8 y);
11711short16 __ovld __cnfn islessequal(half16 x, half16 y);
11712#endif //cl_khr_fp16
11713
11714/**
11715 * Returns the component-wise compare of
11716 * (x < y) || (x > y) .
11717 */
11718int __ovld __cnfn islessgreater(float x, float y);
11719int2 __ovld __cnfn islessgreater(float2 x, float2 y);
11720int3 __ovld __cnfn islessgreater(float3 x, float3 y);
11721int4 __ovld __cnfn islessgreater(float4 x, float4 y);
11722int8 __ovld __cnfn islessgreater(float8 x, float8 y);
11723int16 __ovld __cnfn islessgreater(float16 x, float16 y);
11724#ifdef cl_khr_fp64
11725int __ovld __cnfn islessgreater(double x, double y);
11726long2 __ovld __cnfn islessgreater(double2 x, double2 y);
11727long3 __ovld __cnfn islessgreater(double3 x, double3 y);
11728long4 __ovld __cnfn islessgreater(double4 x, double4 y);
11729long8 __ovld __cnfn islessgreater(double8 x, double8 y);
11730long16 __ovld __cnfn islessgreater(double16 x, double16 y);
11731#endif //cl_khr_fp64
11732#ifdef cl_khr_fp16
11733int __ovld __cnfn islessgreater(half x, half y);
11734short2 __ovld __cnfn islessgreater(half2 x, half2 y);
11735short3 __ovld __cnfn islessgreater(half3 x, half3 y);
11736short4 __ovld __cnfn islessgreater(half4 x, half4 y);
11737short8 __ovld __cnfn islessgreater(half8 x, half8 y);
11738short16 __ovld __cnfn islessgreater(half16 x, half16 y);
11739#endif //cl_khr_fp16
11740
11741/**
11742 * Test for finite value.
11743 */
11744int __ovld __cnfn isfinite(float);
11745int2 __ovld __cnfn isfinite(float2);
11746int3 __ovld __cnfn isfinite(float3);
11747int4 __ovld __cnfn isfinite(float4);
11748int8 __ovld __cnfn isfinite(float8);
11749int16 __ovld __cnfn isfinite(float16);
11750#ifdef cl_khr_fp64
11751int __ovld __cnfn isfinite(double);
11752long2 __ovld __cnfn isfinite(double2);
11753long3 __ovld __cnfn isfinite(double3);
11754long4 __ovld __cnfn isfinite(double4);
11755long8 __ovld __cnfn isfinite(double8);
11756long16 __ovld __cnfn isfinite(double16);
11757#endif //cl_khr_fp64
11758#ifdef cl_khr_fp16
11759int __ovld __cnfn isfinite(half);
11760short2 __ovld __cnfn isfinite(half2);
11761short3 __ovld __cnfn isfinite(half3);
11762short4 __ovld __cnfn isfinite(half4);
11763short8 __ovld __cnfn isfinite(half8);
11764short16 __ovld __cnfn isfinite(half16);
11765#endif //cl_khr_fp16
11766
11767/**
11768 * Test for infinity value (+ve or -ve) .
11769 */
11770int __ovld __cnfn isinf(float);
11771int2 __ovld __cnfn isinf(float2);
11772int3 __ovld __cnfn isinf(float3);
11773int4 __ovld __cnfn isinf(float4);
11774int8 __ovld __cnfn isinf(float8);
11775int16 __ovld __cnfn isinf(float16);
11776#ifdef cl_khr_fp64
11777int __ovld __cnfn isinf(double);
11778long2 __ovld __cnfn isinf(double2);
11779long3 __ovld __cnfn isinf(double3);
11780long4 __ovld __cnfn isinf(double4);
11781long8 __ovld __cnfn isinf(double8);
11782long16 __ovld __cnfn isinf(double16);
11783#endif //cl_khr_fp64
11784#ifdef cl_khr_fp16
11785int __ovld __cnfn isinf(half);
11786short2 __ovld __cnfn isinf(half2);
11787short3 __ovld __cnfn isinf(half3);
11788short4 __ovld __cnfn isinf(half4);
11789short8 __ovld __cnfn isinf(half8);
11790short16 __ovld __cnfn isinf(half16);
11791#endif //cl_khr_fp16
11792
11793/**
11794 * Test for a NaN.
11795 */
11796int __ovld __cnfn isnan(float);
11797int2 __ovld __cnfn isnan(float2);
11798int3 __ovld __cnfn isnan(float3);
11799int4 __ovld __cnfn isnan(float4);
11800int8 __ovld __cnfn isnan(float8);
11801int16 __ovld __cnfn isnan(float16);
11802#ifdef cl_khr_fp64
11803int __ovld __cnfn isnan(double);
11804long2 __ovld __cnfn isnan(double2);
11805long3 __ovld __cnfn isnan(double3);
11806long4 __ovld __cnfn isnan(double4);
11807long8 __ovld __cnfn isnan(double8);
11808long16 __ovld __cnfn isnan(double16);
11809#endif //cl_khr_fp64
11810#ifdef cl_khr_fp16
11811int __ovld __cnfn isnan(half);
11812short2 __ovld __cnfn isnan(half2);
11813short3 __ovld __cnfn isnan(half3);
11814short4 __ovld __cnfn isnan(half4);
11815short8 __ovld __cnfn isnan(half8);
11816short16 __ovld __cnfn isnan(half16);
11817#endif //cl_khr_fp16
11818
11819/**
11820 * Test for a normal value.
11821 */
11822int __ovld __cnfn isnormal(float);
11823int2 __ovld __cnfn isnormal(float2);
11824int3 __ovld __cnfn isnormal(float3);
11825int4 __ovld __cnfn isnormal(float4);
11826int8 __ovld __cnfn isnormal(float8);
11827int16 __ovld __cnfn isnormal(float16);
11828#ifdef cl_khr_fp64
11829int __ovld __cnfn isnormal(double);
11830long2 __ovld __cnfn isnormal(double2);
11831long3 __ovld __cnfn isnormal(double3);
11832long4 __ovld __cnfn isnormal(double4);
11833long8 __ovld __cnfn isnormal(double8);
11834long16 __ovld __cnfn isnormal(double16);
11835#endif //cl_khr_fp64
11836#ifdef cl_khr_fp16
11837int __ovld __cnfn isnormal(half);
11838short2 __ovld __cnfn isnormal(half2);
11839short3 __ovld __cnfn isnormal(half3);
11840short4 __ovld __cnfn isnormal(half4);
11841short8 __ovld __cnfn isnormal(half8);
11842short16 __ovld __cnfn isnormal(half16);
11843#endif //cl_khr_fp16
11844
11845/**
11846 * Test if arguments are ordered. isordered() takes
11847 * arguments x and y, and returns the result
11848 * isequal(x, x) && isequal(y, y).
11849 */
11850int __ovld __cnfn isordered(float x, float y);
11851int2 __ovld __cnfn isordered(float2 x, float2 y);
11852int3 __ovld __cnfn isordered(float3 x, float3 y);
11853int4 __ovld __cnfn isordered(float4 x, float4 y);
11854int8 __ovld __cnfn isordered(float8 x, float8 y);
11855int16 __ovld __cnfn isordered(float16 x, float16 y);
11856#ifdef cl_khr_fp64
11857int __ovld __cnfn isordered(double x, double y);
11858long2 __ovld __cnfn isordered(double2 x, double2 y);
11859long3 __ovld __cnfn isordered(double3 x, double3 y);
11860long4 __ovld __cnfn isordered(double4 x, double4 y);
11861long8 __ovld __cnfn isordered(double8 x, double8 y);
11862long16 __ovld __cnfn isordered(double16 x, double16 y);
11863#endif //cl_khr_fp64
11864#ifdef cl_khr_fp16
11865int __ovld __cnfn isordered(half x, half y);
11866short2 __ovld __cnfn isordered(half2 x, half2 y);
11867short3 __ovld __cnfn isordered(half3 x, half3 y);
11868short4 __ovld __cnfn isordered(half4 x, half4 y);
11869short8 __ovld __cnfn isordered(half8 x, half8 y);
11870short16 __ovld __cnfn isordered(half16 x, half16 y);
11871#endif //cl_khr_fp16
11872
11873/**
11874 * Test if arguments are unordered. isunordered()
11875 * takes arguments x and y, returning non-zero if x or y
11876 * is NaN, and zero otherwise.
11877 */
11878int __ovld __cnfn isunordered(float x, float y);
11879int2 __ovld __cnfn isunordered(float2 x, float2 y);
11880int3 __ovld __cnfn isunordered(float3 x, float3 y);
11881int4 __ovld __cnfn isunordered(float4 x, float4 y);
11882int8 __ovld __cnfn isunordered(float8 x, float8 y);
11883int16 __ovld __cnfn isunordered(float16 x, float16 y);
11884#ifdef cl_khr_fp64
11885int __ovld __cnfn isunordered(double x, double y);
11886long2 __ovld __cnfn isunordered(double2 x, double2 y);
11887long3 __ovld __cnfn isunordered(double3 x, double3 y);
11888long4 __ovld __cnfn isunordered(double4 x, double4 y);
11889long8 __ovld __cnfn isunordered(double8 x, double8 y);
11890long16 __ovld __cnfn isunordered(double16 x, double16 y);
11891#endif //cl_khr_fp64
11892#ifdef cl_khr_fp16
11893int __ovld __cnfn isunordered(half x, half y);
11894short2 __ovld __cnfn isunordered(half2 x, half2 y);
11895short3 __ovld __cnfn isunordered(half3 x, half3 y);
11896short4 __ovld __cnfn isunordered(half4 x, half4 y);
11897short8 __ovld __cnfn isunordered(half8 x, half8 y);
11898short16 __ovld __cnfn isunordered(half16 x, half16 y);
11899#endif //cl_khr_fp16
11900
11901/**
11902 * Test for sign bit. The scalar version of the function
11903 * returns a 1 if the sign bit in the float is set else returns
11904 * 0. The vector version of the function returns the
11905 * following for each component in floatn: a -1 if the
11906 * sign bit in the float is set else returns 0.
11907 */
11908int __ovld __cnfn signbit(float);
11909int2 __ovld __cnfn signbit(float2);
11910int3 __ovld __cnfn signbit(float3);
11911int4 __ovld __cnfn signbit(float4);
11912int8 __ovld __cnfn signbit(float8);
11913int16 __ovld __cnfn signbit(float16);
11914#ifdef cl_khr_fp64
11915int __ovld __cnfn signbit(double);
11916long2 __ovld __cnfn signbit(double2);
11917long3 __ovld __cnfn signbit(double3);
11918long4 __ovld __cnfn signbit(double4);
11919long8 __ovld __cnfn signbit(double8);
11920long16 __ovld __cnfn signbit(double16);
11921#endif //cl_khr_fp64
11922#ifdef cl_khr_fp16
11923int __ovld __cnfn signbit(half);
11924short2 __ovld __cnfn signbit(half2);
11925short3 __ovld __cnfn signbit(half3);
11926short4 __ovld __cnfn signbit(half4);
11927short8 __ovld __cnfn signbit(half8);
11928short16 __ovld __cnfn signbit(half16);
11929#endif //cl_khr_fp16
11930
11931/**
11932 * Returns 1 if the most significant bit in any component
11933 * of x is set; otherwise returns 0.
11934 */
11935int __ovld __cnfn any(char x);
11936int __ovld __cnfn any(char2 x);
11937int __ovld __cnfn any(char3 x);
11938int __ovld __cnfn any(char4 x);
11939int __ovld __cnfn any(char8 x);
11940int __ovld __cnfn any(char16 x);
11941int __ovld __cnfn any(short x);
11942int __ovld __cnfn any(short2 x);
11943int __ovld __cnfn any(short3 x);
11944int __ovld __cnfn any(short4 x);
11945int __ovld __cnfn any(short8 x);
11946int __ovld __cnfn any(short16 x);
11947int __ovld __cnfn any(int x);
11948int __ovld __cnfn any(int2 x);
11949int __ovld __cnfn any(int3 x);
11950int __ovld __cnfn any(int4 x);
11951int __ovld __cnfn any(int8 x);
11952int __ovld __cnfn any(int16 x);
11953int __ovld __cnfn any(long x);
11954int __ovld __cnfn any(long2 x);
11955int __ovld __cnfn any(long3 x);
11956int __ovld __cnfn any(long4 x);
11957int __ovld __cnfn any(long8 x);
11958int __ovld __cnfn any(long16 x);
11959
11960/**
11961 * Returns 1 if the most significant bit in all components
11962 * of x is set; otherwise returns 0.
11963 */
11964int __ovld __cnfn all(char x);
11965int __ovld __cnfn all(char2 x);
11966int __ovld __cnfn all(char3 x);
11967int __ovld __cnfn all(char4 x);
11968int __ovld __cnfn all(char8 x);
11969int __ovld __cnfn all(char16 x);
11970int __ovld __cnfn all(short x);
11971int __ovld __cnfn all(short2 x);
11972int __ovld __cnfn all(short3 x);
11973int __ovld __cnfn all(short4 x);
11974int __ovld __cnfn all(short8 x);
11975int __ovld __cnfn all(short16 x);
11976int __ovld __cnfn all(int x);
11977int __ovld __cnfn all(int2 x);
11978int __ovld __cnfn all(int3 x);
11979int __ovld __cnfn all(int4 x);
11980int __ovld __cnfn all(int8 x);
11981int __ovld __cnfn all(int16 x);
11982int __ovld __cnfn all(long x);
11983int __ovld __cnfn all(long2 x);
11984int __ovld __cnfn all(long3 x);
11985int __ovld __cnfn all(long4 x);
11986int __ovld __cnfn all(long8 x);
11987int __ovld __cnfn all(long16 x);
11988
11989/**
11990 * Each bit of the result is the corresponding bit of a if
11991 * the corresponding bit of c is 0. Otherwise it is the
11992 * corresponding bit of b.
11993 */
11994char __ovld __cnfn bitselect(char a, char b, char c);
11995uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
11996char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
11997uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
11998char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
11999uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
12000char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
12001uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
12002char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
12003uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
12004char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
12005uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
12006short __ovld __cnfn bitselect(short a, short b, short c);
12007ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
12008short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
12009ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
12010short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
12011ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
12012short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
12013ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
12014short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
12015ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
12016short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
12017ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
12018int __ovld __cnfn bitselect(int a, int b, int c);
12019uint __ovld __cnfn bitselect(uint a, uint b, uint c);
12020int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
12021uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
12022int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
12023uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
12024int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
12025uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
12026int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
12027uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
12028int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
12029uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
12030long __ovld __cnfn bitselect(long a, long b, long c);
12031ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
12032long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
12033ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
12034long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
12035ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
12036long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
12037ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
12038long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
12039ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
12040long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
12041ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
12042float __ovld __cnfn bitselect(float a, float b, float c);
12043float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
12044float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
12045float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
12046float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
12047float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
12048#ifdef cl_khr_fp64
12049double __ovld __cnfn bitselect(double a, double b, double c);
12050double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
12051double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
12052double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
12053double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
12054double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
12055#endif //cl_khr_fp64
12056#ifdef cl_khr_fp16
12057half __ovld __cnfn bitselect(half a, half b, half c);
12058half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
12059half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
12060half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
12061half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
12062half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
12063#endif //cl_khr_fp16
12064
12065/**
12066 * For each component of a vector type,
12067 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
12068 * For a scalar type, result = c ? b : a.
12069 */
12070char __ovld __cnfn select(char a, char b, char c);
12071uchar __ovld __cnfn select(uchar a, uchar b, char c);
12072char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
12073uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
12074char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
12075uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
12076char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
12077uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
12078char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
12079uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
12080char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
12081uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
12082short __ovld __cnfn select(short a, short b, char c);
12083ushort __ovld __cnfn select(ushort a, ushort b, char c);
12084short2 __ovld __cnfn select(short2 a, short2 b, char2 c);
12085ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, char2 c);
12086short3 __ovld __cnfn select(short3 a, short3 b, char3 c);
12087ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, char3 c);
12088short4 __ovld __cnfn select(short4 a, short4 b, char4 c);
12089ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, char4 c);
12090short8 __ovld __cnfn select(short8 a, short8 b, char8 c);
12091ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, char8 c);
12092short16 __ovld __cnfn select(short16 a, short16 b, char16 c);
12093ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, char16 c);
12094int __ovld __cnfn select(int a, int b, char c);
12095uint __ovld __cnfn select(uint a, uint b, char c);
12096int2 __ovld __cnfn select(int2 a, int2 b, char2 c);
12097uint2 __ovld __cnfn select(uint2 a, uint2 b, char2 c);
12098int3 __ovld __cnfn select(int3 a, int3 b, char3 c);
12099uint3 __ovld __cnfn select(uint3 a, uint3 b, char3 c);
12100int4 __ovld __cnfn select(int4 a, int4 b, char4 c);
12101uint4 __ovld __cnfn select(uint4 a, uint4 b, char4 c);
12102int8 __ovld __cnfn select(int8 a, int8 b, char8 c);
12103uint8 __ovld __cnfn select(uint8 a, uint8 b, char8 c);
12104int16 __ovld __cnfn select(int16 a, int16 b, char16 c);
12105uint16 __ovld __cnfn select(uint16 a, uint16 b, char16 c);
12106long __ovld __cnfn select(long a, long b, char c);
12107ulong __ovld __cnfn select(ulong a, ulong b, char c);
12108long2 __ovld __cnfn select(long2 a, long2 b, char2 c);
12109ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, char2 c);
12110long3 __ovld __cnfn select(long3 a, long3 b, char3 c);
12111ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, char3 c);
12112long4 __ovld __cnfn select(long4 a, long4 b, char4 c);
12113ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, char4 c);
12114long8 __ovld __cnfn select(long8 a, long8 b, char8 c);
12115ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, char8 c);
12116long16 __ovld __cnfn select(long16 a, long16 b, char16 c);
12117ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, char16 c);
12118float __ovld __cnfn select(float a, float b, char c);
12119float2 __ovld __cnfn select(float2 a, float2 b, char2 c);
12120float3 __ovld __cnfn select(float3 a, float3 b, char3 c);
12121float4 __ovld __cnfn select(float4 a, float4 b, char4 c);
12122float8 __ovld __cnfn select(float8 a, float8 b, char8 c);
12123float16 __ovld __cnfn select(float16 a, float16 b, char16 c);
12124char __ovld __cnfn select(char a, char b, short c);
12125uchar __ovld __cnfn select(uchar a, uchar b, short c);
12126char2 __ovld __cnfn select(char2 a, char2 b, short2 c);
12127uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, short2 c);
12128char3 __ovld __cnfn select(char3 a, char3 b, short3 c);
12129uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, short3 c);
12130char4 __ovld __cnfn select(char4 a, char4 b, short4 c);
12131uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, short4 c);
12132char8 __ovld __cnfn select(char8 a, char8 b, short8 c);
12133uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, short8 c);
12134char16 __ovld __cnfn select(char16 a, char16 b, short16 c);
12135uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, short16 c);
12136short __ovld __cnfn select(short a, short b, short c);
12137ushort __ovld __cnfn select(ushort a, ushort b, short c);
12138short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
12139ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
12140short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
12141ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
12142short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
12143ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
12144short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
12145ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
12146short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
12147ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
12148int __ovld __cnfn select(int a, int b, short c);
12149uint __ovld __cnfn select(uint a, uint b, short c);
12150int2 __ovld __cnfn select(int2 a, int2 b, short2 c);
12151uint2 __ovld __cnfn select(uint2 a, uint2 b, short2 c);
12152int3 __ovld __cnfn select(int3 a, int3 b, short3 c);
12153uint3 __ovld __cnfn select(uint3 a, uint3 b, short3 c);
12154int4 __ovld __cnfn select(int4 a, int4 b, short4 c);
12155uint4 __ovld __cnfn select(uint4 a, uint4 b, short4 c);
12156int8 __ovld __cnfn select(int8 a, int8 b, short8 c);
12157uint8 __ovld __cnfn select(uint8 a, uint8 b, short8 c);
12158int16 __ovld __cnfn select(int16 a, int16 b, short16 c);
12159uint16 __ovld __cnfn select(uint16 a, uint16 b, short16 c);
12160long __ovld __cnfn select(long a, long b, short c);
12161ulong __ovld __cnfn select(ulong a, ulong b, short c);
12162long2 __ovld __cnfn select(long2 a, long2 b, short2 c);
12163ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, short2 c);
12164long3 __ovld __cnfn select(long3 a, long3 b, short3 c);
12165ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, short3 c);
12166long4 __ovld __cnfn select(long4 a, long4 b, short4 c);
12167ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, short4 c);
12168long8 __ovld __cnfn select(long8 a, long8 b, short8 c);
12169ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, short8 c);
12170long16 __ovld __cnfn select(long16 a, long16 b, short16 c);
12171ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, short16 c);
12172float __ovld __cnfn select(float a, float b, short c);
12173float2 __ovld __cnfn select(float2 a, float2 b, short2 c);
12174float3 __ovld __cnfn select(float3 a, float3 b, short3 c);
12175float4 __ovld __cnfn select(float4 a, float4 b, short4 c);
12176float8 __ovld __cnfn select(float8 a, float8 b, short8 c);
12177float16 __ovld __cnfn select(float16 a, float16 b, short16 c);
12178char __ovld __cnfn select(char a, char b, int c);
12179uchar __ovld __cnfn select(uchar a, uchar b, int c);
12180char2 __ovld __cnfn select(char2 a, char2 b, int2 c);
12181uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, int2 c);
12182char3 __ovld __cnfn select(char3 a, char3 b, int3 c);
12183uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, int3 c);
12184char4 __ovld __cnfn select(char4 a, char4 b, int4 c);
12185uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, int4 c);
12186char8 __ovld __cnfn select(char8 a, char8 b, int8 c);
12187uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, int8 c);
12188char16 __ovld __cnfn select(char16 a, char16 b, int16 c);
12189uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, int16 c);
12190short __ovld __cnfn select(short a, short b, int c);
12191ushort __ovld __cnfn select(ushort a, ushort b, int c);
12192short2 __ovld __cnfn select(short2 a, short2 b, int2 c);
12193ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, int2 c);
12194short3 __ovld __cnfn select(short3 a, short3 b, int3 c);
12195ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, int3 c);
12196short4 __ovld __cnfn select(short4 a, short4 b, int4 c);
12197ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, int4 c);
12198short8 __ovld __cnfn select(short8 a, short8 b, int8 c);
12199ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, int8 c);
12200short16 __ovld __cnfn select(short16 a, short16 b, int16 c);
12201ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, int16 c);
12202int __ovld __cnfn select(int a, int b, int c);
12203uint __ovld __cnfn select(uint a, uint b, int c);
12204int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
12205uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
12206int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
12207uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
12208int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
12209uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
12210int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
12211uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
12212int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
12213uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
12214long __ovld __cnfn select(long a, long b, int c);
12215ulong __ovld __cnfn select(ulong a, ulong b, int c);
12216long2 __ovld __cnfn select(long2 a, long2 b, int2 c);
12217ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, int2 c);
12218long3 __ovld __cnfn select(long3 a, long3 b, int3 c);
12219ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, int3 c);
12220long4 __ovld __cnfn select(long4 a, long4 b, int4 c);
12221ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, int4 c);
12222long8 __ovld __cnfn select(long8 a, long8 b, int8 c);
12223ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, int8 c);
12224long16 __ovld __cnfn select(long16 a, long16 b, int16 c);
12225ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, int16 c);
12226float __ovld __cnfn select(float a, float b, int c);
12227float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
12228float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
12229float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
12230float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
12231float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
12232char __ovld __cnfn select(char a, char b, long c);
12233uchar __ovld __cnfn select(uchar a, uchar b, long c);
12234char2 __ovld __cnfn select(char2 a, char2 b, long2 c);
12235uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, long2 c);
12236char3 __ovld __cnfn select(char3 a, char3 b, long3 c);
12237uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, long3 c);
12238char4 __ovld __cnfn select(char4 a, char4 b, long4 c);
12239uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, long4 c);
12240char8 __ovld __cnfn select(char8 a, char8 b, long8 c);
12241uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, long8 c);
12242char16 __ovld __cnfn select(char16 a, char16 b, long16 c);
12243uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, long16 c);
12244short __ovld __cnfn select(short a, short b, long c);
12245ushort __ovld __cnfn select(ushort a, ushort b, long c);
12246short2 __ovld __cnfn select(short2 a, short2 b, long2 c);
12247ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, long2 c);
12248short3 __ovld __cnfn select(short3 a, short3 b, long3 c);
12249ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, long3 c);
12250short4 __ovld __cnfn select(short4 a, short4 b, long4 c);
12251ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, long4 c);
12252short8 __ovld __cnfn select(short8 a, short8 b, long8 c);
12253ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, long8 c);
12254short16 __ovld __cnfn select(short16 a, short16 b, long16 c);
12255ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, long16 c);
12256int __ovld __cnfn select(int a, int b, long c);
12257uint __ovld __cnfn select(uint a, uint b, long c);
12258int2 __ovld __cnfn select(int2 a, int2 b, long2 c);
12259uint2 __ovld __cnfn select(uint2 a, uint2 b, long2 c);
12260int3 __ovld __cnfn select(int3 a, int3 b, long3 c);
12261uint3 __ovld __cnfn select(uint3 a, uint3 b, long3 c);
12262int4 __ovld __cnfn select(int4 a, int4 b, long4 c);
12263uint4 __ovld __cnfn select(uint4 a, uint4 b, long4 c);
12264int8 __ovld __cnfn select(int8 a, int8 b, long8 c);
12265uint8 __ovld __cnfn select(uint8 a, uint8 b, long8 c);
12266int16 __ovld __cnfn select(int16 a, int16 b, long16 c);
12267uint16 __ovld __cnfn select(uint16 a, uint16 b, long16 c);
12268long __ovld __cnfn select(long a, long b, long c);
12269ulong __ovld __cnfn select(ulong a, ulong b, long c);
12270long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
12271ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
12272long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
12273ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
12274long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
12275ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
12276long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
12277ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
12278long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
12279ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
12280float __ovld __cnfn select(float a, float b, long c);
12281float2 __ovld __cnfn select(float2 a, float2 b, long2 c);
12282float3 __ovld __cnfn select(float3 a, float3 b, long3 c);
12283float4 __ovld __cnfn select(float4 a, float4 b, long4 c);
12284float8 __ovld __cnfn select(float8 a, float8 b, long8 c);
12285float16 __ovld __cnfn select(float16 a, float16 b, long16 c);
12286char __ovld __cnfn select(char a, char b, uchar c);
12287uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
12288char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
12289uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
12290char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
12291uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
12292char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
12293uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
12294char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
12295uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
12296char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
12297uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
12298short __ovld __cnfn select(short a, short b, uchar c);
12299ushort __ovld __cnfn select(ushort a, ushort b, uchar c);
12300short2 __ovld __cnfn select(short2 a, short2 b, uchar2 c);
12301ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uchar2 c);
12302short3 __ovld __cnfn select(short3 a, short3 b, uchar3 c);
12303ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uchar3 c);
12304short4 __ovld __cnfn select(short4 a, short4 b, uchar4 c);
12305ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uchar4 c);
12306short8 __ovld __cnfn select(short8 a, short8 b, uchar8 c);
12307ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uchar8 c);
12308short16 __ovld __cnfn select(short16 a, short16 b, uchar16 c);
12309ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uchar16 c);
12310int __ovld __cnfn select(int a, int b, uchar c);
12311uint __ovld __cnfn select(uint a, uint b, uchar c);
12312int2 __ovld __cnfn select(int2 a, int2 b, uchar2 c);
12313uint2 __ovld __cnfn select(uint2 a, uint2 b, uchar2 c);
12314int3 __ovld __cnfn select(int3 a, int3 b, uchar3 c);
12315uint3 __ovld __cnfn select(uint3 a, uint3 b, uchar3 c);
12316int4 __ovld __cnfn select(int4 a, int4 b, uchar4 c);
12317uint4 __ovld __cnfn select(uint4 a, uint4 b, uchar4 c);
12318int8 __ovld __cnfn select(int8 a, int8 b, uchar8 c);
12319uint8 __ovld __cnfn select(uint8 a, uint8 b, uchar8 c);
12320int16 __ovld __cnfn select(int16 a, int16 b, uchar16 c);
12321uint16 __ovld __cnfn select(uint16 a, uint16 b, uchar16 c);
12322long __ovld __cnfn select(long a, long b, uchar c);
12323ulong __ovld __cnfn select(ulong a, ulong b, uchar c);
12324long2 __ovld __cnfn select(long2 a, long2 b, uchar2 c);
12325ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uchar2 c);
12326long3 __ovld __cnfn select(long3 a, long3 b, uchar3 c);
12327ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uchar3 c);
12328long4 __ovld __cnfn select(long4 a, long4 b, uchar4 c);
12329ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uchar4 c);
12330long8 __ovld __cnfn select(long8 a, long8 b, uchar8 c);
12331ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uchar8 c);
12332long16 __ovld __cnfn select(long16 a, long16 b, uchar16 c);
12333ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uchar16 c);
12334float __ovld __cnfn select(float a, float b, uchar c);
12335float2 __ovld __cnfn select(float2 a, float2 b, uchar2 c);
12336float3 __ovld __cnfn select(float3 a, float3 b, uchar3 c);
12337float4 __ovld __cnfn select(float4 a, float4 b, uchar4 c);
12338float8 __ovld __cnfn select(float8 a, float8 b, uchar8 c);
12339float16 __ovld __cnfn select(float16 a, float16 b, uchar16 c);
12340char __ovld __cnfn select(char a, char b, ushort c);
12341uchar __ovld __cnfn select(uchar a, uchar b, ushort c);
12342char2 __ovld __cnfn select(char2 a, char2 b, ushort2 c);
12343uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ushort2 c);
12344char3 __ovld __cnfn select(char3 a, char3 b, ushort3 c);
12345uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ushort3 c);
12346char4 __ovld __cnfn select(char4 a, char4 b, ushort4 c);
12347uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ushort4 c);
12348char8 __ovld __cnfn select(char8 a, char8 b, ushort8 c);
12349uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ushort8 c);
12350char16 __ovld __cnfn select(char16 a, char16 b, ushort16 c);
12351uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ushort16 c);
12352short __ovld __cnfn select(short a, short b, ushort c);
12353ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
12354short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
12355ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
12356short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
12357ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
12358short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
12359ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
12360short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
12361ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
12362short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
12363ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
12364int __ovld __cnfn select(int a, int b, ushort c);
12365uint __ovld __cnfn select(uint a, uint b, ushort c);
12366int2 __ovld __cnfn select(int2 a, int2 b, ushort2 c);
12367uint2 __ovld __cnfn select(uint2 a, uint2 b, ushort2 c);
12368int3 __ovld __cnfn select(int3 a, int3 b, ushort3 c);
12369uint3 __ovld __cnfn select(uint3 a, uint3 b, ushort3 c);
12370int4 __ovld __cnfn select(int4 a, int4 b, ushort4 c);
12371uint4 __ovld __cnfn select(uint4 a, uint4 b, ushort4 c);
12372int8 __ovld __cnfn select(int8 a, int8 b, ushort8 c);
12373uint8 __ovld __cnfn select(uint8 a, uint8 b, ushort8 c);
12374int16 __ovld __cnfn select(int16 a, int16 b, ushort16 c);
12375uint16 __ovld __cnfn select(uint16 a, uint16 b, ushort16 c);
12376long __ovld __cnfn select(long a, long b, ushort c);
12377ulong __ovld __cnfn select(ulong a, ulong b, ushort c);
12378long2 __ovld __cnfn select(long2 a, long2 b, ushort2 c);
12379ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ushort2 c);
12380long3 __ovld __cnfn select(long3 a, long3 b, ushort3 c);
12381ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ushort3 c);
12382long4 __ovld __cnfn select(long4 a, long4 b, ushort4 c);
12383ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ushort4 c);
12384long8 __ovld __cnfn select(long8 a, long8 b, ushort8 c);
12385ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ushort8 c);
12386long16 __ovld __cnfn select(long16 a, long16 b, ushort16 c);
12387ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ushort16 c);
12388float __ovld __cnfn select(float a, float b, ushort c);
12389float2 __ovld __cnfn select(float2 a, float2 b, ushort2 c);
12390float3 __ovld __cnfn select(float3 a, float3 b, ushort3 c);
12391float4 __ovld __cnfn select(float4 a, float4 b, ushort4 c);
12392float8 __ovld __cnfn select(float8 a, float8 b, ushort8 c);
12393float16 __ovld __cnfn select(float16 a, float16 b, ushort16 c);
12394char __ovld __cnfn select(char a, char b, uint c);
12395uchar __ovld __cnfn select(uchar a, uchar b, uint c);
12396char2 __ovld __cnfn select(char2 a, char2 b, uint2 c);
12397uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uint2 c);
12398char3 __ovld __cnfn select(char3 a, char3 b, uint3 c);
12399uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uint3 c);
12400char4 __ovld __cnfn select(char4 a, char4 b, uint4 c);
12401uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uint4 c);
12402char8 __ovld __cnfn select(char8 a, char8 b, uint8 c);
12403uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uint8 c);
12404char16 __ovld __cnfn select(char16 a, char16 b, uint16 c);
12405uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uint16 c);
12406short __ovld __cnfn select(short a, short b, uint c);
12407ushort __ovld __cnfn select(ushort a, ushort b, uint c);
12408short2 __ovld __cnfn select(short2 a, short2 b, uint2 c);
12409ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, uint2 c);
12410short3 __ovld __cnfn select(short3 a, short3 b, uint3 c);
12411ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, uint3 c);
12412short4 __ovld __cnfn select(short4 a, short4 b, uint4 c);
12413ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, uint4 c);
12414short8 __ovld __cnfn select(short8 a, short8 b, uint8 c);
12415ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, uint8 c);
12416short16 __ovld __cnfn select(short16 a, short16 b, uint16 c);
12417ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, uint16 c);
12418int __ovld __cnfn select(int a, int b, uint c);
12419uint __ovld __cnfn select(uint a, uint b, uint c);
12420int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
12421uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
12422int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
12423uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
12424int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
12425uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
12426int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
12427uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
12428int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
12429uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
12430long __ovld __cnfn select(long a, long b, uint c);
12431ulong __ovld __cnfn select(ulong a, ulong b, uint c);
12432long2 __ovld __cnfn select(long2 a, long2 b, uint2 c);
12433ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, uint2 c);
12434long3 __ovld __cnfn select(long3 a, long3 b, uint3 c);
12435ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, uint3 c);
12436long4 __ovld __cnfn select(long4 a, long4 b, uint4 c);
12437ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, uint4 c);
12438long8 __ovld __cnfn select(long8 a, long8 b, uint8 c);
12439ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, uint8 c);
12440long16 __ovld __cnfn select(long16 a, long16 b, uint16 c);
12441ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, uint16 c);
12442float __ovld __cnfn select(float a, float b, uint c);
12443float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
12444float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
12445float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
12446float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
12447float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
12448char __ovld __cnfn select(char a, char b, ulong c);
12449uchar __ovld __cnfn select(uchar a, uchar b, ulong c);
12450char2 __ovld __cnfn select(char2 a, char2 b, ulong2 c);
12451uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, ulong2 c);
12452char3 __ovld __cnfn select(char3 a, char3 b, ulong3 c);
12453uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, ulong3 c);
12454char4 __ovld __cnfn select(char4 a, char4 b, ulong4 c);
12455uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, ulong4 c);
12456char8 __ovld __cnfn select(char8 a, char8 b, ulong8 c);
12457uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, ulong8 c);
12458char16 __ovld __cnfn select(char16 a, char16 b, ulong16 c);
12459uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, ulong16 c);
12460short __ovld __cnfn select(short a, short b, ulong c);
12461ushort __ovld __cnfn select(ushort a, ushort b, ulong c);
12462short2 __ovld __cnfn select(short2 a, short2 b, ulong2 c);
12463ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ulong2 c);
12464short3 __ovld __cnfn select(short3 a, short3 b, ulong3 c);
12465ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ulong3 c);
12466short4 __ovld __cnfn select(short4 a, short4 b, ulong4 c);
12467ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ulong4 c);
12468short8 __ovld __cnfn select(short8 a, short8 b, ulong8 c);
12469ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ulong8 c);
12470short16 __ovld __cnfn select(short16 a, short16 b, ulong16 c);
12471ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ulong16 c);
12472int __ovld __cnfn select(int a, int b, ulong c);
12473uint __ovld __cnfn select(uint a, uint b, ulong c);
12474int2 __ovld __cnfn select(int2 a, int2 b, ulong2 c);
12475uint2 __ovld __cnfn select(uint2 a, uint2 b, ulong2 c);
12476int3 __ovld __cnfn select(int3 a, int3 b, ulong3 c);
12477uint3 __ovld __cnfn select(uint3 a, uint3 b, ulong3 c);
12478int4 __ovld __cnfn select(int4 a, int4 b, ulong4 c);
12479uint4 __ovld __cnfn select(uint4 a, uint4 b, ulong4 c);
12480int8 __ovld __cnfn select(int8 a, int8 b, ulong8 c);
12481uint8 __ovld __cnfn select(uint8 a, uint8 b, ulong8 c);
12482int16 __ovld __cnfn select(int16 a, int16 b, ulong16 c);
12483uint16 __ovld __cnfn select(uint16 a, uint16 b, ulong16 c);
12484long __ovld __cnfn select(long a, long b, ulong c);
12485ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
12486long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
12487ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
12488long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
12489ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
12490long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
12491ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
12492long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
12493ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
12494long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
12495ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
12496float __ovld __cnfn select(float a, float b, ulong c);
12497float2 __ovld __cnfn select(float2 a, float2 b, ulong2 c);
12498float3 __ovld __cnfn select(float3 a, float3 b, ulong3 c);
12499float4 __ovld __cnfn select(float4 a, float4 b, ulong4 c);
12500float8 __ovld __cnfn select(float8 a, float8 b, ulong8 c);
12501float16 __ovld __cnfn select(float16 a, float16 b, ulong16 c);
12502#ifdef cl_khr_fp64
12503double __ovld __cnfn select(double a, double b, long c);
12504double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
12505double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
12506double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
12507double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
12508double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
12509double __ovld __cnfn select(double a, double b, ulong c);
12510double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
12511double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
12512double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
12513double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
12514double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
12515#endif //cl_khr_fp64
12516#ifdef cl_khr_fp16
12517half __ovld __cnfn select(half a, half b, short c);
12518half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
12519half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
12520half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
12521half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
12522half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
12523half __ovld __cnfn select(half a, half b, ushort c);
12524half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
12525half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
12526half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
12527half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
12528half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
12529#endif //cl_khr_fp16
12530
12531// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
12532// 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
12533/**
12534 * Use generic type gentype to indicate the built-in data types
12535 * char, uchar, short, ushort, int, uint, long, ulong, float,
12536 * double or half.
12537 *
12538 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
12539 *
12540 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
12541 *
12542 * The address computed as (p + (offset * n)) must be
12543 * 8-bit aligned if gentype is char, uchar;
12544 * 16-bit aligned if gentype is short, ushort, half;
12545 * 32-bit aligned if gentype is int, uint, float;
12546 * 64-bit aligned if gentype is long, ulong, double.
12547 */
12548
12549char2 __ovld vload2(size_t offset, const __constant char *p);
12550uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
12551short2 __ovld vload2(size_t offset, const __constant short *p);
12552ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
12553int2 __ovld vload2(size_t offset, const __constant int *p);
12554uint2 __ovld vload2(size_t offset, const __constant uint *p);
12555long2 __ovld vload2(size_t offset, const __constant long *p);
12556ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
12557float2 __ovld vload2(size_t offset, const __constant float *p);
12558char3 __ovld vload3(size_t offset, const __constant char *p);
12559uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
12560short3 __ovld vload3(size_t offset, const __constant short *p);
12561ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
12562int3 __ovld vload3(size_t offset, const __constant int *p);
12563uint3 __ovld vload3(size_t offset, const __constant uint *p);
12564long3 __ovld vload3(size_t offset, const __constant long *p);
12565ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
12566float3 __ovld vload3(size_t offset, const __constant float *p);
12567char4 __ovld vload4(size_t offset, const __constant char *p);
12568uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
12569short4 __ovld vload4(size_t offset, const __constant short *p);
12570ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
12571int4 __ovld vload4(size_t offset, const __constant int *p);
12572uint4 __ovld vload4(size_t offset, const __constant uint *p);
12573long4 __ovld vload4(size_t offset, const __constant long *p);
12574ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
12575float4 __ovld vload4(size_t offset, const __constant float *p);
12576char8 __ovld vload8(size_t offset, const __constant char *p);
12577uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
12578short8 __ovld vload8(size_t offset, const __constant short *p);
12579ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
12580int8 __ovld vload8(size_t offset, const __constant int *p);
12581uint8 __ovld vload8(size_t offset, const __constant uint *p);
12582long8 __ovld vload8(size_t offset, const __constant long *p);
12583ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
12584float8 __ovld vload8(size_t offset, const __constant float *p);
12585char16 __ovld vload16(size_t offset, const __constant char *p);
12586uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
12587short16 __ovld vload16(size_t offset, const __constant short *p);
12588ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
12589int16 __ovld vload16(size_t offset, const __constant int *p);
12590uint16 __ovld vload16(size_t offset, const __constant uint *p);
12591long16 __ovld vload16(size_t offset, const __constant long *p);
12592ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
12593float16 __ovld vload16(size_t offset, const __constant float *p);
12594#ifdef cl_khr_fp64
12595double2 __ovld vload2(size_t offset, const __constant double *p);
12596double3 __ovld vload3(size_t offset, const __constant double *p);
12597double4 __ovld vload4(size_t offset, const __constant double *p);
12598double8 __ovld vload8(size_t offset, const __constant double *p);
12599double16 __ovld vload16(size_t offset, const __constant double *p);
12600#endif //cl_khr_fp64
12601
12602#ifdef cl_khr_fp16
12603half __ovld vload(size_t offset, const __constant half *p);
12604half2 __ovld vload2(size_t offset, const __constant half *p);
12605half3 __ovld vload3(size_t offset, const __constant half *p);
12606half4 __ovld vload4(size_t offset, const __constant half *p);
12607half8 __ovld vload8(size_t offset, const __constant half *p);
12608half16 __ovld vload16(size_t offset, const __constant half *p);
12609#endif //cl_khr_fp16
12610
12611#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12612char2 __ovld vload2(size_t offset, const char *p);
12613uchar2 __ovld vload2(size_t offset, const uchar *p);
12614short2 __ovld vload2(size_t offset, const short *p);
12615ushort2 __ovld vload2(size_t offset, const ushort *p);
12616int2 __ovld vload2(size_t offset, const int *p);
12617uint2 __ovld vload2(size_t offset, const uint *p);
12618long2 __ovld vload2(size_t offset, const long *p);
12619ulong2 __ovld vload2(size_t offset, const ulong *p);
12620float2 __ovld vload2(size_t offset, const float *p);
12621char3 __ovld vload3(size_t offset, const char *p);
12622uchar3 __ovld vload3(size_t offset, const uchar *p);
12623short3 __ovld vload3(size_t offset, const short *p);
12624ushort3 __ovld vload3(size_t offset, const ushort *p);
12625int3 __ovld vload3(size_t offset, const int *p);
12626uint3 __ovld vload3(size_t offset, const uint *p);
12627long3 __ovld vload3(size_t offset, const long *p);
12628ulong3 __ovld vload3(size_t offset, const ulong *p);
12629float3 __ovld vload3(size_t offset, const float *p);
12630char4 __ovld vload4(size_t offset, const char *p);
12631uchar4 __ovld vload4(size_t offset, const uchar *p);
12632short4 __ovld vload4(size_t offset, const short *p);
12633ushort4 __ovld vload4(size_t offset, const ushort *p);
12634int4 __ovld vload4(size_t offset, const int *p);
12635uint4 __ovld vload4(size_t offset, const uint *p);
12636long4 __ovld vload4(size_t offset, const long *p);
12637ulong4 __ovld vload4(size_t offset, const ulong *p);
12638float4 __ovld vload4(size_t offset, const float *p);
12639char8 __ovld vload8(size_t offset, const char *p);
12640uchar8 __ovld vload8(size_t offset, const uchar *p);
12641short8 __ovld vload8(size_t offset, const short *p);
12642ushort8 __ovld vload8(size_t offset, const ushort *p);
12643int8 __ovld vload8(size_t offset, const int *p);
12644uint8 __ovld vload8(size_t offset, const uint *p);
12645long8 __ovld vload8(size_t offset, const long *p);
12646ulong8 __ovld vload8(size_t offset, const ulong *p);
12647float8 __ovld vload8(size_t offset, const float *p);
12648char16 __ovld vload16(size_t offset, const char *p);
12649uchar16 __ovld vload16(size_t offset, const uchar *p);
12650short16 __ovld vload16(size_t offset, const short *p);
12651ushort16 __ovld vload16(size_t offset, const ushort *p);
12652int16 __ovld vload16(size_t offset, const int *p);
12653uint16 __ovld vload16(size_t offset, const uint *p);
12654long16 __ovld vload16(size_t offset, const long *p);
12655ulong16 __ovld vload16(size_t offset, const ulong *p);
12656float16 __ovld vload16(size_t offset, const float *p);
12657
12658#ifdef cl_khr_fp64
12659double2 __ovld vload2(size_t offset, const double *p);
12660double3 __ovld vload3(size_t offset, const double *p);
12661double4 __ovld vload4(size_t offset, const double *p);
12662double8 __ovld vload8(size_t offset, const double *p);
12663double16 __ovld vload16(size_t offset, const double *p);
12664#endif //cl_khr_fp64
12665
12666#ifdef cl_khr_fp16
12667half __ovld vload(size_t offset, const half *p);
12668half2 __ovld vload2(size_t offset, const half *p);
12669half3 __ovld vload3(size_t offset, const half *p);
12670half4 __ovld vload4(size_t offset, const half *p);
12671half8 __ovld vload8(size_t offset, const half *p);
12672half16 __ovld vload16(size_t offset, const half *p);
12673#endif //cl_khr_fp16
12674#else
12675char2 __ovld vload2(size_t offset, const __global char *p);
12676uchar2 __ovld vload2(size_t offset, const __global uchar *p);
12677short2 __ovld vload2(size_t offset, const __global short *p);
12678ushort2 __ovld vload2(size_t offset, const __global ushort *p);
12679int2 __ovld vload2(size_t offset, const __global int *p);
12680uint2 __ovld vload2(size_t offset, const __global uint *p);
12681long2 __ovld vload2(size_t offset, const __global long *p);
12682ulong2 __ovld vload2(size_t offset, const __global ulong *p);
12683float2 __ovld vload2(size_t offset, const __global float *p);
12684char3 __ovld vload3(size_t offset, const __global char *p);
12685uchar3 __ovld vload3(size_t offset, const __global uchar *p);
12686short3 __ovld vload3(size_t offset, const __global short *p);
12687ushort3 __ovld vload3(size_t offset, const __global ushort *p);
12688int3 __ovld vload3(size_t offset, const __global int *p);
12689uint3 __ovld vload3(size_t offset, const __global uint *p);
12690long3 __ovld vload3(size_t offset, const __global long *p);
12691ulong3 __ovld vload3(size_t offset, const __global ulong *p);
12692float3 __ovld vload3(size_t offset, const __global float *p);
12693char4 __ovld vload4(size_t offset, const __global char *p);
12694uchar4 __ovld vload4(size_t offset, const __global uchar *p);
12695short4 __ovld vload4(size_t offset, const __global short *p);
12696ushort4 __ovld vload4(size_t offset, const __global ushort *p);
12697int4 __ovld vload4(size_t offset, const __global int *p);
12698uint4 __ovld vload4(size_t offset, const __global uint *p);
12699long4 __ovld vload4(size_t offset, const __global long *p);
12700ulong4 __ovld vload4(size_t offset, const __global ulong *p);
12701float4 __ovld vload4(size_t offset, const __global float *p);
12702char8 __ovld vload8(size_t offset, const __global char *p);
12703uchar8 __ovld vload8(size_t offset, const __global uchar *p);
12704short8 __ovld vload8(size_t offset, const __global short *p);
12705ushort8 __ovld vload8(size_t offset, const __global ushort *p);
12706int8 __ovld vload8(size_t offset, const __global int *p);
12707uint8 __ovld vload8(size_t offset, const __global uint *p);
12708long8 __ovld vload8(size_t offset, const __global long *p);
12709ulong8 __ovld vload8(size_t offset, const __global ulong *p);
12710float8 __ovld vload8(size_t offset, const __global float *p);
12711char16 __ovld vload16(size_t offset, const __global char *p);
12712uchar16 __ovld vload16(size_t offset, const __global uchar *p);
12713short16 __ovld vload16(size_t offset, const __global short *p);
12714ushort16 __ovld vload16(size_t offset, const __global ushort *p);
12715int16 __ovld vload16(size_t offset, const __global int *p);
12716uint16 __ovld vload16(size_t offset, const __global uint *p);
12717long16 __ovld vload16(size_t offset, const __global long *p);
12718ulong16 __ovld vload16(size_t offset, const __global ulong *p);
12719float16 __ovld vload16(size_t offset, const __global float *p);
12720char2 __ovld vload2(size_t offset, const __local char *p);
12721uchar2 __ovld vload2(size_t offset, const __local uchar *p);
12722short2 __ovld vload2(size_t offset, const __local short *p);
12723ushort2 __ovld vload2(size_t offset, const __local ushort *p);
12724int2 __ovld vload2(size_t offset, const __local int *p);
12725uint2 __ovld vload2(size_t offset, const __local uint *p);
12726long2 __ovld vload2(size_t offset, const __local long *p);
12727ulong2 __ovld vload2(size_t offset, const __local ulong *p);
12728float2 __ovld vload2(size_t offset, const __local float *p);
12729char3 __ovld vload3(size_t offset, const __local char *p);
12730uchar3 __ovld vload3(size_t offset, const __local uchar *p);
12731short3 __ovld vload3(size_t offset, const __local short *p);
12732ushort3 __ovld vload3(size_t offset, const __local ushort *p);
12733int3 __ovld vload3(size_t offset, const __local int *p);
12734uint3 __ovld vload3(size_t offset, const __local uint *p);
12735long3 __ovld vload3(size_t offset, const __local long *p);
12736ulong3 __ovld vload3(size_t offset, const __local ulong *p);
12737float3 __ovld vload3(size_t offset, const __local float *p);
12738char4 __ovld vload4(size_t offset, const __local char *p);
12739uchar4 __ovld vload4(size_t offset, const __local uchar *p);
12740short4 __ovld vload4(size_t offset, const __local short *p);
12741ushort4 __ovld vload4(size_t offset, const __local ushort *p);
12742int4 __ovld vload4(size_t offset, const __local int *p);
12743uint4 __ovld vload4(size_t offset, const __local uint *p);
12744long4 __ovld vload4(size_t offset, const __local long *p);
12745ulong4 __ovld vload4(size_t offset, const __local ulong *p);
12746float4 __ovld vload4(size_t offset, const __local float *p);
12747char8 __ovld vload8(size_t offset, const __local char *p);
12748uchar8 __ovld vload8(size_t offset, const __local uchar *p);
12749short8 __ovld vload8(size_t offset, const __local short *p);
12750ushort8 __ovld vload8(size_t offset, const __local ushort *p);
12751int8 __ovld vload8(size_t offset, const __local int *p);
12752uint8 __ovld vload8(size_t offset, const __local uint *p);
12753long8 __ovld vload8(size_t offset, const __local long *p);
12754ulong8 __ovld vload8(size_t offset, const __local ulong *p);
12755float8 __ovld vload8(size_t offset, const __local float *p);
12756char16 __ovld vload16(size_t offset, const __local char *p);
12757uchar16 __ovld vload16(size_t offset, const __local uchar *p);
12758short16 __ovld vload16(size_t offset, const __local short *p);
12759ushort16 __ovld vload16(size_t offset, const __local ushort *p);
12760int16 __ovld vload16(size_t offset, const __local int *p);
12761uint16 __ovld vload16(size_t offset, const __local uint *p);
12762long16 __ovld vload16(size_t offset, const __local long *p);
12763ulong16 __ovld vload16(size_t offset, const __local ulong *p);
12764float16 __ovld vload16(size_t offset, const __local float *p);
12765char2 __ovld vload2(size_t offset, const __private char *p);
12766uchar2 __ovld vload2(size_t offset, const __private uchar *p);
12767short2 __ovld vload2(size_t offset, const __private short *p);
12768ushort2 __ovld vload2(size_t offset, const __private ushort *p);
12769int2 __ovld vload2(size_t offset, const __private int *p);
12770uint2 __ovld vload2(size_t offset, const __private uint *p);
12771long2 __ovld vload2(size_t offset, const __private long *p);
12772ulong2 __ovld vload2(size_t offset, const __private ulong *p);
12773float2 __ovld vload2(size_t offset, const __private float *p);
12774char3 __ovld vload3(size_t offset, const __private char *p);
12775uchar3 __ovld vload3(size_t offset, const __private uchar *p);
12776short3 __ovld vload3(size_t offset, const __private short *p);
12777ushort3 __ovld vload3(size_t offset, const __private ushort *p);
12778int3 __ovld vload3(size_t offset, const __private int *p);
12779uint3 __ovld vload3(size_t offset, const __private uint *p);
12780long3 __ovld vload3(size_t offset, const __private long *p);
12781ulong3 __ovld vload3(size_t offset, const __private ulong *p);
12782float3 __ovld vload3(size_t offset, const __private float *p);
12783char4 __ovld vload4(size_t offset, const __private char *p);
12784uchar4 __ovld vload4(size_t offset, const __private uchar *p);
12785short4 __ovld vload4(size_t offset, const __private short *p);
12786ushort4 __ovld vload4(size_t offset, const __private ushort *p);
12787int4 __ovld vload4(size_t offset, const __private int *p);
12788uint4 __ovld vload4(size_t offset, const __private uint *p);
12789long4 __ovld vload4(size_t offset, const __private long *p);
12790ulong4 __ovld vload4(size_t offset, const __private ulong *p);
12791float4 __ovld vload4(size_t offset, const __private float *p);
12792char8 __ovld vload8(size_t offset, const __private char *p);
12793uchar8 __ovld vload8(size_t offset, const __private uchar *p);
12794short8 __ovld vload8(size_t offset, const __private short *p);
12795ushort8 __ovld vload8(size_t offset, const __private ushort *p);
12796int8 __ovld vload8(size_t offset, const __private int *p);
12797uint8 __ovld vload8(size_t offset, const __private uint *p);
12798long8 __ovld vload8(size_t offset, const __private long *p);
12799ulong8 __ovld vload8(size_t offset, const __private ulong *p);
12800float8 __ovld vload8(size_t offset, const __private float *p);
12801char16 __ovld vload16(size_t offset, const __private char *p);
12802uchar16 __ovld vload16(size_t offset, const __private uchar *p);
12803short16 __ovld vload16(size_t offset, const __private short *p);
12804ushort16 __ovld vload16(size_t offset, const __private ushort *p);
12805int16 __ovld vload16(size_t offset, const __private int *p);
12806uint16 __ovld vload16(size_t offset, const __private uint *p);
12807long16 __ovld vload16(size_t offset, const __private long *p);
12808ulong16 __ovld vload16(size_t offset, const __private ulong *p);
12809float16 __ovld vload16(size_t offset, const __private float *p);
12810
12811#ifdef cl_khr_fp64
12812double2 __ovld vload2(size_t offset, const __global double *p);
12813double3 __ovld vload3(size_t offset, const __global double *p);
12814double4 __ovld vload4(size_t offset, const __global double *p);
12815double8 __ovld vload8(size_t offset, const __global double *p);
12816double16 __ovld vload16(size_t offset, const __global double *p);
12817double2 __ovld vload2(size_t offset, const __local double *p);
12818double3 __ovld vload3(size_t offset, const __local double *p);
12819double4 __ovld vload4(size_t offset, const __local double *p);
12820double8 __ovld vload8(size_t offset, const __local double *p);
12821double16 __ovld vload16(size_t offset, const __local double *p);
12822double2 __ovld vload2(size_t offset, const __private double *p);
12823double3 __ovld vload3(size_t offset, const __private double *p);
12824double4 __ovld vload4(size_t offset, const __private double *p);
12825double8 __ovld vload8(size_t offset, const __private double *p);
12826double16 __ovld vload16(size_t offset, const __private double *p);
12827#endif //cl_khr_fp64
12828
12829#ifdef cl_khr_fp16
12830half __ovld vload(size_t offset, const __global half *p);
12831half2 __ovld vload2(size_t offset, const __global half *p);
12832half3 __ovld vload3(size_t offset, const __global half *p);
12833half4 __ovld vload4(size_t offset, const __global half *p);
12834half8 __ovld vload8(size_t offset, const __global half *p);
12835half16 __ovld vload16(size_t offset, const __global half *p);
12836half __ovld vload(size_t offset, const __local half *p);
12837half2 __ovld vload2(size_t offset, const __local half *p);
12838half3 __ovld vload3(size_t offset, const __local half *p);
12839half4 __ovld vload4(size_t offset, const __local half *p);
12840half8 __ovld vload8(size_t offset, const __local half *p);
12841half16 __ovld vload16(size_t offset, const __local half *p);
12842half __ovld vload(size_t offset, const __private half *p);
12843half2 __ovld vload2(size_t offset, const __private half *p);
12844half3 __ovld vload3(size_t offset, const __private half *p);
12845half4 __ovld vload4(size_t offset, const __private half *p);
12846half8 __ovld vload8(size_t offset, const __private half *p);
12847half16 __ovld vload16(size_t offset, const __private half *p);
12848#endif //cl_khr_fp16
12849#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
12850
12851#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
12852void __ovld vstore2(char2 data, size_t offset, char *p);
12853void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
12854void __ovld vstore2(short2 data, size_t offset, short *p);
12855void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
12856void __ovld vstore2(int2 data, size_t offset, int *p);
12857void __ovld vstore2(uint2 data, size_t offset, uint *p);
12858void __ovld vstore2(long2 data, size_t offset, long *p);
12859void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
12860void __ovld vstore2(float2 data, size_t offset, float *p);
12861void __ovld vstore3(char3 data, size_t offset, char *p);
12862void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
12863void __ovld vstore3(short3 data, size_t offset, short *p);
12864void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
12865void __ovld vstore3(int3 data, size_t offset, int *p);
12866void __ovld vstore3(uint3 data, size_t offset, uint *p);
12867void __ovld vstore3(long3 data, size_t offset, long *p);
12868void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
12869void __ovld vstore3(float3 data, size_t offset, float *p);
12870void __ovld vstore4(char4 data, size_t offset, char *p);
12871void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
12872void __ovld vstore4(short4 data, size_t offset, short *p);
12873void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
12874void __ovld vstore4(int4 data, size_t offset, int *p);
12875void __ovld vstore4(uint4 data, size_t offset, uint *p);
12876void __ovld vstore4(long4 data, size_t offset, long *p);
12877void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
12878void __ovld vstore4(float4 data, size_t offset, float *p);
12879void __ovld vstore8(char8 data, size_t offset, char *p);
12880void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
12881void __ovld vstore8(short8 data, size_t offset, short *p);
12882void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
12883void __ovld vstore8(int8 data, size_t offset, int *p);
12884void __ovld vstore8(uint8 data, size_t offset, uint *p);
12885void __ovld vstore8(long8 data, size_t offset, long *p);
12886void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
12887void __ovld vstore8(float8 data, size_t offset, float *p);
12888void __ovld vstore16(char16 data, size_t offset, char *p);
12889void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
12890void __ovld vstore16(short16 data, size_t offset, short *p);
12891void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
12892void __ovld vstore16(int16 data, size_t offset, int *p);
12893void __ovld vstore16(uint16 data, size_t offset, uint *p);
12894void __ovld vstore16(long16 data, size_t offset, long *p);
12895void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
12896void __ovld vstore16(float16 data, size_t offset, float *p);
12897#ifdef cl_khr_fp64
12898void __ovld vstore2(double2 data, size_t offset, double *p);
12899void __ovld vstore3(double3 data, size_t offset, double *p);
12900void __ovld vstore4(double4 data, size_t offset, double *p);
12901void __ovld vstore8(double8 data, size_t offset, double *p);
12902void __ovld vstore16(double16 data, size_t offset, double *p);
12903#endif //cl_khr_fp64
12904#ifdef cl_khr_fp16
12905void __ovld vstore(half data, size_t offset, half *p);
12906void __ovld vstore2(half2 data, size_t offset, half *p);
12907void __ovld vstore3(half3 data, size_t offset, half *p);
12908void __ovld vstore4(half4 data, size_t offset, half *p);
12909void __ovld vstore8(half8 data, size_t offset, half *p);
12910void __ovld vstore16(half16 data, size_t offset, half *p);
12911#endif //cl_khr_fp16
12912#else
12913void __ovld vstore2(char2 data, size_t offset, __global char *p);
12914void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
12915void __ovld vstore2(short2 data, size_t offset, __global short *p);
12916void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
12917void __ovld vstore2(int2 data, size_t offset, __global int *p);
12918void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
12919void __ovld vstore2(long2 data, size_t offset, __global long *p);
12920void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
12921void __ovld vstore2(float2 data, size_t offset, __global float *p);
12922void __ovld vstore3(char3 data, size_t offset, __global char *p);
12923void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
12924void __ovld vstore3(short3 data, size_t offset, __global short *p);
12925void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
12926void __ovld vstore3(int3 data, size_t offset, __global int *p);
12927void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
12928void __ovld vstore3(long3 data, size_t offset, __global long *p);
12929void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
12930void __ovld vstore3(float3 data, size_t offset, __global float *p);
12931void __ovld vstore4(char4 data, size_t offset, __global char *p);
12932void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
12933void __ovld vstore4(short4 data, size_t offset, __global short *p);
12934void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
12935void __ovld vstore4(int4 data, size_t offset, __global int *p);
12936void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
12937void __ovld vstore4(long4 data, size_t offset, __global long *p);
12938void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
12939void __ovld vstore4(float4 data, size_t offset, __global float *p);
12940void __ovld vstore8(char8 data, size_t offset, __global char *p);
12941void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
12942void __ovld vstore8(short8 data, size_t offset, __global short *p);
12943void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
12944void __ovld vstore8(int8 data, size_t offset, __global int *p);
12945void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
12946void __ovld vstore8(long8 data, size_t offset, __global long *p);
12947void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
12948void __ovld vstore8(float8 data, size_t offset, __global float *p);
12949void __ovld vstore16(char16 data, size_t offset, __global char *p);
12950void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
12951void __ovld vstore16(short16 data, size_t offset, __global short *p);
12952void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
12953void __ovld vstore16(int16 data, size_t offset, __global int *p);
12954void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
12955void __ovld vstore16(long16 data, size_t offset, __global long *p);
12956void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
12957void __ovld vstore16(float16 data, size_t offset, __global float *p);
12958void __ovld vstore2(char2 data, size_t offset, __local char *p);
12959void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
12960void __ovld vstore2(short2 data, size_t offset, __local short *p);
12961void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
12962void __ovld vstore2(int2 data, size_t offset, __local int *p);
12963void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
12964void __ovld vstore2(long2 data, size_t offset, __local long *p);
12965void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
12966void __ovld vstore2(float2 data, size_t offset, __local float *p);
12967void __ovld vstore3(char3 data, size_t offset, __local char *p);
12968void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
12969void __ovld vstore3(short3 data, size_t offset, __local short *p);
12970void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
12971void __ovld vstore3(int3 data, size_t offset, __local int *p);
12972void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
12973void __ovld vstore3(long3 data, size_t offset, __local long *p);
12974void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
12975void __ovld vstore3(float3 data, size_t offset, __local float *p);
12976void __ovld vstore4(char4 data, size_t offset, __local char *p);
12977void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
12978void __ovld vstore4(short4 data, size_t offset, __local short *p);
12979void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
12980void __ovld vstore4(int4 data, size_t offset, __local int *p);
12981void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
12982void __ovld vstore4(long4 data, size_t offset, __local long *p);
12983void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
12984void __ovld vstore4(float4 data, size_t offset, __local float *p);
12985void __ovld vstore8(char8 data, size_t offset, __local char *p);
12986void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
12987void __ovld vstore8(short8 data, size_t offset, __local short *p);
12988void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
12989void __ovld vstore8(int8 data, size_t offset, __local int *p);
12990void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
12991void __ovld vstore8(long8 data, size_t offset, __local long *p);
12992void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
12993void __ovld vstore8(float8 data, size_t offset, __local float *p);
12994void __ovld vstore16(char16 data, size_t offset, __local char *p);
12995void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
12996void __ovld vstore16(short16 data, size_t offset, __local short *p);
12997void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
12998void __ovld vstore16(int16 data, size_t offset, __local int *p);
12999void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
13000void __ovld vstore16(long16 data, size_t offset, __local long *p);
13001void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
13002void __ovld vstore16(float16 data, size_t offset, __local float *p);
13003void __ovld vstore2(char2 data, size_t offset, __private char *p);
13004void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
13005void __ovld vstore2(short2 data, size_t offset, __private short *p);
13006void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
13007void __ovld vstore2(int2 data, size_t offset, __private int *p);
13008void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
13009void __ovld vstore2(long2 data, size_t offset, __private long *p);
13010void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
13011void __ovld vstore2(float2 data, size_t offset, __private float *p);
13012void __ovld vstore3(char3 data, size_t offset, __private char *p);
13013void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
13014void __ovld vstore3(short3 data, size_t offset, __private short *p);
13015void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
13016void __ovld vstore3(int3 data, size_t offset, __private int *p);
13017void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
13018void __ovld vstore3(long3 data, size_t offset, __private long *p);
13019void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
13020void __ovld vstore3(float3 data, size_t offset, __private float *p);
13021void __ovld vstore4(char4 data, size_t offset, __private char *p);
13022void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
13023void __ovld vstore4(short4 data, size_t offset, __private short *p);
13024void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
13025void __ovld vstore4(int4 data, size_t offset, __private int *p);
13026void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
13027void __ovld vstore4(long4 data, size_t offset, __private long *p);
13028void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
13029void __ovld vstore4(float4 data, size_t offset, __private float *p);
13030void __ovld vstore8(char8 data, size_t offset, __private char *p);
13031void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
13032void __ovld vstore8(short8 data, size_t offset, __private short *p);
13033void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
13034void __ovld vstore8(int8 data, size_t offset, __private int *p);
13035void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
13036void __ovld vstore8(long8 data, size_t offset, __private long *p);
13037void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
13038void __ovld vstore8(float8 data, size_t offset, __private float *p);
13039void __ovld vstore16(char16 data, size_t offset, __private char *p);
13040void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
13041void __ovld vstore16(short16 data, size_t offset, __private short *p);
13042void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
13043void __ovld vstore16(int16 data, size_t offset, __private int *p);
13044void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
13045void __ovld vstore16(long16 data, size_t offset, __private long *p);
13046void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
13047void __ovld vstore16(float16 data, size_t offset, __private float *p);
13048#ifdef cl_khr_fp64
13049void __ovld vstore2(double2 data, size_t offset, __global double *p);
13050void __ovld vstore3(double3 data, size_t offset, __global double *p);
13051void __ovld vstore4(double4 data, size_t offset, __global double *p);
13052void __ovld vstore8(double8 data, size_t offset, __global double *p);
13053void __ovld vstore16(double16 data, size_t offset, __global double *p);
13054void __ovld vstore2(double2 data, size_t offset, __local double *p);
13055void __ovld vstore3(double3 data, size_t offset, __local double *p);
13056void __ovld vstore4(double4 data, size_t offset, __local double *p);
13057void __ovld vstore8(double8 data, size_t offset, __local double *p);
13058void __ovld vstore16(double16 data, size_t offset, __local double *p);
13059void __ovld vstore2(double2 data, size_t offset, __private double *p);
13060void __ovld vstore3(double3 data, size_t offset, __private double *p);
13061void __ovld vstore4(double4 data, size_t offset, __private double *p);
13062void __ovld vstore8(double8 data, size_t offset, __private double *p);
13063void __ovld vstore16(double16 data, size_t offset, __private double *p);
13064#endif //cl_khr_fp64
13065#ifdef cl_khr_fp16
13066void __ovld vstore(half data, size_t offset, __global half *p);
13067void __ovld vstore2(half2 data, size_t offset, __global half *p);
13068void __ovld vstore3(half3 data, size_t offset, __global half *p);
13069void __ovld vstore4(half4 data, size_t offset, __global half *p);
13070void __ovld vstore8(half8 data, size_t offset, __global half *p);
13071void __ovld vstore16(half16 data, size_t offset, __global half *p);
13072void __ovld vstore(half data, size_t offset, __local half *p);
13073void __ovld vstore2(half2 data, size_t offset, __local half *p);
13074void __ovld vstore3(half3 data, size_t offset, __local half *p);
13075void __ovld vstore4(half4 data, size_t offset, __local half *p);
13076void __ovld vstore8(half8 data, size_t offset, __local half *p);
13077void __ovld vstore16(half16 data, size_t offset, __local half *p);
13078void __ovld vstore(half data, size_t offset, __private half *p);
13079void __ovld vstore2(half2 data, size_t offset, __private half *p);
13080void __ovld vstore3(half3 data, size_t offset, __private half *p);
13081void __ovld vstore4(half4 data, size_t offset, __private half *p);
13082void __ovld vstore8(half8 data, size_t offset, __private half *p);
13083void __ovld vstore16(half16 data, size_t offset, __private half *p);
13084#endif //cl_khr_fp16
13085#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13086
13087/**
13088 * Read sizeof (half) bytes of data from address
13089 * (p + offset). The data read is interpreted as a
13090 * half value. The half value is converted to a
13091 * float value and the float value is returned.
13092 * The read address computed as (p + offset)
13093 * must be 16-bit aligned.
13094 */
13095float __ovld vload_half(size_t offset, const __constant half *p);
13096#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13097float __ovld vload_half(size_t offset, const half *p);
13098#else
13099float __ovld vload_half(size_t offset, const __global half *p);
13100float __ovld vload_half(size_t offset, const __local half *p);
13101float __ovld vload_half(size_t offset, const __private half *p);
13102#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13103
13104/**
13105 * Read sizeof (halfn) bytes of data from address
13106 * (p + (offset * n)). The data read is interpreted
13107 * as a halfn value. The halfn value read is
13108 * converted to a floatn value and the floatn
13109 * value is returned. The read address computed
13110 * as (p + (offset * n)) must be 16-bit aligned.
13111 */
13112float2 __ovld vload_half2(size_t offset, const __constant half *p);
13113float3 __ovld vload_half3(size_t offset, const __constant half *p);
13114float4 __ovld vload_half4(size_t offset, const __constant half *p);
13115float8 __ovld vload_half8(size_t offset, const __constant half *p);
13116float16 __ovld vload_half16(size_t offset, const __constant half *p);
13117#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13118float2 __ovld vload_half2(size_t offset, const half *p);
13119float3 __ovld vload_half3(size_t offset, const half *p);
13120float4 __ovld vload_half4(size_t offset, const half *p);
13121float8 __ovld vload_half8(size_t offset, const half *p);
13122float16 __ovld vload_half16(size_t offset, const half *p);
13123#else
13124float2 __ovld vload_half2(size_t offset, const __global half *p);
13125float3 __ovld vload_half3(size_t offset, const __global half *p);
13126float4 __ovld vload_half4(size_t offset, const __global half *p);
13127float8 __ovld vload_half8(size_t offset, const __global half *p);
13128float16 __ovld vload_half16(size_t offset, const __global half *p);
13129float2 __ovld vload_half2(size_t offset, const __local half *p);
13130float3 __ovld vload_half3(size_t offset, const __local half *p);
13131float4 __ovld vload_half4(size_t offset, const __local half *p);
13132float8 __ovld vload_half8(size_t offset, const __local half *p);
13133float16 __ovld vload_half16(size_t offset, const __local half *p);
13134float2 __ovld vload_half2(size_t offset, const __private half *p);
13135float3 __ovld vload_half3(size_t offset, const __private half *p);
13136float4 __ovld vload_half4(size_t offset, const __private half *p);
13137float8 __ovld vload_half8(size_t offset, const __private half *p);
13138float16 __ovld vload_half16(size_t offset, const __private half *p);
13139#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13140
13141/**
13142 * The float value given by data is first
13143 * converted to a half value using the appropriate
13144 * rounding mode. The half value is then written
13145 * to address computed as (p + offset). The
13146 * address computed as (p + offset) must be 16-
13147 * bit aligned.
13148 * vstore_half use the current rounding mode.
13149 * The default current rounding mode is round to
13150 * nearest even.
13151 */
13152#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13153void __ovld vstore_half(float data, size_t offset, half *p);
13154void __ovld vstore_half_rte(float data, size_t offset, half *p);
13155void __ovld vstore_half_rtz(float data, size_t offset, half *p);
13156void __ovld vstore_half_rtp(float data, size_t offset, half *p);
13157void __ovld vstore_half_rtn(float data, size_t offset, half *p);
13158#ifdef cl_khr_fp64
13159void __ovld vstore_half(double data, size_t offset, half *p);
13160void __ovld vstore_half_rte(double data, size_t offset, half *p);
13161void __ovld vstore_half_rtz(double data, size_t offset, half *p);
13162void __ovld vstore_half_rtp(double data, size_t offset, half *p);
13163void __ovld vstore_half_rtn(double data, size_t offset, half *p);
13164#endif //cl_khr_fp64
13165#else
13166void __ovld vstore_half(float data, size_t offset, __global half *p);
13167void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
13168void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
13169void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
13170void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
13171void __ovld vstore_half(float data, size_t offset, __local half *p);
13172void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
13173void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
13174void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
13175void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
13176void __ovld vstore_half(float data, size_t offset, __private half *p);
13177void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
13178void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
13179void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
13180void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
13181#ifdef cl_khr_fp64
13182void __ovld vstore_half(double data, size_t offset, __global half *p);
13183void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
13184void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
13185void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
13186void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
13187void __ovld vstore_half(double data, size_t offset, __local half *p);
13188void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
13189void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
13190void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
13191void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
13192void __ovld vstore_half(double data, size_t offset, __private half *p);
13193void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
13194void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
13195void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
13196void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
13197#endif //cl_khr_fp64
13198#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13199
13200/**
13201 * The floatn value given by data is converted to
13202 * a halfn value using the appropriate rounding
13203 * mode. The halfn value is then written to
13204 * address computed as (p + (offset * n)). The
13205 * address computed as (p + (offset * n)) must be
13206 * 16-bit aligned.
13207 * vstore_halfn uses the current rounding mode.
13208 * The default current rounding mode is round to
13209 * nearest even.
13210 */
13211#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13212void __ovld vstore_half2(float2 data, size_t offset, half *p);
13213void __ovld vstore_half3(float3 data, size_t offset, half *p);
13214void __ovld vstore_half4(float4 data, size_t offset, half *p);
13215void __ovld vstore_half8(float8 data, size_t offset, half *p);
13216void __ovld vstore_half16(float16 data, size_t offset, half *p);
13217void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
13218void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
13219void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
13220void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
13221void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
13222void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
13223void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
13224void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
13225void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
13226void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
13227void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
13228void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
13229void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
13230void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
13231void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
13232void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
13233void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
13234void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
13235void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
13236void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
13237#ifdef cl_khr_fp64
13238void __ovld vstore_half2(double2 data, size_t offset, half *p);
13239void __ovld vstore_half3(double3 data, size_t offset, half *p);
13240void __ovld vstore_half4(double4 data, size_t offset, half *p);
13241void __ovld vstore_half8(double8 data, size_t offset, half *p);
13242void __ovld vstore_half16(double16 data, size_t offset, half *p);
13243void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
13244void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
13245void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
13246void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
13247void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
13248void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
13249void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
13250void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
13251void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
13252void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
13253void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
13254void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
13255void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
13256void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
13257void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
13258void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
13259void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
13260void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
13261void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
13262void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
13263#endif //cl_khr_fp64
13264#else
13265void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
13266void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
13267void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
13268void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
13269void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
13270void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
13271void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
13272void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
13273void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
13274void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
13275void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
13276void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
13277void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
13278void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
13279void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
13280void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
13281void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
13282void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
13283void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
13284void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
13285void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
13286void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
13287void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
13288void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
13289void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
13290void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
13291void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
13292void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
13293void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
13294void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
13295void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
13296void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
13297void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
13298void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
13299void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
13300void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
13301void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
13302void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
13303void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
13304void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
13305void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
13306void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
13307void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
13308void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
13309void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
13310void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
13311void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
13312void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
13313void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
13314void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
13315void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
13316void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
13317void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
13318void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
13319void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
13320void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
13321void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
13322void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
13323void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
13324void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
13325void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
13326void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
13327void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
13328void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
13329void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
13330void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
13331void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
13332void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
13333void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
13334void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
13335void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
13336void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
13337void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
13338void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
13339void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
13340#ifdef cl_khr_fp64
13341void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
13342void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
13343void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
13344void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
13345void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
13346void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
13347void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
13348void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
13349void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
13350void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
13351void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
13352void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
13353void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
13354void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
13355void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
13356void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
13357void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
13358void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
13359void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
13360void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
13361void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
13362void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
13363void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
13364void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
13365void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
13366void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
13367void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
13368void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
13369void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
13370void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
13371void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
13372void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
13373void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
13374void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
13375void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
13376void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
13377void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
13378void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
13379void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
13380void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
13381void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
13382void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
13383void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
13384void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
13385void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
13386void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
13387void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
13388void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
13389void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
13390void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
13391void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
13392void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
13393void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
13394void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
13395void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
13396void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
13397void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
13398void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
13399void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
13400void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
13401void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
13402void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
13403void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
13404void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
13405void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
13406void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
13407void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
13408void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
13409void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
13410void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
13411void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
13412void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
13413void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
13414void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
13415void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
13416#endif //cl_khr_fp64
13417#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13418
13419/**
13420 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
13421 * bytes of data from address (p + (offset * n)).
13422 * The data read is interpreted as a halfn value.
13423 * The halfn value read is converted to a floatn
13424 * value and the floatn value is returned.
13425 * The address computed as (p + (offset * n))
13426 * must be aligned to sizeof (halfn) bytes.
13427 * For n = 3, vloada_half3 reads a half3 from
13428 * address (p + (offset * 4)) and returns a float3.
13429 * The address computed as (p + (offset * 4))
13430 * must be aligned to sizeof (half) * 4 bytes.
13431 */
13432float __ovld vloada_half(size_t offset, const __constant half *p);
13433float2 __ovld vloada_half2(size_t offset, const __constant half *p);
13434float3 __ovld vloada_half3(size_t offset, const __constant half *p);
13435float4 __ovld vloada_half4(size_t offset, const __constant half *p);
13436float8 __ovld vloada_half8(size_t offset, const __constant half *p);
13437float16 __ovld vloada_half16(size_t offset, const __constant half *p);
13438#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13439float __ovld vloada_half(size_t offset, const half *p);
13440float2 __ovld vloada_half2(size_t offset, const half *p);
13441float3 __ovld vloada_half3(size_t offset, const half *p);
13442float4 __ovld vloada_half4(size_t offset, const half *p);
13443float8 __ovld vloada_half8(size_t offset, const half *p);
13444float16 __ovld vloada_half16(size_t offset, const half *p);
13445#else
13446float __ovld vloada_half(size_t offset, const __global half *p);
13447float2 __ovld vloada_half2(size_t offset, const __global half *p);
13448float3 __ovld vloada_half3(size_t offset, const __global half *p);
13449float4 __ovld vloada_half4(size_t offset, const __global half *p);
13450float8 __ovld vloada_half8(size_t offset, const __global half *p);
13451float16 __ovld vloada_half16(size_t offset, const __global half *p);
13452float __ovld vloada_half(size_t offset, const __local half *p);
13453float2 __ovld vloada_half2(size_t offset, const __local half *p);
13454float3 __ovld vloada_half3(size_t offset, const __local half *p);
13455float4 __ovld vloada_half4(size_t offset, const __local half *p);
13456float8 __ovld vloada_half8(size_t offset, const __local half *p);
13457float16 __ovld vloada_half16(size_t offset, const __local half *p);
13458float __ovld vloada_half(size_t offset, const __private half *p);
13459float2 __ovld vloada_half2(size_t offset, const __private half *p);
13460float3 __ovld vloada_half3(size_t offset, const __private half *p);
13461float4 __ovld vloada_half4(size_t offset, const __private half *p);
13462float8 __ovld vloada_half8(size_t offset, const __private half *p);
13463float16 __ovld vloada_half16(size_t offset, const __private half *p);
13464#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13465
13466/**
13467 * The floatn value given by data is converted to
13468 * a halfn value using the appropriate rounding
13469 * mode.
13470 * For n = 1, 2, 4, 8 and 16, the halfn value is
13471 * written to the address computed as (p + (offset
13472 * * n)). The address computed as (p + (offset *
13473 * n)) must be aligned to sizeof (halfn) bytes.
13474 * For n = 3, the half3 value is written to the
13475 * address computed as (p + (offset * 4)). The
13476 * address computed as (p + (offset * 4)) must be
13477 * aligned to sizeof (half) * 4 bytes.
13478 * vstorea_halfn uses the current rounding
13479 * mode. The default current rounding mode is
13480 * round to nearest even.
13481 */
13482#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13483void __ovld vstorea_half(float data, size_t offset, half *p);
13484void __ovld vstorea_half2(float2 data, size_t offset, half *p);
13485void __ovld vstorea_half3(float3 data, size_t offset, half *p);
13486void __ovld vstorea_half4(float4 data, size_t offset, half *p);
13487void __ovld vstorea_half8(float8 data, size_t offset, half *p);
13488void __ovld vstorea_half16(float16 data, size_t offset, half *p);
13489
13490void __ovld vstorea_half_rte(float data, size_t offset, half *p);
13491void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
13492void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
13493void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
13494void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
13495void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
13496
13497void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
13498void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
13499void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
13500void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
13501void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
13502void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
13503
13504void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
13505void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
13506void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
13507void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
13508void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
13509void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
13510
13511void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
13512void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
13513void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
13514void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
13515void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
13516void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
13517
13518#ifdef cl_khr_fp64
13519void __ovld vstorea_half(double data, size_t offset, half *p);
13520void __ovld vstorea_half2(double2 data, size_t offset, half *p);
13521void __ovld vstorea_half3(double3 data, size_t offset, half *p);
13522void __ovld vstorea_half4(double4 data, size_t offset, half *p);
13523void __ovld vstorea_half8(double8 data, size_t offset, half *p);
13524void __ovld vstorea_half16(double16 data, size_t offset, half *p);
13525
13526void __ovld vstorea_half_rte(double data, size_t offset, half *p);
13527void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
13528void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
13529void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
13530void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
13531void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
13532
13533void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
13534void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
13535void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
13536void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
13537void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
13538void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
13539
13540void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
13541void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
13542void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
13543void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
13544void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
13545void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
13546
13547void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
13548void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
13549void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
13550void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
13551void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
13552void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
13553#endif //cl_khr_fp64
13554
13555#else
13556void __ovld vstorea_half(float data, size_t offset, __global half *p);
13557void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
13558void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
13559void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
13560void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
13561void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
13562
13563void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
13564void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
13565void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
13566void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
13567void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
13568void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
13569
13570void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
13571void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
13572void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
13573void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
13574void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
13575void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
13576
13577void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
13578void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
13579void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
13580void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
13581void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
13582void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
13583
13584void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
13585void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
13586void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
13587void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
13588void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
13589void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
13590
13591void __ovld vstorea_half(float data, size_t offset, __local half *p);
13592void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
13593void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
13594void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
13595void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
13596void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
13597
13598void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
13599void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
13600void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
13601void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
13602void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
13603void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
13604
13605void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
13606void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
13607void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
13608void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
13609void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
13610void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
13611
13612void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
13613void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
13614void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
13615void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
13616void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
13617void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
13618
13619void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
13620void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
13621void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
13622void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
13623void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
13624void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
13625
13626void __ovld vstorea_half(float data, size_t offset, __private half *p);
13627void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
13628void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
13629void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
13630void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
13631void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
13632
13633void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
13634void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
13635void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
13636void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
13637void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
13638void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
13639
13640void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
13641void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
13642void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
13643void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
13644void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
13645void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
13646
13647void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
13648void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
13649void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
13650void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
13651void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
13652void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
13653
13654void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
13655void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
13656void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
13657void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
13658void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
13659void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
13660
13661#ifdef cl_khr_fp64
13662void __ovld vstorea_half(double data, size_t offset, __global half *p);
13663void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
13664void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
13665void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
13666void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
13667void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
13668
13669void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
13670void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
13671void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
13672void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
13673void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
13674void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
13675
13676void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
13677void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
13678void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
13679void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
13680void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
13681void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
13682
13683void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
13684void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
13685void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
13686void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
13687void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
13688void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
13689
13690void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
13691void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
13692void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
13693void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
13694void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
13695void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
13696
13697void __ovld vstorea_half(double data, size_t offset, __local half *p);
13698void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
13699void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
13700void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
13701void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
13702void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
13703
13704void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
13705void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
13706void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
13707void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
13708void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
13709void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
13710
13711void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
13712void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
13713void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
13714void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
13715void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
13716void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
13717
13718void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
13719void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
13720void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
13721void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
13722void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
13723void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
13724
13725void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
13726void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
13727void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
13728void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
13729void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
13730void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
13731
13732void __ovld vstorea_half(double data, size_t offset, __private half *p);
13733void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
13734void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
13735void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
13736void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
13737void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
13738
13739void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
13740void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
13741void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
13742void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
13743void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
13744void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
13745
13746void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
13747void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
13748void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
13749void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
13750void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
13751void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
13752
13753void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
13754void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
13755void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
13756void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
13757void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
13758void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
13759
13760void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
13761void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
13762void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
13763void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
13764void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
13765void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
13766#endif //cl_khr_fp64
13767#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13768
13769// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
13770
13771// Flag type and values for barrier, mem_fence, read_mem_fence, write_mem_fence
13772typedef uint cl_mem_fence_flags;
13773
13774/**
13775 * Queue a memory fence to ensure correct
13776 * ordering of memory operations to local memory
13777 */
13778#define CLK_LOCAL_MEM_FENCE 0x01
13779
13780/**
13781 * Queue a memory fence to ensure correct
13782 * ordering of memory operations to global memory
13783 */
13784#define CLK_GLOBAL_MEM_FENCE 0x02
13785
13786#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13787/**
13788 * Queue a memory fence to ensure correct ordering of memory
13789 * operations between work-items of a work-group to
13790 * image memory.
13791 */
13792#define CLK_IMAGE_MEM_FENCE 0x04
13793#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13794
13795/**
13796 * All work-items in a work-group executing the kernel
13797 * on a processor must execute this function before any
13798 * are allowed to continue execution beyond the barrier.
13799 * This function must be encountered by all work-items in
13800 * a work-group executing the kernel.
13801 * If barrier is inside a conditional statement, then all
13802 * work-items must enter the conditional if any work-item
13803 * enters the conditional statement and executes the
13804 * barrier.
13805 * If barrer is inside a loop, all work-items must execute
13806 * the barrier for each iteration of the loop before any are
13807 * allowed to continue execution beyond the barrier.
13808 * The barrier function also queues a memory fence
13809 * (reads and writes) to ensure correct ordering of
13810 * memory operations to local or global memory.
13811 * The flags argument specifies the memory address space
13812 * and can be set to a combination of the following literal
13813 * values.
13814 * CLK_LOCAL_MEM_FENCE - The barrier function
13815 * will either flush any variables stored in local memory
13816 * or queue a memory fence to ensure correct ordering of
13817 * memory operations to local memory.
13818 * CLK_GLOBAL_MEM_FENCE - The barrier function
13819 * will queue a memory fence to ensure correct ordering
13820 * of memory operations to global memory. This can be
13821 * useful when work-items, for example, write to buffer or
13822 * image objects and then want to read the updated data.
13823 */
13824
13825void __ovld barrier(cl_mem_fence_flags flags);
13826
13827#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13828
13829typedef enum memory_scope
13830{
13831 memory_scope_work_item,
13832 memory_scope_work_group,
13833 memory_scope_device,
13834 memory_scope_all_svm_devices,
13835 memory_scope_sub_group
13836} memory_scope;
13837
13838void __ovld work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
13839void __ovld work_group_barrier(cl_mem_fence_flags flags);
13840#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13841
13842// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
13843
13844/**
13845 * Orders loads and stores of a work-item
13846 * executing a kernel. This means that loads
13847 * and stores preceding the mem_fence will
13848 * be committed to memory before any loads
13849 * and stores following the mem_fence.
13850 * The flags argument specifies the memory
13851 * address space and can be set to a
13852 * combination of the following literal
13853 * values:
13854 * CLK_LOCAL_MEM_FENCE
13855 * CLK_GLOBAL_MEM_FENCE.
13856 */
13857void __ovld mem_fence(cl_mem_fence_flags flags);
13858
13859/**
13860 * Read memory barrier that orders only
13861 * loads.
13862 * The flags argument specifies the memory
13863 * address space and can be set to to a
13864 * combination of the following literal
13865 * values:
13866 * CLK_LOCAL_MEM_FENCE
13867 * CLK_GLOBAL_MEM_FENCE.
13868 */
13869void __ovld read_mem_fence(cl_mem_fence_flags flags);
13870
13871/**
13872 * Write memory barrier that orders only
13873 * stores.
13874 * The flags argument specifies the memory
13875 * address space and can be set to to a
13876 * combination of the following literal
13877 * values:
13878 * CLK_LOCAL_MEM_FENCE
13879 * CLK_GLOBAL_MEM_FENCE.
13880 */
13881void __ovld write_mem_fence(cl_mem_fence_flags flags);
13882
13883// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
13884
13885#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
13886cl_mem_fence_flags __ovld get_fence(const void *ptr);
13887cl_mem_fence_flags __ovld get_fence(void *ptr);
13888
13889/**
13890 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
13891 * and checked in Sema since they should be declared as
13892 * addr gentype* to_addr (gentype*);
13893 * where gentype is builtin type or user defined type.
13894 */
13895
13896#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
13897
13898// 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
13899
13900/**
13901 * event_t async_work_group_copy (
13902 * __global gentype *dst,
13903 * const __local gentype *src,
13904 * size_t num_elements,
13905 * event_t event)
13906 * Perform an async copy of num_elements
13907 * gentype elements from src to dst. The async
13908 * copy is performed by all work-items in a workgroup
13909 * and this built-in function must therefore
13910 * be encountered by all work-items in a workgroup
13911 * executing the kernel with the same
13912 * argument values; otherwise the results are
13913 * undefined.
13914 * Returns an event object that can be used by
13915 * wait_group_events to wait for the async copy
13916 * to finish. The event argument can also be used
13917 * to associate the async_work_group_copy with
13918 * a previous async copy allowing an event to be
13919 * shared by multiple async copies; otherwise event
13920 * should be zero.
13921 * If event argument is non-zero, the event object
13922 * supplied in event argument will be returned.
13923 * This function does not perform any implicit
13924 * synchronization of source data such as using a
13925 * barrier before performing the copy.
13926 */
13927event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
13928event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
13929event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
13930event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
13931event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
13932event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
13933event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
13934event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
13935event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
13936event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
13937event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
13938event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
13939event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
13940event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
13941event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
13942event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
13943event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
13944event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
13945event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
13946event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
13947event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
13948event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
13949event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
13950event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
13951event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
13952event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
13953event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
13954event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
13955event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
13956event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
13957event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
13958event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
13959event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
13960event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
13961event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
13962event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
13963event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
13964event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
13965event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
13966event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
13967event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
13968event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
13969event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
13970event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
13971event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
13972event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
13973event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
13974event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
13975event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
13976event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
13977event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
13978event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
13979event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
13980event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
13981event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
13982event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
13983event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
13984event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
13985event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
13986event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
13987event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
13988event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
13989event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
13990event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
13991event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
13992event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
13993event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
13994event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
13995event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
13996event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
13997event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
13998event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
13999event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
14000event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
14001event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
14002event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
14003event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
14004event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
14005event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
14006event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
14007event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
14008event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
14009event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
14010event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
14011event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
14012event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
14013event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
14014event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
14015event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
14016event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
14017event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
14018event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
14019event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
14020event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
14021event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
14022event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
14023event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
14024event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
14025event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
14026event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
14027event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
14028event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
14029event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
14030event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
14031event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
14032event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
14033event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
14034event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
14035#ifdef cl_khr_fp64
14036event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
14037event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
14038event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
14039event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
14040event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
14041event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
14042event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
14043event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
14044event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
14045event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
14046event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
14047event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
14048#endif //cl_khr_fp64
14049#ifdef cl_khr_fp16
14050event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
14051event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
14052event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
14053event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
14054event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
14055event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
14056event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
14057event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
14058event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
14059event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
14060event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
14061event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
14062#endif //cl_khr_fp16
14063
14064/**
14065 * Perform an async gather of num_elements
14066 * gentype elements from src to dst. The
14067 * src_stride is the stride in elements for each
14068 * gentype element read from src. The dst_stride
14069 * is the stride in elements for each gentype
14070 * element written to dst. The async gather is
14071 * performed by all work-items in a work-group.
14072 * This built-in function must therefore be
14073 * encountered by all work-items in a work-group
14074 * executing the kernel with the same argument
14075 * values; otherwise the results are undefined.
14076 * Returns an event object that can be used by
14077 * wait_group_events to wait for the async copy
14078 * to finish. The event argument can also be used
14079 * to associate the
14080 * async_work_group_strided_copy with a
14081 * previous async copy allowing an event to be
14082 * shared by multiple async copies; otherwise event
14083 * should be zero.
14084 * If event argument is non-zero, the event object
14085 * supplied in event argument will be returned.
14086 * This function does not perform any implicit
14087 * synchronization of source data such as using a
14088 * barrier before performing the copy.
14089 */
14090event_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);
14091event_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);
14092event_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);
14093event_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);
14094event_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);
14095event_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);
14096event_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);
14097event_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);
14098event_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);
14099event_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);
14100event_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);
14101event_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);
14102event_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);
14103event_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);
14104event_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);
14105event_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);
14106event_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);
14107event_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);
14108event_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);
14109event_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);
14110event_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);
14111event_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);
14112event_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);
14113event_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);
14114event_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);
14115event_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);
14116event_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);
14117event_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);
14118event_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);
14119event_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);
14120event_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);
14121event_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);
14122event_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);
14123event_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);
14124event_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);
14125event_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);
14126event_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);
14127event_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);
14128event_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);
14129event_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);
14130event_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);
14131event_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);
14132event_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);
14133event_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);
14134event_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);
14135event_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);
14136event_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);
14137event_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);
14138event_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);
14139event_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);
14140event_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);
14141event_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);
14142event_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);
14143event_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);
14144event_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);
14145event_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);
14146event_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);
14147event_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);
14148event_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);
14149event_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);
14150event_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);
14151event_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);
14152event_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);
14153event_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);
14154event_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);
14155event_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);
14156event_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);
14157event_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);
14158event_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);
14159event_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);
14160event_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);
14161event_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);
14162event_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);
14163event_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);
14164event_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);
14165event_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);
14166event_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);
14167event_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);
14168event_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);
14169event_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);
14170event_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);
14171event_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);
14172event_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);
14173event_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);
14174event_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);
14175event_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);
14176event_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);
14177event_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);
14178event_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);
14179event_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);
14180event_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);
14181event_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);
14182event_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);
14183event_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);
14184event_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);
14185event_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);
14186event_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);
14187event_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);
14188event_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);
14189event_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);
14190event_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);
14191event_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);
14192event_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);
14193event_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);
14194event_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);
14195event_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);
14196event_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);
14197event_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);
14198#ifdef cl_khr_fp64
14199event_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);
14200event_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);
14201event_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);
14202event_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);
14203event_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);
14204event_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);
14205event_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);
14206event_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);
14207event_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);
14208event_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);
14209event_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);
14210event_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);
14211#endif //cl_khr_fp64
14212#ifdef cl_khr_fp16
14213event_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);
14214event_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);
14215event_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);
14216event_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);
14217event_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);
14218event_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);
14219event_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);
14220event_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);
14221event_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);
14222event_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);
14223event_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);
14224event_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);
14225#endif //cl_khr_fp16
14226
14227/**
14228 * Wait for events that identify the
14229 * async_work_group_copy operations to
14230 * complete. The event objects specified in
14231 * event_list will be released after the wait is
14232 * performed.
14233 * This function must be encountered by all workitems
14234 * in a work-group executing the kernel with
14235 * the same num_events and event objects specified
14236 * in event_list; otherwise the results are undefined.
14237 */
14238void __ovld wait_group_events(int num_events, event_t *event_list);
14239
14240/**
14241 * Prefetch num_elements * sizeof(gentype)
14242 * bytes into the global cache. The prefetch
14243 * instruction is applied to a work-item in a workgroup
14244 * and does not affect the functional
14245 * behavior of the kernel.
14246 */
14247void __ovld prefetch(const __global char *p, size_t num_elements);
14248void __ovld prefetch(const __global uchar *p, size_t num_elements);
14249void __ovld prefetch(const __global short *p, size_t num_elements);
14250void __ovld prefetch(const __global ushort *p, size_t num_elements);
14251void __ovld prefetch(const __global int *p, size_t num_elements);
14252void __ovld prefetch(const __global uint *p, size_t num_elements);
14253void __ovld prefetch(const __global long *p, size_t num_elements);
14254void __ovld prefetch(const __global ulong *p, size_t num_elements);
14255void __ovld prefetch(const __global float *p, size_t num_elements);
14256void __ovld prefetch(const __global char2 *p, size_t num_elements);
14257void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
14258void __ovld prefetch(const __global short2 *p, size_t num_elements);
14259void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
14260void __ovld prefetch(const __global int2 *p, size_t num_elements);
14261void __ovld prefetch(const __global uint2 *p, size_t num_elements);
14262void __ovld prefetch(const __global long2 *p, size_t num_elements);
14263void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
14264void __ovld prefetch(const __global float2 *p, size_t num_elements);
14265void __ovld prefetch(const __global char3 *p, size_t num_elements);
14266void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
14267void __ovld prefetch(const __global short3 *p, size_t num_elements);
14268void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
14269void __ovld prefetch(const __global int3 *p, size_t num_elements);
14270void __ovld prefetch(const __global uint3 *p, size_t num_elements);
14271void __ovld prefetch(const __global long3 *p, size_t num_elements);
14272void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
14273void __ovld prefetch(const __global float3 *p, size_t num_elements);
14274void __ovld prefetch(const __global char4 *p, size_t num_elements);
14275void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
14276void __ovld prefetch(const __global short4 *p, size_t num_elements);
14277void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
14278void __ovld prefetch(const __global int4 *p, size_t num_elements);
14279void __ovld prefetch(const __global uint4 *p, size_t num_elements);
14280void __ovld prefetch(const __global long4 *p, size_t num_elements);
14281void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
14282void __ovld prefetch(const __global float4 *p, size_t num_elements);
14283void __ovld prefetch(const __global char8 *p, size_t num_elements);
14284void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
14285void __ovld prefetch(const __global short8 *p, size_t num_elements);
14286void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
14287void __ovld prefetch(const __global int8 *p, size_t num_elements);
14288void __ovld prefetch(const __global uint8 *p, size_t num_elements);
14289void __ovld prefetch(const __global long8 *p, size_t num_elements);
14290void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
14291void __ovld prefetch(const __global float8 *p, size_t num_elements);
14292void __ovld prefetch(const __global char16 *p, size_t num_elements);
14293void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
14294void __ovld prefetch(const __global short16 *p, size_t num_elements);
14295void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
14296void __ovld prefetch(const __global int16 *p, size_t num_elements);
14297void __ovld prefetch(const __global uint16 *p, size_t num_elements);
14298void __ovld prefetch(const __global long16 *p, size_t num_elements);
14299void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
14300void __ovld prefetch(const __global float16 *p, size_t num_elements);
14301#ifdef cl_khr_fp64
14302void __ovld prefetch(const __global double *p, size_t num_elements);
14303void __ovld prefetch(const __global double2 *p, size_t num_elements);
14304void __ovld prefetch(const __global double3 *p, size_t num_elements);
14305void __ovld prefetch(const __global double4 *p, size_t num_elements);
14306void __ovld prefetch(const __global double8 *p, size_t num_elements);
14307void __ovld prefetch(const __global double16 *p, size_t num_elements);
14308#endif //cl_khr_fp64
14309#ifdef cl_khr_fp16
14310void __ovld prefetch(const __global half *p, size_t num_elements);
14311void __ovld prefetch(const __global half2 *p, size_t num_elements);
14312void __ovld prefetch(const __global half3 *p, size_t num_elements);
14313void __ovld prefetch(const __global half4 *p, size_t num_elements);
14314void __ovld prefetch(const __global half8 *p, size_t num_elements);
14315void __ovld prefetch(const __global half16 *p, size_t num_elements);
14316#endif // cl_khr_fp16
14317
14318// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
14319
14320#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14321#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14322#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14323#endif
14324/**
14325 * Read the 32-bit value (referred to as old)
14326 * stored at location pointed by p. Compute
14327 * (old + val) and store result at location
14328 * pointed by p. The function returns old.
14329 */
14330int __ovld atomic_add(volatile __global int *p, int val);
14331unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
14332int __ovld atomic_add(volatile __local int *p, int val);
14333unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
14334
14335#if defined(cl_khr_global_int32_base_atomics)
14336int __ovld atom_add(volatile __global int *p, int val);
14337unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
14338#endif
14339#if defined(cl_khr_local_int32_base_atomics)
14340int __ovld atom_add(volatile __local int *p, int val);
14341unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
14342#endif
14343
14344#if defined(cl_khr_int64_base_atomics)
14345long __ovld atom_add(volatile __global long *p, long val);
14346unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
14347long __ovld atom_add(volatile __local long *p, long val);
14348unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
14349#endif
14350
14351/**
14352 * Read the 32-bit value (referred to as old) stored at location pointed by p.
14353 * Compute (old - val) and store result at location pointed by p. The function
14354 * returns old.
14355 */
14356int __ovld atomic_sub(volatile __global int *p, int val);
14357unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
14358int __ovld atomic_sub(volatile __local int *p, int val);
14359unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
14360
14361#if defined(cl_khr_global_int32_base_atomics)
14362int __ovld atom_sub(volatile __global int *p, int val);
14363unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
14364#endif
14365#if defined(cl_khr_local_int32_base_atomics)
14366int __ovld atom_sub(volatile __local int *p, int val);
14367unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
14368#endif
14369
14370#if defined(cl_khr_int64_base_atomics)
14371long __ovld atom_sub(volatile __global long *p, long val);
14372unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
14373long __ovld atom_sub(volatile __local long *p, long val);
14374unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
14375#endif
14376
14377/**
14378 * Swaps the old value stored at location p
14379 * with new value given by val. Returns old
14380 * value.
14381 */
14382int __ovld atomic_xchg(volatile __global int *p, int val);
14383unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
14384int __ovld atomic_xchg(volatile __local int *p, int val);
14385unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
14386float __ovld atomic_xchg(volatile __global float *p, float val);
14387float __ovld atomic_xchg(volatile __local float *p, float val);
14388
14389#if defined(cl_khr_global_int32_base_atomics)
14390int __ovld atom_xchg(volatile __global int *p, int val);
14391int __ovld atom_xchg(volatile __local int *p, int val);
14392#endif
14393#if defined(cl_khr_local_int32_base_atomics)
14394unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
14395unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
14396#endif
14397
14398#if defined(cl_khr_int64_base_atomics)
14399long __ovld atom_xchg(volatile __global long *p, long val);
14400long __ovld atom_xchg(volatile __local long *p, long val);
14401unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
14402unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
14403#endif
14404
14405/**
14406 * Read the 32-bit value (referred to as old)
14407 * stored at location pointed by p. Compute
14408 * (old + 1) and store result at location
14409 * pointed by p. The function returns old.
14410 */
14411int __ovld atomic_inc(volatile __global int *p);
14412unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
14413int __ovld atomic_inc(volatile __local int *p);
14414unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
14415
14416#if defined(cl_khr_global_int32_base_atomics)
14417int __ovld atom_inc(volatile __global int *p);
14418unsigned int __ovld atom_inc(volatile __global unsigned int *p);
14419#endif
14420#if defined(cl_khr_local_int32_base_atomics)
14421int __ovld atom_inc(volatile __local int *p);
14422unsigned int __ovld atom_inc(volatile __local unsigned int *p);
14423#endif
14424
14425#if defined(cl_khr_int64_base_atomics)
14426long __ovld atom_inc(volatile __global long *p);
14427unsigned long __ovld atom_inc(volatile __global unsigned long *p);
14428long __ovld atom_inc(volatile __local long *p);
14429unsigned long __ovld atom_inc(volatile __local unsigned long *p);
14430#endif
14431
14432/**
14433 * Read the 32-bit value (referred to as old)
14434 * stored at location pointed by p. Compute
14435 * (old - 1) and store result at location
14436 * pointed by p. The function returns old.
14437 */
14438int __ovld atomic_dec(volatile __global int *p);
14439unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
14440int __ovld atomic_dec(volatile __local int *p);
14441unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
14442
14443#if defined(cl_khr_global_int32_base_atomics)
14444int __ovld atom_dec(volatile __global int *p);
14445unsigned int __ovld atom_dec(volatile __global unsigned int *p);
14446#endif
14447#if defined(cl_khr_local_int32_base_atomics)
14448int __ovld atom_dec(volatile __local int *p);
14449unsigned int __ovld atom_dec(volatile __local unsigned int *p);
14450#endif
14451
14452#if defined(cl_khr_int64_base_atomics)
14453long __ovld atom_dec(volatile __global long *p);
14454unsigned long __ovld atom_dec(volatile __global unsigned long *p);
14455long __ovld atom_dec(volatile __local long *p);
14456unsigned long __ovld atom_dec(volatile __local unsigned long *p);
14457#endif
14458
14459/**
14460 * Read the 32-bit value (referred to as old)
14461 * stored at location pointed by p. Compute
14462 * (old == cmp) ? val : old and store result at
14463 * location pointed by p. The function
14464 * returns old.
14465 */
14466int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
14467unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14468int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
14469unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14470
14471#if defined(cl_khr_global_int32_base_atomics)
14472int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
14473unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
14474#endif
14475#if defined(cl_khr_local_int32_base_atomics)
14476int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
14477unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
14478#endif
14479
14480#if defined(cl_khr_int64_base_atomics)
14481long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
14482unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
14483long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
14484unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
14485#endif
14486
14487/**
14488 * Read the 32-bit value (referred to as old)
14489 * stored at location pointed by p. Compute
14490 * min(old, val) and store minimum value at
14491 * location pointed by p. The function
14492 * returns old.
14493 */
14494int __ovld atomic_min(volatile __global int *p, int val);
14495unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
14496int __ovld atomic_min(volatile __local int *p, int val);
14497unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
14498
14499#if defined(cl_khr_global_int32_extended_atomics)
14500int __ovld atom_min(volatile __global int *p, int val);
14501unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
14502#endif
14503#if defined(cl_khr_local_int32_extended_atomics)
14504int __ovld atom_min(volatile __local int *p, int val);
14505unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
14506#endif
14507
14508#if defined(cl_khr_int64_extended_atomics)
14509long __ovld atom_min(volatile __global long *p, long val);
14510unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
14511#endif
14512#if defined(cl_khr_local_int32_extended_atomics)
14513long __ovld atom_min(volatile __local long *p, long val);
14514unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
14515#endif
14516
14517/**
14518 * Read the 32-bit value (referred to as old)
14519 * stored at location pointed by p. Compute
14520 * max(old, val) and store maximum value at
14521 * location pointed by p. The function
14522 * returns old.
14523 */
14524int __ovld atomic_max(volatile __global int *p, int val);
14525unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
14526int __ovld atomic_max(volatile __local int *p, int val);
14527unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
14528
14529#if defined(cl_khr_global_int32_extended_atomics)
14530int __ovld atom_max(volatile __global int *p, int val);
14531unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
14532#endif
14533#if defined(cl_khr_local_int32_extended_atomics)
14534int __ovld atom_max(volatile __local int *p, int val);
14535unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
14536#endif
14537
14538#if defined(cl_khr_int64_extended_atomics)
14539long __ovld atom_max(volatile __global long *p, long val);
14540unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
14541long __ovld atom_max(volatile __local long *p, long val);
14542unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
14543#endif
14544
14545/**
14546 * Read the 32-bit value (referred to as old)
14547 * stored at location pointed by p. Compute
14548 * (old & val) and store result at location
14549 * pointed by p. The function returns old.
14550 */
14551int __ovld atomic_and(volatile __global int *p, int val);
14552unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
14553int __ovld atomic_and(volatile __local int *p, int val);
14554unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
14555
14556#if defined(cl_khr_global_int32_extended_atomics)
14557int __ovld atom_and(volatile __global int *p, int val);
14558unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
14559#endif
14560#if defined(cl_khr_local_int32_extended_atomics)
14561int __ovld atom_and(volatile __local int *p, int val);
14562unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
14563#endif
14564
14565#if defined(cl_khr_int64_extended_atomics)
14566long __ovld atom_and(volatile __global long *p, long val);
14567unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
14568long __ovld atom_and(volatile __local long *p, long val);
14569unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
14570#endif
14571
14572/**
14573 * Read the 32-bit value (referred to as old)
14574 * stored at location pointed by p. Compute
14575 * (old | val) and store result at location
14576 * pointed by p. The function returns old.
14577 */
14578int __ovld atomic_or(volatile __global int *p, int val);
14579unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
14580int __ovld atomic_or(volatile __local int *p, int val);
14581unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
14582
14583#if defined(cl_khr_global_int32_extended_atomics)
14584int __ovld atom_or(volatile __global int *p, int val);
14585unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
14586#endif
14587#if defined(cl_khr_local_int32_extended_atomics)
14588int __ovld atom_or(volatile __local int *p, int val);
14589unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
14590#endif
14591
14592#if defined(cl_khr_int64_extended_atomics)
14593long __ovld atom_or(volatile __global long *p, long val);
14594unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
14595long __ovld atom_or(volatile __local long *p, long val);
14596unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
14597#endif
14598
14599/**
14600 * Read the 32-bit value (referred to as old)
14601 * stored at location pointed by p. Compute
14602 * (old ^ val) and store result at location
14603 * pointed by p. The function returns old.
14604 */
14605int __ovld atomic_xor(volatile __global int *p, int val);
14606unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
14607int __ovld atomic_xor(volatile __local int *p, int val);
14608unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
14609
14610#if defined(cl_khr_global_int32_extended_atomics)
14611int __ovld atom_xor(volatile __global int *p, int val);
14612unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
14613#endif
14614#if defined(cl_khr_local_int32_extended_atomics)
14615int __ovld atom_xor(volatile __local int *p, int val);
14616unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
14617#endif
14618
14619#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14620#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
14621#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
14622#endif
14623
14624// OpenCL v2.0 s6.13.11 - Atomics Functions
14625
14626#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
14627#ifndef ATOMIC_VAR_INIT
14628#define ATOMIC_VAR_INIT(x) (x)
14629#endif //ATOMIC_VAR_INIT
14630#define ATOMIC_FLAG_INIT 0
14631
14632// enum values aligned with what clang uses in EmitAtomicExpr()
14633typedef enum memory_order
14634{
14635 memory_order_relaxed,
14636 memory_order_acquire,
14637 memory_order_release,
14638 memory_order_acq_rel,
14639 memory_order_seq_cst
14640} memory_order;
14641
14642// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
14643#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14644#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
14645#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
14646#endif
14647
14648// atomic_init()
14649void __ovld atomic_init(volatile atomic_int *object, int value);
14650void __ovld atomic_init(volatile atomic_uint *object, uint value);
14651void __ovld atomic_init(volatile atomic_float *object, float value);
14652#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14653void __ovld atomic_init(volatile atomic_long *object, long value);
14654void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
14655#ifdef cl_khr_fp64
14656void __ovld atomic_init(volatile atomic_double *object, double value);
14657#endif //cl_khr_fp64
14658#endif
14659
14660// atomic_work_item_fence()
14661void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
14662
14663// atomic_fetch()
14664
14665int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
14666int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
14667int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14668uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
14669uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14670uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14671int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
14672int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
14673int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14674uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
14675uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14676uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14677int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
14678int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
14679int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14680uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
14681uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14682uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14683int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
14684int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
14685int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14686uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
14687uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14688uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14689int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
14690int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
14691int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14692uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
14693uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14694uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14695int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
14696int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
14697int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14698uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
14699uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14700uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14701uint __ovld atomic_fetch_min(volatile atomic_uint *object, int operand);
14702uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order);
14703uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14704int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
14705int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
14706int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
14707uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
14708uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
14709uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
14710uint __ovld atomic_fetch_max(volatile atomic_uint *object, int operand);
14711uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order);
14712uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, int operand, memory_order order, memory_scope scope);
14713
14714#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14715long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
14716long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
14717long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14718ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
14719ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14720ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14721long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
14722long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
14723long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14724ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
14725ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14726ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14727long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
14728long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
14729long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14730ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
14731ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14732ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14733long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
14734long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
14735long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14736ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
14737ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14738ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14739long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
14740long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
14741long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14742ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
14743ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14744ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14745long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
14746long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
14747long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14748ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
14749ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14750ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14751ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, long operand);
14752ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14753ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14754long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
14755long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
14756long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
14757ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
14758ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
14759ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
14760ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, long operand);
14761ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order);
14762ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, long operand, memory_order order, memory_scope scope);
14763#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14764
14765// OpenCL v2.0 s6.13.11.7.5:
14766// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
14767// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
14768
14769#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14770uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14771uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14772uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14773uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
14774uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
14775uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
14776
14777uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
14778uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14779uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14780uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
14781uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14782uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14783uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
14784uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
14785uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
14786uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
14787uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14788uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14789uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
14790uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
14791uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
14792
14793intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
14794intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14795intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14796intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
14797intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14798intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14799intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
14800intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
14801intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
14802intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
14803intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14804intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14805intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
14806intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
14807intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
14808#endif
14809
14810// atomic_store()
14811
14812void __ovld atomic_store(volatile atomic_int *object, int desired);
14813void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
14814void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14815void __ovld atomic_store(volatile atomic_uint *object, uint desired);
14816void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14817void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14818void __ovld atomic_store(volatile atomic_float *object, float desired);
14819void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
14820void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14821#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14822#ifdef cl_khr_fp64
14823void __ovld atomic_store(volatile atomic_double *object, double desired);
14824void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
14825void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14826#endif //cl_khr_fp64
14827void __ovld atomic_store(volatile atomic_long *object, long desired);
14828void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
14829void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14830void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
14831void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14832void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14833#endif
14834
14835// atomic_load()
14836
14837int __ovld atomic_load(volatile atomic_int *object);
14838int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
14839int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
14840uint __ovld atomic_load(volatile atomic_uint *object);
14841uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
14842uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
14843float __ovld atomic_load(volatile atomic_float *object);
14844float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
14845float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
14846#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14847#ifdef cl_khr_fp64
14848double __ovld atomic_load(volatile atomic_double *object);
14849double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
14850double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
14851#endif //cl_khr_fp64
14852long __ovld atomic_load(volatile atomic_long *object);
14853long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
14854long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
14855ulong __ovld atomic_load(volatile atomic_ulong *object);
14856ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
14857ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
14858#endif
14859
14860// atomic_exchange()
14861
14862int __ovld atomic_exchange(volatile atomic_int *object, int desired);
14863int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
14864int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14865uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
14866uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14867uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14868float __ovld atomic_exchange(volatile atomic_float *object, float desired);
14869float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
14870float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14871#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14872#ifdef cl_khr_fp64
14873double __ovld atomic_exchange(volatile atomic_double *object, double desired);
14874double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
14875double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14876#endif //cl_khr_fp64
14877long __ovld atomic_exchange(volatile atomic_long *object, long desired);
14878long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
14879long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14880ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
14881ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14882ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14883#endif
14884
14885// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
14886
14887bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
14888bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14889 int desired, memory_order success, memory_order failure);
14890bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14891 int desired, memory_order success, memory_order failure, memory_scope scope);
14892bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
14893bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14894 uint desired, memory_order success, memory_order failure);
14895bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14896 uint desired, memory_order success, memory_order failure, memory_scope scope);
14897bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
14898bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14899 int desired, memory_order success, memory_order failure);
14900bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14901 int desired, memory_order success, memory_order failure, memory_scope scope);
14902bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
14903bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14904 uint desired, memory_order success, memory_order failure);
14905bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14906 uint desired, memory_order success, memory_order failure, memory_scope scope);
14907bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
14908bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14909 float desired, memory_order success, memory_order failure);
14910bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14911 float desired, memory_order success, memory_order failure, memory_scope scope);
14912bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
14913bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14914 float desired, memory_order success, memory_order failure);
14915bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14916 float desired, memory_order success, memory_order failure, memory_scope scope);
14917#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14918#ifdef cl_khr_fp64
14919bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
14920bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14921 double desired, memory_order success, memory_order failure);
14922bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14923 double desired, memory_order success, memory_order failure, memory_scope scope);
14924bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
14925bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14926 double desired, memory_order success, memory_order failure);
14927bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14928 double desired, memory_order success, memory_order failure, memory_scope scope);
14929#endif //cl_khr_fp64
14930bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
14931bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14932 long desired, memory_order success, memory_order failure);
14933bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14934 long desired, memory_order success, memory_order failure, memory_scope scope);
14935bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
14936bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14937 long desired, memory_order success, memory_order failure);
14938bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14939 long desired, memory_order success, memory_order failure, memory_scope scope);
14940bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
14941bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14942 ulong desired, memory_order success, memory_order failure);
14943bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14944 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14945bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
14946bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14947 ulong desired, memory_order success, memory_order failure);
14948bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14949 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14950#endif
14951
14952// atomic_flag_test_and_set() and atomic_flag_clear()
14953
14954bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
14955bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
14956bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14957void __ovld atomic_flag_clear(volatile atomic_flag *object);
14958void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
14959void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14960
14961#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
14962
14963// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
14964
14965/**
14966 * The shuffle and shuffle2 built-in functions construct
14967 * a permutation of elements from one or two input
14968 * vectors respectively that are of the same type,
14969 * returning a vector with the same element type as the
14970 * input and length that is the same as the shuffle mask.
14971 * The size of each element in the mask must match the
14972 * size of each element in the result. For shuffle, only
14973 * the ilogb(2m-1) least significant bits of each mask
14974 * element are considered. For shuffle2, only the
14975 * ilogb(2m-1)+1 least significant bits of each mask
14976 * element are considered. Other bits in the mask shall
14977 * be ignored.
14978 * The elements of the input vectors are numbered from
14979 * left to right across one or both of the vectors. For this
14980 * purpose, the number of elements in a vector is given
14981 * by vec_step(gentypem). The shuffle mask operand
14982 * specifies, for each element of the result vector, which
14983 * element of the one or two input vectors the result
14984 * element gets.
14985 * Examples:
14986 * uint4 mask = (uint4)(3, 2,
14987 * 1, 0);
14988 * float4 a;
14989 * float4 r = shuffle(a, mask);
14990 * // r.s0123 = a.wzyx
14991 * uint8 mask = (uint8)(0, 1, 2, 3,
14992 * 4, 5, 6, 7);
14993 * float4 a, b;
14994 * float8 r = shuffle2(a, b, mask);
14995 * // r.s0123 = a.xyzw
14996 * // r.s4567 = b.xyzw
14997 * uint4 mask;
14998 * float8 a;
14999 * float4 b;
15000 * b = shuffle(a, mask);
15001 * Examples that are not valid are:
15002 * uint8 mask;
15003 * short16 a;
15004 * short8 b;
15005 * b = shuffle(a, mask); <- not valid
15006 */
15007char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
15008char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
15009char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
15010char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
15011
15012uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
15013uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
15014uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
15015uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
15016
15017short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
15018short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
15019short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
15020short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
15021
15022ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
15023ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
15024ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
15025ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
15026
15027int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
15028int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
15029int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
15030int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
15031
15032uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
15033uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
15034uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
15035uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
15036
15037long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
15038long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
15039long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
15040long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
15041
15042ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
15043ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
15044ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
15045ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
15046
15047float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
15048float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
15049float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
15050float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
15051
15052char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
15053char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
15054char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
15055char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
15056
15057uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
15058uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
15059uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
15060uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
15061
15062short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
15063short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
15064short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
15065short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
15066
15067ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
15068ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
15069ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
15070ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
15071
15072int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
15073int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
15074int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
15075int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
15076
15077uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
15078uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
15079uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
15080uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
15081
15082long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
15083long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
15084long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
15085long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
15086
15087ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
15088ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
15089ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
15090ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
15091
15092float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
15093float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
15094float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
15095float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
15096
15097char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
15098char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
15099char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
15100char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
15101
15102uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
15103uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
15104uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
15105uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
15106
15107short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
15108short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
15109short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
15110short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
15111
15112ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
15113ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
15114ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
15115ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
15116
15117int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
15118int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
15119int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
15120int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
15121
15122uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
15123uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
15124uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
15125uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
15126
15127long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
15128long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
15129long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
15130long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
15131
15132ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
15133ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
15134ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
15135ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
15136
15137float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
15138float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
15139float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
15140float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
15141
15142char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
15143char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
15144char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
15145char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
15146
15147uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
15148uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
15149uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
15150uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
15151
15152short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
15153short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
15154short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
15155short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
15156
15157ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
15158ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
15159ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
15160ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
15161
15162int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
15163int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
15164int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
15165int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
15166
15167uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
15168uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
15169uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
15170uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
15171
15172long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
15173long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
15174long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
15175long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
15176
15177ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
15178ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
15179ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
15180ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
15181
15182float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
15183float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
15184float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
15185float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
15186
15187#ifdef cl_khr_fp64
15188double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
15189double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
15190double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
15191double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
15192
15193double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
15194double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
15195double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
15196double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
15197
15198double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
15199double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
15200double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
15201double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
15202
15203double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
15204double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
15205double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
15206double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
15207#endif //cl_khr_fp64
15208
15209#ifdef cl_khr_fp16
15210half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
15211half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
15212half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
15213half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
15214
15215half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
15216half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
15217half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
15218half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
15219
15220half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
15221half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
15222half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
15223half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
15224
15225half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
15226half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
15227half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
15228half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
15229#endif //cl_khr_fp16
15230
15231char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
15232char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
15233char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
15234char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
15235
15236uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
15237uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
15238uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
15239uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
15240
15241short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
15242short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
15243short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
15244short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
15245
15246ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
15247ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
15248ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
15249ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
15250
15251int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
15252int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
15253int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
15254int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
15255
15256uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
15257uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
15258uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
15259uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
15260
15261long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
15262long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
15263long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
15264long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
15265
15266ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
15267ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
15268ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
15269ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
15270
15271float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
15272float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
15273float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
15274float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
15275
15276char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
15277char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
15278char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
15279char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
15280
15281uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
15282uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
15283uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
15284uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
15285
15286short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
15287short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
15288short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
15289short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
15290
15291ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
15292ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
15293ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
15294ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
15295
15296int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
15297int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
15298int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
15299int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
15300
15301uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
15302uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
15303uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
15304uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
15305
15306long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
15307long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
15308long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
15309long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
15310
15311ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
15312ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
15313ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
15314ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
15315
15316float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
15317float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
15318float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
15319float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
15320
15321char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
15322char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
15323char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
15324char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
15325
15326uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
15327uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
15328uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
15329uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
15330
15331short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
15332short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
15333short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
15334short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
15335
15336ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
15337ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
15338ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
15339ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
15340
15341int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
15342int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
15343int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
15344int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
15345
15346uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
15347uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
15348uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
15349uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
15350
15351long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
15352long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
15353long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
15354long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
15355
15356ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
15357ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
15358ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
15359ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
15360
15361float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
15362float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
15363float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
15364float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
15365
15366char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
15367char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
15368char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
15369char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
15370
15371uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
15372uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
15373uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
15374uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
15375
15376short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
15377short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
15378short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
15379short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
15380
15381ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
15382ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
15383ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
15384ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
15385
15386int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
15387int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
15388int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
15389int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
15390
15391uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
15392uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
15393uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
15394uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
15395
15396long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
15397long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
15398long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
15399long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
15400
15401ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
15402ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
15403ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
15404ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
15405
15406float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
15407float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
15408float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
15409float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
15410
15411#ifdef cl_khr_fp64
15412double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
15413double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
15414double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
15415double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
15416
15417double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
15418double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
15419double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
15420double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
15421
15422double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
15423double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
15424double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
15425double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
15426
15427double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
15428double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
15429double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
15430double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
15431#endif //cl_khr_fp64
15432
15433#ifdef cl_khr_fp16
15434half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
15435half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
15436half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
15437half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
15438
15439half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
15440half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
15441half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
15442half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
15443
15444half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
15445half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
15446half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
15447half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
15448
15449half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
15450half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
15451half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
15452half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
15453#endif //cl_khr_fp16
15454
15455// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
15456
15457int printf(__constant const char* st, ...);
15458
15459// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
15460
15461// These values need to match the runtime equivalent
15462//
15463// Addressing Mode.
15464//
15465#define CLK_ADDRESS_NONE 0
15466#define CLK_ADDRESS_CLAMP_TO_EDGE 2
15467#define CLK_ADDRESS_CLAMP 4
15468#define CLK_ADDRESS_REPEAT 6
15469#define CLK_ADDRESS_MIRRORED_REPEAT 8
15470
15471//
15472// Coordination Normalization
15473//
15474#define CLK_NORMALIZED_COORDS_FALSE 0
15475#define CLK_NORMALIZED_COORDS_TRUE 1
15476
15477//
15478// Filtering Mode.
15479//
15480#define CLK_FILTER_NEAREST 0x10
15481#define CLK_FILTER_LINEAR 0x20
15482
15483/**
15484 * Use the coordinate (coord.xy) to do an element lookup in
15485 * the 2D image object specified by image.
15486 *
15487 * Use the coordinate (coord.x, coord.y, coord.z) to do
15488 * an element lookup in the 3D image object specified
15489 * by image. coord.w is ignored.
15490 *
15491 * Use the coordinate (coord.z) to index into the
15492 * 2D image array object specified by image_array
15493 * and (coord.x, coord.y) to do an element lookup in
15494 * the 2D image object specified by image.
15495 *
15496 * Use the coordinate (x) to do an element lookup in
15497 * the 1D image object specified by image.
15498 *
15499 * Use the coordinate (coord.y) to index into the
15500 * 1D image array object specified by image_array
15501 * and (coord.x) to do an element lookup in
15502 * the 1D image object specified by image.
15503 *
15504 * Use the coordinate (cood.xy) and sample to do an
15505 * element lookup in the 2D multi-sample image specified
15506 * by image.
15507 *
15508 * Use coord.xy and sample to do an element
15509 * lookup in the 2D multi-sample image layer
15510 * identified by index coord.z in the 2D multi-sample
15511 * image array specified by image.
15512 *
15513 * For mipmap images, use the mip-level specified by
15514 * the Level-of-Detail (lod) or use gradients for LOD
15515 * computation.
15516 *
15517 * read_imagef returns floating-point values in the
15518 * range [0.0 ... 1.0] for image objects created with
15519 * image_channel_data_type set to one of the predefined
15520 * packed formats or CL_UNORM_INT8, or
15521 * CL_UNORM_INT16.
15522 *
15523 * read_imagef returns floating-point values in the
15524 * range [-1.0 ... 1.0] for image objects created with
15525 * image_channel_data_type set to CL_SNORM_INT8,
15526 * or CL_SNORM_INT16.
15527 *
15528 * read_imagef returns floating-point values for image
15529 * objects created with image_channel_data_type set to
15530 * CL_HALF_FLOAT or CL_FLOAT.
15531 *
15532 * read_imagei and read_imageui return
15533 * unnormalized signed integer and unsigned integer
15534 * values respectively. Each channel will be stored in a
15535 * 32-bit integer.
15536 *
15537 * read_imagei can only be used with image objects
15538 * created with image_channel_data_type set to one of
15539 * the following values:
15540 * CL_SIGNED_INT8,
15541 * CL_SIGNED_INT16 and
15542 * CL_SIGNED_INT32.
15543 * If the image_channel_data_type is not one of the
15544 * above values, the values returned by read_imagei
15545 * are undefined.
15546 *
15547 * read_imageui can only be used with image objects
15548 * created with image_channel_data_type set to one of
15549 * the following values:
15550 * CL_UNSIGNED_INT8,
15551 * CL_UNSIGNED_INT16 and
15552 * CL_UNSIGNED_INT32.
15553 * If the image_channel_data_type is not one of the
15554 * above values, the values returned by read_imageui
15555 * are undefined.
15556 *
15557 * The read_image{i|ui} calls support a nearest filter
15558 * only. The filter_mode specified in sampler
15559 * must be set to CLK_FILTER_NEAREST; otherwise
15560 * the values returned are undefined.
15561
15562 * The read_image{f|i|ui} calls that take
15563 * integer coordinates must use a sampler with
15564 * normalized coordinates set to
15565 * CLK_NORMALIZED_COORDS_FALSE and
15566 * addressing mode set to
15567 * CLK_ADDRESS_CLAMP_TO_EDGE,
15568 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
15569 * otherwise the values returned are undefined.
15570 *
15571 * Values returned by read_imagef for image objects
15572 * with image_channel_data_type values not specified
15573 * in the description above are undefined.
15574 */
15575
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015576float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
15577float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015578
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015579int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
15580int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
15581uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
15582uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015583
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015584float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
15585float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015586
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015587int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
15588int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
15589uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
15590uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015591
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015592float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15593float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015594
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015595int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15596int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15597uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15598uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015599
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015600float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
15601float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015602
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015603int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
15604int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
15605uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
15606uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015607
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015608float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15609float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015610
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015611int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15612int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15613uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15614uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015615
15616#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015617float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
15618float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015619
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015620float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
15621float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015622#endif //cl_khr_depth_images
15623
15624#if defined(cl_khr_gl_msaa_sharing)
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015625float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
15626int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
15627uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015628
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015629float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015630
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015631float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
15632int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
15633uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015634
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015635float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015636#endif //cl_khr_gl_msaa_sharing
15637
15638// OpenCL Extension v2.0 s9.18 - Mipmaps
15639#ifdef cl_khr_mipmap_image
15640
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015641float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15642int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15643uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015644
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015645float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15646int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15647uint4 __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 +000015648
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015649float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15650int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15651uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015652
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015653float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015654
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015655float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15656int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15657uint4 __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 +000015658
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015659float __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 +000015660
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015661float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15662int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15663uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 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_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15666int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15667uint4 __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 +000015668
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015669float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15670int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15671uint4 __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 +000015672
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015673float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15674int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15675uint4 __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 +000015676
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015677float __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 +000015678
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015679float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15680int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15681uint4 __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 +000015682
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015683float __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 +000015684
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015685float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15686int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15687uint4 __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 +000015688
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015689float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15690int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15691uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015692
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015693float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15694int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15695uint4 __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 +000015696
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015697float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15698int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15699uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015700
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015701float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015702
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015703float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15704int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15705uint4 __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 +000015706
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015707float __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 +000015708
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015709float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15710int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15711uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015712
15713#endif //cl_khr_mipmap_image
15714
15715/**
15716* Sampler-less Image Access
15717*/
15718
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015719float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
15720int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
15721uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015722
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015723float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
15724int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
15725uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015726
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015727float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
15728int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
15729uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015730
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015731float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
15732int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
15733uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015734
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015735float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
15736int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
15737uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015738
15739#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015740float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
15741float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015742#endif //cl_khr_depth_images
15743
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015744float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
15745int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
15746uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015747
15748// Image read functions returning half4 type
15749#ifdef cl_khr_fp16
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015750half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
15751half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
15752half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
15753half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
15754half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
15755half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
15756half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
15757half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
15758half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
15759half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
15760half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
15761half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
15762half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
15763half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
15764half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
15765half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015766#endif //cl_khr_fp16
15767
15768// Image read functions for read_write images
15769#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015770float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
15771int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
15772uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015773
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015774float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
15775int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
15776uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015777
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015778float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
15779int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
15780uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015781
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015782float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
15783int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
15784uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015785
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015786float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
15787int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
15788uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015789
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015790float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
15791int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
15792uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015793
15794#ifdef cl_khr_depth_images
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015795float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
15796float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015797#endif //cl_khr_depth_images
15798
15799#if cl_khr_gl_msaa_sharing
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015800float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
15801int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
15802uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015803
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015804float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
15805int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
15806uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015807
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015808float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
15809float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015810#endif //cl_khr_gl_msaa_sharing
15811
15812#ifdef cl_khr_mipmap_image
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015813float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15814int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15815uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015816
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015817float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15818int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15819uint4 __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 +000015820
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015821float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15822int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15823uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015824
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015825float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015826
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015827float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15828int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15829uint4 __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 +000015830
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015831float __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 +000015832
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015833float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15834int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15835uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 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_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15838int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15839uint4 __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 +000015840
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015841float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15842int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15843uint4 __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 +000015844
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015845float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15846int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15847uint4 __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 +000015848
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015849float __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 +000015850
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015851float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15852int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15853uint4 __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 +000015854
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015855float __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 +000015856
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015857float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15858int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15859uint4 __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 +000015860
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015861float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15862int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15863uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015864
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015865float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15866int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15867uint4 __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 +000015868
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015869float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15870int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15871uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015872
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015873float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015874
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015875float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15876int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15877uint4 __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 +000015878
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015879float __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 +000015880
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015881float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15882int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15883uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015884#endif //cl_khr_mipmap_image
15885
15886// Image read functions returning half4 type
15887#ifdef cl_khr_fp16
Alexey Badere5b3aeb2016-06-29 12:30:26 +000015888half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
15889half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
15890half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
15891half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
15892half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
15893half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
Yaxun Liue8f49b92016-05-30 02:22:28 +000015894#endif //cl_khr_fp16
15895#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
15896
15897/**
15898 * Write color value to location specified by coordinate
15899 * (coord.x, coord.y) in the 2D image object specified by image.
15900 * (coord.x, coord.y) are considered to be unnormalized coordinates
15901 * and must be in the range 0 ... image width - 1, and 0
15902 * ... image height - 1.
15903
15904 * Write color value to location specified by coordinate
15905 * (coord.x, coord.y) in the 2D image object specified by index
15906 * (coord.z) of the 2D image array object image_array.
15907 * (coord.x, coord.y) are considered to be unnormalized
15908 * coordinates and must be in the range 0 ... image width
15909 * - 1.
15910 *
15911 * Write color value to location specified by coordinate
15912 * (coord) in the 1D image (buffer) object specified by image.
15913 * coord is considered to be unnormalized coordinates
15914 * and must be in the range 0 ... image width - 1.
15915 *
15916 * Write color value to location specified by coordinate
15917 * (coord.x) in the 1D image object specified by index
15918 * (coord.y) of the 1D image array object image_array.
15919 * x is considered to be unnormalized coordinates
15920 * and must be in the range 0 ... image width - 1.
15921 *
15922 * Write color value to location specified by coordinate
15923 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
15924 * coord.x & coord.y are considered to be unnormalized coordinates
15925 * and must be in the range 0 ... image width - 1, and 0
15926 * ... image height - 1.
15927 *
15928 * For mipmap images, use mip-level specified by lod.
15929 *
15930 * Appropriate data format conversion to the specified
15931 * image format is done before writing the color value.
15932 *
15933 * write_imagef can only be used with image objects
15934 * created with image_channel_data_type set to one of
15935 * the pre-defined packed formats or set to
15936 * CL_SNORM_INT8, CL_UNORM_INT8,
15937 * CL_SNORM_INT16, CL_UNORM_INT16,
15938 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
15939 * format conversion will be done to convert channel
15940 * data from a floating-point value to actual data format
15941 * in which the channels are stored.
15942 *
15943 * write_imagei can only be used with image objects
15944 * created with image_channel_data_type set to one of
15945 * the following values:
15946 * CL_SIGNED_INT8,
15947 * CL_SIGNED_INT16 and
15948 * CL_SIGNED_INT32.
15949 *
15950 * write_imageui can only be used with image objects
15951 * created with image_channel_data_type set to one of
15952 * the following values:
15953 * CL_UNSIGNED_INT8,
15954 * CL_UNSIGNED_INT16 and
15955 * CL_UNSIGNED_INT32.
15956 *
15957 * The behavior of write_imagef, write_imagei and
15958 * write_imageui for image objects created with
15959 * image_channel_data_type values not specified in
15960 * the description above or with (x, y) coordinate
15961 * values that are not in the range (0 ... image width -1,
15962 * 0 ... image height - 1), respectively, is undefined.
15963 */
15964void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
15965void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
15966void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
15967
15968void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
15969void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
15970void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
15971
15972void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
15973void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
15974void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
15975
15976void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
15977void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
15978void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
15979
15980void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
15981void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
15982void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
15983
15984void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
15985void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
15986void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
15987
15988#ifdef cl_khr_depth_images
15989void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
15990void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
15991#endif //cl_khr_depth_images
15992
15993// OpenCL Extension v2.0 s9.18 - Mipmaps
15994#ifdef cl_khr_mipmap_image
15995void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
15996void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
15997void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
15998
15999void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
16000void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
16001void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
16002
16003void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
16004void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
16005void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
16006
16007void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
16008void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
16009void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
16010
16011void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float color);
16012void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float color);
16013
16014void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
16015void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
16016void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
16017#endif //cl_khr_mipmap_image
16018
16019// Image write functions for half4 type
16020#ifdef cl_khr_fp16
16021void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
16022void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
16023void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
16024void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
16025void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
16026void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
16027#endif //cl_khr_fp16
16028
16029// Image write functions for read_write images
16030#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16031void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
16032void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
16033void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
16034
16035void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
16036void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
16037void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
16038
16039void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
16040void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
16041void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
16042
16043void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
16044void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
16045void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
16046
16047void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
16048void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
16049void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
16050
16051void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
16052void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
16053void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
16054
16055#ifdef cl_khr_depth_images
16056void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
16057void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
16058#endif //cl_khr_depth_images
16059
16060#ifdef cl_khr_mipmap_image
16061void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
16062void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
16063void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
16064
16065void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
16066void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
16067void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
16068
16069void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
16070void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
16071void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
16072
16073void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
16074void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
16075void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
16076
16077void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
16078void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
16079
16080void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
16081void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
16082void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
16083#endif //cl_khr_mipmap_image
16084
16085// Image write functions for half4 type
16086#ifdef cl_khr_fp16
16087void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
16088void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
16089void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
16090void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
16091void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
16092void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
16093#endif //cl_khr_fp16
16094#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16095
16096// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
16097// access qualifier, which by default assume read_only access qualifier. Image query builtin
16098// functions with write_only image argument should also be declared.
16099
16100/**
16101 * Return the image width in pixels.
16102 *
16103 */
16104int __ovld __cnfn get_image_width(read_only image1d_t image);
16105int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
16106int __ovld __cnfn get_image_width(read_only image2d_t image);
16107int __ovld __cnfn get_image_width(read_only image3d_t image);
16108int __ovld __cnfn get_image_width(read_only image1d_array_t image);
16109int __ovld __cnfn get_image_width(read_only image2d_array_t image);
16110#ifdef cl_khr_depth_images
16111int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
16112int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
16113#endif //cl_khr_depth_images
16114#if defined(cl_khr_gl_msaa_sharing)
16115int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
16116int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
16117int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
16118int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
16119#endif //cl_khr_gl_msaa_sharing
16120
16121int __ovld __cnfn get_image_width(write_only image1d_t image);
16122int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
16123int __ovld __cnfn get_image_width(write_only image2d_t image);
16124int __ovld __cnfn get_image_width(write_only image3d_t image);
16125int __ovld __cnfn get_image_width(write_only image1d_array_t image);
16126int __ovld __cnfn get_image_width(write_only image2d_array_t image);
16127#ifdef cl_khr_depth_images
16128int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
16129int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
16130#endif //cl_khr_depth_images
16131#if defined(cl_khr_gl_msaa_sharing)
16132int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
16133int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
16134int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
16135int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
16136#endif //cl_khr_gl_msaa_sharing
16137
16138#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16139int __ovld __cnfn get_image_width(read_write image1d_t image);
16140int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
16141int __ovld __cnfn get_image_width(read_write image2d_t image);
16142int __ovld __cnfn get_image_width(read_write image3d_t image);
16143int __ovld __cnfn get_image_width(read_write image1d_array_t image);
16144int __ovld __cnfn get_image_width(read_write image2d_array_t image);
16145#ifdef cl_khr_depth_images
16146int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
16147int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
16148#endif //cl_khr_depth_images
16149#if defined(cl_khr_gl_msaa_sharing)
16150int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
16151int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
16152int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
16153int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
16154#endif //cl_khr_gl_msaa_sharing
16155#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16156
16157/**
16158 * Return the image height in pixels.
16159 */
16160int __ovld __cnfn get_image_height(read_only image2d_t image);
16161int __ovld __cnfn get_image_height(read_only image3d_t image);
16162int __ovld __cnfn get_image_height(read_only image2d_array_t image);
16163#ifdef cl_khr_depth_images
16164int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
16165int __ovld __cnfn get_image_height(read_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_height(read_only image2d_msaa_t image);
16169int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
16170int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
16171int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
16172#endif //cl_khr_gl_msaa_sharing
16173
16174int __ovld __cnfn get_image_height(write_only image2d_t image);
16175int __ovld __cnfn get_image_height(write_only image3d_t image);
16176int __ovld __cnfn get_image_height(write_only image2d_array_t image);
16177#ifdef cl_khr_depth_images
16178int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
16179int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
16180#endif //cl_khr_depth_images
16181#if defined(cl_khr_gl_msaa_sharing)
16182int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
16183int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
16184int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
16185int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
16186#endif //cl_khr_gl_msaa_sharing
16187
16188#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16189int __ovld __cnfn get_image_height(read_write image2d_t image);
16190int __ovld __cnfn get_image_height(read_write image3d_t image);
16191int __ovld __cnfn get_image_height(read_write image2d_array_t image);
16192#ifdef cl_khr_depth_images
16193int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
16194int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
16195#endif //cl_khr_depth_images
16196#if defined(cl_khr_gl_msaa_sharing)
16197int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
16198int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
16199int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
16200int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
16201#endif //cl_khr_gl_msaa_sharing
16202#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16203
16204/**
16205 * Return the image depth in pixels.
16206 */
16207int __ovld __cnfn get_image_depth(read_only image3d_t image);
16208
16209int __ovld __cnfn get_image_depth(write_only image3d_t image);
16210
16211#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16212int __ovld __cnfn get_image_depth(read_write image3d_t image);
16213#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16214
16215// OpenCL Extension v2.0 s9.18 - Mipmaps
16216#ifdef cl_khr_mipmap_image
16217/**
16218 * Return the image miplevels.
16219 */
16220
16221int __ovld get_image_num_mip_levels(read_only image1d_t image);
16222int __ovld get_image_num_mip_levels(read_only image2d_t image);
16223int __ovld get_image_num_mip_levels(read_only image3d_t image);
16224
16225int __ovld get_image_num_mip_levels(write_only image1d_t image);
16226int __ovld get_image_num_mip_levels(write_only image2d_t image);
16227int __ovld get_image_num_mip_levels(write_only image3d_t image);
16228
16229#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16230int __ovld get_image_num_mip_levels(read_write image1d_t image);
16231int __ovld get_image_num_mip_levels(read_write image2d_t image);
16232int __ovld get_image_num_mip_levels(read_write image3d_t image);
16233#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16234
16235int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
16236int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
16237int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
16238int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
16239
16240int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
16241int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
16242int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
16243int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
16244
16245#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16246int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
16247int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
16248int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
16249int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
16250#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16251
16252#endif //cl_khr_mipmap_image
16253
16254/**
16255 * Return the channel data type. Valid values are:
16256 * CLK_SNORM_INT8
16257 * CLK_SNORM_INT16
16258 * CLK_UNORM_INT8
16259 * CLK_UNORM_INT16
16260 * CLK_UNORM_SHORT_565
16261 * CLK_UNORM_SHORT_555
16262 * CLK_UNORM_SHORT_101010
16263 * CLK_SIGNED_INT8
16264 * CLK_SIGNED_INT16
16265 * CLK_SIGNED_INT32
16266 * CLK_UNSIGNED_INT8
16267 * CLK_UNSIGNED_INT16
16268 * CLK_UNSIGNED_INT32
16269 * CLK_HALF_FLOAT
16270 * CLK_FLOAT
16271 */
16272
16273//
16274// Channel Datatype.
16275//
16276#define CLK_SNORM_INT8 0x10D0
16277#define CLK_SNORM_INT16 0x10D1
16278#define CLK_UNORM_INT8 0x10D2
16279#define CLK_UNORM_INT16 0x10D3
16280#define CLK_UNORM_SHORT_565 0x10D4
16281#define CLK_UNORM_SHORT_555 0x10D5
16282#define CLK_UNORM_INT_101010 0x10D6
16283#define CLK_SIGNED_INT8 0x10D7
16284#define CLK_SIGNED_INT16 0x10D8
16285#define CLK_SIGNED_INT32 0x10D9
16286#define CLK_UNSIGNED_INT8 0x10DA
16287#define CLK_UNSIGNED_INT16 0x10DB
16288#define CLK_UNSIGNED_INT32 0x10DC
16289#define CLK_HALF_FLOAT 0x10DD
16290#define CLK_FLOAT 0x10DE
16291#define CLK_UNORM_INT24 0x10DF
16292
16293int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
16294int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
16295int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
16296int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
16297int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
16298int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
16299#ifdef cl_khr_depth_images
16300int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
16301int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
16302#endif //cl_khr_depth_images
16303#if defined(cl_khr_gl_msaa_sharing)
16304int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
16305int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
16306int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
16307int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
16308#endif //cl_khr_gl_msaa_sharing
16309
16310int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
16311int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
16312int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
16313int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
16314int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
16315int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
16316#ifdef cl_khr_depth_images
16317int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
16318int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
16319#endif //cl_khr_depth_images
16320#if defined(cl_khr_gl_msaa_sharing)
16321int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
16322int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
16323int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
16324int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
16325#endif //cl_khr_gl_msaa_sharing
16326
16327#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16328int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
16329int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
16330int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
16331int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
16332int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
16333int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
16334#ifdef cl_khr_depth_images
16335int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
16336int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
16337#endif //cl_khr_depth_images
16338#if defined(cl_khr_gl_msaa_sharing)
16339int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
16340int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
16341int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
16342int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
16343#endif //cl_khr_gl_msaa_sharing
16344#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16345
16346/**
16347 * Return the image channel order. Valid values are:
16348 * CLK_A
16349 * CLK_R
16350 * CLK_Rx
16351 * CLK_RG
16352 * CLK_RGx
16353 * CLK_RA
16354 * CLK_RGB
16355 * CLK_RGBx
16356 * CLK_RGBA
16357 * CLK_ARGB
16358 * CLK_BGRA
16359 * CLK_INTENSITY
16360 * CLK_LUMINANCE
16361 */
16362// Channel order, numbering must be aligned with cl_channel_order in cl.h
16363//
16364#define CLK_R 0x10B0
16365#define CLK_A 0x10B1
16366#define CLK_RG 0x10B2
16367#define CLK_RA 0x10B3
16368#define CLK_RGB 0x10B4
16369#define CLK_RGBA 0x10B5
16370#define CLK_BGRA 0x10B6
16371#define CLK_ARGB 0x10B7
16372#define CLK_INTENSITY 0x10B8
16373#define CLK_LUMINANCE 0x10B9
16374#define CLK_Rx 0x10BA
16375#define CLK_RGx 0x10BB
16376#define CLK_RGBx 0x10BC
16377#define CLK_DEPTH 0x10BD
16378#define CLK_DEPTH_STENCIL 0x10BE
16379#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16380#define CLK_sRGB 0x10BF
16381#define CLK_sRGBA 0x10C1
16382#define CLK_sRGBx 0x10C0
16383#define CLK_sBGRA 0x10C2
Yaxun Liuc944e652016-07-29 17:50:10 +000016384#define CLK_ABGR 0x10C3
Yaxun Liue8f49b92016-05-30 02:22:28 +000016385#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16386
16387int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
16388int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
16389int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
16390int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
16391int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
16392int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
16393#ifdef cl_khr_depth_images
16394int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
16395int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
16396#endif //cl_khr_depth_images
16397#if defined(cl_khr_gl_msaa_sharing)
16398int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
16399int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
16400int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
16401int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
16402#endif //cl_khr_gl_msaa_sharing
16403
16404int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
16405int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
16406int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
16407int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
16408int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
16409int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
16410#ifdef cl_khr_depth_images
16411int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
16412int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
16413#endif //cl_khr_depth_images
16414#if defined(cl_khr_gl_msaa_sharing)
16415int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
16416int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
16417int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
16418int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
16419#endif //cl_khr_gl_msaa_sharing
16420
16421#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16422int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
16423int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
16424int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
16425int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
16426int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
16427int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
16428#ifdef cl_khr_depth_images
16429int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
16430int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
16431#endif //cl_khr_depth_images
16432#if defined(cl_khr_gl_msaa_sharing)
16433int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
16434int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
16435int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
16436int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
16437#endif //cl_khr_gl_msaa_sharing
16438#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16439
16440/**
16441 * Return the 2D image width and height as an int2
16442 * type. The width is returned in the x component, and
16443 * the height in the y component.
16444 */
16445int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
16446int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
16447#ifdef cl_khr_depth_images
16448int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
16449int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
16450#endif //cl_khr_depth_images
16451#if defined(cl_khr_gl_msaa_sharing)
16452int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
16453int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
16454int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
16455int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
16456#endif //cl_khr_gl_msaa_sharing
16457
16458int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
16459int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
16460#ifdef cl_khr_depth_images
16461int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
16462int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
16463#endif //cl_khr_depth_images
16464#if defined(cl_khr_gl_msaa_sharing)
16465int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
16466int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
16467int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
16468int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
16469#endif //cl_khr_gl_msaa_sharing
16470
16471#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16472int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
16473int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
16474#ifdef cl_khr_depth_images
16475int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
16476int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
16477#endif //cl_khr_depth_images
16478#if defined(cl_khr_gl_msaa_sharing)
16479int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
16480int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
16481int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
16482int2 __ovld __cnfn get_image_dim(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 3D image width, height, and depth as an
16488 * int4 type. The width is returned in the x
16489 * component, height in the y component, depth in the z
16490 * component and the w component is 0.
16491 */
16492int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
16493int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
16494#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16495int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
16496#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16497
16498/**
16499 * Return the image array size.
16500 */
16501
16502size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
16503size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
16504#ifdef cl_khr_depth_images
16505size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
16506#endif //cl_khr_depth_images
16507#if defined(cl_khr_gl_msaa_sharing)
16508size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
16509size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
16510#endif //cl_khr_gl_msaa_sharing
16511
16512size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
16513size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
16514#ifdef cl_khr_depth_images
16515size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
16516#endif //cl_khr_depth_images
16517#if defined(cl_khr_gl_msaa_sharing)
16518size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
16519size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
16520#endif //cl_khr_gl_msaa_sharing
16521
16522#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16523size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
16524size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
16525#ifdef cl_khr_depth_images
16526size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
16527#endif //cl_khr_depth_images
16528#if defined(cl_khr_gl_msaa_sharing)
16529size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
16530size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
16531#endif //cl_khr_gl_msaa_sharing
16532#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16533
16534/**
16535* Return the number of samples associated with image
16536*/
16537#if defined(cl_khr_gl_msaa_sharing)
16538int __ovld get_image_num_samples(read_only image2d_msaa_t image);
16539int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
16540int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16541int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
16542int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16543
16544int __ovld get_image_num_samples(write_only image2d_msaa_t image);
16545int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
16546int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16547int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
16548int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16549
16550#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16551int __ovld get_image_num_samples(read_write image2d_msaa_t image);
16552int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
16553int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16554int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
16555int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
16556#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16557#endif
16558
16559// OpenCL v2.0 s6.13.15 - Work-group Functions
16560
16561#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16562int __ovld work_group_all(int predicate);
16563int __ovld work_group_any(int predicate);
16564
16565#ifdef cl_khr_fp16
16566half __ovld work_group_broadcast(half a, size_t local_id);
16567half __ovld work_group_broadcast(half a, size_t x, size_t y);
16568half __ovld work_group_broadcast(half a, size_t x, size_t y, size_t z);
16569#endif
16570int __ovld work_group_broadcast(int a, size_t local_id);
16571int __ovld work_group_broadcast(int a, size_t x, size_t y);
16572int __ovld work_group_broadcast(int a, size_t x, size_t y, size_t z);
16573uint __ovld work_group_broadcast(uint a, size_t local_id);
16574uint __ovld work_group_broadcast(uint a, size_t x, size_t y);
16575uint __ovld work_group_broadcast(uint a, size_t x, size_t y, size_t z);
16576long __ovld work_group_broadcast(long a, size_t local_id);
16577long __ovld work_group_broadcast(long a, size_t x, size_t y);
16578long __ovld work_group_broadcast(long a, size_t x, size_t y, size_t z);
16579ulong __ovld work_group_broadcast(ulong a, size_t local_id);
16580ulong __ovld work_group_broadcast(ulong a, size_t x, size_t y);
16581ulong __ovld work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
16582float __ovld work_group_broadcast(float a, size_t local_id);
16583float __ovld work_group_broadcast(float a, size_t x, size_t y);
16584float __ovld work_group_broadcast(float a, size_t x, size_t y, size_t z);
16585#ifdef cl_khr_fp64
16586double __ovld work_group_broadcast(double a, size_t local_id);
16587double __ovld work_group_broadcast(double a, size_t x, size_t y);
16588double __ovld work_group_broadcast(double a, size_t x, size_t y, size_t z);
16589#endif //cl_khr_fp64
16590
16591#ifdef cl_khr_fp16
16592half __ovld work_group_reduce_add(half x);
16593half __ovld work_group_reduce_min(half x);
16594half __ovld work_group_reduce_max(half x);
16595half __ovld work_group_scan_exclusive_add(half x);
16596half __ovld work_group_scan_exclusive_min(half x);
16597half __ovld work_group_scan_exclusive_max(half x);
16598half __ovld work_group_scan_inclusive_add(half x);
16599half __ovld work_group_scan_inclusive_min(half x);
16600half __ovld work_group_scan_inclusive_max(half x);
16601#endif
16602int __ovld work_group_reduce_add(int x);
16603int __ovld work_group_reduce_min(int x);
16604int __ovld work_group_reduce_max(int x);
16605int __ovld work_group_scan_exclusive_add(int x);
16606int __ovld work_group_scan_exclusive_min(int x);
16607int __ovld work_group_scan_exclusive_max(int x);
16608int __ovld work_group_scan_inclusive_add(int x);
16609int __ovld work_group_scan_inclusive_min(int x);
16610int __ovld work_group_scan_inclusive_max(int x);
16611uint __ovld work_group_reduce_add(uint x);
16612uint __ovld work_group_reduce_min(uint x);
16613uint __ovld work_group_reduce_max(uint x);
16614uint __ovld work_group_scan_exclusive_add(uint x);
16615uint __ovld work_group_scan_exclusive_min(uint x);
16616uint __ovld work_group_scan_exclusive_max(uint x);
16617uint __ovld work_group_scan_inclusive_add(uint x);
16618uint __ovld work_group_scan_inclusive_min(uint x);
16619uint __ovld work_group_scan_inclusive_max(uint x);
16620long __ovld work_group_reduce_add(long x);
16621long __ovld work_group_reduce_min(long x);
16622long __ovld work_group_reduce_max(long x);
16623long __ovld work_group_scan_exclusive_add(long x);
16624long __ovld work_group_scan_exclusive_min(long x);
16625long __ovld work_group_scan_exclusive_max(long x);
16626long __ovld work_group_scan_inclusive_add(long x);
16627long __ovld work_group_scan_inclusive_min(long x);
16628long __ovld work_group_scan_inclusive_max(long x);
16629ulong __ovld work_group_reduce_add(ulong x);
16630ulong __ovld work_group_reduce_min(ulong x);
16631ulong __ovld work_group_reduce_max(ulong x);
16632ulong __ovld work_group_scan_exclusive_add(ulong x);
16633ulong __ovld work_group_scan_exclusive_min(ulong x);
16634ulong __ovld work_group_scan_exclusive_max(ulong x);
16635ulong __ovld work_group_scan_inclusive_add(ulong x);
16636ulong __ovld work_group_scan_inclusive_min(ulong x);
16637ulong __ovld work_group_scan_inclusive_max(ulong x);
16638float __ovld work_group_reduce_add(float x);
16639float __ovld work_group_reduce_min(float x);
16640float __ovld work_group_reduce_max(float x);
16641float __ovld work_group_scan_exclusive_add(float x);
16642float __ovld work_group_scan_exclusive_min(float x);
16643float __ovld work_group_scan_exclusive_max(float x);
16644float __ovld work_group_scan_inclusive_add(float x);
16645float __ovld work_group_scan_inclusive_min(float x);
16646float __ovld work_group_scan_inclusive_max(float x);
16647#ifdef cl_khr_fp64
16648double __ovld work_group_reduce_add(double x);
16649double __ovld work_group_reduce_min(double x);
16650double __ovld work_group_reduce_max(double x);
16651double __ovld work_group_scan_exclusive_add(double x);
16652double __ovld work_group_scan_exclusive_min(double x);
16653double __ovld work_group_scan_exclusive_max(double x);
16654double __ovld work_group_scan_inclusive_add(double x);
16655double __ovld work_group_scan_inclusive_min(double x);
16656double __ovld work_group_scan_inclusive_max(double x);
16657#endif //cl_khr_fp64
16658
16659#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16660
16661// OpenCL v2.0 s6.13.16 - Pipe Functions
16662#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16663#define PIPE_RESERVE_ID_VALID_BIT (1U << 30)
16664#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
16665bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
16666#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16667
16668
16669// OpenCL v2.0 s6.13.17 - Enqueue Kernels
16670#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16671
16672#define CL_COMPLETE 0x0
16673#define CL_RUNNING 0x1
16674#define CL_SUBMITTED 0x2
16675#define CL_QUEUED 0x3
16676
16677#define CLK_SUCCESS 0
16678#define CLK_ENQUEUE_FAILURE -101
16679#define CLK_INVALID_QUEUE -102
16680#define CLK_INVALID_NDRANGE -160
16681#define CLK_INVALID_EVENT_WAIT_LIST -57
16682#define CLK_DEVICE_QUEUE_FULL -161
16683#define CLK_INVALID_ARG_SIZE -51
16684#define CLK_EVENT_ALLOCATION_FAILURE -100
16685#define CLK_OUT_OF_RESOURCES -5
16686
16687#define CLK_NULL_QUEUE 0
16688#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
16689
16690// execution model related definitions
16691#define CLK_ENQUEUE_FLAGS_NO_WAIT 0x0
16692#define CLK_ENQUEUE_FLAGS_WAIT_KERNEL 0x1
16693#define CLK_ENQUEUE_FLAGS_WAIT_WORK_GROUP 0x2
16694
16695typedef int kernel_enqueue_flags_t;
16696typedef int clk_profiling_info;
16697
16698// Profiling info name (see capture_event_profiling_info)
16699#define CLK_PROFILING_COMMAND_EXEC_TIME 0x1
16700
16701#define MAX_WORK_DIM 3
16702
16703// ToDo: Remove definition of ndrange_t in Clang as an opaque type and add back
16704// the following ndrange_t definition.
16705#if 0
16706typedef struct {
16707 unsigned int workDimension;
16708 size_t globalWorkOffset[MAX_WORK_DIM];
16709 size_t globalWorkSize[MAX_WORK_DIM];
16710 size_t localWorkSize[MAX_WORK_DIM];
16711} ndrange_t;
16712#endif
16713
16714ndrange_t __ovld ndrange_1D(size_t);
16715ndrange_t __ovld ndrange_1D(size_t, size_t);
16716ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
16717
16718ndrange_t __ovld ndrange_2D(const size_t[2]);
16719ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
16720ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
16721
16722ndrange_t __ovld ndrange_3D(const size_t[3]);
16723ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
16724ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
16725
Yaxun Liue8f49b92016-05-30 02:22:28 +000016726int __ovld enqueue_marker(queue_t, uint, const __private clk_event_t*, __private clk_event_t*);
16727
16728void __ovld retain_event(clk_event_t);
16729
16730void __ovld release_event(clk_event_t);
16731
16732clk_event_t create_user_event(void);
16733
16734void __ovld set_user_event_status(clk_event_t e, int state);
16735
16736bool is_valid_event (clk_event_t event);
16737
16738void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
16739
16740queue_t __ovld get_default_queue(void);
16741#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16742
16743// OpenCL Extension v2.0 s9.17 - Sub-groups
16744
16745#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
16746// Shared Sub Group Functions
16747uint __ovld get_sub_group_size(void);
16748uint __ovld get_max_sub_group_size(void);
16749uint __ovld get_num_sub_groups(void);
16750#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16751uint __ovld get_enqueued_num_sub_groups(void);
16752#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16753uint __ovld get_sub_group_id(void);
16754uint __ovld get_sub_group_local_id(void);
16755
16756void __ovld sub_group_barrier(cl_mem_fence_flags flags);
16757#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
16758void __ovld sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
16759#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
16760
16761int __ovld sub_group_all(int predicate);
16762int __ovld sub_group_any(int predicate);
16763
16764int __ovld sub_group_broadcast(int x, uint sub_group_local_id);
16765uint __ovld sub_group_broadcast(uint x, uint sub_group_local_id);
16766long __ovld sub_group_broadcast(long x, uint sub_group_local_id);
16767ulong __ovld sub_group_broadcast(ulong x, uint sub_group_local_id);
16768float __ovld sub_group_broadcast(float x, uint sub_group_local_id);
16769
16770int __ovld sub_group_reduce_add(int x);
16771uint __ovld sub_group_reduce_add(uint x);
16772long __ovld sub_group_reduce_add(long x);
16773ulong __ovld sub_group_reduce_add(ulong x);
16774float __ovld sub_group_reduce_add(float x);
16775int __ovld sub_group_reduce_min(int x);
16776uint __ovld sub_group_reduce_min(uint x);
16777long __ovld sub_group_reduce_min(long x);
16778ulong __ovld sub_group_reduce_min(ulong x);
16779float __ovld sub_group_reduce_min(float x);
16780int __ovld sub_group_reduce_max(int x);
16781uint __ovld sub_group_reduce_max(uint x);
16782long __ovld sub_group_reduce_max(long x);
16783ulong __ovld sub_group_reduce_max(ulong x);
16784float __ovld sub_group_reduce_max(float x);
16785
16786int __ovld sub_group_scan_exclusive_add(int x);
16787uint __ovld sub_group_scan_exclusive_add(uint x);
16788long __ovld sub_group_scan_exclusive_add(long x);
16789ulong __ovld sub_group_scan_exclusive_add(ulong x);
16790float __ovld sub_group_scan_exclusive_add(float x);
16791int __ovld sub_group_scan_exclusive_min(int x);
16792uint __ovld sub_group_scan_exclusive_min(uint x);
16793long __ovld sub_group_scan_exclusive_min(long x);
16794ulong __ovld sub_group_scan_exclusive_min(ulong x);
16795float __ovld sub_group_scan_exclusive_min(float x);
16796int __ovld sub_group_scan_exclusive_max(int x);
16797uint __ovld sub_group_scan_exclusive_max(uint x);
16798long __ovld sub_group_scan_exclusive_max(long x);
16799ulong __ovld sub_group_scan_exclusive_max(ulong x);
16800float __ovld sub_group_scan_exclusive_max(float x);
16801
16802int __ovld sub_group_scan_inclusive_add(int x);
16803uint __ovld sub_group_scan_inclusive_add(uint x);
16804long __ovld sub_group_scan_inclusive_add(long x);
16805ulong __ovld sub_group_scan_inclusive_add(ulong x);
16806float __ovld sub_group_scan_inclusive_add(float x);
16807int __ovld sub_group_scan_inclusive_min(int x);
16808uint __ovld sub_group_scan_inclusive_min(uint x);
16809long __ovld sub_group_scan_inclusive_min(long x);
16810ulong __ovld sub_group_scan_inclusive_min(ulong x);
16811float __ovld sub_group_scan_inclusive_min(float x);
16812int __ovld sub_group_scan_inclusive_max(int x);
16813uint __ovld sub_group_scan_inclusive_max(uint x);
16814long __ovld sub_group_scan_inclusive_max(long x);
16815ulong __ovld sub_group_scan_inclusive_max(ulong x);
16816float __ovld sub_group_scan_inclusive_max(float x);
16817
16818#ifdef cl_khr_fp16
16819half __ovld sub_group_broadcast(half x, uint sub_group_local_id);
16820half __ovld sub_group_reduce_add(half x);
16821half __ovld sub_group_reduce_min(half x);
16822half __ovld sub_group_reduce_max(half x);
16823half __ovld sub_group_scan_exclusive_add(half x);
16824half __ovld sub_group_scan_exclusive_min(half x);
16825half __ovld sub_group_scan_exclusive_max(half x);
16826half __ovld sub_group_scan_inclusive_add(half x);
16827half __ovld sub_group_scan_inclusive_min(half x);
16828half __ovld sub_group_scan_inclusive_max(half x);
16829#endif //cl_khr_fp16
16830
16831#ifdef cl_khr_fp64
16832double __ovld sub_group_broadcast(double x, uint sub_group_local_id);
16833double __ovld sub_group_reduce_add(double x);
16834double __ovld sub_group_reduce_min(double x);
16835double __ovld sub_group_reduce_max(double x);
16836double __ovld sub_group_scan_exclusive_add(double x);
16837double __ovld sub_group_scan_exclusive_min(double x);
16838double __ovld sub_group_scan_exclusive_max(double x);
16839double __ovld sub_group_scan_inclusive_add(double x);
16840double __ovld sub_group_scan_inclusive_min(double x);
16841double __ovld sub_group_scan_inclusive_max(double x);
16842#endif //cl_khr_fp64
16843
16844#endif //cl_khr_subgroups cl_intel_subgroups
16845
Yaxun Liu33174462016-08-16 20:49:49 +000016846#ifdef cl_amd_media_ops
16847uint __ovld amd_bitalign(uint a, uint b, uint c);
16848uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
16849uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
16850uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
16851uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
16852uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
16853
16854uint __ovld amd_bytealign(uint a, uint b, uint c);
16855uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
16856uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
16857uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
16858uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
16859uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
16860
16861uint __ovld amd_lerp(uint a, uint b, uint c);
16862uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
16863uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
16864uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
16865uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
16866uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
16867
16868uint __ovld amd_pack(float4 v);
16869
16870uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
16871
16872uint __ovld amd_sadhi(uint a, uint b, uint c);
16873uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
16874uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
16875uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
16876uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
16877uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
16878
16879uint __ovld amd_sad(uint a, uint b, uint c);
16880uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
16881uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
16882uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
16883uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
16884uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
16885
16886float __ovld amd_unpack0(uint a);
16887float2 __ovld amd_unpack0(uint2 a);
16888float3 __ovld amd_unpack0(uint3 a);
16889float4 __ovld amd_unpack0(uint4 a);
16890float8 __ovld amd_unpack0(uint8 a);
16891float16 __ovld amd_unpack0(uint16 a);
16892
16893float __ovld amd_unpack1(uint a);
16894float2 __ovld amd_unpack1(uint2 a);
16895float3 __ovld amd_unpack1(uint3 a);
16896float4 __ovld amd_unpack1(uint4 a);
16897float8 __ovld amd_unpack1(uint8 a);
16898float16 __ovld amd_unpack1(uint16 a);
16899
16900float __ovld amd_unpack2(uint a);
16901float2 __ovld amd_unpack2(uint2 a);
16902float3 __ovld amd_unpack2(uint3 a);
16903float4 __ovld amd_unpack2(uint4 a);
16904float8 __ovld amd_unpack2(uint8 a);
16905float16 __ovld amd_unpack2(uint16 a);
16906
16907float __ovld amd_unpack3(uint a);
16908float2 __ovld amd_unpack3(uint2 a);
16909float3 __ovld amd_unpack3(uint3 a);
16910float4 __ovld amd_unpack3(uint4 a);
16911float8 __ovld amd_unpack3(uint8 a);
16912float16 __ovld amd_unpack3(uint16 a);
16913#endif // cl_amd_media_ops
16914
16915#ifdef cl_amd_media_ops2
16916int __ovld amd_bfe(int src0, uint src1, uint src2);
16917int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
16918int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
16919int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
16920int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
16921int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
16922
16923uint __ovld amd_bfe(uint src0, uint src1, uint src2);
16924uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
16925uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
16926uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
16927uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
16928uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
16929
16930uint __ovld amd_bfm(uint src0, uint src1);
16931uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
16932uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
16933uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
16934uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
16935uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
16936
16937float __ovld amd_max3(float src0, float src1, float src2);
16938float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
16939float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
16940float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
16941float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
16942float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
16943
16944int __ovld amd_max3(int src0, int src1, int src2);
16945int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
16946int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
16947int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
16948int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
16949int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
16950
16951uint __ovld amd_max3(uint src0, uint src1, uint src2);
16952uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
16953uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
16954uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
16955uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
16956uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
16957
16958float __ovld amd_median3(float src0, float src1, float src2);
16959float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
16960float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
16961float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
16962float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
16963float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
16964
16965int __ovld amd_median3(int src0, int src1, int src2);
16966int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
16967int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
16968int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
16969int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
16970int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
16971
16972uint __ovld amd_median3(uint src0, uint src1, uint src2);
16973uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
16974uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
16975uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
16976uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
16977uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
16978
16979float __ovld amd_min3(float src0, float src1, float src);
16980float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
16981float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
16982float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
16983float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
16984float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
16985
16986int __ovld amd_min3(int src0, int src1, int src2);
16987int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
16988int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
16989int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
16990int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
16991int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
16992
16993uint __ovld amd_min3(uint src0, uint src1, uint src2);
16994uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
16995uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
16996uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
16997uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
16998uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
16999
17000ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
17001ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
17002ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
17003ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
17004ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
17005ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
17006
17007ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
17008ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
17009ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
17010ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
17011ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
17012ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
17013
17014uint __ovld amd_msad(uint src0, uint src1, uint src2);
17015uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
17016uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
17017uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
17018uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
17019uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
17020
17021uint __ovld amd_sadd(uint src0, uint src1, uint src2);
17022uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
17023uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
17024uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
17025uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
17026uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
17027
17028uint __ovld amd_sadw(uint src0, uint src1, uint src2);
17029uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
17030uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
17031uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
17032uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
17033uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17034#endif // cl_amd_media_ops2
17035
Yaxun Liue8f49b92016-05-30 02:22:28 +000017036// Disable any extensions we may have enabled previously.
17037#pragma OPENCL EXTENSION all : disable
17038
17039#undef __cnfn
17040#undef __ovld
17041#endif //_OPENCL_H_